| Previous | 15994 Revisions | Next |
| r4471 Friday 10th April, 2009 at 12:05:06 UTC by Nathan Woods |
|---|
| Updated to MAME 0.130u3 core |
| [docs] | messnew.txt |
| [src/emu] | crsshair.c crsshair.h emu.mak emuopts.c emuopts.h fileio.h inptport.h inpttype.h rendlay.c rendutil.c rendutil.h ui.c uimenu.c |
| [src/emu/cpu/m68000] | m68kmake.c |
| [src/emu/cpu/tms32025] | tms32025.c |
| [src/emu/cpu/z80] | z80.c z80.h |
| [src/emu/machine] | eepromdev.c* eepromdev.h* i2cmemdev.c* i2cmemdev.h* z80pio.c z80pio.h |
| [src/emu/sound] | psx.c |
| [src/emu/video] | rgbsse.h rgbutil.c* rgbvmx.h |
| [src/mame] | mame.mak mamedriv.c |
| [src/mame/audio] | cinemat.c senjyo.c taitosnd.c taitosnd.h trackfld.c |
| [src/mame/drivers] | 1945kiii.c 20pacgal.c 8080bw.c 88games.c actfancr.c aeroboto.c aerofgt.c ajax.c aliens.c alpha68k.c ambush.c angelkds.c aquarium.c armedf.c asterix.c asuka.c atarifb.c atarig1.c atarigt.c atarigx2.c avalnche.c backfire.c bagman.c baraduke.c battlane.c battlex.c battlnts.c bbusters.c beathead.c bfcobra.c bigevglf.c bishi.c bladestl.c blktiger.c blockhl.c blockout.c bmcbowl.c bnstars.c bombjack.c bottom9.c brkthru.c bsktball.c btime.c btoads.c buggychl.c bwidow.c bwing.c bzone.c cabal.c carjmbre.c carrera.c cbuster.c centiped.c champbas.c changela.c chinagat.c chqflag.c clayshoo.c cninja.c combatsc.c compgolf.c contra.c cop01.c copsnrob.c cps2.c cps3.c crbaloon.c crgolf.c crimfght.c crospang.c crshrace.c cshooter.c cvs.c darius.c dassault.c dblewing.c dbz.c dcon.c ddenlovr.c ddragon.c ddragon3.c ddrible.c dec0.c dec8.c deco156.c deco32.c deco_mlc.c deniam.c dietgo.c diverboy.c djmain.c dogfgt.c dominob.c dooyong.c dorachan.c dreamwld.c dynadice.c embargo.c epos.c esd16.c exedexes.c exidy.c exzisus.c fastfred.c fastlane.c finalizr.c firetrap.c fitfight.c flkatck.c freekick.c fromanc2.c fromance.c funkybee.c funkyjet.c funybubl.c fuukifg3.c gaelco.c gaelco2.c gaiden.c galastrm.c galaxold.c galdrvr.c galivan.c galpanic.c galspnbl.c gaplus.c gberet.c gbusters.c gijoe.c gladiatr.c gng.c goal92.c goindol.c gomoku.c gradius3.c gridlee.c groundfx.c gsword.c hanaroku.c hcastle.c hexion.c hnayayoi.c hng64.c homedata.c homerun.c hornet.c hyhoo.c hyperspt.c hyprduel.c igspoker.c imolagp.c inufuku.c ironhors.c itech32.c jack.c jackal.c jailbrek.c jalmah.c jangou.c junofrst.c kaneko16.c kingobox.c kncljoe.c konamigq.c konamigx.c ksayakyu.c labyrunr.c ladybug.c ladyfrog.c lasso.c lastduel.c lethal.c littlerb.c lkage.c ltcasino.c lwings.c m107.c m72.c m90.c m92.c macrossp.c madmotor.c magmax.c mainevt.c malzak.c marinedt.c markham.c matmania.c mayumi.c mazerbla.c mcatadv.c mcr.c mcr3.c megasys1.c megazone.c meijinsn.c meritm.c metro.c mexico86.c mgolf.c midvunit.c mikie.c mil4000.c mirage.c mitchell.c mjkjidai.c mjsister.c mlanding.c model2.c mogura.c momoko.c moo.c mosaic.c mouser.c mrflea.c ms32.c msisaac.c murogem.c murogmbl.c* mystston.c mystwarr.c namcona1.c namconb1.c namcos1.c namcos2.c namcos21.c namcos22.c namcos86.c naomi.c nbmj8688.c nbmj8891.c nbmj8991.c nbmj9195.c nemesis.c neodrvr.c neogeo.c ninjaw.c niyanpai.c nmk16.c nova2001.c nwk-tr.c nycaptor.c ojankohs.c opwolf.c othunder.c overdriv.c pacman.c pandoras.c parentj.c parodius.c pastelg.c pbaction.c pengo.c pgm.c pingpong.c pitnrun.c playch10.c playmark.c plygonet.c pntnpuzl.c pokechmp.c pooyan.c popper.c powerins.c psikyo4.c psikyosh.c puckpkmn.c punchout.c pushman.c qdrmfgp.c qix.c quantum.c quizdna.c quizpani.c rabbit.c raiden.c raiden2.c rainbow.c rallyx.c rastan.c redclash.c renegade.c retofinv.c rmhaihai.c rockrage.c rocnrope.c rohga.c rollerg.c rollrace.c royalmah.c runaway.c rungun.c sauro.c sbasketb.c scobra.c scotrsht.c scramble.c scregg.c sderby.c seta.c seta2.c sf.c shangha3.c shangkid.c shaolins.c sidearms.c simpsons.c skyarmy.c skykid.c slapfght.c slapshot.c sliver.c snowbros.c solomon.c spbactn.c spcforce.c spdodgeb.c speedatk.c splash.c sprint2.c sprint8.c spy.c srmp2.c sshangha.c ssozumo.c ssrj.c ssv.c stactics.c statriv2.c stepstag.c stfight.c strnskil.c supbtime.c superqix.c supertnk.c surpratk.c system1.c system16.c system18.c tagteam.c taito_b.c taito_f2.c taito_h.c taito_l.c taito_x.c taito_z.c taitoair.c taitosj.c tankbatt.c tankbust.c taotaido.c targeth.c tatsumi.c taxidrvr.c tbowl.c tceptor.c tecmo.c tecmo16.c tecmosys.c tehkanwc.c terracre.c tetrisp2.c thepit.c thief.c thoop2.c thunderx.c tiamc1.c timelimt.c timeplt.c tmaster.c tmnt.c tnzs.c toki.c toobin.c topshoot.c topspeed.c toypop.c tp84.c trackfld.c triplhnt.c tsamurai.c ttchamp.c tubep.c tumbleb.c tumblep.c tunhunt.c tutankhm.c twin16.c ultraman.c unico.c vball.c vendetta.c videopkr.c vigilant.c vindictr.c volfied.c warriorb.c wc90.c wecleman.c welltris.c wgp.c wheelfir.c wiz.c wolfpack.c wrally.c xain.c xexex.c xmen.c xyonix.c yiear.c zaccaria.c zn.c zr107.c |
| [src/mame/includes] | dc.h konamipt.h* pgm.h tnzs.h trackfld.h* |
| [src/mame/machine] | atari.c dc.c gdcrypt.c mcr.c naomibd.c pgmcrypt.c tnzs.c |
| [src/mame/video] | cave.c dc.c mcatadv.c system1.c system1.h toaplan2.c |
| [src/mess] | mess.mak messdriv.c |
| [src/mess/drivers] | abc80.c bbcbc.c einstein.c mbee.c mpf1.c nascom1.c super80.c |
| [src/mess/machine] | ac1.c amstrad.c conkort.c kc.c kramermc.c mz700.c |
| [src/mess/video] | vectrex.c |
| [src/osd/windows] | drawd3d.c video.c |
| r4470 | r4471 | |
|---|---|---|
| 1555 | 1555 | AM_RANGE(0x5002, 0x5003) AM_DEVWRITE("ay2", ay8910_data_address_w) |
| 1556 | 1556 | AM_RANGE(0x6000, 0x6001) AM_DEVREAD("ay3", ay8910_r) |
| 1557 | 1557 | AM_RANGE(0x6002, 0x6003) AM_DEVWRITE("ay3", ay8910_data_address_w) |
| 1558 | AM_RANGE(0x7000, 0x7000) AM_WRITE | |
| 1558 | AM_RANGE(0x7000, 0x7000) AM_WRITE | |
| 1559 | 1559 | ADDRESS_MAP_END |
| 1560 | 1560 | |
| 1561 | 1561 |
| r4470 | r4471 | |
|---|---|---|
| 36 | 36 | |
| 37 | 37 | WRITE8_DEVICE_HANDLER( trackfld_sound_w ) |
| 38 | 38 | { |
| 39 | if( (offset & 0x07) == 0x03 ) | |
| 40 | { | |
| 41 | int changes = offset^last_addr; | |
| 42 | /* A7 = data enable for VLM5030 (don't care ) */ | |
| 43 | /* A8 = STA pin (1->0 data data , 0->1 start speech */ | |
| 44 | /* A9 = RST pin 1=reset */ | |
| 39 | int changes = offset^last_addr; | |
| 40 | /* A7 = data enable for VLM5030 (don't care ) */ | |
| 41 | /* A8 = STA pin (1->0 data data , 0->1 start speech */ | |
| 42 | /* A9 = RST pin 1=reset */ | |
| 45 | 43 | |
| 46 | /* A8 VLM5030 ST pin */ | |
| 47 | if( changes & 0x100 ) | |
| 48 | vlm5030_st( device, offset&0x100 ); | |
| 49 | /* A9 VLM5030 RST pin */ | |
| 50 | if( changes & 0x200 ) | |
| 51 | vlm5030_rst( device, offset&0x200 ); | |
| 52 | } | |
| 44 | /* A8 VLM5030 ST pin */ | |
| 45 | if( changes & 0x100 ) | |
| 46 | vlm5030_st( device, offset&0x100 ); | |
| 47 | /* A9 VLM5030 RST pin */ | |
| 48 | if( changes & 0x200 ) | |
| 49 | vlm5030_rst( device, offset&0x200 ); | |
| 53 | 50 | last_addr = offset; |
| 54 | 51 | } |
| 55 | 52 | |
| r4470 | r4471 | |
| 106 | 103 | { |
| 107 | 104 | sn76496_w(device, offset, SN76496_latch); |
| 108 | 105 | } |
| 109 | ||
| 110 | ||
| 111 | ||
| 112 | ||
| 113 | READ8_HANDLER( hyprolyb_speech_r ) | |
| 114 | { | |
| 115 | return 0x00; | |
| 116 | // return ADPCM_playing(0) ? 0x10 : 0x00; | |
| 117 | } | |
| 118 | ||
| 119 | WRITE8_HANDLER( hyprolyb_ADPCM_data_w ) | |
| 120 | { | |
| 121 | int cmd,start,end; | |
| 122 | UINT8 *RAM = memory_region(space->machine, "adpcm"); | |
| 123 | ||
| 124 | ||
| 125 | /* simulate the operation of the 6802 */ | |
| 126 | cmd = RAM[0xfe01 + data] + 256 * RAM[0xfe00 + data]; | |
| 127 | start = RAM[cmd + 1] + 256 * RAM[cmd]; | |
| 128 | end = RAM[cmd + 3] + 256 * RAM[cmd + 2]; | |
| 129 | // if (end > start) | |
| 130 | // ADPCM_play(0,start,(end - start)*2); | |
| 131 | } |
| r4470 | r4471 | |
|---|---|---|
| 21 | 21 | |
| 22 | 22 | |
| 23 | 23 | /* z80 pio */ |
| 24 | static | |
| 24 | static WRITE_LINE_DEVICE_HANDLER( daisy_interrupt | |
| 25 | 25 | { |
| 26 | 26 | cputag_set_input_line(device->machine, "sub", 0, state); |
| 27 | 27 | } |
| 28 | 28 | |
| 29 | 29 | const z80pio_interface senjyo_pio_intf = |
| 30 | 30 | { |
| 31 | daisy_interrupt, | |
| 32 | NULL, | |
| 33 | NULL, | |
| 34 | NULL, | |
| 35 | NULL, | |
| 36 | NULL, | |
| 37 | NULL | |
| 31 | DEVCB_LINE(daisy_interrupt), | |
| 32 | DEVCB_NULL, | |
| 33 | DEVCB_NULL, | |
| 34 | DEVCB_NULL, | |
| 35 | DEVCB_NULL, | |
| 36 | DEVCB_NULL, | |
| 37 | DEVCB_NULL | |
| 38 | 38 | }; |
| 39 | 39 | |
| 40 | 40 | /* z80 ctc */ |
| r4470 | r4471 | |
|---|---|---|
| 248 | 248 | |
| 249 | 249 | return res; |
| 250 | 250 | } |
| 251 | ||
| 252 | ||
| 253 | ||
| 254 | ||
| 255 | ||
| 256 | ||
| 257 | ||
| 258 | /* wrapper functions for 16bit handlers */ | |
| 259 | ||
| 260 | WRITE16_HANDLER( taitosound_port16_lsb_w ) | |
| 261 | { | |
| 262 | if (ACCESSING_BITS_0_7) | |
| 263 | taitosound_port_w(space,0,data & 0xff); | |
| 264 | } | |
| 265 | WRITE16_HANDLER( taitosound_comm16_lsb_w ) | |
| 266 | { | |
| 267 | if (ACCESSING_BITS_0_7) | |
| 268 | taitosound_comm_w(space,0,data & 0xff); | |
| 269 | } | |
| 270 | READ16_HANDLER( taitosound_comm16_lsb_r ) | |
| 271 | { | |
| 272 | return taitosound_comm_r(space,0); | |
| 273 | } | |
| 274 | ||
| 275 | ||
| 276 | WRITE16_HANDLER( taitosound_port16_msb_w ) | |
| 277 | { | |
| 278 | if (ACCESSING_BITS_8_15) | |
| 279 | taitosound_port_w(space,0,data >> 8); | |
| 280 | } | |
| 281 | WRITE16_HANDLER( taitosound_comm16_msb_w ) | |
| 282 | { | |
| 283 | if (ACCESSING_BITS_8_15) | |
| 284 | taitosound_comm_w(space,0,data >> 8); | |
| 285 | } | |
| 286 | READ16_HANDLER( taitosound_comm16_msb_r ) | |
| 287 | { | |
| 288 | return taitosound_comm_r(space,0) << 8; | |
| 289 | } | |
| 290 |
| r4470 | r4471 | |
|---|---|---|
| 2 | 2 | #define __TAITOSND_H__ |
| 3 | 3 | |
| 4 | 4 | |
| 5 | /* MASTER (16 bit bus) control functions */ | |
| 6 | WRITE16_HANDLER( taitosound_port16_lsb_w ); | |
| 7 | WRITE16_HANDLER( taitosound_comm16_lsb_w ); | |
| 8 | READ16_HANDLER( taitosound_comm16_lsb_r ); | |
| 9 | ||
| 10 | WRITE16_HANDLER( taitosound_port16_msb_w ); | |
| 11 | WRITE16_HANDLER( taitosound_comm16_msb_w ); | |
| 12 | READ16_HANDLER( taitosound_comm16_msb_r ); | |
| 13 | ||
| 14 | ||
| 15 | 5 | /* MASTER (8bit bus) control functions */ |
| 16 | 6 | WRITE8_HANDLER( taitosound_port_w ); |
| 17 | 7 | WRITE8_HANDLER( taitosound_comm_w ); |
| r4470 | r4471 | |
|---|---|---|
| 487 | 487 | |
| 488 | 488 | *********************************/ |
| 489 | 489 | |
| 490 | /* | |
| 490 | 491 | static TIMER_CALLBACK( kludge_callback ) |
| 491 | 492 | { |
| 492 | ||
| 493 | tnzs_sharedram[0x0f10] = param; | |
| 493 | 494 | } |
| 494 | 495 | |
| 495 | 496 | static WRITE8_HANDLER( tnzs_sync_kludge_w ) |
| 496 | 497 | { |
| 497 | ||
| 498 | timer_call_after_resynch(space->machine, NULL, data,kludge_callback); | |
| 498 | 499 | } |
| 500 | */ | |
| 499 | 501 | |
| 500 | 502 | |
| 501 | 503 | |
| 502 | ||
| 503 | 504 | DRIVER_INIT( plumpop ) |
| 504 | 505 | { |
| 505 | 506 | mcu_type = MCU_PLUMPOP; |
| r4470 | r4471 | |
| 532 | 533 | { |
| 533 | 534 | mcu_type = MCU_TNZS; |
| 534 | 535 | /* we need to install a kludge to avoid problems with a bug in the original code */ |
| 535 | ||
| 536 | // memory_install_write8_handler(cpu_get_address_space(machine->cpu[0], ADDRESS_SPACE_PROGRAM), 0xef10, 0xef10, 0, 0, tnzs_sync_kludge_w); | |
| 536 | 537 | } |
| 537 | 538 | |
| 538 | 539 | DRIVER_INIT( tnzsb ) |
| r4470 | r4471 | |
| 540 | 541 | mcu_type = MCU_NONE_TNZSB; |
| 541 | 542 | |
| 542 | 543 | /* we need to install a kludge to avoid problems with a bug in the original code */ |
| 543 | ||
| 544 | // memory_install_write8_handler(cpu_get_address_space(machine->cpu[0], ADDRESS_SPACE_PROGRAM), 0xef10, 0xef10, 0, 0, tnzs_sync_kludge_w); | |
| 544 | 545 | } |
| 545 | 546 | |
| 546 | 547 | DRIVER_INIT( kabukiz ) |
| r4470 | r4471 | |
| 655 | 656 | } |
| 656 | 657 | |
| 657 | 658 | |
| 658 | READ8_HANDLER( tnzs_sharedram_r ) | |
| 659 | { | |
| 660 | return tnzs_sharedram[offset]; | |
| 661 | } | |
| 662 | 659 | |
| 663 | WRITE8_HANDLER( tnzs_sharedram_w ) | |
| 664 | { | |
| 665 | tnzs_sharedram[offset] = data; | |
| 666 | } | |
| 667 | ||
| 668 | ||
| 669 | ||
| 670 | 660 | WRITE8_HANDLER( tnzs_bankswitch_w ) |
| 671 | 661 | { |
| 672 | 662 | UINT8 *RAM = memory_region(space->machine, "maincpu"); |
| r4470 | r4471 | |
|---|---|---|
| 256 | 256 | |
| 257 | 257 | /************************************************************** |
| 258 | 258 | |
| 259 | Keyboard inputs use 6bits to read the 64keys in the key matrix. | |
| 260 | We currently read the key matrix by lines and convert the input | |
| 261 | to the value expected by the POKEY (see the code below to | |
| 262 | determine atari_code values). | |
| 259 | Keyboard inputs use 6bits to read the 64keys in the key matrix. | |
| 260 | We currently read the key matrix by lines and convert the input | |
| 261 | to the value expected by the POKEY (see the code below to | |
| 262 | determine atari_code values). | |
| 263 | 263 | |
| 264 | K2,K1,K0 | 000 | 001 | 010 | 011 | 100 | 101 | 110 | 111 | | |
| 265 | K5,K4,K3 | |
| 266 | ---------------------------------------------------------- | |
| 267 | 000 | L | J | ; | (*) | | K | + | * | | |
| 268 | 001 | O | | P | U | Ret | I | - | = | | |
| 269 | 010 | V | | C | | | B | X | Z | | |
| 270 | 011 | 4 | | 3 | 6 | Esc | 5 | 2 | 1 | | |
| 271 | 100 | , | Spc | . | N | | M | / |Atari| | |
| 272 | 101 | R | | E | Y | Tab | T | W | Q | | |
| 273 | 110 | 9 | | 0 | 7 |Bkspc| 8 | < | > | | |
| 274 | 111 | F | H | D | | Caps| G | S | A | | |
| 264 | K2,K1,K0 | 000 | 001 | 010 | 011 | 100 | 101 | 110 | 111 | | |
| 265 | K5,K4,K3 | |
| 266 | ---------------------------------------------------------- | |
| 267 | 000 | L | J | ; | (*) | | K | + | * | | |
| 268 | 001 | O | | P | U | Ret | I | - | = | | |
| 269 | 010 | V | | C | | | B | X | Z | | |
| 270 | 011 | 4 | | 3 | 6 | Esc | 5 | 2 | 1 | | |
| 271 | 100 | , | Spc | . | N | | M | / |Atari| | |
| 272 | 101 | R | | E | Y | Tab | T | W | Q | | |
| 273 | 110 | 9 | | 0 | 7 |Bkspc| 8 | < | > | | |
| 274 | 111 | F | H | D | | Caps| G | S | A | | |
| 275 | 275 | |
| 276 | (*) We use this value to read Break, but in fact it would be read | |
| 277 | in KR2 bit. This has to be properly implemented for later | |
| 278 | Atari systems because here we would have F1. | |
| 276 | (*) We use this value to read Break, but in fact it would be read | |
| 277 | in KR2 bit. This has to be properly implemented for later | |
| 278 | Atari systems because here we would have F1. | |
| 279 | 279 | |
| 280 | To Do: investigate implementation of KR2 to read accurately Break, | |
| 281 | Shift and Control keys. | |
| 280 | To Do: investigate implementation of KR2 to read accurately Break, | |
| 281 | Shift and Control keys. | |
| 282 | 282 | |
| 283 | 283 | **************************************************************/ |
| 284 | 284 | |
| r4470 | r4471 | |
| 345 | 345 | |
| 346 | 346 | /************************************************************** |
| 347 | 347 | |
| 348 | A5200 keypad inputs use 4bits to read the 16keys in the key | |
| 349 | matrix. We currently read the key matrix by lines and convert | |
| 350 | the input to the value expected by the POKEY (see the code | |
| 351 | below to determine atari_code values). | |
| 348 | A5200 keypad inputs use 4bits to read the 16keys in the key | |
| 349 | matrix. We currently read the key matrix by lines and convert | |
| 350 | the input to the value expected by the POKEY (see the code | |
| 351 | below to determine atari_code values). | |
| 352 | 352 | |
| 353 | K2,K1,K0 | 00x | 01x | 10x | 11x | | |
| 354 | K5,K4,K3 | |
| 355 | ---------------------------------- | |
| 356 | x00 | | # | 0 | * | | |
| 357 | x01 |Reset| 9 | 8 | 7 | | |
| 358 | x10 |Pause| 6 | 5 | 4 | | |
| 359 | x11 |Start| 3 | 2 | 1 | | |
| 353 | K2,K1,K0 | 00x | 01x | 10x | 11x | | |
| 354 | K5,K4,K3 | |
| 355 | ---------------------------------- | |
| 356 | x00 | | # | 0 | * | | |
| 357 | x01 |Reset| 9 | 8 | 7 | | |
| 358 | x10 |Pause| 6 | 5 | 4 | | |
| 359 | x11 |Start| 3 | 2 | 1 | | |
| 360 | 360 | |
| 361 | K0 & K5 are ignored (we send them as 1, see the code below where | |
| 362 | we pass "(atari_code << 1) | 0x21" ) | |
| 361 | K0 & K5 are ignored (we send them as 1, see the code below where | |
| 362 | we pass "(atari_code << 1) | 0x21" ) | |
| 363 | 363 | |
| 364 | To Do: investigate implementation of KR2 to read accurately the | |
| 365 | secondary Fire button (primary read through GTIA). | |
| 364 | To Do: investigate implementation of KR2 to read accurately the | |
| 365 | secondary Fire button (primary read through GTIA). | |
| 366 | 366 | |
| 367 | 367 | **************************************************************/ |
| 368 | 368 |
| r4470 | r4471 | |
|---|---|---|
| 345 | 345 | int i; |
| 346 | 346 | UINT16 *src = (UINT16 *)(memory_region(machine, "user1")); |
| 347 | 347 | |
| 348 | int rom_size = 0x | |
| 348 | int rom_size = 0x400000; | |
| 349 | 349 | |
| 350 | 350 | for(i=0; i<rom_size/2; i++) { |
| 351 | 351 | UINT16 x = src[i]; |
| r4470 | r4471 | |
| 692 | 692 | int i; |
| 693 | 693 | UINT16 *src = (UINT16 *)(memory_region(machine, "user1")); |
| 694 | 694 | |
| 695 | int rom_size = 0x | |
| 695 | int rom_size = 0x200000; | |
| 696 | 696 | |
| 697 | 697 | for(i=0; i<rom_size/2; i++) { |
| 698 | 698 | UINT16 x = src[i]; |
| r4470 | r4471 | |
| 728 | 728 | } |
| 729 | 729 | |
| 730 | 730 | |
| 731 | void pgm_svg_decrypt(running_machine *machine) | |
| 731 | static const UINT8 oldsplus_tab[256] = { | |
| 732 | 0x49, 0x47, 0x53, 0x30, 0x30, 0x31, 0x33, 0x52, 0x44, 0x31, 0x30, 0x34, 0x30, 0x37, 0x32, 0x37, | |
| 733 | 0xF5, 0x79, 0x6D, 0xAB, 0x04, 0x22, 0x51, 0x96, 0xF2, 0x72, 0xE8, 0x3A, 0x96, 0xD2, 0x9A, 0xCC, | |
| 734 | 0x3F, 0x47, 0x3C, 0x09, 0xF2, 0xD9, 0x72, 0x41, 0xE6, 0x44, 0x43, 0xA7, 0x3E, 0xE2, 0xFD, 0xD8, | |
| 735 | 0x06, 0xD8, 0x4C, 0xA9, 0x70, 0x80, 0x95, 0x35, 0x50, 0x17, 0x99, 0x27, 0xD5, 0xA8, 0x47, 0x45, | |
| 736 | 0x89, 0x38, 0xE1, 0x3D, 0x8C, 0x33, 0x53, 0xB4, 0x0D, 0x17, 0xD1, 0x8D, 0x09, 0x5F, 0xAF, 0x76, | |
| 737 | 0x48, 0xB2, 0x85, 0xB9, 0x95, 0x4C, 0x83, 0x42, 0x3D, 0xAD, 0x11, 0xEC, 0xCA, 0x82, 0xAC, 0x10, | |
| 738 | 0x01, 0xD0, 0xFD, 0x50, 0x19, 0x67, 0x3B, 0xA0, 0x3E, 0x86, 0xC2, 0x97, 0x46, 0xCB, 0xF4, 0xF5, | |
| 739 | 0xB3, 0x5F, 0x50, 0x74, 0xE9, 0x5F, 0xD2, 0xD4, 0xB0, 0x8D, 0x8A, 0x21, 0xED, 0x37, 0x80, 0x47, | |
| 740 | 0x9D, 0x68, 0xC7, 0xD9, 0x12, 0x4E, 0xDF, 0x1E, 0x72, 0xEB, 0x50, 0x5E, 0x6D, 0x00, 0x85, 0x6B, | |
| 741 | 0x3E, 0x37, 0xE6, 0x72, 0xE5, 0x8F, 0x3A, 0x03, 0xA3, 0x0D, 0x3B, 0x5F, 0xB6, 0xA1, 0x7B, 0x02, | |
| 742 | 0x56, 0x56, 0x77, 0x71, 0xEF, 0xBE, 0xF9, 0x46, 0xA1, 0x9D, 0xB3, 0x79, 0xF6, 0xD5, 0x19, 0xF0, | |
| 743 | 0xE2, 0x91, 0x7E, 0x4A, 0x01, 0xB6, 0x73, 0xE8, 0x0C, 0x86, 0x5D, 0x3E, 0x9C, 0x97, 0x55, 0x58, | |
| 744 | 0x23, 0xF4, 0x45, 0xB0, 0x28, 0x91, 0x40, 0x2F, 0xC2, 0xF4, 0x21, 0x81, 0x58, 0x22, 0x68, 0x9D, | |
| 745 | 0x97, 0xC7, 0x51, 0x95, 0xB4, 0xAA, 0x36, 0x9B, 0xE4, 0x51, 0x27, 0x55, 0x18, 0xF0, 0xC7, 0x62, | |
| 746 | 0xFE, 0x98, 0x6A, 0x2D, 0x35, 0x9D, 0x6C, 0xF1, 0xCF, 0x48, 0xD4, 0x0D, 0x0C, 0xBE, 0x2A, 0x8A, | |
| 747 | 0x55, 0x31, 0x96, 0xEA, 0x78, 0x45, 0x3A, 0x33, 0x23, 0xC5, 0xD1, 0x3C, 0xA3, 0x86, 0x88, 0x38, | |
| 748 | }; | |
| 749 | ||
| 750 | void pgm_oldsplus_decrypt(running_machine *machine) | |
| 732 | 751 | { |
| 733 | 752 | int i; |
| 734 | | |
| 753 | unsigned short *src = (unsigned short *)(memory_region(machine, "maincpu | |
| 735 | 754 | |
| 736 | int rom_size = 0x | |
| 755 | int rom_size = 0x400000; | |
| 737 | 756 | |
| 738 | 757 | for(i=0; i<rom_size/2; i++) { |
| 739 | | |
| 758 | unsigned short x = src[i]; | |
| 740 | 759 | |
| 741 | if((i & 0x040 | |
| 760 | if((i & 0x040480) != 0x000080 ) | |
| 742 | 761 | x ^= 0x0001; |
| 743 | 762 | |
| 744 | if((i & 0x004008) == 0x004008) | |
| 763 | if((i & 0x004008) == 0x004008 ) | |
| 745 | 764 | x ^= 0x0002; |
| 746 | 765 | |
| 747 | if((i & 0x0 | |
| 766 | if((i & 0x0 | |
| 748 | 767 | x ^= 0x0004; |
| 749 | 768 | |
| 750 | if((i & 0x000 | |
| 769 | if((i & 0x000242) != 0x000042 ) | |
| 751 | 770 | x ^= 0x0008; |
| 752 | 771 | |
| 753 | if((i & 0x048100) == 0x048000) | |
| 772 | if((i & 0x048100) == 0x048000 ) | |
| 754 | 773 | x ^= 0x0010; |
| 755 | 774 | |
| 756 | if((i & 0x002004) != 0x000004) | |
| 775 | if((i & 0x002004) != 0x000004 ) | |
| 757 | 776 | x ^= 0x0020; |
| 758 | 777 | |
| 759 | if((i & 0x011800) != 0x010000) | |
| 778 | if((i & 0x011800) != 0x010000 ) | |
| 760 | 779 | x ^= 0x0040; |
| 761 | 780 | |
| 762 | if((i & 0x000820) == 0x000820) | |
| 781 | if((i & 0x000820) == 0x000820 ) | |
| 763 | 782 | x ^= 0x0080; |
| 764 | 783 | |
| 784 | x ^= oldsplus_tab[i & 0xff] << 8; | |
| 785 | ||
| 765 | 786 | src[i] = x; |
| 766 | 787 | } |
| 767 | 788 | } |
| 768 | 789 | |
| 769 | 790 | |
| 770 | static const UINT8 killbldp_tab[256] = { | |
| 771 | 0x49,0x47,0x53,0x30,0x30,0x32,0x34,0x52,0x44,0x31,0x30,0x35,0x30,0x39,0x30,0x38, | |
| 772 | 0x12,0xA0,0xD1,0x9E,0xB1,0x8A,0xFB,0x1F,0x50,0x51,0x4B,0x81,0x28,0xDA,0x5F,0x41, | |
| 773 | 0x78,0x6C,0x7A,0xF0,0xCD,0x6B,0x69,0x14,0x94,0x55,0xB6,0x42,0xDF,0xFE,0x10,0x79, | |
| 774 | 0x74,0x08,0xFA,0xC0,0x1C,0xA5,0xB4,0x03,0x2A,0x91,0x67,0x2B,0x49,0x4A,0x94,0x7D, | |
| 775 | 0x8B,0x92,0xBE,0x35,0xAF,0x28,0x56,0x63,0xB3,0xC2,0xE8,0x06,0x9B,0x4E,0x85,0x66, | |
| 776 | 0x7F,0x6B,0x70,0xB7,0xDB,0x22,0x0C,0xEB,0x13,0xE9,0x06,0xD7,0x45,0xDA,0xBE,0x8B, | |
| 777 | 0x54,0x30,0xFC,0xEB,0x32,0x02,0xD0,0x92,0x6D,0x44,0xCA,0xE8,0xFD,0xFB,0x5B,0x81, | |
| 778 | 0x4C,0xC0,0x8B,0xB9,0x87,0x78,0xDD,0x8E,0x24,0x52,0x80,0xBE,0xB4,0x01,0xB7,0x21, | |
| 779 | 0xEB,0x3C,0x8A,0x49,0xED,0x73,0xAE,0x58,0xDB,0xD2,0xB2,0x21,0x9E,0x7C,0x6C,0x82, | |
| 780 | 0xF3,0x01,0xA3,0x00,0xB7,0x21,0xFE,0xA5,0x75,0xC4,0x2D,0x17,0x2D,0x39,0x56,0xF9, | |
| 781 | 0x67,0xAE,0xC2,0x87,0x79,0xF1,0xC8,0x6D,0x15,0x66,0xFA,0xE8,0x16,0x48,0x8F,0x1F, | |
| 782 | 0x8B,0x24,0x10,0xC4,0x04,0x93,0x47,0xE6,0x1D,0x37,0x65,0x1A,0x49,0xF8,0x72,0xCB, | |
| 783 | 0xE1,0x80,0xFA,0xDD,0x6D,0xF5,0xF6,0x89,0x32,0xF6,0xF8,0x75,0xFC,0xD8,0x9B,0x12, | |
| 784 | 0x2D,0x22,0x2A,0x3B,0x06,0x46,0x90,0x0C,0x35,0xA2,0x80,0xFF,0xA0,0xB7,0xE5,0x4D, | |
| 785 | 0x71,0xA9,0x8C,0x84,0x62,0xF7,0x10,0x65,0x4A,0x7B,0x06,0x00,0xE8,0xA4,0x6A,0x13, | |
| 786 | 0xF0,0xF3,0x4A,0x9F,0x54,0xB4,0xB1,0xCC,0xD4,0xFF,0xD6,0xFF,0xC9,0xEE,0x86,0x39, | |
| 791 | static const UINT8 kovshp_tab[256] = { | |
| 792 | 0x49, 0x47, 0x53, 0x30, 0x30, 0x30, 0x39, 0x72, 0x64, 0x31, 0x30, 0x34, 0x30, 0x32, 0x31, 0x39, | |
| 793 | 0xF9, 0x8C, 0xBD, 0x87, 0x16, 0x07, 0x39, 0xEB, 0x29, 0x9E, 0x17, 0xEF, 0x4F, 0x64, 0x7C, 0xE0, | |
| 794 | 0x5F, 0x73, 0x5B, 0xA1, 0x5E, 0x95, 0x0D, 0xF1, 0x40, 0x36, 0x2F, 0x00, 0xE2, 0x8A, 0xBC, 0x32, | |
| 795 | 0x44, 0xFA, 0x6C, 0x33, 0x0B, 0xD5, 0x4C, 0x3B, 0x36, 0x34, 0x9E, 0xA3, 0x20, 0x2E, 0xF3, 0xA9, | |
| 796 | 0xB7, 0x3E, 0x87, 0x80, 0xFB, 0xF1, 0xDD, 0x9C, 0xBA, 0xD3, 0x9B, 0x3B, 0x8A, 0x9C, 0xA8, 0x37, | |
| 797 | 0x07, 0x97, 0x84, 0x0C, 0x4E, 0x54, 0xE7, 0x25, 0xBA, 0x8E, 0x9D, 0x6B, 0xDE, 0x5F, 0xA1, 0x10, | |
| 798 | 0xC3, 0xA2, 0x79, 0x99, 0x63, 0xA9, 0xD1, 0x2A, 0x65, 0x20, 0x5B, 0x16, 0x1B, 0x41, 0xE6, 0xA7, | |
| 799 | 0xBA, 0x3A, 0xBD, 0x2A, 0xD8, 0xDB, 0x43, 0x3F, 0x2B, 0x85, 0xCC, 0x5F, 0x80, 0x4F, 0xBE, 0xAE, | |
| 800 | 0xFA, 0x79, 0xE8, 0x03, 0x8D, 0x16, 0x22, 0x35, 0xBB, 0xF6, 0x26, 0xA9, 0x8D, 0xD2, 0xAF, 0x19, | |
| 801 | 0xD4, 0xBB, 0xD0, 0xA6, 0xA1, 0xC4, 0x96, 0x21, 0x02, 0xEF, 0xE1, 0x96, 0x00, 0x56, 0x80, 0x1B, | |
| 802 | 0xD6, 0x9A, 0x8C, 0xD7, 0x73, 0x91, 0x07, 0x55, 0x32, 0x2B, 0xB5, 0x0B, 0xD8, 0xA5, 0x39, 0x26, | |
| 803 | 0xCE, 0xF2, 0x74, 0x98, 0xA1, 0x66, 0x1A, 0x64, 0xB8, 0xA5, 0x96, 0x29, 0x54, 0xCB, 0x21, 0xED, | |
| 804 | 0xCD, 0xDD, 0x1E, 0x2C, 0x0B, 0x70, 0xB8, 0x22, 0x43, 0x98, 0xBE, 0x54, 0xF3, 0x14, 0xBE, 0x65, | |
| 805 | 0x21, 0xB7, 0x61, 0x17, 0xCF, 0x19, 0x07, 0xA0, 0xC2, 0x7F, 0xA3, 0x30, 0x75, 0x08, 0xD8, 0xBF, | |
| 806 | 0x58, 0x1A, 0x55, 0x1B, 0x4E, 0x0D, 0x6D, 0x32, 0x65, 0x15, 0xFB, 0x9E, 0xD8, 0x75, 0x76, 0x6F, | |
| 807 | 0x42, 0xE2, 0x4F, 0x3C, 0x25, 0x35, 0x93, 0x6C, 0x9B, 0x56, 0xBE, 0xC1, 0x5B, 0x65, 0xDE, 0x27, | |
| 787 | 808 | }; |
| 788 | 809 | |
| 789 | void pgm_k | |
| 810 | void pgm_kovsh | |
| 790 | 811 | { |
| 791 | 812 | int i; |
| 792 | | |
| 813 | unsigned short *src = (unsigned short *)(memory_region(machine, "maincpu | |
| 793 | 814 | |
| 794 | int rom_size = 0x | |
| 815 | int rom_size = 0x400000; | |
| 795 | 816 | |
| 796 | 817 | for(i=0; i<rom_size/2; i++) { |
| 797 | | |
| 818 | unsigned short x = src[i]; | |
| 798 | 819 | |
| 799 | if((i & 0x040 | |
| 820 | if((i & 0x040080) != 0x000080) | |
| 800 | 821 | x ^= 0x0001; |
| 801 | 822 | |
| 802 | if((i & 0x | |
| 823 | if((i & 0x | |
| 803 | 824 | x ^= 0x0002; |
| 804 | 825 | |
| 805 | if((i & 0x0 | |
| 826 | if((i & 0x0 | |
| 806 | 827 | x ^= 0x0004; |
| 807 | 828 | |
| 808 | if((i & 0x000 | |
| 829 | if((i & 0x000042) != 0x000042) | |
| 809 | 830 | x ^= 0x0008; |
| 810 | 831 | |
| 811 | 832 | if((i & 0x008100) == 0x008000) |
| 812 | 833 | x ^= 0x0010; |
| 813 | 834 | |
| 814 | if((i & 0x0 | |
| 835 | if((i & 0x022004) != 0x000004) | |
| 815 | 836 | x ^= 0x0020; |
| 816 | 837 | |
| 817 | 838 | if((i & 0x011800) != 0x010000) |
| r4470 | r4471 | |
| 820 | 841 | if((i & 0x000820) == 0x000820) |
| 821 | 842 | x ^= 0x0080; |
| 822 | 843 | |
| 823 | x ^= k | |
| 844 | x ^= kovsh | |
| 824 | 845 | |
| 825 | 846 | src[i] = x; |
| 826 | 847 | } |
| 827 | 848 | } |
| 828 | 849 | |
| 829 | 850 | |
| 830 | static const UINT8 kovh_tab[256] = { | |
| 831 | 0x49,0x47,0x53,0x30,0x30,0x30,0x39,0x72,0x64,0x31,0x30,0x34,0x30,0x32,0x31,0x39, | |
| 832 | 0xF9,0x8C,0xBD,0x87,0x16,0x07,0x39,0xEB,0x29,0x9E,0x17,0xEF,0x4F,0x64,0x7C,0xE0, | |
| 833 | 0x5F,0x73,0x5B,0xA1,0x5E,0x95,0x0D,0xF1,0x40,0x36,0x2F,0x00,0xE2,0x8A,0xBC,0x32, | |
| 834 | 0x44,0xFA,0x6C,0x33,0x0B,0xD5,0x4C,0x3B,0x36,0x34,0x9E,0xA3,0x20,0x2E,0xF3,0xA9, | |
| 835 | 0xB7,0x3E,0x87,0x80,0xFB,0xF1,0xDD,0x9C,0xBA,0xD3,0x9B,0x3B,0x8A,0x9C,0xA8,0x37, | |
| 836 | 0x07,0x97,0x84,0x0C,0x4E,0x54,0xE7,0x25,0xBA,0x8E,0x9D,0x6B,0xDE,0x5F,0xA1,0x10, | |
| 837 | 0xC3,0xA2,0x79,0x99,0x63,0xA9,0xD1,0x2A,0x65,0x20,0x5B,0x16,0x1B,0x41,0xE6,0xA7, | |
| 838 | 0xBA,0x3A,0xBD,0x2A,0xD8,0xDB,0x43,0x3F,0x2B,0x85,0xCC,0x5F,0x80,0x4F,0xBE,0xAE, | |
| 839 | 0xFA,0x79,0xE8,0x03,0x8D,0x16,0x22,0x35,0xBB,0xF6,0x26,0xA9,0x8D,0xD2,0xAF,0x19, | |
| 840 | 0xD4,0xBB,0xD0,0xA6,0xA1,0xC4,0x96,0x21,0x02,0xEF,0xE1,0x96,0x00,0x56,0x80,0x1B, | |
| 841 | 0xD6,0x9A,0x8C,0xD7,0x73,0x91,0x07,0x55,0x32,0x2B,0xB5,0x0B,0xD8,0xA5,0x39,0x26, | |
| 842 | 0xCE,0xF2,0x74,0x98,0xA1,0x66,0x1A,0x64,0xB8,0xA5,0x96,0x29,0x54,0xCB,0x21,0xED, | |
| 843 | 0xCD,0xDD,0x1E,0x2C,0x0B,0x70,0xB8,0x22,0x43,0x98,0xBE,0x54,0xF3,0x14,0xBE,0x65, | |
| 844 | 0x21,0xB7,0x61,0x17,0xCF,0x19,0x07,0xA0,0xC2,0x7F,0xA3,0x30,0x75,0x08,0xD8,0xBF, | |
| 845 | 0x58,0x1A,0x55,0x1B,0x4E,0x0D,0x6D,0x32,0x65,0x15,0xFB,0x9E,0xD8,0x75,0x76,0x6F, | |
| 846 | 0x42,0xE2,0x4F,0x3C,0x25,0x35,0x93,0x6C,0x9B,0x56,0xBE,0xC1,0x5B,0x65,0xDE,0x27, | |
| 851 | static const UINT8 killbldp_tab[256] = { | |
| 852 | 0x49, 0x47, 0x53, 0x30, 0x30, 0x32, 0x34, 0x52, 0x44, 0x31, 0x30, 0x35, 0x30, 0x39, 0x30, 0x38, | |
| 853 | 0x12, 0xA0, 0xD1, 0x9E, 0xB1, 0x8A, 0xFB, 0x1F, 0x50, 0x51, 0x4B, 0x81, 0x28, 0xDA, 0x5F, 0x41, | |
| 854 | 0x78, 0x6C, 0x7A, 0xF0, 0xCD, 0x6B, 0x69, 0x14, 0x94, 0x55, 0xB6, 0x42, 0xDF, 0xFE, 0x10, 0x79, | |
| 855 | 0x74, 0x08, 0xFA, 0xC0, 0x1C, 0xA5, 0xB4, 0x03, 0x2A, 0x91, 0x67, 0x2B, 0x49, 0x4A, 0x94, 0x7D, | |
| 856 | 0x8B, 0x92, 0xBE, 0x35, 0xAF, 0x28, 0x56, 0x63, 0xB3, 0xC2, 0xE8, 0x06, 0x9B, 0x4E, 0x85, 0x66, | |
| 857 | 0x7F, 0x6B, 0x70, 0xB7, 0xDB, 0x22, 0x0C, 0xEB, 0x13, 0xE9, 0x06, 0xD7, 0x45, 0xDA, 0xBE, 0x8B, | |
| 858 | 0x54, 0x30, 0xFC, 0xEB, 0x32, 0x02, 0xD0, 0x92, 0x6D, 0x44, 0xCA, 0xE8, 0xFD, 0xFB, 0x5B, 0x81, | |
| 859 | 0x4C, 0xC0, 0x8B, 0xB9, 0x87, 0x78, 0xDD, 0x8E, 0x24, 0x52, 0x80, 0xBE, 0xB4, 0x01, 0xB7, 0x21, | |
| 860 | 0xEB, 0x3C, 0x8A, 0x49, 0xED, 0x73, 0xAE, 0x58, 0xDB, 0xD2, 0xB2, 0x21, 0x9E, 0x7C, 0x6C, 0x82, | |
| 861 | 0xF3, 0x01, 0xA3, 0x00, 0xB7, 0x21, 0xFE, 0xA5, 0x75, 0xC4, 0x2D, 0x17, 0x2D, 0x39, 0x56, 0xF9, | |
| 862 | 0x67, 0xAE, 0xC2, 0x87, 0x79, 0xF1, 0xC8, 0x6D, 0x15, 0x66, 0xFA, 0xE8, 0x16, 0x48, 0x8F, 0x1F, | |
| 863 | 0x8B, 0x24, 0x10, 0xC4, 0x04, 0x93, 0x47, 0xE6, 0x1D, 0x37, 0x65, 0x1A, 0x49, 0xF8, 0x72, 0xCB, | |
| 864 | 0xE1, 0x80, 0xFA, 0xDD, 0x6D, 0xF5, 0xF6, 0x89, 0x32, 0xF6, 0xF8, 0x75, 0xFC, 0xD8, 0x9B, 0x12, | |
| 865 | 0x2D, 0x22, 0x2A, 0x3B, 0x06, 0x46, 0x90, 0x0C, 0x35, 0xA2, 0x80, 0xFF, 0xA0, 0xB7, 0xE5, 0x4D, | |
| 866 | 0x71, 0xA9, 0x8C, 0x84, 0x62, 0xF7, 0x10, 0x65, 0x4A, 0x7B, 0x06, 0x00, 0xE8, 0xA4, 0x6A, 0x13, | |
| 867 | 0xF0, 0xF3, 0x4A, 0x9F, 0x54, 0xB4, 0xB1, 0xCC, 0xD4, 0xFF, 0xD6, 0xFF, 0xC9, 0xEE, 0x86, 0x39, | |
| 847 | 868 | }; |
| 848 | 869 | |
| 849 | void pgm_k | |
| 870 | void pgm_killbldp_decrypt(running_machine *machine) | |
| 850 | 871 | { |
| 851 | 872 | int i; |
| 852 | | |
| 873 | UINT16 | |
| 853 | 874 | |
| 854 | int rom_size = 0x | |
| 875 | int rom_size = 0x200000; | |
| 855 | 876 | |
| 856 | 877 | for(i=0; i<rom_size/2; i++) { |
| 857 | | |
| 878 | UINT16 | |
| 858 | 879 | |
| 859 | if((i & 0x040 | |
| 880 | if((i & 0x040480) != 0x000080) | |
| 860 | 881 | x ^= 0x0001; |
| 861 | 882 | |
| 862 | if((i & 0x0 | |
| 883 | if((i & 0x10 | |
| 863 | 884 | x ^= 0x0002; |
| 864 | 885 | |
| 865 | if((i & 0x000 | |
| 886 | if((i & 0x0800 | |
| 866 | 887 | x ^= 0x0004; |
| 867 | 888 | |
| 868 | if((i & 0x000 | |
| 889 | if((i & 0x000242) != 0x000042) | |
| 869 | 890 | x ^= 0x0008; |
| 870 | 891 | |
| 871 | 892 | if((i & 0x008100) == 0x008000) |
| 872 | 893 | x ^= 0x0010; |
| 873 | 894 | |
| 874 | if((i & 0x0 | |
| 895 | if((i & 0x002004) != 0x000004) | |
| 875 | 896 | x ^= 0x0020; |
| 876 | 897 | |
| 877 | 898 | if((i & 0x011800) != 0x010000) |
| r4470 | r4471 | |
| 880 | 901 | if((i & 0x000820) == 0x000820) |
| 881 | 902 | x ^= 0x0080; |
| 882 | 903 | |
| 883 | x ^= k | |
| 904 | x ^= killbldp_tab[(i >> 1) & 0xff] << 8; | |
| 884 | 905 | |
| 885 | 906 | src[i] = x; |
| 886 | 907 | } |
| 887 | 908 | } |
| 888 | 909 | |
| 889 | 910 | |
| 890 | static const UINT8 oldss_tab[256] = { | |
| 891 | 0x49,0x47,0x53,0x30,0x30,0x31,0x33,0x52,0x44,0x31,0x30,0x34,0x30,0x37,0x32,0x37, | |
| 892 | 0xF5,0x79,0x6D,0xAB,0x04,0x22,0x51,0x96,0xF2,0x72,0xE8,0x3A,0x96,0xD2,0x9A,0xCC, | |
| 893 | 0x3F,0x47,0x3C,0x09,0xF2,0xD9,0x72,0x41,0xE6,0x44,0x43,0xA7,0x3E,0xE2,0xFD,0xD8, | |
| 894 | 0x06,0xD8,0x4C,0xA9,0x70,0x80,0x95,0x35,0x50,0x17,0x99,0x27,0xD5,0xA8,0x47,0x45, | |
| 895 | 0x89,0x38,0xE1,0x3D,0x8C,0x33,0x53,0xB4,0x0D,0x17,0xD1,0x8D,0x09,0x5F,0xAF,0x76, | |
| 896 | 0x48,0xB2,0x85,0xB9,0x95,0x4C,0x83,0x42,0x3D,0xAD,0x11,0xEC,0xCA,0x82,0xAC,0x10, | |
| 897 | 0x01,0xD0,0xFD,0x50,0x19,0x67,0x3B,0xA0,0x3E,0x86,0xC2,0x97,0x46,0xCB,0xF4,0xF5, | |
| 898 | 0xB3,0x5F,0x50,0x74,0xE9,0x5F,0xD2,0xD4,0xB0,0x8D,0x8A,0x21,0xED,0x37,0x80,0x47, | |
| 899 | 0x9D,0x68,0xC7,0xD9,0x12,0x4E,0xDF,0x1E,0x72,0xEB,0x50,0x5E,0x6D,0x00,0x85,0x6B, | |
| 900 | 0x3E,0x37,0xE6,0x72,0xE5,0x8F,0x3A,0x03,0xA3,0x0D,0x3B,0x5F,0xB6,0xA1,0x7B,0x02, | |
| 901 | 0x56,0x56,0x77,0x71,0xEF,0xBE,0xF9,0x46,0xA1,0x9D,0xB3,0x79,0xF6,0xD5,0x19,0xF0, | |
| 902 | 0xE2,0x91,0x7E,0x4A,0x01,0xB6,0x73,0xE8,0x0C,0x86,0x5D,0x3E,0x9C,0x97,0x55,0x58, | |
| 903 | 0x23,0xF4,0x45,0xB0,0x28,0x91,0x40,0x2F,0xC2,0xF4,0x21,0x81,0x58,0x22,0x68,0x9D, | |
| 904 | 0x97,0xC7,0x51,0x95,0xB4,0xAA,0x36,0x9B,0xE4,0x51,0x27,0x55,0x18,0xF0,0xC7,0x62, | |
| 905 | 0xFE,0x98,0x6A,0x2D,0x35,0x9D,0x6C,0xF1,0xCF,0x48,0xD4,0x0D,0x0C,0xBE,0x2A,0x8A, | |
| 906 | 0x55,0x31,0x96,0xEA,0x78,0x45,0x3A,0x33,0x23,0xC5,0xD1,0x3C,0xA3,0x86,0x88,0x38, | |
| 907 | }; | |
| 908 | ||
| 909 | void pgm_oldss_decrypt(running_machine *machine) | |
| 911 | void pgm_svg_decrypt(running_machine *machine) | |
| 910 | 912 | { |
| 911 | 913 | int i; |
| 912 | | |
| 914 | UINT16 | |
| 913 | 915 | |
| 914 | int rom_size = 0x | |
| 916 | int rom_size = 0x800000; | |
| 915 | 917 | |
| 916 | 918 | for(i=0; i<rom_size/2; i++) { |
| 917 | | |
| 919 | UINT16 | |
| 918 | 920 | |
| 919 | if((i & 0x040 | |
| 921 | if((i & 0x040080) != 0x000080 | |
| 920 | 922 | x ^= 0x0001; |
| 921 | 923 | |
| 922 | if((i & 0x004008) == 0x004008 | |
| 924 | if((i & 0x004008) == 0x004008 | |
| 923 | 925 | x ^= 0x0002; |
| 924 | 926 | |
| 925 | if((i & 0x000 | |
| 927 | if((i & 0x0800 | |
| 926 | 928 | x ^= 0x0004; |
| 927 | 929 | |
| 928 | if((i & 0x000 | |
| 930 | if((i & 0x000042) != 0x000042 | |
| 929 | 931 | x ^= 0x0008; |
| 930 | 932 | |
| 931 | if((i & 0x048100) == 0x048000 | |
| 933 | if((i & 0x048100) == 0x048000 | |
| 932 | 934 | x ^= 0x0010; |
| 933 | 935 | |
| 934 | if((i & 0x002004) != 0x000004 | |
| 936 | if((i & 0x002004) != 0x000004 | |
| 935 | 937 | x ^= 0x0020; |
| 936 | 938 | |
| 937 | if((i & 0x011800) != 0x010000 | |
| 939 | if((i & 0x011800) != 0x010000 | |
| 938 | 940 | x ^= 0x0040; |
| 939 | 941 | |
| 940 | if((i & 0x000820) == 0x000820 | |
| 942 | if((i & 0x000820) == 0x000820 | |
| 941 | 943 | x ^= 0x0080; |
| 942 | 944 | |
| 943 | x ^= oldss_tab[i & 0xff] << 8; | |
| 944 | ||
| 945 | 945 | src[i] = x; |
| 946 | 946 | } |
| 947 | 947 | } |
| r4470 | r4471 | |
|---|---|---|
| 124 | 124 | static UINT32 maple_regs[0x100/4]; |
| 125 | 125 | static UINT32 dc_rtcregister[4]; |
| 126 | 126 | static UINT32 g1bus_regs[0x100/4]; |
| 127 | static UINT32 g2bus_regs[0x100/4]; | |
| 127 | 128 | UINT8 maple0x86data1[0x80]; |
| 128 | 129 | static UINT8 maple0x86data2[0x400]; |
| 129 | 130 | static emu_timer *dc_rtc_timer; |
| r4470 | r4471 | |
| 274 | 275 | case SB_C2DST: |
| 275 | 276 | address=dc_sysctrl_regs[SB_C2DSTAT]; |
| 276 | 277 | ddtdata.destination=address; |
| 278 | /* 0 rounding size = 16 Mbytes */ | |
| 279 | if(dc_sysctrl_regs[SB_C2DLEN] == 0) { dc_sysctrl_regs[SB_C2DLEN] = 0x1000000; } | |
| 277 | 280 | ddtdata.length=dc_sysctrl_regs[SB_C2DLEN]; |
| 278 | 281 | ddtdata.size=1; |
| 279 | 282 | ddtdata.direction=0; |
| r4470 | r4471 | |
| 625 | 628 | jvs_command=0; |
| 626 | 629 | ddtdata.length = (tocopy+7)/4; |
| 627 | 630 | } |
| 631 | else if (subcommand == 0x33) // "direct mode" input port reading | |
| 632 | { | |
| 633 | int tocopy; | |
| 634 | ||
| 635 | maple0x86data2[0] = 0xa0; | |
| 636 | for (a=1;a < 32;a++) | |
| 637 | maple0x86data2[a] = maple0x86data2[a-1] + 1; | |
| 638 | maple0x86data2[3] = maple0x86data2[3] | 0x0c; | |
| 639 | maple0x86data2[6] = maple0x86data2[6] & 0xcf; | |
| 640 | ||
| 641 | a = input_port_read(space->machine, "IN0"); // put keys here | |
| 642 | maple0x86data2[6] = maple0x86data2[6] | (a << 4); | |
| 643 | ||
| 644 | tocopy = 8+0x11+16; | |
| 645 | /* valid data check*/ | |
| 646 | maple0x86data2[0x11] = 0x00; | |
| 647 | maple0x86data2[0x12] = 0x8e; | |
| 648 | maple0x86data2[0x13] = 0x01; | |
| 649 | maple0x86data2[0x14] = 0x00; | |
| 650 | maple0x86data2[0x15] = 0xff; | |
| 651 | maple0x86data2[0x16] = 0xe0; | |
| 652 | maple0x86data2[0x19] = 0x01; | |
| 653 | ||
| 654 | /* read the inputs */ | |
| 655 | maple0x86data2[0x1a]=1; | |
| 656 | maple0x86data2[0x1b]=2; //number of players | |
| 657 | maple0x86data2[0x1c]=input_port_read(space->machine, "IN1"); | |
| 658 | maple0x86data2[0x1d]=input_port_read(space->machine, "IN2"); | |
| 659 | maple0x86data2[0x1e]=input_port_read(space->machine, "IN3"); | |
| 660 | maple0x86data2[0x1f]=input_port_read(space->machine, "IN4"); | |
| 661 | maple0x86data2[0x20]=1; | |
| 662 | maple0x86data2[0x21]=(dc_coin_counts[0] >> 8) & 0xff; //coin counter read-back hi byte | |
| 663 | maple0x86data2[0x22]=dc_coin_counts[0] & 0xff; //coin counter read-back lo byte | |
| 664 | maple0x86data2[0x23]=(dc_coin_counts[1] >> 8) & 0xff; | |
| 665 | maple0x86data2[0x24]=dc_coin_counts[1] & 0xff; | |
| 666 | maple0x86data2[0x25]=1; | |
| 667 | maple0x86data2[0x26]=1; | |
| 668 | maple0x86data2[0x27]=0; | |
| 669 | maple0x86data2[0x28]=0; | |
| 670 | maple0x86data2[0x29]=0; | |
| 671 | maple0x86data2[0x2a]=0; | |
| 672 | /*0x2b-0x2f rotary inputs */ | |
| 673 | //... | |
| 674 | ||
| 675 | // command end flag | |
| 676 | maple0x86data2[0x18]= (jvs_command == -1) ? 19 : 17; | |
| 677 | maple0x86data2[0x15]= (jvs_command == -1) ? 24 : 16; | |
| 678 | ||
| 679 | for (a=0;a < tocopy;a=a+4) | |
| 680 | buff[1+a/4] = maple0x86data2[a] | (maple0x86data2[a+1] << 8) | (maple0x86data2[a+2] << 16) | (maple0x86data2[a+3] << 24); | |
| 681 | ||
| 682 | //jvs_command=0; | |
| 683 | ddtdata.length = (tocopy+7)/4; | |
| 684 | } | |
| 628 | 685 | else if (subcommand == 0x21) |
| 629 | 686 | { |
| 630 | 687 | // 21,*c295407 (77),*c295404,*c295405,*c295406,0,1,0 |
| r4470 | r4471 | |
| 751 | 808 | dat = (UINT32)(data >> shift); |
| 752 | 809 | old = g1bus_regs[reg]; |
| 753 | 810 | |
| 754 | g1bus_regs[reg] = dat; // 5f | |
| 811 | g1bus_regs[reg] = dat; // 5f7400+reg*4=dat | |
| 755 | 812 | mame_printf_verbose("G1CTRL: [%08x=%x] write %llx to %x, mask %llx\n", 0x5f7400+reg*4, dat, data, offset, mem_mask); |
| 756 | 813 | switch (reg) |
| 757 | 814 | { |
| 758 | 815 | case SB_GDST: |
| 759 | if ( | |
| 816 | if ( | |
| 760 | 817 | { |
| 761 | if ( | |
| 818 | if ( | |
| 762 | 819 | { |
| 763 | 820 | mame_printf_verbose("G1CTRL: unsupported transfer\n"); |
| 764 | 821 | return; |
| r4470 | r4471 | |
| 788 | 845 | |
| 789 | 846 | reg = decode_reg32_64(space->machine, offset, mem_mask, &shift); |
| 790 | 847 | mame_printf_verbose("G2CTRL: Unmapped read %08x\n", 0x5f7800+reg*4); |
| 791 | return | |
| 848 | return (UINT64)g2bus_regs[reg] << shift; | |
| 792 | 849 | } |
| 793 | 850 | |
| 794 | 851 | WRITE64_HANDLER( dc_g2_ctrl_w ) |
| 795 | 852 | { |
| 796 | 853 | int reg; |
| 797 | 854 | UINT64 shift; |
| 798 | UINT32 dat; | |
| 799 | static UINT32 wave_dma_aica_addr,wave_dma_root_addr,wave_dma_size,wave_dma_dir,wave_dma_flag; | |
| 855 | UINT32 dat,old; | |
| 856 | static struct { | |
| 857 | UINT32 aica_addr; | |
| 858 | UINT32 root_addr; | |
| 859 | UINT32 size; | |
| 860 | UINT8 dir; | |
| 861 | UINT8 flag; | |
| 862 | UINT8 indirect; | |
| 863 | UINT8 start; | |
| 864 | }wave_dma; | |
| 800 | 865 | |
| 801 | 866 | reg = decode_reg32_64(space->machine, offset, mem_mask, &shift); |
| 802 | 867 | dat = (UINT32)(data >> shift); |
| 868 | old = g2bus_regs[reg]; | |
| 869 | ||
| 870 | g2bus_regs[reg] = dat; // 5f7800+reg*4=dat | |
| 871 | ||
| 803 | 872 | switch (reg) |
| 804 | 873 | { |
| 805 | 874 | /*AICA Address register*/ |
| 806 | case SB_ADSTAG: | |
| 807 | //printf("SB_ADSTAG data %08x\n",dat); | |
| 808 | wave_dma_aica_addr = dat; | |
| 809 | break; | |
| 875 | case SB_ADSTAG: wave_dma.aica_addr = dat; break; | |
| 810 | 876 | /*Root address (work ram)*/ |
| 811 | case SB_ADSTAR: | |
| 812 | //printf("SB_ADSTAR data %08x\n",dat); | |
| 813 | wave_dma_root_addr = dat; | |
| 814 | break; | |
| 877 | case SB_ADSTAR: wave_dma.root_addr = dat; break; | |
| 815 | 878 | /*DMA size (in dword units, bit 31 is "set dma initiation enable setting to 0"*/ |
| 816 | 879 | case SB_ADLEN: |
| 817 | //printf("SB_ADLEN data %08x\n",dat); | |
| 818 | wave_dma_size = dat & 0x7fffffff; | |
| 880 | wave_dma.size = dat & 0x7fffffff; | |
| 881 | wave_dma.indirect = (dat & 0x80000000)>>31; | |
| 819 | 882 | break; |
| 820 | 883 | /*0 = root memory to aica / 1 = aica to root memory*/ |
| 821 | case SB_ADDIR: | |
| 822 | //printf("SB_ADDIR data %08x\n",dat); | |
| 823 | wave_dma_dir = 1 ^ (dat & 1); | |
| 824 | break; | |
| 884 | case SB_ADDIR: wave_dma.dir = (dat & 1); break; | |
| 825 | 885 | /*dma flag (active HIGH, bug in docs)*/ |
| 826 | case SB_ADEN: | |
| 827 | //printf("SB_ADEN data %08x\n",dat); | |
| 828 | wave_dma_flag = (dat & 1); | |
| 829 | break; | |
| 886 | case SB_ADEN: wave_dma.flag = (dat & 1); break; | |
| 830 | 887 | case SB_ADTSEL: |
| 831 | 888 | mame_printf_verbose("G2CTRL: initiation mode %d\n",dat); |
| 832 | //printf("SB_ADTSEL data %08x\n",dat); | |
| 889 | //mame_printf_verbose("SB_ADTSEL data %08x\n",dat); | |
| 833 | 890 | break; |
| 834 | 891 | /*ready for dma'ing*/ |
| 835 | 892 | case SB_ADST: |
| 836 | 893 | mame_printf_verbose("G2CTRL: AICA:G2-DMA start\n"); |
| 837 | //printf("SB_ADST data %08x\n",dat); | |
| 838 | if(wave_dma_flag) | |
| 894 | //mame_printf_verbose("AICA: G2-DMA start\n"); | |
| 895 | //mame_printf_verbose("%08x %08x %08x %02x\n",wave_dma.aica_addr,wave_dma.root_addr,wave_dma.size,wave_dma.indirect); | |
| 896 | wave_dma.start = dat & 1; | |
| 897 | //mame_printf_verbose("SB_ADST data %08x\n",dat); | |
| 898 | if(wave_dma.flag && wave_dma.start) | |
| 839 | 899 | { |
| 840 | 900 | UINT32 src,dst,size; |
| 841 | src = wave_dma_aica_addr; | |
| 842 | dst = wave_dma_root_addr; | |
| 843 | //size = wave_dma_size; | |
| 901 | dst = wave_dma.aica_addr; | |
| 902 | src = wave_dma.root_addr; | |
| 844 | 903 | size = 0; |
| 904 | /* 0 rounding size = 32 Mbytes */ | |
| 905 | if(wave_dma.size == 0) { wave_dma.size = 0x200000; } | |
| 906 | ||
| 845 | 907 | /* TODO: use the ddt function. */ |
| 846 | if(wave_dma | |
| 908 | if(wave_dma.dir == 0) | |
| 847 | 909 | { |
| 848 | for(;size<wave_dma_size;size++) | |
| 849 | memory_write_dword_64le(space,wave_dma_aica_addr+size*4,memory_read_dword(space,wave_dma_root_addr+size*4)); | |
| 910 | for(;size<wave_dma.size;size+=4) | |
| 911 | { | |
| 912 | memory_write_dword_64le(space,dst,memory_read_dword(space,src)); | |
| 913 | src+=4; | |
| 914 | dst+=4; | |
| 915 | } | |
| 850 | 916 | } |
| 851 | 917 | else |
| 852 | 918 | { |
| 853 | for(;size<wave_dma_size;size++) | |
| 854 | memory_write_dword_64le(space,wave_dma_root_addr+size*4,memory_read_dword(space,wave_dma_aica_addr+size*4)); | |
| 919 | for(;size<wave_dma.size;size+=4) | |
| 920 | { | |
| 921 | memory_write_dword_64le(space,src,memory_read_dword(space,dst)); | |
| 922 | src+=4; | |
| 923 | dst+=4; | |
| 924 | } | |
| 855 | 925 | } |
| 926 | /* update the params*/ | |
| 927 | wave_dma.aica_addr = g2bus_regs[SB_ADSTAG] = dst; | |
| 928 | wave_dma.root_addr = g2bus_regs[SB_ADSTAR] = src; | |
| 929 | wave_dma.size = g2bus_regs[SB_ADLEN] = 0; | |
| 930 | wave_dma.flag = (wave_dma.indirect & 1) ? 1 : 0; | |
| 931 | wave_dma.start = g2bus_regs[SB_ADST] = 0; | |
| 932 | dc_sysctrl_regs[SB_ISTNRM] |= IST_DMA_AICA; | |
| 856 | 933 | } |
| 857 | 934 | break; |
| 858 | 935 | } |
| r4470 | r4471 | |
|---|---|---|
| 240 | 240 | { |
| 241 | 241 | naomibd_state *v = get_safe_token(device); |
| 242 | 242 | |
| 243 | i | |
| 243 | switch( | |
| 244 | 244 | { |
| 245 | // DMA_OFFSETH | |
| 246 | v->dma_offset &= 0xffff; | |
| 247 | v->dma_offset |= (data >> 16) & 0x1fff0000; | |
| 248 | } | |
| 249 | else if ((offset == 2) && ACCESSING_BITS_0_15) | |
| 250 | { | |
| 251 | // DMA_OFFSETL | |
| 252 | v->dma_offset &= 0xffff0000; | |
| 253 | v->dma_offset |= (data & 0xffff); | |
| 254 | } | |
| 255 | else if ((offset == 0) && ACCESSING_BITS_0_15) | |
| 256 | { | |
| 257 | // ROM_OFFSETH | |
| 258 | v->rom_offset &= 0xffff; | |
| 259 | v->rom_offset |= (data & 0x1fff)<<16; | |
| 260 | v->rom_offset_flags = data >> 13; | |
| 261 | } | |
| 262 | else if ((offset == 0) && ACCESSING_BITS_32_47) | |
| 263 | { | |
| 264 | // ROM_OFFSETL | |
| 265 | v->rom_offset &= 0xffff0000; | |
| 266 | v->rom_offset |= ((data >> 32) & 0xffff); | |
| 267 | } | |
| 268 | else if ((offset == 1) && ACCESSING_BITS_0_15) | |
| 269 | { | |
| 270 | // ROM_DATA | |
| 271 | // Doa2 writes here (16 bit decryption key ?) | |
| 272 | //mame_printf_verbose("%s:ROM: write %llx to 5f7008\n", cpuexec_describe_context(machine), data); | |
| 273 | } | |
| 274 | else if ((offset == 15) && ACCESSING_BITS_0_15) | |
| 275 | { | |
| 276 | running_machine *machine = device->machine; | |
| 245 | case 0: | |
| 246 | { | |
| 247 | if(ACCESSING_BITS_0_15) | |
| 248 | { | |
| 249 | // ROM_OFFSETH | |
| 250 | v->rom_offset &= 0xffff; | |
| 251 | v->rom_offset |= (data & 0x1fff)<<16; | |
| 252 | v->rom_offset_flags = data >> 13; | |
| 253 | } | |
| 254 | if(ACCESSING_BITS_32_47) | |
| 255 | { | |
| 256 | // ROM_OFFSETL | |
| 257 | v->rom_offset &= 0xffff0000; | |
| 258 | v->rom_offset |= ((data >> 32) & 0xffff); | |
| 259 | } | |
| 260 | } | |
| 261 | break; | |
| 262 | case 1: | |
| 263 | { | |
| 264 | if(ACCESSING_BITS_32_47 || ACCESSING_BITS_32_63) | |
| 265 | { | |
| 266 | // DMA_OFFSETH | |
| 267 | v->dma_offset &= 0xffff; | |
| 268 | v->dma_offset |= (data >> 16) & 0x1fff0000; | |
| 269 | } | |
| 270 | if(ACCESSING_BITS_0_15) | |
| 271 | { | |
| 272 | // ROM_DATA | |
| 273 | // Doa2 writes here (16 bit decryption key ?) | |
| 274 | //mame_printf_verbose("%s:ROM: write %llx to 5f7008\n", cpuexec_describe_context(machine), data); | |
| 275 | } | |
| 276 | } | |
| 277 | break; | |
| 278 | case 2: | |
| 279 | { | |
| 280 | if(ACCESSING_BITS_0_15) | |
| 281 | { | |
| 282 | // DMA_OFFSETL | |
| 283 | v->dma_offset &= 0xffff0000; | |
| 284 | v->dma_offset |= (data & 0xffff); | |
| 285 | } | |
| 286 | if(ACCESSING_BITS_32_63) | |
| 287 | { | |
| 288 | // NAOMI_DMA_COUNT | |
| 289 | v->dma_count = data >> 32; | |
| 290 | } | |
| 291 | } | |
| 292 | break; | |
| 293 | case 7: | |
| 294 | { | |
| 295 | if(ACCESSING_BITS_32_47) | |
| 296 | mame_printf_verbose("ROM: write 5f703c\n"); | |
| 297 | } | |
| 298 | break; | |
| 299 | case 8: | |
| 300 | { | |
| 301 | if(ACCESSING_BITS_0_15) | |
| 302 | mame_printf_verbose("ROM: write 5f7040\n"); | |
| 303 | if(ACCESSING_BITS_32_47) | |
| 304 | mame_printf_verbose("ROM: write 5f7044\n"); | |
| 305 | } | |
| 306 | break; | |
| 307 | case 9: | |
| 308 | { | |
| 309 | if(ACCESSING_BITS_0_15) | |
| 310 | mame_printf_verbose("ROM: write 5f7048\n"); | |
| 311 | if(ACCESSING_BITS_32_47) | |
| 312 | mame_printf_verbose("ROM: write 5f704c\n"); | |
| 313 | } | |
| 314 | break; | |
| 315 | case 15: | |
| 316 | { | |
| 317 | if(ACCESSING_BITS_0_15) | |
| 318 | { | |
| 319 | running_machine *machine = device->machine; | |
| 277 | 320 | |
| 278 | // NAOMI_BOARDID_WRITE | |
| 279 | x76f100_cs_write(machine, 0, (data >> 2) & 1 ); | |
| 280 | x76f100_rst_write(machine, 0, (data >> 3) & 1 ); | |
| 281 | x76f100_scl_write(machine, 0, (data >> 1) & 1 ); | |
| 282 | x76f100_sda_write(machine, 0, (data >> 0) & 1 ); | |
| 321 | // NAOMI_BOARDID_WRITE | |
| 322 | x76f100_cs_write(machine, 0, (data >> 2) & 1 ); | |
| 323 | x76f100_rst_write(machine, 0, (data >> 3) & 1 ); | |
| 324 | x76f100_scl_write(machine, 0, (data >> 1) & 1 ); | |
| 325 | x76f100_sda_write(machine, 0, (data >> 0) & 1 ); | |
| 326 | } | |
| 327 | } | |
| 328 | break; | |
| 329 | default: | |
| 330 | //mame_printf_verbose("%s: ROM: write %llx to %x, mask %llx\n", cpuexec_describe_context(machine), data, offset, mem_mask); | |
| 331 | break; | |
| 283 | 332 | } |
| 284 | else if ((offset == 2) && ACCESSING_BITS_32_63) | |
| 285 | { | |
| 286 | // NAOMI_DMA_COUNT | |
| 287 | v->dma_count = data >> 32; | |
| 288 | } | |
| 289 | else if ((offset == 7) && ACCESSING_BITS_32_47) | |
| 290 | { | |
| 291 | mame_printf_verbose("ROM: write 5f703c\n"); | |
| 292 | } | |
| 293 | else if ((offset == 8) && ACCESSING_BITS_0_15) | |
| 294 | { | |
| 295 | mame_printf_verbose("ROM: write 5f7040\n"); | |
| 296 | } | |
| 297 | else if ((offset == 8) && ACCESSING_BITS_32_47) | |
| 298 | { | |
| 299 | mame_printf_verbose("ROM: write 5f7044\n"); | |
| 300 | } | |
| 301 | else if ((offset == 9) && ACCESSING_BITS_0_15) | |
| 302 | { | |
| 303 | mame_printf_verbose("ROM: write 5f7048\n"); | |
| 304 | } | |
| 305 | else if ((offset == 9) && ACCESSING_BITS_32_47) | |
| 306 | { | |
| 307 | mame_printf_verbose("ROM: write 5f704c\n"); | |
| 308 | } | |
| 309 | else | |
| 310 | { | |
| 311 | //mame_printf_verbose("%s: ROM: write %llx to %x, mask %llx\n", cpuexec_describe_context(machine), data, offset, mem_mask); | |
| 312 | } | |
| 313 | 333 | } |
| 314 | 334 | |
| 315 | 335 | |
| r4470 | r4471 | |
| 320 | 340 | * |
| 321 | 341 | *************************************/ |
| 322 | 342 | |
| 343 | #define FILENAME_LENGTH 16 | |
| 344 | ||
| 323 | 345 | static void load_rom_gdrom(running_machine* machine, naomibd_state *v) |
| 324 | 346 | { |
| 325 | 347 | UINT32 result; |
| r4470 | r4471 | |
| 328 | 350 | UINT8 *ptr; |
| 329 | 351 | UINT32 start,size,sectors,dir; |
| 330 | 352 | int pos,len,a; |
| 331 | char name[1 | |
| 353 | char name[128]; | |
| 332 | 354 | UINT64 key; |
| 333 | 355 | |
| 334 | memset(name, | |
| 356 | memset(name,'\ | |
| 335 | 357 | memcpy(name, v->picdata+33, 7); |
| 336 | 358 | memcpy(name+7, v->picdata+25, 7); |
| 337 | 359 | gdromfile = cdrom_open(v->gdromchd); |
| r4470 | r4471 | |
| 355 | 377 | // find data of file |
| 356 | 378 | start = 0; |
| 357 | 379 | size = 0; |
| 380 | printf("Looking for file %s\n", name); | |
| 358 | 381 | for (pos = 0;pos < 2048;pos += buffer[pos]) |
| 359 | 382 | { |
| 360 | 383 | a=0; |
| 361 | 384 | if (!(buffer[pos+25] & 2)) |
| 362 | 385 | { |
| 363 | 386 | len=buffer[pos+32]; |
| 364 | for (a=0;a < | |
| 387 | for (a=0;a < FILENAME_LENGTH;a++) | |
| 365 | 388 | { |
| 366 | 389 | if ((buffer[pos+33+a] == ';') && (name[a] == 0)) |
| 367 | 390 | { |
| 368 | a=1 | |
| 391 | a=FILENAME_LENGTH+1 | |
| 369 | 392 | break; |
| 370 | 393 | } |
| 371 | 394 | if (buffer[pos+33+a] != name[a]) |
| r4470 | r4471 | |
| 373 | 396 | if (a == len) |
| 374 | 397 | { |
| 375 | 398 | if (name[a] == 0) |
| 376 | a = 1 | |
| 399 | a = FILENAME_LENGTH+1 | |
| 377 | 400 | else |
| 378 | a = | |
| 401 | a = FILENAME_LENGTH; | |
| 379 | 402 | } |
| 380 | 403 | } |
| 381 | 404 | } |
| 382 | if (a == 1 | |
| 405 | if (a == FILENAME_LENGTH+1 | |
| 383 | 406 | { |
| 384 | 407 | // start sector and size of file |
| 385 | 408 | start=((buffer[pos+2] << 0) | |
| r4470 | r4471 | |
| 390 | 413 | (buffer[pos+11] << 8) | |
| 391 | 414 | (buffer[pos+12] << 16) | |
| 392 | 415 | (buffer[pos+13] << 24)); |
| 416 | ||
| 417 | printf("start %08x size %08x\n", start,size); | |
| 393 | 418 | break; |
| 394 | 419 | } |
| 395 | 420 | if (buffer[pos] == 0) |
| 396 | 421 | break; |
| 397 | 422 | } |
| 423 | ||
| 398 | 424 | if ((start != 0) && (size == 0x100)) |
| 399 | 425 | { |
| 400 | 426 | // read file |
| 401 | 427 | result = cdrom_read_data(gdromfile, start, buffer, CD_TRACK_MODE1); |
| 402 | 428 | // get "rom" file name |
| 403 | memcpy(name, buffer+0xc0, 14); | |
| 429 | memset(name,'\0', 128); | |
| 430 | memcpy(name, buffer+0xc0, FILENAME_LENGTH-1); | |
| 431 | ||
| 432 | ||
| 404 | 433 | // directory |
| 405 | 434 | result = cdrom_read_data(gdromfile, dir, buffer, CD_TRACK_MODE1); |
| 406 | 435 | // find data of "rom" file |
| 407 | 436 | start = 0; |
| 408 | 437 | size = 0; |
| 438 | ||
| 439 | printf("Looking for file %s\n", name); | |
| 409 | 440 | for (pos = 0;pos < 2048;pos += buffer[pos]) |
| 410 | 441 | { |
| 411 | 442 | a = 0; |
| 412 | 443 | if (!(buffer[pos+25] & 2)) |
| 413 | 444 | { |
| 414 | 445 | len = buffer[pos+32]; |
| 415 | for (a=0;a < | |
| 446 | for (a=0;a < FILENAME_LENGTH;a++) | |
| 416 | 447 | { |
| 417 | 448 | if ((buffer[pos+33+a] == ';') && (name[a] == 0)) |
| 418 | 449 | { |
| 419 | a=1 | |
| 450 | a=FILENAME_LENGTH+1 | |
| 420 | 451 | break; |
| 421 | 452 | } |
| 422 | 453 | if (buffer[pos+33+a] != name[a]) |
| r4470 | r4471 | |
| 424 | 455 | if (a == len) |
| 425 | 456 | { |
| 426 | 457 | if (name[a] == 0) |
| 427 | a = 1 | |
| 458 | a = (FILENAME_LENGTH+1); | |
| 428 | 459 | else |
| 429 | a = | |
| 460 | a = FILENAME_LENGTH; | |
| 430 | 461 | } |
| 431 | 462 | } |
| 432 | 463 | } |
| 433 | if (a == 1 | |
| 464 | if (a == (FILENAME_LENGTH+1)) | |
| 434 | 465 | { |
| 435 | 466 | // start sector and size of file |
| 436 | 467 | start=((buffer[pos+2] << 0) | |
| r4470 | r4471 | |
| 441 | 472 | (buffer[pos+11] << 8) | |
| 442 | 473 | (buffer[pos+12] << 16) | |
| 443 | 474 | (buffer[pos+13] << 24)); |
| 475 | ||
| 476 | printf("start %08x size %08x\n", start,size); | |
| 444 | 477 | break; |
| 445 | 478 | } |
| 446 | 479 | if (buffer[pos] == 0) |
| r4470 | r4471 | |
|---|---|---|
| 222 | 222 | } |
| 223 | 223 | |
| 224 | 224 | |
| 225 | static | |
| 225 | static WRITE_LINE_DEVICE_HANDLER( ipu_ctc_interrupt | |
| 226 | 226 | { |
| 227 | 227 | cputag_set_input_line(device->machine, "ipu", 0, state); |
| 228 | 228 | } |
| r4470 | r4471 | |
| 267 | 267 | |
| 268 | 268 | const z80pio_interface nflfoot_pio_intf = |
| 269 | 269 | { |
| 270 | ipu_ctc_interrupt, | |
| 271 | NULL, | |
| 272 | NULL, | |
| 273 | NULL, | |
| 274 | NULL, | |
| 275 | NULL, | |
| 276 | NULL | |
| 270 | DEVCB_LINE(ipu_ctc_interrupt), | |
| 271 | DEVCB_NULL, | |
| 272 | DEVCB_NULL, | |
| 273 | DEVCB_NULL, | |
| 274 | DEVCB_NULL, | |
| 275 | DEVCB_NULL, | |
| 276 | DEVCB_NULL | |
| 277 | 277 | }; |
| 278 | 278 | |
| 279 | 279 |
| r4470 | r4471 | |
|---|---|---|
| 339 | 339 | |
| 340 | 340 | des_generate_subkeys (rev64(key), des_subkeys); |
| 341 | 341 | |
| 342 | #ifdef MAME_DEBUG | |
| 342 | 343 | /* save the original file */ |
| 343 | 344 | { |
| 344 | 345 | FILE *fp; |
| r4470 | r4471 | |
| 351 | 352 | fclose(fp); |
| 352 | 353 | } |
| 353 | 354 | } |
| 355 | #endif | |
| 354 | 356 | |
| 355 | 357 | for(i=0;i<length;i+=8) |
| 356 | 358 | { |
| r4470 | r4471 | |
| 362 | 364 | write_from_qword(region+i, ret); |
| 363 | 365 | } |
| 364 | 366 | |
| 367 | #ifdef MAME_DEBUG | |
| 365 | 368 | /* save the decrypted file */ |
| 366 | 369 | { |
| 367 | 370 | FILE *fp; |
| r4470 | r4471 | |
| 374 | 377 | fclose(fp); |
| 375 | 378 | } |
| 376 | 379 | } |
| 377 | ||
| 380 | #endif | |
| 378 | 381 | } |
| 379 | 382 |
| r4470 | r4471 | |
|---|---|---|
| 56 | 56 | DRIVER( abscam ) /* hack */ |
| 57 | 57 | DRIVER( crush ) /* (c) 1981 Kural Samno Electric Ltd */ |
| 58 | 58 | DRIVER( crushbl ) /* bootleg */ |
| 59 | DRIVER( crushbl2 ) /* bootleg 2*/ | |
| 59 | 60 | DRIVER( crush2 ) /* (c) 1981 Kural Esco Electric Ltd - bootleg? */ |
| 60 | 61 | DRIVER( crush3 ) /* Kural Electric Ltd - bootleg? */ |
| 61 | 62 | DRIVER( crush4 ) /* Kural TWT */ |
| r4470 | r4471 | |
| 1633 | 1634 | DRIVER( undoukai ) /* A17 (c) 1984 Taito */ |
| 1634 | 1635 | DRIVER( 40love ) /* A30 (c) 1984 Taito */ |
| 1635 | 1636 | DRIVER( tsamurai ) /* A35 (c) 1985 Taito */ |
| 1636 | DRIVER( tsamura2 ) /* A35 (c) 1985 Taito */ | |
| 1637 | DRIVER( tsamurai2 ) /* A35 (c) 1985 Taito */ | |
| 1637 | 1638 | DRIVER( ladymstr ) /* A49 (c) 1985 Taito */ |
| 1638 | 1639 | DRIVER( nunchaku ) /* ??? (c) 1985 Taito */ |
| 1639 | 1640 | DRIVER( yamagchi ) /* A38 (c) 1985 Taito */ |
| r4470 | r4471 | |
| 1891 | 1892 | DRIVER( contcrua ) /* B33 (c) 1987 Taito America Corporation (US) */ |
| 1892 | 1893 | DRIVER( chasehq ) /* B52 (c) 1988 Taito Corporation Japan (World) */ |
| 1893 | 1894 | DRIVER( chasehqj ) /* B52 (c) 1988 Taito Corporation (Japan) */ |
| 1895 | DRIVER( chasehqu ) /* B52 (c) 1988 Taito America Corporation (US) */ | |
| 1894 | 1896 | DRIVER( enforce ) /* B58 (c) 1988 Taito Corporation (Japan) */ |
| 1895 | 1897 | DRIVER( nightstr ) /* B91 (c) 1989 Taito Corporation Japan (World) */ |
| 1896 | 1898 | DRIVER( nghtstrj ) /* B91 (c) 1989 Taito Corporation (Japan) */ |
| r4470 | r4471 | |
| 3472 | 3474 | |
| 3473 | 3475 | /* Sega System 1 / System 2 games */ |
| 3474 | 3476 | DRIVER( starjack ) /* 834-5191 (c) 1983 (S1) */ |
| 3475 | DRIVER( starjacs ) /* (c) 1983 Stern (S1) */ | |
| 3477 | DRIVER( starjacks ) /* (c) 1983 Stern (S1) */ | |
| 3476 | 3478 | DRIVER( regulus ) /* 834-5328?(c) 1983 (S1) */ |
| 3477 | 3479 | DRIVER( reguluso ) /* 834-5328?(c) 1983 (S1) */ |
| 3478 | 3480 | DRIVER( regulusu ) /* 834-5328?(c) 1983 (S1) */ |
| 3479 | 3481 | DRIVER( upndown ) /* (c) 1983 (S1) */ |
| 3480 | 3482 | DRIVER( upndownu ) /* (c) 1983 (S1) */ |
| 3481 | 3483 | DRIVER( mrviking ) /* 834-5383 (c) 1984 (S1) */ |
| 3482 | DRIVER( mrvikngj ) /* 834-5383 (c) 1984 (S1) */ | |
| 3484 | DRIVER( mrvikingj ) /* 834-5383 (c) 1984 (S1) */ | |
| 3483 | 3485 | DRIVER( swat ) /* 834-5388 (c) 1984 Coreland / Sega (S1) */ |
| 3484 | 3486 | DRIVER( flicky ) /* (c) 1984 (S1) */ |
| 3485 | DRIVER( flicks2 ) /* (c) 1984 (S1) */ | |
| 3487 | DRIVER( flickys2 ) /* (c) 1984 (S1) */ | |
| 3486 | 3488 | DRIVER( flickyo ) /* (c) 1984 (S1) */ |
| 3487 | DRIVER( flicks1 ) /* (c) 1984 (S1) */ | |
| 3489 | DRIVER( flickys1 ) /* (c) 1984 (S1) */ | |
| 3488 | 3490 | DRIVER( wmatch ) /* (c) 1984 (S1) */ |
| 3489 | 3491 | DRIVER( bullfgt ) /* 834-5478 (c) 1984 Sega / Coreland (S1) */ |
| 3490 | 3492 | DRIVER( thetogyu ) /* 834-5478 (c) 1984 Sega / Coreland (S1) */ |
| 3491 | 3493 | DRIVER( spatter ) /* 834-5583 (c) 1984 (S1) */ |
| 3492 | 3494 | DRIVER( ssanchan ) /* 834-5583 (c) 1984 (S1) */ |
| 3493 | 3495 | DRIVER( pitfall2 ) /* 834-5627 [1985?] reprogrammed, (c) 1984 Activision (S1) */ |
| 3494 | DRIVER( pitfalla ) /* 834-5627 [1985?] reprogrammed, (c) 1984 Activision (S1) */ | |
| 3495 | DRIVER( pitfallu ) /* 834-5627 [1985?] reprogrammed, (c) 1984 Activision (S1) */ | |
| 3496 | DRIVER( pitfall2a ) /* 834-5627 [1985?] reprogrammed, (c) 1984 Activision (S1) */ | |
| 3497 | DRIVER( pitfall2u ) /* 834-5627 [1985?] reprogrammed, (c) 1984 Activision (S1) */ | |
| 3496 | 3498 | DRIVER( seganinj ) /* 834-5677 (c) 1985 (S1) */ |
| 3497 | DRIVER( seganinu ) /* 834-5677 (c) 1985 (S1) */ | |
| 3499 | DRIVER( seganinju ) /* 834-5677 (c) 1985 (S1) */ | |
| 3498 | 3500 | DRIVER( ninja ) /* 834-5677 (c) 1985 (S1) */ |
| 3499 | 3501 | DRIVER( nprinces ) /* 834-5677 (c) 1985 (S1) */ |
| 3500 | DRIVER( nprincso ) /* 834-5677 (c) 1985 (S1) */ | |
| 3501 | DRIVER( nprincsu ) /* 834-5677 (c) 1985 (S1) */ | |
| 3502 | DRIVER( nprincsb ) /* bootleg? (S1) */ | |
| 3502 | DRIVER( nprinceso ) /* 834-5677 (c) 1985 (S1) */ | |
| 3503 | DRIVER( nprincesu ) /* 834-5677 (c) 1985 (S1) */ | |
| 3504 | DRIVER( nprincesb ) /* bootleg? (S1) */ | |
| 3503 | 3505 | DRIVER( imsorry ) /* 834-5707 (c) 1985 Coreland / Sega (S1) */ |
| 3504 | 3506 | DRIVER( imsorryj ) /* 834-5707 (c) 1985 Coreland / Sega (S1) */ |
| 3505 | 3507 | DRIVER( teddybb ) /* 834-5712 (c) 1985 (S1) */ |
| r4470 | r4471 | |
| 3509 | 3511 | DRIVER( sscandal ) /* 834-5755 (c) 1985 Coreland / Sega (S1) */ |
| 3510 | 3512 | DRIVER( myherok ) /* 834-5755 (c) 1985 Coreland / Sega (S1) */ |
| 3511 | 3513 | DRIVER( shtngmst ) /* 834-5719/5720 (c) 1985 (S2) */ |
| 3512 | DRIVER( shtngms1 ) /* 834-5719/5720 (c) 1985 (S2) */ | |
| 3513 | DRIVER( shtngmsa ) /* 834-5719/5720 (c) 1985 (S2) */ | |
| 3514 | DRIVER( chplft ) /* 834-5795 (c) 1985, (c) 1982 Dan Gorlin (S2) */ | |
| 3515 | DRIVER( chplftb ) /* 834-5795 (c) 1985, (c) 1982 Dan Gorlin (S2) */ | |
| 3516 | DRIVER( chplftbl ) /* bootleg (S2) */ | |
| 3514 | DRIVER( shtngmst1 ) /* 834-5719/5720 (c) 1985 (S2) */ | |
| 3515 | DRIVER( shtngmsta ) /* 834-5719/5720 (c) 1985 (S2) */ | |
| 3516 | DRIVER( choplift ) /* 834-5795 (c) 1985, (c) 1982 Dan Gorlin (S2) */ | |
| 3517 | DRIVER( chopliftu ) /* 834-5795 (c) 1985, (c) 1982 Dan Gorlin (S2) */ | |
| 3518 | DRIVER( chopliftbl )/* bootleg (S2) */ | |
| 3517 | 3519 | DRIVER( 4dwarrio ) /* 834-5918 (c) 1985 Coreland / Sega (S1) */ |
| 3518 | 3520 | DRIVER( brain ) /* (c) 1986 Coreland / Sega (S2?) */ |
| 3519 | 3521 | DRIVER( raflesia ) /* 834-5753 (c) 1985 Coreland / Sega (S1) */ |
| r4470 | r4471 | |
| 3531 | 3533 | DRIVER( nob ) /* (c) Data East */ |
| 3532 | 3534 | DRIVER( nobb ) /* bootleg */ |
| 3533 | 3535 | DRIVER( blockgal ) /* 834-6303 (S1) */ |
| 3534 | DRIVER( blckgalb ) /* bootleg */ | |
| 3536 | DRIVER( blockgalb ) /* bootleg */ | |
| 3535 | 3537 | DRIVER( tokisens ) /* (c) 1987 (from a bootleg board) (S2) */ |
| 3536 | 3538 | DRIVER( wbml ) /* bootleg (S2) */ |
| 3537 | 3539 | DRIVER( wbmljo ) /* (c) 1987 Sega/Westone (S2) */ |
| r4470 | r4471 | |
| 3540 | 3542 | DRIVER( wbmlbg ) /* bootleg (Galaxy Electronics) */ |
| 3541 | 3543 | DRIVER( dakkochn ) /* 836-6483? (S2) */ |
| 3542 | 3544 | DRIVER( ufosensi ) /* 834-6659 (S2) */ |
| 3543 | DRIVER( ufosensb ) /* bootleg */ | |
| 3545 | DRIVER( ufosensib ) /* bootleg */ | |
| 3544 | 3546 | /* |
| 3545 | 3547 | other System 1 / System 2 games: |
| 3546 | 3548 | |
| r4470 | r4471 | |
| 4356 | 4358 | DRIVER( ggxx ) /* 2002.05 Guilty Gear XX */ |
| 4357 | 4359 | /* 2002.05 Cleopatra Fortune + */ |
| 4358 | 4360 | DRIVER( mok ) /* 2002.05 The Maze of the Kings */ |
| 4359 | DRIVER( ngdup23a ) /* DIMM Firmware Updater */ | |
| 4360 | DRIVER( ngdup23c ) | |
| 4361 | 4361 | DRIVER( chocomk ) /* 2002.06 Musapy no Choco Marker */ |
| 4362 | 4362 | /* 2002.07 Mazan */ |
| 4363 | 4363 | /* 2002.09 Yonin Uchi Mahjong MJ */ |
| r4470 | r4471 | |
| 4394 | 4394 | DRIVER( takoron ) /* 2006.12.16 Noukone Puzzle Takoron */ |
| 4395 | 4395 | DRIVER( meltyba ) /* 2007.03 Melty Blood Act Cadenza ver.B Syuuseiban(ver.B2) */ |
| 4396 | 4396 | |
| 4397 | DRIVER( ngdup23a ) /* DIMM Firmware Updater */ | |
| 4398 | DRIVER( ngdup23c ) | |
| 4399 | ||
| 4397 | 4400 | /* Releases below use flash/mask ROMs like older NAOMI titles, not GD-ROM as GD-ROM Hardware (Drives and Discs) were no longer being produced */ |
| 4398 | 4401 | |
| 4399 | 4402 | /* 2007.07 Shooting Love */ |
| r4470 | r4471 | |
| 4436 | 4439 | DRIVER( initdexp ) /* 200?.?? Initial D Export Version */ |
| 4437 | 4440 | /* 2002.06 World Club Champion Football */ |
| 4438 | 4441 | /* 2002.07 Soul Surfer */ |
| 4439 | DRIVER( vf4evo ) /* 2002.08 Virtua Fighter 4 Evolution */ | |
| 4442 | DRIVER( vf4evo ) /* 2002.08 Virtua Fighter 4 Evolution (revision B) */ | |
| 4443 | DRIVER( vf4evoa ) | |
| 4440 | 4444 | DRIVER( initdv2j ) /* 2002.12 Initial D Arcade Stage ver.2 */ |
| 4441 | 4445 | /* 2002.12 Virtua Fighter 4 Evolution ver.B */ |
| 4442 | 4446 | /* 2003.03 WCCF 2001-2002 ver.2.0 */ |
| 4443 | 4447 | /* 2003.09 WCCF 2002-2003 */ |
| 4444 | /* 2004.01 Initial D Arcade Stage ver.3 */ | |
| 4448 | DRIVER( initdv3j ) /* 2004.01 Initial D Arcade Stage ver.3 */ | |
| 4449 | /* 2004.?? Initial D Arcade Stage ver.3 for CYCRAFT */ | |
| 4445 | 4450 | /* 2004.06 WCCF 2002-2003 ver.2.0 */ |
| 4446 | DRIVER( vf4tuned ) /* 2004.07 Virtua Fighter 4 Final Tuned */ | |
| 4451 | /* 2004.07 Virtua Fighter 4 Final Tuned */ | |
| 4452 | DRIVER( vf4tuneda ) /* 2004.09 Virtua Fighter 4 Final Tuned ver.A */ | |
| 4447 | 4453 | /* 2004.12 WCCF 2002-2003 ver.2.1 */ |
| 4448 | 4454 | /* 2005.01 Virtua Fighter 4 final Tuned ver.B */ |
| 4449 | 4455 | /* 2005.04 Menkyo no Tetsujin */ |
| 4450 | 4456 | /* 2005.07 WCCF 2004-2005 */ |
| 4451 | 4457 | /* 2006.08 WCCF European Clubs 2005-2006 */ |
| 4458 | DRIVER( vf4tunedd ) | |
| 4459 | DRIVER( vf4tuned ) /* 200?.?? Virtual fighter 4 Final Tuned ver.F */ | |
| 4452 | 4460 | |
| 4453 | 4461 | |
| 4454 | 4462 | /* Atomiswave (Dreamcast-based) games */ |
| r4470 | r4471 | |
| 4488 | 4496 | |
| 4489 | 4497 | /* Triforce (GameCube based) */ |
| 4490 | 4498 | DRIVER( triforce ) |
| 4491 | DRIVER( vs2002ex ) /* | |
| 4499 | DRIVER( vs2002ex ) /* | |
| 4492 | 4500 | /* 2003.06 F-ZERO AX */ |
| 4493 | 4501 | /* 2003.07 Avalon no Kagi */ |
| 4494 | 4502 | /* 2003.10 Avalon no Kagi ver.1.01 */ |
| 4495 | 4503 | DRIVER( gekpurya ) /* 2003.10 Gekitou Pro Yakyuu Mizushima Shinji All Stars vs. Pro Yakyuu */ |
| 4496 | 4504 | /* 2003.12 Avalon no Kagi ver.1.10 */ |
| 4497 | 4505 | /* 2004.04 Avalon no Kagi ver.1.20 Aratanaru Syoukan */ |
| 4498 | /* 2004.07 Avalon no Kagi ver.1.30 Konton no Utage */ | |
| 4499 | DRIVER( vs4 ) /* GDT-0015 2004.10 Virtua Striker 4 */ | |
| 4500 | /* 2004.11 Avalon no Kagi ver.2.0 Chitsujo to Kairitsu */ | |
| 4506 | DRIVER( avalon13 ) /* 2004.07 Avalon no Kagi ver.1.30 Konton no Utage */ | |
| 4507 | DRIVER( vs4 ) /* 2004.10 Virtua Striker 4 */ | |
| 4508 | DRIVER( avalon20 ) /* 2004.11 Avalon no Kagi ver.2.0 Chitsujo to Kairitsu */ | |
| 4509 | /* 2005.04 Virtua Striker 4 ver.A */ | |
| 4501 | 4510 | /* 2005.08 Avalon no Kagi ver.2.5 Kagi Seisen */ |
| 4511 | /* 2005.12 Mario Kart Arcade Grand Prix */ | |
| 4512 | /* 2006.05 Virtua Striker 4 ver.2006 */ | |
| 4513 | /* 2007.03 Mario Kart Arcade Grand Prix 2 */ | |
| 4502 | 4514 | |
| 4515 | DRIVER( tfupdate ) /* Triforce GDROM Boot Update (GDT-0011) */ | |
| 4516 | ||
| 4503 | 4517 | /* Chihiro (X-Box based) */ |
| 4504 | 4518 | DRIVER( chihiro ) |
| 4505 | 4519 | /* 2002.12 The House of the Dead III */ |
| r4470 | r4471 | |
| 4507 | 4521 | DRIVER( vcop3 ) /* 2003.04 Virtua Cop 3 */ |
| 4508 | 4522 | /* 2003.12 Outrun 2 */ |
| 4509 | 4523 | /* 2004.03 Ollie King */ |
| 4524 | /* 2004.03 Sega Network Taisen Mahjong MJ 2 */ | |
| 4525 | /* 2004.04 Sega Network Taisen Mahjong MJ 2 ver.B */ | |
| 4510 | 4526 | DRIVER( wangmid ) /* 2004.07 Wangan Midnight Maximum Tune */ |
| 4527 | DRIVER( mj2 ) /* 2004.07 Sega Network Taisen Mahjong MJ 2 ver.C */ | |
| 4511 | 4528 | /* 2004.09 Quest of D */ |
| 4512 | 4529 | /* 2004.11 Sega Golf Club Network Pro Tour */ |
| 4530 | /* 2004.12 Sega Network Taisen Mahjong MJ 2 ver.D */ | |
| 4513 | 4531 | /* 2004.12 Outrun 2 Special Tours */ |
| 4532 | /* 2004.12 Quest of D ver.1.02 */ | |
| 4514 | 4533 | /* 2004.12 Quest of D ver.1.10 */ |
| 4515 | 4534 | DRIVER( ghostsqu ) /* 2004.12 Ghost Squad */ |
| 4516 | 4535 | /* 2005.03 Kidou Senshi Gundam Battle Operating Simulator */ |
| 4517 | 4536 | /* 2005.03 Sangokushi Taisen */ |
| 4518 | /* 2005.04 Wangan Midnight Maximum Tune 2 */ | |
| 4519 | /* 2005.05 Quest of D ver.1.20 */ | |
| 4537 | DRIVER( wangmid2 ) /* 2005.04 Wangan Midnight Maximum Tune 2 */ | |
| 4538 | /* 2005.04 Sega Network Taisen Mahjong MJ 2 ver.E */ | |
| 4539 | /* 2005.04 Quest of D ver.1.20 */ | |
| 4540 | /* 2005.04 Quest of D ver.1.20a */ | |
| 4520 | 4541 | /* 2005.06 Sega Golf Club Network Pro Tour 2005 */ |
| 4542 | /* 2005.06 Sangokushi Taisen ver.1.003 */ | |
| 4521 | 4543 | /* 2005.09 Quest of D ver.1.21 */ |
| 4522 | 4544 | /* 2005.10 Sangokushi Taisen Ranse no Gunrou ver.1.100 */ |
| 4523 | 4545 | /* 2005.10 Wangan Midnight Maximum Tune 2 ver.B */ |
| 4524 | 4546 | /* 2005.12 Kidou Senshi Gundam 0079 Card Builder */ |
| 4547 | /* 2005.12 Quest of D ver.2.00 Gofu no Keisyousya */ | |
| 4525 | 4548 | /* 2005.12 Quest of D ver.2.01 Gofu no Keisyousya */ |
| 4526 | 4549 | /* 2005.12 Sega Golf Club 2006 Next Tours */ |
| 4550 | DRIVER( mj3 ) /* 2005.12 Sega Network Taisen Mahjong MJ 3 */ | |
| 4551 | /* 2006.02 Sangokushi Taisen Ranse no Gunrou ver.1.12 */ | |
| 4552 | /* 2006.03 Quest of D ver.2.01 Gofu no Keisyousya ver.2.02b */ | |
| 4527 | 4553 | /* 2006.05 Sangokushi Taisen 2 */ |
| 4554 | /* 2006.09 Sega Network Taisen Mahjong MJ 3 ver.B */ | |
| 4555 | /* 2006.10 Quest of D ver.3.00 Oukoku no Syugosya */ | |
| 4556 | /* 2006.11 Quest of D ver.3.01 Oukoku no Syugosya */ | |
| 4528 | 4557 | /* 2007.03 Kidou Senshi Gundam 0083 Card Builder */ |
| 4558 | /* 2007.03 Sega Network Taisen Mahjong MJ 3 Evolution */ | |
| 4529 | 4559 | /* 2007.10 Kidou Senshi Gundam 0083 Card Builder Ryouyuu Gekitotsu */ |
| 4560 | /* 2007.11 Quest of D The Battle Kingdom ver.4.00 */ | |
| 4561 | /* 2008.01 Quest of D The Battle Kingdom ver.4.00b */ | |
| 4562 | /* 2008.02 Quest of D The Battle Kingdom ver.4.00c */ | |
| 4563 | /* 2008.06 Quest of D The Battle Kingdom ver.4.01 */ | |
| 4530 | 4564 | |
| 4531 | 4565 | DRIVER( hshavoc ) /* (c) 1993 Data East */ |
| 4532 | 4566 | |
| r4470 | r4471 | |
| 5103 | 5137 | DRIVER( esckids ) /* GX975 (c) 1991 (Asia) */ |
| 5104 | 5138 | DRIVER( esckidsj ) /* GX975 (c) 1991 (Japan) */ |
| 5105 | 5139 | DRIVER( vendetta ) /* GX081 (c) 1991 (World) */ |
| 5106 | DRIVER( vendetao ) /* GX081 (c) 1991 (World) */ | |
| 5107 | DRIVER( vendet2p ) /* GX081 (c) 1991 (World) */ | |
| 5108 | DRIVER( vendetas ) /* GX081 (c) 1991 (Asia) */ | |
| 5109 | DRIVER( vendtaso ) /* GX081 (c) 1991 (Asia) */ | |
| 5110 | DRIVER( vendettj ) /* GX081 (c) 1991 (Japan) */ | |
| 5140 | DRIVER( vendettar ) /* GX081 (c) 1991 (World) */ | |
| 5141 | DRIVER( vendetta2p ) /* GX081 (c) 1991 (World) */ | |
| 5142 | DRIVER( vendetta2pu ) /* GX081 (c) 1991 (Asia) */ | |
| 5143 | DRIVER( vendetta2pd ) /* GX081 (c) 1991 (Asia) */ | |
| 5144 | DRIVER( vendettaj ) /* GX081 (c) 1991 (Japan) */ | |
| 5111 | 5145 | DRIVER( mogura ) /* GX141 (c) 1991 */ |
| 5112 | 5146 | DRIVER( wecleman ) /* GX602 (c) 1986 */ |
| 5113 | 5147 | DRIVER( hotchase ) /* GX763 (c) 1988 */ |
| r4470 | r4471 | |
| 5835 | 5869 | DRIVER( hydrap ) /* (proto) (c) 1990 */ |
| 5836 | 5870 | DRIVER( hydrap2 ) /* (proto) (c) 1990 */ |
| 5837 | 5871 | DRIVER( pitfight ) /* 136081 (c) 1990 */ |
| 5872 | DRIVER( pitfigh6 ) /* 136081 (c) 1990 */ | |
| 5838 | 5873 | DRIVER( pitfigh4 ) /* 136081 (c) 1990 */ |
| 5839 | 5874 | DRIVER( pitfigh3 ) /* 136081 (c) 1990 */ |
| 5840 | 5875 | DRIVER( pitfighj ) /* Japan */ |
| r4470 | r4471 | |
| 6278 | 6313 | DRIVER( champb2a ) /* (c) 1983 ? */ |
| 6279 | 6314 | DRIVER( exctsccr ) /* (c) 1983 Alpha Denshi Co. */ |
| 6280 | 6315 | DRIVER( exctscca ) /* (c) 1983 Alpha Denshi Co. */ |
| 6316 | DRIVER( exctsccj ) /* (c) 1983 Alpha Denshi Co. */ | |
| 6281 | 6317 | DRIVER( exctsccb ) /* bootleg */ |
| 6282 | 6318 | DRIVER( exctscc2 ) /* (c) 1984 Alpha Denshi Co. */ |
| 6283 | 6319 | DRIVER( talbot ) /* Volt Electronics */ |
| r4470 | r4471 | |
| 7909 | 7945 | DRIVER( martmast ) /* (c) 2001 */ |
| 7910 | 7946 | DRIVER( martmasc ) /* (c) 2001 */ |
| 7911 | 7947 | DRIVER( theglad ) /* (c) 2001 */ |
| 7948 | DRIVER( theglada ) /* (c) 2001 */ | |
| 7912 | 7949 | DRIVER( dmnfrnt ) /* (c) 2002 */ |
| 7913 | 7950 | DRIVER( dmnfrnta ) /* (c) 2002 */ |
| 7914 | DRIVER( kovh ) | |
| 7915 | DRIVER( oldss ) | |
| 7951 | DRIVER( kovshp ) | |
| 7952 | DRIVER( oldsplus ) | |
| 7916 | 7953 | DRIVER( killbldp ) |
| 7917 | 7954 | DRIVER( svg ) |
| 7918 | 7955 | |
| r4470 | r4471 | |
| 8510 | 8547 | DRIVER( megat4a ) /* (c) 1996 Merit */ |
| 8511 | 8548 | DRIVER( megat4sn ) /* (c) 1996 Merit */ |
| 8512 | 8549 | DRIVER( megat4te ) /* (c) 1996 Merit */ |
| 8550 | DRIVER( megat4st ) /* (c) 1996 Merit */ | |
| 8513 | 8551 | DRIVER( megat5 ) /* (c) 1997 Merit */ |
| 8514 | 8552 | DRIVER( megat5nj ) /* (c) 1997 Merit */ |
| 8515 | 8553 | DRIVER( megat6 ) /* (c) 1998 Merit */ |
| r4470 | r4471 | |
| 8622 | 8660 | DRIVER( attckufo ) /* (c) 1980 Ryoto Electric Co. */ |
| 8623 | 8661 | DRIVER( fortecar ) |
| 8624 | 8662 | DRIVER( jackpool ) /* (c) 1997 Electronic Projects */ |
| 8625 | DRIVER( murogem ) /* ??? */ | |
| 8663 | DRIVER( murogem ) /* ??? */ | |
| 8626 | 8664 | DRIVER( murogema ) /* ??? */ |
| 8665 | DRIVER( murogmbl ) /* ??? */ | |
| 8627 | 8666 | DRIVER( lasvegas ) /* hack */ |
| 8628 | 8667 | DRIVER( quizmstr ) /* (c) 1985 Coinmaster */ |
| 8629 | 8668 | DRIVER( trailblz ) /* (c) 1987 Coinmaster */ |
| r4470 | r4471 | |
| 9199 | 9238 | DRIVER( atworld ) |
| 9200 | 9239 | DRIVER( atworlda ) |
| 9201 | 9240 | |
| 9241 | ||
| 9202 | 9242 | DRIVER( chsuper3 ) /* unknown */ |
| 9203 | 9243 | DRIVER( chsuper2 ) /* unknown */ |
| 9204 | 9244 | DRIVER( 3super8 ) /* unknown */ |
| r4470 | r4471 | |
|---|---|---|
| 1 | 1 | /*----------- defined in drivers/tnzs.c -----------*/ |
| 2 | 2 | |
| 3 | extern UINT8 *tnzs_objram | |
| 3 | extern UINT8 *tnzs_objram | |
| 4 | 4 | extern UINT8 *tnzs_vdcram, *tnzs_scrollram, *tnzs_objctrl, *tnzs_bg_flag; |
| 5 | 5 | |
| 6 | 6 | |
| r4470 | r4471 | |
| 26 | 26 | WRITE8_HANDLER( tnzs_mcu_w ); |
| 27 | 27 | INTERRUPT_GEN( arknoid2_interrupt ); |
| 28 | 28 | MACHINE_RESET( tnzs ); |
| 29 | READ8_HANDLER( tnzs_sharedram_r ); | |
| 30 | 29 | WRITE8_HANDLER( tnzs_sharedram_w ); |
| 31 | 30 | WRITE8_HANDLER( tnzs_bankswitch_w ); |
| 32 | 31 | WRITE8_HANDLER( tnzs_bankswitch1_w ); |
| r0 | r4471 | |
|---|---|---|
| 1 | /*************************************************************************** | |
| 2 | ||
| 3 | Track'n'Field | |
| 4 | ||
| 5 | ***************************************************************************/ | |
| 6 | ||
| 7 | /*----------- defined in audio/trackfld.c -----------*/ | |
| 8 | ||
| 9 | WRITE8_HANDLER( konami_sh_irqtrigger_w ); | |
| 10 | READ8_HANDLER( trackfld_sh_timer_r ); | |
| 11 | READ8_DEVICE_HANDLER( trackfld_speech_r ); | |
| 12 | WRITE8_DEVICE_HANDLER( trackfld_sound_w ); | |
| 13 | READ8_HANDLER( hyperspt_sh_timer_r ); | |
| 14 | WRITE8_DEVICE_HANDLER( hyperspt_sound_w ); | |
| 15 | WRITE8_HANDLER( konami_SN76496_latch_w ); | |
| 16 | WRITE8_DEVICE_HANDLER( konami_SN76496_w ); | |
| 17 | ||
| 18 | ||
| 19 | /*----------- defined in video/trackfld.c -----------*/ | |
| 20 | ||
| 21 | extern UINT8 *trackfld_scroll; | |
| 22 | extern UINT8 *trackfld_scroll2; | |
| 23 | ||
| 24 | WRITE8_HANDLER( trackfld_videoram_w ); | |
| 25 | WRITE8_HANDLER( trackfld_colorram_w ); | |
| 26 | WRITE8_HANDLER( trackfld_flipscreen_w ); | |
| 27 | WRITE8_HANDLER( atlantol_gfxbank_w ); | |
| 28 | ||
| 29 | PALETTE_INIT( trackfld ); | |
| 30 | VIDEO_START( trackfld ); | |
| 31 | VIDEO_UPDATE( trackfld ); |
| r4470 | r4471 | |
|---|---|---|
| 99 | 99 | #define SB_ADST ((0x005F7818-0x005F7800)/4) |
| 100 | 100 | #define SB_ADSUSP ((0x005F781c-0x005F7800)/4) |
| 101 | 101 | |
| 102 | ||
| 102 | #define SB_PDSTAP ((0x005F7c00-0x005F7c00)/4) | |
| 103 | #define SB_PDSTAR ((0x005F7c04-0x005F7c00)/4) | |
| 104 | #define SB_PDLEN ((0x005F7c08-0x005F7c00)/4) | |
| 105 | #define SB_PDDIR ((0x005F7c0c-0x005F7c00)/4) | |
| 106 | #define SB_PDTSEL ((0x005F7c10-0x005F7c00)/4) | |
| 107 | #define SB_PDEN ((0x005F7c14-0x005F7c00)/4) | |
| 103 | 108 | #define SB_PDST ((0x005F7c18-0x005F7c00)/4) |
| 104 | 109 | |
| 105 | 110 | #define RTC1 ((0x00710000-0x00710000)/4) |
| r4470 | r4471 | |
|---|---|---|
| 23 | 23 | void pgm_theglad_decrypt(running_machine *machine); |
| 24 | 24 | void pgm_ddp2_decrypt(running_machine *machine); |
| 25 | 25 | void pgm_dfront_decrypt(running_machine *machine); |
| 26 | void pgm_svg_decrypt(running_machine *machine); | |
| 26 | void pgm_oldsplus_decrypt(running_machine *machine); | |
| 27 | void pgm_kovshp_decrypt(running_machine *machine); | |
| 27 | 28 | void pgm_killbldp_decrypt(running_machine *machine); |
| 28 | void pgm_kovh_decrypt(running_machine *machine); | |
| 29 | void pgm_oldss_decrypt(running_machine *machine); | |
| 29 | void pgm_svg_decrypt(running_machine *machine); | |
| 30 | 30 | |
| 31 | ||
| 31 | 32 | /*----------- defined in machine/pgmprot.c -----------*/ |
| 32 | 33 | |
| 33 | 34 | READ16_HANDLER (PSTARS_protram_r); |
| r4470 | r4471 | |
| 45 | 46 | READ16_HANDLER (dw2_d80000_r ); |
| 46 | 47 | |
| 47 | 48 | |
| 48 | /*----------- defined in machine/pgmy2ks.c -----------*/ | |
| 49 | ||
| 50 | extern const UINT32 pgmy2ks[0x3c00]; | |
| 51 | ||
| 52 | ||
| 53 | 49 | /*----------- defined in video/pgm.c -----------*/ |
| 54 | 50 | |
| 55 | 51 |
| r0 | r4471 | |
|---|---|---|
| 1 | /******************************************************************************* | |
| 2 | ||
| 3 | Input port macros used by many games in multiple KONAMI drivers | |
| 4 | ||
| 5 | *******************************************************************************/ | |
| 6 | ||
| 7 | ||
| 8 | /***************************** 8bit Players Inputs ****************************/ | |
| 9 | ||
| 10 | /*********************** Prototypes 8bit ***********************/ | |
| 11 | ||
| 12 | #define KONAMI8_MONO_4WAY( direction1, direction2, button1, button2, button3 ) \ | |
| 13 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_##direction1 ) PORT_4WAY \ | |
| 14 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_##direction2 ) PORT_4WAY \ | |
| 15 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY \ | |
| 16 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY \ | |
| 17 | PORT_BIT( 0x10, IP_ACTIVE_LOW, button1 ) \ | |
| 18 | PORT_BIT( 0x20, IP_ACTIVE_LOW, button2 ) \ | |
| 19 | PORT_BIT( 0x40, IP_ACTIVE_LOW, button3 ) | |
| 20 | ||
| 21 | #define KONAMI8_COCKTAIL_4WAY( direction1, direction2, button1, button2, button3 ) \ | |
| 22 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_##direction1 ) PORT_4WAY PORT_COCKTAIL \ | |
| 23 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_##direction2 ) PORT_4WAY PORT_COCKTAIL \ | |
| 24 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY PORT_COCKTAIL \ | |
| 25 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_COCKTAIL \ | |
| 26 | PORT_BIT( 0x10, IP_ACTIVE_LOW, button1 ) PORT_COCKTAIL \ | |
| 27 | PORT_BIT( 0x20, IP_ACTIVE_LOW, button2 ) PORT_COCKTAIL \ | |
| 28 | PORT_BIT( 0x40, IP_ACTIVE_LOW, button3 ) PORT_COCKTAIL | |
| 29 | ||
| 30 | #define KONAMI8_MONO_8WAY( direction1, direction2, button1, button2, button3 ) \ | |
| 31 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_##direction1 ) PORT_8WAY \ | |
| 32 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_##direction2 ) PORT_8WAY \ | |
| 33 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY \ | |
| 34 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY \ | |
| 35 | PORT_BIT( 0x10, IP_ACTIVE_LOW, button1 ) \ | |
| 36 | PORT_BIT( 0x20, IP_ACTIVE_LOW, button2 ) \ | |
| 37 | PORT_BIT( 0x40, IP_ACTIVE_LOW, button3 ) | |
| 38 | ||
| 39 | #define KONAMI8_COCKTAIL_8WAY( direction1, direction2, button1, button2, button3 ) \ | |
| 40 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_##direction1 ) PORT_8WAY PORT_COCKTAIL \ | |
| 41 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_##direction2 ) PORT_8WAY PORT_COCKTAIL \ | |
| 42 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL \ | |
| 43 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL \ | |
| 44 | PORT_BIT( 0x10, IP_ACTIVE_LOW, button1 ) PORT_COCKTAIL \ | |
| 45 | PORT_BIT( 0x20, IP_ACTIVE_LOW, button2 ) PORT_COCKTAIL \ | |
| 46 | PORT_BIT( 0x40, IP_ACTIVE_LOW, button3 ) PORT_COCKTAIL | |
| 47 | ||
| 48 | #define KONAMI8_MULTI_8WAY( player, direction1, direction2, button1, button2, button3 ) \ | |
| 49 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_##direction1 ) PORT_8WAY PORT_PLAYER(player) \ | |
| 50 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_##direction2 ) PORT_8WAY PORT_PLAYER(player) \ | |
| 51 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(player) \ | |
| 52 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(player) \ | |
| 53 | PORT_BIT( 0x10, IP_ACTIVE_LOW, button1 ) PORT_PLAYER(player) \ | |
| 54 | PORT_BIT( 0x20, IP_ACTIVE_LOW, button2 ) PORT_PLAYER(player) \ | |
| 55 | PORT_BIT( 0x40, IP_ACTIVE_LOW, button3 ) PORT_PLAYER(player) | |
| 56 | ||
| 57 | #define KONAMI8_LR_40( player, button1, button2, button3 ) \ | |
| 58 | KONAMI8_MULTI_8WAY( player, LEFT, RIGHT, button1, button2, button3 ) | |
| 59 | ||
| 60 | #define KONAMI8_RL_40( player, button1, button2, button3 ) \ | |
| 61 | KONAMI8_MULTI_8WAY( player, RIGHT, LEFT, button1, button2, button3 ) | |
| 62 | ||
| 63 | /*********************** Actual Inputs 8bit ***********************/ | |
| 64 | ||
| 65 | /* Cocktail Cabinet 4Way Inputs */ | |
| 66 | #define KONAMI8_MONO_4WAY_B12_UNK \ | |
| 67 | KONAMI8_MONO_4WAY( LEFT, RIGHT, IPT_BUTTON1, IPT_BUTTON2, IPT_UNKNOWN ) \ | |
| 68 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 69 | ||
| 70 | #define KONAMI8_COCKTAIL_4WAY_B12_UNK \ | |
| 71 | KONAMI8_COCKTAIL_4WAY( LEFT, RIGHT, IPT_BUTTON1, IPT_BUTTON2, IPT_UNKNOWN ) \ | |
| 72 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 73 | ||
| 74 | #define KONAMI8_MONO_4WAY_B123_UNK \ | |
| 75 | KONAMI8_MONO_4WAY( LEFT, RIGHT, IPT_BUTTON1, IPT_BUTTON2, IPT_BUTTON3 ) \ | |
| 76 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 77 | ||
| 78 | #define KONAMI8_COCKTAIL_4WAY_B123_UNK \ | |
| 79 | KONAMI8_COCKTAIL_4WAY( LEFT, RIGHT, IPT_BUTTON1, IPT_BUTTON2, IPT_BUTTON3 ) \ | |
| 80 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 81 | ||
| 82 | ||
| 83 | /* Cocktail Cabinet 8Way Inputs */ | |
| 84 | /* 1 Button */ | |
| 85 | #define KONAMI8_MONO_B1_UNK \ | |
| 86 | KONAMI8_MONO_8WAY( LEFT, RIGHT, IPT_BUTTON1, IPT_UNKNOWN, IPT_UNKNOWN ) \ | |
| 87 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 88 | ||
| 89 | #define KONAMI8_COCKTAIL_B1_UNK \ | |
| 90 | KONAMI8_COCKTAIL_8WAY( LEFT, RIGHT, IPT_BUTTON1, IPT_UNKNOWN, IPT_UNKNOWN ) \ | |
| 91 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 92 | ||
| 93 | /* 2 Buttons */ | |
| 94 | #define KONAMI8_MONO_B12_UNK \ | |
| 95 | KONAMI8_MONO_8WAY( LEFT, RIGHT, IPT_BUTTON1, IPT_BUTTON2, IPT_UNKNOWN ) \ | |
| 96 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 97 | ||
| 98 | #define KONAMI8_COCKTAIL_B12_UNK \ | |
| 99 | KONAMI8_COCKTAIL_8WAY( LEFT, RIGHT, IPT_BUTTON1, IPT_BUTTON2, IPT_UNKNOWN ) \ | |
| 100 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 101 | ||
| 102 | /* 3 Buttons */ | |
| 103 | #define KONAMI8_MONO_B123_UNK \ | |
| 104 | KONAMI8_MONO_8WAY( LEFT, RIGHT, IPT_BUTTON1, IPT_BUTTON2, IPT_BUTTON3 ) \ | |
| 105 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 106 | ||
| 107 | #define KONAMI8_COCKTAIL_B123_UNK \ | |
| 108 | KONAMI8_COCKTAIL_8WAY( LEFT, RIGHT, IPT_BUTTON1, IPT_BUTTON2, IPT_BUTTON3 ) \ | |
| 109 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 110 | ||
| 111 | #define KONAMI8_MONO_B213_UNK \ | |
| 112 | KONAMI8_MONO_8WAY( LEFT, RIGHT, IPT_BUTTON2, IPT_BUTTON1, IPT_BUTTON3 ) \ | |
| 113 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 114 | ||
| 115 | #define KONAMI8_COCKTAIL_B213_UNK \ | |
| 116 | KONAMI8_COCKTAIL_8WAY( LEFT, RIGHT, IPT_BUTTON2, IPT_BUTTON1, IPT_BUTTON3 ) \ | |
| 117 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 118 | ||
| 119 | /* 2 Buttons + Start */ | |
| 120 | #define KONAMI8_MONO_B12_START \ | |
| 121 | KONAMI8_MONO_8WAY( LEFT, RIGHT, IPT_BUTTON1, IPT_BUTTON2, IPT_UNKNOWN ) \ | |
| 122 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 ) | |
| 123 | ||
| 124 | #define KONAMI8_COCKTAIL_B12_START \ | |
| 125 | KONAMI8_COCKTAIL_8WAY( LEFT, RIGHT, IPT_BUTTON1, IPT_BUTTON2, IPT_UNKNOWN ) \ | |
| 126 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 ) | |
| 127 | ||
| 128 | ||
| 129 | /* Upright Multiplayer Cabinet Inputs */ | |
| 130 | /* 1 Button */ | |
| 131 | #define KONAMI8_B1( player ) \ | |
| 132 | KONAMI8_LR_40( player, IPT_BUTTON1, IPT_UNKNOWN, IPT_UNKNOWN ) | |
| 133 | ||
| 134 | #define KONAMI8_B1_UNK( player ) \ | |
| 135 | KONAMI8_B1( player ) \ | |
| 136 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 137 | ||
| 138 | /* 2 Buttons */ | |
| 139 | #define KONAMI8_B12( player ) \ | |
| 140 | KONAMI8_LR_40( player, IPT_BUTTON1, IPT_BUTTON2, IPT_UNKNOWN ) | |
| 141 | ||
| 142 | #define KONAMI8_B12_UNK( player ) \ | |
| 143 | KONAMI8_B12( player ) \ | |
| 144 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 145 | ||
| 146 | #define KONAMI8_B12_START( player ) \ | |
| 147 | KONAMI8_B12( player ) \ | |
| 148 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START##player ) | |
| 149 | ||
| 150 | #define KONAMI8_B12_COIN_START( player ) \ | |
| 151 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY \ | |
| 152 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY \ | |
| 153 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY \ | |
| 154 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY \ | |
| 155 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) \ | |
| 156 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) \ | |
| 157 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN##player ) \ | |
| 158 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START##player ) | |
| 159 | ||
| 160 | #define KONAMI8_B21_UNK( player ) \ | |
| 161 | KONAMI8_LR_40( player, IPT_BUTTON2, IPT_BUTTON1, IPT_UNKNOWN ) \ | |
| 162 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 163 | ||
| 164 | /* 3 Buttons */ | |
| 165 | #define KONAMI8_B123( player ) \ | |
| 166 | KONAMI8_LR_40( player, IPT_BUTTON1, IPT_BUTTON2, IPT_BUTTON3 ) | |
| 167 | ||
| 168 | #define KONAMI8_B123_UNK( player ) \ | |
| 169 | KONAMI8_B123( player ) \ | |
| 170 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) | |
| 171 | ||
| 172 | #define KONAMI8_B123_START( player ) \ | |
| 173 | KONAMI8_B123( player ) \ | |
| 174 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START##player ) | |
| 175 | ||
| 176 | #define KONAMI8_B132( player ) \ | |
| 177 | KONAMI8_LR_40( player, IPT_BUTTON1, IPT_BUTTON3, IPT_BUTTON2 ) | |
| 178 | ||
| 179 | #define KONAMI8_B321( player ) \ | |
| 180 | KONAMI8_LR_40( player, IPT_BUTTON3, IPT_BUTTON2, IPT_BUTTON1 ) | |
| 181 | ||
| 182 | ||
| 183 | /* vendetta.c uses inputs with switched Left/Right directions. We add these inputs here as well | |
| 184 | because they just need a few lines of code */ | |
| 185 | #define KONAMI8_RL_B12_COIN( player ) \ | |
| 186 | KONAMI8_RL_40( player, IPT_BUTTON1, IPT_BUTTON2, IPT_UNKNOWN ) \ | |
| 187 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN##player ) | |
| 188 | ||
| 189 | ||
| 190 | /* A few drivers uses bit0 for Start and shuffled joystick inputs */ | |
| 191 | #define KONAMI8_ALT( player, button1, button2, button3 ) \ | |
| 192 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START##player ) \ | |
| 193 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(player) \ | |
| 194 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(player) \ | |
| 195 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(player) \ | |
| 196 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(player) \ | |
| 197 | PORT_BIT( 0x20, IP_ACTIVE_LOW, button1 ) PORT_PLAYER(player) \ | |
| 198 | PORT_BIT( 0x40, IP_ACTIVE_LOW, button2 ) PORT_PLAYER(player) \ | |
| 199 | PORT_BIT( 0x80, IP_ACTIVE_LOW, button3 ) PORT_PLAYER(player) | |
| 200 | ||
| 201 | #define KONAMI8_ALT_B12( player ) \ | |
| 202 | KONAMI8_ALT( player, IPT_BUTTON1, IPT_BUTTON2, IPT_UNKNOWN ) | |
| 203 | ||
| 204 | #define KONAMI8_ALT_B21( player ) \ | |
| 205 | KONAMI8_ALT( player, IPT_BUTTON2, IPT_BUTTON1, IPT_UNKNOWN ) | |
| 206 | ||
| 207 | #define KONAMI8_ALT_B123( player ) \ | |
| 208 | KONAMI8_ALT( player, IPT_BUTTON1, IPT_BUTTON2, IPT_BUTTON3 ) | |
| 209 | ||
| 210 | ||
| 211 | /**************************** 16bit Players Inputs ****************************/ | |
| 212 | ||
| 213 | #define KONAMI16_LSB_40( player, button3 ) \ | |
| 214 | PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(player) \ | |
| 215 | PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(player) \ | |
| 216 | PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(player) \ | |
| 217 | PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(player) \ | |
| 218 | PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(player) \ | |
| 219 | PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(player) \ | |
| 220 | PORT_BIT( 0x0040, IP_ACTIVE_LOW, button3 ) PORT_PLAYER(player) | |
| 221 | ||
| 222 | #define KONAMI16_MSB_40( player, button3 ) \ | |
| 223 | PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(player) \ | |
| 224 | PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(player) \ | |
| 225 | PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(player) \ | |
| 226 | PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(player) \ | |
| 227 | PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(player) \ | |
| 228 | PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(player) \ | |
| 229 | PORT_BIT( 0x4000, IP_ACTIVE_LOW, button3 ) PORT_PLAYER(player) | |
| 230 | ||
| 231 | #define KONAMI16_LSB( player, button3, start ) \ | |
| 232 | KONAMI16_LSB_40( player, button3 ) \ | |
| 233 | PORT_BIT( 0x0080, IP_ACTIVE_LOW, start ) | |
| 234 | ||
| 235 | #define KONAMI16_MSB( player, button3, start ) \ | |
| 236 | KONAMI16_MSB_40( player, button3 ) \ | |
| 237 | PORT_BIT( 0x8000, IP_ACTIVE_LOW, start ) | |
| 238 | ||
| 239 | ||
| 240 | /******************** System Inputs (Coin, Start & Service) *******************/ | |
| 241 | ||
| 242 | #define KONAMI8_SYSTEM_10 \ | |
| 243 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) \ | |
| 244 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) \ | |
| 245 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 ) \ | |
| 246 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) \ | |
| 247 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 ) | |
| 248 | ||
| 249 | #define KONAMI8_SYSTEM_UNK \ | |
| 250 | KONAMI8_SYSTEM_10 \ | |
| 251 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) \ | |
| 252 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) \ | |
| 253 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) \ | |
| 254 | ||
| 255 | /**************************** Coinage Dip Swicthes ****************************/ | |
| 256 | ||
| 257 | /* Konami games from 80s-90s basically use only two kind of coinage dips. The only | |
| 258 | difference is in the settings corresponding to 0x00, which could be either 4C_5C | |
| 259 | or a "Free_Play"-related option. Actually, in the latter case the behavior may change | |
| 260 | depending on the game code: | |
| 261 | Coin A - 0x00 could produce the following effects | |
| 262 | Free_Play = nomen omen (for both players) | |
| 263 | Invalid = both coin slots disabled | |
| 264 | Coin B - 0x00 could produce the following effects | |
| 265 | Free_Play = nomen omen (for both players) | |
| 266 | No Coin B = coin slot B open (coins produce sound), but no effect on coin counter | |
| 267 | None = coin slot B disabled | |
| 268 | No Credits = both coin slots open, but no effect on coin counters | |
| 269 | Invalid = both coin slots disabled | |
| 270 | Accordingly, we pass below different strings for different games */ | |
| 271 | ||
| 272 | #define KONAMI_COINAGE_LOC( STRING_A, STRING_B, DIPBANK ) \ | |
| 273 | PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) ) PORT_DIPLOCATION(#DIPBANK":1,2,3,4") \ | |
| 274 | PORT_DIPSETTING( 0x02, DEF_STR( 4C_1C ) ) \ | |
| 275 | PORT_DIPSETTING( 0x05, DEF_STR( 3C_1C ) ) \ | |
| 276 | PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) ) \ | |
| 277 | PORT_DIPSETTING( 0x04, DEF_STR( 3C_2C ) ) \ | |
| 278 | PORT_DIPSETTING( 0x01, DEF_STR( 4C_3C ) ) \ | |
| 279 | PORT_DIPSETTING( 0x0f, DEF_STR( 1C_1C ) ) \ | |
| 280 | PORT_DIPSETTING( 0x03, DEF_STR( 3C_4C ) ) \ | |
| 281 | PORT_DIPSETTING( 0x07, DEF_STR( 2C_3C ) ) \ | |
| 282 | PORT_DIPSETTING( 0x0e, DEF_STR( 1C_2C ) ) \ | |
| 283 | PORT_DIPSETTING( 0x06, DEF_STR( 2C_5C ) ) \ | |
| 284 | PORT_DIPSETTING( 0x0d, DEF_STR( 1C_3C ) ) \ | |
| 285 | PORT_DIPSETTING( 0x0c, DEF_STR( 1C_4C ) ) \ | |
| 286 | PORT_DIPSETTING( 0x0b, DEF_STR( 1C_5C ) ) \ | |
| 287 | PORT_DIPSETTING( 0x0a, DEF_STR( 1C_6C ) ) \ | |
| 288 | PORT_DIPSETTING( 0x09, DEF_STR( 1C_7C ) ) \ | |
| 289 | PORT_DIPSETTING( 0x00, STRING_A ) \ | |
| 290 | PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) ) PORT_DIPLOCATION(#DIPBANK":5,6,7,8") \ | |
| 291 | PORT_DIPSETTING( 0x20, DEF_STR( 4C_1C ) ) \ | |
| 292 | PORT_DIPSETTING( 0x50, DEF_STR( 3C_1C ) ) \ | |
| 293 | PORT_DIPSETTING( 0x80, DEF_STR( 2C_1C ) ) \ | |
| 294 | PORT_DIPSETTING( 0x40, DEF_STR( 3C_2C ) ) \ | |
| 295 | PORT_DIPSETTING( 0x10, DEF_STR( 4C_3C ) ) \ | |
| 296 | PORT_DIPSETTING( 0xf0, DEF_STR( 1C_1C ) ) \ | |
| 297 | PORT_DIPSETTING( 0x30, DEF_STR( 3C_4C ) ) \ | |
| 298 | PORT_DIPSETTING( 0x70, DEF_STR( 2C_3C ) ) \ | |
| 299 | PORT_DIPSETTING( 0xe0, DEF_STR( 1C_2C ) ) \ | |
| 300 | PORT_DIPSETTING( 0x60, DEF_STR( 2C_5C ) ) \ | |
| 301 | PORT_DIPSETTING( 0xd0, DEF_STR( 1C_3C ) ) \ | |
| 302 | PORT_DIPSETTING( 0xc0, DEF_STR( 1C_4C ) ) \ | |
| 303 | PORT_DIPSETTING( 0xb0, DEF_STR( 1C_5C ) ) \ | |
| 304 | PORT_DIPSETTING( 0xa0, DEF_STR( 1C_6C ) ) \ | |
| 305 | PORT_DIPSETTING( 0x90, DEF_STR( 1C_7C ) ) \ | |
| 306 | PORT_DIPSETTING( 0x00, STRING_B ) | |
| 307 | ||
| 308 | #define KONAMI_COINAGE( STRING_A, STRING_B ) \ | |
| 309 | PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) ) \ | |
| 310 | PORT_DIPSETTING( 0x02, DEF_STR( 4C_1C ) ) \ | |
| 311 | PORT_DIPSETTING( 0x05, DEF_STR( 3C_1C ) ) \ | |
| 312 | PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) ) \ | |
| 313 | PORT_DIPSETTING( 0x04, DEF_STR( 3C_2C ) ) \ | |
| 314 | PORT_DIPSETTING( 0x01, DEF_STR( 4C_3C ) ) \ | |
| 315 | PORT_DIPSETTING( 0x0f, DEF_STR( 1C_1C ) ) \ | |
| 316 | PORT_DIPSETTING( 0x03, DEF_STR( 3C_4C ) ) \ | |
| 317 | PORT_DIPSETTING( 0x07, DEF_STR( 2C_3C ) ) \ | |
| 318 | PORT_DIPSETTING( 0x0e, DEF_STR( 1C_2C ) ) \ | |
| 319 | PORT_DIPSETTING( 0x06, DEF_STR( 2C_5C ) ) \ | |
| 320 | PORT_DIPSETTING( 0x0d, DEF_STR( 1C_3C ) ) \ | |
| 321 | PORT_DIPSETTING( 0x0c, DEF_STR( 1C_4C ) ) \ | |
| 322 | PORT_DIPSETTING( 0x0b, DEF_STR( 1C_5C ) ) \ | |
| 323 | PORT_DIPSETTING( 0x0a, DEF_STR( 1C_6C ) ) \ | |
| 324 | PORT_DIPSETTING( 0x09, DEF_STR( 1C_7C ) ) \ | |
| 325 | PORT_DIPSETTING( 0x00, STRING_A ) \ | |
| 326 | PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) ) \ | |
| 327 | PORT_DIPSETTING( 0x20, DEF_STR( 4C_1C ) ) \ | |
| 328 | PORT_DIPSETTING( 0x50, DEF_STR( 3C_1C ) ) \ | |
| 329 | PORT_DIPSETTING( 0x80, DEF_STR( 2C_1C ) ) \ | |
| 330 | PORT_DIPSETTING( 0x40, DEF_STR( 3C_2C ) ) \ | |
| 331 | PORT_DIPSETTING( 0x10, DEF_STR( 4C_3C ) ) \ | |
| 332 | PORT_DIPSETTING( 0xf0, DEF_STR( 1C_1C ) ) \ | |
| 333 | PORT_DIPSETTING( 0x30, DEF_STR( 3C_4C ) ) \ | |
| 334 | PORT_DIPSETTING( 0x70, DEF_STR( 2C_3C ) ) \ | |
| 335 | PORT_DIPSETTING( 0xe0, DEF_STR( 1C_2C ) ) \ | |
| 336 | PORT_DIPSETTING( 0x60, DEF_STR( 2C_5C ) ) \ | |
| 337 | PORT_DIPSETTING( 0xd0, DEF_STR( 1C_3C ) ) \ | |
| 338 | PORT_DIPSETTING( 0xc0, DEF_STR( 1C_4C ) ) \ | |
| 339 | PORT_DIPSETTING( 0xb0, DEF_STR( 1C_5C ) ) \ | |
| 340 | PORT_DIPSETTING( 0xa0, DEF_STR( 1C_6C ) ) \ | |
| 341 | PORT_DIPSETTING( 0x90, DEF_STR( 1C_7C ) ) \ | |
| 342 | PORT_DIPSETTING( 0x00, STRING_B ) | |
| 343 | ||
| 344 | #define KONAMI_COINAGE_ALT_LOC( DIPBANK ) \ | |
| 345 | PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) ) PORT_DIPLOCATION(#DIPBANK":1,2,3,4") \ | |
| 346 | PORT_DIPSETTING( 0x02, DEF_STR( 4C_1C ) ) \ | |
| 347 | PORT_DIPSETTING( 0x05, DEF_STR( 3C_1C ) ) \ | |
| 348 | PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) ) \ | |
| 349 | PORT_DIPSETTING( 0x04, DEF_STR( 3C_2C ) ) \ | |
| 350 | PORT_DIPSETTING( 0x01, DEF_STR( 4C_3C ) ) \ | |
| 351 | PORT_DIPSETTING( 0x0f, DEF_STR( 1C_1C ) ) \ | |
| 352 | PORT_DIPSETTING( 0x00, DEF_STR( 4C_5C ) ) \ | |
| 353 | PORT_DIPSETTING( 0x03, DEF_STR( 3C_4C ) ) \ | |
| 354 | PORT_DIPSETTING( 0x07, DEF_STR( 2C_3C ) ) \ | |
| 355 | PORT_DIPSETTING( 0x0e, DEF_STR( 1C_2C ) ) \ | |
| 356 | PORT_DIPSETTING( 0x06, DEF_STR( 2C_5C ) ) \ | |
| 357 | PORT_DIPSETTING( 0x0d, DEF_STR( 1C_3C ) ) \ | |
| 358 | PORT_DIPSETTING( 0x0c, DEF_STR( 1C_4C ) ) \ | |
| 359 | PORT_DIPSETTING( 0x0b, DEF_STR( 1C_5C ) ) \ | |
| 360 | PORT_DIPSETTING( 0x0a, DEF_STR( 1C_6C ) ) \ | |
| 361 | PORT_DIPSETTING( 0x09, DEF_STR( 1C_7C ) ) \ | |
| 362 | PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) ) PORT_DIPLOCATION(#DIPBANK":5,6,7,8") \ | |
| 363 | PORT_DIPSETTING( 0x20, DEF_STR( 4C_1C ) ) \ | |
| 364 | PORT_DIPSETTING( 0x50, DEF_STR( 3C_1C ) ) \ | |
| 365 | PORT_DIPSETTING( 0x80, DEF_STR( 2C_1C ) ) \ | |
| 366 | PORT_DIPSETTING( 0x40, DEF_STR( 3C_2C ) ) \ | |
| 367 | PORT_DIPSETTING( 0x10, DEF_STR( 4C_3C ) ) \ | |
| 368 | PORT_DIPSETTING( 0xf0, DEF_STR( 1C_1C ) ) \ | |
| 369 | PORT_DIPSETTING( 0x00, DEF_STR( 4C_5C ) ) \ | |
| 370 | PORT_DIPSETTING( 0x30, DEF_STR( 3C_4C ) ) \ | |
| 371 | PORT_DIPSETTING( 0x70, DEF_STR( 2C_3C ) ) \ | |
| 372 | PORT_DIPSETTING( 0xe0, DEF_STR( 1C_2C ) ) \ | |
| 373 | PORT_DIPSETTING( 0x60, DEF_STR( 2C_5C ) ) \ | |
| 374 | PORT_DIPSETTING( 0xd0, DEF_STR( 1C_3C ) ) \ | |
| 375 | PORT_DIPSETTING( 0xc0, DEF_STR( 1C_4C ) ) \ | |
| 376 | PORT_DIPSETTING( 0xb0, DEF_STR( 1C_5C ) ) \ | |
| 377 | PORT_DIPSETTING( 0xa0, DEF_STR( 1C_6C ) ) \ | |
| 378 | PORT_DIPSETTING( 0x90, DEF_STR( 1C_7C ) ) | |
| 379 | ||
| 380 | #define KONAMI_COINAGE_ALT \ | |
| 381 | PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) ) \ | |
| 382 | PORT_DIPSETTING( 0x02, DEF_STR( 4C_1C ) ) \ | |
| 383 | PORT_DIPSETTING( 0x05, DEF_STR( 3C_1C ) ) \ | |
| 384 | PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) ) \ | |
| 385 | PORT_DIPSETTING( 0x04, DEF_STR( 3C_2C ) ) \ | |
| 386 | PORT_DIPSETTING( 0x01, DEF_STR( 4C_3C ) ) \ | |
| 387 | PORT_DIPSETTING( 0x0f, DEF_STR( 1C_1C ) ) \ | |
| 388 | PORT_DIPSETTING( 0x00, DEF_STR( 4C_5C ) ) \ | |
| 389 | PORT_DIPSETTING( 0x03, DEF_STR( 3C_4C ) ) \ | |
| 390 | PORT_DIPSETTING( 0x07, DEF_STR( 2C_3C ) ) \ | |
| 391 | PORT_DIPSETTING( 0x0e, DEF_STR( 1C_2C ) ) \ | |
| 392 | PORT_DIPSETTING( 0x06, DEF_STR( 2C_5C ) ) \ | |
| 393 | PORT_DIPSETTING( 0x0d, DEF_STR( 1C_3C ) ) \ | |
| 394 | PORT_DIPSETTING( 0x0c, DEF_STR( 1C_4C ) ) \ | |
| 395 | PORT_DIPSETTING( 0x0b, DEF_STR( 1C_5C ) ) \ | |
| 396 | PORT_DIPSETTING( 0x0a, DEF_STR( 1C_6C ) ) \ | |
| 397 | PORT_DIPSETTING( 0x09, DEF_STR( 1C_7C ) ) \ | |
| 398 | PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) ) \ | |
| 399 | PORT_DIPSETTING( 0x20, DEF_STR( 4C_1C ) ) \ | |
| 400 | PORT_DIPSETTING( 0x50, DEF_STR( 3C_1C ) ) \ | |
| 401 | PORT_DIPSETTING( 0x80, DEF_STR( 2C_1C ) ) \ | |
| 402 | PORT_DIPSETTING( 0x40, DEF_STR( 3C_2C ) ) \ | |
| 403 | PORT_DIPSETTING( 0x10, DEF_STR( 4C_3C ) ) \ | |
| 404 | PORT_DIPSETTING( 0xf0, DEF_STR( 1C_1C ) ) \ | |
| 405 | PORT_DIPSETTING( 0x00, DEF_STR( 4C_5C ) ) \ | |
| 406 | PORT_DIPSETTING( 0x30, DEF_STR( 3C_4C ) ) \ | |
| 407 | PORT_DIPSETTING( 0x70, DEF_STR( 2C_3C ) ) \ | |
| 408 | PORT_DIPSETTING( 0xe0, DEF_STR( 1C_2C ) ) \ | |
| 409 | PORT_DIPSETTING( 0x60, DEF_STR( 2C_5C ) ) \ | |
| 410 | PORT_DIPSETTING( 0xd0, DEF_STR( 1C_3C ) ) \ | |
| 411 | PORT_DIPSETTING( 0xc0, DEF_STR( 1C_4C ) ) \ | |
| 412 | PORT_DIPSETTING( 0xb0, DEF_STR( 1C_5C ) ) \ | |
| 413 | PORT_DIPSETTING( 0xa0, DEF_STR( 1C_6C ) ) \ | |
| 414 | PORT_DIPSETTING( 0x90, DEF_STR( 1C_7C ) ) |
| r4470 | r4471 | |
|---|---|---|
| 1547 | 1547 | $(DRIVERS)/mosaic.o $(VIDEO)/mosaic.o \ |
| 1548 | 1548 | $(DRIVERS)/mrjong.o $(VIDEO)/mrjong.o \ |
| 1549 | 1549 | $(DRIVERS)/murogem.o \ |
| 1550 | $(DRIVERS)/murogmbl.o \ | |
| 1550 | 1551 | $(DRIVERS)/news.o $(VIDEO)/news.o \ |
| 1551 | 1552 | $(DRIVERS)/norautp.o \ |
| 1552 | 1553 | $(DRIVERS)/oneshot.o $(VIDEO)/oneshot.o \ |
| r4470 | r4471 | |
| 1803 | 1804 | $(DRIVERS)/zac2650.o: $(LAYOUT)/tinv2650.lh |
| 1804 | 1805 | |
| 1805 | 1806 | |
| 1806 | ||
| 1807 | 1807 | #------------------------------------------------- |
| 1808 | 1808 | # misc dependencies |
| 1809 | 1809 | #------------------------------------------------- |
| r4470 | r4471 | |
|---|---|---|
| 1 | 1 | /************************************************************************* |
| 2 | 2 | |
| 3 | System1 / System 2. By Jarek Parchanski & Mirko Buffoni. | |
| 3 | System1 / System 2 | |
| 4 | original driver by Jarek Parchanski & Mirko Buffoni | |
| 4 | 5 | |
| 5 | Many thanks to Roberto Ventura, for precious information about | |
| 6 | System 1 hardware. | |
| 6 | Many thanks to Roberto Ventura, for precious information about | |
| 7 | System 1 hardware. | |
| 7 | 8 | |
| 8 | ************************************************************************* | |
| 9 | ************************************************************************** | |
| 9 | 10 | |
| 10 | #include "driver.h" | |
| 11 | #include "system1.h" | |
| 11 | The System 1/System 2 video hardware is composed of two tilemap | |
| 12 | layers and a sprite layer. | |
| 12 | 13 | |
| 13 | UINT8 *system1_scroll_y; | |
| 14 | UINT8 *system1_scroll_x; | |
| 15 | UINT8 *system1_videoram; | |
| 16 | UINT8 *system1_backgroundram; | |
| 17 | UINT8 *system1_sprites_collisionram; | |
| 18 | UINT8 *system1_background_collisionram; | |
| 19 | UINT8 *system1_scrollx_ram; | |
| 20 | size_t system1_videoram_size; | |
| 21 | size_t system1_backgroundram_size; | |
| 14 | The tilemap layers are built up out of "pages" of 32x32 tilemaps. | |
| 15 | Each tile is described by two bytes, meaning each page is 2k bytes | |
| 16 | in size. One of the tilemaps is fixed in position, while the other | |
| 17 | has registers for scrolling that vary between board variants. | |
| 22 | 18 | |
| 23 | static UINT8 *sprite_onscreen_map; | |
| 24 | static int background_scrollx=0,background_scrolly=0; | |
| 25 | static UINT8 *bg_dirtybuffer; | |
| 19 | The original System 1 hardware simply had two fixed pages. Page 0 | |
| 20 | was the scrolling tilemap, and page 1 was the fixed tilemap. | |
| 26 | 21 | |
| 27 | static int scrollx_row[32]; | |
| 28 | static bitmap_t *tmp_bitmap; | |
| 22 | With later boards and the introduction of System 2, this was | |
| 23 | expanded to support up to 8 pages. The fixed tilemap was hard- | |
| 24 | coded to page 0, but the scrolling tilemap was extended. Instead | |
| 25 | of a single page, the scrolling tilemap consisted of 4 pages glued | |
| 26 | together to form an effective large 64x64 tilemap. Further, each | |
| 27 | of the 4 pages that made up the scrolling tilemap could be | |
| 28 | independently selected from one of the 8 available pages. This | |
| 29 | unique paged tilemap system would continue on to form the basis of | |
| 30 | Sega's tilemap systems for their 16-bit era. | |
| 29 | 31 | |
| 30 | //static int system1_pixel_mode = 0 | |
| 31 | static UINT8 system1_background_memory,system1_video_mode=0; | |
| 32 | Up to 32 sprites can be displayed. They are rendered one scanline | |
| 33 | ahead of the beam into 12-bit line buffers which store the sprite | |
| 34 | pixel data and sprite index. During rendering, collisions are | |
| 35 | checked between sprites and if one is found a bit is set in a | |
| 36 | special 32x32x1 collision RAM indiciating which pair of sprites | |
| 37 | collided. Note that the sprite color is derived directly from the | |
| 38 | sprite index, giving each sprite its own set of 16 colors. | |
| 32 | 39 | |
| 33 | static const UINT8 *system1_color_prom; | |
| 40 | The 11-bit output from the two tilemaps (3 bits of pixel data, | |
| 41 | 6 bits of color, 2 bits of priority), plus the 9-bit output from | |
| 42 | the sprite line buffer (4 bits of pixel data, 5 bits of color) | |
| 43 | are combined in a final step to produce the final pixel value. To | |
| 44 | do this, a lookup PROM is used which accepts as input the priority | |
| 45 | bits from the two tilemaps and the whether each of the incoming | |
| 46 | pixel values is transparent (color 0). | |
| 34 | 47 | |
| 35 | static UINT8 *wbml_paged_videoram; | |
| 36 | static UINT8 wbml_videoram_bank=0,wbml_videoram_bank_latch=0; | |
| 48 | The output of the lookup PROM is a 4-bit value. The lower 2 bits | |
| 49 | select sprite data (0), fixed tilemap (1) or scrolling tilemap (2). | |
| 50 | 9 bits of data from the appropriate source are used as a lookup | |
| 51 | into a palette RAM, and the lookup PROM's low 2 bits are used as | |
| 52 | the upper 2 bits of the palette RAM address, providing 512 | |
| 53 | independent colors for each source. | |
| 37 | 54 | |
| 38 | static int blockgal_kludgeoffset; | |
| 39 | static int system1_sprite_xoffset = 0; | |
| 55 | The upper 2 bits of the lookup PROM are used for an additional | |
| 56 | mixer collision detection. Bit 2 indicates that a collision | |
| 57 | should be recorded, and bit 3 indicates which of two banks of | |
| 58 | collision flags should be set. Each bank is 32 entries long, and | |
| 59 | the sprite index is used to select which bit within the bank to | |
| 60 | set. | |
| 40 | 61 | |
| 41 | /*************************************************************************** | |
| 62 | On the original System 1 hardware, the palette RAM value was used | |
| 63 | directly as RGB, with 3 bits each of red and green, and 2 bits of | |
| 64 | blue. Later hardware added an extra indirection layer, where the | |
| 65 | 8-bit palette RAM value passed into 3 256x4 palette PROMs, one for | |
| 66 | each color. | |
| 42 | 67 | |
| 43 | There are two kind of color handling: in the System 1 games, values in the | |
| 44 | palette RAM are directly mapped to colors with the usual BBGGGRRR format; | |
| 45 | in the System 2 ones (Choplifter, WBML, etc.), the value in the palette RAM | |
| 46 | is a lookup offset for three palette PROMs in RRRRGGGGBBBB format. | |
| 68 | Collision data is accessed via a 4k window that is broken into | |
| 69 | 4 equal-sized sections. The first section returns data from the | |
| 70 | 2x32x1 mixer collision; the data for the collision is returned in | |
| 71 | D0, and a summary bit indicating that some sort of collision has | |
| 72 | occurred is returned in D7. The specific collision bit is cleared | |
| 73 | by writing to the equivalent address in the same region. The | |
| 74 | collision summary bit is cleared by writing to the second region. | |
| 47 | 75 | |
| 48 | It's hard to tell for sure because they use resistor packs, but here's | |
| 49 | what I think the values are from measurment with a volt meter: | |
| 76 | The third and fourth collision regions operate similarly, but | |
| 77 | return data for the 32x32x1 sprite collisions. | |
| 50 | 78 | |
| 51 | Blue: .250K ohms | |
| 52 | Blue: .495K ohms | |
| 53 | Green:.250K ohms | |
| 54 | Green:.495K ohms | |
| 55 | Green:.995K ohms | |
| 56 | Red: .495K ohms | |
| 57 | Red: .250K ohms | |
| 58 | Red: .995K ohms | |
| 79 | *************************************************************************/ | |
| 59 | 80 | |
| 60 | accurate to +/- .003K ohms. | |
| 81 | #include "driver.h" | |
| 82 | #include "system1.h" | |
| 61 | 83 | |
| 62 | ***************************************************************************/ | |
| 63 | PALETTE_INIT( system1 ) | |
| 64 | { | |
| 65 | system1_color_prom = color_prom; | |
| 66 | } | |
| 84 | static UINT8 *mix_collide; | |
| 85 | static UINT8 mix_collide_summary; | |
| 86 | static UINT8 *sprite_collide; | |
| 87 | static UINT8 sprite_collide_summary; | |
| 67 | 88 | |
| 68 | WRITE8_HANDLER( system1_paletteram_w ) | |
| 69 | { | |
| 70 | int val,r,g,b; | |
| 89 | static bitmap_t *sprite_bitmap; | |
| 71 | 90 | |
| 91 | static UINT8 system1_video_mode; | |
| 72 | 92 | |
| 73 | ||
| 93 | s | |
| 74 | 94 | |
| 75 | if (system1_color_prom) | |
| 76 | { | |
| 77 | int bit0,bit1,bit2,bit3; | |
| 95 | static tilemap *tilemap_page[8]; | |
| 96 | static UINT8 tilemap_pages; | |
| 78 | 97 | |
| 79 | val = system1_color_prom[data+0*256]; | |
| 80 | bit0 = (val >> 0) & 0x01; | |
| 81 | bit1 = (val >> 1) & 0x01; | |
| 82 | bit2 = (val >> 2) & 0x01; | |
| 83 | bit3 = (val >> 3) & 0x01; | |
| 84 | r = 0x0e * bit0 + 0x1f * bit1 + 0x43 * bit2 + 0x8f * bit3; | |
| 85 | 98 | |
| 86 | val = system1_color_prom[data+1*256]; | |
| 87 | bit0 = (val >> 0) & 0x01; | |
| 88 | bit1 = (val >> 1) & 0x01; | |
| 89 | bit2 = (val >> 2) & 0x01; | |
| 90 | bit3 = (val >> 3) & 0x01; | |
| 91 | g = 0x0e * bit0 + 0x1f * bit1 + 0x43 * bit2 + 0x8f * bit3; | |
| 92 | 99 | |
| 93 | val = system1_color_prom[data+2*256]; | |
| 94 | bit0 = (val >> 0) & 0x01; | |
| 95 | bit1 = (val >> 1) & 0x01; | |
| 96 | bit2 = (val >> 2) & 0x01; | |
| 97 | bit3 = (val >> 3) & 0x01; | |
| 98 | b = 0x0e * bit0 + 0x1f * bit1 + 0x43 * bit2 + 0x8f * bit3; | |
| 99 | } | |
| 100 | else | |
| 101 | { | |
| 102 | r = pal3bit(data >> 0); | |
| 103 | g = pal3bit(data >> 3); | |
| 104 | b = pal2bit(data >> 6); | |
| 105 | } | |
| 100 | /************************************* | |
| 101 | * | |
| 102 | * Tile callback | |
| 103 | * | |
| 104 | *************************************/ | |
| 106 | 105 | |
| 107 | palette_set_color(space->machine,offset,MAKE_RGB(r,g,b)); | |
| 108 | } | |
| 109 | ||
| 110 | static STATE_POSTLOAD( system1_postload ) | |
| 106 | static TILE_GET_INFO( tile_get_info ) | |
| 111 | 107 | { |
| 112 | memset(sprite_onscreen_map, 255, 256*256); | |
| 113 | memset(bg_dirtybuffer, 1, 1024); | |
| 108 | UINT8 *rambase = param; | |
| 109 | UINT32 tiledata = rambase[tile_index*2+0] | (rambase[tile_index*2+1] << 8); | |
| 110 | UINT32 code = ((tiledata >> 4) & 0x800) | (tiledata & 0x7ff); | |
| 111 | UINT32 color = (tiledata >> 5) & 0xff; | |
| 112 | ||
| 113 | SET_TILE_INFO(0, code, color, 0); | |
| 114 | 114 | } |
| 115 | 115 | |
| 116 | VIDEO_START( system1 ) | |
| 116 | ||
| 117 | ||
| 118 | /************************************* | |
| 119 | * | |
| 120 | * Video startup | |
| 121 | * | |
| 122 | *************************************/ | |
| 123 | ||
| 124 | static void video_start_common(running_machine *machine, int pagecount) | |
| 117 | 125 | { |
| 118 | sprite_onscreen_map = auto_malloc(256*256); | |
| 119 | memset(sprite_onscreen_map,255,256*256); | |
| 126 | int pagenum; | |
| 120 | 127 | |
| 121 | bg_dirtybuffer = auto_malloc(1024); | |
| 122 | memset(bg_dirtybuffer,1,1024); | |
| 128 | /* allocate memory for the collision arrays */ | |
| 129 | mix_collide = auto_malloc(64); | |
| 130 | memset(mix_collide, 0, 64); | |
| 131 | sprite_collide = auto_malloc(1024); | |
| 132 | memset(sprite_collide, 0, 1024); | |
| 123 | 133 | |
| 124 | tmp_bitmap = video_screen_auto_bitmap_alloc(machine->primary_screen); | |
| 134 | /* allocate memory for videoram */ | |
| 135 | tilemap_pages = pagecount; | |
| 136 | videoram = auto_malloc(0x800 * pagecount); | |
| 137 | memset(videoram, 0, 0x800 * pagecount); | |
| 125 | 138 | |
| 126 | state_save_register_postload(machine, system1_postload, NULL); | |
| 127 | state_save_register_global(machine, system1_background_memory); | |
| 128 | state_save_register_global(machine, system1_video_mode); | |
| 139 | /* create the tilemap pages */ | |
| 140 | for (pagenum = 0; pagenum < pagecount; pagenum++) | |
| 141 | { | |
| 142 | tilemap_page[pagenum] = tilemap_create(machine, tile_get_info, tilemap_scan_rows, 8,8, 32,32); | |
| 143 | tilemap_set_transparent_pen(tilemap_page[pagenum], 0); | |
| 144 | tilemap_set_user_data(tilemap_page[pagenum], videoram + 0x800 * pagenum); | |
| 145 | } | |
| 129 | 146 | |
| 130 | system1_sprite_xoffset = 1; | |
| 147 | /* allocate a temporary bitmap for sprite rendering */ | |
| 148 | sprite_bitmap = auto_bitmap_alloc(256, 256, BITMAP_FORMAT_INDEXED16); | |
| 149 | ||
| 150 | /* register for save stats */ | |
| 151 | state_save_register_global(machine, system1_video_mode); | |
| 152 | state_save_register_global(machine, mix_collide_summary); | |
| 153 | state_save_register_global(machine, sprite_collide_summary); | |
| 154 | state_save_register_global_pointer(machine, videoram, 0x800 * pagecount); | |
| 155 | state_save_register_global_pointer(machine, mix_collide, 64); | |
| 156 | state_save_register_global_pointer(machine, sprite_collide, 1024); | |
| 131 | 157 | } |
| 132 | 158 | |
| 133 | VIDEO_START( wbml ) | |
| 159 | ||
| 160 | VIDEO_START( system1 ) | |
| 134 | 161 | { |
| 135 | sprite_onscreen_map = auto_malloc(256*256); | |
| 136 | memset(sprite_onscreen_map,255,256*256); | |
| 162 | video_start_common(machine, 2); | |
| 163 | } | |
| 137 | 164 | |
| 138 | bg_dirtybuffer = auto_malloc(1024); | |
| 139 | memset(bg_dirtybuffer,1,1024); | |
| 140 | wbml_paged_videoram = auto_malloc(0x4000); /* Allocate 16k for background banked ram */ | |
| 141 | memset(wbml_paged_videoram,0,0x4000); | |
| 142 | 165 | |
| 143 | tmp_bitmap = video_screen_auto_bitmap_alloc(machine->primary_screen); | |
| 166 | VIDEO_START( system2 ) | |
| 167 | { | |
| 168 | video_start_common(machine, 8); | |
| 169 | } | |
| 144 | 170 | |
| 145 | system1_sprite_xoffset = 1+7*2; | |
| 146 | 171 | |
| 147 | state_save_register_postload(machine, system1_postload, NULL); | |
| 148 | state_save_register_global(machine, system1_background_memory); | |
| 149 | state_save_register_global(machine, system1_video_mode); | |
| 150 | 172 | |
| 151 | state_save_register_global_pointer(machine, wbml_paged_videoram, 0x4000); | |
| 152 | state_save_register_global(machine, wbml_videoram_bank); | |
| 153 | state_save_register_global(machine, wbml_videoram_bank_latch); | |
| 154 | } | |
| 173 | /************************************* | |
| 174 | * | |
| 175 | * Video control | |
| 176 | * | |
| 177 | *************************************/ | |
| 155 | 178 | |
| 156 | 179 | WRITE8_HANDLER( system1_videomode_w ) |
| 157 | 180 | { |
| 158 | 181 | if (data & 0x6e) logerror("videomode = %02x\n",data); |
| 159 | 182 | |
| 160 | /* bit 0 is coin counter */ | |
| 161 | coin_counter_w(0, data & 1); | |
| 162 | ||
| 163 | 183 | /* bit 4 is screen blank */ |
| 164 | 184 | system1_video_mode = data; |
| 165 | 185 | |
| r4470 | r4471 | |
| 167 | 187 | flip_screen_set(space->machine, data & 0x80); |
| 168 | 188 | } |
| 169 | 189 | |
| 170 | READ8_HANDLER( system1_videomode_r ) | |
| 190 | ||
| 191 | ||
| 192 | /************************************* | |
| 193 | * | |
| 194 | * Mixer collision I/O | |
| 195 | * | |
| 196 | *************************************/ | |
| 197 | ||
| 198 | READ8_HANDLER( system1_mixer_collision_r ) | |
| 171 | 199 | { |
| 172 | return system1_video_mode; | |
| 200 | video_screen_update_now(space->machine->primary_screen); | |
| 201 | return mix_collide[offset & 0x3f] | 0x7e | (mix_collide_summary << 7); | |
| 173 | 202 | } |
| 174 | 203 | |
| 175 | ||
| 204 | WRITE8_HANDLER( system1_m | |
| 176 | 205 | { |
| 177 | system1_background_memory = mode; | |
| 206 | video_screen_update_now(space->machine->primary_screen); | |
| 207 | mix_collide[offset & 0x3f] = 0; | |
| 178 | 208 | } |
| 179 | 209 | |
| 180 | ||
| 181 | #ifdef UNUSED_FUNCTION | |
| 182 | INLINE int get_sprite_bottom_y(int spr_number) | |
| 210 | WRITE8_HANDLER( system1_mixer_collision_reset_w ) | |
| 183 | 211 | { |
| 184 | return spriteram[0x10 * spr_number + SPR_Y_BOTTOM]; | |
| 212 | video_screen_update_now(space->machine->primary_screen); | |
| 213 | mix_collide_summary = 0; | |
| 185 | 214 | } |
| 186 | #endif | |
| 187 | 215 | |
| 188 | INLINE void draw_pixel(running_machine *machine, bitmap_t *bitmap, | |
| 189 | int x,int y,int x_flipped,int y_flipped, | |
| 190 | int spr_number,int color) | |
| 191 | { | |
| 192 | int xr,yr; | |
| 193 | int sprite_onscreen; | |
| 194 | const rectangle *visarea = video_screen_get_visible_area(machine->primary_screen); | |
| 195 | 216 | |
| 196 | if (x < 0 || x >= video_screen_get_width(machine->primary_screen) || | |
| 197 | y < 0 || y >= video_screen_get_height(machine->primary_screen)) | |
| 198 | return; | |
| 199 | 217 | |
| 200 | if (sprite_onscreen_map[256*y+x] != 255) | |
| 201 | { | |
| 202 | sprite_onscreen = sprite_onscreen_map[256*y+x]; | |
| 203 | system1_sprites_collisionram[sprite_onscreen + 32 * spr_number] = 0xff; | |
| 204 | } | |
| 218 | /************************************* | |
| 219 | * | |
| 220 | * Sprite collision I/O | |
| 221 | * | |
| 222 | *************************************/ | |
| 205 | 223 | |
| 206 | sprite_onscreen_map[256*y+x] = spr_number; | |
| 207 | ||
| 208 | if (x_flipped >= visarea->min_x || | |
| 209 | x_flipped <= visarea->max_x || | |
| 210 | y_flipped >= visarea->min_y || | |
| 211 | y_flipped <= visarea->max_y) | |
| 212 | { | |
| 213 | *BITMAP_ADDR16(bitmap, y_flipped, x_flipped) = color; | |
| 214 | } | |
| 215 | ||
| 216 | xr = ((x - background_scrollx) & 0xff) / 8; | |
| 217 | yr = ((y - background_scrolly) & 0xff) / 8; | |
| 218 | ||
| 219 | /* TODO: bits 5 and 6 of backgroundram are also used (e.g. Pitfall2, Mr. Viking) */ | |
| 220 | /* what's the difference? Bit 7 is used in Choplifter/WBML for extra char bank */ | |
| 221 | /* selection, but it is also set in Pitfall2 */ | |
| 222 | ||
| 223 | if (system1_background_memory == system1_BACKGROUND_MEMORY_SINGLE) | |
| 224 | { | |
| 225 | if (system1_backgroundram[2 * (32 * yr + xr) + 1] & 0x10) | |
| 226 | system1_background_collisionram[0x20 + spr_number] = 0xff; | |
| 227 | } | |
| 228 | else | |
| 229 | { | |
| 230 | /* TODO: I should handle the paged background memory here. */ | |
| 231 | /* maybe collision detection is not used by the paged games */ | |
| 232 | /* (wbml and tokisens), though tokisens doesn't play very well */ | |
| 233 | /* (you can't seem to fit in gaps where you should fit) */ | |
| 234 | } | |
| 235 | ||
| 236 | /* TODO: collision should probably be checked with the foreground as well */ | |
| 237 | /* (TeddyBoy Blues, head of the tiger in girl bonus round) */ | |
| 224 | READ8_HANDLER( system1_sprite_collision_r ) | |
| 225 | { | |
| 226 | video_screen_update_now(space->machine->primary_screen); | |
| 227 | return sprite_collide[offset & 0x3ff] | 0x7e | (sprite_collide_summary << 7); | |
| 238 | 228 | } |
| 239 | 229 | |
| 240 | WRITE8_HANDLER( system1_ | |
| 230 | WRITE8_HANDLER( system1_sp | |
| 241 | 231 | { |
| 242 | /* to do the RAM check, Mister Viking writes 0xff and immediately */ | |
| 243 | /* reads it back, expecting bit 0 to be NOT set. */ | |
| 244 | system1_background_collisionram[offset] = 0x7e; | |
| 232 | video_screen_update_now(space->machine->primary_screen); | |
| 233 | sprite_collide[offset & 0x3ff] = 0; | |
| 245 | 234 | } |
| 246 | 235 | |
| 247 | WRITE8_HANDLER( system1_sprite | |
| 236 | WRITE8_HANDLER( system1_sprite | |
| 248 | 237 | { |
| 249 | /* to do the RAM check, Mister Viking write 0xff and immediately */ | |
| 250 | /* reads it back, expecting bit 0 to be NOT set. */ | |
| 251 | /* Up'n Down expects to find 0x7e at f800 before doing the whole */ | |
| 252 | /* collision test */ | |
| 253 | system1_sprites_collisionram[offset] = 0x7e; | |
| 238 | video_screen_update_now(space->machine->primary_screen); | |
| 239 | sprite_collide_summary = 0; | |
| 254 | 240 | } |
| 255 | 241 | |
| 256 | static void draw_sprite(running_machine *machine, bitmap_t *bitmap,int spr_number) | |
| 257 | { | |
| 258 | int sy,row,height,src,bank; | |
| 259 | UINT8 *sprite_base; | |
| 260 | int sprite_palette_base; | |
| 261 | INT16 skip; /* bytes to skip before drawing each row (can be negative) */ | |
| 262 | UINT8 *gfx; | |
| 263 | 242 | |
| 264 | 243 | |
| 265 | sprite_base = spriteram + 0x10 * spr_number; | |
| 244 | /************************************* | |
| 245 | * | |
| 246 | * Video RAM access | |
| 247 | * | |
| 248 | *************************************/ | |
| 266 | 249 | |
| 267 | src = sprite_base[SPR_GFXOFS_LO] + (sprite_base[SPR_GFXOFS_HI] << 8); | |
| 268 | bank = 0x8000 * (((sprite_base[SPR_X_HI] & 0x80) >> 7) + ((sprite_base[SPR_X_HI] & 0x40) >> 5)); | |
| 269 | bank &= (memory_region_length(machine, "gfx2")-1); /* limit to the range of available ROMs */ | |
| 270 | skip = sprite_base[SPR_SKIP_LO] + (sprite_base[SPR_SKIP_HI] << 8); | |
| 271 | ||
| 272 | height = sprite_base[SPR_Y_BOTTOM] - sprite_base[SPR_Y_TOP]; | |
| 273 | sprite_palette_base = 0x10 * spr_number; | |
| 274 | ||
| 275 | sy = sprite_base[SPR_Y_TOP] + 1; | |
| 276 | ||
| 277 | /* graphics region #2 contains the packed sprite data */ | |
| 278 | gfx = &memory_region(machine, "gfx2")[bank]; | |
| 279 | ||
| 280 | for (row = 0;row < height;row++) | |
| 281 | { | |
| 282 | int x,x_flipped; | |
| 283 | int y,y_flipped; | |
| 284 | int src2; | |
| 285 | ||
| 286 | src = src2 = src + skip; | |
| 287 | ||
| 288 | x = sprite_base[SPR_X_LO] + ((sprite_base[SPR_X_HI] & 0x01) << 8) + system1_sprite_xoffset; | |
| 289 | x_flipped = x; | |
| 290 | y = y_flipped = sy+row; | |
| 291 | ||
| 292 | if (flip_screen_get(machine)) | |
| 293 | { | |
| 294 | y_flipped = 258 - sy - height + row; | |
| 295 | x_flipped = (252*2) - x; | |
| 296 | } | |
| 297 | ||
| 298 | x /= 2; /* the hardware has sub-pixel placement, it seems */ | |
| 299 | x_flipped /= 2; | |
| 300 | ||
| 301 | while (1) | |
| 302 | { | |
| 303 | int color1,color2,data; | |
| 304 | ||
| 305 | data = gfx[src2 & 0x7fff]; | |
| 306 | ||
| 307 | if (src & 0x8000) | |
| 308 | { | |
| 309 | src2--; | |
| 310 | ||
| 311 | color1 = data & 0x0f; | |
| 312 | color2 = data >> 4; | |
| 313 | } | |
| 314 | else | |
| 315 | { | |
| 316 | src2++; | |
| 317 | ||
| 318 | color1 = data >> 4; | |
| 319 | color2 = data & 0x0f; | |
| 320 | } | |
| 321 | ||
| 322 | if (color1 == 15) break; | |
| 323 | if (color1) | |
| 324 | draw_pixel(machine,bitmap,x,y,x_flipped,y_flipped,spr_number,sprite_palette_base+color1); | |
| 325 | x++; | |
| 326 | x_flipped += flip_screen_get(machine) ? -1 : 1; | |
| 327 | ||
| 328 | if (color2 == 15) break; | |
| 329 | if (color2) | |
| 330 | draw_pixel(machine,bitmap,x,y,x_flipped,y_flipped,spr_number,sprite_palette_base+color2); | |
| 331 | x++; | |
| 332 | x_flipped += flip_screen_get(machine) ? -1 : 1; | |
| 333 | } | |
| 334 | } | |
| 250 | READ8_HANDLER( system1_videoram_r ) | |
| 251 | { | |
| 252 | offset |= 0x1000 * ((videoram_bank >> 1) % (tilemap_pages / 2)); | |
| 253 | return videoram[offset]; | |
| 335 | 254 | } |
| 336 | 255 | |
| 337 | ||
| 338 | static void draw_sprites(running_machine *machine, bitmap_t *bitmap) | |
| 256 | WRITE8_HANDLER( system1_videoram_w ) | |
| 339 | 257 | { |
| 340 | int spr_number,sprite_bottom_y,sprite_top_y; | |
| 341 | UINT8 *sprite_base; | |
| 258 | offset |= 0x1000 * ((videoram_bank >> 1) % (tilemap_pages / 2)); | |
| 259 | videoram[offset] = data; | |
| 342 | 260 | |
| 261 | tilemap_mark_tile_dirty(tilemap_page[offset / 0x800], (offset % 0x800) / 2); | |
| 343 | 262 | |
| 344 | memset(sprite_onscreen_map,255,256*256); | |
| 345 | ||
| 346 | for (spr_number = 0;spr_number < 32;spr_number++) | |
| 347 | { | |
| 348 | sprite_base = spriteram + 0x10 * spr_number; | |
| 349 | sprite_top_y = sprite_base[SPR_Y_TOP]; | |
| 350 | sprite_bottom_y = sprite_base[SPR_Y_BOTTOM]; | |
| 351 | if (sprite_bottom_y && (sprite_bottom_y-sprite_top_y > 0)) | |
| 352 | draw_sprite(machine, bitmap,spr_number); | |
| 353 | } | |
| 263 | /* force a partial update if the page is changing */ | |
| 264 | if (tilemap_pages > 2 && offset >= 0x740 && offset < 0x748 && offset % 2 == 0) | |
| 265 | video_screen_update_now(space->machine->primary_screen); | |
| 354 | 266 | } |
| 355 | 267 | |
| 356 | ||
| 357 | ||
| 358 | WRITE8_HANDLER( system1_backgroundram_w ) | |
| 268 | WRITE8_DEVICE_HANDLER( system1_videoram_bank_w ) | |
| 359 | 269 | { |
| 360 | system1_backgroundram[offset] = data; | |
| 361 | bg_dirtybuffer[offset>>1] = 1; | |
| 270 | videoram_bank = data; | |
| 362 | 271 | } |
| 363 | 272 | |
| 364 | 273 | |
| 365 | static void system1_draw_fg(running_machine *machine, bitmap_t *bitmap, const rectangle *cliprect, int priority) | |
| 366 | { | |
| 367 | int sx,sy,offs; | |
| 368 | 274 | |
| 369 | priority <<= 3; | |
| 275 | /************************************* | |
| 276 | * | |
| 277 | * Palette RAM access | |
| 278 | * | |
| 279 | *************************************/ | |
| 370 | 280 | |
| 371 | for (offs = 0;offs < system1_videoram_size;offs += 2) | |
| 372 | { | |
| 373 | if ((system1_videoram[offs+1] & 0x08) == priority) | |
| 374 | { | |
| 375 | int code,color; | |
| 281 | WRITE8_HANDLER( system1_paletteram_w ) | |
| 282 | { | |
| 283 | const UINT8 *color_prom = memory_region(space->machine, "palette"); | |
| 284 | int val,r,g,b; | |
| 376 | 285 | |
| 286 | /* | |
| 287 | There are two kind of color handling: in the System 1 games, values in the | |
| 288 | palette RAM are directly mapped to colors with the usual BBGGGRRR format; | |
| 289 | in the System 2 ones (Choplifter, WBML, etc.), the value in the palette RAM | |
| 290 | is a lookup offset for three palette PROMs in RRRRGGGGBBBB format. | |
| 377 | 291 | |
| 378 | code = (system1_videoram[offs] | (system1_videoram[offs+1] << 8)); | |
| 379 | code = ((code >> 4) & 0x800) | (code & 0x7ff); /* Heavy Metal only */ | |
| 380 | color = ((code >> 5) & 0x3f); | |
| 381 | sx = (offs/2) % 32; | |
| 382 | sy = (offs/2) / 32; | |
| 292 | It's hard to tell for sure because they use resistor packs, but here's | |
| 293 | what I think the values are from measurment with a volt meter: | |
| 383 | 294 | |
| 384 | if (flip_screen_get(machine)) | |
| 385 | { | |
| 386 | sx = 31 - sx; | |
| 387 | sy = 31 - sy; | |
| 388 | } | |
| 295 | Blue: .250K ohms | |
| 296 | Blue: .495K ohms | |
| 297 | Green:.250K ohms | |
| 298 | Green:.495K ohms | |
| 299 | Green:.995K ohms | |
| 300 | Red: .495K ohms | |
| 301 | Red: .250K ohms | |
| 302 | Red: .995K ohms | |
| 389 | 303 | |
| 390 | code %= machine->gfx[0]->total_elements; | |
| 304 | accurate to +/- .003K ohms. | |
| 305 | */ | |
| 391 | 306 | |
| 392 | drawgfx(bitmap,machine->gfx[0], | |
| 393 | code, | |
| 394 | color, | |
| 395 | flip_screen_get(machine),flip_screen_get(machine), | |
| 396 | 8*sx + blockgal_kludgeoffset,8*sy, | |
| 397 | cliprect,TRANSPARENCY_PEN,0); | |
| 398 | } | |
| 399 | } | |
| 400 | } | |
| 307 | paletteram[offset] = data; | |
| 401 | 308 | |
| 402 | static void system1_draw_bg(running_machine *machine, bitmap_t *bitmap, const rectangle *cliprect, int priority) | |
| 403 | { | |
| 404 | int sx,sy,offs; | |
| 405 | int background_scrollx_flip, background_scrolly_flip; | |
| 406 | ||
| 407 | ||
| 408 | background_scrollx = ((system1_scroll_x[0] >> 1) + ((system1_scroll_x[1] & 1) << 7) + 14 + 2*blockgal_kludgeoffset) & 0xff; | |
| 409 | background_scrolly = (-*system1_scroll_y) & 0xff; | |
| 410 | ||
| 411 | background_scrollx_flip = (275 - background_scrollx) & 0xff; | |
| 412 | background_scrolly_flip = (256 - background_scrolly) & 0xff; | |
| 413 | ||
| 414 | if (priority == -1) | |
| 309 | if (color_prom != NULL) | |
| 415 | 310 | { |
| 416 | | |
| 311 | int bit0,bit1,bit2, | |
| 417 | 312 | |
| 418 | /* for every character in the background video RAM, check if it has | |
| 419 | * been modified since last time and update it accordingly. | |
| 420 | */ | |
| 313 | val = color_prom[data+0*256]; | |
| 314 | bit0 = (val >> 0) & 0x01; | |
| 315 | bit1 = (val >> 1) & 0x01; | |
| 316 | bit2 = (val >> 2) & 0x01; | |
| 317 | bit3 = (val >> 3) & 0x01; | |
| 318 | r = 0x0e * bit0 + 0x1f * bit1 + 0x43 * bit2 + 0x8f * bit3; | |
| 421 | 319 | |
| 422 | for (offs = 0;offs < system1_backgroundram_size;offs += 2) | |
| 423 | { | |
| 424 | if (bg_dirtybuffer[offs / 2]) | |
| 425 | { | |
| 426 | int code,color; | |
| 320 | val = color_prom[data+1*256]; | |
| 321 | bit0 = (val >> 0) & 0x01; | |
| 322 | bit1 = (val >> 1) & 0x01; | |
| 323 | bit2 = (val >> 2) & 0x01; | |
| 324 | bit3 = (val >> 3) & 0x01; | |
| 325 | g = 0x0e * bit0 + 0x1f * bit1 + 0x43 * bit2 + 0x8f * bit3; | |
| 427 | 326 | |
| 428 | ||
| 429 | bg_dirtybuffer[offs / 2] = 0; | |
| 430 | ||
| 431 | code = (system1_backgroundram[offs] | (system1_backgroundram[offs+1] << 8)); | |
| 432 | code = ((code >> 4) & 0x800) | (code & 0x7ff); /* Heavy Metal only */ | |
| 433 | color = ((code >> 5) & 0x3f) + 0x40; | |
| 434 | sx = (offs/2) % 32; | |
| 435 | sy = (offs/2) / 32; | |
| 436 | ||
| 437 | if (flip_screen_get(machine)) | |
| 438 | { | |
| 439 | sx = 31 - sx; | |
| 440 | sy = 31 - sy; | |
| 441 | } | |
| 442 | ||
| 443 | drawgfx(tmp_bitmap,machine->gfx[0], | |
| 444 | code, | |
| 445 | color, | |
| 446 | flip_screen_get(machine),flip_screen_get(machine), | |
| 447 | 8*sx,8*sy, | |
| 448 | 0,TRANSPARENCY_NONE,0); | |
| 449 | } | |
| 450 | } | |
| 451 | ||
| 452 | /* copy the temporary bitmap to the screen */ | |
| 453 | if (flip_screen_get(machine)) | |
| 454 | copyscrollbitmap(bitmap,tmp_bitmap,1,&background_scrollx_flip,1,&background_scrolly_flip,cliprect); | |
| 455 | else | |
| 456 | copyscrollbitmap(bitmap,tmp_bitmap,1,&background_scrollx,1,&background_scrolly,cliprect); | |
| 327 | val = color_prom[data+2*256]; | |
| 328 | bit0 = (val >> 0) & 0x01; | |
| 329 | bit1 = (val >> 1) & 0x01; | |
| 330 | bit2 = (val >> 2) & 0x01; | |
| 331 | bit3 = (val >> 3) & 0x01; | |
| 332 | b = 0x0e * bit0 + 0x1f * bit1 + 0x43 * bit2 + 0x8f * bit3; | |
| 457 | 333 | } |
| 458 | 334 | else |
| 459 | 335 | { |
| 460 | priority <<= 3; | |
| 461 | ||
| 462 | for (offs = 0;offs < system1_backgroundram_size;offs += 2) | |
| 463 | { | |
| 464 | if ((system1_backgroundram[offs+1] & 0x08) == priority) | |
| 465 | { | |
| 466 | int code,color; | |
| 467 | ||
| 468 | ||
| 469 | code = (system1_backgroundram[offs] | (system1_backgroundram[offs+1] << 8)); | |
| 470 | code = ((code >> 4) & 0x800) | (code & 0x7ff); /* Heavy Metal only */ | |
| 471 | color = ((code >> 5) & 0x3f) + 0x40; | |
| 472 | sx = (offs/2) % 32; | |
| 473 | sy = (offs/2) / 32; | |
| 474 | ||
| 475 | if (flip_screen_get(machine)) | |
| 476 | { | |
| 477 | sx = 8*(31-sx) + background_scrollx_flip; | |
| 478 | sy = 8*(31-sy) + background_scrolly_flip; | |
| 479 | } | |
| 480 | else | |
| 481 | { | |
| 482 | sx = 8*sx + background_scrollx; | |
| 483 | sy = 8*sy + background_scrolly; | |
| 484 | } | |
| 485 | ||
| 486 | /* draw it 4 times because of possible wrap around */ | |
| 487 | drawgfx(bitmap,machine->gfx[0], | |
| 488 | code, | |
| 489 | color, | |
| 490 | flip_screen_get(machine),flip_screen_get(machine), | |
| 491 | sx,sy, | |
| 492 | cliprect,TRANSPARENCY_PEN,0); | |
| 493 | drawgfx(bitmap,machine->gfx[0], | |
| 494 | code, | |
| 495 | color, | |
| 496 | flip_screen_get(machine),flip_screen_get(machine), | |
| 497 | sx-256,sy, | |
| 498 | cliprect,TRANSPARENCY_PEN,0); | |
| 499 | drawgfx(bitmap,machine->gfx[0], | |
| 500 | code, | |
| 501 | color, | |
| 502 | flip_screen_get(machine),flip_screen_get(machine), | |
| 503 | sx,sy-256, | |
| 504 | cliprect,TRANSPARENCY_PEN,0); | |
| 505 | drawgfx(bitmap,machine->gfx[0], | |
| 506 | code, | |
| 507 | color, | |
| 508 | flip_screen_get(machine),flip_screen_get(machine), | |
| 509 | sx-256,sy-256, | |
| 510 | cliprect,TRANSPARENCY_PEN,0); | |
| 511 | } | |
| 512 | } | |
| 336 | r = pal3bit(data >> 0); | |
| 337 | g = pal3bit(data >> 3); | |
| 338 | b = pal2bit(data >> 6); | |
| 513 | 339 | } |
| 514 | } | |
| 515 | 340 | |
| 516 | VIDEO_UPDATE( system1 ) | |
| 517 | { | |
| 518 | system1_draw_bg(screen->machine, bitmap, cliprect, -1); | |
| 519 | system1_draw_fg(screen->machine, bitmap, cliprect, 0); | |
| 520 | system1_draw_bg(screen->machine, bitmap, cliprect, 0); | |
| 521 | draw_sprites(screen->machine, bitmap); | |
| 522 | system1_draw_bg(screen->machine, bitmap, cliprect, 1); | |
| 523 | system1_draw_fg(screen->machine, bitmap, cliprect, 1); | |
| 524 | ||
| 525 | /* even if screen is off, sprites must still be drawn to update the collision table */ | |
| 526 | if (system1_video_mode & 0x10) /* screen off */ | |
| 527 | bitmap_fill(bitmap,cliprect,0); | |
| 528 | return 0; | |
| 341 | palette_set_color(space->machine,offset,MAKE_RGB(r,g,b)); | |
| 529 | 342 | } |
| 530 | 343 | |
| 531 | 344 | |
| 532 | 345 | |
| 346 | /************************************* | |
| 347 | * | |
| 348 | * Sprite rendering | |
| 349 | * | |
| 350 | *************************************/ | |
| 533 | 351 | |
| 534 | ||
| 535 | ||
| 536 | ||
| 537 | ||
| 538 | ||
| 539 | WRITE8_HANDLER( choplifter_scroll_x_w ) | |
| 352 | static void draw_sprites(running_machine *machine, bitmap_t *bitmap, const rectangle *cliprect, int xoffset) | |
| 540 | 353 | { |
| 541 | system1_scrollx_ram[offset] = data; | |
| 354 | UINT32 gfxbanks = memory_region_length(machine, "sprites") / 0x8000; | |
| 355 | const UINT8 *gfxbase = memory_region(machine, "sprites"); | |
| 356 | int flipscreen = flip_screen_get(machine); | |
| 357 | int spritenum; | |
| 542 | 358 | |
| 543 | scrollx_row[offset/2] = (system1_scrollx_ram[offset & ~1] >> 1) + ((system1_scrollx_ram[offset | 1] & 1) << 7); | |
| 544 | } | |
| 545 | ||
| 546 | static void chplft_draw_bg(running_machine *machine, bitmap_t *bitmap, const rectangle *cliprect, int priority) | |
| 547 | { | |
| 548 | int sx,sy,offs; | |
| 549 | int choplifter_scroll_x_on = (system1_scrollx_ram[0] == 0xe5 && system1_scrollx_ram[1] == 0xff) ? 0 : 1; | |
| 550 | ||
| 551 | ||
| 552 | if (priority == -1) | |
| 359 | /* up to 32 sprites total */ | |
| 360 | for (spritenum = 0; spritenum < 32; spritenum++) | |
| 553 | 361 | { |
| 554 | /* optimized far background */ | |
| 362 | const UINT8 *spritedata = &spriteram[spritenum * 0x10]; | |
| 363 | UINT16 srcaddr = spritedata[6] + (spritedata[7] << 8); | |
| 364 | UINT16 stride = spritedata[4] + (spritedata[5] << 8); | |
| 365 | UINT8 bank = ((spritedata[3] & 0x80) >> 7) | ((spritedata[3] & 0x40) >> 5) | ((spritedata[3] & 0x20) >> 3); | |
| 366 | int xstart = ((spritedata[2] + (spritedata[3] << 8)) & 0x1ff) / 2 + xoffset; | |
| 367 | int bottom = spritedata[1] + 1; | |
| 368 | int top = spritedata[0] + 1; | |
| 369 | UINT16 palettebase = spritenum * 0x10; | |
| 370 | const UINT8 *gfxbankbase; | |
| 371 | int x, y; | |
| 555 | 372 | |
| 556 | /* for every character in the background video RAM, check if it has | |
| 557 | * been modified since last time and update it accordingly. | |
| 558 | */ | |
| 373 | /* writing an 0xff into the first byte of sprite RAM seems to disable all sprites; | |
| 374 | not sure if this applies to each sprite or only to the first one; see pitfall2 | |
| 375 | and wmatch for examples where this is done */ | |
| 376 | if (spritedata[0] == 0xff) | |
| 377 | return; | |
| 559 | 378 | |
| 560 | for (offs = 0;offs < system1_backgroundram_size;offs += 2) | |
| 561 | { | |
| 562 | if (bg_dirtybuffer[offs / 2]) | |
| 563 | { | |
| 564 | int code,color; | |
| 379 | /* clamp the bank to the size of the sprite ROMs */ | |
| 380 | bank %= gfxbanks; | |
| 381 | gfxbankbase = gfxbase + bank * 0x8000; | |
| 565 | 382 | |
| 566 | ||
| 567 | bg_dirtybuffer[offs / 2] = 0; | |
| 568 | ||
| 569 | code = (system1_backgroundram[offs] | (system1_backgroundram[offs+1] << 8)); | |
| 570 | code = ((code >> 4) & 0x800) | (code & 0x7ff); /* Heavy Metal only */ | |
| 571 | color = ((code >> 5) & 0x3f) + 0x40; | |
| 572 | sx = (offs/2) % 32; | |
| 573 | sy = (offs/2) / 32; | |
| 574 | ||
| 575 | if (flip_screen_get(machine)) | |
| 576 | { | |
| 577 | sx = 31 - sx; | |
| 578 | sy = 31 - sy; | |
| 579 | } | |
| 580 | ||
| 581 | drawgfx(tmp_bitmap,machine->gfx[0], | |
| 582 | code, | |
| 583 | color, | |
| 584 | flip_screen_get(machine),flip_screen_get(machine), | |
| 585 | 8*sx,8*sy, | |
| 586 | 0,TRANSPARENCY_NONE,0); | |
| 587 | } | |
| 383 | /* flip sprites vertically */ | |
| 384 | if (flipscreen) | |
| 385 | { | |
| 386 | int temp = top; | |
| 387 | top = 256 - bottom; | |
| 388 | bottom = 256 - temp; | |
| 588 | 389 | } |
| 589 | 390 | |
| 590 | /* copy the temporary bitmap to the screen */ | |
| 591 | if (choplifter_scroll_x_on) | |
| 391 | /* iterate over all rows of the sprite */ | |
| 392 | for (y = top; y < bottom; y++) | |
| 592 | 393 | { |
| 593 | if (flip_screen_get(machine)) | |
| 594 | { | |
| 595 | int scrollx_row_flip[32],i; | |
| 394 | UINT16 *destbase = BITMAP_ADDR16(bitmap, y, 0); | |
| 395 | UINT16 curaddr; | |
| 396 | int addrdelta; | |
| 596 | 397 | |
| 597 | for (i = 0; i < 32; i++) | |
| 598 | scrollx_row_flip[31-i] = (256-scrollx_row[i]) & 0xff; | |
| 398 | /* advance by the row counter */ | |
| 399 | srcaddr += stride; | |
| 599 | 400 | |
| 600 | copyscrollbitmap(bitmap,tmp_bitmap,32,scrollx_row_flip,0,0,cliprect); | |
| 601 | } | |
| 602 | else | |
| 603 | copyscrollbitmap(bitmap,tmp_bitmap,32,scrollx_row,0,0,cliprect); | |
| 604 | } | |
| 605 | else | |
| 606 | copybitmap(bitmap,tmp_bitmap,0,0,0,0,cliprect); | |
| 607 | } | |
| 608 | else | |
| 609 | { | |
| 610 | priority <<= 3; | |
| 401 | /* skip if outside of our clipping area */ | |
| 402 | if (y < cliprect->min_y || y > cliprect->max_y) | |
| 403 | continue; | |
| 611 | 404 | |
| 612 | for (offs = 0;offs < system1_backgroundram_size;offs += 2) | |
| 613 | { | |
| 614 | if ((system1_backgroundram[offs+1] & 0x08) == priority) | |
| 405 | /* iterate over X */ | |
| 406 | addrdelta = (srcaddr & 0x8000) ? -1 : 1; | |
| 407 | for (x = xstart, curaddr = srcaddr; ; x += 2, curaddr += addrdelta) | |
| 615 | 408 | { |
| 616 | int code,color; | |
| 409 | UINT8 color1, color2; | |
| 410 | UINT8 data; | |
| 617 | 411 | |
| 412 | data = gfxbankbase[curaddr & 0x7fff]; | |
| 618 | 413 | |
| 619 | code = (system1_backgroundram[offs] | (system1_backgroundram[offs+1] << 8)); | |
| 620 | code = ((code >> 4) & 0x800) | (code & 0x7ff); /* Heavy Metal only */ | |
| 621 | color = ((code >> 5) & 0x3f) + 0x40; | |
| 622 | sx = (offs/2) % 32; | |
| 623 | sy = (offs/2) / 32; | |
| 624 | ||
| 625 | if (flip_screen_get(machine)) | |
| 414 | /* non-flipped case */ | |
| 415 | if (!(curaddr & 0x8000)) | |
| 626 | 416 | { |
| 627 | sx = 8*(31-sx); | |
| 628 | ||
| 629 | if (choplifter_scroll_x_on) | |
| 630 | sx = (sx - scrollx_row[sy]) & 0xff; | |
| 631 | ||
| 632 | sy = 31 - sy; | |
| 417 | color1 = data >> 4; | |
| 418 | color2 = data & 0x0f; | |
| 633 | 419 | } |
| 634 | 420 | else |
| 635 | 421 | { |
| 636 | sx = 8*sx; | |
| 637 | ||
| 638 | if (choplifter_scroll_x_on) | |
| 639 | sx = (sx + scrollx_row[sy]) & 0xff; | |
| 422 | color1 = data & 0x0f; | |
| 423 | color2 = data >> 4; | |
| 640 | 424 | } |
| 641 | 425 | |
| 642 | drawgfx(bitmap,machine->gfx[0], | |
| 643 | code, | |
| 644 | color, | |
| 645 | flip_screen_get(machine),flip_screen_get(machine), | |
| 646 | sx,8*sy, | |
| 647 | cliprect,TRANSPARENCY_PEN,0); | |
| 648 | } | |
| 649 | } | |
| 650 | } | |
| 651 | } | |
| 426 | /* stop when we see color 0x0f */ | |
| 427 | if (color1 == 0x0f) | |
| 428 | break; | |
| 652 | 429 | |
| 653 | VIDEO_UPDATE( choplifter ) | |
| 654 | { | |
| 655 | chplft_draw_bg(screen->machine, bitmap, cliprect, -1); | |
| 656 | system1_draw_fg(screen->machine, bitmap, cliprect, 0); | |
| 657 | chplft_draw_bg(screen->machine, bitmap, cliprect, 0); | |
| 658 | draw_sprites(screen->machine, bitmap); | |
| 659 | chplft_draw_bg(screen->machine, bitmap, cliprect, 1); | |
| 660 | system1_draw_fg(screen->machine, bitmap, cliprect, 1); | |
| 430 | /* draw if non-transparent */ | |
| 431 | if (color1 != 0) | |
| 432 | { | |
| 433 | int effx = flipscreen ? 255 - (x + 0) : (x + 0); | |
| 434 | if (effx >= cliprect->min_x && effx <= cliprect->max_x) | |
| 435 | { | |
| 436 | int prevpix = destbase[effx]; | |
| 661 | 437 | |
| 662 | /* even if screen is off, sprites must still be drawn to update the collision table */ | |
| 663 | if (system1_video_mode & 0x10) /* screen off */ | |
| 664 | bitmap_fill(bitmap,cliprect,0); | |
| 438 | if ((prevpix & 0x0f) != 0) | |
| 439 | sprite_collide[((prevpix >> 4) & 0x1f) + 32 * spritenum] = sprite_collide_summary = 1; | |
| 440 | destbase[effx] = color1 | palettebase; | |
| 441 | } | |
| 442 | } | |
| 665 | 443 | |
| 444 | /* stop when we see color 0x0f */ | |
| 445 | if (color2 == 0x0f) | |
| 446 | break; | |
| 666 | 447 | |
| 667 | #ifdef MAME_DEBUG | |
| 668 | if (input_code_pressed(KEYCODE_SPACE)) // goto next level | |
| 669 | { | |
| 670 | memory_region(screen->machine, "maincpu")[0xC085]=33; | |
| 448 | /* draw if non-transparent */ | |
| 449 | if (color2 != 0) | |
| 450 | { | |
| 451 | int effx = flipscreen ? 255 - (x + 1) : (x + 1); | |
| 452 | if (effx >= cliprect->min_x && effx <= cliprect->max_x) | |
| 453 | { | |
| 454 | int prevpix = destbase[effx]; | |
| 455 | ||
| 456 | if ((prevpix & 0x0f) != 0) | |
| 457 | sprite_collide[((prevpix >> 4) & 0x1f) + 32 * spritenum] = sprite_collide_summary = 1; | |
| 458 | destbase[effx] = color2 | palettebase; | |
| 459 | } | |
| 460 | } | |
| 461 | } | |
| 462 | } | |
| 671 | 463 | } |
| 672 | #endif | |
| 673 | return 0; | |
| 674 | 464 | } |
| 675 | 465 | |
| 676 | 466 | |
| 677 | 467 | |
| 678 | READ8_HANDLER( wbml_videoram_bank_latch_r ) | |
| 679 | { | |
| 680 | return wbml_videoram_bank_latch; | |
| 681 | } | |
| 468 | /************************************* | |
| 469 | * | |
| 470 | * Generic update code | |
| 471 | * | |
| 472 | *************************************/ | |
| 682 | 473 | |
| 683 | ||
| 474 | static void video_update_common(const de | |
| 684 | 475 | { |
| 685 | wbml_videoram_bank_latch = data; | |
| 686 | wbml_videoram_bank = (data >> 1) & 0x03; /* Select 4 banks of 4k, bit 2,1 */ | |
| 687 | } | |
| 476 | const UINT8 *lookup = memory_region(screen->machine, "proms"); | |
| 477 | int x, y; | |
| 688 | 478 | |
| 689 | READ8_HANDLER( wbml_paged_videoram_r ) | |
| 690 | { | |
| 691 | return wbml_paged_videoram[0x1000*wbml_videoram_bank + offset]; | |
| 692 | } | |
| 479 | /* first clear the sprite bitmap and draw sprites within this area */ | |
| 480 | bitmap_fill(sprite_bitmap, cliprect, 0); | |
| 481 | draw_sprites(screen->machine, sprite_bitmap, cliprect, spritexoffs); | |
| 693 | 482 | |
| 694 | WRITE8_HANDLER( wbml_paged_videoram_w ) | |
| 695 | { | |
| 696 | wbml_paged_videoram[0x1000*wbml_videoram_bank + offset] = data; | |
| 697 | } | |
| 698 | ||
| 699 | static void wbml_draw_bg(running_machine *machine, bitmap_t *bitmap, const rectangle *cliprect, int trasp) | |
| 700 | { | |
| 701 | int page; | |
| 702 | ||
| 703 | int xscroll = (wbml_paged_videoram[0x7c0] >> 1) + ((wbml_paged_videoram[0x7c1] & 1) << 7) - 256 + 5; | |
| 704 | int yscroll = -wbml_paged_videoram[0x7ba]; | |
| 705 | ||
| 706 | for (page=0; page < 4; page++) | |
| 483 | /* iterate over rows */ | |
| 484 | for (y = cliprect->min_y; y <= cliprect->max_y; y++) | |
| 707 | 485 | { |
| 708 | const UINT8 *source = wbml_paged_videoram + (wbml_paged_videoram[0x0740 + page*2] & 0x07)*0x800; | |
| 709 | int startx = (page&1)*256+xscroll; | |
| 710 | int starty = (page>>1)*256+yscroll; | |
| 711 | int row,col; | |
| 486 | UINT16 *fgbase = BITMAP_ADDR16(fgpixmap, y, 0); | |
| 487 | UINT16 *sprbase = BITMAP_ADDR16(sprite_bitmap, y, 0); | |
| 488 | UINT16 *dstbase = BITMAP_ADDR16(bitmap, y, 0); | |
| 489 | int bgy = (y + bgyscroll) & 0x1ff; | |
| 490 | int bgxscroll = bgrowscroll[y / 8]; | |
| 491 | UINT16 *bgbase[2]; | |
| 712 | 492 | |
| 493 | /* get the base of the left and right pixmaps for the effective background Y */ | |
| 494 | bgbase[0] = BITMAP_ADDR16(bgpixmaps[(bgy >> 8) * 2 + 0], bgy & 0xff, 0); | |
| 495 | bgbase[1] = BITMAP_ADDR16(bgpixmaps[(bgy >> 8) * 2 + 1], bgy & 0xff, 0); | |
| 713 | 496 | |
| 714 | for( row=0; row<32*8; row+=8 ) | |
| 497 | /* iterate over pixels */ | |
| 498 | for (x = cliprect->min_x; x <= cliprect->max_x; x++) | |
| 715 | 499 | { |
| 716 | for( col=0; col<32*8; col+=8 ) | |
| 717 | { | |
| 718 | int code,priority; | |
| 719 | int x = (startx+col) & 0x1ff; | |
| 720 | int y = (starty+row) & 0x1ff; | |
| 721 | if (x > 256) x -= 512; | |
| 722 | if (y > 224) y -= 512; | |
| 500 | int bgx = (x - bgxscroll) & 0x1ff; | |
| 501 | UINT16 fgpix = fgbase[x]; | |
| 502 | UINT16 bgpix = bgbase[bgx >> 8][bgx & 0xff]; | |
| 503 | UINT16 sprpix = sprbase[x]; | |
| 504 | UINT8 lookup_index; | |
| 505 | UINT8 lookup_value; | |
| 723 | 506 | |
| 724 | if (flip_screen_get(machine)) | |
| 725 | { | |
| 726 | x = 248 - x; | |
| 727 | y = 248 - y; | |
| 728 | } | |
| 507 | /* using the sprite, background, and foreground pixels, look up the color behavior */ | |
| 508 | lookup_index = (((sprpix & 0xf) == 0) << 0) | | |
| 509 | (((fgpix & 7) == 0) << 1) | | |
| 510 | (((fgpix >> 9) & 3) << 2) | | |
| 511 | (((bgpix & 7) == 0) << 4) | | |
| 512 | (((bgpix >> 9) & 3) << 5); | |
| 513 | lookup_value = lookup[lookup_index]; | |
| 729 | 514 | |
| 730 | code = source[0] + (source[1] << 8); | |
| 731 | priority = code & 0x800; | |
| 732 | code = ((code >> 4) & 0x800) | (code & 0x7ff); | |
| 515 | /* compute collisions based on two of the PROM bits */ | |
| 516 | if (!(lookup_value & 4)) | |
| 517 | mix_collide[((lookup_value & 8) << 2) | ((sprpix >> 4) & 0x1f)] = mix_collide_summary = 1; | |
| 733 | 518 | |
| 734 | if (!trasp) | |
| 735 | drawgfx(bitmap,machine->gfx[0], | |
| 736 | code, | |
| 737 | ((code >> 5) & 0x3f) + 64, | |
| 738 | flip_screen_get(machine),flip_screen_get(machine), | |
| 739 | x,y, | |
| 740 | cliprect, TRANSPARENCY_NONE, 0); | |
| 741 | else if (priority) | |
| 742 | drawgfx(bitmap,machine->gfx[0], | |
| 743 | code, | |
| 744 | ((code >> 5) & 0x3f) + 64, | |
| 745 | flip_screen_get(machine),flip_screen_get(machine), | |
| 746 | x,y, | |
| 747 | cliprect, TRANSPARENCY_PEN, 0); | |
| 748 | ||
| 749 | source+=2; | |
| 750 | } | |
| 519 | /* the lower 2 PROM bits select the palette and which pixels */ | |
| 520 | lookup_value &= 3; | |
| 521 | if (system1_video_mode & 0x10) | |
| 522 | dstbase[x] = 0; | |
| 523 | else if (lookup_value == 0) | |
| 524 | dstbase[x] = 0x000 | (sprpix & 0x1ff); | |
| 525 | else if (lookup_value == 1) | |
| 526 | dstbase[x] = 0x200 | (fgpix & 0x1ff); | |
| 527 | else | |
| 528 | dstbase[x] = 0x400 | (bgpix & 0x1ff); | |
| 751 | 529 | } |
| 752 | } | |
| 530 | } | |
| 753 | 531 | } |
| 754 | 532 | |
| 755 | static void wbml_draw_fg(running_machine *machine, bitmap_t *bitmap, const rectangle *cliprect) | |
| 756 | { | |
| 757 | int offs; | |
| 758 | 533 | |
| 759 | 534 | |
| 760 | for (offs = 0;offs < 0x700;offs += 2) | |
| 761 | { | |
| 762 | int sx,sy,code; | |
| 535 | /************************************* | |
| 536 | * | |
| 537 | * Board-specific update front-ends | |
| 538 | * | |
| 539 | *************************************/ | |
| 763 | 540 | |
| 541 | VIDEO_UPDATE( system1 ) | |
| 542 | { | |
| 543 | bitmap_t *bgpixmaps[4], *fgpixmap; | |
| 544 | int bgrowscroll[32]; | |
| 545 | int xscroll, yscroll; | |
| 546 | int y; | |
| 764 | 547 | |
| 765 | sx = (offs/2) % 32; | |
| 766 | sy = (offs/2) / 32; | |
| 767 | code = wbml_paged_videoram[offs] | (wbml_paged_videoram[offs+1] << 8); | |
| 768 | code = ((code >> 4) & 0x800) | (code & 0x7ff); | |
| 548 | /* all 4 background pages are the same, fixed to page 0 */ | |
| 549 | bgpixmaps[0] = bgpixmaps[1] = bgpixmaps[2] = bgpixmaps[3] = tilemap_get_pixmap(tilemap_page[0]); | |
| 769 | 550 | |
| 770 | if (flip_screen_get(machine)) | |
| 771 | { | |
| 772 | sx = 31 - sx; | |
| 773 | sy = 31 - sy; | |
| 774 | } | |
| 551 | /* foreground is fixed to page 1 */ | |
| 552 | fgpixmap = tilemap_get_pixmap(tilemap_page[1]); | |
| 775 | 553 | |
| 776 | drawgfx(bitmap,machine->gfx[0], | |
| 777 | code, | |
| 778 | (code >> 5) & 0x3f, | |
| 779 | flip_screen_get(machine),flip_screen_get(machine), | |
| 780 | 8*sx,8*sy, | |
| 781 | cliprect,TRANSPARENCY_PEN,0); | |
| 554 | /* get fixed scroll offsets */ | |
| 555 | xscroll = (videoram[0xffc] | (videoram[0xffd] << 8)) / 2 + 14; | |
| 556 | yscroll = videoram[0xfbd]; | |
| 557 | ||
| 558 | /* adjust for flipping */ | |
| 559 | if (flip_screen_get(screen->machine)) | |
| 560 | { | |
| 561 | xscroll = 279 - xscroll; | |
| 562 | yscroll = 256 - yscroll; | |
| 782 | 563 | } |
| 783 | } | |
| 784 | 564 | |
| 565 | /* fill in the row scroll table */ | |
| 566 | for (y = 0; y < 32; y++) | |
| 567 | bgrowscroll[y] = xscroll; | |
| 785 | 568 | |
| 786 | VIDEO_UPDATE( wbml ) | |
| 787 | { | |
| 788 | wbml_draw_bg(screen->machine, bitmap, cliprect, 0); | |
| 789 | draw_sprites(screen->machine, bitmap); | |
| 790 | wbml_draw_bg(screen->machine, bitmap, cliprect, 1); | |
| 791 | wbml_draw_fg(screen->machine, bitmap, cliprect); | |
| 792 | ||
| 793 | /* even if screen is off, sprites must still be drawn to update the collision table */ | |
| 794 | if (system1_video_mode & 0x10) /* screen off */ | |
| 795 | bitmap_fill(bitmap,cliprect,0); | |
| 569 | /* common update */ | |
| 570 | video_update_common(screen, bitmap, cliprect, fgpixmap, bgpixmaps, bgrowscroll, yscroll, 0); | |
| 796 | 571 | return 0; |
| 797 | 572 | } |
| 798 | 573 | |
| 799 | /* same as wbml but with rows scroll */ | |
| 800 | static void ufosensi_draw_bg(running_machine *machine, bitmap_t *bitmap, const rectangle *cliprect, int trasp) | |
| 574 | ||
| 575 | VIDEO_UPDATE( system2 ) | |
| 801 | 576 | { |
| 802 | int page; | |
| 577 | bitmap_t *bgpixmaps[4], *fgpixmap; | |
| 578 | int rowscroll[32]; | |
| 579 | int xscroll, yscroll; | |
| 580 | int sprxoffset; | |
| 581 | int y; | |
| 803 | 582 | |
| 804 | int yscroll = -wbml_paged_videoram[0x7ba]; | |
| 583 | /* 4 independent background pages */ | |
| 584 | bgpixmaps[0] = tilemap_get_pixmap(tilemap_page[videoram[0x740] & 7]); | |
| 585 | bgpixmaps[1] = tilemap_get_pixmap(tilemap_page[videoram[0x742] & 7]); | |
| 586 | bgpixmaps[2] = tilemap_get_pixmap(tilemap_page[videoram[0x744] & 7]); | |
| 587 | bgpixmaps[3] = tilemap_get_pixmap(tilemap_page[videoram[0x746] & 7]); | |
| 805 | 588 | |
| 806 | for (page=0; page < 4; page++) | |
| 589 | /* foreground is fixed to page 0 */ | |
| 590 | fgpixmap = tilemap_get_pixmap(tilemap_page[0]); | |
| 591 | ||
| 592 | /* get scroll offsets */ | |
| 593 | if (!flip_screen_get(screen->machine)) | |
| 807 | 594 | { |
| 808 | const UINT8 *source = wbml_paged_videoram + (wbml_paged_videoram[0x0740 + page*2] & 0x07)*0x800; | |
| 809 | int starty = (page>>1)*256+yscroll; | |
| 810 | int row,col; | |
| 595 | xscroll = (((videoram[0x7c0] | (videoram[0x7c1] << 8)) / 2) & 0xff) - 256 + 5; | |
| 596 | yscroll = videoram[0x7ba]; | |
| 597 | sprxoffset = 7; | |
| 598 | } | |
| 599 | else | |
| 600 | { | |
| 601 | xscroll = 262+256 - ((((videoram[0x7f6] | (videoram[0x7f7] << 8)) / 2) & 0xff) - 256 + 5); | |
| 602 | yscroll = 256+256 - videoram[0x784]; | |
| 603 | sprxoffset = -7; | |
| 604 | } | |
| 811 | 605 | |
| 606 | /* fill in the row scroll table */ | |
| 607 | for (y = 0; y < 32; y++) | |
| 608 | rowscroll[y] = xscroll; | |
| 812 | 609 | |
| 813 | for( row=0; row<32*8; row+=8 ) | |
| 814 | { | |
| 815 | for( col=0; col<32*8; col+=8 ) | |
| 816 | { | |
| 817 | int code,priority; | |
| 818 | int xscroll = (wbml_paged_videoram[0x7c0 + row/4] >> 1) + ((wbml_paged_videoram[0x7c1 + row/4] & 1) << 7) - 256 + 5; | |
| 819 | int startx = (page&1)*256+xscroll; | |
| 820 | int x = (startx+col) & 0x1ff; | |
| 821 | int y = (starty+row) & 0x1ff; | |
| 822 | if (x > 256) x -= 512; | |
| 823 | if (y > 224) y -= 512; | |
| 824 | ||
| 825 | if (flip_screen_get(machine)) | |
| 826 | { | |
| 827 | x = 248 - x; | |
| 828 | y = 248 - y; | |
| 829 | } | |
| 830 | ||
| 831 | code = source[0] + (source[1] << 8); | |
| 832 | priority = code & 0x800; | |
| 833 | code = ((code >> 4) & 0x800) | (code & 0x7ff); | |
| 834 | ||
| 835 | if (!trasp) | |
| 836 | drawgfx(bitmap,machine->gfx[0], | |
| 837 | code, | |
| 838 | ((code >> 5) & 0x3f) + 64, | |
| 839 | flip_screen_get(machine),flip_screen_get(machine), | |
| 840 | x,y, | |
| 841 | cliprect, TRANSPARENCY_NONE, 0); | |
| 842 | else if (priority) | |
| 843 | drawgfx(bitmap,machine->gfx[0], | |
| 844 | code, | |
| 845 | ((code >> 5) & 0x3f) + 64, | |
| 846 | flip_screen_get(machine),flip_screen_get(machine), | |
| 847 | x,y, | |
| 848 | cliprect, TRANSPARENCY_PEN, 0); | |
| 849 | ||
| 850 | source+=2; | |
| 851 | } | |
| 852 | } | |
| 853 | } /* next page */ | |
| 854 | } | |
| 855 | ||
| 856 | VIDEO_UPDATE( ufosensi ) | |
| 857 | { | |
| 858 | ufosensi_draw_bg(screen->machine, bitmap, cliprect, 0); | |
| 859 | draw_sprites(screen->machine, bitmap); | |
| 860 | ufosensi_draw_bg(screen->machine, bitmap, cliprect, 1); | |
| 861 | wbml_draw_fg(screen->machine, bitmap, cliprect); | |
| 862 | ||
| 863 | /* even if screen is off, sprites must still be drawn to update the collision table */ | |
| 864 | if (system1_video_mode & 0x10) /* screen off */ | |
| 865 | bitmap_fill(bitmap,cliprect,0); | |
| 610 | /* common update */ | |
| 611 | video_update_common(screen, bitmap, cliprect, fgpixmap, bgpixmaps, rowscroll, yscroll, sprxoffset); | |
| 866 | 612 | return 0; |
| 867 | 613 | } |
| 868 | 614 | |
| 869 | VIDEO_UPDATE( blockgal ) | |
| 615 | ||
| 616 | VIDEO_UPDATE( system2_rowscroll ) | |
| 870 | 617 | { |
| 871 | blockgal_kludgeoffset = -8; | |
| 618 | bitmap_t *bgpixmaps[4], *fgpixmap; | |
| 619 | int rowscroll[32]; | |
| 620 | int yscroll; | |
| 621 | int y; | |
| 872 | 622 | |
| 873 | system1_draw_bg(screen->machine, bitmap, cliprect, -1); | |
| 874 | system1_draw_fg(screen->machine, bitmap, cliprect, 0); | |
| 875 | system1_draw_bg(screen->machine, bitmap, cliprect, 0); | |
| 876 | draw_sprites(screen->machine, bitmap); | |
| 877 | system1_draw_bg(screen->machine, bitmap, cliprect, 1); | |
| 878 | system1_draw_fg(screen->machine, bitmap, cliprect, 1); | |
| 623 | /* 4 independent background pages */ | |
| 624 | bgpixmaps[0] = tilemap_get_pixmap(tilemap_page[videoram[0x740] & 7]); | |
| 625 | bgpixmaps[1] = tilemap_get_pixmap(tilemap_page[videoram[0x742] & 7]); | |
| 626 | bgpixmaps[2] = tilemap_get_pixmap(tilemap_page[videoram[0x744] & 7]); | |
| 627 | bgpixmaps[3] = tilemap_get_pixmap(tilemap_page[videoram[0x746] & 7]); | |
| 879 | 628 | |
| 880 | /* even if screen is off, sprites must still be drawn to update the collision table */ | |
| 881 | if (system1_video_mode & 0x10) /* screen off */ | |
| 882 | bitmap_fill(bitmap,cliprect,0); | |
| 629 | /* foreground is fixed to page 0 */ | |
| 630 | fgpixmap = tilemap_get_pixmap(tilemap_page[0]); | |
| 883 | 631 | |
| 884 | blockgal_kludgeoffset = 0; | |
| 632 | /* get scroll offsets */ | |
| 633 | if (!flip_screen_get(screen->machine)) | |
| 634 | { | |
| 635 | for (y = 0; y < 32; y++) | |
| 636 | rowscroll[y] = (((videoram[0x7c0 + y * 2] | (videoram[0x7c1 + y * 2] << 8)) / 2) & 0xff) - 256 + 5; | |
| 637 | yscroll = videoram[0x7ba]; | |
| 638 | } | |
| 639 | else | |
| 640 | { | |
| 641 | for (y = 0; y < 32; y++) | |
| 642 | rowscroll[y] = 262+256 - ((((videoram[0x7fe - y * 2] | (videoram[0x7ff - y * 2] << 8)) / 2) & 0xff) - 256 + 5); | |
| 643 | yscroll = 256+256 - videoram[0x784]; | |
| 644 | } | |
| 645 | ||
| 646 | /* common update */ | |
| 647 | video_update_common(screen, bitmap, cliprect, fgpixmap, bgpixmaps, rowscroll, yscroll, 7); | |
| 885 | 648 | return 0; |
| 886 | 649 | } |
| r4470 | r4471 | |
|---|---|---|
| 1 | 1 | #ifndef _system1_H_ |
| 2 | 2 | #define _system1_H_ |
| 3 | 3 | |
| 4 | #define SPR_Y_TOP 0 | |
| 5 | #define SPR_Y_BOTTOM 1 | |
| 6 | #define SPR_X_LO 2 | |
| 7 | #define SPR_X_HI 3 | |
| 8 | #define SPR_SKIP_LO 4 | |
| 9 | #define SPR_SKIP_HI 5 | |
| 10 | #define SPR_GFXOFS_LO 6 | |
| 11 | #define SPR_GFXOFS_HI 7 | |
| 12 | 4 | |
| 13 | #define system1_BACKGROUND_MEMORY_SINGLE 0 | |
| 14 | #define system1_BACKGROUND_MEMORY_BANKED 1 | |
| 5 | VIDEO_START( system1 ); | |
| 6 | VIDEO_START( system2 ); | |
| 15 | 7 | |
| 16 | extern UINT8 *system1_scroll_y; | |
| 17 | extern UINT8 *system1_scroll_x; | |
| 18 | extern UINT8 *system1_videoram; | |
| 19 | extern UINT8 *system1_backgroundram; | |
| 20 | extern UINT8 *system1_sprites_collisionram; | |
| 21 | extern UINT8 *system1_background_collisionram; | |
| 22 | extern UINT8 *system1_scrollx_ram; | |
| 23 | extern size_t system1_videoram_size; | |
| 24 | extern size_t system1_backgroundram_size; | |
| 8 | WRITE8_HANDLER( system1_videomode_w ); | |
| 9 | WRITE8_HANDLER( system1_paletteram_w ); | |
| 25 | 10 | |
| 11 | READ8_HANDLER( system1_videoram_r ); | |
| 12 | WRITE8_HANDLER( system1_videoram_w ); | |
| 13 | WRITE8_DEVICE_HANDLER( system1_videoram_bank_w ); | |
| 26 | 14 | |
| 27 | VIDEO_START( system1 ); | |
| 28 | VIDEO_START( wbml ); | |
| 29 | void system1_define_background_memory(int Mode); | |
| 15 | READ8_HANDLER( system1_mixer_collision_r ); | |
| 16 | WRITE8_HANDLER( system1_mixer_collision_w ); | |
| 17 | WRITE8_HANDLER( system1_mixer_collision_reset_w ); | |
| 30 | 18 | |
| 31 | READ8_HANDLER( wbml_videoram_bank_latch_r ); | |
| 32 | WRITE8_HANDLER( wbml_videoram_bank_latch_w ); | |
| 33 | READ8_HANDLER( wbml_paged_videoram_r ); | |
| 34 | WRITE8_HANDLER( wbml_paged_videoram_w ); | |
| 35 | WRITE8_HANDLER( system1_background_collisionram_w ); | |
| 36 | WRITE8_HANDLER( system1_sprites_collisionram_w ); | |
| 37 | WRITE8_HANDLER( system1_paletteram_w ); | |
| 38 | WRITE8_HANDLER( system1_backgroundram_w ); | |
| 19 | READ8_HANDLER( system1_sprite_collision_r ); | |
| 20 | WRITE8_HANDLER( system1_sprite_collision_w ); | |
| 21 | WRITE8_HANDLER( system1_sprite_collision_reset_w ); | |
| 22 | ||
| 39 | 23 | VIDEO_UPDATE( system1 ); |
| 40 | PALETTE_INIT( system1 ); | |
| 41 | WRITE8_HANDLER( system1_videomode_w ); | |
| 42 | READ8_HANDLER( system1_videomode_r ); | |
| 24 | VIDEO_UPDATE( system2 ); | |
| 25 | VIDEO_UPDATE( system2_rowscroll ); | |
| 43 | 26 | |
| 44 | WRITE8_HANDLER( choplifter_scroll_x_w ); | |
| 45 | VIDEO_UPDATE( choplifter ); | |
| 46 | VIDEO_UPDATE( wbml ); | |
| 47 | VIDEO_UPDATE( ufosensi ); | |
| 48 | VIDEO_UPDATE( blockgal ); | |
| 49 | ||
| 50 | 27 | #endif |
| r4470 | r4471 | |
|---|---|---|
| 113 | 113 | // non 32-bit accesses have not yet been seen here, we need to know when they are |
| 114 | 114 | if ((mem_mask != U64(0xffffffff00000000)) && (mem_mask != U64(0x00000000ffffffff))) |
| 115 | 115 | { |
| 116 | assert_always(0, "Wrong mask!\n"); | |
| 116 | /*assume to return the lower 32-bits ONLY*/ | |
| 117 | return reg & 0xffffffff; | |
| 117 | 118 | } |
| 118 | 119 | |
| 119 | 120 | if (mem_mask == U64(0xffffffff00000000)) |
| r4470 | r4471 | |
| 144 | 145 | int reg; |
| 145 | 146 | UINT64 shift; |
| 146 | 147 | UINT32 dat; |
| 148 | static struct { | |
| 149 | UINT32 pvr_addr; | |
| 150 | UINT32 sys_addr; | |
| 151 | UINT32 size; | |
| 152 | UINT8 dir; | |
| 153 | UINT8 flag; | |
| 154 | UINT8 start; | |
| 155 | }pvr_dma; | |
| 147 | 156 | |
| 148 | 157 | reg = decode_reg_64(offset, mem_mask, &shift); |
| 149 | 158 | dat = (UINT32)(data >> shift); |
| 150 | 159 | |
| 151 | 160 | switch (reg) |
| 152 | 161 | { |
| 153 | case SB_PDST: | |
| 154 | #if DEBUG_PVRCTRL | |
| 155 | mame_printf_verbose("PVRCTRL: PVR-DMA start\n"); | |
| 156 | #endif | |
| 157 | break; | |
| 162 | case SB_PDSTAP: pvr_dma.pvr_addr = dat; break; | |
| 163 | case SB_PDSTAR: pvr_dma.sys_addr = dat; break; | |
| 164 | case SB_PDLEN: pvr_dma.size = dat; break; | |
| 165 | case SB_PDDIR: pvr_dma.dir = dat & 1; break; | |
| 166 | case SB_PDTSEL: mame_printf_verbose("PVRCTRL: initiation mode %x\n",dat); break; | |
| 167 | case SB_PDEN: pvr_dma.flag = dat & 1; break; | |
| 168 | case SB_PDST: | |
| 169 | pvr_dma.start = dat & 1; | |
| 170 | /*We need to know where this is actually used on Naomi, for testing purpose.*/ | |
| 171 | if(pvr_dma.start) { printf("Warning: PVR-DMA start\n"); } | |
| 172 | ||
| 173 | /*TODO: use the ddt function.*/ | |
| 174 | if(pvr_dma.flag && pvr_dma.start) | |
| 175 | { | |
| 176 | UINT32 src,dst,size; | |
| 177 | dst = pvr_dma.pvr_addr; | |
| 178 | src = pvr_dma.sys_addr; | |
| 179 | size = 0; | |
| 180 | /* 0 rounding size = 16 Mbytes */ | |
| 181 | if(pvr_dma.size == 0) { pvr_dma.size = 0x100000; } | |
| 182 | ||
| 183 | if(pvr_dma.dir == 0) | |
| 184 | { | |
| 185 | for(;size<pvr_dma.size;size+=4) | |
| 186 | { | |
| 187 | memory_write_dword_64le(space,dst,memory_read_dword(space,src)); | |
| 188 | src+=4; | |
| 189 | dst+=4; | |
| 190 | } | |
| 191 | } | |
| 192 | else | |
| 193 | { | |
| 194 | for(;size<pvr_dma.size;size+=4) | |
| 195 | { | |
| 196 | memory_write_dword_64le(space,src,memory_read_dword(space,dst)); | |
| 197 | src+=4; | |
| 198 | dst+=4; | |
| 199 | } | |
| 200 | } | |
| 201 | /*Note: do not update the params, since this DMA type doesn't support it. */ | |
| 202 | ||
| 203 | dc_sysctrl_regs[SB_ISTNRM] |= IST_DMA_PVR; | |
| 204 | } | |
| 205 | break; | |
| 158 | 206 | } |
| 159 | 207 | |
| 160 | 208 | #if DEBUG_PVRCTRL |
| r4470 | r4471 | |
| 823 | 871 | } |
| 824 | 872 | |
| 825 | 873 | #if DEBUG_VERTICES |
| 826 | static void testdrawline(bitmap_t *bitmap, int index, int from, int to) | |
| 874 | ||
| 875 | ||
| 876 | INLINE void testdrawline(bitmap_t *bitmap, testvertices* from, testvertices* to) | |
| 827 | 877 | { |
| 828 | 878 | UINT32 *bmpaddr; |
| 829 | 879 | int ix, iy, i, inc, x, y, dx, dy, plotx, ploty; |
| r4470 | r4471 | |
| 834 | 884 | clip.y0=0; |
| 835 | 885 | clip.x1=639; |
| 836 | 886 | clip.y1=479; |
| 837 | line.x0=state_ta.grab[index].showvertices[from].x; | |
| 838 | line.y0=state_ta.grab[index].showvertices[from].y; | |
| 839 | line.x1=state_ta.grab[index].showvertices[to].x; | |
| 840 | line.y1=state_ta.grab[index].showvertices[to].y; | |
| 887 | line.x0=from->x; | |
| 888 | line.y0=from->y; | |
| 889 | line.x1=to->x; | |
| 890 | line.y1=to->y; | |
| 841 | 891 | if (render_clip_line(&line, &clip)) |
| 842 | 892 | return; |
| 843 | 893 | dx=line.x1-line.x0; |
| r4470 | r4471 | |
| 871 | 921 | } |
| 872 | 922 | } |
| 873 | 923 | } |
| 924 | ||
| 925 | INLINE void testdrawpoly(bitmap_t *bitmap, testvertices **v) | |
| 926 | { | |
| 927 | testdrawline(bitmap,v[0],v[1]); | |
| 928 | testdrawline(bitmap,v[1],v[2]); | |
| 929 | testdrawline(bitmap,v[2],v[0]); | |
| 930 | } | |
| 931 | ||
| 932 | ||
| 874 | 933 | #endif |
| 875 | 934 | |
| 876 | 935 | #if 0 |
| r4470 | r4471 | |
| 1025 | 1084 | case 4: // bumpmap |
| 1026 | 1085 | break; |
| 1027 | 1086 | case 5: // 4 bpp palette |
| 1087 | if (state_ta.grab[rs].showsprites[cs].texturemode & 2) // vq-compressed | |
| 1088 | { | |
| 1089 | c=0x800+(dilated1[cd][xt >> 1] + dilated0[cd][yt >> 2]); | |
| 1090 | c=*(((UINT8 *)dc_texture_ram) + BYTE_XOR_LE(state_ta.grab[rs].showsprites[cs].textureaddress+c)); | |
| 1091 | addrp=state_ta.grab[rs].showsprites[cs].textureaddress+c*8+(dilated1[cd][xt & 1] + dilated0[cd][yt & 3]); | |
| 1092 | } | |
| 1093 | else | |
| 1094 | { | |
| 1095 | addrp=state_ta.grab[rs].showsprites[cs].textureaddress+(dilated1[cd][xt] + dilated0[cd][yt]); | |
| 1096 | } | |
| 1097 | c=*(((UINT8 *)dc_texture_ram) + BYTE_XOR_LE(addrp)); | |
| 1098 | c=((state_ta.grab[rs].showsprites[cs].texturepalette & 0x3f) << 4) + (c & 0xf); | |
| 1099 | c=pvrta_regs[0x1000/4+c]; | |
| 1100 | switch (pvrta_regs[PAL_RAM_CTRL]) | |
| 1101 | { | |
| 1102 | case 0: // argb1555 | |
| 1103 | a=(((c & 0x8000) >> 8)*255)/0x80; | |
| 1104 | c=MAKE_RGB((c&0x7c00) >> 7, (c&0x3e0) >> 2, (c&0x1f) << 3); | |
| 1105 | break; | |
| 1106 | case 1: // rgb565 | |
| 1107 | a=255; | |
| 1108 | c=MAKE_RGB((c&0xf800) >> 8, (c&0x7e0) >> 3, (c&0x1f) << 3); | |
| 1109 | break; | |
| 1110 | case 2: // argb4444 | |
| 1111 | a=(((c & 0xf000) >> 8)*255)/0xf0; | |
| 1112 | c=MAKE_RGB((c&0xf00) >> 4, c&0xf0, (c&0xf) << 4); | |
| 1113 | break; | |
| 1114 | case 3: // argb8888 | |
| 1115 | a=(c & 0xff000000) >> 24; | |
| 1116 | c=MAKE_RGB((c&0xff0000) >> 16, (c&0xff00) >> 8, c&0xff); | |
| 1117 | break; | |
| 1118 | } | |
| 1028 | 1119 | break; |
| 1029 | 1120 | case 6: // 8 bpp palette |
| 1030 | 1121 | if (state_ta.grab[rs].showsprites[cs].texturemode & 2) // vq-compressed |
| r4470 | r4471 | |
| 1097 | 1188 | #endif |
| 1098 | 1189 | } |
| 1099 | 1190 | } |
| 1191 | ||
| 1192 | ||
| 1193 | // test--draw the verts fore each quad as polys too | |
| 1194 | { | |
| 1195 | testvertices vv[4]; | |
| 1196 | testvertices* v[3]; | |
| 1197 | ||
| 1198 | vv[0].x = state_ta.grab[rs].showsprites[cs].a.x; | |
| 1199 | vv[0].y = state_ta.grab[rs].showsprites[cs].a.y; | |
| 1200 | vv[1].x = state_ta.grab[rs].showsprites[cs].b.x; | |
| 1201 | vv[1].y = state_ta.grab[rs].showsprites[cs].b.y; | |
| 1202 | vv[2].x = state_ta.grab[rs].showsprites[cs].c.x; | |
| 1203 | vv[2].y = state_ta.grab[rs].showsprites[cs].c.y; | |
| 1204 | vv[3].x = state_ta.grab[rs].showsprites[cs].d.x; | |
| 1205 | vv[3].y = state_ta.grab[rs].showsprites[cs].d.y; | |
| 1206 | ||
| 1207 | v[0] = &vv[0]; | |
| 1208 | v[1] = &vv[1]; | |
| 1209 | v[2] = &vv[2]; | |
| 1210 | testdrawpoly(bitmap,v); | |
| 1211 | v[0] = &vv[0]; | |
| 1212 | v[1] = &vv[2]; | |
| 1213 | v[2] = &vv[3]; | |
| 1214 | testdrawpoly(bitmap,v); | |
| 1215 | } | |
| 1216 | ||
| 1100 | 1217 | } |
| 1101 | 1218 | state_ta.grab[rs].busy=0; |
| 1102 | 1219 | #if DEBUG_VERTICES |
| 1103 | 1220 | a = state_ta.grab[rs].testvertices_size; |
| 1104 | 1221 | if (a > 65530) |
| 1105 | 1222 | a = 65530; |
| 1106 | for (cs=1;cs < a;cs++) | |
| 1223 | ||
| 1224 | cs = 0; | |
| 1225 | ||
| 1226 | while (cs<a) | |
| 1107 | 1227 | { |
| 1108 | testdrawline(bitmap,rs,cs-1,cs); // draw a segment from vertex xi to vertex yi | |
| 1109 | if ((cs > 1) && (state_ta.grab[rs].showvertices[cs-2].endofstrip == 0)) | |
| 1110 | testdrawline(bitmap,rs,cs-2,cs); | |
| 1111 | if (state_ta.grab[rs].showvertices[cs].endofstrip == 1) | |
| 1112 | cs++; | |
| 1228 | testvertices *v[3]; | |
| 1229 | ||
| 1230 | v[0] = &state_ta.grab[rs].showvertices[cs]; cs++; | |
| 1231 | v[1] = &state_ta.grab[rs].showvertices[cs]; cs++; | |
| 1232 | v[2] = &state_ta.grab[rs].showvertices[cs]; cs++; | |
| 1233 | ||
| 1234 | testdrawpoly(bitmap,v); | |
| 1235 | ||
| 1236 | if (v[2]->endofstrip==0) | |
| 1237 | { | |
| 1238 | cs-=2; | |
| 1239 | } | |
| 1113 | 1240 | } |
| 1114 | 1241 | #endif |
| 1115 | 1242 | } |
| r4470 | r4471 | |
| 1119 | 1246 | { |
| 1120 | 1247 | int x,y,dy,xi; |
| 1121 | 1248 | UINT32 addrp; |
| 1122 | UINT | |
| 1249 | UINT32 *fbaddr; | |
| 1123 | 1250 | UINT32 c; |
| 1251 | UINT32 r,g,b; | |
| 1124 | 1252 | |
| 1125 | 1253 | // only for rgb565 framebuffer |
| 1126 | 1254 | xi=((pvrta_regs[FB_R_SIZE] & 0x3ff)+1) << 1; |
| r4470 | r4471 | |
| 1130 | 1258 | addrp=pvrta_regs[FB_R_SOF1]+y*xi*2; |
| 1131 | 1259 | for (x=0;x < xi;x++) |
| 1132 | 1260 | { |
| 1133 | fbaddr=BITMAP_ADDR | |
| 1261 | fbaddr=BITMAP_ADDR32(bitmap,y,x); | |
| 1134 | 1262 | c=*(((UINT16 *)dc_texture_ram) + (WORD2_XOR_LE(addrp) >> 1)); |
| 1135 | *fbaddr = (UINT16)c; | |
| 1263 | b = (c & 0x001f) << 3; | |
| 1264 | g = (c & 0x07e0) >> 3; | |
| 1265 | r = (c & 0xf800) >> 8; | |
| 1266 | *fbaddr = b | (g<<8) | (r<<16); | |
| 1136 | 1267 | addrp+=2; |
| 1137 | 1268 | } |
| 1138 | 1269 | } |
| r4470 | r4471 | |
|---|---|---|
| 137 | 137 | pix &= 0x0f; |
| 138 | 138 | |
| 139 | 139 | if ((drawxpos >= cliprect->min_x) && (drawxpos <= cliprect->max_x) && pix) |
| 140 | destline[drawxpos] = (pix + pen); | |
| 140 | destline[drawxpos] = (pix + (pen << 4)); | |
| 141 | 141 | } |
| 142 | 142 | offset++; |
| 143 | 143 | } |
| r4470 | r4471 | |
|---|---|---|
| 779 | 779 | |
| 780 | 780 | switch (toaplan2_voffs[controller] & 0xfc00) |
| 781 | 781 | { |
| 782 | case 0x8400: | |
| 783 | case 0x8000: | |
| 782 | 784 | case 0x0400: |
| 783 | 785 | case 0x0000: |
| 784 | 786 | vram_offset = toaplan2_voffs[controller] & ((TOAPLAN2_BG_VRAM_SIZE/2)-1); |
| 785 | 787 | video_data = bgvideoram16[controller][vram_offset]; |
| 786 | 788 | break; |
| 789 | case 0x8c00: | |
| 790 | case 0x8800: | |
| 787 | 791 | case 0x0c00: |
| 788 | 792 | case 0x0800: |
| 789 | 793 | vram_offset = toaplan2_voffs[controller] & ((TOAPLAN2_FG_VRAM_SIZE/2)-1); |
| 790 | 794 | video_data = fgvideoram16[controller][vram_offset]; |
| 791 | 795 | break; |
| 796 | case 0x9400: | |
| 797 | case 0x9000: | |
| 792 | 798 | case 0x1400: |
| 793 | 799 | case 0x1000: |
| 794 | 800 | vram_offset = toaplan2_voffs[controller] & ((TOAPLAN2_TOP_VRAM_SIZE/2)-1); |
| 795 | 801 | video_data = topvideoram16[controller][vram_offset]; |
| 796 | 802 | break; |
| 803 | case 0x9800: | |
| 797 | 804 | case 0x1800: |
| 798 | 805 | vram_offset = toaplan2_voffs[controller] & ((TOAPLAN2_SPRITERAM_SIZE/2)-1); |
| 799 | 806 | video_data = spriteram16_new[controller][vram_offset]; |
| r4470 | r4471 | |
| 823 | 830 | |
| 824 | 831 | switch (toaplan2_voffs[controller] & 0xfc00) |
| 825 | 832 | { |
| 833 | case 0x8400: | |
| 834 | case 0x8000: | |
| 826 | 835 | case 0x0400: |
| 827 | 836 | case 0x0000: |
| 828 | 837 | vram_offset = toaplan2_voffs[controller] & ((TOAPLAN2_BG_VRAM_SIZE/2)-1); |
| 829 | 838 | COMBINE_DATA(&bgvideoram16[controller][vram_offset]); |
| 830 | 839 | tilemap_mark_tile_dirty(bg_tilemap[controller],vram_offset/2); |
| 831 | 840 | break; |
| 841 | case 0x8c00: | |
| 842 | case 0x8800: | |
| 832 | 843 | case 0x0c00: |
| 833 | 844 | case 0x0800: |
| 834 | 845 | vram_offset = toaplan2_voffs[controller] & ((TOAPLAN2_FG_VRAM_SIZE/2)-1); |
| 835 | 846 | COMBINE_DATA(&fgvideoram16[controller][vram_offset]); |
| 836 | 847 | tilemap_mark_tile_dirty(fg_tilemap[controller],vram_offset/2); |
| 837 | 848 | break; |
| 849 | case 0x9400: | |
| 850 | case 0x9000: | |
| 838 | 851 | case 0x1400: |
| 839 | 852 | case 0x1000: |
| 840 | 853 | vram_offset = toaplan2_voffs[controller] & ((TOAPLAN2_TOP_VRAM_SIZE/2)-1); |
| 841 | 854 | COMBINE_DATA(&topvideoram16[controller][vram_offset]); |
| 842 | 855 | tilemap_mark_tile_dirty(top_tilemap[controller],vram_offset/2); |
| 843 | 856 | break; |
| 857 | case 0x9800: | |
| 844 | 858 | case 0x1800: |
| 845 | 859 | vram_offset = toaplan2_voffs[controller] & ((TOAPLAN2_SPRITERAM_SIZE/2)-1); |
| 846 | 860 | COMBINE_DATA(&spriteram16_new[controller][vram_offset]); |
| r4470 | r4471 | |
|---|---|---|
| 196 | 196 | colors are actually addressable */ |
| 197 | 197 | for (color = 0; color < 0x40; color++) |
| 198 | 198 | for (pen = 0; pen < 0x40; pen++) |
| 199 | palette_map[0x4400 | |
| 199 | palette_map[0x4400 + ((color << 6) | pen)] = 0x400 | ((color & 0x0f) << 6) | pen; | |
| 200 | 200 | } |
| 201 | 201 | |
| 202 | 202 | PALETTE_INIT( sailormn ) |
| r4470 | r4471 | |
|---|---|---|
| 1455 | 1455 | // AM_RANGE(0x3600, 0x3600) AM_NOP |
| 1456 | 1456 | AM_RANGE(0x3801, 0x3801) AM_DEVREADWRITE("upd", upd_r, upd_w) |
| 1457 | 1457 | AM_RANGE(0x8000, 0xffff) AM_READ(SMH_ROM) |
| 1458 | AM_RANGE(0xf000, 0xf000) AM_WRITE | |
| 1458 | AM_RANGE(0xf000, 0xf000) AM_WRITE | |
| 1459 | 1459 | ADDRESS_MAP_END |
| 1460 | 1460 | |
| 1461 | 1461 | static INPUT_PORTS_START( bfcobra ) |
| r4470 | r4471 | |
|---|---|---|
| 77 | 77 | AM_RANGE(0x108004, 0x108005) AM_READ_PORT("GUNX2") |
| 78 | 78 | AM_RANGE(0x108006, 0x108007) AM_READ_PORT("GUNY2") |
| 79 | 79 | AM_RANGE(0x108000, 0x108007) AM_WRITE(SMH_RAM) AM_BASE(&targeth_vregs) /* Video Registers */ |
| 80 | AM_RANGE(0x10800c, 0x10800d) AM_WRITE | |
| 80 | AM_RANGE(0x10800c, 0x10800d) AM_WRITE | |
| 81 | 81 | AM_RANGE(0x200000, 0x2007ff) AM_RAM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE(&paletteram16) /* Palette */ |
| 82 | 82 | AM_RANGE(0x440000, 0x440fff) AM_RAM AM_BASE(&targeth_spriteram) /* Sprite RAM */ |
| 83 | 83 | AM_RANGE(0x700000, 0x700001) AM_READ_PORT("DSW2") |
| 84 | 84 | AM_RANGE(0x700002, 0x700003) AM_READ_PORT("DSW1") |
| 85 | 85 | AM_RANGE(0x700006, 0x700007) AM_READ_PORT("SYSTEM") /* Coins, Start & Fire buttons */ |
| 86 | 86 | AM_RANGE(0x700008, 0x700009) AM_READ_PORT("SERVICE") /* Service & Guns Reload? */ |
| 87 | AM_RANGE(0x70000a, 0x70001b) AM_WRITE | |
| 87 | AM_RANGE(0x70000a, 0x70001b) AM_WRITE | |
| 88 | 88 | AM_RANGE(0x70000c, 0x70000d) AM_WRITE(OKIM6295_bankswitch_w) /* OKI6295 bankswitch */ |
| 89 | 89 | AM_RANGE(0x70000e, 0x70000f) AM_DEVREADWRITE8("oki", okim6295_r, okim6295_w, 0x00ff) /* OKI6295 status register */ |
| 90 | 90 | AM_RANGE(0x70002a, 0x70003b) AM_WRITE(targeth_coin_counter_w) /* Coin counters */ |
| r4470 | r4471 | |
|---|---|---|
| 297 | 297 | AM_RANGE(0xd000, 0xd000) AM_READ(nycaptor_mcu_r) |
| 298 | 298 | AM_RANGE(0xd002, 0xd002) AM_READ(nycaptor_generic_control_r) |
| 299 | 299 | AM_RANGE(0xd400, 0xd400) AM_READ(from_snd_r) |
| 300 | AM_RANGE(0xd401, 0xd401) AM_READ | |
| 300 | AM_RANGE(0xd401, 0xd401) AM_READ | |
| 301 | 301 | AM_RANGE(0xd800, 0xd800) AM_READ_PORT("DSW0") |
| 302 | 302 | AM_RANGE(0xd801, 0xd801) AM_READ_PORT("DSW1") |
| 303 | 303 | AM_RANGE(0xd802, 0xd802) AM_READ_PORT("DSW2") |
| 304 | 304 | AM_RANGE(0xd803, 0xd803) AM_READ_PORT("IN0") |
| 305 | 305 | AM_RANGE(0xd804, 0xd804) AM_READ_PORT("IN1") |
| 306 | 306 | AM_RANGE(0xd805, 0xd805) AM_READ(nycaptor_mcu_status_r1) |
| 307 | AM_RANGE(0xd806, 0xd806) AM_READ | |
| 307 | AM_RANGE(0xd806, 0xd806) AM_READ | |
| 308 | 308 | AM_RANGE(0xd807, 0xd807) AM_READ(nycaptor_mcu_status_r2) |
| 309 | 309 | AM_RANGE(0xdc00, 0xdc9f) AM_READ(nycaptor_spriteram_r) |
| 310 | 310 | AM_RANGE(0xdca0, 0xdcbf) AM_READ(nycaptor_scrlram_r) |
| r4470 | r4471 | |
| 323 | 323 | AM_RANGE(0xd403, 0xd403) AM_WRITE(sound_cpu_reset_w) |
| 324 | 324 | AM_RANGE(0xdc00, 0xdc9f) AM_WRITE(nycaptor_spriteram_w) |
| 325 | 325 | AM_RANGE(0xdca0, 0xdcbf) AM_WRITE(nycaptor_scrlram_w) AM_BASE(&nycaptor_scrlram) |
| 326 | AM_RANGE(0xdce1, 0xdce1) AM_WRITE | |
| 326 | AM_RANGE(0xdce1, 0xdce1) AM_WRITE | |
| 327 | 327 | AM_RANGE(0xdd00, 0xdeff) AM_WRITE(nycaptor_palette_w) |
| 328 | 328 | AM_RANGE(0xdf03, 0xdf03) AM_WRITE(nycaptor_gfxctrl_w) |
| 329 | 329 | AM_RANGE(0xe000, 0xffff) AM_WRITE(nycaptor_sharedram_w) AM_BASE(&nycaptor_sharedram) |
| r4470 | r4471 | |
| 353 | 353 | AM_RANGE(0xdc00, 0xdc9f) AM_WRITE(nycaptor_spriteram_w) |
| 354 | 354 | AM_RANGE(0xdca0, 0xdcbf) AM_WRITE(nycaptor_scrlram_w) AM_BASE(&nycaptor_scrlram) |
| 355 | 355 | AM_RANGE(0xdd00, 0xdeff) AM_WRITE(nycaptor_palette_w) |
| 356 | AM_RANGE(0xdf03, 0xdf03) AM_WRITE | |
| 356 | AM_RANGE(0xdf03, 0xdf03) AM_WRITE | |
| 357 | 357 | AM_RANGE(0xe000, 0xffff) AM_WRITE(nycaptor_sharedram_w) |
| 358 | 358 | ADDRESS_MAP_END |
| 359 | 359 | |
| r4470 | r4471 | |
| 361 | 361 | AM_RANGE(0x0000, 0xbfff) AM_READ(SMH_ROM) |
| 362 | 362 | AM_RANGE(0xc000, 0xc7ff) AM_READ(SMH_RAM) |
| 363 | 363 | AM_RANGE(0xd000, 0xd000) AM_READ(soundlatch_r) |
| 364 | AM_RANGE(0xd200, 0xd200) AM_READ(SMH_NOP) | |
| 365 | AM_RANGE(0xe000, 0xefff) AM_READ(SMH_NOP) | |
| 364 | AM_RANGE(0xd200, 0xd200) AM_READNOP | |
| 365 | AM_RANGE(0xe000, 0xefff) AM_READNOP | |
| 366 | 366 | ADDRESS_MAP_END |
| 367 | 367 | |
| 368 | 368 | static ADDRESS_MAP_START( sound_writemem, ADDRESS_SPACE_PROGRAM, 8 ) |
| r4470 | r4471 | |
| 371 | 371 | AM_RANGE(0xc800, 0xc801) AM_DEVWRITE("ay1", ay8910_address_data_w) |
| 372 | 372 | AM_RANGE(0xc802, 0xc803) AM_DEVWRITE("ay2", ay8910_address_data_w) |
| 373 | 373 | AM_RANGE(0xc900, 0xc90d) AM_DEVWRITE("msm", msm5232_w) |
| 374 | AM_RANGE(0xca00, 0xca00) AM_WRITE(SMH_NOP) | |
| 375 | AM_RANGE(0xcb00, 0xcb00) AM_WRITE(SMH_NOP) | |
| 376 | AM_RANGE(0xcc00, 0xcc00) AM_WRITE(SMH_NOP) | |
| 374 | AM_RANGE(0xca00, 0xca00) AM_WRITENOP | |
| 375 | AM_RANGE(0xcb00, 0xcb00) AM_WRITENOP | |
| 376 | AM_RANGE(0xcc00, 0xcc00) AM_WRITENOP | |
| 377 | 377 | AM_RANGE(0xd000, 0xd000) AM_WRITE(to_main_w) |
| 378 | 378 | AM_RANGE(0xd200, 0xd200) AM_WRITE(nmi_enable_w) |
| 379 | 379 | AM_RANGE(0xd400, 0xd400) AM_WRITE(nmi_disable_w) |
| 380 | AM_RANGE(0xd600, 0xd600) AM_WRITE(SMH_NOP) | |
| 381 | AM_RANGE(0xe000, 0xefff) AM_WRITE(SMH_NOP) | |
| 380 | AM_RANGE(0xd600, 0xd600) AM_WRITENOP | |
| 381 | AM_RANGE(0xe000, 0xefff) AM_WRITENOP | |
| 382 | 382 | ADDRESS_MAP_END |
| 383 | 383 | |
| 384 | 384 | static ADDRESS_MAP_START( m68705_readmem, ADDRESS_SPACE_PROGRAM, 8 ) |
| r4470 | r4471 | |
| 447 | 447 | AM_RANGE(0xd803, 0xd803) AM_READ_PORT("IN0") |
| 448 | 448 | AM_RANGE(0xd804, 0xd804) AM_READ_PORT("IN1") |
| 449 | 449 | AM_RANGE(0xd805, 0xd805) AM_READ(cyclshtg_mcu_status_r) |
| 450 | AM_RANGE(0xd806, 0xd806) AM_READ | |
| 450 | AM_RANGE(0xd806, 0xd806) AM_READ | |
| 451 | 451 | AM_RANGE(0xd807, 0xd807) AM_READ(cyclshtg_mcu_status_r) |
| 452 | 452 | AM_RANGE(0xdc00, 0xdc9f) AM_READ(nycaptor_spriteram_r) |
| 453 | 453 | AM_RANGE(0xdca0, 0xdcbf) AM_READ(nycaptor_scrlram_r) |
| r4470 | r4471 | |
| 466 | 466 | AM_RANGE(0xd403, 0xd403) AM_WRITE(sound_cpu_reset_w) |
| 467 | 467 | AM_RANGE(0xdc00, 0xdc9f) AM_WRITE(nycaptor_spriteram_w) |
| 468 | 468 | AM_RANGE(0xdca0, 0xdcbf) AM_WRITE(nycaptor_scrlram_w) AM_BASE(&nycaptor_scrlram) |
| 469 | AM_RANGE(0xdce1, 0xdce1) AM_WRITE | |
| 469 | AM_RANGE(0xdce1, 0xdce1) AM_WRITE | |
| 470 | 470 | AM_RANGE(0xdd00, 0xdeff) AM_WRITE(nycaptor_palette_w) |
| 471 | 471 | AM_RANGE(0xdf03, 0xdf03) AM_WRITE(nycaptor_gfxctrl_w) |
| 472 | 472 | AM_RANGE(0xe000, 0xffff) AM_WRITE(nycaptor_sharedram_w) AM_BASE(&nycaptor_sharedram) |
| r4470 | r4471 | |
| 495 | 495 | AM_RANGE(0xdc00, 0xdc9f) AM_WRITE(nycaptor_spriteram_w) |
| 496 | 496 | AM_RANGE(0xdca0, 0xdcbf) AM_WRITE(nycaptor_scrlram_w) AM_BASE(&nycaptor_scrlram) |
| 497 | 497 | AM_RANGE(0xdd00, 0xdeff) AM_WRITE(nycaptor_palette_w) |
| 498 | AM_RANGE(0xdf03, 0xdf03) AM_WRITE | |
| 498 | AM_RANGE(0xdf03, 0xdf03) AM_WRITE | |
| 499 | 499 | AM_RANGE(0xe000, 0xffff) AM_WRITE(nycaptor_sharedram_w) |
| 500 | 500 | ADDRESS_MAP_END |
| 501 | 501 | |
| r4470 | r4471 | |
| 518 | 518 | AM_RANGE(0xd803, 0xd803) AM_READ_PORT("IN0") |
| 519 | 519 | AM_RANGE(0xd804, 0xd804) AM_READ_PORT("IN1") |
| 520 | 520 | AM_RANGE(0xd805, 0xd805) AM_READ(cyclshtg_mcu_status_r) |
| 521 | AM_RANGE(0xd806, 0xd806) AM_READ | |
| 521 | AM_RANGE(0xd806, 0xd806) AM_READ | |
| 522 | 522 | AM_RANGE(0xd807, 0xd807) AM_READ(cyclshtg_mcu_status_r) |
| 523 | 523 | AM_RANGE(0xdc00, 0xdc9f) AM_READ(nycaptor_spriteram_r) |
| 524 | 524 | AM_RANGE(0xdca0, 0xdcbf) AM_READ(nycaptor_scrlram_r) |
| r4470 | r4471 | |
|---|---|---|
| 394 | 394 | AM_RANGE(0x03, 0x03) AM_DEVWRITE("ym", ym2413_data_port_w) |
| 395 | 395 | AM_RANGE(0x04, 0x04) AM_DEVWRITE("ym", ym2413_register_port_w) |
| 396 | 396 | AM_RANGE(0x05, 0x05) AM_READ(pang_port5_r) AM_DEVWRITE("oki", okim6295_w) |
| 397 | AM_RANGE(0x06, 0x06) AM_WRITE | |
| 397 | AM_RANGE(0x06, 0x06) AM_WRITE | |
| 398 | 398 | AM_RANGE(0x07, 0x07) AM_WRITE(pang_video_bank_w) /* Video RAM bank register */ |
| 399 | 399 | AM_RANGE(0x08, 0x08) AM_WRITE(eeprom_cs_w) |
| 400 | 400 | AM_RANGE(0x10, 0x10) AM_WRITE(eeprom_clock_w) |
| r4470 | r4471 | |
| 421 | 421 | AM_RANGE(0x03, 0x03) AM_DEVWRITE("ym", ym2413_data_port_w) |
| 422 | 422 | AM_RANGE(0x04, 0x04) AM_DEVWRITE("ym", ym2413_register_port_w) |
| 423 | 423 | AM_RANGE(0x05, 0x05) AM_READ(pang_port5_r) |
| 424 | AM_RANGE(0x06, 0x06) AM_WRITE | |
| 424 | AM_RANGE(0x06, 0x06) AM_WRITE | |
| 425 | 425 | AM_RANGE(0x07, 0x07) AM_WRITE(pang_video_bank_w) /* Video RAM bank register */ |
| 426 | 426 | AM_RANGE(0x08, 0x08) AM_WRITE(eeprom_cs_w) |
| 427 | 427 | AM_RANGE(0x10, 0x10) AM_WRITE(eeprom_clock_w) |
| r4470 | r4471 | |
| 488 | 488 | AM_RANGE(0x04, 0x04) AM_READ_PORT("DSW2") /* dips? */ |
| 489 | 489 | AM_RANGE(0x05, 0x05) AM_READ_PORT("DSW0") /* special? */ |
| 490 | 490 | AM_RANGE(0x06, 0x06) AM_READ_PORT("DSW3") /* dips? */ |
| 491 | AM_RANGE(0x06, 0x06) AM_WRITE | |
| 491 | AM_RANGE(0x06, 0x06) AM_WRITE | |
| 492 | 492 | AM_RANGE(0x07, 0x07) AM_WRITE(mstworld_video_bank_w) /* Video RAM bank register */ |
| 493 | 493 | ADDRESS_MAP_END |
| 494 | 494 |
| r4470 | r4471 | |
|---|---|---|
| 279 | 279 | AM_RANGE(0x201000, 0x203fff) AM_READ(SMH_RAM) /* read in initial checks */ |
| 280 | 280 | AM_RANGE(0x390000, 0x390003) AM_READ_PORT("DSWA") |
| 281 | 281 | AM_RANGE(0x3b0000, 0x3b0003) AM_READ_PORT("DSWB") |
| 282 | AM_RANGE(0x3e0000, 0x3e0001) AM_READ(SMH_NOP) | |
| 283 | AM_RANGE(0x3e0002, 0x3e0003) AM_READ(taitosound_comm16_lsb_r) | |
| 282 | AM_RANGE(0x3e0000, 0x3e0001) AM_READNOP | |
| 283 | AM_RANGE(0x3e0002, 0x3e0003) AM_READ8(taitosound_comm_r, 0x00ff) | |
| 284 | 284 | AM_RANGE(0x800000, 0x8007ff) AM_READ(rainbow_cchip_ram_r) |
| 285 | 285 | AM_RANGE(0x800802, 0x800803) AM_READ(rainbow_cchip_ctrl_r) |
| 286 | 286 | AM_RANGE(0xc00000, 0xc0ffff) AM_READ(PC080SN_word_0_r) |
| r4470 | r4471 | |
| 293 | 293 | AM_RANGE(0x200000, 0x200fff) AM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE(&paletteram16) |
| 294 | 294 | AM_RANGE(0x201000, 0x203fff) AM_WRITE(SMH_RAM) /* written in initial checks */ |
| 295 | 295 | AM_RANGE(0x3a0000, 0x3a0001) AM_WRITE(rainbow_spritectrl_w) |
| 296 | AM_RANGE(0x3c0000, 0x3c0003) AM_WRITE(SMH_NOP) /* written very often, watchdog? */ | |
| 297 | AM_RANGE(0x3e0000, 0x3e0001) AM_WRITE(taitosound_port16_lsb_w) | |
| 298 | AM_RANGE(0x3e0002, 0x3e0003) AM_WRITE(taitosound_comm16_lsb_w) | |
| 296 | AM_RANGE(0x3c0000, 0x3c0003) AM_WRITENOP /* written very often, watchdog? */ | |
| 297 | AM_RANGE(0x3e0000, 0x3e0001) AM_WRITE8(taitosound_port_w, 0x00ff) | |
| 298 | AM_RANGE(0x3e0002, 0x3e0003) AM_WRITE8(taitosound_comm_w, 0x00ff) | |
| 299 | 299 | AM_RANGE(0x800000, 0x8007ff) AM_WRITE(rainbow_cchip_ram_w) |
| 300 | 300 | AM_RANGE(0x800802, 0x800803) AM_WRITE(rainbow_cchip_ctrl_w) |
| 301 | 301 | AM_RANGE(0x800c00, 0x800c01) AM_WRITE(rainbow_cchip_bank_w) |
| r4470 | r4471 | |
| 316 | 316 | AM_RANGE(0x400002, 0x400003) AM_READ_PORT("DSWB") |
| 317 | 317 | AM_RANGE(0x401000, 0x401001) AM_READ_PORT("401001") |
| 318 | 318 | AM_RANGE(0x401002, 0x401003) AM_READ_PORT("401003") |
| 319 | AM_RANGE(0x420000, 0x420001) AM_READ | |
| 319 | AM_RANGE(0x420000, 0x420001) AM_READ | |
| 320 | 320 | AM_RANGE(0x440000, 0x4407ff) AM_READ(SMH_RAM) |
| 321 | 321 | AM_RANGE(0xc00000, 0xc0ffff) AM_READ(PC080SN_word_0_r) |
| 322 | 322 | AM_RANGE(0xd00000, 0xd01fff) AM_READ(SMH_RAM) /* original spriteram location, needed for Attract Mode */ |
| r4470 | r4471 | |
| 328 | 328 | AM_RANGE(0x200000, 0x200fff) AM_WRITE(paletteram16_xxxxBBBBGGGGRRRR_word_w) AM_BASE(&paletteram16) |
| 329 | 329 | AM_RANGE(0x201000, 0x203fff) AM_WRITE(SMH_RAM) /* written in initial checks */ |
| 330 | 330 | AM_RANGE(0x3a0000, 0x3a0001) AM_WRITE(jumping_spritectrl_w) |
| 331 | AM_RANGE(0x3c0000, 0x3c0001) AM_WRITE | |
| 331 | AM_RANGE(0x3c0000, 0x3c0001) AM_WRITE | |
| 332 | 332 | AM_RANGE(0x400006, 0x400007) AM_WRITE(jumping_sound_w) |
| 333 | 333 | AM_RANGE(0x430000, 0x430003) AM_WRITE(PC080SN_yscroll_word_0_w) |
| 334 | 334 | AM_RANGE(0x440000, 0x4407ff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) |
| 335 | AM_RANGE(0x800000, 0x80ffff) AM_WRITE | |
| 335 | AM_RANGE(0x800000, 0x80ffff) AM_WRITE | |
| 336 | 336 | AM_RANGE(0xc00000, 0xc0ffff) AM_WRITE(PC080SN_word_0_w) |
| 337 | AM_RANGE(0xc20000, 0xc20003) AM_WRITE | |
| 337 | AM_RANGE(0xc20000, 0xc20003) AM_WRITE | |
| 338 | 338 | AM_RANGE(0xc40000, 0xc40003) AM_WRITE(PC080SN_xscroll_word_0_w) |
| 339 | 339 | AM_RANGE(0xd00000, 0xd01fff) AM_WRITE(SMH_RAM) /* original spriteram location, needed for Attract Mode */ |
| 340 | 340 | ADDRESS_MAP_END |
| r4470 | r4471 | |
| 389 | 389 | AM_RANGE(0x8000, 0x8fff) AM_WRITE(SMH_RAM) |
| 390 | 390 | AM_RANGE(0xb000, 0xb001) AM_DEVWRITE("ym1", ym2203_w) |
| 391 | 391 | AM_RANGE(0xb400, 0xb401) AM_DEVWRITE("ym2", ym2203_w) |
| 392 | AM_RANGE(0xbc00, 0xbc00) AM_WRITE | |
| 392 | AM_RANGE(0xbc00, 0xbc00) AM_WRITE | |
| 393 | 393 | ADDRESS_MAP_END |
| 394 | 394 | |
| 395 | 395 |
| r4470 | r4471 | |
|---|---|---|
| 51 | 51 | AM_RANGE(0x800000, 0x803fff) AM_RAM /* hotpinbl work RAM */ |
| 52 | 52 | AM_RANGE(0x808000, 0x80ffff) AM_RAM /* hotpinbl work RAM, bitmaps are decompressed here */ |
| 53 | 53 | AM_RANGE(0x880000, 0x880fff) AM_RAM AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) |
| 54 | AM_RANGE(0x8ff400, 0x8fffff) AM_WRITE | |
| 54 | AM_RANGE(0x8ff400, 0x8fffff) AM_WRITE | |
| 55 | 55 | AM_RANGE(0x900000, 0x900fff) AM_RAM AM_BASE(&galspnbl_colorram) |
| 56 | AM_RANGE(0x901000, 0x903fff) AM_WRITE | |
| 56 | AM_RANGE(0x901000, 0x903fff) AM_WRITE | |
| 57 | 57 | AM_RANGE(0x904000, 0x904fff) AM_RAM AM_BASE(&galspnbl_videoram) |
| 58 | AM_RANGE(0x905000, 0x907fff) AM_WRITE | |
| 58 | AM_RANGE(0x905000, 0x907fff) AM_WRITE | |
| 59 | 59 | AM_RANGE(0x980000, 0x9bffff) AM_RAM AM_BASE(&galspnbl_bgvideoram) |
| 60 | AM_RANGE(0xa00000, 0xa00fff) AM_WRITE | |
| 60 | AM_RANGE(0xa00000, 0xa00fff) AM_WRITE | |
| 61 | 61 | AM_RANGE(0xa01000, 0xa017ff) AM_WRITE(paletteram16_xxxxBBBBGGGGRRRR_word_w) AM_BASE(&paletteram16) |
| 62 | AM_RANGE(0xa01800, 0xa027ff) AM_WRITE | |
| 62 | AM_RANGE(0xa01800, 0xa027ff) AM_WRITE | |
| 63 | 63 | AM_RANGE(0xa80000, 0xa80001) AM_READ_PORT("IN0") |
| 64 | 64 | AM_RANGE(0xa80010, 0xa80011) AM_READ_PORT("IN1") AM_WRITE(soundcommand_w) |
| 65 | 65 | AM_RANGE(0xa80020, 0xa80021) AM_READ_PORT("SYSTEM") AM_WRITENOP /* w - could be watchdog, but causes resets when picture is shown */ |
| r4470 | r4471 | |
|---|---|---|
| 81 | 81 | AM_RANGE(0x04, 0x04) AM_READ_PORT("DSW1") AM_WRITE(blktiger_video_control_w) |
| 82 | 82 | AM_RANGE(0x05, 0x05) AM_READ_PORT("FREEZE") |
| 83 | 83 | AM_RANGE(0x06, 0x06) AM_WRITE(watchdog_reset_w) |
| 84 | AM_RANGE(0x07, 0x07) AM_READ(blktiger_protection_r) AM_WRITE | |
| 84 | AM_RANGE(0x07, 0x07) AM_READ(blktiger_protection_r) AM_WRITE | |
| 85 | 85 | AM_RANGE(0x08, 0x09) AM_WRITE(blktiger_scrollx_w) |
| 86 | 86 | AM_RANGE(0x0a, 0x0b) AM_WRITE(blktiger_scrolly_w) |
| 87 | 87 | AM_RANGE(0x0c, 0x0c) AM_WRITE(blktiger_video_enable_w) |
| r4470 | r4471 | |
|---|---|---|
| 190 | 190 | AM_RANGE(0x0180, 0x01ff) AM_READ(mgolf_wram_r) |
| 191 | 191 | AM_RANGE(0x0800, 0x0bff) AM_READ(SMH_RAM) |
| 192 | 192 | |
| 193 | AM_RANGE(0x0000, 0x0009) AM_WRITE(SMH_NOP) | |
| 194 | AM_RANGE(0x0024, 0x0024) AM_WRITE(SMH_NOP) | |
| 195 | AM_RANGE(0x0028, 0x0028) AM_WRITE(SMH_NOP) | |
| 196 | AM_RANGE(0x0042, 0x0042) AM_WRITE(SMH_NOP) | |
| 197 | AM_RANGE(0x0044, 0x0044) AM_WRITE(SMH_NOP) /* watchdog? */ | |
| 198 | AM_RANGE(0x0046, 0x0046) AM_WRITE(SMH_NOP) | |
| 199 | AM_RANGE(0x0060, 0x0060) AM_WRITE(SMH_NOP) | |
| 200 | AM_RANGE(0x0061, 0x0061) AM_WRITE(SMH_NOP) | |
| 201 | AM_RANGE(0x006a, 0x006a) AM_WRITE(SMH_NOP) | |
| 202 | AM_RANGE(0x006c, 0x006c) AM_WRITE(SMH_NOP) | |
| 203 | AM_RANGE(0x006d, 0x006d) AM_WRITE(SMH_NOP) | |
| 193 | AM_RANGE(0x0000, 0x0009) AM_WRITENOP | |
| 194 | AM_RANGE(0x0024, 0x0024) AM_WRITENOP | |
| 195 | AM_RANGE(0x0028, 0x0028) AM_WRITENOP | |
| 196 | AM_RANGE(0x0042, 0x0042) AM_WRITENOP | |
| 197 | AM_RANGE(0x0044, 0x0044) AM_WRITENOP /* watchdog? */ | |
| 198 | AM_RANGE(0x0046, 0x0046) AM_WRITENOP | |
| 199 | AM_RANGE(0x0060, 0x0060) AM_WRITENOP | |
| 200 | AM_RANGE(0x0061, 0x0061) AM_WRITENOP | |
| 201 | AM_RANGE(0x006a, 0x006a) AM_WRITENOP | |
| 202 | AM_RANGE(0x006c, 0x006c) AM_WRITENOP | |
| 203 | AM_RANGE(0x006d, 0x006d) AM_WRITENOP | |
| 204 | 204 | AM_RANGE(0x0080, 0x00ff) AM_WRITE(mgolf_wram_w) |
| 205 | 205 | AM_RANGE(0x0180, 0x01ff) AM_WRITE(mgolf_wram_w) |
| 206 | 206 | AM_RANGE(0x0800, 0x0bff) AM_WRITE(mgolf_vram_w) AM_BASE(&mgolf_video_ram) |
| r4470 | r4471 | |
|---|---|---|
| 267 | 267 | static ADDRESS_MAP_START( readmem, ADDRESS_SPACE_PROGRAM, 32 ) |
| 268 | 268 | AM_RANGE(0x0000000, 0x00fffff) AM_READ(SMH_ROM) AM_MIRROR(0xff000000) |
| 269 | 269 | AM_RANGE(0x0100000, 0x011ffff) AM_READ(SMH_RAM) AM_MIRROR(0xff000000) |
| 270 | AM_RANGE(0x0200000, 0x020000f) AM_READ | |
| 270 | AM_RANGE(0x0200000, 0x020000f) AM_READ | |
| 271 | 271 | AM_RANGE(0x0200070, 0x0200073) AM_READ(decomlc_vbl_r) AM_MIRROR(0xff000000) |
| 272 | 272 | AM_RANGE(0x0200074, 0x0200077) AM_READ(mlc_scanline_r) AM_MIRROR(0xff000000) |
| 273 | 273 | AM_RANGE(0x0200078, 0x020007f) AM_READ(test2_r) AM_MIRROR(0xff000000) |
| r4470 | r4471 | |
| 290 | 290 | AM_RANGE(0x0204000, 0x0206fff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram32) AM_SIZE(&spriteram_size) AM_MIRROR(0xff000000) |
| 291 | 291 | AM_RANGE(0x0280000, 0x029ffff) AM_WRITE(SMH_RAM) AM_BASE(&mlc_vram) AM_MIRROR(0xff000000) |
| 292 | 292 | AM_RANGE(0x0300000, 0x0307fff) AM_WRITE(avengrs_palette_w) AM_BASE(&paletteram32) AM_MIRROR(0xff000000) |
| 293 | AM_RANGE(0x044001c, 0x044001f) AM_WRITE | |
| 293 | AM_RANGE(0x044001c, 0x044001f) AM_WRITE | |
| 294 | 294 | AM_RANGE(0x0500000, 0x0500003) AM_WRITE(avengrs_eprom_w) AM_MIRROR(0xff000000) |
| 295 | 295 | AM_RANGE(0x0600000, 0x0600007) AM_DEVWRITE8("ymz", ymz280b_w, 0xff000000) AM_MIRROR(0xff000000) |
| 296 | 296 | // AM_RANGE(0x070f000, 0x070ffff) AM_READ(stadhr96_prot_146_w) AM_BASE(&deco32_prot_ram) |
| r4470 | r4471 | |
|---|---|---|
| 150 | 150 | AM_RANGE(0x1a00, 0x1a00) AM_WRITE(SMH_RAM) /* SHEL1H */ |
| 151 | 151 | AM_RANGE(0x1c00, 0x1c00) AM_WRITE(SMH_RAM) /* MOBJV */ |
| 152 | 152 | AM_RANGE(0x1e00, 0x1eff) AM_WRITE(tunhunt_videoram_w) AM_BASE(&videoram) /* ALPHA */ |
| 153 | AM_RANGE(0x2000, 0x2000) AM_WRITE | |
| 153 | AM_RANGE(0x2000, 0x2000) AM_WRITE | |
| 154 | 154 | AM_RANGE(0x2000, 0x2007) AM_READ(tunhunt_button_r) |
| 155 | AM_RANGE(0x2400, 0x2400) AM_WRITE | |
| 155 | AM_RANGE(0x2400, 0x2400) AM_WRITE | |
| 156 | 156 | AM_RANGE(0x2800, 0x2800) AM_WRITE(tunhunt_control_w) |
| 157 | 157 | AM_RANGE(0x2c00, 0x2fff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram) |
| 158 | 158 | AM_RANGE(0x3000, 0x300f) AM_DEVREADWRITE("pokey1", pokey_r, pokey_w) |
| r4470 | r4471 | |
|---|---|---|
| 42 | 42 | #include "cpu/z80/z80.h" |
| 43 | 43 | #include "machine/eeprom.h" |
| 44 | 44 | #include "sound/k054539.h" |
| 45 | #include "konamipt.h" | |
| 45 | 46 | |
| 46 | 47 | VIDEO_START( rng ); |
| 47 | 48 | VIDEO_UPDATE( rng ); |
| r4470 | r4471 | |
| 209 | 210 | AM_RANGE(0x000000, 0x2fffff) AM_READ(SMH_ROM) // main program + data |
| 210 | 211 | AM_RANGE(0x300000, 0x3007ff) AM_READ(SMH_RAM) // palette RAM |
| 211 | 212 | AM_RANGE(0x380000, 0x39ffff) AM_READ(SMH_RAM) // work RAM |
| 212 | AM_RANGE(0x400000, 0x43ffff) AM_READ | |
| 213 | AM_RANGE(0x400000, 0x43ffff) AM_READ | |
| 213 | 214 | AM_RANGE(0x480000, 0x48001f) AM_READ(rng_sysregs_r) |
| 214 | 215 | AM_RANGE(0x4c0000, 0x4c001f) AM_READ(K053252_word_r) // CCU (for scanline and vblank polling) |
| 215 | 216 | AM_RANGE(0x580014, 0x580015) AM_READ(sound_status_msb_r) |
| r4470 | r4471 | |
| 244 | 245 | AM_RANGE(0x6c0000, 0x6cffff) AM_WRITE(rng_936_videoram_w) AM_BASE(&rng_936_videoram) // PSAC2 ('936) RAM (34v + 35v) |
| 245 | 246 | AM_RANGE(0x700000, 0x7007ff) AM_WRITE(SMH_RAM) AM_BASE(&K053936_0_linectrl) // "Line RAM" |
| 246 | 247 | AM_RANGE(0x740000, 0x741fff) AM_WRITE(rng_ttl_ram_w) // text plane RAM |
| 247 | AM_RANGE(0x7c0000, 0x7c0001) AM_WRITE | |
| 248 | AM_RANGE(0x7c0000, 0x7c0001) AM_WRITE | |
| 248 | 249 | ADDRESS_MAP_END |
| 249 | 250 | |
| 250 | 251 | /**********************************************************************************/ |
| r4470 | r4471 | |
| 294 | 295 | AM_RANGE(0xe630, 0xe7ff) AM_WRITE(SMH_RAM) |
| 295 | 296 | AM_RANGE(0xf000, 0xf000) AM_WRITE(sound_status_w) |
| 296 | 297 | AM_RANGE(0xf800, 0xf800) AM_WRITE(z80ctrl_w) |
| 297 | AM_RANGE(0xfff0, 0xfff3) AM_WRITE | |
| 298 | AM_RANGE(0xfff0, 0xfff3) AM_WRITE | |
| 298 | 299 | ADDRESS_MAP_END |
| 299 | 300 | |
| 300 | 301 | static const k054539_interface k054539_config = |
| r4470 | r4471 | |
| 406 | 407 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 407 | 408 | |
| 408 | 409 | PORT_START("P1") |
| 409 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) | |
| 410 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) | |
| 411 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) | |
| 412 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) | |
| 413 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) | |
| 414 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) | |
| 415 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) | |
| 416 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 ) | |
| 410 | KONAMI8_B123_START(1) | |
| 417 | 411 | |
| 418 | 412 | PORT_START("P2") |
| 419 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) | |
| 420 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) | |
| 421 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) | |
| 422 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) | |
| 423 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) | |
| 424 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) | |
| 425 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) | |
| 426 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 ) | |
| 413 | KONAMI8_B123_START(2) | |
| 427 | 414 | |
| 428 | 415 | PORT_START("P3") |
| 429 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(3) | |
| 430 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(3) | |
| 431 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(3) | |
| 432 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(3) | |
| 433 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3) | |
| 434 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3) | |
| 435 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(3) | |
| 436 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START3 ) | |
| 416 | KONAMI8_B123_START(3) | |
| 437 | 417 | |
| 438 | 418 | PORT_START("P4") |
| 439 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(4) | |
| 440 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(4) | |
| 441 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(4) | |
| 442 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(4) | |
| 443 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(4) | |
| 444 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(4) | |
| 445 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(4) | |
| 446 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START4 ) | |
| 419 | KONAMI8_B123_START(4) | |
| 447 | 420 | INPUT_PORTS_END |
| 448 | 421 | |
| 449 | 422 |
| r4470 | r4471 | |
|---|---|---|
| 57 | 57 | AM_RANGE(0x188000, 0x189fff) AM_READ(madmotor_pf1_data_r) |
| 58 | 58 | AM_RANGE(0x198000, 0x1987ff) AM_READ(madmotor_pf2_data_r) |
| 59 | 59 | AM_RANGE(0x1a4000, 0x1a4fff) AM_READ(madmotor_pf3_data_r) |
| 60 | AM_RANGE(0x18c000, 0x18c001) AM_READ(SMH_NOP) | |
| 61 | AM_RANGE(0x19c000, 0x19c001) AM_READ(SMH_NOP) | |
| 60 | AM_RANGE(0x18c000, 0x18c001) AM_READNOP | |
| 61 | AM_RANGE(0x19c000, 0x19c001) AM_READNOP | |
| 62 | 62 | AM_RANGE(0x3e0000, 0x3e3fff) AM_READ(SMH_RAM) |
| 63 | 63 | AM_RANGE(0x3e8000, 0x3e87ff) AM_READ(SMH_RAM) |
| 64 | 64 | AM_RANGE(0x3f0000, 0x3f07ff) AM_READ(SMH_RAM) |
| r4470 | r4471 | |
| 72 | 72 | AM_RANGE(0x180000, 0x18001f) AM_WRITE(madmotor_pf1_control_w) |
| 73 | 73 | AM_RANGE(0x184000, 0x1847ff) AM_WRITE(madmotor_pf1_rowscroll_w) AM_BASE(&madmotor_pf1_rowscroll) |
| 74 | 74 | AM_RANGE(0x188000, 0x189fff) AM_WRITE(madmotor_pf1_data_w) AM_BASE(&madmotor_pf1_data) |
| 75 | AM_RANGE(0x18c000, 0x18c001) AM_WRITE | |
| 75 | AM_RANGE(0x18c000, 0x18c001) AM_WRITE | |
| 76 | 76 | AM_RANGE(0x190000, 0x19001f) AM_WRITE(madmotor_pf2_control_w) |
| 77 | 77 | AM_RANGE(0x198000, 0x1987ff) AM_WRITE(madmotor_pf2_data_w) AM_BASE(&madmotor_pf2_data) |
| 78 | 78 | AM_RANGE(0x1a0000, 0x1a001f) AM_WRITE(madmotor_pf3_control_w) |
| r4470 | r4471 | |
|---|---|---|
| 278 | 278 | AM_RANGE(0x0000, 0x7fff) AM_WRITE(SMH_ROM) |
| 279 | 279 | AM_RANGE(0x8000, 0xafff) AM_WRITE(SMH_RAM) // to be confirmed |
| 280 | 280 | AM_RANGE(0xc500, 0xc500) AM_WRITE(cshooter_c500_w) |
| 281 | AM_RANGE(0xc600, 0xc600) AM_WRITE | |
| 281 | AM_RANGE(0xc600, 0xc600) AM_WRITE | |
| 282 | 282 | AM_RANGE(0xc700, 0xc700) AM_WRITE(cshooter_c700_w) |
| 283 | AM_RANGE(0xc801, 0xc801) AM_WRITE | |
| 283 | AM_RANGE(0xc801, 0xc801) AM_WRITE | |
| 284 | 284 | AM_RANGE(0xd000, 0xd7ff) AM_WRITE(cshooter_txram_w) AM_BASE(&cshooter_txram) |
| 285 | 285 | AM_RANGE(0xd800, 0xdfff) AM_WRITE(SMH_RAM) |
| 286 | 286 | AM_RANGE(0xe000, 0xffff) AM_WRITE(SMH_RAM) |
| r4470 | r4471 | |
| 308 | 308 | static ADDRESS_MAP_START( arwritemem, ADDRESS_SPACE_PROGRAM, 8 ) |
| 309 | 309 | AM_RANGE(0x0000, 0x7fff) AM_WRITE(SMH_ROM) |
| 310 | 310 | AM_RANGE(0xc500, 0xc500) AM_WRITE(cshooter_c500_w) |
| 311 | AM_RANGE(0xc600, 0xc600) AM_WRITE | |
| 311 | AM_RANGE(0xc600, 0xc600) AM_WRITE | |
| 312 | 312 | AM_RANGE(0xc700, 0xc700) AM_WRITE(cshooter_c700_w) |
| 313 | AM_RANGE(0xc801, 0xc801) AM_WRITE | |
| 313 | AM_RANGE(0xc801, 0xc801) AM_WRITE | |
| 314 | 314 | AM_RANGE(0xd000, 0xd7ff) AM_WRITE(cshooter_txram_w) AM_BASE(&cshooter_txram) |
| 315 | 315 | ADDRESS_MAP_END |
| 316 | 316 | |
| r4470 | r4471 | |
| 324 | 324 | |
| 325 | 325 | static ADDRESS_MAP_START( s_writemem, ADDRESS_SPACE_PROGRAM, 8 ) |
| 326 | 326 | AM_RANGE(0x0000, 0x1fff) AM_WRITE(SMH_ROM) |
| 327 | AM_RANGE(0xc000, 0xc001) AM_WRITE(SMH_NOP) // AM_DEVWRITE("ym1", ym2203_w) ? | |
| 328 | AM_RANGE(0xc800, 0xc801) AM_WRITE(SMH_NOP) // AM_DEVWRITE("ym2", ym2203_w) ? | |
| 327 | AM_RANGE(0xc000, 0xc001) AM_WRITENOP // AM_DEVWRITE("ym1", ym2203_w) ? | |
| 328 | AM_RANGE(0xc800, 0xc801) AM_WRITENOP // AM_DEVWRITE("ym2", ym2203_w) ? | |
| 329 | 329 | AM_RANGE(0xf800, 0xffff) AM_WRITE(SMH_RAM) |
| 330 | 330 | ADDRESS_MAP_END |
| 331 | 331 | |
| r4470 | r4471 | |
| 335 | 335 | ADDRESS_MAP_END |
| 336 | 336 | |
| 337 | 337 | static ADDRESS_MAP_START( s2_writemem, ADDRESS_SPACE_PROGRAM, 8 ) |
| 338 | AM_RANGE(0x4000, 0x4001) AM_WRITE(SMH_NOP) // AM_DEVWRITE("ym1", ym2203_w) ? | |
| 339 | AM_RANGE(0x4008, 0x4009) AM_WRITE(SMH_NOP) // AM_DEVWRITE("ym2", ym2203_w) ? | |
| 338 | AM_RANGE(0x4000, 0x4001) AM_WRITENOP // AM_DEVWRITE("ym1", ym2203_w) ? | |
| 339 | AM_RANGE(0x4008, 0x4009) AM_WRITENOP // AM_DEVWRITE("ym2", ym2203_w) ? | |
| 340 | 340 | ADDRESS_MAP_END |
| 341 | 341 | |
| 342 | 342 |
| r4470 | r4471 | |
|---|---|---|
| 267 | 267 | AM_RANGE(0x0ff006, 0x0ff007) AM_READWRITE(pending_command_r, aerofgt_bg2scrolly_w) |
| 268 | 268 | AM_RANGE(0x0ff008, 0x0ff009) AM_READ_PORT("IN2") |
| 269 | 269 | AM_RANGE(0x0ff008, 0x0ff00b) AM_WRITE(turbofrc_gfxbank_w) |
| 270 | AM_RANGE(0x0ff00c, 0x0ff00d) AM_WRITE | |
| 270 | AM_RANGE(0x0ff00c, 0x0ff00d) AM_WRITE | |
| 271 | 271 | AM_RANGE(0x0ff00e, 0x0ff00f) AM_WRITE(turbofrc_sound_command_w) |
| 272 | 272 | ADDRESS_MAP_END |
| 273 | 273 |
| r4470 | r4471 | |
|---|---|---|
| 8 | 8 | #include "cpu/m6809/m6809.h" |
| 9 | 9 | #include "machine/konami1.h" |
| 10 | 10 | #include "audio/timeplt.h" |
| 11 | #include "konamipt.h" | |
| 11 | 12 | |
| 12 | 13 | #define MASTER_CLOCK XTAL_18_432MHz |
| 13 | 14 | |
| r4470 | r4471 | |
| 51 | 52 | AM_RANGE(0x8000, 0x8000) AM_WRITE(watchdog_reset_w) |
| 52 | 53 | AM_RANGE(0x8080, 0x8080) AM_WRITE(rocnrope_flipscreen_w) |
| 53 | 54 | AM_RANGE(0x8081, 0x8081) AM_WRITE(timeplt_sh_irqtrigger_w) /* cause interrupt on audio CPU */ |
| 54 | AM_RANGE(0x8082, 0x8082) AM_WRITE(SMH_NOP) /* interrupt acknowledge??? */ | |
| 55 | AM_RANGE(0x8083, 0x8083) AM_WRITE(SMH_NOP) /* Coin counter 1 */ | |
| 56 | AM_RANGE(0x8084, 0x8084) AM_WRITE(SMH_NOP) /* Coin counter 2 */ | |
| 55 | AM_RANGE(0x8082, 0x8082) AM_WRITENOP /* interrupt acknowledge??? */ | |
| 56 | AM_RANGE(0x8083, 0x8083) AM_WRITENOP /* Coin counter 1 */ | |
| 57 | AM_RANGE(0x8084, 0x8084) AM_WRITENOP /* Coin counter 2 */ | |
| 57 | 58 | AM_RANGE(0x8087, 0x8087) AM_WRITE(interrupt_enable_w) |
| 58 | 59 | AM_RANGE(0x8100, 0x8100) AM_WRITE(soundlatch_w) |
| 59 | 60 | AM_RANGE(0x8182, 0x818d) AM_WRITE(rocnrope_interrupt_vector_w) |
| r4470 | r4471 | |
| 63 | 64 | |
| 64 | 65 | static INPUT_PORTS_START( rocnrope ) |
| 65 | 66 | PORT_START("SYSTEM") |
| 66 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) | |
| 67 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) | |
| 68 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 ) | |
| 69 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) | |
| 70 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 ) | |
| 71 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 72 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 73 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 67 | KONAMI8_SYSTEM_UNK | |
| 74 | 68 | |
| 75 | 69 | PORT_START("P1") |
| 76 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY | |
| 77 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY | |
| 78 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY | |
| 79 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY | |
| 80 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) | |
| 81 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) | |
| 82 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 83 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 70 | KONAMI8_MONO_4WAY_B12_UNK | |
| 84 | 71 | |
| 85 | 72 | PORT_START("P2") |
| 86 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_COCKTAIL | |
| 87 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_COCKTAIL | |
| 88 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY PORT_COCKTAIL | |
| 89 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_COCKTAIL | |
| 90 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL | |
| 91 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL | |
| 92 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 93 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 73 | KONAMI8_COCKTAIL_4WAY_B12_UNK | |
| 94 | 74 | |
| 95 | 75 | PORT_START("DSW1") |
| 96 | PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) ) | |
| 97 | PORT_DIPSETTING( 0x02, DEF_STR( 4C_1C ) ) | |
| 98 | PORT_DIPSETTING( 0x05, DEF_STR( 3C_1C ) ) | |
| 99 | PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) ) | |
| 100 | PORT_DIPSETTING( 0x04, DEF_STR( 3C_2C ) ) | |
| 101 | PORT_DIPSETTING( 0x01, DEF_STR( 4C_3C ) ) | |
| 102 | PORT_DIPSETTING( 0x0f, DEF_STR( 1C_1C ) ) | |
| 103 | PORT_DIPSETTING( 0x03, DEF_STR( 3C_4C ) ) | |
| 104 | PORT_DIPSETTING( 0x07, DEF_STR( 2C_3C ) ) | |
| 105 | PORT_DIPSETTING( 0x0e, DEF_STR( 1C_2C ) ) | |
| 106 | PORT_DIPSETTING( 0x06, DEF_STR( 2C_5C ) ) | |
| 107 | PORT_DIPSETTING( 0x0d, DEF_STR( 1C_3C ) ) | |
| 108 | PORT_DIPSETTING( 0x0c, DEF_STR( 1C_4C ) ) | |
| 109 | PORT_DIPSETTING( 0x0b, DEF_STR( 1C_5C ) ) | |
| 110 | PORT_DIPSETTING( 0x0a, DEF_STR( 1C_6C ) ) | |
| 111 | PORT_DIPSETTING( 0x09, DEF_STR( 1C_7C ) ) | |
| 112 | PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) | |
| 113 | PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) ) | |
| 114 | PORT_DIPSETTING( 0x20, DEF_STR( 4C_1C ) ) | |
| 115 | PORT_DIPSETTING( 0x50, DEF_STR( 3C_1C ) ) | |
| 116 | PORT_DIPSETTING( 0x80, DEF_STR( 2C_1C ) ) | |
| 117 | PORT_DIPSETTING( 0x40, DEF_STR( 3C_2C ) ) | |
| 118 | PORT_DIPSETTING( 0x10, DEF_STR( 4C_3C ) ) | |
| 119 | PORT_DIPSETTING( 0xf0, DEF_STR( 1C_1C ) ) | |
| 120 | PORT_DIPSETTING( 0x30, DEF_STR( 3C_4C ) ) | |
| 121 | PORT_DIPSETTING( 0x70, DEF_STR( 2C_3C ) ) | |
| 122 | PORT_DIPSETTING( 0xe0, DEF_STR( 1C_2C ) ) | |
| 123 | PORT_DIPSETTING( 0x60, DEF_STR( 2C_5C ) ) | |
| 124 | PORT_DIPSETTING( 0xd0, DEF_STR( 1C_3C ) ) | |
| 125 | PORT_DIPSETTING( 0xc0, DEF_STR( 1C_4C ) ) | |
| 126 | PORT_DIPSETTING( 0xb0, DEF_STR( 1C_5C ) ) | |
| 127 | PORT_DIPSETTING( 0xa0, DEF_STR( 1C_6C ) ) | |
| 128 | PORT_DIPSETTING( 0x90, DEF_STR( 1C_7C ) ) | |
| 129 | PORT_DIPSETTING( 0x00, "Disabled" ) | |
| 130 | /* 0x00 disables Coin 2. It still accepts coins and makes the sound, but it doesn't give you any credit */ | |
| 76 | KONAMI_COINAGE(DEF_STR( Free_Play ), "No Coin B") | |
| 77 | /* "No Coin B" = coins produce sound, but no effect on coin counter */ | |
| 131 | 78 | |
| 132 | 79 | PORT_START("DSW2") |
| 133 | 80 | PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) ) |
| r4470 | r4471 | |
| 333 | 280 | } |
| 334 | 281 | |
| 335 | 282 | |
| 336 | ||
| 337 | 283 | GAME( 1983, rocnrope, 0, rocnrope, rocnrope, rocnrope, ROT270, "Konami", "Roc'n Rope", 0 ) |
| 338 | 284 | GAME( 1983, rocnropk, rocnrope, rocnrope, rocnrope, rocnropk, ROT270, "Konami + Kosuka", "Roc'n Rope (Kosuka)", 0 ) |
| r4470 | r4471 | |
|---|---|---|
| 297 | 297 | * |
| 298 | 298 | *************************************/ |
| 299 | 299 | |
| 300 | GAME( 1984, mystston, 0, mystston, mystston, 0, ROT270, "Technos", "Mysterious Stones - Dr. John's Adventure", GAME_SUPPORTS_SAVE ) | |
| 301 | GAME( 1984, myststno, mystston, mystston, mystston, 0, ROT270, "Technos", "Mysterious Stones - Dr. Kick in Adventure", GAME_SUPPORTS_SAVE ) | |
| 300 | GAME( 1984, mystston, 0, mystston, mystston, 0, ROT270, "Technos Japan", "Mysterious Stones - Dr. John's Adventure", GAME_SUPPORTS_SAVE ) | |
| 301 | GAME( 1984, myststno, mystston, mystston, mystston, 0, ROT270, "Technos Japan", "Mysterious Stones - Dr. Kick in Adventure", GAME_SUPPORTS_SAVE ) |
| r4470 | r4471 | |
|---|---|---|
| 48 | 48 | ***************************************************************************/ |
| 49 | 49 | |
| 50 | 50 | #include "driver.h" |
| 51 | #include "trackfld.h" | |
| 51 | 52 | #include "cpu/m6809/m6809.h" |
| 52 | 53 | #include "sound/sn76496.h" |
| 53 | 54 | #include "sound/vlm5030.h" |
| 55 | #include "konamipt.h" | |
| 54 | 56 | |
| 55 | 57 | extern int yiear_nmi_enable; |
| 56 | 58 | |
| r4470 | r4471 | |
| 61 | 63 | extern VIDEO_START( yiear ); |
| 62 | 64 | extern VIDEO_UPDATE( yiear ); |
| 63 | 65 | |
| 64 | /* in audio/trackfld.c */ | |
| 65 | extern WRITE8_HANDLER( konami_SN76496_latch_w ); | |
| 66 | extern WRITE8_DEVICE_HANDLER( konami_SN76496_w ); | |
| 67 | 66 | |
| 68 | ||
| 69 | 67 | static READ8_DEVICE_HANDLER( yiear_speech_r ) |
| 70 | 68 | { |
| 71 | 69 | if (vlm5030_bsy(device)) return 1; |
| r4470 | r4471 | |
| 120 | 118 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) |
| 121 | 119 | |
| 122 | 120 | PORT_START("P1") |
| 123 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY | |
| 124 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY | |
| 125 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY | |
| 126 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY | |
| 127 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) | |
| 128 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) | |
| 129 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 130 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 121 | KONAMI8_MONO_B12_UNK | |
| 131 | 122 | |
| 132 | 123 | PORT_START("P2") |
| 133 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL | |
| 134 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL | |
| 135 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL | |
| 136 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL | |
| 137 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL | |
| 138 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL | |
| 139 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 140 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 124 | KONAMI8_COCKTAIL_B12_UNK | |
| 141 | 125 | |
| 142 | 126 | PORT_START("DSW1") |
| 143 | 127 | PORT_DIPNAME( 0x03, 0x01, DEF_STR( Lives ) ) |
| r4470 | r4471 | |
| 172 | 156 | PORT_BIT( 0xf8, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 173 | 157 | |
| 174 | 158 | PORT_START("DSW3") |
| 175 | PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) ) | |
| 176 | PORT_DIPSETTING( 0x02, DEF_STR( 4C_1C ) ) | |
| 177 | PORT_DIPSETTING( 0x05, DEF_STR( 3C_1C ) ) | |
| 178 | PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) ) | |
| 179 | PORT_DIPSETTING( 0x04, DEF_STR( 3C_2C ) ) | |
| 180 | PORT_DIPSETTING( 0x01, DEF_STR( 4C_3C ) ) | |
| 181 | PORT_DIPSETTING( 0x0f, DEF_STR( 1C_1C ) ) | |
| 182 | PORT_DIPSETTING( 0x03, DEF_STR( 3C_4C ) ) | |
| 183 | PORT_DIPSETTING( 0x07, DEF_STR( 2C_3C ) ) | |
| 184 | PORT_DIPSETTING( 0x0e, DEF_STR( 1C_2C ) ) | |
| 185 | PORT_DIPSETTING( 0x06, DEF_STR( 2C_5C ) ) | |
| 186 | PORT_DIPSETTING( 0x0d, DEF_STR( 1C_3C ) ) | |
| 187 | PORT_DIPSETTING( 0x0c, DEF_STR( 1C_4C ) ) | |
| 188 | PORT_DIPSETTING( 0x0b, DEF_STR( 1C_5C ) ) | |
| 189 | PORT_DIPSETTING( 0x0a, DEF_STR( 1C_6C ) ) | |
| 190 | PORT_DIPSETTING( 0x09, DEF_STR( 1C_7C ) ) | |
| 191 | PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) | |
| 192 | PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) ) | |
| 193 | PORT_DIPSETTING( 0x20, DEF_STR( 4C_1C ) ) | |
| 194 | PORT_DIPSETTING( 0x50, DEF_STR( 3C_1C ) ) | |
| 195 | PORT_DIPSETTING( 0x80, DEF_STR( 2C_1C ) ) | |
| 196 | PORT_DIPSETTING( 0x40, DEF_STR( 3C_2C ) ) | |
| 197 | PORT_DIPSETTING( 0x10, DEF_STR( 4C_3C ) ) | |
| 198 | PORT_DIPSETTING( 0xf0, DEF_STR( 1C_1C ) ) | |
| 199 | PORT_DIPSETTING( 0x30, DEF_STR( 3C_4C ) ) | |
| 200 | PORT_DIPSETTING( 0x70, DEF_STR( 2C_3C ) ) | |
| 201 | PORT_DIPSETTING( 0xe0, DEF_STR( 1C_2C ) ) | |
| 202 | PORT_DIPSETTING( 0x60, DEF_STR( 2C_5C ) ) | |
| 203 | PORT_DIPSETTING( 0xd0, DEF_STR( 1C_3C ) ) | |
| 204 | PORT_DIPSETTING( 0xc0, DEF_STR( 1C_4C ) ) | |
| 205 | PORT_DIPSETTING( 0xb0, DEF_STR( 1C_5C ) ) | |
| 206 | PORT_DIPSETTING( 0xa0, DEF_STR( 1C_6C ) ) | |
| 207 | PORT_DIPSETTING( 0x90, DEF_STR( 1C_7C ) ) | |
| 208 | // PORT_DIPSETTING( 0x00, "Invalid" ) | |
| 159 | KONAMI_COINAGE(DEF_STR( Free_Play ), "Invalid") | |
| 160 | /* "Invalid" = both coin slots disabled */ | |
| 209 | 161 | INPUT_PORTS_END |
| 210 | 162 | |
| 211 | 163 |
| r4470 | r4471 | |
|---|---|---|
| 107 | 107 | AM_RANGE(0x4001, 0x4001) AM_DEVWRITE("crtc", mc6845_register_w) |
| 108 | 108 | AM_RANGE(0x5000, 0x5000) AM_READ_PORT("IN0") |
| 109 | 109 | AM_RANGE(0x5800, 0x5800) AM_READ_PORT("IN1") |
| 110 | AM_RANGE(0x7000, 0x7000) AM_WRITE | |
| 110 | AM_RANGE(0x7000, 0x7000) AM_WRITE | |
| 111 | 111 | AM_RANGE(0x8000, 0x87ff) AM_RAM AM_BASE(&murogem_videoram) |
| 112 | 112 | AM_RANGE(0xf000, 0xffff) AM_ROM |
| 113 | 113 | ADDRESS_MAP_END |
| r4470 | r4471 | |
|---|---|---|
| 180 | 180 | AM_RANGE(0x400000, 0x400001) AM_WRITE(snowbros_flipscreen_w) |
| 181 | 181 | AM_RANGE(0x600000, 0x6001ff) AM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE(&paletteram16) |
| 182 | 182 | AM_RANGE(0x700000, 0x701fff) AM_WRITE(pandora_spriteram_LSB_w) |
| 183 | AM_RANGE(0x800000, 0x800001) AM_WRITE(SMH_NOP) /* IRQ 4 acknowledge? */ | |
| 184 | AM_RANGE(0x900000, 0x900001) AM_WRITE(SMH_NOP) /* IRQ 3 acknowledge? */ | |
| 185 | AM_RANGE(0xa00000, 0xa00001) AM_WRITE(SMH_NOP) /* IRQ 2 acknowledge? */ | |
| 183 | AM_RANGE(0x800000, 0x800001) AM_WRITENOP /* IRQ 4 acknowledge? */ | |
| 184 | AM_RANGE(0x900000, 0x900001) AM_WRITENOP /* IRQ 3 acknowledge? */ | |
| 185 | AM_RANGE(0xa00000, 0xa00001) AM_WRITENOP /* IRQ 2 acknowledge? */ | |
| 186 | 186 | ADDRESS_MAP_END |
| 187 | 187 | |
| 188 | 188 | static ADDRESS_MAP_START( sound_readmem, ADDRESS_SPACE_PROGRAM, 8 ) |
| r4470 | r4471 | |
| 222 | 222 | AM_RANGE(0x400000, 0x400001) AM_WRITE(snowbros_flipscreen_w) |
| 223 | 223 | AM_RANGE(0x600000, 0x6001ff) AM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE(&paletteram16) |
| 224 | 224 | AM_RANGE(0x700000, 0x701fff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) |
| 225 | AM_RANGE(0x800000, 0x800001) AM_WRITE(SMH_NOP) /* IRQ 4 acknowledge? */ | |
| 226 | AM_RANGE(0x900000, 0x900001) AM_WRITE(SMH_NOP) /* IRQ 3 acknowledge? */ | |
| 227 | AM_RANGE(0xa00000, 0xa00001) AM_WRITE(SMH_NOP) /* IRQ 2 acknowledge? */ | |
| 225 | AM_RANGE(0x800000, 0x800001) AM_WRITENOP /* IRQ 4 acknowledge? */ | |
| 226 | AM_RANGE(0x900000, 0x900001) AM_WRITENOP /* IRQ 3 acknowledge? */ | |
| 227 | AM_RANGE(0xa00000, 0xa00001) AM_WRITENOP /* IRQ 2 acknowledge? */ | |
| 228 | 228 | ADDRESS_MAP_END |
| 229 | 229 | |
| 230 | 230 | /* Honey Dolls */ |
| r4470 | r4471 | |
| 242 | 242 | static ADDRESS_MAP_START( honeydol_writemem, ADDRESS_SPACE_PROGRAM, 16 ) |
| 243 | 243 | AM_RANGE(0x000000, 0x03ffff) AM_WRITE(SMH_ROM) |
| 244 | 244 | AM_RANGE(0x100000, 0x10ffff) AM_WRITE(SMH_RAM) AM_BASE(&hyperpac_ram) |
| 245 | AM_RANGE(0x200000, 0x200001) AM_WRITE | |
| 245 | AM_RANGE(0x200000, 0x200001) AM_WRITE | |
| 246 | 246 | AM_RANGE(0x300000, 0x300001) AM_WRITE(snowbros_68000_sound_w) /* ?*/ |
| 247 | 247 | AM_RANGE(0xa00000, 0xa007ff) AM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE(&paletteram16) |
| 248 | 248 | AM_RANGE(0xb00000, 0xb01fff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) |
| 249 | AM_RANGE(0x400000, 0x400001) AM_WRITE(SMH_NOP) /* IRQ 4 acknowledge? */ | |
| 250 | AM_RANGE(0x500000, 0x500001) AM_WRITE(SMH_NOP) /* IRQ 3 acknowledge? */ | |
| 251 | AM_RANGE(0x600000, 0x600001) AM_WRITE(SMH_NOP) /* IRQ 2 acknowledge? */ | |
| 252 | AM_RANGE(0x800000, 0x800001) AM_WRITE(SMH_NOP) /* ?*/ | |
| 249 | AM_RANGE(0x400000, 0x400001) AM_WRITENOP /* IRQ 4 acknowledge? */ | |
| 250 | AM_RANGE(0x500000, 0x500001) AM_WRITENOP /* IRQ 3 acknowledge? */ | |
| 251 | AM_RANGE(0x600000, 0x600001) AM_WRITENOP /* IRQ 2 acknowledge? */ | |
| 252 | AM_RANGE(0x800000, 0x800001) AM_WRITENOP /* ?*/ | |
| 253 | 253 | ADDRESS_MAP_END |
| 254 | 254 | |
| 255 | 255 | static ADDRESS_MAP_START( honeydol_sound_readmem, ADDRESS_SPACE_PROGRAM, 8 ) |
| r4470 | r4471 | |
| 300 | 300 | AM_RANGE(0x400000, 0x400001) AM_WRITE(snowbros_flipscreen_w) |
| 301 | 301 | AM_RANGE(0x600000, 0x6001ff) AM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE(&paletteram16) |
| 302 | 302 | AM_RANGE(0x700000, 0x701fff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) |
| 303 | AM_RANGE(0x800000, 0x800001) AM_WRITE(SMH_NOP) /* IRQ 4 acknowledge? */ | |
| 304 | AM_RANGE(0x900000, 0x900001) AM_WRITE(SMH_NOP) /* IRQ 3 acknowledge? */ | |
| 305 | AM_RANGE(0xa00000, 0xa00001) AM_WRITE(SMH_NOP) /* IRQ 2 acknowledge? */ | |
| 303 | AM_RANGE(0x800000, 0x800001) AM_WRITENOP /* IRQ 4 acknowledge? */ | |
| 304 | AM_RANGE(0x900000, 0x900001) AM_WRITENOP /* IRQ 3 acknowledge? */ | |
| 305 | AM_RANGE(0xa00000, 0xa00001) AM_WRITENOP /* IRQ 2 acknowledge? */ | |
| 306 | 306 | ADDRESS_MAP_END |
| 307 | 307 | |
| 308 | 308 | |
| r4470 | r4471 | |
| 362 | 362 | AM_RANGE(0x600000, 0x6001ff) AM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE(&paletteram16) |
| 363 | 363 | AM_RANGE(0x700000, 0x701fff) AM_WRITE(pandora_spriteram_LSB_w) |
| 364 | 364 | |
| 365 | AM_RANGE(0x800000, 0x800001) AM_WRITE(SMH_NOP) /* IRQ 4 acknowledge? */ | |
| 366 | AM_RANGE(0x900000, 0x900001) AM_WRITE(SMH_NOP) /* IRQ 3 acknowledge? */ | |
| 367 | AM_RANGE(0xa00000, 0xa00001) AM_WRITE(SMH_NOP) /* IRQ 2 acknowledge? */ | |
| 365 | AM_RANGE(0x800000, 0x800001) AM_WRITENOP /* IRQ 4 acknowledge? */ | |
| 366 | AM_RANGE(0x900000, 0x900001) AM_WRITENOP /* IRQ 3 acknowledge? */ | |
| 367 | AM_RANGE(0xa00000, 0xa00001) AM_WRITENOP /* IRQ 2 acknowledge? */ | |
| 368 | 368 | ADDRESS_MAP_END |
| 369 | 369 | |
| 370 | 370 | static ADDRESS_MAP_START( hyperpac_sound_readmem, ADDRESS_SPACE_PROGRAM, 8 ) |
| r4470 | r4471 | |
| 508 | 508 | AM_RANGE( 0x400000, 0x400001) AM_WRITE(snowbros_flipscreen_w) |
| 509 | 509 | AM_RANGE( 0x600000, 0x6003ff) AM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE (&paletteram16) |
| 510 | 510 | AM_RANGE( 0x700000, 0x7021ff) AM_WRITE(SMH_RAM) AM_BASE( &spriteram16) AM_SIZE( &spriteram_size ) |
| 511 | AM_RANGE( 0x800000, 0x800001) AM_WRITE(SMH_NOP) /* IRQ 4 acknowledge? */ | |
| 512 | AM_RANGE( 0x900000, 0x900001) AM_WRITE(SMH_NOP) /* IRQ 3 acknowledge? */ | |
| 513 | AM_RANGE( 0xa00000, 0xa00001) AM_WRITE(SMH_NOP) /* IRQ 2 acknowledge? */ | |
| 511 | AM_RANGE( 0x800000, 0x800001) AM_WRITENOP /* IRQ 4 acknowledge? */ | |
| 512 | AM_RANGE( 0x900000, 0x900001) AM_WRITENOP /* IRQ 3 acknowledge? */ | |
| 513 | AM_RANGE( 0xa00000, 0xa00001) AM_WRITENOP /* IRQ 2 acknowledge? */ | |
| 514 | 514 | ADDRESS_MAP_END |
| 515 | 515 | |
| 516 | 516 | /* Final Tetris */ |
| r4470 | r4471 | |
| 534 | 534 | AM_RANGE(0x600000, 0x6001ff) AM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE(&paletteram16) |
| 535 | 535 | AM_RANGE(0x700000, 0x701fff) AM_WRITE(pandora_spriteram_LSB_w) |
| 536 | 536 | |
| 537 | AM_RANGE(0x800000, 0x800001) AM_WRITE(SMH_NOP) /* IRQ 4 acknowledge? */ | |
| 538 | AM_RANGE(0x900000, 0x900001) AM_WRITE(SMH_NOP) /* IRQ 3 acknowledge? */ | |
| 539 | AM_RANGE(0xa00000, 0xa00001) AM_WRITE(SMH_NOP) /* IRQ 2 acknowledge? */ | |
| 537 | AM_RANGE(0x800000, 0x800001) AM_WRITENOP /* IRQ 4 acknowledge? */ | |
| 538 | AM_RANGE(0x900000, 0x900001) AM_WRITENOP /* IRQ 3 acknowledge? */ | |
| 539 | AM_RANGE(0xa00000, 0xa00001) AM_WRITENOP /* IRQ 2 acknowledge? */ | |
| 540 | 540 | ADDRESS_MAP_END |
| 541 | 541 | |
| 542 | 542 | static INPUT_PORTS_START( snowbros ) |
| r4470 | r4471 | |
|---|---|---|
| 320 | 320 | AM_RANGE(0x0800, 0x0800) AM_READ_PORT("IN0") |
| 321 | 321 | AM_RANGE(0x0a00, 0x0a00) AM_READ_PORT("DSW0") |
| 322 | 322 | AM_RANGE(0x0c00, 0x0c00) AM_READ_PORT("DSW1") |
| 323 | AM_RANGE(0x1000, 0x1000) AM_WRITE | |
| 323 | AM_RANGE(0x1000, 0x1000) AM_WRITE | |
| 324 | 324 | AM_RANGE(0x1200, 0x1200) AM_WRITE(avgdvg_go_w) |
| 325 | 325 | AM_RANGE(0x1400, 0x1400) AM_WRITE(watchdog_reset_w) |
| 326 | 326 | AM_RANGE(0x1600, 0x1600) AM_WRITE(avgdvg_reset_w) |
| r4470 | r4471 | |
| 329 | 329 | AM_RANGE(0x1804, 0x1804) AM_DEVREAD("mathbox", mathbox_lo_r) |
| 330 | 330 | AM_RANGE(0x1806, 0x1806) AM_DEVREAD("mathbox", mathbox_hi_r) |
| 331 | 331 | AM_RANGE(0x1808, 0x1808) AM_WRITE(redbaron_sounds_w) /* and select joystick pot also */ |
| 332 | AM_RANGE(0x180a, 0x180a) AM_WRITE | |
| 332 | AM_RANGE(0x180a, 0x180a) AM_WRITE | |
| 333 | 333 | AM_RANGE(0x180c, 0x180c) AM_DEVWRITE("earom", atari_vg_earom_ctrl_w) |
| 334 | 334 | AM_RANGE(0x1810, 0x181f) AM_DEVREADWRITE("pokey", pokey_r, pokey_w) |
| 335 | 335 | AM_RANGE(0x1820, 0x185f) AM_DEVREADWRITE("earom", atari_vg_earom_r, atari_vg_earom_w) |
| r4470 | r4471 | |
|---|---|---|
| 659 | 659 | AM_RANGE(0x80, 0x8f) AM_WRITE(nbmj9195_blitter_0_w) |
| 660 | 660 | |
| 661 | 661 | AM_RANGE(0xb0, 0xb0) AM_WRITE(nbmj9195_sound_w) |
| 662 | AM_RANGE(0xb2, 0xb2) AM_WRITE(SMH_NOP) | |
| 663 | AM_RANGE(0xb4, 0xb4) AM_WRITE(SMH_NOP) | |
| 662 | AM_RANGE(0xb2, 0xb2) AM_WRITENOP | |
| 663 | AM_RANGE(0xb4, 0xb4) AM_WRITENOP | |
| 664 | 664 | AM_RANGE(0xb6, 0xb6) AM_WRITE(nbmj9195_inputportsel_w) |
| 665 | 665 | ADDRESS_MAP_END |
| 666 | 666 | |
| r4470 | r4471 | |
| 704 | 704 | AM_RANGE(0xa0, 0xaf) AM_WRITE(nbmj9195_blitter_1_w) |
| 705 | 705 | |
| 706 | 706 | AM_RANGE(0xc0, 0xc0) AM_WRITE(nbmj9195_sound_w) |
| 707 | AM_RANGE(0xc2, 0xc2) AM_WRITE(SMH_NOP) | |
| 708 | AM_RANGE(0xc4, 0xc4) AM_WRITE(SMH_NOP) | |
| 707 | AM_RANGE(0xc2, 0xc2) AM_WRITENOP | |
| 708 | AM_RANGE(0xc4, 0xc4) AM_WRITENOP | |
| 709 | 709 | AM_RANGE(0xc6, 0xc6) AM_WRITE(nbmj9195_inputportsel_w) |
| 710 | AM_RANGE(0xcf, 0xcf) AM_WRITE | |
| 710 | AM_RANGE(0xcf, 0xcf) AM_WRITE | |
| 711 | 711 | ADDRESS_MAP_END |
| 712 | 712 | |
| 713 | 713 | |
| r4470 | r4471 | |
| 750 | 750 | AM_RANGE(0x80, 0x8f) AM_WRITE(nbmj9195_blitter_1_w) |
| 751 | 751 | |
| 752 | 752 | AM_RANGE(0xa0, 0xa0) AM_WRITE(nbmj9195_sound_w) |
| 753 | AM_RANGE(0xa4, 0xa4) AM_WRITE(SMH_NOP) | |
| 754 | AM_RANGE(0xa8, 0xa8) AM_WRITE(SMH_NOP) | |
| 753 | AM_RANGE(0xa4, 0xa4) AM_WRITENOP | |
| 754 | AM_RANGE(0xa8, 0xa8) AM_WRITENOP | |
| 755 | 755 | AM_RANGE(0xb0, 0xb8) AM_WRITE(nbmj9195_inputportsel_w) |
| 756 | 756 | ADDRESS_MAP_END |
| 757 | 757 | |
| r4470 | r4471 | |
| 792 | 792 | AM_RANGE(0x80, 0x8f) AM_WRITE(nbmj9195_blitter_0_w) |
| 793 | 793 | |
| 794 | 794 | AM_RANGE(0xa0, 0xa0) AM_WRITE(nbmj9195_sound_w) |
| 795 | AM_RANGE(0xa4, 0xa4) AM_WRITE(SMH_NOP) | |
| 796 | AM_RANGE(0xa8, 0xa8) AM_WRITE(SMH_NOP) | |
| 795 | AM_RANGE(0xa4, 0xa4) AM_WRITENOP | |
| 796 | AM_RANGE(0xa8, 0xa8) AM_WRITENOP | |
| 797 | 797 | AM_RANGE(0xb0, 0xb0) AM_WRITE(nbmj9195_inputportsel_w) |
| 798 | 798 | ADDRESS_MAP_END |
| 799 | 799 | |
| r4470 | r4471 | |
| 837 | 837 | AM_RANGE(0xa0, 0xaf) AM_WRITE(nbmj9195_blitter_1_w) |
| 838 | 838 | |
| 839 | 839 | AM_RANGE(0xc0, 0xc0) AM_WRITE(nbmj9195_sound_w) |
| 840 | AM_RANGE(0xc8, 0xc8) AM_WRITE(SMH_NOP) | |
| 841 | AM_RANGE(0xd0, 0xd0) AM_WRITE(SMH_NOP) | |
| 840 | AM_RANGE(0xc8, 0xc8) AM_WRITENOP | |
| 841 | AM_RANGE(0xd0, 0xd0) AM_WRITENOP | |
| 842 | 842 | AM_RANGE(0xd8, 0xd8) AM_WRITE(nbmj9195_inputportsel_w) |
| 843 | 843 | ADDRESS_MAP_END |
| 844 | 844 | |
| r4470 | r4471 | |
| 882 | 882 | AM_RANGE(0xe0, 0xef) AM_WRITE(nbmj9195_blitter_0_w) |
| 883 | 883 | |
| 884 | 884 | AM_RANGE(0x20, 0x20) AM_WRITE(nbmj9195_sound_w) |
| 885 | AM_RANGE(0x24, 0x24) AM_WRITE(SMH_NOP) | |
| 886 | AM_RANGE(0x28, 0x28) AM_WRITE(SMH_NOP) | |
| 885 | AM_RANGE(0x24, 0x24) AM_WRITENOP | |
| 886 | AM_RANGE(0x28, 0x28) AM_WRITENOP | |
| 887 | 887 | AM_RANGE(0x2c, 0x2c) AM_WRITE(nbmj9195_inputportsel_w) |
| 888 | 888 | ADDRESS_MAP_END |
| 889 | 889 | |
| r4470 | r4471 | |
| 927 | 927 | AM_RANGE(0xe0, 0xef) AM_WRITE(nbmj9195_blitter_1_w) |
| 928 | 928 | |
| 929 | 929 | AM_RANGE(0x20, 0x20) AM_WRITE(nbmj9195_sound_w) |
| 930 | AM_RANGE(0x22, 0x22) AM_WRITE(SMH_NOP) | |
| 931 | AM_RANGE(0x24, 0x24) AM_WRITE(SMH_NOP) | |
| 930 | AM_RANGE(0x22, 0x22) AM_WRITENOP | |
| 931 | AM_RANGE(0x24, 0x24) AM_WRITENOP | |
| 932 | 932 | AM_RANGE(0x26, 0x26) AM_WRITE(nbmj9195_inputportsel_w) |
| 933 | 933 | ADDRESS_MAP_END |
| 934 | 934 | |
| r4470 | r4471 | |
| 972 | 972 | AM_RANGE(0xa0, 0xaf) AM_WRITE(nbmj9195_blitter_1_w) |
| 973 | 973 | |
| 974 | 974 | AM_RANGE(0xd8, 0xd8) AM_WRITE(nbmj9195_sound_w) |
| 975 | AM_RANGE(0xda, 0xda) AM_WRITE(SMH_NOP) | |
| 976 | AM_RANGE(0xdc, 0xdc) AM_WRITE(SMH_NOP) | |
| 975 | AM_RANGE(0xda, 0xda) AM_WRITENOP | |
| 976 | AM_RANGE(0xdc, 0xdc) AM_WRITENOP | |
| 977 | 977 | AM_RANGE(0xde, 0xde) AM_WRITE(nbmj9195_inputportsel_w) |
| 978 | 978 | ADDRESS_MAP_END |
| 979 | 979 | |
| r4470 | r4471 | |
| 1017 | 1017 | AM_RANGE(0xa0, 0xaf) AM_WRITE(nbmj9195_blitter_1_w) |
| 1018 | 1018 | |
| 1019 | 1019 | AM_RANGE(0xe0, 0xe0) AM_WRITE(nbmj9195_sound_w) |
| 1020 | AM_RANGE(0xe2, 0xe2) AM_WRITE(SMH_NOP) | |
| 1021 | AM_RANGE(0xe4, 0xe4) AM_WRITE(SMH_NOP) | |
| 1020 | AM_RANGE(0xe2, 0xe2) AM_WRITENOP | |
| 1021 | AM_RANGE(0xe4, 0xe4) AM_WRITENOP | |
| 1022 | 1022 | AM_RANGE(0xe6, 0xe6) AM_WRITE(nbmj9195_inputportsel_w) |
| 1023 | 1023 | ADDRESS_MAP_END |
| 1024 | 1024 | |
| r4470 | r4471 | |
| 1062 | 1062 | AM_RANGE(0x80, 0x8f) AM_WRITE(nbmj9195_blitter_1_w) |
| 1063 | 1063 | |
| 1064 | 1064 | AM_RANGE(0xf0, 0xf0) AM_WRITE(nbmj9195_sound_w) |
| 1065 | AM_RANGE(0xf2, 0xf2) AM_WRITE(SMH_NOP) | |
| 1066 | AM_RANGE(0xf4, 0xf4) AM_WRITE(SMH_NOP) | |
| 1065 | AM_RANGE(0xf2, 0xf2) AM_WRITENOP | |
| 1066 | AM_RANGE(0xf4, 0xf4) AM_WRITENOP | |
| 1067 | 1067 | AM_RANGE(0xf6, 0xf6) AM_WRITE(nbmj9195_inputportsel_w) |
| 1068 | 1068 | ADDRESS_MAP_END |
| 1069 | 1069 | |
| r4470 | r4471 | |
| 1107 | 1107 | AM_RANGE(0x80, 0x8f) AM_WRITE(nbmj9195_blitter_1_w) |
| 1108 | 1108 | |
| 1109 | 1109 | AM_RANGE(0xf8, 0xf8) AM_WRITE(nbmj9195_sound_w) |
| 1110 | AM_RANGE(0xfa, 0xfa) AM_WRITE(SMH_NOP) | |
| 1111 | AM_RANGE(0xfc, 0xfc) AM_WRITE(SMH_NOP) | |
| 1110 | AM_RANGE(0xfa, 0xfa) AM_WRITENOP | |
| 1111 | AM_RANGE(0xfc, 0xfc) AM_WRITENOP | |
| 1112 | 1112 | AM_RANGE(0xfe, 0xfe) AM_WRITE(nbmj9195_inputportsel_w) |
| 1113 | 1113 | ADDRESS_MAP_END |
| 1114 | 1114 | |
| r4470 | r4471 | |
| 1152 | 1152 | AM_RANGE(0xc0, 0xcf) AM_WRITE(nbmj9195_blitter_1_w) |
| 1153 | 1153 | |
| 1154 | 1154 | AM_RANGE(0xf0, 0xf0) AM_WRITE(nbmj9195_sound_w) |
| 1155 | AM_RANGE(0xf2, 0xf2) AM_WRITE(SMH_NOP) | |
| 1156 | AM_RANGE(0xf4, 0xf4) AM_WRITE(SMH_NOP) | |
| 1155 | AM_RANGE(0xf2, 0xf2) AM_WRITENOP | |
| 1156 | AM_RANGE(0xf4, 0xf4) AM_WRITENOP | |
| 1157 | 1157 | AM_RANGE(0xf6, 0xf6) AM_WRITE(nbmj9195_inputportsel_w) |
| 1158 | 1158 | ADDRESS_MAP_END |
| 1159 | 1159 | |
| r4470 | r4471 | |
| 1197 | 1197 | AM_RANGE(0xa0, 0xaf) AM_WRITE(nbmj9195_blitter_1_w) |
| 1198 | 1198 | |
| 1199 | 1199 | AM_RANGE(0xe0, 0xe0) AM_WRITE(nbmj9195_sound_w) |
| 1200 | AM_RANGE(0xe2, 0xe2) AM_WRITE(SMH_NOP) | |
| 1201 | AM_RANGE(0xe4, 0xe4) AM_WRITE(SMH_NOP) | |
| 1200 | AM_RANGE(0xe2, 0xe2) AM_WRITENOP | |
| 1201 | AM_RANGE(0xe4, 0xe4) AM_WRITENOP | |
| 1202 | 1202 | AM_RANGE(0xf6, 0xf6) AM_WRITE(nbmj9195_inputportsel_w) |
| 1203 | 1203 | ADDRESS_MAP_END |
| 1204 | 1204 | |
| r4470 | r4471 | |
| 1242 | 1242 | AM_RANGE(0x80, 0x8f) AM_WRITE(nbmj9195_blitter_1_w) |
| 1243 | 1243 | |
| 1244 | 1244 | AM_RANGE(0xa0, 0xa0) AM_WRITE(nbmj9195_sound_w) |
| 1245 | AM_RANGE(0xa8, 0xa8) AM_WRITE(SMH_NOP) | |
| 1246 | AM_RANGE(0xb0, 0xb0) AM_WRITE(SMH_NOP) | |
| 1245 | AM_RANGE(0xa8, 0xa8) AM_WRITENOP | |
| 1246 | AM_RANGE(0xb0, 0xb0) AM_WRITENOP | |
| 1247 | 1247 | AM_RANGE(0xb8, 0xb8) AM_WRITE(nbmj9195_inputportsel_w) |
| 1248 | 1248 | ADDRESS_MAP_END |
| 1249 | 1249 | |
| r4470 | r4471 | |
| 1287 | 1287 | AM_RANGE(0xc0, 0xcf) AM_WRITE(nbmj9195_blitter_1_w) |
| 1288 | 1288 | |
| 1289 | 1289 | AM_RANGE(0x90, 0x90) AM_WRITE(nbmj9195_sound_w) |
| 1290 | AM_RANGE(0x94, 0x94) AM_WRITE(SMH_NOP) | |
| 1291 | AM_RANGE(0x98, 0x98) AM_WRITE(SMH_NOP) | |
| 1290 | AM_RANGE(0x94, 0x94) AM_WRITENOP | |
| 1291 | AM_RANGE(0x98, 0x98) AM_WRITENOP | |
| 1292 | 1292 | AM_RANGE(0x9c, 0x9c) AM_WRITE(nbmj9195_inputportsel_w) |
| 1293 | 1293 | ADDRESS_MAP_END |
| 1294 | 1294 | |
| r4470 | r4471 | |
| 1332 | 1332 | AM_RANGE(0xc0, 0xcf) AM_WRITE(nbmj9195_blitter_1_w) |
| 1333 | 1333 | |
| 1334 | 1334 | AM_RANGE(0xe0, 0xe0) AM_WRITE(nbmj9195_sound_w) |
| 1335 | AM_RANGE(0xe8, 0xe8) AM_WRITE(SMH_NOP) | |
| 1336 | AM_RANGE(0xf0, 0xf0) AM_WRITE(SMH_NOP) | |
| 1335 | AM_RANGE(0xe8, 0xe8) AM_WRITENOP | |
| 1336 | AM_RANGE(0xf0, 0xf0) AM_WRITENOP | |
| 1337 | 1337 | AM_RANGE(0xf8, 0xf8) AM_WRITE(nbmj9195_inputportsel_w) |
| 1338 | 1338 | ADDRESS_MAP_END |
| 1339 | 1339 | |
| r4470 | r4471 | |
| 1374 | 1374 | AM_RANGE(0xc0, 0xcf) AM_WRITE(nbmj9195_blitter_0_w) |
| 1375 | 1375 | |
| 1376 | 1376 | AM_RANGE(0xa0, 0xa0) AM_WRITE(nbmj9195_sound_w) |
| 1377 | AM_RANGE(0xa4, 0xa4) AM_WRITE(SMH_NOP) | |
| 1378 | AM_RANGE(0xa8, 0xa8) AM_WRITE(SMH_NOP) | |
| 1377 | AM_RANGE(0xa4, 0xa4) AM_WRITENOP | |
| 1378 | AM_RANGE(0xa8, 0xa8) AM_WRITENOP | |
| 1379 | 1379 | AM_RANGE(0xb0, 0xb0) AM_WRITE(nbmj9195_inputportsel_w) |
| 1380 | 1380 | ADDRESS_MAP_END |
| 1381 | 1381 | |
| r4470 | r4471 | |
| 1416 | 1416 | AM_RANGE(0x80, 0x8f) AM_WRITE(nbmj9195_blitter_0_w) |
| 1417 | 1417 | |
| 1418 | 1418 | AM_RANGE(0xa0, 0xa0) AM_WRITE(nbmj9195_sound_w) |
| 1419 | AM_RANGE(0xa4, 0xa4) AM_WRITE(SMH_NOP) | |
| 1420 | AM_RANGE(0xa8, 0xa8) AM_WRITE(SMH_NOP) | |
| 1419 | AM_RANGE(0xa4, 0xa4) AM_WRITENOP | |
| 1420 | AM_RANGE(0xa8, 0xa8) AM_WRITENOP | |
| 1421 | 1421 | AM_RANGE(0xb0, 0xb0) AM_WRITE(nbmj9195_inputportsel_w) |
| 1422 | 1422 | ADDRESS_MAP_END |
| 1423 | 1423 | |
| r4470 | r4471 | |
| 1458 | 1458 | AM_RANGE(0xc0, 0xcf) AM_WRITE(nbmj9195_blitter_0_w) |
| 1459 | 1459 | |
| 1460 | 1460 | AM_RANGE(0xa0, 0xa0) AM_WRITE(nbmj9195_sound_w) |
| 1461 | AM_RANGE(0xa8, 0xa8) AM_WRITE | |
| 1461 | AM_RANGE(0xa8, 0xa8) AM_WRITE | |
| 1462 | 1462 | AM_RANGE(0xb0, 0xb0) AM_WRITE(nbmj9195_inputportsel_w) |
| 1463 | AM_RANGE(0xb4, 0xb4) AM_WRITE | |
| 1463 | AM_RANGE(0xb4, 0xb4) AM_WRITE | |
| 1464 | 1464 | ADDRESS_MAP_END |
| 1465 | 1465 | |
| 1466 | 1466 | |
| r4470 | r4471 | |
| 1500 | 1500 | AM_RANGE(0x80, 0x8f) AM_WRITE(nbmj9195_blitter_0_w) |
| 1501 | 1501 | |
| 1502 | 1502 | AM_RANGE(0xa0, 0xa0) AM_WRITE(nbmj9195_sound_w) |
| 1503 | AM_RANGE(0xa4, 0xa4) AM_WRITE(SMH_NOP) | |
| 1504 | AM_RANGE(0xa8, 0xa8) AM_WRITE(SMH_NOP) | |
| 1503 | AM_RANGE(0xa4, 0xa4) AM_WRITENOP | |
| 1504 | AM_RANGE(0xa8, 0xa8) AM_WRITENOP | |
| 1505 | 1505 | AM_RANGE(0xb0, 0xb0) AM_WRITE(nbmj9195_inputportsel_w) |
| 1506 | 1506 | ADDRESS_MAP_END |
| 1507 | 1507 | |
| r4470 | r4471 | |
| 1542 | 1542 | AM_RANGE(0xc0, 0xcf) AM_WRITE(nbmj9195_blitter_0_w) |
| 1543 | 1543 | |
| 1544 | 1544 | AM_RANGE(0xa0, 0xa0) AM_WRITE(nbmj9195_sound_w) |
| 1545 | AM_RANGE(0xa4, 0xa4) AM_WRITE(SMH_NOP) | |
| 1546 | AM_RANGE(0xa8, 0xa8) AM_WRITE(SMH_NOP) | |
| 1545 | AM_RANGE(0xa4, 0xa4) AM_WRITENOP | |
| 1546 | AM_RANGE(0xa8, 0xa8) AM_WRITENOP | |
| 1547 | 1547 | AM_RANGE(0xb0, 0xb0) AM_WRITE(nbmj9195_inputportsel_w) |
| 1548 | 1548 | ADDRESS_MAP_END |
| 1549 | 1549 | |
| r4470 | r4471 | |
| 1586 | 1586 | AM_RANGE(0xd0, 0xdf) AM_WRITE(nbmj9195_clut_0_w) |
| 1587 | 1587 | AM_RANGE(0xf0, 0xff) AM_WRITE(nbmj9195_clut_1_w) |
| 1588 | 1588 | |
| 1589 | AM_RANGE(0xa0, 0xa6) AM_WRITE | |
| 1589 | AM_RANGE(0xa0, 0xa6) AM_WRITE | |
| 1590 | 1590 | |
| 1591 | 1591 | AM_RANGE(0xc0, 0xcf) AM_WRITE(nbmj9195_blitter_0_w) |
| 1592 | 1592 | AM_RANGE(0xe0, 0xef) AM_WRITE(nbmj9195_blitter_1_w) |
| r4470 | r4471 | |
| 1633 | 1633 | AM_RANGE(0xd0, 0xdf) AM_WRITE(nbmj9195_clut_0_w) |
| 1634 | 1634 | AM_RANGE(0xf0, 0xff) AM_WRITE(nbmj9195_clut_1_w) |
| 1635 | 1635 | |
| 1636 | AM_RANGE(0xb0, 0xb6) AM_WRITE | |
| 1636 | AM_RANGE(0xb0, 0xb6) AM_WRITE | |
| 1637 | 1637 | |
| 1638 | 1638 | AM_RANGE(0xc0, 0xcf) AM_WRITE(nbmj9195_blitter_0_w) |
| 1639 | 1639 | AM_RANGE(0xe0, 0xef) AM_WRITE(nbmj9195_blitter_1_w) |
| r4470 | r4471 | |
| 1680 | 1680 | AM_RANGE(0xb0, 0xbf) AM_WRITE(nbmj9195_clut_0_w) |
| 1681 | 1681 | AM_RANGE(0xd0, 0xdf) AM_WRITE(nbmj9195_clut_1_w) |
| 1682 | 1682 | |
| 1683 | AM_RANGE(0x80, 0x86) AM_WRITE | |
| 1683 | AM_RANGE(0x80, 0x86) AM_WRITE | |
| 1684 | 1684 | |
| 1685 | 1685 | AM_RANGE(0xa0, 0xaf) AM_WRITE(nbmj9195_blitter_0_w) |
| 1686 | 1686 | AM_RANGE(0xc0, 0xcf) AM_WRITE(nbmj9195_blitter_1_w) |
| r4470 | r4471 | |
|---|---|---|
| 12 | 12 | #include "sound/3812intf.h" |
| 13 | 13 | #include "sound/k007232.h" |
| 14 | 14 | #include "sound/k051649.h" |
| 15 | #include "konamipt.h" | |
| 15 | 16 | |
| 16 | 17 | PALETTE_INIT( hcastle ); |
| 17 | 18 | VIDEO_UPDATE( hcastle ); |
| r4470 | r4471 | |
| 117 | 118 | |
| 118 | 119 | static INPUT_PORTS_START( hcastle ) |
| 119 | 120 | PORT_START("SYSTEM") |
| 120 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) | |
| 121 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) | |
| 122 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 ) | |
| 123 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) | |
| 124 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 ) | |
| 125 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED ) | |
| 126 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) | |
| 127 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) | |
| 121 | KONAMI8_SYSTEM_UNK | |
| 128 | 122 | |
| 129 | 123 | PORT_START("P1") |
| 130 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY | |
| 131 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY | |
| 132 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY | |
| 133 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY | |
| 134 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) | |
| 135 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) | |
| 136 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) | |
| 137 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) | |
| 124 | KONAMI8_MONO_B12_UNK | |
| 138 | 125 | |
| 139 | 126 | PORT_START("P2") |
| 140 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL | |
| 141 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL | |
| 142 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL | |
| 143 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL | |
| 144 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL | |
| 145 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL | |
| 146 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) | |
| 147 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) | |
| 127 | KONAMI8_COCKTAIL_B12_UNK | |
| 148 | 128 | |
| 149 | 129 | PORT_START("DSW1") |
| 150 | 130 | PORT_DIPNAME( 0x01, 0x01, "Unused SW 1-0" ) |
| r4470 | r4471 | |
| 171 | 151 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 172 | 152 | |
| 173 | 153 | PORT_START("DSW2") |
| 174 | PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) ) | |
| 175 | PORT_DIPSETTING( 0x02, DEF_STR( 4C_1C ) ) | |
| 176 | PORT_DIPSETTING( 0x05, DEF_STR( 3C_1C ) ) | |
| 177 | PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) ) | |
| 178 | PORT_DIPSETTING( 0x04, DEF_STR( 3C_2C ) ) | |
| 179 | PORT_DIPSETTING( 0x01, DEF_STR( 4C_3C ) ) | |
| 180 | PORT_DIPSETTING( 0x0f, DEF_STR( 1C_1C ) ) | |
| 181 | PORT_DIPSETTING( 0x03, DEF_STR( 3C_4C ) ) | |
| 182 | PORT_DIPSETTING( 0x07, DEF_STR( 2C_3C ) ) | |
| 183 | PORT_DIPSETTING( 0x0e, DEF_STR( 1C_2C ) ) | |
| 184 | PORT_DIPSETTING( 0x06, DEF_STR( 2C_5C ) ) | |
| 185 | PORT_DIPSETTING( 0x0d, DEF_STR( 1C_3C ) ) | |
| 186 | PORT_DIPSETTING( 0x0c, DEF_STR( 1C_4C ) ) | |
| 187 | PORT_DIPSETTING( 0x0b, DEF_STR( 1C_5C ) ) | |
| 188 | PORT_DIPSETTING( 0x0a, DEF_STR( 1C_6C ) ) | |
| 189 | PORT_DIPSETTING( 0x09, DEF_STR( 1C_7C ) ) | |
| 190 | PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) | |
| 191 | PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) ) | |
| 192 | PORT_DIPSETTING( 0x20, DEF_STR( 4C_1C ) ) | |
| 193 | PORT_DIPSETTING( 0x50, DEF_STR( 3C_1C ) ) | |
| 194 | PORT_DIPSETTING( 0x80, DEF_STR( 2C_1C ) ) | |
| 195 | PORT_DIPSETTING( 0x40, DEF_STR( 3C_2C ) ) | |
| 196 | PORT_DIPSETTING( 0x10, DEF_STR( 4C_3C ) ) | |
| 197 | PORT_DIPSETTING( 0xf0, DEF_STR( 1C_1C ) ) | |
| 198 | PORT_DIPSETTING( 0x30, DEF_STR( 3C_4C ) ) | |
| 199 | PORT_DIPSETTING( 0x70, DEF_STR( 2C_3C ) ) | |
| 200 | PORT_DIPSETTING( 0xe0, DEF_STR( 1C_2C ) ) | |
| 201 | PORT_DIPSETTING( 0x60, DEF_STR( 2C_5C ) ) | |
| 202 | PORT_DIPSETTING( 0xd0, DEF_STR( 1C_3C ) ) | |
| 203 | PORT_DIPSETTING( 0xc0, DEF_STR( 1C_4C ) ) | |
| 204 | PORT_DIPSETTING( 0xb0, DEF_STR( 1C_5C ) ) | |
| 205 | PORT_DIPSETTING( 0xa0, DEF_STR( 1C_6C ) ) | |
| 206 | PORT_DIPSETTING( 0x90, DEF_STR( 1C_7C ) ) | |
| 207 | // PORT_DIPSETTING( 0x00, "Invalidity" ) // Disables the 2 coin slots | |
| 154 | KONAMI_COINAGE(DEF_STR( Free_Play ), "Invalid") | |
| 155 | /* "Invalid" = both coin slots disabled */ | |
| 208 | 156 | |
| 209 | 157 | PORT_START("DSW3") |
| 210 | 158 | PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) ) |
| r4470 | r4471 | |
|---|---|---|
| 112 | 112 | ADDRESS_MAP_GLOBAL_MASK(0x1fff) |
| 113 | 113 | AM_RANGE(0x0000, 0x01ff) AM_RAM |
| 114 | 114 | AM_RANGE(0x0500, 0x0503) AM_WRITE(SMH_RAM) |
| 115 | // AM_RANGE(0x0504, 0x0507) AM_WRITE | |
| 115 | // AM_RANGE(0x0504, 0x0507) AM_WRITE | |
| 116 | 116 | AM_RANGE(0x0506, 0x0506) AM_WRITE(copsnrob_led_w) |
| 117 | 117 | AM_RANGE(0x0600, 0x0600) AM_WRITE(SMH_RAM) AM_BASE(&copsnrob_trucky) |
| 118 | 118 | AM_RANGE(0x0700, 0x07ff) AM_WRITE(SMH_RAM) AM_BASE(&copsnrob_truckram) |
| r4470 | r4471 | |
|---|---|---|
| 83 | 83 | #include "deprecat.h" |
| 84 | 84 | #include "sound/okim6295.h" |
| 85 | 85 | #include "sound/k051649.h" |
| 86 | #include "konamipt.h" | |
| 86 | 87 | |
| 87 | ||
| 88 | 88 | VIDEO_START( hexion ); |
| 89 | 89 | VIDEO_UPDATE( hexion ); |
| 90 | 90 | |
| r4470 | r4471 | |
| 136 | 136 | AM_RANGE(0xe880, 0xe889) AM_DEVWRITE("konami", k051649_frequency_w) |
| 137 | 137 | AM_RANGE(0xe88a, 0xe88e) AM_DEVWRITE("konami", k051649_volume_w) |
| 138 | 138 | AM_RANGE(0xe88f, 0xe88f) AM_DEVWRITE("konami", k051649_keyonoff_w) |
| 139 | AM_RANGE(0xf000, 0xf00f) AM_WRITE | |
| 139 | AM_RANGE(0xf000, 0xf00f) AM_WRITE | |
| 140 | 140 | AM_RANGE(0xf200, 0xf200) AM_DEVWRITE("oki", okim6295_w) |
| 141 | 141 | AM_RANGE(0xf480, 0xf480) AM_WRITE(hexion_bankswitch_w) |
| 142 | 142 | AM_RANGE(0xf4c0, 0xf4c0) AM_WRITE(coincntr_w) |
| r4470 | r4471 | |
| 147 | 147 | |
| 148 | 148 | static INPUT_PORTS_START( hexion ) |
| 149 | 149 | PORT_START("DSW1") |
| 150 | PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) ) | |
| 151 | PORT_DIPSETTING( 0x02, DEF_STR( 4C_1C ) ) | |
| 152 | PORT_DIPSETTING( 0x05, DEF_STR( 3C_1C ) ) | |
| 153 | PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) ) | |
| 154 | PORT_DIPSETTING( 0x04, DEF_STR( 3C_2C ) ) | |
| 155 | PORT_DIPSETTING( 0x01, DEF_STR( 4C_3C ) ) | |
| 156 | PORT_DIPSETTING( 0x0f, DEF_STR( 1C_1C ) ) | |
| 157 | PORT_DIPSETTING( 0x03, DEF_STR( 3C_4C ) ) | |
| 158 | PORT_DIPSETTING( 0x07, DEF_STR( 2C_3C ) ) | |
| 159 | PORT_DIPSETTING( 0x0e, DEF_STR( 1C_2C ) ) | |
| 160 | PORT_DIPSETTING( 0x06, DEF_STR( 2C_5C ) ) | |
| 161 | PORT_DIPSETTING( 0x0d, DEF_STR( 1C_3C ) ) | |
| 162 | PORT_DIPSETTING( 0x0c, DEF_STR( 1C_4C ) ) | |
| 163 | PORT_DIPSETTING( 0x0b, DEF_STR( 1C_5C ) ) | |
| 164 | PORT_DIPSETTING( 0x0a, DEF_STR( 1C_6C ) ) | |
| 165 | PORT_DIPSETTING( 0x09, DEF_STR( 1C_7C ) ) | |
| 166 | PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) | |
| 167 | PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) ) | |
| 168 | PORT_DIPSETTING( 0x20, DEF_STR( 4C_1C ) ) | |
| 169 | PORT_DIPSETTING( 0x50, DEF_STR( 3C_1C ) ) | |
| 170 | PORT_DIPSETTING( 0x80, DEF_STR( 2C_1C ) ) | |
| 171 | PORT_DIPSETTING( 0x40, DEF_STR( 3C_2C ) ) | |
| 172 | PORT_DIPSETTING( 0x10, DEF_STR( 4C_3C ) ) | |
| 173 | PORT_DIPSETTING( 0xf0, DEF_STR( 1C_1C ) ) | |
| 174 | PORT_DIPSETTING( 0x30, DEF_STR( 3C_4C ) ) | |
| 175 | PORT_DIPSETTING( 0x70, DEF_STR( 2C_3C ) ) | |
| 176 | PORT_DIPSETTING( 0xe0, DEF_STR( 1C_2C ) ) | |
| 177 | PORT_DIPSETTING( 0x60, DEF_STR( 2C_5C ) ) | |
| 178 | PORT_DIPSETTING( 0xd0, DEF_STR( 1C_3C ) ) | |
| 179 | PORT_DIPSETTING( 0xc0, DEF_STR( 1C_4C ) ) | |
| 180 | PORT_DIPSETTING( 0xb0, DEF_STR( 1C_5C ) ) | |
| 181 | PORT_DIPSETTING( 0xa0, DEF_STR( 1C_6C ) ) | |
| 182 | PORT_DIPSETTING( 0x90, DEF_STR( 1C_7C ) ) | |
| 183 | PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) | |
| 150 | KONAMI_COINAGE(DEF_STR( Free_Play ), DEF_STR( Free_Play )) | |
| 184 | 151 | |
| 185 | 152 | PORT_START("DSW2") |
| 186 | 153 | PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) ) |
| r4470 | r4471 | |
| 222 | 189 | PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 223 | 190 | |
| 224 | 191 | PORT_START("P1") |
| 225 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) | |
| 226 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) | |
| 227 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) | |
| 228 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) | |
| 229 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) | |
| 230 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) | |
| 231 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 232 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 ) | |
| 192 | KONAMI8_B12_START(1) | |
| 233 | 193 | |
| 234 | 194 | PORT_START("P2") |
| 235 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) | |
| 236 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) | |
| 237 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) | |
| 238 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) | |
| 239 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) | |
| 240 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) | |
| 241 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 242 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 ) | |
| 195 | KONAMI8_B12_START(2) | |
| 243 | 196 | |
| 244 | 197 | PORT_START("SYSTEM") |
| 245 | 198 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) |
| r4470 | r4471 | |
|---|---|---|
| 15 | 15 | #include "cpu/z80/z80.h" |
| 16 | 16 | #include "video/konamiic.h" |
| 17 | 17 | #include "sound/3812intf.h" |
| 18 | #include "konamipt.h" | |
| 18 | 19 | |
| 19 | 20 | /* from video */ |
| 20 | 21 | WRITE8_HANDLER( battlnts_spritebank_w ); |
| r4470 | r4471 | |
| 84 | 85 | |
| 85 | 86 | static INPUT_PORTS_START( battlnts ) |
| 86 | 87 | PORT_START("DSW1") |
| 87 | PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW1:1,2,3,4") | |
| 88 | PORT_DIPSETTING( 0x02, DEF_STR( 4C_1C ) ) | |
| 89 | PORT_DIPSETTING( 0x05, DEF_STR( 3C_1C ) ) | |
| 90 | PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) ) | |
| 91 | PORT_DIPSETTING( 0x04, DEF_STR( 3C_2C ) ) | |
| 92 | PORT_DIPSETTING( 0x01, DEF_STR( 4C_3C ) ) | |
| 93 | PORT_DIPSETTING( 0x0f, DEF_STR( 1C_1C ) ) | |
| 94 | PORT_DIPSETTING( 0x03, DEF_STR( 3C_4C ) ) | |
| 95 | PORT_DIPSETTING( 0x07, DEF_STR( 2C_3C ) ) | |
| 96 | PORT_DIPSETTING( 0x0e, DEF_STR( 1C_2C ) ) | |
| 97 | PORT_DIPSETTING( 0x06, DEF_STR( 2C_5C ) ) | |
| 98 | PORT_DIPSETTING( 0x0d, DEF_STR( 1C_3C ) ) | |
| 99 | PORT_DIPSETTING( 0x0c, DEF_STR( 1C_4C ) ) | |
| 100 | PORT_DIPSETTING( 0x0b, DEF_STR( 1C_5C ) ) | |
| 101 | PORT_DIPSETTING( 0x0a, DEF_STR( 1C_6C ) ) | |
| 102 | PORT_DIPSETTING( 0x09, DEF_STR( 1C_7C ) ) | |
| 103 | PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) | |
| 104 | PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW1:5,6,7,8") | |
| 105 | PORT_DIPSETTING( 0x20, DEF_STR( 4C_1C ) ) | |
| 106 | PORT_DIPSETTING( 0x50, DEF_STR( 3C_1C ) ) | |
| 107 | PORT_DIPSETTING( 0x80, DEF_STR( 2C_1C ) ) | |
| 108 | PORT_DIPSETTING( 0x40, DEF_STR( 3C_2C ) ) | |
| 109 | PORT_DIPSETTING( 0x10, DEF_STR( 4C_3C ) ) | |
| 110 | PORT_DIPSETTING( 0xf0, DEF_STR( 1C_1C ) ) | |
| 111 | PORT_DIPSETTING( 0x30, DEF_STR( 3C_4C ) ) | |
| 112 | PORT_DIPSETTING( 0x70, DEF_STR( 2C_3C ) ) | |
| 113 | PORT_DIPSETTING( 0xe0, DEF_STR( 1C_2C ) ) | |
| 114 | PORT_DIPSETTING( 0x60, DEF_STR( 2C_5C ) ) | |
| 115 | PORT_DIPSETTING( 0xd0, DEF_STR( 1C_3C ) ) | |
| 116 | PORT_DIPSETTING( 0xc0, DEF_STR( 1C_4C ) ) | |
| 117 | PORT_DIPSETTING( 0xb0, DEF_STR( 1C_5C ) ) | |
| 118 | PORT_DIPSETTING( 0xa0, DEF_STR( 1C_6C ) ) | |
| 119 | PORT_DIPSETTING( 0x90, DEF_STR( 1C_7C ) ) | |
| 120 | // PORT_DIPSETTING( 0x00, "Invalid" ) | |
| 88 | KONAMI_COINAGE_LOC(DEF_STR( Free_Play ), "No Coin B", SW1) | |
| 89 | /* "No Coin B" = coins produce sound, but no effect on coin counter */ | |
| 121 | 90 | |
| 122 | 91 | PORT_START("DSW2") |
| 123 | 92 | PORT_DIPNAME( 0x03, 0x02, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW2:1,2") |
| r4470 | r4471 | |
| 143 | 112 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 144 | 113 | |
| 145 | 114 | PORT_START("DSW3") |
| 146 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) | |
| 147 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) | |
| 148 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 ) | |
| 149 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) | |
| 150 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 ) | |
| 115 | KONAMI8_SYSTEM_10 | |
| 151 | 116 | PORT_DIPNAME( 0x20, 0x20, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW3:1") |
| 152 | 117 | PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) |
| 153 | 118 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| r4470 | r4471 | |
| 157 | 122 | PORT_SERVICE_DIPLOC(0x80, IP_ACTIVE_LOW, "SW3:3" ) |
| 158 | 123 | |
| 159 | 124 | PORT_START("P1") |
| 160 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) | |
| 161 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) | |
| 162 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) | |
| 163 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) | |
| 164 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) | |
| 165 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 166 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 125 | KONAMI8_B1(1) | |
| 167 | 126 | PORT_DIPNAME( 0x80, 0x80, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SW3:4") |
| 168 | 127 | PORT_DIPSETTING( 0x80, "3 Times" ) |
| 169 | 128 | PORT_DIPSETTING( 0x00, "5 Times" ) |
| 170 | 129 | |
| 171 | 130 | PORT_START("P2") |
| 172 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) | |
| 173 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) | |
| 174 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) | |
| 175 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) | |
| 176 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) | |
| 177 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED ) | |
| 178 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) | |
| 179 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) | |
| 131 | KONAMI8_B1_UNK(2) | |
| 180 | 132 | INPUT_PORTS_END |
| 181 | 133 | |
| 182 | 134 | static INPUT_PORTS_START( thehustj ) |
| r4470 | r4471 | |
| 198 | 150 | PORT_DIPUNUSED_DIPLOC( 0x40, 0x40, "SW3:2" ) |
| 199 | 151 | |
| 200 | 152 | PORT_MODIFY("P1") |
| 201 | | |
| 153 | KON | |
| 202 | 154 | PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "SW3:4" ) |
| 203 | 155 | |
| 204 | 156 | PORT_MODIFY("P2") |
| 205 | | |
| 157 | KON | |
| 206 | 158 | INPUT_PORTS_END |
| 207 | 159 | |
| 208 | 160 | |
| r4470 | r4471 | |
| 397 | 349 | GAME( 1987, rackemup, 0, battlnts, thehustj, rackemup, ROT90, "Konami", "Rack 'em Up", GAME_NO_COCKTAIL ) |
| 398 | 350 | GAME( 1987, thehustl, rackemup, battlnts, thehustj, 0, ROT90, "Konami", "The Hustler (Japan version M)", GAME_NO_COCKTAIL ) |
| 399 | 351 | GAME( 1987, thehustj, rackemup, battlnts, thehustj, 0, ROT90, "Konami", "The Hustler (Japan version J)", GAME_NO_COCKTAIL ) |
| 400 |
| r4470 | r4471 | |
|---|---|---|
| 438 | 438 | AM_RANGE(0x106000, 0x106fff) AM_READ(SMH_RAM) AM_WRITE(SMH_RAM) AM_BASE(&deco16_pf2_rowscroll) |
| 439 | 439 | |
| 440 | 440 | /* protection */ |
| 441 | // AM_RANGE(0x280104, 0x280105) AM_WRITE | |
| 441 | // AM_RANGE(0x280104, 0x280105) AM_WRITE | |
| 442 | 442 | // AM_RANGE(0x2800ac, 0x2800ad) AM_READ_PORT("DSW") // dips |
| 443 | 443 | // AM_RANGE(0x280298, 0x280299) AM_READ_PORT("SYSTEM") // vbl |
| 444 | 444 | // AM_RANGE(0x280506, 0x280507) AM_READ_PORT("UNK") |
| 445 | 445 | // AM_RANGE(0x2802B4, 0x2802B5) AM_READ_PORT("P1_P2") // inverted? |
| 446 | // AM_RANGE(0x280330, 0x280331) AM_READ(SMH_NOP) // sound? | |
| 447 | // AM_RANGE(0x280380, 0x280381) AM_WRITE(SMH_NOP) // sound | |
| 446 | // AM_RANGE(0x280330, 0x280331) AM_READNOP // sound? | |
| 447 | // AM_RANGE(0x280380, 0x280381) AM_WRITENOP // sound | |
| 448 | 448 | |
| 449 | 449 | AM_RANGE(0x280000, 0x2807ff) AM_READWRITE(dlbewing_prot_r,dblewing_prot_w) |
| 450 | 450 |
| r4470 | r4471 | |
|---|---|---|
| 13 | 13 | #include "cpu/hd6309/hd6309.h" |
| 14 | 14 | #include "video/konamiic.h" |
| 15 | 15 | #include "sound/2203intf.h" |
| 16 | #include "konamipt.h" | |
| 16 | 17 | |
| 17 | ||
| 18 | 18 | /* from video/labyrunr.c */ |
| 19 | 19 | extern UINT8 *labyrunr_videoram1,*labyrunr_videoram2,*labyrunr_scrollram; |
| 20 | 20 | PALETTE_INIT( labyrunr ); |
| r4470 | r4471 | |
| 83 | 83 | ***************************************************************************/ |
| 84 | 84 | |
| 85 | 85 | static INPUT_PORTS_START( labyrunr ) |
| 86 | PORT_START("SYSTEM") | |
| 87 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) | |
| 88 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) | |
| 89 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 ) | |
| 90 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 91 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 92 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 93 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 94 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 95 | ||
| 96 | PORT_START("P1") | |
| 97 | KONAMI8_MONO_B12_START | |
| 98 | ||
| 99 | PORT_START("P2") | |
| 100 | KONAMI8_COCKTAIL_B12_START | |
| 101 | ||
| 86 | 102 | PORT_START("DSW1") |
| 87 | PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) ) | |
| 88 | PORT_DIPSETTING( 0x02, DEF_STR( 4C_1C ) ) | |
| 89 | PORT_DIPSETTING( 0x05, DEF_STR( 3C_1C ) ) | |
| 90 | PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) ) | |
| 91 | PORT_DIPSETTING( 0x04, DEF_STR( 3C_2C ) ) | |
| 92 | PORT_DIPSETTING( 0x01, DEF_STR( 4C_3C ) ) | |
| 93 | PORT_DIPSETTING( 0x0f, DEF_STR( 1C_1C ) ) | |
| 94 | PORT_DIPSETTING( 0x03, DEF_STR( 3C_4C ) ) | |
| 95 | PORT_DIPSETTING( 0x07, DEF_STR( 2C_3C ) ) | |
| 96 | PORT_DIPSETTING( 0x0e, DEF_STR( 1C_2C ) ) | |
| 97 | PORT_DIPSETTING( 0x06, DEF_STR( 2C_5C ) ) | |
| 98 | PORT_DIPSETTING( 0x0d, DEF_STR( 1C_3C ) ) | |
| 99 | PORT_DIPSETTING( 0x0c, DEF_STR( 1C_4C ) ) | |
| 100 | PORT_DIPSETTING( 0x0b, DEF_STR( 1C_5C ) ) | |
| 101 | PORT_DIPSETTING( 0x0a, DEF_STR( 1C_6C ) ) | |
| 102 | PORT_DIPSETTING( 0x09, DEF_STR( 1C_7C ) ) | |
| 103 | PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) | |
| 104 | PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) ) | |
| 105 | PORT_DIPSETTING( 0x20, DEF_STR( 4C_1C ) ) | |
| 106 | PORT_DIPSETTING( 0x50, DEF_STR( 3C_1C ) ) | |
| 107 | PORT_DIPSETTING( 0x80, DEF_STR( 2C_1C ) ) | |
| 108 | PORT_DIPSETTING( 0x40, DEF_STR( 3C_2C ) ) | |
| 109 | PORT_DIPSETTING( 0x10, DEF_STR( 4C_3C ) ) | |
| 110 | PORT_DIPSETTING( 0xf0, DEF_STR( 1C_1C ) ) | |
| 111 | PORT_DIPSETTING( 0x30, DEF_STR( 3C_4C ) ) | |
| 112 | PORT_DIPSETTING( 0x70, DEF_STR( 2C_3C ) ) | |
| 113 | PORT_DIPSETTING( 0xe0, DEF_STR( 1C_2C ) ) | |
| 114 | PORT_DIPSETTING( 0x60, DEF_STR( 2C_5C ) ) | |
| 115 | PORT_DIPSETTING( 0xd0, DEF_STR( 1C_3C ) ) | |
| 116 | PORT_DIPSETTING( 0xc0, DEF_STR( 1C_4C ) ) | |
| 117 | PORT_DIPSETTING( 0xb0, DEF_STR( 1C_5C ) ) | |
| 118 | PORT_DIPSETTING( 0xa0, DEF_STR( 1C_6C ) ) | |
| 119 | PORT_DIPSETTING( 0x90, DEF_STR( 1C_7C ) ) | |
| 120 | // PORT_DIPSETTING( 0x00, "Invalid" ) | |
| 103 | KONAMI_COINAGE(DEF_STR( Free_Play ), DEF_STR( None )) | |
| 104 | /* "None" = coin slot B disabled */ | |
| 121 | 105 | |
| 122 | 106 | PORT_START("DSW2") |
| 123 | 107 | PORT_DIPNAME( 0x03, 0x02, DEF_STR( Lives ) ) |
| r4470 | r4471 | |
| 154 | 138 | PORT_DIPSETTING( 0x08, "3" ) |
| 155 | 139 | PORT_DIPSETTING( 0x00, "5" ) |
| 156 | 140 | PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 157 | ||
| 158 | PORT_START("SYSTEM") | |
| 159 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) | |
| 160 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) | |
| 161 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 ) | |
| 162 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 163 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 164 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 165 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 166 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 167 | ||
| 168 | PORT_START("P1") | |
| 169 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY | |
| 170 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY | |
| 171 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY | |
| 172 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY | |
| 173 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) | |
| 174 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) | |
| 175 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 176 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 ) | |
| 177 | ||
| 178 | PORT_START("P2") | |
| 179 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL | |
| 180 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL | |
| 181 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL | |
| 182 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL | |
| 183 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL | |
| 184 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL | |
| 185 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 186 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 ) | |
| 187 | 141 | INPUT_PORTS_END |
| 188 | 142 | |
| 189 | 143 |
| r4470 | r4471 | |
|---|---|---|
| 874 | 874 | PORT_BIT( 0x0f, IP_ACTIVE_HIGH, IPT_UNUSED ) |
| 875 | 875 | |
| 876 | 876 | PORT_START("DSW") |
| 877 | PORT_DIPNAME( 0x80, 0x00, "Test Mode" ) | |
| 877 | PORT_DIPNAME( 0x80, 0x00, "Test Mode" ) PORT_DIPLOCATION("SW:1") | |
| 878 | 878 | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 879 | 879 | PORT_DIPSETTING( 0x80, DEF_STR( On ) ) |
| 880 | PORT_DIPNAME( 0x40, 0x40, "Screen Flip (H)" ) | |
| 880 | PORT_DIPNAME( 0x40, 0x40, "Screen Flip (H)" ) PORT_DIPLOCATION("SW:2") | |
| 881 | 881 | PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) |
| 882 | 882 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 883 | PORT_DIPNAME( 0x20, 0x20, "Screen Flip (V)" ) | |
| 883 | PORT_DIPNAME( 0x20, 0x20, "Screen Flip (V)" ) PORT_DIPLOCATION("SW:3") | |
| 884 | 884 | PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) |
| 885 | 885 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 886 | PORT_DIPNAME( 0x10, 0x10, "DIP4" ) | |
| 886 | PORT_DIPNAME( 0x10, 0x10, "DIP4" ) PORT_DIPLOCATION("SW:4") | |
| 887 | 887 | PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) |
| 888 | 888 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 889 | PORT_DIPNAME( 0x08, 0x08, "DIP5" ) | |
| 889 | PORT_DIPNAME( 0x08, 0x08, "DIP5" ) PORT_DIPLOCATION("SW:5") | |
| 890 | 890 | PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) |
| 891 | 891 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 892 | PORT_DIPNAME( 0x04, 0x00, "Harness" ) | |
| 892 | PORT_DIPNAME( 0x04, 0x00, "Harness" ) PORT_DIPLOCATION("SW:6") | |
| 893 | 893 | PORT_DIPSETTING( 0x04, "JVS" ) |
| 894 | 894 | PORT_DIPSETTING( 0x00, "JAMMA" ) |
| 895 | PORT_DIPNAME( 0x02, 0x02, "DIP7" ) | |
| 895 | PORT_DIPNAME( 0x02, 0x02, "DIP7" ) PORT_DIPLOCATION("SW:7") | |
| 896 | 896 | PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) |
| 897 | 897 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 898 | PORT_DIPNAME( 0x01, 0x01, "Monitor Type" ) | |
| 898 | PORT_DIPNAME( 0x01, 0x01, "Monitor Type" ) PORT_DIPLOCATION("SW:8") | |
| 899 | 899 | PORT_DIPSETTING( 0x01, "24KHz" ) |
| 900 | 900 | PORT_DIPSETTING( 0x00, "15KHz" ) |
| 901 | 901 | INPUT_PORTS_END |
| r4470 | r4471 | |
| 921 | 921 | PORT_BIT( 0x0f, IP_ACTIVE_HIGH, IPT_UNUSED ) |
| 922 | 922 | |
| 923 | 923 | PORT_START("DSW") |
| 924 | PORT_DIPNAME( 0x80, 0x00, "Test Mode" ) | |
| 924 | PORT_DIPNAME( 0x80, 0x00, "Test Mode" ) PORT_DIPLOCATION("SW:1") | |
| 925 | 925 | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 926 | 926 | PORT_DIPSETTING( 0x80, DEF_STR( On ) ) |
| 927 | PORT_DIPNAME( 0x40, 0x40, "Screen Flip (H)" ) | |
| 927 | PORT_DIPNAME( 0x40, 0x40, "Screen Flip (H)" ) PORT_DIPLOCATION("SW:2") | |
| 928 | 928 | PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) |
| 929 | 929 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 930 | PORT_DIPNAME( 0x20, 0x20, "Screen Flip (V)" ) | |
| 930 | PORT_DIPNAME( 0x20, 0x20, "Screen Flip (V)" ) PORT_DIPLOCATION("SW:3") | |
| 931 | 931 | PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) |
| 932 | 932 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 933 | PORT_DIPNAME( 0x10, 0x10, "DIP4" ) | |
| 933 | PORT_DIPNAME( 0x10, 0x10, "DIP4" ) PORT_DIPLOCATION("SW:4") | |
| 934 | 934 | PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) |
| 935 | 935 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 936 | PORT_DIPNAME( 0x08, 0x08, "DIP5" ) | |
| 936 | PORT_DIPNAME( 0x08, 0x08, "DIP5" ) PORT_DIPLOCATION("SW:5") | |
| 937 | 937 | PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) |
| 938 | 938 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 939 | PORT_DIPNAME( 0x04, 0x00, "Harness" ) | |
| 939 | PORT_DIPNAME( 0x04, 0x00, "Harness" ) PORT_DIPLOCATION("SW:6") | |
| 940 | 940 | PORT_DIPSETTING( 0x04, "JVS" ) |
| 941 | 941 | PORT_DIPSETTING( 0x00, "JAMMA" ) |
| 942 | PORT_DIPNAME( 0x02, 0x02, "DIP7" ) | |
| 942 | PORT_DIPNAME( 0x02, 0x02, "DIP7" ) PORT_DIPLOCATION("SW:7") | |
| 943 | 943 | PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) |
| 944 | 944 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 945 | PORT_DIPNAME( 0x01, 0x01, "Monitor Type" ) | |
| 945 | PORT_DIPNAME( 0x01, 0x01, "Monitor Type" ) PORT_DIPLOCATION("SW:8") | |
| 946 | 946 | PORT_DIPSETTING( 0x01, "24KHz" ) |
| 947 | 947 | PORT_DIPSETTING( 0x00, "15KHz" ) |
| 948 | 948 | INPUT_PORTS_END |
| r4470 | r4471 | |
|---|---|---|
| 188 | 188 | |
| 189 | 189 | static ADDRESS_MAP_START( io_map, ADDRESS_SPACE_IO, 8 ) |
| 190 | 190 | ADDRESS_MAP_GLOBAL_MASK(0xff) |
| 191 | AM_RANGE(0x00, 0x00) AM_WRITE | |
| 191 | AM_RANGE(0x00, 0x00) AM_WRITE | |
| 192 | 192 | AM_RANGE(0x10, 0x10) AM_WRITE(thief_video_control_w) |
| 193 | 193 | AM_RANGE(0x30, 0x30) AM_WRITE(thief_input_select_w) /* 8255 */ |
| 194 | 194 | AM_RANGE(0x31, 0x31) AM_READ(thief_io_r) /* 8255 */ |
| r4470 | r4471 | |
|---|---|---|
| 990 | 990 | * |
| 991 | 991 | *************************************/ |
| 992 | 992 | |
| 993 | GAME( 1990, ddragon3, 0, ddragon3, ddragon3, 0, ROT0, "Technos", "Double Dragon 3 - The Rosetta Stone (US)", GAME_SUPPORTS_SAVE ) | |
| 994 | GAME( 1990, ddrago3j, ddragon3, ddragon3, ddragon3, 0, ROT0, "Technos", "Double Dragon 3 - The Rosetta Stone (Japan)", GAME_SUPPORTS_SAVE ) | |
| 995 | GAME( 1990, ddrago3p, ddragon3, ddragon3, ddragon3, 0, ROT0, "Technos", "Double Dragon 3 - The Rosetta Stone (prototype)", GAME_SUPPORTS_SAVE ) | |
| 993 | GAME( 1990, ddragon3, 0, ddragon3, ddragon3, 0, ROT0, "Technos Japan", "Double Dragon 3 - The Rosetta Stone (US)", GAME_SUPPORTS_SAVE ) | |
| 994 | GAME( 1990, ddrago3j, ddragon3, ddragon3, ddragon3, 0, ROT0, "Technos Japan", "Double Dragon 3 - The Rosetta Stone (Japan)", GAME_SUPPORTS_SAVE ) | |
| 995 | GAME( 1990, ddrago3p, ddragon3, ddragon3, ddragon3, 0, ROT0, "Technos Japan", "Double Dragon 3 - The Rosetta Stone (prototype)", GAME_SUPPORTS_SAVE ) | |
| 996 | 996 | GAME( 1990, ddrago3b, ddragon3, ddrago3b, ddrago3b, 0, ROT0, "bootleg", "Double Dragon 3 - The Rosetta Stone (bootleg)", GAME_SUPPORTS_SAVE ) |
| 997 | GAME( 1990, ctribe, 0, ctribe, ctribe, 0, ROT0, "Technos", "The Combatribes (US)", GAME_SUPPORTS_SAVE ) | |
| 998 | GAME( 1990, ctribe1, ctribe, ctribe, ctribe, 0, ROT0, "Technos", "The Combatribes (US Set 1?)", GAME_SUPPORTS_SAVE ) | |
| 997 | GAME( 1990, ctribe, 0, ctribe, ctribe, 0, ROT0, "Technos Japan", "The Combatribes (US)", GAME_SUPPORTS_SAVE ) | |
| 998 | GAME( 1990, ctribe1, ctribe, ctribe, ctribe, 0, ROT0, "Technos Japan", "The Combatribes (US Set 1?)", GAME_SUPPORTS_SAVE ) | |
| 999 | 999 | GAME( 1990, ctribeb, ctribe, ctribe, ctribeb, 0, ROT0, "bootleg", "The Combatribes (bootleg Set 1)", GAME_SUPPORTS_SAVE ) |
| 1000 | 1000 | GAME( 1990, ctribb2, ctribe, ctribe, ctribeb, 0, ROT0, "bootleg", "The Combatribes (bootleg Set 2)", GAME_SUPPORTS_SAVE ) |
| r4470 | r4471 | |
|---|---|---|
| 258 | 258 | AM_RANGE(0x0c00, 0x0fff) AM_READ(sprint2_sync_r) |
| 259 | 259 | AM_RANGE(0x1000, 0x13ff) AM_READ(sprint2_collision1_r) |
| 260 | 260 | AM_RANGE(0x1400, 0x17ff) AM_READ(sprint2_collision2_r) |
| 261 | AM_RANGE(0x1800, 0x1800) AM_READ | |
| 261 | AM_RANGE(0x1800, 0x1800) AM_READ | |
| 262 | 262 | AM_RANGE(0x2000, 0x3fff) AM_READ(SMH_ROM) |
| 263 | 263 | AM_RANGE(0xe000, 0xffff) AM_READ(SMH_ROM) |
| 264 | 264 | ADDRESS_MAP_END |
| r4470 | r4471 | |
| 272 | 272 | AM_RANGE(0x0c20, 0x0c2f) AM_DEVWRITE("discrete", sprint2_skid2_w) |
| 273 | 273 | AM_RANGE(0x0c30, 0x0c3f) AM_WRITE(sprint2_lamp1_w) |
| 274 | 274 | AM_RANGE(0x0c40, 0x0c4f) AM_WRITE(sprint2_lamp2_w) |
| 275 | AM_RANGE(0x0c60, 0x0c6f) AM_WRITE | |
| 275 | AM_RANGE(0x0c60, 0x0c6f) AM_WRITE | |
| 276 | 276 | AM_RANGE(0x0c80, 0x0cff) AM_WRITE(watchdog_reset_w) |
| 277 | 277 | AM_RANGE(0x0d00, 0x0d7f) AM_WRITE(sprint2_collision_reset1_w) |
| 278 | 278 | AM_RANGE(0x0d80, 0x0dff) AM_WRITE(sprint2_collision_reset2_w) |
| r4470 | r4471 | |
|---|---|---|
| 67 | 67 | AM_RANGE(0xc200, 0xc3ff) AM_BASE(&spriteram) AM_SIZE(&spriteram_size) |
| 68 | 68 | AM_RANGE(0xc400, 0xc7ff) AM_BASE(&videoram) AM_SIZE(&videoram_size) |
| 69 | 69 | AM_RANGE(0xc800, 0xc800) AM_READ_PORT("DSW1") |
| 70 | AM_RANGE(0xcc00, 0xcc03) AM_WRITE | |
| 70 | AM_RANGE(0xcc00, 0xcc03) AM_WRITE | |
| 71 | 71 | AM_RANGE(0xcc04, 0xcc04) AM_WRITE(flip_screen_w) |
| 72 | 72 | AM_RANGE(0xcc05, 0xcc05) AM_WRITE(SMH_RAM) AM_BASE(&ambush_colorbank) |
| 73 | 73 | AM_RANGE(0xcc07, 0xcc07) AM_WRITE(ambush_coin_counter_w) |
| r4470 | r4471 | |
|---|---|---|
| 162 | 162 | AM_RANGE(0xa0, 0xa0) AM_WRITE(tecfri_scroll_bg_w) |
| 163 | 163 | AM_RANGE(0xa1, 0xa1) AM_WRITE(sauro_scroll_fg_w) |
| 164 | 164 | AM_RANGE(0xc0, 0xc0) AM_WRITE(flip_screen_w) |
| 165 | AM_RANGE(0xc2, 0xc2) AM_WRITE | |
| 165 | AM_RANGE(0xc2, 0xc2) AM_WRITE | |
| 166 | 166 | AM_RANGE(0xc3, 0xc3) AM_WRITE(sauro_coin1_w) |
| 167 | AM_RANGE(0xc4, 0xc4) AM_WRITE | |
| 167 | AM_RANGE(0xc4, 0xc4) AM_WRITE | |
| 168 | 168 | AM_RANGE(0xc5, 0xc5) AM_WRITE(sauro_coin2_w) |
| 169 | AM_RANGE(0xc6, 0xc7) AM_WRITE(SMH_NOP) /* same as 0x80 - verified with debugger */ | |
| 170 | AM_RANGE(0xc8, 0xc8) AM_WRITE(SMH_NOP) /* written every int: 0 written at end of isr */ | |
| 171 | AM_RANGE(0xc9, 0xc9) AM_WRITE(SMH_NOP) /* written every int: 1 written at start of isr */ | |
| 169 | AM_RANGE(0xc6, 0xc7) AM_WRITENOP /* same as 0x80 - verified with debugger */ | |
| 170 | AM_RANGE(0xc8, 0xc8) AM_WRITENOP /* written every int: 0 written at end of isr */ | |
| 171 | AM_RANGE(0xc9, 0xc9) AM_WRITENOP /* written every int: 1 written at start of isr */ | |
| 172 | 172 | AM_RANGE(0xca, 0xcb) AM_WRITE(sauro_palette_bank_w) /* 1 written upon death, cleared 2 vblanks later */ |
| 173 | 173 | /* Sequence 3,2,1 written during intro screen */ |
| 174 | AM_RANGE(0xcc, 0xcc) AM_WRITE(SMH_NOP) /* same as 0xca */ | |
| 175 | AM_RANGE(0xcd, 0xcd) AM_WRITE(SMH_NOP) /* same as 0xcb */ | |
| 176 | AM_RANGE(0xce, 0xce) AM_WRITE(SMH_NOP) /* only written at startup */ | |
| 174 | AM_RANGE(0xcc, 0xcc) AM_WRITENOP /* same as 0xca */ | |
| 175 | AM_RANGE(0xcd, 0xcd) AM_WRITENOP /* same as 0xcb */ | |
| 176 | AM_RANGE(0xce, 0xce) AM_WRITENOP /* only written at startup */ | |
| 177 | 177 | AM_RANGE(0xe0, 0xe0) AM_WRITE(watchdog_reset_w) |
| 178 | 178 | ADDRESS_MAP_END |
| 179 | 179 | |
| r4470 | r4471 | |
| 187 | 187 | AM_RANGE(0x8000, 0x87ff) AM_WRITE(SMH_RAM) |
| 188 | 188 | AM_RANGE(0xc000, 0xc001) AM_DEVWRITE("ym", ym3812_w) |
| 189 | 189 | AM_RANGE(0xa000, 0xa000) AM_DEVWRITE("speech", adpcm_w) |
| 190 | AM_RANGE(0xe000, 0xe006) AM_WRITE(SMH_NOP) /* echo from write to e0000 */ | |
| 191 | AM_RANGE(0xe00e, 0xe00f) AM_WRITE(SMH_NOP) | |
| 190 | AM_RANGE(0xe000, 0xe006) AM_WRITENOP /* echo from write to e0000 */ | |
| 191 | AM_RANGE(0xe00e, 0xe00f) AM_WRITENOP | |
| 192 | 192 | ADDRESS_MAP_END |
| 193 | 193 | |
| 194 | 194 | static ADDRESS_MAP_START( trckydoc_readmem, ADDRESS_SPACE_PROGRAM, 8 ) |
| r4470 | r4471 | |
| 210 | 210 | AM_RANGE(0xf400, 0xf7ff) AM_WRITE(tecfri_colorram_w) AM_BASE(&tecfri_colorram) |
| 211 | 211 | AM_RANGE(0xf820, 0xf821) AM_DEVWRITE("ym", ym3812_w) |
| 212 | 212 | AM_RANGE(0xf830, 0xf830) AM_WRITE(tecfri_scroll_bg_w) |
| 213 | AM_RANGE(0xf838, 0xf838) AM_WRITE | |
| 213 | AM_RANGE(0xf838, 0xf838) AM_WRITE | |
| 214 | 214 | AM_RANGE(0xf839, 0xf839) AM_WRITE(flip_screen_w) |
| 215 | 215 | AM_RANGE(0xf83a, 0xf83a) AM_WRITE(sauro_coin1_w) |
| 216 | 216 | AM_RANGE(0xf83b, 0xf83b) AM_WRITE(sauro_coin2_w) |
| 217 | 217 | AM_RANGE(0xf83c, 0xf83c) AM_WRITE(watchdog_reset_w) |
| 218 | AM_RANGE(0xf83f, 0xf83f) AM_WRITE | |
| 218 | AM_RANGE(0xf83f, 0xf83f) AM_WRITE | |
| 219 | 219 | ADDRESS_MAP_END |
| 220 | 220 | |
| 221 | 221 | static INPUT_PORTS_START( tecfri ) |
| r4470 | r4471 | |
|---|---|---|
| 342 | 342 | static ADDRESS_MAP_START( writemem_cpu2, ADDRESS_SPACE_PROGRAM, 8 ) |
| 343 | 343 | AM_RANGE(0x0000, 0x07ff) AM_WRITE(gaplus_videoram_w) /* tilemap RAM (shared with CPU #1) */ |
| 344 | 344 | AM_RANGE(0x0800, 0x1fff) AM_WRITE(gaplus_spriteram_w) /* shared RAM with CPU #1 */ |
| 345 | // AM_RANGE(0x500f, 0x500f) AM_WRITE | |
| 345 | // AM_RANGE(0x500f, 0x500f) AM_WRITE | |
| 346 | 346 | AM_RANGE(0x6000, 0x6fff) AM_WRITE(gaplus_irq_2_ctrl_w) /* IRQ 2 control */ |
| 347 | 347 | AM_RANGE(0xa000, 0xffff) AM_WRITE(SMH_ROM) /* ROM */ |
| 348 | 348 | ADDRESS_MAP_END |
| r4470 | r4471 | |
|---|---|---|
| 184 | 184 | static ADDRESS_MAP_START( speedatk_io, ADDRESS_SPACE_IO, 8 ) |
| 185 | 185 | ADDRESS_MAP_GLOBAL_MASK(0xff) |
| 186 | 186 | AM_RANGE(0x00, 0x01) AM_WRITE(speedatk_videoregs_w) // HD46505SP video registers |
| 187 | AM_RANGE(0x24, 0x24) AM_WRITE | |
| 187 | AM_RANGE(0x24, 0x24) AM_WRITE | |
| 188 | 188 | AM_RANGE(0x40, 0x40) AM_READ_PORT("DSW") /* likely ay8910 input port, not direct */ |
| 189 | 189 | AM_RANGE(0x40, 0x41) AM_DEVWRITE("ay", ay8910_address_data_w) |
| 190 | 190 | /*Used only during attract mode,unknown meaning.*/ |
| 191 | 191 | AM_RANGE(0x60, 0x60) AM_READWRITE(SMH_NOP,SMH_NOP)//write the result to $62/$65 |
| 192 | AM_RANGE(0x61, 0x61) AM_READ(SMH_NOP)//write the result to $66 | |
| 193 | AM_RANGE(0x62, 0x62) AM_WRITE(SMH_NOP) | |
| 194 | AM_RANGE(0x65, 0x65) AM_WRITE(SMH_NOP) | |
| 195 | AM_RANGE(0x66, 0x66) AM_WRITE(SMH_NOP) | |
| 196 | AM_RANGE(0x68, 0x68) AM_READ(SMH_NOP)//bit 7 controls writings to ram address at $880f-$8810 | |
| 192 | AM_RANGE(0x61, 0x61) AM_READNOP//write the result to $66 | |
| 193 | AM_RANGE(0x62, 0x62) AM_WRITENOP | |
| 194 | AM_RANGE(0x65, 0x65) AM_WRITENOP | |
| 195 | AM_RANGE(0x66, 0x66) AM_WRITENOP | |
| 196 | AM_RANGE(0x68, 0x68) AM_READNOP//bit 7 controls writings to ram address at $880f-$8810 | |
| 197 | 197 | ADDRESS_MAP_END |
| 198 | 198 | |
| 199 | 199 | static INPUT_PORTS_START( speedatk ) |
| r4470 | r4471 | |
|---|---|---|
| 5 | 5 | driver by Jarek Parchanski, Nicola Salmoria, Mirko Buffoni |
| 6 | 6 | |
| 7 | 7 | |
| 8 | Issues: | |
| 9 | * pitfall2 - missing title | |
| 10 | ||
| 11 | ||
| 8 | 12 | Up'n Down, Mister Viking, Flicky, SWAT, Water Match and Bull Fight are known |
| 9 | 13 | to run on IDENTICAL hardware (they were sold by Bally-Midway as ROM swaps). |
| 10 | 14 | |
| 11 | 15 | DIP locations verified from manual for: |
| 12 | 16 | - wboy |
| 13 | - chplft | |
| 17 | - choplift | |
| 14 | 18 | |
| 15 | TODO: - background is misplaced in wbmlju | |
| 16 | - sprites stick in Pitfall II | |
| 17 | - sprite priorities are probably wrong | |
| 18 | - remove patch in nobb if possible and fully understand the | |
| 19 | TODO: - remove patch in nobb if possible and fully understand the | |
| 19 | 20 | ports involved in the protection |
| 20 | 21 | |
| 22 | ******************************************************************************* | |
| 23 | ||
| 24 | Main Snd Gfx1 Gfx2 Max Min | |
| 25 | Game ROMs ROMs ROMs ROMs Pal? Intf EPR# EPR# | |
| 26 | ----------- ----- ----- ----- ----- ---- ---- ---- ---- | |
| 27 | starjack 6x8k 1x8k 6x8k 2x16k no ppi 5325(b) 5318 | |
| 28 | starjacks 6x8k 1x8k 6x8k 2x16k no ppi license | |
| 29 | ||
| 30 | upndown 6x8k 1x8k 6x8k 2x16k no ppi 5521 5514 | |
| 31 | upndownu 6x8k 1x8k 6x8k 2x16k no ppi 5684 | |
| 32 | ||
| 33 | regulus 6x8k 1x8k 6x8k 2x16k no ppi 5645(a) 5638 | |
| 34 | reguluso 6x8k 1x8k 6x8k 2x16k no ppi 5645 | |
| 35 | regulusu 6x8k 1x8k 6x8k 2x16k no ppi 5955 | |
| 36 | ||
| 37 | mrviking 6x8k 1x8k 6x8k 2x16k no ppi 5876 5749 | |
| 38 | mrvikingj 6x8k 1x8k 6x8k 2x16k no ppi 5756 | |
| 39 | ||
| 40 | swat 6x8k 1x8k 6x8k 2x16k no ppi 5812 5805 | |
| 41 | ||
| 42 | flickys1 4x8k 1x8k 6x8k 2x16k no ppi ???? 5855 | |
| 43 | flickyo 4x8k 1x8k 6x8k 2x16k no ppi 5860(a) | |
| 44 | flicky 2x16k 1x8k 6x8k 2x16k no pio 5979(a) | |
| 45 | flickys2 2x16k 1x8k 6x8k 2x16k no pio 6622 | |
| 46 | ||
| 47 | wmatch 6x8k 1x8k 6x8k 2x16k no ppi ???? ???? | |
| 48 | ||
| 49 | bullfgt 6x8k 1x8k 6x8k 2x16k no ppi ???? 6069 | |
| 50 | thetogyu 3x16k 1x8k 6x8k 2x16k no pio 6073 | |
| 51 | ||
| 52 | spatter 3x16k 1x8k 6x8k 4x16k no pio 6394 6306 | |
| 53 | ssanchan 3x16k 1x8k 6x8k 4x16k no pio 6312 | |
| 54 | ||
| 55 | pitfall2 3x16k 1x8k 6x8k 2x16k no pio 6458(a) 6454 | |
| 56 | pitfall2a 3x16k 1x8k 6x8k 2x16k no pio 6506 | |
| 57 | pitfall2u 3x16k 1x8k 6x8k 2x16k no pio 6625(a) | |
| 58 | ||
| 59 | seganinj 3x16k 1x8k 6x8k 4x16k no pio ???? 6546 | |
| 60 | seganinju 3x16k 1x8k 6x8k 4x16k no pio 7150 | |
| 61 | nprinceso 3x16k 1x8k 6x8k 4x16k no pio 6552 | |
| 62 | nprincesb 3x16k 1x8k 6x8k 4x16k no pio bootleg | |
| 63 | ninja 3x16k 1x8k 6x8k 4x16k no pio 6595 | |
| 64 | nprinces 6x8k 1x8k 6x8k 4x16k no ppi 6617 | |
| 65 | nprincesu 6x8k 1x8k 6x8k 4x16k no ppi 6578 | |
| 66 | ||
| 67 | imsorry 3x16k 1x8k 6x8k 2x16k no pio 6678 6645 | |
| 68 | imsorryj 3x16k 1x8k 6x8k 2x16k no pio 6649 | |
| 69 | ||
| 70 | teddybb 3x16k 1x8k 6x8k 4x16k no pio 6770 6735 | |
| 71 | teddybbo 3x16k 1x8k 6x8k 4x16k no pio 6741 | |
| 72 | ||
| 73 | hvymetal 3x32k 1x32k 6x16k 4x32k yes 6790 6778 | |
| 74 | ||
| 75 | myhero 3x16k 1x8k 6x8k 4x16k no pio 6964 6921 | |
| 76 | sscandal 3x16k 1x8k 6x8k 4x16k no pio 6927 | |
| 77 | myherok 3x16k 1x8k 6x8k 4x16k no pio bootleg? | |
| 78 | ||
| 79 | 4dwarrio 3x16k 1x8k 6x8k 4x16k no pio ???? ???? | |
| 80 | ||
| 81 | shtngmst 3x32k 1x32k 3x32k 7x32k yes 7102(a) 7104 | |
| 82 | shtngmst1 3x32k 1x32k 3x32k 7x32k yes 7102 | |
| 83 | shtngmsta 3x32k 1x32k 3x32k 7x32k yes license | |
| 84 | ||
| 85 | choplift 3x32k 1x32k 3x32k 4x32k yes 7126 7120 | |
| 86 | chopliftu 3x32k 1x32k 3x32k 4x32k yes 7154 | |
| 87 | chopliftbl 3x32k 1x32k 3x32k 4x32k yes bootleg | |
| 88 | ||
| 89 | raflesia 3x16k 1x8k 6x8k 4x16k no pio 7413 7408 | |
| 90 | ||
| 91 | wboy2 6x8k 1x8k 6x8k 4x16k no ppi 7592 7485 | |
| 92 | wboy2u 6x8k 1x8k 6x8k 4x16k no ppi ???? | |
| 93 | wbdeluxe 6x8k 1x8k 6x8k 4x16k no ppi ???? | |
| 94 | wboy 3x16k 1x8k 6x8k 4x16k no pio 7491 | |
| 95 | wboyo 3x16k 1x8k 6x8k 4x16k no pio ???? | |
| 96 | wboy3 3x16k 1x8k 6x8k 4x16k no pio ???? | |
| 97 | wboyu 3x16k 1x8k 6x8k 4x16k no pio ???? | |
| 98 | wboy4 2x32k 1x32k 3x16k 2x32k no ???? | |
| 99 | wboysys2 2x32k 1x32k 3x32k 2x32k yes 7580 | |
| 100 | ||
| 101 | gardia 3x32k 1x16k 3x16k 4x32k yes 10255 10233 | |
| 102 | gardiab 3x32k 1x16k 3x16k 4x32k yes bootleg | |
| 103 | ||
| 104 | brain 3x32k 1x32k 3x16k 3x32k yes ???? ???? | |
| 105 | ||
| 106 | tokisens 3x32k 1x32k 3x32k 4x32k yes 10963 10957 | |
| 107 | ||
| 108 | wbml 3x32k 1x32k 3x32k 4x32k yes 11033(a) 11027 | |
| 109 | wbmljo 3x32k 1x32k 3x32k 4x32k yes 11033 | |
| 110 | wbmljb 3x64k 1x32k 3x32k 4x32k yes bootleg | |
| 111 | wbmlb 3x64k 1x32k 3x32k 4x32k yes bootleg | |
| 112 | wbmlg 3x64k 1x32k 3x32k 4x32k yes bootleg | |
| 113 | ||
| 114 | dakkochn 2x32k 1x32k 3x32k 4x32k yes 11225 11220 | |
| 115 | ||
| 116 | ufosensi 3x32k 1x32k 3x32k 4x32k yes 11663 11657 | |
| 117 | ufosensib 3x64k 1x32k 3x32k 4x32k yes bootleg | |
| 118 | ||
| 119 | blockgal 2x16k 1x8k 6x8k 4x16k no ???? | |
| 120 | blockgalb 1x64k 1x8k 6x8k 4x16k no bootleg | |
| 121 | ||
| 122 | nob 3x32k 1x16k 3x32k 4x32k yes | |
| 123 | nobb 3x32k 1x16k 3x32k 4x32k yes | |
| 124 | ||
| 125 | ******************************************************************************* | |
| 126 | ||
| 127 | Chop Lifter | |
| 128 | Sega 1985 | |
| 129 | ||
| 130 | This game runs on Sega System 2 hardware. | |
| 131 | ||
| 132 | 171-5303-01 | |
| 133 | 834-5795-03 CHOP LIFTER (sticker) | |
| 134 | |-----------------------------------------------------------------| | |
| 135 | |DSW2 DSW1 315-5011 EPR-7120.86 CXK5808 Z80A(2) 20MHz | | |
| 136 | |TD62003 315-5012 EPR-7121.87 CXK5808 315-5152.10| | |
| 137 | | EPR-7122.88 315-5138.11| | |
| 138 | | EPR-7123.89 315-5049| | |
| 139 | | | | |
| 140 | | EPR-7152.90 | | |
| 141 | |4 EPR-7153.91 M5M5165 | | |
| 142 | |4 EPR-7154.92 M5M5165 | | |
| 143 | |W M5M5165 | | |
| 144 | |A 8255 DIP40 EPR-7127.4| | |
| 145 | |Y 315-5139.50 EPR-7128.5| | |
| 146 | | 2148 2148 2148 TL7705 EPR-7129.6| | |
| 147 | | 2148 2148 2148 315-5025 | | |
| 148 | | 315-5025 | | |
| 149 | | 8MHz PR5317.37 315-5025 | | |
| 150 | | Z80A(1) LED PR7117.8 | | |
| 151 | | VOL 76489(1) PR7118.14 | | |
| 152 | | 76489(2) EPR-7130.126 8147 PR7119.20 | | |
| 153 | |LA4460 MB8128 8147 MB8128 | | |
| 154 | |-----------------------------------------------------------------| | |
| 155 | Notes: | |
| 156 | 315-5011 - Sega Custom IC (DIP40) | |
| 157 | 315-5012 - Sega Custom IC (DIP48) | |
| 158 | 315-5025 - Sega Custom IC (DIP18) | |
| 159 | 315-5138 - PAL16R4 (DIP20) | |
| 160 | 315-5139 - Signetics CK2605 (= PLS153) stamped '315-5139' (DIP20) | |
| 161 | 315-5049 - Sega Custom IC (SDIP64) | |
| 162 | 315-5152 - PAL16R4 (DIP20) | |
| 163 | DIP40 - DIP40 socket for 8751 MCU. Some games like this version of Chop Lifter use a small | |
| 164 | DIP40-sized board plugged into the socket marked 'SEGA 839-0001'. The board contains | |
| 165 | nothing. The bottom of the board may have tracks going to other pins but it's obscured | |
| 166 | by the socket connector. The top of the board has no tracks on it. | |
| 167 | EPR-* - All EPROMs are 27C256 (DIP28) | |
| 168 | MB8128 - Fujitsu MB8128 -10 2k x8 SRAM (DIP24) | |
| 169 | 2148 - Intel P2148H-3 1k x4 SRAM (DIP18) | |
| 170 | 2147 - Fujitsu MB2147-45 4k x1 SRAM (DIP18) | |
| 171 | TL7705 - Texas Instruments TL7705 Voltage Supply Supervisor and Master Reset IC (DIP8) | |
| 172 | LED - Power LED | |
| 173 | 8255 - NEC D8255 Programmable Peripheral Interface IC (DIP40) | |
| 174 | Z80A(1) - Sharp LH0080A Z80A CPU, clock 4.000MHz [8/2] | |
| 175 | Z80A(2) - Sharp LH0080A Z80A CPU, clock 4.000MHz [8/2] | |
| 176 | CXK5808 - Sony CXK5808 SRAM. Size unknown, maybe 256 bytes x4-bit? (NDIP22) | |
| 177 | M5M5165 - Mitsubishi M5M5165 8k x8 SRAM (DIP28) | |
| 178 | SN76489(1) - Texas Instruments SN76489 4-channel Programmable Sound Generator. Clock 4.000MHz [8/2] (DIP16) | |
| 179 | SN76489(2) - Texas Instruments SN76489 4-channel Programmable Sound Generator. Clock 2.000MHz [8/4] (DIP16) | |
| 180 | LA4460 - Sanyo LA4460 12W AF Power Amplifier (SIL10) | |
| 181 | TD62003 - Toshiba TD62003 7-channel Darlington Sink Driver (DIP16) | |
| 182 | PR5317 - Fujitsu MB7114 Bipolar PROM (DIP16) | |
| 183 | PR7117 - Fujitsu MB7114 Bipolar PROM (DIP16) | |
| 184 | PR7118 - MMI 63S141 Bipolar PROM (DIP16) | |
| 185 | PR7119 - Fujitsu MB7114 Bipolar PROM (DIP16) | |
| 186 | ||
| 187 | Measurements | |
| 188 | ------------ | |
| 189 | OSC1 - 7.99992MHz | |
| 190 | OSC2 - 19.99982MHz | |
| 191 | VSync - 60.0952Hz | |
| 192 | HSync - 15.4442kHz | |
| 193 | ||
| 21 | 194 | ******************************************************************************/ |
| 22 | 195 | |
| 23 | 196 | #include "driver.h" |
| 24 | #include "deprecat.h" | |
| 25 | 197 | #include "video/system1.h" |
| 26 | 198 | #include "cpu/z80/z80.h" |
| 199 | #include "machine/z80pio.h" | |
| 200 | #include "machine/8255ppi.h" | |
| 27 | 201 | #include "machine/segacrpt.h" |
| 28 | 202 | #include "machine/mc8123.h" |
| 29 | 203 | #include "sound/sn76496.h" |
| 30 | 204 | |
| 205 | ||
| 206 | #define MASTER_CLOCK XTAL_20MHz | |
| 207 | #define SOUND_CLOCK XTAL_8MHz | |
| 208 | ||
| 209 | ||
| 210 | static void (*i8751_run)(running_machine *machine, int init); | |
| 211 | static void (*videomode_custom)(running_machine *machine, UINT8 data, UINT8 prevdata); | |
| 212 | ||
| 31 | 213 | static UINT8 *system1_ram; |
| 32 | 214 | static UINT8 dakkochn_mux_data; |
| 215 | static UINT8 videomode_prev; | |
| 216 | static UINT8 i8751_active; | |
| 33 | 217 | |
| 34 | 218 | |
| 35 | static MACHINE_RESET( system1 ) | |
| 36 | { | |
| 37 | system1_define_background_memory(system1_BACKGROUND_MEMORY_SINGLE); | |
| 38 | } | |
| 39 | 219 | |
| 40 | static MACHINE_RESET( system1_banked ) | |
| 41 | { | |
| 42 | MACHINE_RESET_CALL(system1); | |
| 43 | memory_configure_bank(machine, 1, 0, 4, memory_region(machine, "maincpu") + 0x10000, 0x4000); | |
| 44 | } | |
| 220 | /************************************* | |
| 221 | * | |
| 222 | * Machine initialization | |
| 223 | * | |
| 224 | *************************************/ | |
| 45 | 225 | |
| 46 | static MACHINE_RESET( dakkochn ) | |
| 47 | { | |
| 48 | MACHINE_RESET_CALL(system1); | |
| 49 | memory_configure_bank(machine, 1, 0, 4, memory_region(machine, "maincpu") + 0x10000, 0x4000); | |
| 50 | dakkochn_mux_data = 0; | |
| 51 | } | |
| 226 | /* | |
| 227 | About main CPU clocking: | |
| 52 | 228 | |
| 53 | static MACHINE_RESET( wbml ) | |
| 54 | { | |
| 55 | system1_define_background_memory(system1_BACKGROUND_MEMORY_BANKED); | |
| 56 | memory_configure_bank(machine, 1, 0, 4, memory_region(machine, "maincpu") + 0x10000, 0x4000); | |
| 57 | } | |
| 229 | A 20MHz crystal clocks an LS161 which counts up from either 10 or 11 to 16 before | |
| 230 | carrying out and forcing a reload. The low bit of the reload value comes from the | |
| 231 | Z80's /M1 signal. When /M1 is low (an opcode is being fetched), the reload count | |
| 232 | is 10, which means the 20MHz clock is divided by 6. When /M1 is high, the reload | |
| 233 | count is 11, which means the clock is divided by 5. | |
| 58 | 234 | |
| 59 | // nobb - these ports are used for some kind of replacement protection system used by the bootleg | |
| 60 | static int nobb_inport16_step,nobb_inport17_step,nobb_inport23_step; | |
| 235 | To account for this, we install custom cycle tables for the Z80. We clock the Z80 | |
| 236 | at 20MHz and count 5 cycles for each original Z80 cycle, plus an extra cycle for | |
| 237 | each opcode fetch. | |
| 238 | */ | |
| 61 | 239 | |
| 62 | static READ8_HANDLER( nobb_inport16_r ) | |
| 63 | { | |
| 64 | // logerror("IN $16 : pc = %04x - data = %02x\n",cpu_get_pc(space->cpu),nobb_inport16_step); | |
| 65 | return(nobb_inport16_step); | |
| 66 | } | |
| 240 | static const UINT8 cc_op[0x100] = { | |
| 241 | 4*5+1,10*5+3, 7*5+1, 6*5+1, 4*5+1, 4*5+1, 7*5+2, 4*5+1, 4*5+1,11*5+1, 7*5+1, 6*5+1, 4*5+1, 4*5+1, 7*5+2, 4*5+1, | |
| 242 | 8*5+2,10*5+3, 7*5+1, 6*5+1, 4*5+1, 4*5+1, 7*5+2, 4*5+1,12*5+2,11*5+1, 7*5+1, 6*5+1, 4*5+1, 4*5+1, 7*5+2, 4*5+1, | |
| 243 | 7*5+2,10*5+3,16*5+3, 6*5+1, 4*5+1, 4*5+1, 7*5+2, 4*5+1, 7*5+2,11*5+1,16*5+3, 6*5+1, 4*5+1, 4*5+1, 7*5+2, 4*5+1, | |
| 244 | 7*5+2,10*5+3,13*5+3, 6*5+1,11*5+1,11*5+1,10*5+2, 4*5+1, 7*5+2,11*5+1,13*5+3, 6*5+1, 4*5+1, 4*5+1, 7*5+2, 4*5+1, | |
| 245 | 4*5+1, 4*5+1, 4*5+1, 4*5+1, 4*5+1, 4*5+1, 7*5+1, 4*5+1, 4*5+1, 4*5+1, 4*5+1, 4*5+1, 4*5+1, 4*5+1, 7*5+1, 4*5+1, | |
| 246 | 4*5+1, 4*5+1, 4*5+1, 4*5+1, 4*5+1, 4*5+1, 7*5+1, 4*5+1, 4*5+1, 4*5+1, 4*5+1, 4*5+1, 4*5+1, 4*5+1, 7*5+1, 4*5+1, | |
| 247 | 4*5+1, 4*5+1, 4*5+1, 4*5+1, 4*5+1, 4*5+1, 7*5+1, 4*5+1, 4*5+1, 4*5+1, 4*5+1, 4*5+1, 4*5+1, 4*5+1, 7*5+1, 4*5+1, | |
| 248 | 7*5+1, 7*5+1, 7*5+1, 7*5+1, 7*5+1, 7*5+1, 4*5+1, 7*5+1, 4*5+1, 4*5+1, 4*5+1, 4*5+1, 4*5+1, 4*5+1, 7*5+1, 4*5+1, | |
| 249 | 4*5+1, 4*5+1, 4*5+1, 4*5+1, 4*5+1, 4*5+1, 7*5+1, 4*5+1, 4*5+1, 4*5+1, 4*5+1, 4*5+1, 4*5+1, 4*5+1, 7*5+1, 4*5+1, | |
| 250 | 4*5+1, 4*5+1, 4*5+1, 4*5+1, 4*5+1, 4*5+1, 7*5+1, 4*5+1, 4*5+1, 4*5+1, 4*5+1, 4*5+1, 4*5+1, 4*5+1, 7*5+1, 4*5+1, | |
| 251 | 4*5+1, 4*5+1, 4*5+1, 4*5+1, 4*5+1, 4*5+1, 7*5+1, 4*5+1, 4*5+1, 4*5+1, 4*5+1, 4*5+1, 4*5+1, 4*5+1, 7*5+1, 4*5+1, | |
| 252 | 4*5+1, 4*5+1, 4*5+1, 4*5+1, 4*5+1, 4*5+1, 7*5+1, 4*5+1, 4*5+1, 4*5+1, 4*5+1, 4*5+1, 4*5+1, 4*5+1, 7*5+1, 4*5+1, | |
| 253 | 5*5+1,10*5+1,10*5+3,10*5+3,10*5+3,11*5+1, 7*5+2,11*5+1, 5*5+1,10*5+1,10*5+3, 0*5+1,10*5+3,17*5+3, 7*5+2,11*5+1, | |
| 254 | 5*5+1,10*5+1,10*5+3,11*5+2,10*5+3,11*5+1, 7*5+2,11*5+1, 5*5+1, 4*5+1,10*5+3,11*5+2,10*5+3, 0*5 , 7*5+2,11*5+1, | |
| 255 | 5*5+1,10*5+1,10*5+3,19*5+1,10*5+3,11*5+1, 7*5+2,11*5+1, 5*5+1, 4*5+1,10*5+3, 4*5+1,10*5+3, 0*5 , 7*5+2,11*5+1, | |
| 256 | 5*5+1,10*5+1,10*5+3, 4*5+1,10*5+3,11*5+1, 7*5+2,11*5+1, 5*5+1, 6*5+1,10*5+3, 4*5+1,10*5+3, 0*5 , 7*5+2,11*5+1}; | |
| 67 | 257 | |
| 68 | static READ8_HANDLER( nobb_inport1c_r ) | |
| 69 | { | |
| 70 | // logerror("IN $1c : pc = %04x - data = 0x80\n",cpu_get_pc(space->cpu)); | |
| 71 | return(0x80); // infinite loop (at 0x0fb3) until bit 7 is set | |
| 72 | } | |
| 258 | static const UINT8 cc_cb[0x100] = { | |
| 259 | 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2,15*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2,15*5+2, 8*5+2, | |
| 260 | 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2,15*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2,15*5+2, 8*5+2, | |
| 261 | 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2,15*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2,15*5+2, 8*5+2, | |
| 262 | 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2,15*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2,15*5+2, 8*5+2, | |
| 263 | 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2,12*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2,12*5+2, 8*5+2, | |
| 264 | 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2,12*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2,12*5+2, 8*5+2, | |
| 265 | 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2,12*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2,12*5+2, 8*5+2, | |
| 266 | 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2,12*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2,12*5+2, 8*5+2, | |
| 267 | 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2,15*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2,15*5+2, 8*5+2, | |
| 268 | 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2,15*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2,15*5+2, 8*5+2, | |
| 269 | 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2,15*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2,15*5+2, 8*5+2, | |
| 270 | 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2,15*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2,15*5+2, 8*5+2, | |
| 271 | 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2,15*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2,15*5+2, 8*5+2, | |
| 272 | 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2,15*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2,15*5+2, 8*5+2, | |
| 273 | 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2,15*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2,15*5+2, 8*5+2, | |
| 274 | 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2,15*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2,15*5+2, 8*5+2}; | |
| 73 | 275 | |
| 74 | static READ8_HANDLER( nobb_inport22_r ) | |
| 75 | { | |
| 76 | // logerror("IN $22 : pc = %04x - data = %02x\n",cpu_get_pc(space->cpu),nobb_inport17_step); | |
| 77 | return(nobb_inport17_step); | |
| 78 | } | |
| 276 | static const UINT8 cc_ed[0x100] = { | |
| 277 | 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, | |
| 278 | 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, | |
| 279 | 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, | |
| 280 | 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, | |
| 281 | 12*5+2,12*5+2,15*5+2,20*5+4, 8*5+2,14*5+2, 8*5+2, 9*5+2,12*5+2,12*5+2,15*5+2,20*5+4, 8*5+2,14*5+2, 8*5+2, 9*5+2, | |
| 282 | 12*5+2,12*5+2,15*5+2,20*5+4, 8*5+2,14*5+2, 8*5+2, 9*5+2,12*5+2,12*5+2,15*5+2,20*5+4, 8*5+2,14*5+2, 8*5+2, 9*5+2, | |
| 283 | 12*5+2,12*5+2,15*5+2,20*5+4, 8*5+2,14*5+2, 8*5+2,18*5+2,12*5+2,12*5+2,15*5+2,20*5+4, 8*5+2,14*5+2, 8*5+2,18*5+2, | |
| 284 | 12*5+2,12*5+2,15*5+2,20*5+4, 8*5+2,14*5+2, 8*5+2, 8*5+2,12*5+2,12*5+2,15*5+2,20*5+4, 8*5+2,14*5+2, 8*5+2, 8*5+2, | |
| 285 | 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, | |
| 286 | 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, | |
| 287 | 16*5+2,16*5+2,16*5+2,16*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2,16*5+2,16*5+2,16*5+2,16*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, | |
| 288 | 16*5+2,16*5+2,16*5+2,16*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2,16*5+2,16*5+2,16*5+2,16*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, | |
| 289 | 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, | |
| 290 | 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, | |
| 291 | 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, | |
| 292 | 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2}; | |
| 79 | 293 | |
| 80 | static READ8_HANDLER( nobb_inport23_r ) | |
| 81 | { | |
| 82 | // logerror("IN $23 : pc = %04x - step = %02x\n",cpu_get_pc(space->cpu),nobb_inport23_step); | |
| 83 | return(nobb_inport23_step); | |
| 84 | } | |
| 294 | static const UINT8 cc_xy[0x100] = { | |
| 295 | 4*5+2, 4*5+2, 4*5+2, 4*5+2, 4*5+2, 4*5+2, 4*5+2, 4*5+2, 4*5+2,15*5+2, 4*5+2, 4*5+2, 4*5+2, 4*5+2, 4*5+2, 4*5+2, | |
| 296 | 4*5+2, 4*5+2, 4*5+2, 4*5+2, 4*5+2, 4*5+2, 4*5+2, 4*5+2, 4*5+2,15*5+2, 4*5+2, 4*5+2, 4*5+2, 4*5+2, 4*5+2, 4*5+2, | |
| 297 | 4*5+2,14*5+4,20*5+4,10*5+2, 9*5+2, 9*5+2, 9*5+3, 4*5+2, 4*5+2,15*5+2,20*5+4,10*5+2, 9*5+2, 9*5+2, 9*5+3, 4*5+2, | |
| 298 | 4*5+2, 4*5+2, 4*5+2, 4*5+2,23*5+3,23*5+3,19*5+4, 4*5+2, 4*5+2,15*5+2, 4*5+2, 4*5+2, 4*5+2, 4*5+2, 4*5+2, 4*5+2, | |
| 299 | 4*5+2, 4*5+2, 4*5+2, 4*5+2, 9*5+2, 9*5+2,19*5+3, 4*5+2, 4*5+2, 4*5+2, 4*5+2, 4*5+2, 9*5+2, 9*5+2,19*5+3, 4*5+2, | |
| 300 | 4*5+2, 4*5+2, 4*5+2, 4*5+2, 9*5+2, 9*5+2,19*5+3, 4*5+2, 4*5+2, 4*5+2, 4*5+2, 4*5+2, 9*5+2, 9*5+2,19*5+3, 4*5+2, | |
| 301 | 9*5+2, 9*5+2, 9*5+2, 9*5+2, 9*5+2, 9*5+2,19*5+2, 9*5+2, 9*5+2, 9*5+2, 9*5+2, 9*5+2, 9*5+2, 9*5+2,19*5+2, 9*5+2, | |
| 302 | 19*5+3,19*5+3,19*5+3,19*5+3,19*5+3,19*5+3, 4*5+2,19*5+3, 4*5+2, 4*5+2, 4*5+2, 4*5+2, 9*5+2, 9*5+2,19*5+3, 4*5+2, | |
| 303 | 4*5+2, 4*5+2, 4*5+2, 4*5+2, 9*5+2, 9*5+2,19*5+3, 4*5+2, 4*5+2, 4*5+2, 4*5+2, 4*5+2, 9*5+2, 9*5+2,19*5+3, 4*5+2, | |
| 304 | 4*5+2, 4*5+2, 4*5+2, 4*5+2, 9*5+2, 9*5+2,19*5+3, 4*5+2, 4*5+2, 4*5+2, 4*5+2, 4*5+2, 9*5+2, 9*5+2,19*5+3, 4*5+2, | |
| 305 | 4*5+2, 4*5+2, 4*5+2, 4*5+2, 9*5+2, 9*5+2,19*5+3, 4*5+2, 4*5+2, 4*5+2, 4*5+2, 4*5+2, 9*5+2, 9*5+2,19*5+3, 4*5+2, | |
| 306 | 4*5+2, 4*5+2, 4*5+2, 4*5+2, 9*5+2, 9*5+2,19*5+3, 4*5+2, 4*5+2, 4*5+2, 4*5+2, 4*5+2, 9*5+2, 9*5+2,19*5+3, 4*5+2, | |
| 307 | 4*5+2, 4*5+2, 4*5+2, 4*5+2, 4*5+2, 4*5+2, 4*5+2, 4*5+2, 4*5+2, 4*5+2, 4*5+2, 0*5 , 4*5+2, 4*5+2, 4*5+2, 4*5+2, | |
| 308 | 4*5+2, 4*5+2, 4*5+2, 4*5+2, 4*5+2, 4*5+2, 4*5+2, 4*5+2, 4*5+2, 4*5+2, 4*5+2, 4*5+2, 4*5+2, 4*5+2, 4*5+2, 4*5+2, | |
| 309 | 4*5+2,14*5+2, 4*5+2,23*5+2, 4*5+2,15*5+2, 4*5+2, 4*5+2, 4*5+2, 8*5+2, 4*5+2, 4*5+2, 4*5+2, 4*5+2, 4*5+2, 4*5+2, | |
| 310 | 4*5+2, 4*5+2, 4*5+2, 4*5+2, 4*5+2, 4*5+2, 4*5+2, 4*5+2, 4*5+2,10*5+2, 4*5+2, 4*5+2, 4*5+2, 4*5+2, 4*5+2, 4*5+2}; | |
| 85 | 311 | |
| 86 | static WRITE8_HANDLER( nobb_outport16_w ) | |
| 87 | { | |
| 88 | // logerror("OUT $16 : pc = %04x - data = %02x\n",cpu_get_pc(space->cpu),data); | |
| 89 | nobb_inport16_step = data; | |
| 90 | } | |
| 312 | static const UINT8 cc_xycb[0x100] = { | |
| 313 | 23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4, | |
| 314 | 23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4, | |
| 315 | 23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4, | |
| 316 | 23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4, | |
| 317 | 20*5+4,20*5+4,20*5+4,20*5+4,20*5+4,20*5+4,20*5+4,20*5+4,20*5+4,20*5+4,20*5+4,20*5+4,20*5+4,20*5+4,20*5+4,20*5+4, | |
| 318 | 20*5+4,20*5+4,20*5+4,20*5+4,20*5+4,20*5+4,20*5+4,20*5+4,20*5+4,20*5+4,20*5+4,20*5+4,20*5+4,20*5+4,20*5+4,20*5+4, | |
| 319 | 20*5+4,20*5+4,20*5+4,20*5+4,20*5+4,20*5+4,20*5+4,20*5+4,20*5+4,20*5+4,20*5+4,20*5+4,20*5+4,20*5+4,20*5+4,20*5+4, | |
| 320 | 20*5+4,20*5+4,20*5+4,20*5+4,20*5+4,20*5+4,20*5+4,20*5+4,20*5+4,20*5+4,20*5+4,20*5+4,20*5+4,20*5+4,20*5+4,20*5+4, | |
| 321 | 23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4, | |
| 322 | 23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4, | |
| 323 | 23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4, | |
| 324 | 23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4, | |
| 325 | 23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4, | |
| 326 | 23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4, | |
| 327 | 23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4, | |
| 328 | 23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4}; | |
| 91 | 329 | |
| 92 | static WRITE8_HANDLER( nobb_outport17_w ) | |
| 330 | /* extra cycles if jr/jp/call taken and 'interrupt latency' on rst 0-7 */ | |
| 331 | static const UINT8 cc_ex[0x100] = { | |
| 332 | 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, | |
| 333 | 5*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, /* DJNZ */ | |
| 334 | 5*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 5*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, /* JR NZ/JR Z */ | |
| 335 | 5*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 5*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, /* JR NC/JR C */ | |
| 336 | 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, | |
| 337 | 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, | |
| 338 | 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, | |
| 339 | 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, | |
| 340 | 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, | |
| 341 | 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, | |
| 342 | 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, | |
| 343 | 5*5, 5*5, 5*5, 5*5, 0*5, 0*5, 0*5, 0*5, 5*5, 5*5, 5*5, 5*5, 0*5, 0*5, 0*5, 0*5, /* LDIR/CPIR/INIR/OTIR LDDR/CPDR/INDR/OTDR */ | |
| 344 | 6*5, 0*5, 0*5, 0*5, 7*5, 0*5, 0*5, 2*5, 6*5, 0*5, 0*5, 0*5, 7*5, 0*5, 0*5, 2*5, | |
| 345 | 6*5, 0*5, 0*5, 0*5, 7*5, 0*5, 0*5, 2*5, 6*5, 0*5, 0*5, 0*5, 7*5, 0*5, 0*5, 2*5, | |
| 346 | 6*5, 0*5, 0*5, 0*5, 7*5, 0*5, 0*5, 2*5, 6*5, 0*5, 0*5, 0*5, 7*5, 0*5, 0*5, 2*5, | |
| 347 | 6*5, 0*5, 0*5, 0*5, 7*5, 0*5, 0*5, 2*5, 6*5, 0*5, 0*5, 0*5, 7*5, 0*5, 0*5, 2*5}; | |
| 348 | ||
| 349 | ||
| 350 | static MACHINE_START( system1 ) | |
| 93 | 351 | { |
| 94 | // logerror("OUT $17 : pc = %04x - data = %02x\n",cpu_get_pc(space->cpu),data); | |
| 95 | nobb_inport17_step = data; | |
| 96 | } | |
| 352 | UINT32 numbanks = (memory_region_length(machine, "maincpu") - 0x10000) / 0x4000; | |
| 97 | 353 | |
| 98 | static WRITE8_HANDLER( nobb_outport24_w ) | |
| 99 | { | |
| 100 | // logerror("OUT $24 : pc = %04x - data = %02x\n",cpu_get_pc(space->cpu),data); | |
| 101 | nobb_inport23_step = data; | |
| 354 | if (numbanks > 0) | |
| 355 | memory_configure_bank(machine, 1, 0, numbanks, memory_region(machine, "maincpu") + 0x10000, 0x4000); | |
| 356 | else | |
| 357 | memory_configure_bank(machine, 1, 0, 1, memory_region(machine, "maincpu") + 0x8000, 0); | |
| 358 | memory_set_bank(machine, 1, 0); | |
| 359 | ||
| 360 | z80_set_cycle_tables(cputag_get_cpu(machine, "maincpu"), cc_op, cc_cb, cc_ed, cc_xy, cc_xycb, cc_ex); | |
| 361 | ||
| 362 | state_save_register_global(machine, dakkochn_mux_data); | |
| 363 | state_save_register_global(machine, videomode_prev); | |
| 102 | 364 | } |
| 103 | 365 | |
| 104 | static WRITE8_HANDLER( hvymetal_videomode_w ) | |
| 366 | ||
| 367 | static MACHINE_RESET( system1 ) | |
| 105 | 368 | { |
| 106 | memory_set_bank(space->machine, 1, ((data & 0x04)>>2) + ((data & 0x40)>>5)); | |
| 107 | system1_videomode_w(space, 0, data); | |
| 369 | dakkochn_mux_data = 0; | |
| 370 | i8751_active = FALSE; | |
| 371 | if (i8751_run != NULL) | |
| 372 | (*i8751_run)(machine, TRUE); | |
| 108 | 373 | } |
| 109 | 374 | |
| 110 | static WRITE8_HANDLER( brain_videomode_w ) | |
| 375 | ||
| 376 | static INTERRUPT_GEN( vblank_irq ) | |
| 111 | 377 | { |
| 112 | memory_set_bank(space->machine, 1, ((data & 0x04)>>2) + ((data & 0x40)>>5)); | |
| 113 | system1_videomode_w(space, 0, data); | |
| 114 | } | |
| 378 | irq0_line_hold(device); | |
| 115 | 379 | |
| 116 | static WRITE8_HANDLER( chplft_videomode_w ) | |
| 117 | { | |
| 118 | memory_set_bank(space->machine, 1, (data & 0x0c)>>2); | |
| 119 | system1_videomode_w(space, 0, data); | |
| 380 | if (i8751_run != NULL && i8751_active) | |
| 381 | (*i8751_run)(device->machine, FALSE); | |
| 120 | 382 | } |
| 121 | 383 | |
| 122 | 384 | |
| 123 | static WRITE8_HANDLER( system1_soundport_w ) | |
| 385 | ||
| 386 | /************************************* | |
| 387 | * | |
| 388 | * Game-specific initialization | |
| 389 | * | |
| 390 | *************************************/ | |
| 391 | ||
| 392 | static void choplift_i8751_run(running_machine *machine, int init) | |
| 124 | 393 | { |
| 125 | soundlatch_w(space,0,data); | |
| 126 | cpu_set_input_line(space->machine->cpu[1],INPUT_LINE_NMI,PULSE_LINE); | |
| 127 | /* spin for a while to let the Z80 read the command (fixes hanging sound in Regulus) */ | |
| 128 | cpu_spinuntil_time(space->cpu, ATTOTIME_IN_USEC(50)); | |
| 394 | if (init) | |
| 395 | { | |
| 396 | const device_config *ppi = devtag_get_device(machine, "ppi"); | |
| 397 | ||
| 398 | /* the 8751 seems to do the 8255 initialization among other things */ | |
| 399 | ppi8255_w(ppi, 3, 0xc0); | |
| 400 | ppi8255_w(ppi, 2, 0x00); | |
| 401 | } | |
| 402 | else | |
| 403 | { | |
| 404 | const UINT8 *rom = memory_region(machine, "maincpu"); | |
| 405 | system1_ram[0x88] = 0x01; | |
| 406 | system1_ram[0x89] = 0xff; | |
| 407 | memcpy(&system1_ram[0x90], &rom[0x1f8e], 16); | |
| 408 | videoram[0x740] = 0x01; | |
| 409 | videoram[0x742] = 0x01; | |
| 410 | videoram[0x744] = 0x01; | |
| 411 | videoram[0x746] = 0x01; | |
| 412 | } | |
| 129 | 413 | } |
| 130 | 414 | |
| 415 | ||
| 131 | 416 | /* protection values from real hardware, these were verified to be the same on the title |
| 132 | 417 | screen and in the first level... they're all jumps that the MCU appears to put in RAM |
| 133 | 418 | at some point */ |
| r4470 | r4471 | |
| 168 | 453 | } |
| 169 | 454 | |
| 170 | 455 | |
| 171 | static ADDRESS_MAP_START( readmem, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 172 | AM_RANGE(0x0000, 0x7fff) AM_READ(SMH_ROM) | |
| 173 | AM_RANGE(0x8000, 0xbfff) AM_READ(SMH_ROM) | |
| 174 | AM_RANGE(0xc000, 0xffff) AM_READ(SMH_RAM) | |
| 175 | ADDRESS_MAP_END | |
| 176 | 456 | |
| 177 | static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 178 | AM_RANGE(0x0000, 0x7fff) AM_WRITE(SMH_ROM) | |
| 179 | AM_RANGE(0x8000, 0xbfff) AM_WRITE(SMH_ROM) | |
| 180 | AM_RANGE(0xc000, 0xcfff) AM_WRITE(SMH_RAM) // ROM | |
| 181 | AM_RANGE(0xd000, 0xd1ff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size) | |
| 182 | AM_RANGE(0xd800, 0xddff) AM_WRITE(system1_paletteram_w) AM_BASE(&paletteram) | |
| 183 | AM_RANGE(0xe000, 0xe7ff) AM_WRITE(system1_backgroundram_w) AM_BASE(&system1_backgroundram) AM_SIZE(&system1_backgroundram_size) | |
| 184 | AM_RANGE(0xe800, 0xeeff) AM_WRITE(SMH_RAM) AM_BASE(&system1_videoram) AM_SIZE(&system1_videoram_size) | |
| 185 | AM_RANGE(0xefbd, 0xefbd) AM_WRITE(SMH_RAM) AM_BASE(&system1_scroll_y) | |
| 186 | AM_RANGE(0xeffc, 0xeffd) AM_WRITE(SMH_RAM) AM_BASE(&system1_scroll_x) | |
| 187 | AM_RANGE(0xf000, 0xf3ff) AM_WRITE(system1_background_collisionram_w) AM_BASE(&system1_background_collisionram) | |
| 188 | AM_RANGE(0xf800, 0xfbff) AM_WRITE(system1_sprites_collisionram_w) AM_BASE(&system1_sprites_collisionram) | |
| 457 | /************************************* | |
| 458 | * | |
| 459 | * ROM banking | |
| 460 | * | |
| 461 | *************************************/ | |
| 189 | 462 | |
| 190 | /* these are required to make various games work (teddybb, imsorry, raflesia) */ | |
| 191 | /* these may actually be backed by RAM, or may be mirrors of other RAM areas */ | |
| 192 | AM_RANGE(0xd200, 0xd7ff) AM_WRITE(SMH_RAM) | |
| 193 | AM_RANGE(0xde00, 0xdfff) AM_WRITE(SMH_RAM) | |
| 194 | AM_RANGE(0xef00, 0xefbc) AM_WRITE(SMH_RAM) | |
| 195 | AM_RANGE(0xefbe, 0xeffb) AM_WRITE(SMH_RAM) | |
| 196 | AM_RANGE(0xeffe, 0xefff) AM_WRITE(SMH_RAM) | |
| 197 | AM_RANGE(0xf400, 0xf7ff) AM_WRITE(SMH_RAM) | |
| 198 | AM_RANGE(0xfc00, 0xffff) AM_WRITE(SMH_RAM) | |
| 199 | ADDRESS_MAP_END | |
| 463 | static void bank44_custom_w(running_machine *machine, UINT8 data, UINT8 prevdata) | |
| 464 | { | |
| 465 | /* bank bits are bits 6 and 2 */ | |
| 466 | memory_set_bank(machine, 1, ((data & 0x40) >> 5) | ((data & 0x04) >> 2)); | |
| 467 | } | |
| 200 | 468 | |
| 201 | static ADDRESS_MAP_START( blckgalb_writemem, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 202 | AM_RANGE(0x0000, 0x7fff) AM_WRITE(SMH_ROM) | |
| 203 | AM_RANGE(0x8000, 0xbfff) AM_WRITE(SMH_ROM) | |
| 204 | AM_RANGE(0xc000, 0xcfff) AM_WRITE(SMH_RAM) // ROM | |
| 205 | AM_RANGE(0xd000, 0xd1ff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size) | |
| 206 | AM_RANGE(0xd800, 0xddff) AM_WRITE(system1_paletteram_w) AM_BASE(&paletteram) | |
| 207 | AM_RANGE(0xe800, 0xeeff) AM_WRITE(system1_backgroundram_w) AM_BASE(&system1_backgroundram) AM_SIZE(&system1_backgroundram_size) | |
| 208 | AM_RANGE(0xe000, 0xe6ff) AM_WRITE(SMH_RAM) AM_BASE(&system1_videoram) AM_SIZE(&system1_videoram_size) | |
| 209 | AM_RANGE(0xe7bd, 0xe7bd) AM_WRITE(SMH_RAM) AM_BASE(&system1_scroll_y) // ??? | |
| 210 | AM_RANGE(0xe7c0, 0xe7c1) AM_WRITE(SMH_RAM) AM_BASE(&system1_scroll_x) | |
| 211 | AM_RANGE(0xf000, 0xf3ff) AM_WRITE(system1_background_collisionram_w) AM_BASE(&system1_background_collisionram) | |
| 212 | AM_RANGE(0xf800, 0xfbff) AM_WRITE(system1_sprites_collisionram_w) AM_BASE(&system1_sprites_collisionram) | |
| 213 | ADDRESS_MAP_END | |
| 214 | 469 | |
| 215 | static ADDRESS_MAP_START( brain_readmem, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 216 | AM_RANGE(0x0000, 0x7fff) AM_READ(SMH_ROM) | |
| 217 | AM_RANGE(0x8000, 0xbfff) AM_READ(SMH_BANK1) | |
| 218 | AM_RANGE(0xc000, 0xffff) AM_READ(SMH_RAM) AM_BASE(&system1_ram) | |
| 219 | ADDRESS_MAP_END | |
| 470 | static void bank0c_custom_w(running_machine *machine, UINT8 data, UINT8 prevdata) | |
| 471 | { | |
| 472 | /* bank bits are bits 3 and 2 */ | |
| 473 | memory_set_bank(machine, 1, (data & 0x0c) >> 2); | |
| 474 | } | |
| 220 | 475 | |
| 221 | static ADDRESS_MAP_START( wbml_readmem, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 222 | AM_RANGE(0x0000, 0x7fff) AM_READ(SMH_ROM) | |
| 223 | AM_RANGE(0x8000, 0xbfff) AM_READ(SMH_BANK1) | |
| 224 | AM_RANGE(0xc000, 0xdfff) AM_READ(SMH_RAM) AM_BASE(&system1_ram) | |
| 225 | AM_RANGE(0xe000, 0xefff) AM_READ(wbml_paged_videoram_r) | |
| 226 | AM_RANGE(0xf000, 0xf3ff) AM_READ(SMH_RAM) | |
| 227 | AM_RANGE(0xf800, 0xfbff) AM_READ(SMH_RAM) | |
| 228 | ADDRESS_MAP_END | |
| 229 | 476 | |
| 230 | static ADDRESS_MAP_START( wbml_writemem, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 231 | AM_RANGE(0x0000, 0x7fff) AM_WRITE(SMH_ROM) | |
| 232 | AM_RANGE(0x8000, 0xbfff) AM_WRITE(SMH_ROM) | |
| 233 | AM_RANGE(0xc000, 0xcfff) AM_WRITE(SMH_RAM) // ROM | |
| 234 | AM_RANGE(0xd000, 0xd1ff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size) | |
| 235 | AM_RANGE(0xd200, 0xd7ff) AM_WRITE(SMH_RAM) // mirror? | |
| 236 | AM_RANGE(0xd800, 0xddff) AM_WRITE(system1_paletteram_w) AM_BASE(&paletteram) | |
| 237 | AM_RANGE(0xe000, 0xefff) AM_WRITE(wbml_paged_videoram_w) | |
| 238 | AM_RANGE(0xf000, 0xf3ff) AM_WRITE(system1_background_collisionram_w) AM_BASE(&system1_background_collisionram) | |
| 239 | AM_RANGE(0xf800, 0xfbff) AM_WRITE(system1_sprites_collisionram_w) AM_BASE(&system1_sprites_collisionram) | |
| 240 | ADDRESS_MAP_END | |
| 477 | static WRITE8_HANDLER( videomode_w ) | |
| 478 | { | |
| 479 | if ((data & 0x40) && !(videomode_prev & 0x40)) | |
| 480 | i8751_active = TRUE; | |
| 241 | 481 | |
| 242 | static ADDRESS_MAP_START( chplft_writemem, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 243 | AM_RANGE(0x0000, 0x7fff) AM_WRITE(SMH_ROM) | |
| 244 | AM_RANGE(0x8000, 0xbfff) AM_WRITE(SMH_ROM) | |
| 245 | AM_RANGE(0xc000, 0xcfff) AM_WRITE(SMH_RAM) // ROM | |
| 246 | AM_RANGE(0xd000, 0xd1ff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size) | |
| 247 | AM_RANGE(0xd800, 0xddff) AM_WRITE(system1_paletteram_w) AM_BASE(&paletteram) | |
| 248 | AM_RANGE(0xe7c0, 0xe7ff) AM_WRITE(choplifter_scroll_x_w) AM_BASE(&system1_scrollx_ram) | |
| 249 | AM_RANGE(0xe000, 0xe7ff) AM_WRITE(SMH_RAM) AM_BASE(&system1_videoram) AM_SIZE(&system1_videoram_size) | |
| 250 | AM_RANGE(0xe800, 0xeeff) AM_WRITE(system1_backgroundram_w) AM_BASE(&system1_backgroundram) AM_SIZE(&system1_backgroundram_size) | |
| 251 | AM_RANGE(0xf000, 0xf3ff) AM_WRITE(system1_background_collisionram_w) AM_BASE(&system1_background_collisionram) | |
| 252 | AM_RANGE(0xf800, 0xfbff) AM_WRITE(system1_sprites_collisionram_w) AM_BASE(&system1_sprites_collisionram) | |
| 482 | /* handle any custom banking or other stuff */ | |
| 483 | if (videomode_custom != NULL) | |
| 484 | (*videomode_custom)(space->machine, data, videomode_prev); | |
| 485 | videomode_prev = data; | |
| 253 | 486 | |
| 254 | /* needed for P.O.S.T. */ | |
| 255 | AM_RANGE(0xd200, 0xd7ff) AM_WRITE(SMH_RAM) | |
| 256 | AM_RANGE(0xde00, 0xdfff) AM_WRITE(SMH_RAM) | |
| 257 | AM_RANGE(0xef00, 0xefff) AM_WRITE(SMH_RAM) | |
| 258 | ADDRESS_MAP_END | |
| 487 | /* bit 0 is for the coin counters */ | |
| 488 | coin_counter_w(0, data & 1); | |
| 259 | 489 | |
| 260 | static ADDRESS_MAP_START( gardiab_writemem, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 261 | AM_RANGE(0x0000, 0x7fff) AM_WRITE(SMH_ROM) | |
| 262 | AM_RANGE(0x8000, 0xbfff) AM_WRITE(SMH_ROM) | |
| 263 | AM_RANGE(0xc000, 0xcfff) AM_WRITE(SMH_RAM) // ROM | |
| 264 | AM_RANGE(0xd000, 0xd1ff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size) | |
| 265 | AM_RANGE(0xd800, 0xddff) AM_WRITE(system1_paletteram_w) AM_BASE(&paletteram) | |
| 266 | AM_RANGE(0xe7bd, 0xe7bd) AM_WRITE(SMH_RAM) AM_BASE(&system1_scroll_y) // ??? | |
| 267 | AM_RANGE(0xe7c0, 0xe7c1) AM_WRITE(SMH_RAM) AM_BASE(&system1_scroll_x) | |
| 268 | AM_RANGE(0xe000, 0xe7ff) AM_WRITE(SMH_RAM) AM_BASE(&system1_videoram) AM_SIZE(&system1_videoram_size) | |
| 269 | AM_RANGE(0xe800, 0xeeff) AM_WRITE(system1_backgroundram_w) AM_BASE(&system1_backgroundram) AM_SIZE(&system1_backgroundram_size) | |
| 270 | AM_RANGE(0xf000, 0xf3ff) AM_WRITE(system1_background_collisionram_w) AM_BASE(&system1_background_collisionram) | |
| 271 | AM_RANGE(0xf800, 0xfbff) AM_WRITE(system1_sprites_collisionram_w) AM_BASE(&system1_sprites_collisionram) | |
| 490 | /* remaining signals are video-related */ | |
| 491 | system1_videomode_w(space, 0, data); | |
| 492 | } | |
| 272 | 493 | |
| 273 | /* needed for P.O.S.T. */ | |
| 274 | AM_RANGE(0xd200, 0xd7ff) AM_WRITE(SMH_RAM) | |
| 275 | AM_RANGE(0xde00, 0xdfff) AM_WRITE(SMH_RAM) | |
| 276 | AM_RANGE(0xef00, 0xefff) AM_WRITE(SMH_RAM) | |
| 277 | ADDRESS_MAP_END | |
| 278 | 494 | |
| 279 | static ADDRESS_MAP_START( dakkochn_writemem, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 280 | AM_RANGE(0x0000, 0x7fff) AM_WRITE(SMH_ROM) | |
| 281 | AM_RANGE(0x8000, 0xbfff) AM_WRITE(SMH_ROM) | |
| 282 | AM_RANGE(0xc000, 0xcfff) AM_WRITE(SMH_RAM) // ROM | |
| 283 | AM_RANGE(0xd000, 0xd1ff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size) | |
| 284 | AM_RANGE(0xd800, 0xddff) AM_WRITE(system1_paletteram_w) AM_BASE(&paletteram) | |
| 285 | AM_RANGE(0xe7bb, 0xe7bb) AM_WRITE(SMH_RAM) AM_BASE(&system1_scroll_y) //TODO: hook it up | |
| 286 | AM_RANGE(0xe7c0, 0xe7ff) AM_WRITE(choplifter_scroll_x_w) AM_BASE(&system1_scrollx_ram) | |
| 287 | AM_RANGE(0xe000, 0xe7ff) AM_WRITE(SMH_RAM) AM_BASE(&system1_videoram) AM_SIZE(&system1_videoram_size) | |
| 288 | AM_RANGE(0xe800, 0xeeff) AM_WRITE(system1_backgroundram_w) AM_BASE(&system1_backgroundram) AM_SIZE(&system1_backgroundram_size) | |
| 289 | AM_RANGE(0xf000, 0xf3ff) AM_WRITE(system1_background_collisionram_w) AM_BASE(&system1_background_collisionram) | |
| 290 | AM_RANGE(0xf800, 0xfbff) AM_WRITE(system1_sprites_collisionram_w) AM_BASE(&system1_sprites_collisionram) | |
| 291 | 495 | |
| 292 | /* needed for P.O.S.T. */ | |
| 293 | AM_RANGE(0xd200, 0xd7ff) AM_WRITE(SMH_RAM) | |
| 294 | AM_RANGE(0xde00, 0xdfff) AM_WRITE(SMH_RAM) | |
| 295 | AM_RANGE(0xef00, 0xefff) AM_WRITE(SMH_RAM) | |
| 296 | ADDRESS_MAP_END | |
| 496 | /************************************* | |
| 497 | * | |
| 498 | * DakkoChan House custom inputs | |
| 499 | * | |
| 500 | *************************************/ | |
| 297 | 501 | |
| 298 | static ADDRESS_MAP_START( nobo_writemem, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 299 | AM_RANGE(0x0000, 0x7fff) AM_WRITE(SMH_ROM) | |
| 300 | AM_RANGE(0x8000, 0xbfff) AM_WRITE(SMH_ROM) | |
| 301 | AM_RANGE(0xc000, 0xc3ff) AM_WRITE(system1_background_collisionram_w) AM_BASE(&system1_background_collisionram) | |
| 302 | AM_RANGE(0xc800, 0xcbff) AM_WRITE(system1_sprites_collisionram_w) AM_BASE(&system1_sprites_collisionram) | |
| 303 | AM_RANGE(0xd000, 0xd1ff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size) | |
| 304 | AM_RANGE(0xd200, 0xd7ff) AM_WRITE(SMH_RAM) | |
| 305 | AM_RANGE(0xd800, 0xddff) AM_WRITE(system1_paletteram_w) AM_BASE(&paletteram) | |
| 306 | AM_RANGE(0xde00, 0xdfff) AM_WRITE(SMH_RAM) | |
| 307 | AM_RANGE(0xe000, 0xe7ff) AM_WRITE(system1_backgroundram_w) AM_BASE(&system1_backgroundram) AM_SIZE(&system1_backgroundram_size) | |
| 308 | AM_RANGE(0xe800, 0xeeff) AM_WRITE(SMH_RAM) AM_BASE(&system1_videoram) AM_SIZE(&system1_videoram_size) | |
| 309 | AM_RANGE(0xefbd, 0xefbd) AM_WRITE(SMH_RAM) AM_BASE(&system1_scroll_y) | |
| 310 | AM_RANGE(0xeffc, 0xeffd) AM_WRITE(SMH_RAM) AM_BASE(&system1_scroll_x) | |
| 311 | AM_RANGE(0xf000, 0xffff) AM_WRITE(SMH_RAM) | |
| 502 | static CUSTOM_INPUT( dakkochn_mux_data_r ) | |
| 503 | { | |
| 504 | static const char *ports[] = { "KEY0", "KEY1", "KEY2", "KEY3", "KEY4", "KEY5", "KEY6" }; | |
| 505 | return input_port_read(field->port->machine, ports[dakkochn_mux_data]); | |
| 506 | } | |
| 312 | 507 | |
| 313 | /* These addresses are written during P.O.S.T. but don't seem to be used after */ | |
| 314 | AM_RANGE(0xc400, 0xc7ff) AM_WRITE(SMH_RAM) | |
| 315 | AM_RANGE(0xcc00, 0xcfff) AM_WRITE(SMH_RAM) | |
| 316 | AM_RANGE(0xd200, 0xd7ff) AM_WRITE(SMH_RAM) | |
| 317 | AM_RANGE(0xde00, 0xdfff) AM_WRITE(SMH_RAM) | |
| 318 | AM_RANGE(0xef00, 0xefbc) AM_WRITE(SMH_RAM) | |
| 319 | AM_RANGE(0xefbe, 0xeffb) AM_WRITE(SMH_RAM) | |
| 320 | AM_RANGE(0xeffe, 0xefff) AM_WRITE(SMH_RAM) | |
| 321 | ADDRESS_MAP_END | |
| 322 | 508 | |
| 509 | static CUSTOM_INPUT( dakkochn_mux_status_r ) | |
| 510 | { | |
| 511 | /* reads from here indicate which mux port is selected */ | |
| 512 | return 1 << (dakkochn_mux_data); | |
| 513 | } | |
| 323 | 514 | |
| 324 | static ADDRESS_MAP_START( io_map, ADDRESS_SPACE_IO, 8 ) | |
| 325 | ADDRESS_MAP_GLOBAL_MASK(0xff) | |
| 326 | AM_RANGE(0x00, 0x00) AM_READ_PORT("P1") | |
| 327 | AM_RANGE(0x04, 0x04) AM_READ_PORT("P2") | |
| 328 | AM_RANGE(0x08, 0x08) AM_READ_PORT("SYSTEM") | |
| 329 | AM_RANGE(0x0c, 0x0c) AM_READ_PORT("DSW2") /* DIP2 */ | |
| 330 | AM_RANGE(0x0e, 0x0e) AM_READ_PORT("DSW2") /* DIP2 blckgalb reads it from here */ | |
| 331 | AM_RANGE(0x0d, 0x0d) AM_READ_PORT("DSW1") /* DIP1 some games read it from here... */ | |
| 332 | AM_RANGE(0x10, 0x10) AM_READ_PORT("DSW1") /* DIP1 ... and some others from here but there are games which check BOTH! */ | |
| 333 | AM_RANGE(0x11, 0x11) AM_READ_PORT("DSW2") /* DIP2 ... blockgal */ | |
| 334 | AM_RANGE(0x14, 0x14) AM_WRITE(system1_soundport_w) /* sound commands */ | |
| 335 | AM_RANGE(0x15, 0x15) AM_READWRITE(system1_videomode_r, system1_videomode_w) /* video control and (in some games) bank switching */ | |
| 336 | AM_RANGE(0x18, 0x18) AM_WRITE(system1_soundport_w) /* mirror address */ | |
| 337 | AM_RANGE(0x19, 0x19) AM_READWRITE(system1_videomode_r, system1_videomode_w) /* mirror address */ | |
| 338 | ADDRESS_MAP_END | |
| 339 | 515 | |
| 340 | static ADDRESS_MAP_START( wbml_io_map, ADDRESS_SPACE_IO, 8 ) | |
| 341 | ADDRESS_MAP_GLOBAL_MASK(0xff) | |
| 342 | AM_RANGE(0x00, 0x00) AM_READ_PORT("P1") | |
| 343 | AM_RANGE(0x04, 0x04) AM_READ_PORT("P2") | |
| 344 | AM_RANGE(0x08, 0x08) AM_READ_PORT("SYSTEM") | |
| 345 | AM_RANGE(0x0c, 0x0c) AM_READ_PORT("DSW2") /* DIP2 */ | |
| 346 | AM_RANGE(0x0d, 0x0d) AM_READ_PORT("DSW1") /* DIP1 some games read it from here... */ | |
| 347 | AM_RANGE(0x10, 0x10) AM_READ_PORT("DSW1") /* DIP1 ... and some others from here but there are games which check BOTH! */ | |
| 348 | AM_RANGE(0x14, 0x14) AM_WRITE(system1_soundport_w) /* sound commands */ | |
| 349 | AM_RANGE(0x15, 0x15) AM_READWRITE(system1_videomode_r, chplft_videomode_w) | |
| 350 | AM_RANGE(0x16, 0x16) AM_READWRITE(wbml_videoram_bank_latch_r, wbml_videoram_bank_latch_w) | |
| 351 | AM_RANGE(0x19, 0x19) AM_READ(system1_videomode_r) /* mirror address */ | |
| 352 | ADDRESS_MAP_END | |
| 516 | static void dakkochn_custom_w(running_machine *machine, UINT8 data, UINT8 prevdata) | |
| 517 | { | |
| 518 | /* bit 1 toggling on clocks the mux; we store the previous state in the high bit of dakkochn_mux_data */ | |
| 519 | if ((data & 0x02) && !(prevdata & 0x02)) | |
| 520 | dakkochn_mux_data = (dakkochn_mux_data + 1) % 7; | |
| 353 | 521 | |
| 354 | static ADDRESS_MAP_START( sht_io_map, ADDRESS_SPACE_IO, 8 ) | |
| 355 | ADDRESS_MAP_GLOBAL_MASK(0xff) | |
| 356 | /* AM_RANGE(0x00, 0x00) AM_READ_PORT("P1") */ | |
| 357 | /* AM_RANGE(0x04, 0x04) AM_READ_PORT("P2") */ | |
| 358 | AM_RANGE(0x08, 0x08) AM_READ_PORT("SYSTEM") | |
| 359 | AM_RANGE(0x0c, 0x0c) AM_READ_PORT("DSW2") /* DIP2 */ | |
| 360 | AM_RANGE(0x0d, 0x0d) AM_READ_PORT("DSW1") /* DIP1 some games read it from here... */ | |
| 361 | AM_RANGE(0x10, 0x10) AM_READ_PORT("DSW1") AM_WRITE(mcuenable_hack_w) | |
| 362 | /* DIP1 ... and some others from here but there are games which check BOTH! */ | |
| 363 | AM_RANGE(0x12, 0x12) AM_READ_PORT("TRIGGER") | |
| 364 | AM_RANGE(0x14, 0x14) AM_WRITE(system1_soundport_w) /* sound commands */ | |
| 365 | AM_RANGE(0x15, 0x15) AM_READWRITE(system1_videomode_r, chplft_videomode_w) | |
| 366 | AM_RANGE(0x16, 0x16) AM_READWRITE(wbml_videoram_bank_latch_r, wbml_videoram_bank_latch_w) | |
| 367 | AM_RANGE(0x18, 0x18) AM_READ_PORT("18") /* ?? */ | |
| 368 | AM_RANGE(0x19, 0x19) AM_READ(system1_videomode_r) /* mirror address */ | |
| 369 | AM_RANGE(0x1c, 0x1c) AM_READ_PORT("GUNX") | |
| 370 | AM_RANGE(0x1d, 0x1d) AM_READ_PORT("GUNY") | |
| 371 | ADDRESS_MAP_END | |
| 522 | /* remaining stuff acts like bank0c */ | |
| 523 | bank0c_custom_w(machine, data, prevdata); | |
| 524 | } | |
| 372 | 525 | |
| 373 | static ADDRESS_MAP_START( nob_io_map, ADDRESS_SPACE_IO, 8 ) | |
| 374 | ADDRESS_MAP_GLOBAL_MASK(0xff) | |
| 375 | AM_RANGE(0x00, 0x00) AM_READ_PORT("P1") | |
| 376 | AM_RANGE(0x04, 0x04) AM_READ_PORT("P2") | |
| 377 | AM_RANGE(0x08, 0x08) AM_READ_PORT("SYSTEM") | |
| 378 | AM_RANGE(0x0c, 0x0c) AM_READ_PORT("DSW2") /* DIP2 */ | |
| 379 | AM_RANGE(0x0d, 0x0d) AM_READ_PORT("DSW1") /* DIP1 some games read it from here... */ | |
| 380 | AM_RANGE(0x14, 0x14) AM_WRITE(system1_soundport_w) /* sound commands ? */ | |
| 381 | AM_RANGE(0x15, 0x15) AM_READWRITE(system1_videomode_r, brain_videomode_w) /* video control + bank switching */ | |
| 382 | ADDRESS_MAP_END | |
| 383 | 526 | |
| 384 | static ADDRESS_MAP_START( nobb_io_map, ADDRESS_SPACE_IO, 8 ) | |
| 385 | ADDRESS_MAP_GLOBAL_MASK(0xff) | |
| 386 | AM_RANGE(0x00, 0x00) AM_READ_PORT("P1") | |
| 387 | AM_RANGE(0x04, 0x04) AM_READ_PORT("P2") | |
| 388 | AM_RANGE(0x08, 0x08) AM_READ_PORT("SYSTEM") | |
| 389 | AM_RANGE(0x0c, 0x0c) AM_READ_PORT("DSW2") /* DIP2 */ | |
| 390 | AM_RANGE(0x0d, 0x0d) AM_READ_PORT("DSW1") /* DIP1 some games read it from here... */ | |
| 391 | AM_RANGE(0x14, 0x14) AM_WRITE(system1_soundport_w) /* sound commands ? */ | |
| 392 | AM_RANGE(0x15, 0x15) AM_READWRITE(system1_videomode_r, brain_videomode_w) /* video control + bank switching */ | |
| 393 | 527 | |
| 394 | /* protection on the bootleg */ | |
| 395 | AM_RANGE(0x16, 0x16) AM_READWRITE(nobb_inport16_r, nobb_outport16_w) /* Used - check code at 0x05cb */ | |
| 396 | AM_RANGE(0x17, 0x17) AM_WRITE(nobb_outport17_w) /* Not handled in emul. of other SS1/2 games */ | |
| 397 | AM_RANGE(0x1c, 0x1c) AM_READ(nobb_inport1c_r) /* Shouldn't be called ! */ | |
| 398 | AM_RANGE(0x22, 0x22) AM_READ(nobb_inport22_r) /* Used - check code at 0xb253 */ | |
| 399 | AM_RANGE(0x23, 0x23) AM_READ(nobb_inport23_r) /* Used - check code at 0xb275 and 0xb283 */ | |
| 400 | AM_RANGE(0x24, 0x24) AM_WRITE(nobb_outport24_w) /* Used - check code at 0xb24e and 0xb307 */ | |
| 528 | /************************************* | |
| 529 | * | |
| 530 | * Sound I/O | |
| 531 | * | |
| 532 | *************************************/ | |
| 533 | ||
| 534 | static WRITE8_DEVICE_HANDLER( sound_control_w ) | |
| 535 | { | |
| 536 | /* bit 0 = MUTE */ | |
| 537 | sound_global_enable(~(data & 1)); | |
| 538 | ||
| 539 | /* bit 6 = feedback from sound board that read occurrred */ | |
| 540 | ||
| 541 | /* bit 7 controls the sound CPU's NMI line */ | |
| 542 | cputag_set_input_line(device->machine, "soundcpu", INPUT_LINE_NMI, (data & 0x80) ? CLEAR_LINE : ASSERT_LINE); | |
| 543 | ||
| 544 | /* remaining bits are used for video RAM banking */ | |
| 545 | system1_videoram_bank_w(device, offset, data); | |
| 546 | } | |
| 547 | ||
| 548 | ||
| 549 | static READ8_HANDLER( sound_data_r ) | |
| 550 | { | |
| 551 | const device_config *ppi = devtag_get_device(space->machine, "ppi"); | |
| 552 | const device_config *pio = devtag_get_device(space->machine, "pio"); | |
| 553 | ||
| 554 | /* if we have an 8255 PPI, get the data from the port and toggle the ack */ | |
| 555 | if (ppi != NULL) | |
| 556 | { | |
| 557 | UINT8 initial_value = ppi8255_get_port_c(ppi); | |
| 558 | ppi8255_set_port_c(ppi, initial_value & ~0x40); | |
| 559 | ppi8255_set_port_c(ppi, initial_value | 0x40); | |
| 560 | return soundlatch_r(space, offset); | |
| 561 | } | |
| 562 | ||
| 563 | /* if we have a Z80 PIO, just do a port read which will auto-ack */ | |
| 564 | else if (pio != NULL) | |
| 565 | return z80pio_p_r(pio, 0); | |
| 566 | ||
| 567 | return 0xff; | |
| 568 | } | |
| 569 | ||
| 570 | ||
| 571 | static WRITE8_HANDLER( soundport_w ) | |
| 572 | { | |
| 573 | /* boost interleave when communicating with the sound CPU */ | |
| 574 | soundlatch_w(space, 0, data); | |
| 575 | cpuexec_boost_interleave(space->machine, attotime_zero, ATTOTIME_IN_USEC(100)); | |
| 576 | } | |
| 577 | ||
| 578 | ||
| 579 | static TIMER_DEVICE_CALLBACK( soundirq_gen ) | |
| 580 | { | |
| 581 | /* sound IRQ is generated on 32V, 96V, ... and auto-acknowledged */ | |
| 582 | cputag_set_input_line(timer->machine, "soundcpu", 0, HOLD_LINE); | |
| 583 | } | |
| 584 | ||
| 585 | ||
| 586 | static WRITE_LINE_DEVICE_HANDLER( pio_ready_w ) | |
| 587 | { | |
| 588 | cputag_set_input_line(device->machine, "soundcpu", INPUT_LINE_NMI, state ? ASSERT_LINE : CLEAR_LINE); | |
| 589 | } | |
| 590 | ||
| 591 | ||
| 592 | ||
| 593 | /************************************* | |
| 594 | * | |
| 595 | * Generic port definitions | |
| 596 | * | |
| 597 | *************************************/ | |
| 598 | ||
| 599 | // nobb - these ports are used for some kind of replacement protection system used by the bootleg | |
| 600 | static int nobb_inport23_step; | |
| 601 | ||
| 602 | static READ8_HANDLER( nobb_inport1c_r ) | |
| 603 | { | |
| 604 | // logerror("IN $1c : pc = %04x - data = 0x80\n",cpu_get_pc(space->cpu)); | |
| 605 | return(0x80); // infinite loop (at 0x0fb3) until bit 7 is set | |
| 606 | } | |
| 607 | ||
| 608 | static READ8_HANDLER( nobb_inport22_r ) | |
| 609 | { | |
| 610 | // logerror("IN $22 : pc = %04x - data = %02x\n",cpu_get_pc(space->cpu),nobb_inport17_step); | |
| 611 | return(0);//nobb_inport17_step); | |
| 612 | } | |
| 613 | ||
| 614 | static READ8_HANDLER( nobb_inport23_r ) | |
| 615 | { | |
| 616 | // logerror("IN $23 : pc = %04x - step = %02x\n",cpu_get_pc(space->cpu),nobb_inport23_step); | |
| 617 | return(nobb_inport23_step); | |
| 618 | } | |
| 619 | ||
| 620 | static WRITE8_HANDLER( nobb_outport24_w ) | |
| 621 | { | |
| 622 | // logerror("OUT $24 : pc = %04x - data = %02x\n",cpu_get_pc(space->cpu),data); | |
| 623 | nobb_inport23_step = data; | |
| 624 | } | |
| 625 | ||
| 626 | ||
| 627 | ||
| 628 | /************************************* | |
| 629 | * | |
| 630 | * Main CPU address maps | |
| 631 | * | |
| 632 | *************************************/ | |
| 633 | ||
| 634 | /* main memory map */ | |
| 635 | static ADDRESS_MAP_START( system1_map, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 636 | AM_RANGE(0x0000, 0x7fff) AM_ROM | |
| 637 | AM_RANGE(0x8000, 0xbfff) AM_ROMBANK(1) | |
| 638 | AM_RANGE(0xc000, 0xcfff) AM_RAM AM_BASE(&system1_ram) | |
| 639 | AM_RANGE(0xd000, 0xd7ff) AM_RAM AM_BASE(&spriteram) | |
| 640 | AM_RANGE(0xd800, 0xdfff) AM_RAM_WRITE(system1_paletteram_w) AM_BASE(&paletteram) | |
| 641 | AM_RANGE(0xe000, 0xefff) AM_READWRITE(system1_videoram_r, system1_videoram_w) | |
| 642 | AM_RANGE(0xf000, 0xf3ff) AM_READWRITE(system1_mixer_collision_r, system1_mixer_collision_w) | |
| 643 | AM_RANGE(0xf400, 0xf7ff) AM_WRITE(system1_mixer_collision_reset_w) | |
| 644 | AM_RANGE(0xf800, 0xfbff) AM_READWRITE(system1_sprite_collision_r, system1_sprite_collision_w) | |
| 645 | AM_RANGE(0xfc00, 0xffff) AM_WRITE(system1_sprite_collision_reset_w) | |
| 401 | 646 | ADDRESS_MAP_END |
| 402 | 647 | |
| 403 | static ADDRESS_MAP_START( hvymetal_io_map, ADDRESS_SPACE_IO, 8 ) | |
| 404 | ADDRESS_MAP_GLOBAL_MASK(0xff) | |
| 405 | AM_RANGE(0x00, 0x00) AM_READ_PORT("P1") | |
| 406 | AM_RANGE(0x04, 0x04) AM_READ_PORT("P2") | |
| 407 | AM_RANGE(0x08, 0x08) AM_READ_PORT("SYSTEM") | |
| 408 | AM_RANGE(0x0c, 0x0c) AM_READ_PORT("DSW2") /* DIP2 */ | |
| 409 | AM_RANGE(0x0d, 0x0d) AM_READ_PORT("DSW1") /* DIP1 some games read it from here... */ | |
| 410 | AM_RANGE(0x10, 0x10) AM_READ_PORT("DSW1") /* DIP1 ... and some others from here but there are games which check BOTH! */ | |
| 411 | AM_RANGE(0x15, 0x15) AM_READ(system1_videomode_r) | |
| 412 | AM_RANGE(0x16, 0x16) AM_READ(wbml_videoram_bank_latch_r) | |
| 413 | AM_RANGE(0x18, 0x18) AM_WRITE(system1_soundport_w) /* sound commands */ | |
| 414 | AM_RANGE(0x19, 0x19) AM_READWRITE(system1_videomode_r, hvymetal_videomode_w) /* mirror address */ | |
| 648 | /* same as normal System 1 except address map is shuffled (RAM/collision are swapped) */ | |
| 649 | static ADDRESS_MAP_START( nobo_map, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 650 | AM_RANGE(0x0000, 0x7fff) AM_ROM | |
| 651 | AM_RANGE(0x8000, 0xbfff) AM_ROMBANK(1) | |
| 652 | AM_RANGE(0xc000, 0xc3ff) AM_READWRITE(system1_mixer_collision_r, system1_mixer_collision_w) | |
| 653 | AM_RANGE(0xc400, 0xc7ff) AM_WRITE(system1_mixer_collision_reset_w) | |
| 654 | AM_RANGE(0xc800, 0xcbff) AM_READWRITE(system1_sprite_collision_r, system1_sprite_collision_w) | |
| 655 | AM_RANGE(0xcc00, 0xcfff) AM_WRITE(system1_sprite_collision_reset_w) | |
| 656 | AM_RANGE(0xd000, 0xd7ff) AM_RAM AM_BASE(&spriteram) | |
| 657 | AM_RANGE(0xd800, 0xdfff) AM_RAM_WRITE(system1_paletteram_w) AM_BASE(&paletteram) | |
| 658 | AM_RANGE(0xe000, 0xefff) AM_READWRITE(system1_videoram_r, system1_videoram_w) | |
| 659 | AM_RANGE(0xf000, 0xffff) AM_RAM AM_BASE(&system1_ram) | |
| 415 | 660 | ADDRESS_MAP_END |
| 416 | 661 | |
| 417 | static ADDRESS_MAP_START( brain_io_map, ADDRESS_SPACE_IO, 8 ) | |
| 418 | ADDRESS_MAP_GLOBAL_MASK(0xff) | |
| 419 | AM_RANGE(0x00, 0x00) AM_READ_PORT("P1") | |
| 420 | AM_RANGE(0x04, 0x04) AM_READ_PORT("P2") | |
| 421 | AM_RANGE(0x08, 0x08) AM_READ_PORT("SYSTEM") | |
| 422 | AM_RANGE(0x0c, 0x0c) AM_READ_PORT("DSW2") /* DIP2 */ | |
| 423 | AM_RANGE(0x0e, 0x0e) AM_READ_PORT("DSW2") /* DIP2 blckgalb reads it from here */ | |
| 424 | AM_RANGE(0x0d, 0x0d) AM_READ_PORT("DSW1") /* DIP1 some games read it from here... */ | |
| 425 | AM_RANGE(0x10, 0x10) AM_READ_PORT("DSW1") /* DIP1 ... and some others from here but there are games which check BOTH! */ | |
| 426 | AM_RANGE(0x11, 0x11) AM_READ_PORT("DSW2") /* DIP2 ... blockgal */ | |
| 427 | AM_RANGE(0x15, 0x15) AM_READ(system1_videomode_r) | |
| 428 | AM_RANGE(0x18, 0x18) AM_WRITE(system1_soundport_w) /* sound commands */ | |
| 429 | AM_RANGE(0x19, 0x19) AM_READWRITE(system1_videomode_r, brain_videomode_w) /* mirror address */ | |
| 662 | /* I/O map for systems with an 8255 PPI */ | |
| 663 | static ADDRESS_MAP_START( system1_ppi_io_map, ADDRESS_SPACE_IO, 8 ) | |
| 664 | ADDRESS_MAP_GLOBAL_MASK(0x1f) | |
| 665 | AM_RANGE(0x00, 0x00) AM_MIRROR(0x03) AM_READ_PORT("P1") | |
| 666 | AM_RANGE(0x04, 0x04) AM_MIRROR(0x03) AM_READ_PORT("P2") | |
| 667 | AM_RANGE(0x08, 0x08) AM_MIRROR(0x03) AM_READ_PORT("SYSTEM") | |
| 668 | AM_RANGE(0x0c, 0x0c) AM_MIRROR(0x02) AM_READ_PORT("SWA") /* DIP2 */ | |
| 669 | AM_RANGE(0x0d, 0x0d) AM_MIRROR(0x02) AM_READ_PORT("SWB") /* DIP1 some games read it from here... */ | |
| 670 | AM_RANGE(0x10, 0x10) AM_MIRROR(0x03) AM_READ_PORT("SWB") /* DIP1 ... and some others from here but there are games which check BOTH! */ | |
| 671 | AM_RANGE(0x14, 0x17) AM_DEVREADWRITE("ppi", ppi8255_r, ppi8255_w) | |
| 430 | 672 | ADDRESS_MAP_END |
| 431 | 673 | |
| 432 | static ADDRESS_MAP_START( chplft_io_map, ADDRESS_SPACE_IO, 8 ) | |
| 433 | ADDRESS_MAP_GLOBAL_MASK(0xff) | |
| 434 | AM_RANGE(0x00, 0x00) AM_READ_PORT("P1") | |
| 435 | AM_RANGE(0x04, 0x04) AM_READ_PORT("P2") | |
| 436 | AM_RANGE(0x08, 0x08) AM_READ_PORT("SYSTEM") | |
| 437 | AM_RANGE(0x0c, 0x0c) AM_READ_PORT("DSW2") /* DIP2 */ | |
| 438 | AM_RANGE(0x0d, 0x0d) AM_READ_PORT("DSW1") /* DIP1 some games read it from here... */ | |
| 439 | AM_RANGE(0x10, 0x10) AM_READ_PORT("DSW1") /* DIP1 ... and some others from here but there are games which check BOTH! */ | |
| 440 | AM_RANGE(0x14, 0x14) AM_WRITE(system1_soundport_w) /* sound commands */ | |
| 441 | AM_RANGE(0x15, 0x15) AM_READWRITE(system1_videomode_r, chplft_videomode_w) | |
| 442 | AM_RANGE(0x16, 0x16) AM_READ(wbml_videoram_bank_latch_r) | |
| 443 | AM_RANGE(0x19, 0x19) AM_READ(system1_videomode_r) /* mirror address */ | |
| 674 | /* I/O map for systems with a Z80 PIO chip */ | |
| 675 | static ADDRESS_MAP_START( system1_pio_io_map, ADDRESS_SPACE_IO, 8 ) | |
| 676 | ADDRESS_MAP_GLOBAL_MASK(0x1f) | |
| 677 | AM_RANGE(0x00, 0x00) AM_MIRROR(0x03) AM_READ_PORT("P1") | |
| 678 | AM_RANGE(0x04, 0x04) AM_MIRROR(0x03) AM_READ_PORT("P2") | |
| 679 | AM_RANGE(0x08, 0x08) AM_MIRROR(0x03) AM_READ_PORT("SYSTEM") | |
| 680 | AM_RANGE(0x0c, 0x0c) AM_MIRROR(0x02) AM_READ_PORT("SWA") /* DIP2 */ | |
| 681 | AM_RANGE(0x0d, 0x0d) AM_MIRROR(0x02) AM_READ_PORT("SWB") /* DIP1 some games read it from here... */ | |
| 682 | AM_RANGE(0x10, 0x10) AM_MIRROR(0x03) AM_READ_PORT("SWB") /* DIP1 ... and some others from here but there are games which check BOTH! */ | |
| 683 | AM_RANGE(0x18, 0x1b) AM_DEVREADWRITE("pio", z80pio_r, z80pio_w) | |
| 444 | 684 | ADDRESS_MAP_END |
| 445 | 685 | |
| 446 | 686 | |
| 687 | ||
| 688 | /************************************* | |
| 689 | * | |
| 690 | * Sound CPU address maps | |
| 691 | * | |
| 692 | *************************************/ | |
| 693 | ||
| 447 | 694 | static ADDRESS_MAP_START( sound_map, ADDRESS_SPACE_PROGRAM, 8 ) |
| 448 | 695 | AM_RANGE(0x0000, 0x7fff) AM_ROM |
| 449 | 696 | AM_RANGE(0x8000, 0x87ff) AM_MIRROR(0x1800) AM_RAM |
| 450 | AM_RANGE(0xa000, 0xa003) AM_MIRROR(0x1ffc) AM_DEVWRITE("sn1", sn76496_w) /* Choplifter writes to the four addresses */ | |
| 451 | AM_RANGE(0xc000, 0xc003) AM_MIRROR(0x1ffc) AM_DEVWRITE("sn2", sn76496_w) /* in sequence */ | |
| 452 | AM_RANGE(0xe000, 0xe000) AM_MIRROR(0x1fff) AM_READ(soundlatch_r) | |
| 697 | AM_RANGE(0xa000, 0xa003) AM_MIRROR(0x1fff) AM_DEVWRITE("sn1", sn76496_w) | |
| 698 | AM_RANGE(0xc000, 0xc003) AM_MIRROR(0x1fff) AM_DEVWRITE("sn2", sn76496_w) | |
| 699 | AM_RANGE(0xe000, 0xe000) AM_MIRROR(0x1fff) AM_READ(sound_data_r) | |
| 453 | 700 | ADDRESS_MAP_END |
| 454 | 701 | |
| 455 | 702 | |
| 703 | ||
| 456 | 704 | /************************************* |
| 457 | 705 | * |
| 458 | 706 | * Generic port definitions |
| r4470 | r4471 | |
| 490 | 738 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) |
| 491 | 739 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) |
| 492 | 740 | |
| 493 | PORT_START("DSW1") | |
| 494 | PORT_DIPNAME( 0x01, 0x00, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SWB:1") | |
| 495 | PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) | |
| 496 | PORT_DIPSETTING( 0x01, DEF_STR( Cocktail ) ) | |
| 497 | PORT_DIPUNUSED_DIPLOC( 0x02, 0x02, "SWB:2" ) | |
| 498 | PORT_DIPUNUSED_DIPLOC( 0x04, 0x04, "SWB:3" ) | |
| 499 | PORT_DIPUNUSED_DIPLOC( 0x08, 0x08, "SWB:4" ) | |
| 500 | PORT_DIPUNUSED_DIPLOC( 0x10, 0x10, "SWB:5" ) | |
| 501 | PORT_DIPUNUSED_DIPLOC( 0x20, 0x20, "SWB:6" ) | |
| 502 | PORT_DIPUNUSED_DIPLOC( 0x40, 0x40, "SWB:7" ) | |
| 503 | /* If you don't like the description, feel free to change it */ | |
| 504 | PORT_DIPNAME( 0x80, 0x80, "SW 0 Read From" ) PORT_DIPLOCATION("SWB:8") | |
| 505 | PORT_DIPSETTING( 0x80, "Port $0D" ) | |
| 506 | PORT_DIPSETTING( 0x00, "Port $10" ) | |
| 507 | ||
| 508 | PORT_START("DSW2") | |
| 741 | PORT_START("SWA") | |
| 509 | 742 | PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SWA:1,2,3,4") |
| 510 | 743 | PORT_DIPSETTING( 0x07, DEF_STR( 4C_1C ) ) |
| 511 | 744 | PORT_DIPSETTING( 0x08, DEF_STR( 3C_1C ) ) |
| r4470 | r4471 | |
| 540 | 773 | PORT_DIPSETTING( 0xb0, DEF_STR( 1C_5C ) ) |
| 541 | 774 | PORT_DIPSETTING( 0xa0, DEF_STR( 1C_6C ) ) |
| 542 | 775 | /* PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) ) Not allowed by mame coinage sorting, but valid */ |
| 776 | ||
| 777 | PORT_START("SWB") | |
| 778 | PORT_DIPNAME( 0x01, 0x00, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SWB:1") | |
| 779 | PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) | |
| 780 | PORT_DIPSETTING( 0x01, DEF_STR( Cocktail ) ) | |
| 781 | PORT_DIPUNUSED_DIPLOC( 0x02, 0x02, "SWB:2" ) | |
| 782 | PORT_DIPUNUSED_DIPLOC( 0x04, 0x04, "SWB:3" ) | |
| 783 | PORT_DIPUNUSED_DIPLOC( 0x08, 0x08, "SWB:4" ) | |
| 784 | PORT_DIPUNUSED_DIPLOC( 0x10, 0x10, "SWB:5" ) | |
| 785 | PORT_DIPUNUSED_DIPLOC( 0x20, 0x20, "SWB:6" ) | |
| 786 | PORT_DIPUNUSED_DIPLOC( 0x40, 0x40, "SWB:7" ) | |
| 787 | /* If you don't like the description, feel free to change it */ | |
| 788 | PORT_DIPNAME( 0x80, 0x80, "SW 0 Read From" ) PORT_DIPLOCATION("SWB:8") | |
| 789 | PORT_DIPSETTING( 0x80, "Port $0D" ) | |
| 790 | PORT_DIPSETTING( 0x00, "Port $10" ) | |
| 543 | 791 | INPUT_PORTS_END |
| 544 | 792 | |
| 793 | ||
| 794 | ||
| 545 | 795 | /************************************* |
| 546 | 796 | * |
| 547 | 797 | * Game-specific port definitions |
| r4470 | r4471 | |
| 551 | 801 | static INPUT_PORTS_START( starjack ) |
| 552 | 802 | PORT_INCLUDE( system1_generic ) |
| 553 | 803 | |
| 554 | PORT_MODIFY(" | |
| 804 | PORT_MODIFY(" | |
| 555 | 805 | PORT_DIPNAME( 0x06, 0x06, DEF_STR( Lives ) ) PORT_DIPLOCATION("SWB:2,3") |
| 556 | 806 | PORT_DIPSETTING( 0x06, "3" ) |
| 557 | 807 | PORT_DIPSETTING( 0x04, "4" ) |
| r4470 | r4471 | |
| 573 | 823 | PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) |
| 574 | 824 | INPUT_PORTS_END |
| 575 | 825 | |
| 576 | static INPUT_PORTS_START( starjacs ) | |
| 826 | static INPUT_PORTS_START( starjacks ) | |
| 577 | 827 | PORT_INCLUDE( starjack ) |
| 578 | 828 | |
| 579 | PORT_MODIFY(" | |
| 829 | PORT_MODIFY(" | |
| 580 | 830 | PORT_DIPNAME( 0x08, 0x08, "Ship" ) PORT_DIPLOCATION("SWB:4") |
| 581 | 831 | PORT_DIPSETTING( 0x08, DEF_STR( Single ) ) |
| 582 | 832 | PORT_DIPSETTING( 0x00, "Multi" ) |
| r4470 | r4471 | |
| 587 | 837 | PORT_DIPSETTING( 0x00, "60k, then every 70k" ) |
| 588 | 838 | INPUT_PORTS_END |
| 589 | 839 | |
| 840 | ||
| 590 | 841 | static INPUT_PORTS_START( regulus ) |
| 591 | 842 | PORT_INCLUDE( system1_generic ) |
| 592 | 843 | |
| 593 | PORT_MODIFY(" | |
| 844 | PORT_MODIFY(" | |
| 594 | 845 | PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Lives ) ) PORT_DIPLOCATION("SWB:3,4") |
| 595 | 846 | PORT_DIPSETTING( 0x0c, "3" ) |
| 596 | 847 | PORT_DIPSETTING( 0x08, "4" ) |
| r4470 | r4471 | |
| 608 | 859 | static INPUT_PORTS_START( reguluso ) |
| 609 | 860 | PORT_INCLUDE( regulus ) |
| 610 | 861 | |
| 611 | PORT_MODIFY(" | |
| 862 | PORT_MODIFY(" | |
| 612 | 863 | PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "SWB:8" ) |
| 613 | 864 | INPUT_PORTS_END |
| 614 | 865 | |
| r4470 | r4471 | |
| 621 | 872 | PORT_MODIFY("P2") |
| 622 | 873 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* no button 2 */ |
| 623 | 874 | |
| 624 | PORT_MODIFY(" | |
| 875 | PORT_MODIFY(" | |
| 625 | 876 | PORT_DIPNAME( 0x06, 0x06, DEF_STR( Lives ) ) PORT_DIPLOCATION("SWB:2,3") |
| 626 | 877 | PORT_DIPSETTING( 0x06, "3" ) |
| 627 | 878 | PORT_DIPSETTING( 0x04, "4" ) |
| r4470 | r4471 | |
| 654 | 905 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL |
| 655 | 906 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL |
| 656 | 907 | |
| 657 | PORT_MODIFY(" | |
| 908 | PORT_MODIFY(" | |
| 658 | 909 | PORT_DIPNAME( 0x02, 0x00, "Maximum Credits" ) PORT_DIPLOCATION("SWB:2") |
| 659 | 910 | PORT_DIPSETTING( 0x02, "9" ) |
| 660 | 911 | PORT_DIPSETTING( 0x00, "99" ) |
| r4470 | r4471 | |
| 675 | 926 | |
| 676 | 927 | /* Same as 'mrviking', but no "Maximum Credits" Dip Switch and "Difficulty" Dip Switch is |
| 677 | 928 | handled by bit 7 instead of bit 6 (so bit 6 is unused) */ |
| 678 | static INPUT_PORTS_START( mrvikngj ) | |
| 929 | static INPUT_PORTS_START( mrvikingj ) | |
| 679 | 930 | PORT_INCLUDE( mrviking ) |
| 680 | 931 | |
| 681 | PORT_MODIFY(" | |
| 932 | PORT_MODIFY(" | |
| 682 | 933 | PORT_DIPUNUSED_DIPLOC( 0x02, 0x02, "SWB:2" ) |
| 683 | 934 | PORT_DIPUNUSED_DIPLOC( 0x40, 0x40, "SWB:7" ) |
| 684 | 935 | PORT_DIPNAME( 0x80, 0x80, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SWB:8") |
| r4470 | r4471 | |
| 689 | 940 | static INPUT_PORTS_START( swat ) |
| 690 | 941 | PORT_INCLUDE( system1_generic ) |
| 691 | 942 | |
| 692 | PORT_MODIFY(" | |
| 943 | PORT_MODIFY(" | |
| 693 | 944 | PORT_DIPNAME( 0x06, 0x06, DEF_STR( Lives ) ) PORT_DIPLOCATION("SWB:2,3") |
| 694 | 945 | PORT_DIPSETTING( 0x06, "3" ) |
| 695 | 946 | PORT_DIPSETTING( 0x04, "4" ) |
| r4470 | r4471 | |
| 724 | 975 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_COCKTAIL |
| 725 | 976 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_COCKTAIL |
| 726 | 977 | |
| 727 | PORT_MODIFY(" | |
| 978 | PORT_MODIFY(" | |
| 728 | 979 | PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Lives ) ) PORT_DIPLOCATION("SWB:3,4") |
| 729 | 980 | PORT_DIPSETTING( 0x0c, "3" ) |
| 730 | 981 | PORT_DIPSETTING( 0x08, "4" ) |
| r4470 | r4471 | |
| 767 | 1018 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON1 ) /* TURN P1 */ |
| 768 | 1019 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL /* TURN P2 */ |
| 769 | 1020 | |
| 770 | PORT_MODIFY(" | |
| 1021 | PORT_MODIFY(" | |
| 771 | 1022 | PORT_DIPNAME( 0x02, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SWB:2") |
| 772 | 1023 | PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) |
| 773 | 1024 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| r4470 | r4471 | |
| 784 | 1035 | static INPUT_PORTS_START( bullfgt ) |
| 785 | 1036 | PORT_INCLUDE( system1_generic ) |
| 786 | 1037 | |
| 787 | PORT_MODIFY(" | |
| 1038 | PORT_MODIFY(" | |
| 788 | 1039 | PORT_DIPNAME( 0x02, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SWB:2") |
| 789 | 1040 | PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) |
| 790 | 1041 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| r4470 | r4471 | |
| 803 | 1054 | static INPUT_PORTS_START( spatter ) |
| 804 | 1055 | PORT_INCLUDE( system1_generic ) |
| 805 | 1056 | |
| 806 | PORT_MODIFY(" | |
| 1057 | PORT_MODIFY(" | |
| 807 | 1058 | PORT_DIPNAME( 0x02, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SWB:2") |
| 808 | 1059 | PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) |
| 809 | 1060 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| r4470 | r4471 | |
| 825 | 1076 | static INPUT_PORTS_START( pitfall2 ) |
| 826 | 1077 | PORT_INCLUDE( system1_generic ) |
| 827 | 1078 | |
| 828 | PORT_MODIFY(" | |
| 1079 | PORT_MODIFY(" | |
| 829 | 1080 | PORT_DIPNAME( 0x02, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SWB:2") |
| 830 | 1081 | PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) |
| 831 | 1082 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| r4470 | r4471 | |
| 846 | 1097 | PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "SWB:8" ) |
| 847 | 1098 | INPUT_PORTS_END |
| 848 | 1099 | |
| 849 | static INPUT_PORTS_START( pitfallu ) | |
| 1100 | static INPUT_PORTS_START( pitfall2u ) | |
| 850 | 1101 | PORT_INCLUDE( pitfall2 ) |
| 851 | 1102 | |
| 852 | PORT_MODIFY(" | |
| 1103 | PORT_MODIFY(" | |
| 853 | 1104 | PORT_DIPNAME( 0x06, 0x06, DEF_STR( Lives ) ) PORT_DIPLOCATION("SWB:2,3") |
| 854 | 1105 | PORT_DIPSETTING( 0x06, "3" ) |
| 855 | 1106 | PORT_DIPSETTING( 0x04, "4" ) |
| r4470 | r4471 | |
| 871 | 1122 | PORT_MODIFY("P2") |
| 872 | 1123 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_COCKTAIL |
| 873 | 1124 | |
| 874 | PORT_MODIFY(" | |
| 1125 | PORT_MODIFY(" | |
| 875 | 1126 | PORT_DIPNAME( 0x02, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SWB:2") |
| 876 | 1127 | PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) |
| 877 | 1128 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| r4470 | r4471 | |
| 894 | 1145 | static INPUT_PORTS_START( imsorry ) |
| 895 | 1146 | PORT_INCLUDE( system1_generic ) |
| 896 | 1147 | |
| 897 | PORT_MODIFY(" | |
| 1148 | PORT_MODIFY(" | |
| 898 | 1149 | PORT_DIPNAME( 0x02, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SWB:2") |
| 899 | 1150 | PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) |
| 900 | 1151 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| r4470 | r4471 | |
| 921 | 1172 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL |
| 922 | 1173 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL |
| 923 | 1174 | |
| 924 | PORT_MODIFY(" | |
| 1175 | PORT_MODIFY(" | |
| 925 | 1176 | PORT_DIPNAME( 0x02, 0x02, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SWB:2") |
| 926 | 1177 | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 927 | 1178 | PORT_DIPSETTING( 0x02, DEF_STR( On ) ) |
| r4470 | r4471 | |
| 951 | 1202 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL |
| 952 | 1203 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL |
| 953 | 1204 | |
| 954 | PORT_MODIFY(" | |
| 1205 | PORT_MODIFY(" | |
| 955 | 1206 | PORT_DIPNAME( 0x02, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SWB:2") |
| 956 | 1207 | PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) |
| 957 | 1208 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| r4470 | r4471 | |
| 984 | 1235 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL |
| 985 | 1236 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL |
| 986 | 1237 | |
| 987 | PORT_MODIFY(" | |
| 1238 | PORT_MODIFY(" | |
| 988 | 1239 | PORT_DIPNAME( 0x02, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SWB:2") |
| 989 | 1240 | PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) |
| 990 | 1241 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| r4470 | r4471 | |
| 1006 | 1257 | static INPUT_PORTS_START( 4dwarrio ) |
| 1007 | 1258 | PORT_INCLUDE( system1_generic ) |
| 1008 | 1259 | |
| 1009 | PORT_MODIFY(" | |
| 1260 | PORT_MODIFY(" | |
| 1010 | 1261 | PORT_DIPNAME( 0x06, 0x06, DEF_STR( Lives ) ) PORT_DIPLOCATION("SWB:2,3") |
| 1011 | 1262 | PORT_DIPSETTING( 0x06, "3" ) |
| 1012 | 1263 | PORT_DIPSETTING( 0x04, "4" ) |
| r4470 | r4471 | |
| 1029 | 1280 | static INPUT_PORTS_START( brain ) |
| 1030 | 1281 | PORT_INCLUDE( system1_generic ) |
| 1031 | 1282 | |
| 1032 | PORT_MODIFY(" | |
| 1283 | PORT_MODIFY(" | |
| 1033 | 1284 | PORT_DIPNAME( 0x02, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SWB:2") |
| 1034 | 1285 | PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) |
| 1035 | 1286 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| r4470 | r4471 | |
| 1055 | 1306 | static INPUT_PORTS_START( gardia ) |
| 1056 | 1307 | PORT_INCLUDE( system1_generic ) |
| 1057 | 1308 | |
| 1058 | PORT_MODIFY(" | |
| 1309 | PORT_MODIFY(" | |
| 1059 | 1310 | PORT_DIPNAME( 0x02, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SWB:2") |
| 1060 | 1311 | PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) |
| 1061 | 1312 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| r4470 | r4471 | |
| 1081 | 1332 | static INPUT_PORTS_START( raflesia ) |
| 1082 | 1333 | PORT_INCLUDE( system1_generic ) |
| 1083 | 1334 | |
| 1084 | PORT_MODIFY(" | |
| 1335 | PORT_MODIFY(" | |
| 1085 | 1336 | PORT_DIPNAME( 0x02, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SWB:2") |
| 1086 | 1337 | PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) |
| 1087 | 1338 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| r4470 | r4471 | |
| 1116 | 1367 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_COCKTAIL |
| 1117 | 1368 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_COCKTAIL |
| 1118 | 1369 | |
| 1119 | PORT_MODIFY(" | |
| 1370 | PORT_MODIFY(" | |
| 1120 | 1371 | PORT_DIPNAME( 0x02, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SWB:2") |
| 1121 | 1372 | PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) |
| 1122 | 1373 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| r4470 | r4471 | |
| 1140 | 1391 | static INPUT_PORTS_START( wboy3 ) |
| 1141 | 1392 | PORT_INCLUDE( wboy ) |
| 1142 | 1393 | |
| 1143 | PORT_MODIFY(" | |
| 1394 | PORT_MODIFY(" | |
| 1144 | 1395 | PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Lives ) ) PORT_DIPLOCATION("SWB:3,4") |
| 1145 | 1396 | PORT_DIPSETTING( 0x0c, "1" ) |
| 1146 | 1397 | PORT_DIPSETTING( 0x08, "2" ) |
| r4470 | r4471 | |
| 1155 | 1406 | PORT_MODIFY("P1") |
| 1156 | 1407 | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNKNOWN ) /* Has to be 0 otherwise the game resets */ |
| 1157 | 1408 | /* if you die after level 1. */ |
| 1158 | PORT_MODIFY(" | |
| 1409 | PORT_MODIFY(" | |
| 1159 | 1410 | PORT_DIPNAME( 0x80, 0x00, "Energy Consumption" ) PORT_DIPLOCATION("SWB:8") |
| 1160 | 1411 | PORT_DIPSETTING( 0x00, "Slow" ) |
| 1161 | 1412 | PORT_DIPSETTING( 0x80, "Fast" ) |
| r4470 | r4471 | |
| 1164 | 1415 | static INPUT_PORTS_START( wboyu ) |
| 1165 | 1416 | PORT_INCLUDE( wboy ) |
| 1166 | 1417 | |
| 1167 | PORT_MODIFY(" | |
| 1418 | PORT_MODIFY(" | |
| 1168 | 1419 | PORT_DIPNAME( 0x01, 0x00, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SWB:1") |
| 1169 | 1420 | PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) |
| 1170 | 1421 | PORT_DIPSETTING( 0x01, DEF_STR( Cocktail ) ) |
| r4470 | r4471 | |
| 1189 | 1440 | PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) |
| 1190 | 1441 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 1191 | 1442 | |
| 1192 | PORT_MODIFY(" | |
| 1443 | PORT_MODIFY(" | |
| 1193 | 1444 | PORT_DIPNAME( 0x07, 0x07, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SWA:1,2,3") |
| 1194 | 1445 | PORT_DIPSETTING( 0x04, DEF_STR( 4C_1C ) ) |
| 1195 | 1446 | PORT_DIPSETTING( 0x05, DEF_STR( 3C_1C ) ) |
| r4470 | r4471 | |
| 1226 | 1477 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL // shot |
| 1227 | 1478 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL // fly |
| 1228 | 1479 | |
| 1229 | PORT_MODIFY(" | |
| 1480 | PORT_MODIFY(" | |
| 1230 | 1481 | PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SWA:1,2") |
| 1231 | 1482 | PORT_DIPSETTING( 0x00, DEF_STR( 2C_1C ) ) |
| 1232 | 1483 | PORT_DIPSETTING( 0x03, DEF_STR( 1C_1C ) ) |
| r4470 | r4471 | |
| 1249 | 1500 | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 1250 | 1501 | PORT_DIPSETTING( 0x80, DEF_STR( On ) ) |
| 1251 | 1502 | |
| 1252 | PORT_MODIFY(" | |
| 1503 | PORT_MODIFY(" | |
| 1253 | 1504 | PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) ) PORT_DIPLOCATION("SWB:1,2") |
| 1254 | 1505 | PORT_DIPSETTING( 0x02, "2" ) |
| 1255 | 1506 | PORT_DIPSETTING( 0x03, "3" ) |
| r4470 | r4471 | |
| 1269 | 1520 | PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "SWB:8" ) |
| 1270 | 1521 | INPUT_PORTS_END |
| 1271 | 1522 | |
| 1272 | static INPUT_PORTS_START( chplft ) | |
| 1523 | static INPUT_PORTS_START( choplift ) | |
| 1273 | 1524 | PORT_INCLUDE( system1_generic ) |
| 1274 | 1525 | |
| 1275 | PORT_MODIFY(" | |
| 1526 | PORT_MODIFY(" | |
| 1276 | 1527 | PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SWA:1,2,3,4") |
| 1277 | 1528 | PORT_DIPSETTING( 0x07, DEF_STR( 4C_1C ) ) |
| 1278 | 1529 | PORT_DIPSETTING( 0x08, DEF_STR( 3C_1C ) ) |
| r4470 | r4471 | |
| 1306 | 1557 | PORT_DIPSETTING( 0xb0, DEF_STR( 1C_5C ) ) |
| 1307 | 1558 | PORT_DIPSETTING( 0xa0, DEF_STR( 1C_6C ) ) |
| 1308 | 1559 | |
| 1309 | PORT_MODIFY(" | |
| 1560 | PORT_MODIFY(" | |
| 1310 | 1561 | PORT_DIPNAME( 0x01, 0x00, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SWB:1") |
| 1311 | 1562 | PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) |
| 1312 | 1563 | PORT_DIPSETTING( 0x01, DEF_STR( Cocktail ) ) |
| r4470 | r4471 | |
| 1329 | 1580 | INPUT_PORTS_END |
| 1330 | 1581 | |
| 1331 | 1582 | static INPUT_PORTS_START( shtngmst ) |
| 1332 | PORT_INCLUDE( chplft ) | |
| 1583 | PORT_INCLUDE( choplift ) | |
| 1333 | 1584 | |
| 1334 | 1585 | PORT_MODIFY("P1") |
| 1335 | 1586 | PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) |
| r4470 | r4471 | |
| 1337 | 1588 | PORT_MODIFY("P2") |
| 1338 | 1589 | PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 1339 | 1590 | |
| 1340 | PORT_MODIFY("DSW2") | |
| 1341 | PORT_DIPNAME( 0x01, 0x01, "DSW2" ) PORT_DIPLOCATION("SWB:1") | |
| 1591 | PORT_MODIFY("SWA") | |
| 1592 | PORT_DIPNAME( 0x01, 0x01, "SWA" ) PORT_DIPLOCATION("SWB:1") | |
| 1342 | 1593 | PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) |
| 1343 | 1594 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 1344 | 1595 | PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SWB:2") |
| r4470 | r4471 | |
| 1406 | 1657 | INPUT_PORTS_END |
| 1407 | 1658 | |
| 1408 | 1659 | static INPUT_PORTS_START( wboysys2 ) |
| 1409 | PORT_INCLUDE( chplft ) | |
| 1660 | PORT_INCLUDE( choplift ) | |
| 1410 | 1661 | |
| 1411 | 1662 | PORT_MODIFY("P1") |
| 1412 | 1663 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) |
| r4470 | r4471 | |
| 1424 | 1675 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_COCKTAIL |
| 1425 | 1676 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_COCKTAIL |
| 1426 | 1677 | |
| 1427 | PORT_MODIFY(" | |
| 1678 | PORT_MODIFY(" | |
| 1428 | 1679 | PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Lives ) ) PORT_DIPLOCATION("SWB:3,4") |
| 1429 | 1680 | PORT_DIPSETTING( 0x0c, "3" ) |
| 1430 | 1681 | PORT_DIPSETTING( 0x08, "4" ) |
| r4470 | r4471 | |
| 1487 | 1738 | */ |
| 1488 | 1739 | |
| 1489 | 1740 | static INPUT_PORTS_START( blockgal ) |
| 1490 | PORT_INCLUDE( chplft ) | |
| 1741 | PORT_INCLUDE( choplift ) | |
| 1491 | 1742 | |
| 1492 | 1743 | PORT_MODIFY("P1") |
| 1493 | 1744 | PORT_BIT( 0xff, 0x00, IPT_DIAL ) PORT_SENSITIVITY(60) PORT_KEYDELTA(15) PORT_REVERSE |
| r4470 | r4471 | |
| 1500 | 1751 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON1 ) |
| 1501 | 1752 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL |
| 1502 | 1753 | |
| 1503 | PORT_MODIFY(" | |
| 1754 | PORT_MODIFY(" | |
| 1504 | 1755 | PORT_DIPNAME( 0x02, 0x02, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SWB:2") |
| 1505 | 1756 | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 1506 | 1757 | PORT_DIPSETTING( 0x02, DEF_STR( On ) ) |
| r4470 | r4471 | |
| 1517 | 1768 | INPUT_PORTS_END |
| 1518 | 1769 | |
| 1519 | 1770 | static INPUT_PORTS_START( tokisens ) |
| 1520 | PORT_INCLUDE( chplft ) | |
| 1771 | PORT_INCLUDE( choplift ) | |
| 1521 | 1772 | |
| 1522 | PORT_MODIFY(" | |
| 1773 | PORT_MODIFY(" | |
| 1523 | 1774 | PORT_DIPNAME( 0x02, 0x02, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SWB:2") |
| 1524 | 1775 | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 1525 | 1776 | PORT_DIPSETTING( 0x02, DEF_STR( On ) ) |
| r4470 | r4471 | |
| 1543 | 1794 | INPUT_PORTS_END |
| 1544 | 1795 | |
| 1545 | 1796 | static INPUT_PORTS_START( wbml ) |
| 1546 | PORT_INCLUDE( chplft ) | |
| 1797 | PORT_INCLUDE( choplift ) | |
| 1547 | 1798 | |
| 1548 | PORT_MODIFY(" | |
| 1799 | PORT_MODIFY(" | |
| 1549 | 1800 | PORT_DIPNAME( 0x02, 0x02, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SWB:2") |
| 1550 | 1801 | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 1551 | 1802 | PORT_DIPSETTING( 0x02, DEF_STR( On ) ) |
| r4470 | r4471 | |
| 1569 | 1820 | INPUT_PORTS_END |
| 1570 | 1821 | |
| 1571 | 1822 | static INPUT_PORTS_START( dakkochn ) |
| 1572 | PORT_INCLUDE( chplft ) | |
| 1823 | PORT_INCLUDE( choplift ) | |
| 1573 | 1824 | |
| 1574 | 1825 | PORT_MODIFY("P1") |
| 1575 | PORT_BIT( 0xff, IP_ACTIVE_ | |
| 1826 | PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_ | |
| 1576 | 1827 | |
| 1577 | 1828 | PORT_MODIFY("P2") |
| 1578 | PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_ | |
| 1829 | PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_ | |
| 1579 | 1830 | |
| 1580 | 1831 | PORT_MODIFY("SYSTEM") |
| 1581 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNUSED ) / | |
| 1832 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNUSED ) /* start 1 & 2 not connected. */ | |
| 1582 | 1833 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 1583 | 1834 | |
| 1584 | 1835 | /*TODO: Dip-Switches */ |
| 1585 | PORT_MODIFY(" | |
| 1836 | PORT_MODIFY(" | |
| 1586 | 1837 | PORT_DIPNAME( 0x02, 0x02, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SWB:2") |
| 1587 | 1838 | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 1588 | 1839 | PORT_DIPSETTING( 0x02, DEF_STR( On ) ) |
| r4470 | r4471 | |
| 1605 | 1856 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 1606 | 1857 | |
| 1607 | 1858 | PORT_START("KEY0") |
| 1608 | PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) | |
| 1609 | ||
| 1610 | PORT_START("KEY1") | |
| 1611 | 1859 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_MAHJONG_A ) |
| 1612 | 1860 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_MAHJONG_B ) |
| 1613 | 1861 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_MAHJONG_C ) |
| r4470 | r4471 | |
| 1615 | 1863 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_MAHJONG_LAST_CHANCE ) |
| 1616 | 1864 | PORT_BIT( 0xe0, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 1617 | 1865 | |
| 1618 | PORT_START("KEY | |
| 1866 | PORT_START("KEY1") | |
| 1619 | 1867 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_MAHJONG_E ) |
| 1620 | 1868 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_MAHJONG_F ) |
| 1621 | 1869 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_MAHJONG_G ) |
| 1622 | 1870 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_MAHJONG_H ) |
| 1623 | 1871 | PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 1624 | 1872 | |
| 1625 | PORT_START("KEY | |
| 1873 | PORT_START("KEY2") | |
| 1626 | 1874 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_MAHJONG_I ) |
| 1627 | 1875 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_MAHJONG_J ) |
| 1628 | 1876 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_MAHJONG_K ) |
| 1629 | 1877 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_MAHJONG_L ) |
| 1630 | 1878 | PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 1631 | 1879 | |
| 1632 | PORT_START("KEY | |
| 1880 | PORT_START("KEY3") | |
| 1633 | 1881 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_MAHJONG_M ) |
| 1634 | 1882 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_MAHJONG_N ) |
| 1635 | 1883 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_MAHJONG_CHI ) |
| r4470 | r4471 | |
| 1637 | 1885 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_MAHJONG_FLIP_FLOP ) |
| 1638 | 1886 | PORT_BIT( 0xe0, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 1639 | 1887 | |
| 1640 | PORT_START("KEY | |
| 1888 | PORT_START("KEY4") | |
| 1641 | 1889 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) |
| 1642 | 1890 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_MAHJONG_BET ) |
| 1643 | 1891 | PORT_BIT( 0xfc, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 1644 | 1892 | |
| 1645 | PORT_START("KEY | |
| 1893 | PORT_START("KEY5") | |
| 1646 | 1894 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_MAHJONG_KAN ) |
| 1647 | 1895 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_MAHJONG_REACH ) |
| 1648 | 1896 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_MAHJONG_RON ) |
| 1649 | 1897 | PORT_BIT( 0xf8, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 1898 | ||
| 1899 | PORT_START("KEY6") | |
| 1900 | PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) | |
| 1650 | 1901 | INPUT_PORTS_END |
| 1651 | 1902 | |
| 1652 | 1903 | /* |
| r4470 | r4471 | |
| 1656 | 1907 | |
| 1657 | 1908 | */ |
| 1658 | 1909 | static INPUT_PORTS_START( ufosensi ) |
| 1659 | PORT_INCLUDE( chplft ) | |
| 1910 | PORT_INCLUDE( choplift ) | |
| 1660 | 1911 | |
| 1661 | 1912 | PORT_MODIFY("P1") |
| 1662 | 1913 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON3 ) |
| r4470 | r4471 | |
| 1664 | 1915 | PORT_MODIFY("P2") |
| 1665 | 1916 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_COCKTAIL |
| 1666 | 1917 | |
| 1667 | PORT_MODIFY(" | |
| 1918 | PORT_MODIFY(" | |
| 1668 | 1919 | PORT_DIPNAME( 0x03, 0x01, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SWB:1,2") |
| 1669 | 1920 | PORT_DIPSETTING( 0x00, DEF_STR( Easy ) ) |
| 1670 | 1921 | PORT_DIPSETTING( 0x01, DEF_STR( Normal ) ) |
| r4470 | r4471 | |
| 1689 | 1940 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 1690 | 1941 | INPUT_PORTS_END |
| 1691 | 1942 | |
| 1943 | ||
| 1944 | ||
| 1692 | 1945 | /************************************* |
| 1693 | 1946 | * |
| 1694 | 1947 | * Graphics definitions |
| r4470 | r4471 | |
| 1701 | 1954 | RGN_FRAC(1,3), |
| 1702 | 1955 | 3, |
| 1703 | 1956 | { RGN_FRAC(0,3), RGN_FRAC(1,3), RGN_FRAC(2,3) }, |
| 1704 | { 0, 1, 2, 3, 4, 5, 6, 7 }, | |
| 1705 | { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 }, | |
| 1957 | { STEP8(0,1) }, | |
| 1958 | { STEP8(0,8) }, | |
| 1706 | 1959 | 8*8 |
| 1707 | 1960 | }; |
| 1708 | 1961 | |
| 1709 | 1962 | static GFXDECODE_START( system1 ) |
| 1710 | /* sprites use colors 0-511, but are not defined here */ | |
| 1711 | GFXDECODE_ENTRY( "gfx1", 0, charlayout, 512, 128 ) | |
| 1963 | GFXDECODE_ENTRY( "tiles", 0, charlayout, 0, 256 ) | |
| 1712 | 1964 | GFXDECODE_END |
| 1713 | 1965 | |
| 1966 | ||
| 1967 | ||
| 1714 | 1968 | /************************************* |
| 1715 | 1969 | * |
| 1716 | 1970 | * Machine driver |
| 1717 | 1971 | * |
| 1718 | 1972 | *************************************/ |
| 1719 | 1973 | |
| 1720 | static MACHINE_DRIVER_START( system1 ) | |
| 1974 | static const ppi8255_interface ppi_interface = | |
| 1975 | { | |
| 1976 | DEVCB_NULL, | |
| 1977 | DEVCB_NULL, | |
| 1978 | DEVCB_NULL, | |
| 1979 | DEVCB_MEMORY_HANDLER("maincpu", PROGRAM, soundport_w), | |
| 1980 | DEVCB_MEMORY_HANDLER("maincpu", PROGRAM, videomode_w), | |
| 1981 | DEVCB_HANDLER(sound_control_w) | |
| 1982 | }; | |
| 1721 | 1983 | |
| 1984 | static const z80pio_interface pio_interface = | |
| 1985 | { | |
| 1986 | DEVCB_NULL, | |
| 1987 | DEVCB_NULL, | |
| 1988 | DEVCB_NULL, | |
| 1989 | DEVCB_MEMORY_HANDLER("maincpu", PROGRAM, soundport_w), | |
| 1990 | DEVCB_MEMORY_HANDLER("maincpu", PROGRAM, videomode_w), | |
| 1991 | DEVCB_LINE(pio_ready_w), | |
| 1992 | DEVCB_NULL | |
| 1993 | }; | |
| 1994 | ||
| 1995 | ||
| 1996 | ||
| 1997 | /************************************* | |
| 1998 | * | |
| 1999 | * Machine driver | |
| 2000 | * | |
| 2001 | *************************************/ | |
| 2002 | ||
| 2003 | /* original board with 64kbit ROMs and an 8255 PPI for outputs */ | |
| 2004 | static MACHINE_DRIVER_START( sys1ppi ) | |
| 2005 | ||
| 1722 | 2006 | /* basic machine hardware */ |
| 1723 | MDRV_CPU_ADD("maincpu", Z80, XTAL_4MHz) /* My Hero has 2 OSCs 8 & 20 MHz (Cabbe Info) */ | |
| 1724 | MDRV_CPU_PROGRAM_MAP(readmem,writemem) | |
| 1725 | MDRV_CPU_IO_MAP(io_map,0) | |
| 1726 | MDRV_CPU_VBLANK_INT("screen", irq0_line_hold) | |
| 2007 | MDRV_CPU_ADD("maincpu", Z80, MASTER_CLOCK) /* not really, see notes above */ | |
| 2008 | MDRV_CPU_PROGRAM_MAP(system1_map,0) | |
| 2009 | MDRV_CPU_IO_MAP(system1_ppi_io_map,0) | |
| 2010 | MDRV_CPU_VBLANK_INT("screen", vblank_irq) | |
| 1727 | 2011 | |
| 1728 | MDRV_CPU_ADD("soundcpu", Z80, | |
| 2012 | MDRV_CPU_ADD("soundcpu", Z80, SOUND_CLOCK/2) | |
| 1729 | 2013 | MDRV_CPU_PROGRAM_MAP(sound_map,0) |
| 1730 | MDRV_ | |
| 2014 | MDRV_TIMER_ | |
| 1731 | 2015 | |
| 2016 | MDRV_MACHINE_START(system1) | |
| 1732 | 2017 | MDRV_MACHINE_RESET(system1) |
| 1733 | 2018 | |
| 2019 | MDRV_PPI8255_ADD("ppi", ppi_interface) | |
| 2020 | ||
| 1734 | 2021 | /* video hardware */ |
| 1735 | MDRV_VIDEO_ATTRIBUTES(VIDEO_ALWAYS_UPDATE)/ | |
| 2022 | MDRV_VIDEO_ATTRIBUTES(VIDEO_ALWAYS_UPDATE) /* needed for proper hardware collisions */ | |
| 1736 | 2023 | |
| 1737 | 2024 | MDRV_SCREEN_ADD("screen", RASTER) |
| 1738 | 2025 | MDRV_SCREEN_REFRESH_RATE(60) |
| r4470 | r4471 | |
| 1742 | 2029 | MDRV_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 28*8-1) |
| 1743 | 2030 | |
| 1744 | 2031 | MDRV_GFXDECODE(system1) |
| 1745 | MDRV_PALETTE_LENGTH( | |
| 2032 | MDRV_PALETTE_LENGTH(2048) | |
| 1746 | 2033 | |
| 1747 | MDRV_PALETTE_INIT(system1) | |
| 1748 | 2034 | MDRV_VIDEO_START(system1) |
| 1749 | 2035 | MDRV_VIDEO_UPDATE(system1) |
| 1750 | 2036 | |
| 1751 | 2037 | /* sound hardware */ |
| 1752 | 2038 | MDRV_SPEAKER_STANDARD_MONO("mono") |
| 1753 | 2039 | |
| 1754 | ||
| 2040 | | |
| 1755 | 2041 | MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) |
| 1756 | 2042 | |
| 1757 | ||
| 2043 | | |
| 1758 | 2044 | MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) |
| 1759 | 2045 | MACHINE_DRIVER_END |
| 1760 | 2046 | |
| 1761 | /* driver with reduced visible area for scrolling games */ | |
| 1762 | static MACHINE_DRIVER_START( small ) | |
| 2047 | /* reduced visible area for scrolling games */ | |
| 2048 | static MACHINE_DRIVER_START( sys1ppis ) | |
| 2049 | MDRV_IMPORT_FROM( sys1ppi ) | |
| 1763 | 2050 | |
| 1764 | /* basic machine hardware */ | |
| 1765 | MDRV_IMPORT_FROM( system1 ) | |
| 1766 | ||
| 1767 | 2051 | /* video hardware */ |
| 1768 | 2052 | MDRV_SCREEN_MODIFY("screen") |
| 1769 | 2053 | MDRV_SCREEN_VISIBLE_AREA(0*8+8, 32*8-1-8, 0*8, 28*8-1) |
| 1770 | ||
| 1771 | 2054 | MACHINE_DRIVER_END |
| 1772 | 2055 | |
| 1773 | 2056 | |
| 1774 | static MACHINE_DRIVER_START( pitfall2 ) | |
| 1775 | 2057 | |
| 1776 | /* basic machine hardware */ | |
| 1777 | MDRV_IMPORT_FROM( system1 ) | |
| 1778 | MDRV_CPU_REPLACE( "maincpu", Z80, 3600000 )/* should be 4 MHz but that value makes the title screen disappear */ | |
| 2058 | /* revised board with 128kbit ROMs and a Z80 PIO for outputs */ | |
| 2059 | static MACHINE_DRIVER_START( sys1pio ) | |
| 2060 | MDRV_IMPORT_FROM( sys1ppi ) | |
| 1779 | 2061 | |
| 1780 | MACHINE_DRIVER_END | |
| 1781 | ||
| 1782 | ||
| 1783 | static MACHINE_DRIVER_START( hvymetal ) | |
| 1784 | ||
| 1785 | /* basic machine hardware */ | |
| 1786 | MDRV_IMPORT_FROM( system1 ) | |
| 1787 | 2062 | MDRV_CPU_MODIFY("maincpu") |
| 1788 | MDRV_CPU_PROGRAM_MAP(brain_readmem,writemem) | |
| 1789 | MDRV_CPU_IO_MAP(hvymetal_io_map,0) | |
| 2063 | MDRV_CPU_IO_MAP(system1_pio_io_map,0) | |
| 1790 | 2064 | |
| 1791 | MDRV_MACHINE_RESET(system1_banked) | |
| 1792 | ||
| 2065 | MDRV_PPI8255_REMOVE("ppi") | |
| 2066 | MDRV_Z80PIO_ADD("pio", pio_interface) | |
| 1793 | 2067 | MACHINE_DRIVER_END |
| 1794 | 2068 | |
| 2069 | /* reduced visible area for scrolling games */ | |
| 2070 | static MACHINE_DRIVER_START( sys1pios ) | |
| 2071 | MDRV_IMPORT_FROM( sys1pio ) | |
| 1795 | 2072 | |
| 1796 | static MACHINE_DRIVER_START( chplft ) | |
| 1797 | ||
| 1798 | /* basic machine hardware */ | |
| 1799 | MDRV_IMPORT_FROM( system1 ) | |
| 1800 | MDRV_CPU_MODIFY("maincpu") | |
| 1801 | MDRV_CPU_PROGRAM_MAP(brain_readmem,chplft_writemem) | |
| 1802 | MDRV_CPU_IO_MAP(chplft_io_map,0) | |
| 1803 | ||
| 1804 | MDRV_MACHINE_RESET(system1_banked) | |
| 1805 | ||
| 1806 | 2073 | /* video hardware */ |
| 1807 | MDRV_VIDEO_UPDATE(choplifter) | |
| 1808 | ||
| 2074 | MDRV_SCREEN_MODIFY("screen") | |
| 2075 | MDRV_SCREEN_VISIBLE_AREA(0*8+8, 32*8-1-8, 0*8, 28*8-1) | |
| 1809 | 2076 | MACHINE_DRIVER_END |
| 1810 | 2077 | |
| 1811 | static MACHINE_DRIVER_START( gardiab ) | |
| 1812 | 2078 | |
| 1813 | /* basic machine hardware */ | |
| 1814 | MDRV_IMPORT_FROM( chplft ) | |
| 1815 | MDRV_CPU_MODIFY("maincpu") | |
| 1816 | MDRV_CPU_PROGRAM_MAP(brain_readmem,gardiab_writemem) | |
| 1817 | MDRV_CPU_IO_MAP(chplft_io_map,0) | |
| 1818 | 2079 | |
| 1819 | MDRV_MACHINE_RESET(system1_banked) | |
| 1820 | 2080 | |
| 1821 | /* video hardware */ | |
| 1822 | MDRV_VIDEO_UPDATE(system1) | |
| 1823 | MACHINE_DRIVER_END | |
| 2081 | /* main CPU hacked speed */ | |
| 2082 | static MACHINE_DRIVER_START( pitfall2 ) | |
| 2083 | MDRV_IMPORT_FROM( sys1pio ) | |
| 1824 | 2084 | |
| 1825 | static MACHINE_DRIVER_START( dakkochn ) | |
| 1826 | ||
| 1827 | 2085 | /* basic machine hardware */ |
| 1828 | MDRV_IMPORT_FROM( chplft ) | |
| 1829 | MDRV_CPU_MODIFY("maincpu") | |
| 1830 | MDRV_CPU_PROGRAM_MAP(brain_readmem,dakkochn_writemem) | |
| 1831 | MDRV_CPU_IO_MAP(wbml_io_map,0) | |
| 1832 | ||
| 1833 | /* video hardware */ | |
| 1834 | MDRV_VIDEO_START(wbml) | |
| 1835 | MDRV_MACHINE_RESET(dakkochn) | |
| 2086 | MDRV_CPU_REPLACE( "maincpu", Z80, 3600000 )/* should be 4 MHz but that value makes the title screen disappear */ | |
| 1836 | 2087 | MACHINE_DRIVER_END |
| 1837 | 2088 | |
| 2089 | /* alternate program map with RAM/collision swapped */ | |
| 2090 | static MACHINE_DRIVER_START( nob ) | |
| 2091 | MDRV_IMPORT_FROM( sys1ppis ) | |
| 1838 | 2092 | |
| 1839 | static MACHINE_DRIVER_START( brain ) | |
| 1840 | ||
| 1841 | 2093 | /* basic machine hardware */ |
| 1842 | MDRV_IMPORT_FROM( system1 ) | |
| 1843 | 2094 | MDRV_CPU_MODIFY("maincpu") |
| 1844 | MDRV_CPU_PROGRAM_MAP(brain_readmem,writemem) | |
| 1845 | MDRV_CPU_IO_MAP(brain_io_map,0) | |
| 1846 | ||
| 1847 | MDRV_MACHINE_RESET(system1_banked) | |
| 1848 | ||
| 2095 | MDRV_CPU_PROGRAM_MAP(nobo_map,0) | |
| 1849 | 2096 | MACHINE_DRIVER_END |
| 1850 | 2097 | |
| 1851 | 2098 | |
| 1852 | static MACHINE_DRIVER_START( wbml ) | |
| 1853 | 2099 | |
| 1854 | /* basic machine hardware */ | |
| 1855 | MDRV_IMPORT_FROM( system1 ) | |
| 1856 | MDRV_CPU_MODIFY("maincpu") | |
| 1857 | MDRV_CPU_PROGRAM_MAP(wbml_readmem,wbml_writemem) | |
| 1858 | MDRV_CPU_IO_MAP(wbml_io_map,0) | |
| 2100 | /* system2 video */ | |
| 2101 | static MACHINE_DRIVER_START( sys2 ) | |
| 2102 | MDRV_IMPORT_FROM( sys1ppi ) | |
| 1859 | 2103 | |
| 1860 | MDRV_MACHINE_RESET(wbml) | |
| 1861 | ||
| 1862 | 2104 | /* video hardware */ |
| 1863 | MDRV_VIDEO_START(wbml) | |
| 1864 | MDRV_VIDEO_UPDATE(wbml) | |
| 1865 | ||
| 2105 | MDRV_VIDEO_START(system2) | |
| 2106 | MDRV_VIDEO_UPDATE(system2) | |
| 1866 | 2107 | MACHINE_DRIVER_END |
| 1867 | 2108 | |
| 2109 | /* system 2 with small screen */ | |
| 2110 | static MACHINE_DRIVER_START( sys2s ) | |
| 2111 | MDRV_IMPORT_FROM( sys2 ) | |
| 1868 | 2112 | |
| 1869 | static MACHINE_DRIVER_START( shtngmst ) | |
| 1870 | ||
| 1871 | /* basic machine hardware */ | |
| 1872 | MDRV_IMPORT_FROM( system1 ) | |
| 1873 | MDRV_CPU_MODIFY("maincpu") | |
| 1874 | MDRV_CPU_PROGRAM_MAP(brain_readmem,chplft_writemem) | |
| 1875 | MDRV_CPU_IO_MAP(sht_io_map,0) | |
| 1876 | ||
| 1877 | MDRV_MACHINE_RESET(system1_banked) | |
| 1878 | ||
| 1879 | /* video hardware - same as small - left / right 8 pixels clipped */ | |
| 1880 | MDRV_SCREEN_MODIFY("screen") | |
| 1881 | MDRV_SCREEN_VISIBLE_AREA(0*8+8, 32*8-1-8, 0*8, 28*8-1) | |
| 1882 | ||
| 1883 | MDRV_VIDEO_UPDATE(choplifter) | |
| 1884 | ||
| 1885 | MACHINE_DRIVER_END | |
| 1886 | ||
| 1887 | static MACHINE_DRIVER_START( nob ) | |
| 1888 | ||
| 1889 | /* basic machine hardware */ | |
| 1890 | MDRV_IMPORT_FROM( system1 ) | |
| 1891 | MDRV_CPU_REPLACE( "maincpu", Z80, 4000000) | |
| 1892 | MDRV_CPU_PROGRAM_MAP(brain_readmem,nobo_writemem) | |
| 1893 | MDRV_CPU_IO_MAP(nob_io_map,0) | |
| 1894 | ||
| 1895 | MDRV_MACHINE_RESET(system1_banked) | |
| 1896 | ||
| 1897 | 2113 | /* video hardware */ |
| 1898 | 2114 | MDRV_SCREEN_MODIFY("screen") |
| 1899 | MDRV_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 0*8, 28*8-1) | |
| 1900 | ||
| 2115 | MDRV_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 1*8, 27*8-1) | |
| 1901 | 2116 | MACHINE_DRIVER_END |
| 1902 | 2117 | |
| 1903 | static MACHINE_DRIVER_START( nobb ) | |
| 2118 | /* system2 with rowscroll */ | |
| 2119 | static MACHINE_DRIVER_START( sys2row ) | |
| 2120 | MDRV_IMPORT_FROM( sys2 ) | |
| 1904 | 2121 | |
| 1905 | /* basic machine hardware */ | |
| 1906 | MDRV_IMPORT_FROM( system1 ) | |
| 1907 | MDRV_CPU_REPLACE( "maincpu", Z80, 4000000) | |
| 1908 | MDRV_CPU_PROGRAM_MAP(brain_readmem,nobo_writemem) | |
| 1909 | MDRV_CPU_IO_MAP(nobb_io_map,0) | |
| 1910 | ||
| 1911 | MDRV_MACHINE_RESET(system1_banked) | |
| 1912 | ||
| 1913 | 2122 | /* video hardware */ |
| 1914 | MDRV_SCREEN_MODIFY("screen") | |
| 1915 | MDRV_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 0*8, 28*8-1) | |
| 1916 | ||
| 2123 | MDRV_VIDEO_UPDATE(system2_rowscroll) | |
| 1917 | 2124 | MACHINE_DRIVER_END |
| 1918 | 2125 | |
| 2126 | /* rowscroll with small screen */ | |
| 2127 | static MACHINE_DRIVER_START( sys2rows ) | |
| 2128 | MDRV_IMPORT_FROM( sys2row ) | |
| 1919 | 2129 | |
| 1920 | static MACHINE_DRIVER_START( blckgalb ) | |
| 1921 | ||
| 1922 | /* basic machine hardware */ | |
| 1923 | MDRV_IMPORT_FROM( system1 ) | |
| 1924 | MDRV_CPU_MODIFY("maincpu") | |
| 1925 | MDRV_CPU_PROGRAM_MAP(readmem,blckgalb_writemem) | |
| 1926 | ||
| 1927 | 2130 | /* video hardware */ |
| 1928 | MDRV_VIDEO_UPDATE(blockgal) | |
| 1929 | ||
| 1930 | MACHINE_DRIVER_END | |
| 1931 | ||
| 1932 | ||
| 1933 | static MACHINE_DRIVER_START( ufosensi ) | |
| 1934 | ||
| 1935 | /* basic machine hardware */ | |
| 1936 | MDRV_IMPORT_FROM( wbml ) | |
| 1937 | ||
| 1938 | /* video hardware */ | |
| 1939 | 2131 | MDRV_SCREEN_MODIFY("screen") |
| 1940 | 2132 | MDRV_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 1*8, 27*8-1) |
| 2133 | MACHINE_DRIVER_END | |
| 1941 | 2134 | |
| 1942 | /* video hardware */ | |
| 1943 | MDRV_VIDEO_UPDATE(ufosensi) | |
| 1944 | 2135 | |
| 1945 | MACHINE_DRIVER_END | |
| 1946 | 2136 | |
| 1947 | 2137 | /************************************* |
| 1948 | 2138 | * |
| r4470 | r4471 | |
| 1964 | 2154 | ROM_REGION( 0x10000, "soundcpu", 0 ) |
| 1965 | 2155 | ROM_LOAD( "epr-5332.3", 0x0000, 0x2000, CRC(7a72ab3d) SHA1(4a6ad09949a438562d7043532d628cefdbb5a2fe) ) |
| 1966 | 2156 | |
| 1967 | ROM_REGION( 0xc000, " | |
| 2157 | ROM_REGION( 0xc000, "tiles", 0 | |
| 1968 | 2158 | ROM_LOAD( "epr-5331.82", 0x0000, 0x2000, CRC(251d898f) SHA1(353067a75d583d5f53ce2f473b52a35dd912639f) ) |
| 1969 | 2159 | ROM_LOAD( "epr-5330.65", 0x2000, 0x2000, CRC(eb048745) SHA1(a2e90d20a07608f43273e84d1eb22f195b19626c) ) |
| 1970 | 2160 | ROM_LOAD( "epr-5329.81", 0x4000, 0x2000, CRC(3e8bcaed) SHA1(6d19543427b9c4d8d8f5ea0872cdf8cc4fe5018c) ) |
| r4470 | r4471 | |
| 1972 | 2162 | ROM_LOAD( "epr-5327.80", 0x8000, 0x2000, CRC(79e92cb1) SHA1(03124ce123684b8469cf42be6ed5f0fffa64c480) ) |
| 1973 | 2163 | ROM_LOAD( "epr-5326.63", 0xa000, 0x2000, CRC(ba7e2b47) SHA1(bc7528456fe8dee9aa21212aa996fc347c5d55b4) ) |
| 1974 | 2164 | |
| 1975 | ROM_REGION( 0x8000, " | |
| 2165 | ROM_REGION( 0x8000, " | |
| 1976 | 2166 | ROM_LOAD( "epr-5318.86", 0x0000, 0x4000, CRC(6f2e1fd3) SHA1(326d538551245fce67d0fdba85975e27093b7a93) ) |
| 1977 | 2167 | ROM_LOAD( "epr-5319.93", 0x4000, 0x4000, CRC(ebee4999) SHA1(bb331be270dc1da63699533d9f02d73ce28f1bc5) ) |
| 1978 | 2168 | |
| 1979 | ROM_REGION( 0x0100, " | |
| 2169 | ROM_REGION( 0x0100, " | |
| 1980 | 2170 | ROM_LOAD( "pr-5317.106", 0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ |
| 1981 | 2171 | ROM_END |
| 1982 | 2172 | |
| 1983 | ROM_START( starjacs ) | |
| 2173 | ROM_START( starjacks ) | |
| 1984 | 2174 | ROM_REGION( 0x10000, "maincpu", 0 ) |
| 1985 | 2175 | ROM_LOAD( "a1_ic29.129", 0x0000, 0x2000, CRC(59a22a1f) SHA1(4827b537f8df04429ed53c2119c67a32efcf04a2) ) |
| 1986 | 2176 | ROM_LOAD( "a1_ic30.130", 0x2000, 0x2000, CRC(7f4597dc) SHA1(7574853fc2e38880f8493cf628100a890f7aa7dc) ) |
| r4470 | r4471 | |
| 1992 | 2182 | ROM_REGION( 0x10000, "soundcpu", 0 ) |
| 1993 | 2183 | ROM_LOAD( "epr-5332.3", 0x0000, 0x2000, CRC(7a72ab3d) SHA1(4a6ad09949a438562d7043532d628cefdbb5a2fe) ) |
| 1994 | 2184 | |
| 1995 | ROM_REGION( 0xc000, " | |
| 2185 | ROM_REGION( 0xc000, "tiles", 0 | |
| 1996 | 2186 | ROM_LOAD( "epr-5331.82", 0x0000, 0x2000, CRC(251d898f) SHA1(353067a75d583d5f53ce2f473b52a35dd912639f) ) |
| 1997 | 2187 | ROM_LOAD( "a1_ic65.65", 0x2000, 0x2000, CRC(0ab1893c) SHA1(97877f5d8be7a7b80bbf9fe8dae2acd47c411d64) ) |
| 1998 | 2188 | ROM_LOAD( "epr-5329.81", 0x4000, 0x2000, CRC(3e8bcaed) SHA1(6d19543427b9c4d8d8f5ea0872cdf8cc4fe5018c) ) |
| r4470 | r4471 | |
| 2000 | 2190 | ROM_LOAD( "epr-5327.80", 0x8000, 0x2000, CRC(79e92cb1) SHA1(03124ce123684b8469cf42be6ed5f0fffa64c480) ) |
| 2001 | 2191 | ROM_LOAD( "a1_ic63.63", 0xa000, 0x2000, CRC(5bcb253e) SHA1(8c34a8377344940bcfb2495bfda3ffc6794f261b) ) |
| 2002 | 2192 | |
| 2003 | ROM_REGION( 0x8000, " | |
| 2193 | ROM_REGION( 0x8000, " | |
| 2004 | 2194 | ROM_LOAD( "a1_ic86.86", 0x0000, 0x4000, CRC(6f2e1fd3) SHA1(326d538551245fce67d0fdba85975e27093b7a93) ) |
| 2005 | 2195 | ROM_LOAD( "a1_ic93.93", 0x4000, 0x4000, CRC(07987244) SHA1(8468b95684b1f62c6de6af1b1d405bfb333e4e26) ) |
| 2006 | 2196 | |
| 2007 | ROM_REGION( 0x0100, " | |
| 2197 | ROM_REGION( 0x0100, " | |
| 2008 | 2198 | ROM_LOAD( "pr-5317.106", 0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ |
| 2009 | 2199 | ROM_END |
| 2010 | 2200 | |
| 2201 | ||
| 2202 | ROM_START( upndown ) | |
| 2203 | ROM_REGION( 0x10000, "maincpu", 0 ) | |
| 2204 | ROM_LOAD( "epr5516a.129", 0x0000, 0x2000, CRC(038c82da) SHA1(b7f403068ed9f97a4b960fb8863615892bb770ed) ) /* encrypted */ | |
| 2205 | ROM_LOAD( "epr5517a.130", 0x2000, 0x2000, CRC(6930e1de) SHA1(8a5564c76e1fd20c8e5d95e5f538980e13c41744) ) /* encrypted */ | |
| 2206 | ROM_LOAD( "epr-5518.131", 0x4000, 0x2000, CRC(2a370c99) SHA1(3d1b2f1cf0d5d2d6369a33e5b3b460a3113d6a3e) ) /* encrypted */ | |
| 2207 | ROM_LOAD( "epr-5519.132", 0x6000, 0x2000, CRC(9d664a58) SHA1(84f2d012dac63e8d0de3935a76f5202539423a74) ) /* encrypted */ | |
| 2208 | ROM_LOAD( "epr-5520.133", 0x8000, 0x2000, CRC(208dfbdf) SHA1(eff0c91ce6c2c1f6e191bcbf9ae83dd377cbb408) ) | |
| 2209 | ROM_LOAD( "epr-5521.134", 0xa000, 0x2000, CRC(e7b8d87a) SHA1(3419318bf6d87b902433bfe3b92baf5e5bad7df3) ) | |
| 2210 | ||
| 2211 | ROM_REGION( 0x10000, "soundcpu", 0 ) | |
| 2212 | ROM_LOAD( "epr-5535.3", 0x0000, 0x2000, CRC(cf4e4c45) SHA1(d14a204a9966d37f4b9f3ea4c1d371c9d04e750a) ) | |
| 2213 | ||
| 2214 | ROM_REGION( 0xc000, "tiles", 0 ) | |
| 2215 | ROM_LOAD( "epr-5527.82", 0x0000, 0x2000, CRC(b2d616f1) SHA1(c079136a5d73e1d55ddbad6efb5e7067d0ff412b) ) | |
| 2216 | ROM_LOAD( "epr-5526.65", 0x2000, 0x2000, CRC(8a8b33c2) SHA1(db796d5c4ab3f749287133eaf05818f89dc2afb7) ) | |
| 2217 | ROM_LOAD( "epr-5525.81", 0x4000, 0x2000, CRC(e749c5ef) SHA1(2022cbd42ff0177cdd661bb00b1004459b6af83a) ) | |
| 2218 | ROM_LOAD( "epr-5524.64", 0x6000, 0x2000, CRC(8b886952) SHA1(6a9c909d10ccb03a8af6fa9d8067946d60b91592) ) | |
| 2219 | ROM_LOAD( "epr-5523.80", 0x8000, 0x2000, CRC(dede35d9) SHA1(6c47fa433e16ccc3fff9347a4fe8f0165d20a3d2) ) | |
| 2220 | ROM_LOAD( "epr-5522.63", 0xa000, 0x2000, CRC(5e6d9dff) SHA1(4f18274f5dc349b99b3daec517ccf5ccbb932d1c) ) | |
| 2221 | ||
| 2222 | ROM_REGION( 0x8000, "sprites", 0 ) | |
| 2223 | ROM_LOAD( "epr-5514.86", 0x0000, 0x4000, CRC(fcc0a88b) SHA1(ca7db3df10deb6720096e6c50eddd9b74c47f0a0) ) | |
| 2224 | ROM_LOAD( "epr-5515.93", 0x4000, 0x4000, CRC(60908838) SHA1(aedff8ce07ab16942037e5aff212652e51c19e71) ) | |
| 2225 | ||
| 2226 | ROM_REGION( 0x0100, "proms", 0 ) | |
| 2227 | ROM_LOAD( "pr-5317.106", 0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ | |
| 2228 | ROM_END | |
| 2229 | ||
| 2230 | ROM_START( upndownu ) | |
| 2231 | ROM_REGION( 0x10000, "maincpu", 0 ) | |
| 2232 | ROM_LOAD( "epr-5679.129", 0x0000, 0x2000, CRC(c4f2f9c2) SHA1(7904ffb46a2c3ef69b9784f343ff37d81bbee11d) ) | |
| 2233 | ROM_LOAD( "epr-5680.130", 0x2000, 0x2000, CRC(837f021c) SHA1(14cc846f03b71e0922689388a6757955cfd88bd8) ) | |
| 2234 | ROM_LOAD( "epr-5681.131", 0x4000, 0x2000, CRC(e1c7ff7e) SHA1(440dc8c18183612c32486c617f5d7f38fd804f0e) ) | |
| 2235 | ROM_LOAD( "epr-5682.132", 0x6000, 0x2000, CRC(4a5edc1e) SHA1(71f06d1c4a580fed07ad32c6d1f2d37d47ed95b1) ) | |
| 2236 | ROM_LOAD( "epr-5520.133", 0x8000, 0x2000, CRC(208dfbdf) SHA1(eff0c91ce6c2c1f6e191bcbf9ae83dd377cbb408) ) /* epr-5683.133 */ | |
| 2237 | ROM_LOAD( "epr-5684.133", 0xa000, 0x2000, CRC(32fa95da) SHA1(ebe87d28dde6b8356d40572e9f2cd35ec240075f) ) | |
| 2238 | ||
| 2239 | ROM_REGION( 0x10000, "soundcpu", 0 ) | |
| 2240 | ROM_LOAD( "epr-5528.3", 0x0000, 0x2000, CRC(00cd44ab) SHA1(7f5385aa0773681329a4759b0fa6f975e3de6755) ) | |
| 2241 | ||
| 2242 | ROM_REGION( 0xc000, "tiles", 0 ) | |
| 2243 | ROM_LOAD( "epr-5527.82", 0x0000, 0x2000, CRC(b2d616f1) SHA1(c079136a5d73e1d55ddbad6efb5e7067d0ff412b) ) | |
| 2244 | ROM_LOAD( "epr-5526.65", 0x2000, 0x2000, CRC(8a8b33c2) SHA1(db796d5c4ab3f749287133eaf05818f89dc2afb7) ) | |
| 2245 | ROM_LOAD( "epr-5525.81", 0x4000, 0x2000, CRC(e749c5ef) SHA1(2022cbd42ff0177cdd661bb00b1004459b6af83a) ) | |
| 2246 | ROM_LOAD( "epr-5524.64", 0x6000, 0x2000, CRC(8b886952) SHA1(6a9c909d10ccb03a8af6fa9d8067946d60b91592) ) | |
| 2247 | ROM_LOAD( "epr-5523.80", 0x8000, 0x2000, CRC(dede35d9) SHA1(6c47fa433e16ccc3fff9347a4fe8f0165d20a3d2) ) | |
| 2248 | ROM_LOAD( "epr-5522.63", 0xa000, 0x2000, CRC(5e6d9dff) SHA1(4f18274f5dc349b99b3daec517ccf5ccbb932d1c) ) | |
| 2249 | ||
| 2250 | ROM_REGION( 0x8000, "sprites", 0 ) | |
| 2251 | ROM_LOAD( "epr-5514.86", 0x0000, 0x4000, CRC(fcc0a88b) SHA1(ca7db3df10deb6720096e6c50eddd9b74c47f0a0) ) | |
| 2252 | ROM_LOAD( "epr-5515.93", 0x4000, 0x4000, CRC(60908838) SHA1(aedff8ce07ab16942037e5aff212652e51c19e71) ) | |
| 2253 | ||
| 2254 | ROM_REGION( 0x0100, "proms", 0 ) | |
| 2255 | ROM_LOAD( "pr-5317.106", 0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ | |
| 2256 | ROM_END | |
| 2257 | ||
| 2258 | ||
| 2011 | 2259 | ROM_START( regulus ) |
| 2012 | 2260 | ROM_REGION( 0x10000, "maincpu", 0 ) |
| 2013 | 2261 | ROM_LOAD( "epr-5640a.129", 0x0000, 0x2000, CRC(dafb1528) SHA1(9140c5507bd931df3f8ef8d2910bc74f737b1a5a) ) /* encrypted */ |
| r4470 | r4471 | |
| 2020 | 2268 | ROM_REGION( 0x10000, "soundcpu", 0 ) |
| 2021 | 2269 | ROM_LOAD( "epr-5652.3", 0x0000, 0x2000, CRC(74edcb98) SHA1(bc181c73a6009ca723e715650adb920b77bd311c) ) |
| 2022 | 2270 | |
| 2023 | ROM_REGION( 0xc000, " | |
| 2271 | ROM_REGION( 0xc000, "tiles", 0 | |
| 2024 | 2272 | ROM_LOAD( "epr-5651.82", 0x0000, 0x2000, CRC(f07f3e82) SHA1(f86acf2de639ac89f80cdf627d1d6b5f5e4f1557) ) |
| 2025 | 2273 | ROM_LOAD( "epr-5650.65", 0x2000, 0x2000, CRC(84c1baa2) SHA1(27ba8e2bb820913e58cb029da9c18d35e67728b8) ) |
| 2026 | 2274 | ROM_LOAD( "epr-5649.81", 0x4000, 0x2000, CRC(6774c895) SHA1(28f74bcf1e6bc06db0984dcf86dd527e301b0c01) ) |
| r4470 | r4471 | |
| 2028 | 2276 | ROM_LOAD( "epr-5647.80", 0x8000, 0x2000, CRC(9330f7b5) SHA1(2c1be04de6ec652ea8a566eb0eb1a9bcb4c90e66) ) |
| 2029 | 2277 | ROM_LOAD( "epr-5646.63", 0xa000, 0x2000, CRC(4dfacbbc) SHA1(e34d1e1aaf3ae7a138e75df5dedebfb4acd79340) ) |
| 2030 | 2278 | |
| 2031 | ROM_REGION( 0x8000, " | |
| 2279 | ROM_REGION( 0x8000, " | |
| 2032 | 2280 | ROM_LOAD( "epr-5638.86", 0x0000, 0x4000, CRC(617363dd) SHA1(c8024f541086a8a940e21219fa4522646aeb365a) ) |
| 2033 | 2281 | ROM_LOAD( "epr-5639.93", 0x4000, 0x4000, CRC(a4ec5131) SHA1(033bf46d2625f99544a784fe3fa299cc1b1b48e1) ) |
| 2034 | 2282 | |
| 2035 | ROM_REGION( 0x0100, " | |
| 2283 | ROM_REGION( 0x0100, " | |
| 2036 | 2284 | ROM_LOAD( "pr-5317.106", 0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ |
| 2037 | 2285 | ROM_END |
| 2038 | 2286 | |
| r4470 | r4471 | |
| 2048 | 2296 | ROM_REGION( 0x10000, "soundcpu", 0 ) |
| 2049 | 2297 | ROM_LOAD( "epr-5652.3", 0x0000, 0x2000, CRC(74edcb98) SHA1(bc181c73a6009ca723e715650adb920b77bd311c) ) |
| 2050 | 2298 | |
| 2051 | ROM_REGION( 0xc000, " | |
| 2299 | ROM_REGION( 0xc000, "tiles", 0 | |
| 2052 | 2300 | ROM_LOAD( "epr-5651.82", 0x0000, 0x2000, CRC(f07f3e82) SHA1(f86acf2de639ac89f80cdf627d1d6b5f5e4f1557) ) |
| 2053 | 2301 | ROM_LOAD( "epr-5650.65", 0x2000, 0x2000, CRC(84c1baa2) SHA1(27ba8e2bb820913e58cb029da9c18d35e67728b8) ) |
| 2054 | 2302 | ROM_LOAD( "epr-5649.81", 0x4000, 0x2000, CRC(6774c895) SHA1(28f74bcf1e6bc06db0984dcf86dd527e301b0c01) ) |
| r4470 | r4471 | |
| 2056 | 2304 | ROM_LOAD( "epr-5647.80", 0x8000, 0x2000, CRC(9330f7b5) SHA1(2c1be04de6ec652ea8a566eb0eb1a9bcb4c90e66) ) |
| 2057 | 2305 | ROM_LOAD( "epr-5646.63", 0xa000, 0x2000, CRC(4dfacbbc) SHA1(e34d1e1aaf3ae7a138e75df5dedebfb4acd79340) ) |
| 2058 | 2306 | |
| 2059 | ROM_REGION( 0x8000, " | |
| 2307 | ROM_REGION( 0x8000, " | |
| 2060 | 2308 | ROM_LOAD( "epr-5638.86", 0x0000, 0x4000, CRC(617363dd) SHA1(c8024f541086a8a940e21219fa4522646aeb365a) ) |
| 2061 | 2309 | ROM_LOAD( "epr-5639.93", 0x4000, 0x4000, CRC(a4ec5131) SHA1(033bf46d2625f99544a784fe3fa299cc1b1b48e1) ) |
| 2062 | 2310 | |
| 2063 | ROM_REGION( 0x0100, " | |
| 2311 | ROM_REGION( 0x0100, " | |
| 2064 | 2312 | ROM_LOAD( "pr-5317.106", 0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ |
| 2065 | 2313 | ROM_END |
| 2066 | 2314 | |
| r4470 | r4471 | |
| 2076 | 2324 | ROM_REGION( 0x10000, "soundcpu", 0 ) |
| 2077 | 2325 | ROM_LOAD( "epr-5652.3", 0x0000, 0x2000, CRC(74edcb98) SHA1(bc181c73a6009ca723e715650adb920b77bd311c) ) |
| 2078 | 2326 | |
| 2079 | ROM_REGION( 0xc000, " | |
| 2327 | ROM_REGION( 0xc000, "tiles", 0 | |
| 2080 | 2328 | ROM_LOAD( "epr-5651.82", 0x0000, 0x2000, CRC(f07f3e82) SHA1(f86acf2de639ac89f80cdf627d1d6b5f5e4f1557) ) |
| 2081 | 2329 | ROM_LOAD( "epr-5650.65", 0x2000, 0x2000, CRC(84c1baa2) SHA1(27ba8e2bb820913e58cb029da9c18d35e67728b8) ) |
| 2082 | 2330 | ROM_LOAD( "epr-5649.81", 0x4000, 0x2000, CRC(6774c895) SHA1(28f74bcf1e6bc06db0984dcf86dd527e301b0c01) ) |
| r4470 | r4471 | |
| 2084 | 2332 | ROM_LOAD( "epr-5647.80", 0x8000, 0x2000, CRC(9330f7b5) SHA1(2c1be04de6ec652ea8a566eb0eb1a9bcb4c90e66) ) |
| 2085 | 2333 | ROM_LOAD( "epr-5646.63", 0xa000, 0x2000, CRC(4dfacbbc) SHA1(e34d1e1aaf3ae7a138e75df5dedebfb4acd79340) ) |
| 2086 | 2334 | |
| 2087 | ROM_REGION( 0x8000, " | |
| 2335 | ROM_REGION( 0x8000, " | |
| 2088 | 2336 | ROM_LOAD( "epr-5638.86", 0x0000, 0x4000, CRC(617363dd) SHA1(c8024f541086a8a940e21219fa4522646aeb365a) ) |
| 2089 | 2337 | ROM_LOAD( "epr-5639.93", 0x4000, 0x4000, CRC(a4ec5131) SHA1(033bf46d2625f99544a784fe3fa299cc1b1b48e1) ) |
| 2090 | 2338 | |
| 2091 | ROM_REGION( 0x0100, " | |
| 2339 | ROM_REGION( 0x0100, " | |
| 2092 | 2340 | ROM_LOAD( "pr-5317.106", 0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ |
| 2093 | 2341 | ROM_END |
| 2094 | 2342 | |
| 2095 | ROM_START( upndown ) | |
| 2096 | ROM_REGION( 0x10000, "maincpu", 0 ) | |
| 2097 | ROM_LOAD( "epr5516a.129", 0x0000, 0x2000, CRC(038c82da) SHA1(b7f403068ed9f97a4b960fb8863615892bb770ed) ) /* encrypted */ | |
| 2098 | ROM_LOAD( "epr5517a.130", 0x2000, 0x2000, CRC(6930e1de) SHA1(8a5564c76e1fd20c8e5d95e5f538980e13c41744) ) /* encrypted */ | |
| 2099 | ROM_LOAD( "epr-5518.131", 0x4000, 0x2000, CRC(2a370c99) SHA1(3d1b2f1cf0d5d2d6369a33e5b3b460a3113d6a3e) ) /* encrypted */ | |
| 2100 | ROM_LOAD( "epr-5519.132", 0x6000, 0x2000, CRC(9d664a58) SHA1(84f2d012dac63e8d0de3935a76f5202539423a74) ) /* encrypted */ | |
| 2101 | ROM_LOAD( "epr-5520.133", 0x8000, 0x2000, CRC(208dfbdf) SHA1(eff0c91ce6c2c1f6e191bcbf9ae83dd377cbb408) ) | |
| 2102 | ROM_LOAD( "epr-5521.134", 0xa000, 0x2000, CRC(e7b8d87a) SHA1(3419318bf6d87b902433bfe3b92baf5e5bad7df3) ) | |
| 2103 | 2343 | |
| 2104 | ROM_REGION( 0x10000, "soundcpu", 0 ) | |
| 2105 | ROM_LOAD( "epr-5535.3", 0x0000, 0x2000, CRC(cf4e4c45) SHA1(d14a204a9966d37f4b9f3ea4c1d371c9d04e750a) ) | |
| 2106 | ||
| 2107 | ROM_REGION( 0xc000, "gfx1", ROMREGION_DISPOSE ) | |
| 2108 | ROM_LOAD( "epr-5527.82", 0x0000, 0x2000, CRC(b2d616f1) SHA1(c079136a5d73e1d55ddbad6efb5e7067d0ff412b) ) | |
| 2109 | ROM_LOAD( "epr-5526.65", 0x2000, 0x2000, CRC(8a8b33c2) SHA1(db796d5c4ab3f749287133eaf05818f89dc2afb7) ) | |
| 2110 | ROM_LOAD( "epr-5525.81", 0x4000, 0x2000, CRC(e749c5ef) SHA1(2022cbd42ff0177cdd661bb00b1004459b6af83a) ) | |
| 2111 | ROM_LOAD( "epr-5524.64", 0x6000, 0x2000, CRC(8b886952) SHA1(6a9c909d10ccb03a8af6fa9d8067946d60b91592) ) | |
| 2112 | ROM_LOAD( "epr-5523.80", 0x8000, 0x2000, CRC(dede35d9) SHA1(6c47fa433e16ccc3fff9347a4fe8f0165d20a3d2) ) | |
| 2113 | ROM_LOAD( "epr-5522.63", 0xa000, 0x2000, CRC(5e6d9dff) SHA1(4f18274f5dc349b99b3daec517ccf5ccbb932d1c) ) | |
| 2114 | ||
| 2115 | ROM_REGION( 0x8000, "gfx2", 0 ) /* 32k for sprites data */ | |
| 2116 | ROM_LOAD( "epr-5514.86", 0x0000, 0x4000, CRC(fcc0a88b) SHA1(ca7db3df10deb6720096e6c50eddd9b74c47f0a0) ) | |
| 2117 | ROM_LOAD( "epr-5515.93", 0x4000, 0x4000, CRC(60908838) SHA1(aedff8ce07ab16942037e5aff212652e51c19e71) ) | |
| 2118 | ||
| 2119 | ROM_REGION( 0x0100, "user1", 0 ) /* misc PROMs, but not color so don't use "proms"! */ | |
| 2120 | ROM_LOAD( "pr-5317.106", 0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ | |
| 2121 | ROM_END | |
| 2122 | ||
| 2123 | ROM_START( upndownu ) | |
| 2124 | ROM_REGION( 0x10000, "maincpu", 0 ) | |
| 2125 | ROM_LOAD( "epr-5679.129", 0x0000, 0x2000, CRC(c4f2f9c2) SHA1(7904ffb46a2c3ef69b9784f343ff37d81bbee11d) ) | |
| 2126 | ROM_LOAD( "epr-5680.130", 0x2000, 0x2000, CRC(837f021c) SHA1(14cc846f03b71e0922689388a6757955cfd88bd8) ) | |
| 2127 | ROM_LOAD( "epr-5681.131", 0x4000, 0x2000, CRC(e1c7ff7e) SHA1(440dc8c18183612c32486c617f5d7f38fd804f0e) ) | |
| 2128 | ROM_LOAD( "epr-5682.132", 0x6000, 0x2000, CRC(4a5edc1e) SHA1(71f06d1c4a580fed07ad32c6d1f2d37d47ed95b1) ) | |
| 2129 | ROM_LOAD( "epr-5520.133", 0x8000, 0x2000, CRC(208dfbdf) SHA1(eff0c91ce6c2c1f6e191bcbf9ae83dd377cbb408) ) /* epr-5683.133 */ | |
| 2130 | ROM_LOAD( "epr-5684.133", 0xa000, 0x2000, CRC(32fa95da) SHA1(ebe87d28dde6b8356d40572e9f2cd35ec240075f) ) | |
| 2131 | ||
| 2132 | ROM_REGION( 0x10000, "soundcpu", 0 ) | |
| 2133 | ROM_LOAD( "epr-5528.3", 0x0000, 0x2000, CRC(00cd44ab) SHA1(7f5385aa0773681329a4759b0fa6f975e3de6755) ) | |
| 2134 | ||
| 2135 | ROM_REGION( 0xc000, "gfx1", ROMREGION_DISPOSE ) | |
| 2136 | ROM_LOAD( "epr-5527.82", 0x0000, 0x2000, CRC(b2d616f1) SHA1(c079136a5d73e1d55ddbad6efb5e7067d0ff412b) ) | |
| 2137 | ROM_LOAD( "epr-5526.65", 0x2000, 0x2000, CRC(8a8b33c2) SHA1(db796d5c4ab3f749287133eaf05818f89dc2afb7) ) | |
| 2138 | ROM_LOAD( "epr-5525.81", 0x4000, 0x2000, CRC(e749c5ef) SHA1(2022cbd42ff0177cdd661bb00b1004459b6af83a) ) | |
| 2139 | ROM_LOAD( "epr-5524.64", 0x6000, 0x2000, CRC(8b886952) SHA1(6a9c909d10ccb03a8af6fa9d8067946d60b91592) ) | |
| 2140 | ROM_LOAD( "epr-5523.80", 0x8000, 0x2000, CRC(dede35d9) SHA1(6c47fa433e16ccc3fff9347a4fe8f0165d20a3d2) ) | |
| 2141 | ROM_LOAD( "epr-5522.63", 0xa000, 0x2000, CRC(5e6d9dff) SHA1(4f18274f5dc349b99b3daec517ccf5ccbb932d1c) ) | |
| 2142 | ||
| 2143 | ROM_REGION( 0x8000, "gfx2", 0 ) /* 32k for sprites data */ | |
| 2144 | ROM_LOAD( "epr-5514.86", 0x0000, 0x4000, CRC(fcc0a88b) SHA1(ca7db3df10deb6720096e6c50eddd9b74c47f0a0) ) | |
| 2145 | ROM_LOAD( "epr-5515.93", 0x4000, 0x4000, CRC(60908838) SHA1(aedff8ce07ab16942037e5aff212652e51c19e71) ) | |
| 2146 | ||
| 2147 | ROM_REGION( 0x0100, "user1", 0 ) /* misc PROMs, but not color so don't use "proms"! */ | |
| 2148 | ROM_LOAD( "pr-5317.106", 0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ | |
| 2149 | ROM_END | |
| 2150 | ||
| 2151 | 2344 | ROM_START( mrviking ) |
| 2152 | 2345 | ROM_REGION( 0x10000, "maincpu", 0 ) |
| 2153 | 2346 | ROM_LOAD( "epr-5873.129", 0x0000, 0x2000, CRC(14d21624) SHA1(70e185d03e782be908e6b5c6342cf6a7ebae618c) ) /* encrypted */ |
| r4470 | r4471 | |
| 2160 | 2353 | ROM_REGION( 0x10000, "soundcpu", 0 ) |
| 2161 | 2354 | ROM_LOAD( "epr-5763.3", 0x0000, 0x2000, CRC(d712280d) SHA1(8393dfb57d9af22b3280ecaef736b6f9d856dbee) ) |
| 2162 | 2355 | |
| 2163 | ROM_REGION( 0xc000, " | |
| 2356 | ROM_REGION( 0xc000, "tiles", 0 | |
| 2164 | 2357 | ROM_LOAD( "epr-5762.82", 0x0000, 0x2000, CRC(4a91d08a) SHA1(4687ecc4061719fca5f85b2b290ebb7ced15ee5b) ) |
| 2165 | 2358 | ROM_LOAD( "epr-5761.65", 0x2000, 0x2000, CRC(f7d61b65) SHA1(a7a992f52406413e931945be60b35175f8aea6c2) ) |
| 2166 | 2359 | ROM_LOAD( "epr-5760.81", 0x4000, 0x2000, CRC(95045820) SHA1(d1848fc4f3d66603d0e8217373a37148aa2eeef5) ) |
| r4470 | r4471 | |
| 2168 | 2361 | ROM_LOAD( "epr-5758.80", 0x8000, 0x2000, CRC(808ee706) SHA1(d38ca7c6f36db6e35a3ce87bacdd70f293f23104) ) |
| 2169 | 2362 | ROM_LOAD( "epr-5757.63", 0xa000, 0x2000, CRC(480f7074) SHA1(c54a1fa02e312676658d7c5392a5a841bdb15d44) ) |
| 2170 | 2363 | |
| 2171 | ROM_REGION( 0x8000, " | |
| 2364 | ROM_REGION( 0x8000, " | |
| 2172 | 2365 | ROM_LOAD( "epr-5749.86", 0x0000, 0x4000, CRC(e24682cd) SHA1(3f626f3e5e2db486ccf727e9869ab488643b4a8c) ) |
| 2173 | 2366 | ROM_LOAD( "epr-5750.93", 0x4000, 0x4000, CRC(6564d1ad) SHA1(f246afee7e73bc30054b0e5dcb83fa0edd2d2164) ) |
| 2174 | 2367 | |
| 2175 | ROM_REGION( 0x0100, " | |
| 2368 | ROM_REGION( 0x0100, " | |
| 2176 | 2369 | ROM_LOAD( "pr-5317.106", 0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ |
| 2177 | 2370 | ROM_END |
| 2178 | 2371 | |
| 2179 | ROM_START( mrvikngj ) | |
| 2372 | ROM_START( mrvikingj ) | |
| 2180 | 2373 | ROM_REGION( 0x10000, "maincpu", 0 ) |
| 2181 | 2374 | ROM_LOAD( "epr-5751.129", 0x0000, 0x2000, CRC(ae97a4c5) SHA1(12edd757bd5b00d42ada1e10c43817f71cfe77dc) ) /* encrypted */ |
| 2182 | 2375 | ROM_LOAD( "epr-5752.130", 0x2000, 0x2000, CRC(d48e6726) SHA1(934b5e7568c85005c5ec40d75e49727a18562d50) ) /* encrypted */ |
| r4470 | r4471 | |
| 2188 | 2381 | ROM_REGION( 0x10000, "soundcpu", 0 ) |
| 2189 | 2382 | ROM_LOAD( "epr-5763.3", 0x0000, 0x2000, CRC(d712280d) SHA1(8393dfb57d9af22b3280ecaef736b6f9d856dbee) ) |
| 2190 | 2383 | |
| 2191 | ROM_REGION( 0xc000, " | |
| 2384 | ROM_REGION( 0xc000, "tiles", 0 | |
| 2192 | 2385 | ROM_LOAD( "epr-5762.82", 0x0000, 0x2000, CRC(4a91d08a) SHA1(4687ecc4061719fca5f85b2b290ebb7ced15ee5b) ) |
| 2193 | 2386 | ROM_LOAD( "epr-5761.65", 0x2000, 0x2000, CRC(f7d61b65) SHA1(a7a992f52406413e931945be60b35175f8aea6c2) ) |
| 2194 | 2387 | ROM_LOAD( "epr-5760.81", 0x4000, 0x2000, CRC(95045820) SHA1(d1848fc4f3d66603d0e8217373a37148aa2eeef5) ) |
| r4470 | r4471 | |
| 2196 | 2389 | ROM_LOAD( "epr-5758.80", 0x8000, 0x2000, CRC(808ee706) SHA1(d38ca7c6f36db6e35a3ce87bacdd70f293f23104) ) |
| 2197 | 2390 | ROM_LOAD( "epr-5757.63", 0xa000, 0x2000, CRC(480f7074) SHA1(c54a1fa02e312676658d7c5392a5a841bdb15d44) ) |
| 2198 | 2391 | |
| 2199 | ROM_REGION( 0x8000, " | |
| 2392 | ROM_REGION( 0x8000, " | |
| 2200 | 2393 | ROM_LOAD( "epr-5749.86", 0x0000, 0x4000, CRC(e24682cd) SHA1(3f626f3e5e2db486ccf727e9869ab488643b4a8c) ) |
| 2201 | 2394 | ROM_LOAD( "epr-5750.93", 0x4000, 0x4000, CRC(6564d1ad) SHA1(f246afee7e73bc30054b0e5dcb83fa0edd2d2164) ) |
| 2202 | 2395 | |
| 2203 | ROM_REGION( 0x0100, " | |
| 2396 | ROM_REGION( 0x0100, " | |
| 2204 | 2397 | ROM_LOAD( "pr-5317.106", 0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ |
| 2205 | 2398 | ROM_END |
| 2206 | 2399 | |
| 2400 | ||
| 2207 | 2401 | ROM_START( swat ) |
| 2208 | 2402 | ROM_REGION( 0x10000, "maincpu", 0 ) |
| 2209 | 2403 | ROM_LOAD( "epr5807b.129", 0x0000, 0x2000, CRC(93db9c9f) SHA1(56e9d9a33f04b4d5971c0db24cc8719a52e64678) ) /* encrypted */ |
| r4470 | r4471 | |
| 2216 | 2410 | ROM_REGION( 0x10000, "soundcpu", 0 ) |
| 2217 | 2411 | ROM_LOAD( "epr-5819.3", 0x0000, 0x2000, CRC(f6afd0fd) SHA1(06062648b9ebc70b4b5c30b043f537adc0052047) ) |
| 2218 | 2412 | |
| 2219 | ROM_REGION( 0xc000, " | |
| 2413 | ROM_REGION( 0xc000, "tiles", 0 | |
| 2220 | 2414 | ROM_LOAD( "epr-5818.82", 0x0000, 0x2000, CRC(b22033d9) SHA1(ad217cd8dad178f3f2f1fd44a58adcc4887fb6b7) ) |
| 2221 | 2415 | ROM_LOAD( "epr-5817.65", 0x2000, 0x2000, CRC(fd942797) SHA1(da7378e8d12cc2970df2efa075c944c79b3b74d2) ) |
| 2222 | 2416 | ROM_LOAD( "epr-5816.81", 0x4000, 0x2000, CRC(4384376d) SHA1(78ae13a38d6368e44ba95642cce7f5515a5b6022) ) |
| r4470 | r4471 | |
| 2224 | 2418 | ROM_LOAD( "epr-5814.80", 0x8000, 0x2000, CRC(be721c99) SHA1(bbb0afe2b195d60418014c36acf3de95adfd90d8) ) |
| 2225 | 2419 | ROM_LOAD( "epr-5813.63", 0xa000, 0x2000, CRC(0d42c27e) SHA1(06b1d23cacfef3017e5951dc10e8471e9b3103d5) ) |
| 2226 | 2420 | |
| 2227 | ROM_REGION( 0x8000, " | |
| 2421 | ROM_REGION( 0x8000, " | |
| 2228 | 2422 | ROM_LOAD( "epr-5805.86", 0x0000, 0x4000, CRC(5a732865) SHA1(55c54e54f052187ddd957131e56400c9c432a6b2) ) |
| 2229 | 2423 | ROM_LOAD( "epr-5806.93", 0x4000, 0x4000, CRC(26ac258c) SHA1(e4e9f929ab8ae7da74f885481cf94335d7553a1c) ) |
| 2230 | 2424 | |
| 2231 | ROM_REGION( 0x0100, " | |
| 2425 | ROM_REGION( 0x0100, " | |
| 2232 | 2426 | ROM_LOAD( "pr-5317.106", 0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ |
| 2233 | 2427 | ROM_END |
| 2234 | 2428 | |
| 2429 | ||
| 2235 | 2430 | ROM_START( flicky ) |
| 2236 | 2431 | ROM_REGION( 0x10000, "maincpu", 0 ) |
| 2237 | 2432 | ROM_LOAD( "epr5978a.116", 0x0000, 0x4000, CRC(296f1492) SHA1(52e2c63ce376ab8124b2c68bdfa432b6621cfa78) ) /* encrypted */ |
| r4470 | r4471 | |
| 2240 | 2435 | ROM_REGION( 0x10000, "soundcpu", 0 ) |
| 2241 | 2436 | ROM_LOAD( "epr-5869.120", 0x0000, 0x2000, CRC(6d220d4e) SHA1(fe02a7a94a1ad046fc775a7f67f460c8d0f6dca6) ) |
| 2242 | 2437 | |
| 2243 | ROM_REGION( 0xc000, " | |
| 2438 | ROM_REGION( 0xc000, "tiles", 0 | |
| 2244 | 2439 | ROM_LOAD( "epr-5868.62", 0x0000, 0x2000, CRC(7402256b) SHA1(5bd660ac24a2d0d8ad983e948674a82a2d2e8b49) ) |
| 2245 | 2440 | ROM_LOAD( "epr-5867.61", 0x2000, 0x2000, CRC(2f5ce930) SHA1(4bc3bc6eb8f03926d3710c9f96fcc1b116e918d3) ) |
| 2246 | 2441 | ROM_LOAD( "epr-5866.64", 0x4000, 0x2000, CRC(967f1d9a) SHA1(652be7848526c6e61db4a502f75d1689d2ff2f59) ) |
| r4470 | r4471 | |
| 2248 | 2443 | ROM_LOAD( "epr-5864.66", 0x8000, 0x2000, CRC(e659f358) SHA1(cf59f1fb0f9fb77d5ac36be52b6ee946ee85d6de) ) |
| 2249 | 2444 | ROM_LOAD( "epr-5863.65", 0xa000, 0x2000, CRC(a496ca15) SHA1(8c629a853486bbe049b1deecdc00f9e16b87698f) ) |
| 2250 | 2445 | |
| 2251 | ROM_REGION( 0x8000, " | |
| 2446 | ROM_REGION( 0x8000, " | |
| 2252 | 2447 | ROM_LOAD( "epr-5855.117", 0x0000, 0x4000, CRC(b5f894a1) SHA1(2c72dc16739dad155fcd572e1add067a7647f5bd) ) |
| 2253 | 2448 | ROM_LOAD( "epr-5856.110", 0x4000, 0x4000, CRC(266af78f) SHA1(dcbfce550d10a1f2b3ce3e7e081fc008cb575708) ) |
| 2254 | 2449 | |
| 2255 | ROM_REGION( 0x0100, " | |
| 2450 | ROM_REGION( 0x0100, " | |
| 2256 | 2451 | ROM_LOAD( "pr-5317.76", 0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ |
| 2257 | 2452 | ROM_END |
| 2258 | 2453 | |
| 2259 | ROM_START( flicks2 ) | |
| 2454 | ROM_START( flickys2 ) | |
| 2260 | 2455 | ROM_REGION( 0x10000, "maincpu", 0 ) |
| 2261 | 2456 | ROM_LOAD( "epr-6621.bin", 0x0000, 0x4000, CRC(b21ff546) SHA1(e1d5438eaf0efeaeb4687dcfc12bf325e804182f) ) |
| 2262 | 2457 | ROM_LOAD( "epr-6622.bin", 0x4000, 0x4000, CRC(133a8bf1) SHA1(e5e620797daace0843a680cb4572586b5e639ca0) ) |
| r4470 | r4471 | |
| 2264 | 2459 | ROM_REGION( 0x10000, "soundcpu", 0 ) |
| 2265 | 2460 | ROM_LOAD( "epr-5869.120", 0x0000, 0x2000, CRC(6d220d4e) SHA1(fe02a7a94a1ad046fc775a7f67f460c8d0f6dca6) ) |
| 2266 | 2461 | |
| 2267 | ROM_REGION( 0xc000, " | |
| 2462 | ROM_REGION( 0xc000, "tiles", 0 | |
| 2268 | 2463 | ROM_LOAD( "epr-5868.62", 0x0000, 0x2000, CRC(7402256b) SHA1(5bd660ac24a2d0d8ad983e948674a82a2d2e8b49) ) |
| 2269 | 2464 | ROM_LOAD( "epr-5867.61", 0x2000, 0x2000, CRC(2f5ce930) SHA1(4bc3bc6eb8f03926d3710c9f96fcc1b116e918d3) ) |
| 2270 | 2465 | ROM_LOAD( "epr-5866.64", 0x4000, 0x2000, CRC(967f1d9a) SHA1(652be7848526c6e61db4a502f75d1689d2ff2f59) ) |
| r4470 | r4471 | |
| 2272 | 2467 | ROM_LOAD( "epr-5864.66", 0x8000, 0x2000, CRC(e659f358) SHA1(cf59f1fb0f9fb77d5ac36be52b6ee946ee85d6de) ) |
| 2273 | 2468 | ROM_LOAD( "epr-5863.65", 0xa000, 0x2000, CRC(a496ca15) SHA1(8c629a853486bbe049b1deecdc00f9e16b87698f) ) |
| 2274 | 2469 | |
| 2275 | ROM_REGION( 0x8000, " | |
| 2470 | ROM_REGION( 0x8000, " | |
| 2276 | 2471 | ROM_LOAD( "epr-5855.117", 0x0000, 0x4000, CRC(b5f894a1) SHA1(2c72dc16739dad155fcd572e1add067a7647f5bd) ) |
| 2277 | 2472 | ROM_LOAD( "epr-5856.110", 0x4000, 0x4000, CRC(266af78f) SHA1(dcbfce550d10a1f2b3ce3e7e081fc008cb575708) ) |
| 2278 | 2473 | |
| 2279 | ROM_REGION( 0x0100, " | |
| 2474 | ROM_REGION( 0x0100, " | |
| 2280 | 2475 | ROM_LOAD( "pr-5317.76", 0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ |
| 2281 | 2476 | ROM_END |
| 2282 | 2477 | |
| 2283 | ||
| 2284 | ||
| 2285 | ROM_START( flicks1 ) | |
| 2478 | ROM_START( flickys1 ) | |
| 2286 | 2479 | ROM_REGION( 0x10000, "maincpu", 0 ) |
| 2287 | 2480 | ROM_LOAD( "ic129", 0x0000, 0x2000, CRC(7011275c) SHA1(69d9d1a66734bf859dbd0200b5a772110bd522c1) ) /* encrypted */ |
| 2288 | 2481 | ROM_LOAD( "ic130", 0x2000, 0x2000, CRC(e7ed012d) SHA1(7f378ad3e0b6721d7108b4ee10333422df92c039) ) /* encrypted */ |
| r4470 | r4471 | |
| 2292 | 2485 | ROM_REGION( 0x10000, "soundcpu", 0 ) |
| 2293 | 2486 | ROM_LOAD( "epr-5869.120", 0x0000, 0x2000, CRC(6d220d4e) SHA1(fe02a7a94a1ad046fc775a7f67f460c8d0f6dca6) ) |
| 2294 | 2487 | |
| 2295 | ROM_REGION( 0xc000, " | |
| 2488 | ROM_REGION( 0xc000, "tiles", 0 | |
| 2296 | 2489 | ROM_LOAD( "epr-5868.62", 0x0000, 0x2000, CRC(7402256b) SHA1(5bd660ac24a2d0d8ad983e948674a82a2d2e8b49) ) |
| 2297 | 2490 | ROM_LOAD( "epr-5867.61", 0x2000, 0x2000, CRC(2f5ce930) SHA1(4bc3bc6eb8f03926d3710c9f96fcc1b116e918d3) ) |
| 2298 | 2491 | ROM_LOAD( "epr-5866.64", 0x4000, 0x2000, CRC(967f1d9a) SHA1(652be7848526c6e61db4a502f75d1689d2ff2f59) ) |
| r4470 | r4471 | |
| 2300 | 2493 | ROM_LOAD( "epr-5864.66", 0x8000, 0x2000, CRC(e659f358) SHA1(cf59f1fb0f9fb77d5ac36be52b6ee946ee85d6de) ) |
| 2301 | 2494 | ROM_LOAD( "epr-5863.65", 0xa000, 0x2000, CRC(a496ca15) SHA1(8c629a853486bbe049b1deecdc00f9e16b87698f) ) |
| 2302 | 2495 | |
| 2303 | ROM_REGION( 0x8000, " | |
| 2496 | ROM_REGION( 0x8000, " | |
| 2304 | 2497 | ROM_LOAD( "epr-5855.117", 0x0000, 0x4000, CRC(b5f894a1) SHA1(2c72dc16739dad155fcd572e1add067a7647f5bd) ) |
| 2305 | 2498 | ROM_LOAD( "epr-5856.110", 0x4000, 0x4000, CRC(266af78f) SHA1(dcbfce550d10a1f2b3ce3e7e081fc008cb575708) ) |
| 2306 | 2499 | |
| 2307 | ROM_REGION( 0x0100, " | |
| 2500 | ROM_REGION( 0x0100, " | |
| 2308 | 2501 | ROM_LOAD( "pr-5317.76", 0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ |
| 2309 | 2502 | ROM_END |
| 2310 | 2503 | |
| r4470 | r4471 | |
| 2318 | 2511 | ROM_REGION( 0x10000, "soundcpu", 0 ) |
| 2319 | 2512 | ROM_LOAD( "epr-5869.120", 0x0000, 0x2000, CRC(6d220d4e) SHA1(fe02a7a94a1ad046fc775a7f67f460c8d0f6dca6) ) |
| 2320 | 2513 | |
| 2321 | ROM_REGION( 0xc000, " | |
| 2514 | ROM_REGION( 0xc000, "tiles", 0 | |
| 2322 | 2515 | ROM_LOAD( "epr-5868.62", 0x0000, 0x2000, CRC(7402256b) SHA1(5bd660ac24a2d0d8ad983e948674a82a2d2e8b49) ) |
| 2323 | 2516 | ROM_LOAD( "epr-5867.61", 0x2000, 0x2000, CRC(2f5ce930) SHA1(4bc3bc6eb8f03926d3710c9f96fcc1b116e918d3) ) |
| 2324 | 2517 | ROM_LOAD( "epr-5866.64", 0x4000, 0x2000, CRC(967f1d9a) SHA1(652be7848526c6e61db4a502f75d1689d2ff2f59) ) |
| r4470 | r4471 | |
| 2326 | 2519 | ROM_LOAD( "epr-5864.66", 0x8000, 0x2000, CRC(e659f358) SHA1(cf59f1fb0f9fb77d5ac36be52b6ee946ee85d6de) ) |
| 2327 | 2520 | ROM_LOAD( "epr-5863.65", 0xa000, 0x2000, CRC(a496ca15) SHA1(8c629a853486bbe049b1deecdc00f9e16b87698f) ) |
| 2328 | 2521 | |
| 2329 | ROM_REGION( 0x8000, " | |
| 2522 | ROM_REGION( 0x8000, " | |
| 2330 | 2523 | ROM_LOAD( "epr-5855.117", 0x0000, 0x4000, CRC(b5f894a1) SHA1(2c72dc16739dad155fcd572e1add067a7647f5bd) ) |
| 2331 | 2524 | ROM_LOAD( "epr-5856.110", 0x4000, 0x4000, CRC(266af78f) SHA1(dcbfce550d10a1f2b3ce3e7e081fc008cb575708) ) |
| 2332 | 2525 | |
| 2333 | ROM_REGION( 0x0100, " | |
| 2526 | ROM_REGION( 0x0100, " | |
| 2334 | 2527 | ROM_LOAD( "pr-5317.76", 0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ |
| 2335 | 2528 | ROM_END |
| 2336 | 2529 | |
| 2530 | ||
| 2337 | 2531 | ROM_START( wmatch ) |
| 2338 | 2532 | ROM_REGION( 0x10000, "maincpu", 0 ) |
| 2339 | 2533 | ROM_LOAD( "wm.129", 0x0000, 0x2000, CRC(b6db4442) SHA1(9f31b3b2d4b4a430f9de84141ebd66bdba063387) ) /* encrypted */ |
| r4470 | r4471 | |
| 2346 | 2540 | ROM_REGION( 0x10000, "soundcpu", 0 ) |
| 2347 | 2541 | ROM_LOAD( "wm.3", 0x0000, 0x2000, CRC(50d2afb7) SHA1(21b109d389d0b52d89cf635467c3213f6b24d7df) ) |
| 2348 | 2542 | |
| 2349 | ROM_REGION( 0xc000, " | |
| 2543 | ROM_REGION( 0xc000, "tiles", 0 | |
| 2350 | 2544 | ROM_LOAD( "wm.82", 0x0000, 0x2000, CRC(540f0bf3) SHA1(3898dee3ed9e7382a9dfc3ee2af177c5b832ea84) ) |
| 2351 | 2545 | ROM_LOAD( "wm.65", 0x2000, 0x2000, CRC(92c1e39e) SHA1(a701a66ed75fbc0be4819751dabb86e51a1dbbc4) ) |
| 2352 | 2546 | ROM_LOAD( "wm.81", 0x4000, 0x2000, CRC(6a01ff2a) SHA1(f609fe9ec648dd428a6e2fc544585935d7adc562) ) |
| r4470 | r4471 | |
| 2354 | 2548 | ROM_LOAD( "wm.80", 0x8000, 0x2000, CRC(fc3f0bd4) SHA1(887ff0d6c5fff0d1e631518fc89901d43a0d7088) ) |
| 2355 | 2549 | ROM_LOAD( "wm.63", 0xa000, 0x2000, CRC(c2ce9b93) SHA1(934f4dddf2f42a23f91385dd62fc166b117063b8) ) |
| 2356 | 2550 | |
| 2357 | ROM_REGION( 0x8000, " | |
| 2551 | ROM_REGION( 0x8000, " | |
| 2358 | 2552 | ROM_LOAD( "wm.86", 0x0000, 0x4000, CRC(238ae0e5) SHA1(af18cfe7f8103358a0ce2aef9bbd949fdc0bfbfc) ) |
| 2359 | 2553 | ROM_LOAD( "wm.93", 0x4000, 0x4000, CRC(a2f19170) SHA1(47dacc380b09c6365c737d320145cedad54ecedb) ) |
| 2360 | 2554 | |
| 2361 | ROM_REGION( 0x0100, " | |
| 2555 | ROM_REGION( 0x0100, " | |
| 2362 | 2556 | ROM_LOAD( "pr-5317.106", 0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ |
| 2363 | 2557 | ROM_END |
| 2364 | 2558 | |
| 2559 | ||
| 2365 | 2560 | ROM_START( bullfgt ) |
| 2366 | 2561 | ROM_REGION( 0x10000, "maincpu", 0 ) |
| 2367 | 2562 | ROM_LOAD( "epr-.129", 0x0000, 0x2000, CRC(29f19156) SHA1(86cca9601f63b9b3d3aaaf21c3a3e456a50ca6b8) ) /* encrypted */ |
| r4470 | r4471 | |
| 2374 | 2569 | ROM_REGION( 0x10000, "soundcpu", 0 ) |
| 2375 | 2570 | ROM_LOAD( "epr-6077.120", 0x0000, 0x2000, CRC(02a37602) SHA1(1b67b0d80a228f7faf054bfd79aff120d92c8166) ) |
| 2376 | 2571 | |
| 2377 | ROM_REGION( 0xc000, " | |
| 2572 | ROM_REGION( 0xc000, "tiles", 0 | |
| 2378 | 2573 | ROM_LOAD( "epr-.82", 0x0000, 0x2000, CRC(b71c349f) SHA1(5a0e9b90c71708dadab201da09c71449e05268e1) ) |
| 2379 | 2574 | ROM_LOAD( "epr-.65", 0x2000, 0x2000, CRC(86deafa8) SHA1(b4b9d38bd4a47ce2e75ec0ef3d7507aef8a16858) ) |
| 2380 | 2575 | ROM_LOAD( "epr-6087.81", 0x4000, 0x2000, CRC(2677742c) SHA1(6a6154f1c2cc53b9d224fc73bab47e6deb7c505f) ) /* epr-6087.81 */ |
| r4470 | r4471 | |
| 2382 | 2577 | ROM_LOAD( "epr-6085.80", 0x8000, 0x2000, CRC(9c3ddc62) SHA1(3332824de114836760a40133fb65d8f40474bc81) ) /* epr-6085.80 */ |
| 2383 | 2578 | ROM_LOAD( "epr-.63", 0xa000, 0x2000, CRC(c0fce57c) SHA1(74f2c987f77e73b7069014d3bd6809d8bb3596c7) ) |
| 2384 | 2579 | |
| 2385 | ROM_REGION( 0x8000, " | |
| 2580 | ROM_REGION( 0x8000, " | |
| 2386 | 2581 | ROM_LOAD( "epr-6069.86", 0x0000, 0x4000, CRC(fe691e41) SHA1(90faf26685202e2a25bb3024750456014d0722b3) ) /* epr-6069.86 */ |
| 2387 | 2582 | ROM_LOAD( "epr-6070.93", 0x4000, 0x4000, CRC(34f080df) SHA1(0e7d28e3325c8c3f06438fde29ea0ffe57fc325f) ) /* epr-6070.93 */ |
| 2388 | 2583 | |
| 2389 | ROM_REGION( 0x0100, " | |
| 2584 | ROM_REGION( 0x0100, " | |
| 2390 | 2585 | ROM_LOAD( "pr-5317.76", 0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ |
| 2391 | 2586 | /* pr-5317.106 */ |
| 2392 | 2587 | ROM_END |
| r4470 | r4471 | |
| 2400 | 2595 | ROM_REGION( 0x10000, "soundcpu", 0 ) |
| 2401 | 2596 | ROM_LOAD( "epr-6077.120", 0x0000, 0x2000, CRC(02a37602) SHA1(1b67b0d80a228f7faf054bfd79aff120d92c8166) ) |
| 2402 | 2597 | |
| 2403 | ROM_REGION( 0xc000, " | |
| 2598 | ROM_REGION( 0xc000, "tiles", 0 | |
| 2404 | 2599 | ROM_LOAD( "epr-6089.62", 0x0000, 0x2000, CRC(a183e5ff) SHA1(bb710377a8e88f530b669141ab46abd867c6cb83) ) |
| 2405 | 2600 | ROM_LOAD( "epr-6088.61", 0x2000, 0x2000, CRC(b919b4a6) SHA1(ca11a96bee2e2059552ac6cce6f8dead1965ef4b) ) |
| 2406 | 2601 | ROM_LOAD( "epr-6087.64", 0x4000, 0x2000, CRC(2677742c) SHA1(6a6154f1c2cc53b9d224fc73bab47e6deb7c505f) ) |
| r4470 | r4471 | |
| 2408 | 2603 | ROM_LOAD( "epr-6085.66", 0x8000, 0x2000, CRC(9c3ddc62) SHA1(3332824de114836760a40133fb65d8f40474bc81) ) |
| 2409 | 2604 | ROM_LOAD( "epr-6084.65", 0xa000, 0x2000, CRC(90e1fa5f) SHA1(e37a7f872229a93a70e42615e6452aa608d53a93) ) |
| 2410 | 2605 | |
| 2411 | ROM_REGION( 0x8000, " | |
| 2606 | ROM_REGION( 0x8000, " | |
| 2412 | 2607 | ROM_LOAD( "epr-6069.117", 0x0000, 0x4000, CRC(fe691e41) SHA1(90faf26685202e2a25bb3024750456014d0722b3) ) |
| 2413 | 2608 | ROM_LOAD( "epr-6070.110", 0x4000, 0x4000, CRC(34f080df) SHA1(0e7d28e3325c8c3f06438fde29ea0ffe57fc325f) ) |
| 2414 | 2609 | |
| 2415 | ROM_REGION( 0x0100, " | |
| 2610 | ROM_REGION( 0x0100, " | |
| 2416 | 2611 | ROM_LOAD( "pr-5317.76", 0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ |
| 2417 | 2612 | ROM_END |
| 2418 | 2613 | |
| 2614 | ||
| 2615 | ROM_START( spatter ) | |
| 2616 | ROM_REGION( 0x10000, "maincpu", 0 ) | |
| 2617 | ROM_LOAD( "epr-6392.116", 0x0000, 0x4000, CRC(329b4506) SHA1(8f71ffc3015c4fcf84a895bf53760830602f1040) ) /* encrypted */ | |
| 2618 | ROM_LOAD( "epr-6393.109", 0x4000, 0x4000, CRC(3b56e25f) SHA1(23f26f8632c8a370b5b3b7a3ec58f359cdf04f73) ) /* encrypted */ | |
| 2619 | ROM_LOAD( "epr-6394.96", 0x8000, 0x4000, CRC(647c1301) SHA1(5142abfcc63772fd1b47eb584ccda0bc3830e337) ) | |
| 2620 | ||
| 2621 | ROM_REGION( 0x10000, "soundcpu", 0 ) | |
| 2622 | ROM_LOAD( "epr-6316.120", 0x0000, 0x2000, CRC(1df95511) SHA1(5780631c8c5a2c3fcd4085f217affa660d72a4e9) ) | |
| 2623 | ||
| 2624 | ROM_REGION( 0xc000, "tiles", 0 ) | |
| 2625 | ROM_LOAD( "epr-6328.62", 0x0000, 0x2000, CRC(a2bf2832) SHA1(5d7047a6a0c0588a4e98b6ce94d5fd0e6ab963f9) ) | |
| 2626 | ROM_LOAD( "epr-6397.61", 0x2000, 0x2000, CRC(c60d4471) SHA1(9e8130d575fa342485dfe093e086a4b48e51b904) ) | |
| 2627 | ROM_LOAD( "epr-6326.64", 0x4000, 0x2000, CRC(269fbb4c) SHA1(7b91f551360698195bf9ce8e32dd2e8fa17e9db8) ) | |
| 2628 | ROM_LOAD( "epr-6396.63", 0x6000, 0x2000, CRC(c15ccf3b) SHA1(14809ab81816eedb85cacda042e437d48cf9b31a) ) | |
| 2629 | ROM_LOAD( "epr-6324.66", 0x8000, 0x2000, CRC(8ab3b563) SHA1(6ede93b9f1593dbcbabd6c875bac8ec01a1b40a2) ) | |
| 2630 | ROM_LOAD( "epr-6395.65", 0xa000, 0x2000, CRC(3f083065) SHA1(cb17c8c2fe04baa58863c10cd8f359a58def3417) ) | |
| 2631 | ||
| 2632 | ROM_REGION( 0x10000, "sprites", 0 ) | |
| 2633 | ROM_LOAD( "epr-6306.04", 0x0000, 0x4000, CRC(e871e132) SHA1(55f7ab1a8c9a118911c64930452ea05f6ee37fc4) ) | |
| 2634 | ROM_LOAD( "epr-6308.117", 0x4000, 0x4000, CRC(99c2d90e) SHA1(5be54d931622892b7acc320e714d5b1cdce02d19) ) | |
| 2635 | ROM_LOAD( "epr-6307.05", 0x8000, 0x4000, CRC(0a5ad543) SHA1(5acada30c1affc4ffbebc8365a9ba4465f213d47) ) | |
| 2636 | ROM_LOAD( "epr-6309.110", 0xc000, 0x4000, CRC(7423ad98) SHA1(e19b4c64795f30e1491520160d315e4148d58df2) ) | |
| 2637 | ||
| 2638 | ROM_REGION( 0x0100, "proms", 0 ) | |
| 2639 | ROM_LOAD( "pr-5317.76", 0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ | |
| 2640 | /* pr-5317.106 */ | |
| 2641 | ROM_END | |
| 2642 | ||
| 2643 | ROM_START( ssanchan ) | |
| 2644 | ROM_REGION( 0x10000, "maincpu", 0 ) | |
| 2645 | ROM_LOAD( "epr-6310.116", 0x0000, 0x4000, CRC(26b43701) SHA1(e041bde10da12a3f698da09220f0a7cc2ee99abe) ) /* encrypted */ | |
| 2646 | ROM_LOAD( "epr-6311.109", 0x4000, 0x4000, CRC(cb2bc620) SHA1(ecc69360ad9fcc825b35955fbc29da9ea28b8846) ) /* encrypted */ | |
| 2647 | ROM_LOAD( "epr-6312.96", 0x8000, 0x4000, CRC(71b15b47) SHA1(7c955be049f9a8d7ca18d877183b698dd5ffe4da) ) | |
| 2648 | ||
| 2649 | ROM_REGION( 0x10000, "soundcpu", 0 ) | |
| 2650 | ROM_LOAD( "epr-6316.120", 0x0000, 0x2000, CRC(1df95511) SHA1(5780631c8c5a2c3fcd4085f217affa660d72a4e9) ) | |
| 2651 | ||
| 2652 | ROM_REGION( 0xc000, "tiles", 0 ) | |
| 2653 | ROM_LOAD( "epr-6328.62", 0x0000, 0x2000, CRC(a2bf2832) SHA1(5d7047a6a0c0588a4e98b6ce94d5fd0e6ab963f9) ) | |
| 2654 | ROM_LOAD( "epr-6327.61", 0x2000, 0x2000, CRC(53298109) SHA1(75fd37034aee78d63939d8b4f584c1dc1042264b) ) | |
| 2655 | ROM_LOAD( "epr-6326.64", 0x4000, 0x2000, CRC(269fbb4c) SHA1(7b91f551360698195bf9ce8e32dd2e8fa17e9db8) ) | |
| 2656 | ROM_LOAD( "epr-6325.63", 0x6000, 0x2000, CRC(bf038745) SHA1(2fda2412f76b8971ba543ec10da07d4b0d1f2006) ) | |
| 2657 | ROM_LOAD( "epr-6324.66", 0x8000, 0x2000, CRC(8ab3b563) SHA1(6ede93b9f1593dbcbabd6c875bac8ec01a1b40a2) ) | |
| 2658 | ROM_LOAD( "epr-6323.65", 0xa000, 0x2000, CRC(0394673c) SHA1(fbee6a5cb37d0394db95781b9f165d766546eb33) ) | |
| 2659 | ||
| 2660 | ROM_REGION( 0x10000, "sprites", 0 ) | |
| 2661 | ROM_LOAD( "epr-6306.04", 0x0000, 0x4000, CRC(e871e132) SHA1(55f7ab1a8c9a118911c64930452ea05f6ee37fc4) ) | |
| 2662 | ROM_LOAD( "epr-6308.117", 0x4000, 0x4000, CRC(99c2d90e) SHA1(5be54d931622892b7acc320e714d5b1cdce02d19) ) | |
| 2663 | ROM_LOAD( "epr-6307.05", 0x8000, 0x4000, CRC(0a5ad543) SHA1(5acada30c1affc4ffbebc8365a9ba4465f213d47) ) | |
| 2664 | ROM_LOAD( "epr-6309.110", 0xc000, 0x4000, CRC(7423ad98) SHA1(e19b4c64795f30e1491520160d315e4148d58df2) ) | |
| 2665 | ||
| 2666 | ROM_REGION( 0x0100, "proms", 0 ) | |
| 2667 | ROM_LOAD( "pr-5317.76", 0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ | |
| 2668 | /* pr-5317.106 */ | |
| 2669 | ROM_END | |
| 2670 | ||
| 2671 | ||
| 2419 | 2672 | ROM_START( pitfall2 ) |
| 2420 | 2673 | ROM_REGION( 0x10000, "maincpu", 0 ) |
| 2421 | 2674 | ROM_LOAD( "epr6456a.116", 0x0000, 0x4000, CRC(bcc8406b) SHA1(2e5c76886fce2c9863db7a914b85b088971aceef) ) /* encrypted */ |
| r4470 | r4471 | |
| 2425 | 2678 | ROM_REGION( 0x10000, "soundcpu", 0 ) |
| 2426 | 2679 | ROM_LOAD( "epr-6462.120", 0x0000, 0x2000, CRC(86bb9185) SHA1(89add2e3784e8f5a20b895fb2c4466bdd6c34b0c) ) |
| 2427 | 2680 | |
| 2428 | ROM_REGION( 0xc000, " | |
| 2681 | ROM_REGION( 0xc000, "tiles", 0 | |
| 2429 | 2682 | ROM_LOAD( "epr6474a.62", 0x0000, 0x2000, CRC(9f1711b9) SHA1(c652010a8b19828f81fd101aa1ea781e250c4ec2) ) |
| 2430 | 2683 | ROM_LOAD( "epr6473a.61", 0x2000, 0x2000, CRC(8e53b8dd) SHA1(23e04589f2b523d6b8e46d16f40e59685e27f522) ) |
| 2431 | 2684 | ROM_LOAD( "epr6472a.64", 0x4000, 0x2000, CRC(e0f34a11) SHA1(b7a96a1867f8bd3cc1251b5fd12991c406e62a37) ) |
| r4470 | r4471 | |
| 2433 | 2686 | ROM_LOAD( "epr6470a.66", 0x8000, 0x2000, CRC(1439729f) SHA1(54ea6ef54be6dcc2a5d00f7f817fd8836a02b3b9) ) |
| 2434 | 2687 | ROM_LOAD( "epr6469a.65", 0xa000, 0x2000, CRC(e4ac6921) SHA1(f95e3b368c2c6dbf8265fb314d73019fe7dcce22) ) |
| 2435 | 2688 | |
| 2436 | ROM_REGION( 0x8000, " | |
| 2689 | ROM_REGION( 0x8000, " | |
| 2437 | 2690 | ROM_LOAD( "epr6454a.117", 0x0000, 0x4000, CRC(a5d96780) SHA1(e0571f6fd031bbe2d971c3be7b96a017b0ea4be9) ) |
| 2438 | 2691 | ROM_LOAD( "epr-6455.05", 0x4000, 0x4000, CRC(32ee64a1) SHA1(21743f78735fc9105fbbfac420bdaa2965b4b56f) ) |
| 2439 | 2692 | |
| 2440 | ROM_REGION( 0x0100, " | |
| 2693 | ROM_REGION( 0x0100, " | |
| 2441 | 2694 | ROM_LOAD( "pr-5317.76", 0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ |
| 2442 | 2695 | ROM_END |
| 2443 | 2696 | |
| 2444 | ROM_START( pitfalla ) | |
| 2697 | ROM_START( pitfall2a ) | |
| 2445 | 2698 | ROM_REGION( 0x10000, "maincpu", 0 ) |
| 2446 | 2699 | ROM_LOAD( "epr-6505", 0x0000, 0x4000, CRC(b6769739) SHA1(e1b8401c20f77f8ec799b19d7bc94ae4f9ed702f) ) /* encrypted */ |
| 2447 | 2700 | ROM_LOAD( "epr-6506", 0x4000, 0x4000, CRC(1ce6aec4) SHA1(69b54c4569ccfb1166a901e7044ae1026db01a82) ) /* encrypted */ |
| r4470 | r4471 | |
| 2450 | 2703 | ROM_REGION( 0x10000, "soundcpu", 0 ) |
| 2451 | 2704 | ROM_LOAD( "epr-6462.120", 0x0000, 0x2000, CRC(86bb9185) SHA1(89add2e3784e8f5a20b895fb2c4466bdd6c34b0c) ) |
| 2452 | 2705 | |
| 2453 | ROM_REGION( 0xc000, " | |
| 2706 | ROM_REGION( 0xc000, "tiles", 0 | |
| 2454 | 2707 | ROM_LOAD( "epr6474a.62", 0x0000, 0x2000, CRC(9f1711b9) SHA1(c652010a8b19828f81fd101aa1ea781e250c4ec2) ) |
| 2455 | 2708 | ROM_LOAD( "epr6473a.61", 0x2000, 0x2000, CRC(8e53b8dd) SHA1(23e04589f2b523d6b8e46d16f40e59685e27f522) ) |
| 2456 | 2709 | ROM_LOAD( "epr6472a.64", 0x4000, 0x2000, CRC(e0f34a11) SHA1(b7a96a1867f8bd3cc1251b5fd12991c406e62a37) ) |
| r4470 | r4471 | |
| 2458 | 2711 | ROM_LOAD( "epr6470a.66", 0x8000, 0x2000, CRC(1439729f) SHA1(54ea6ef54be6dcc2a5d00f7f817fd8836a02b3b9) ) |
| 2459 | 2712 | ROM_LOAD( "epr6469a.65", 0xa000, 0x2000, CRC(e4ac6921) SHA1(f95e3b368c2c6dbf8265fb314d73019fe7dcce22) ) |
| 2460 | 2713 | |
| 2461 | ROM_REGION( 0x8000, " | |
| 2714 | ROM_REGION( 0x8000, " | |
| 2462 | 2715 | ROM_LOAD( "epr6454a.117", 0x0000, 0x4000, CRC(a5d96780) SHA1(e0571f6fd031bbe2d971c3be7b96a017b0ea4be9) ) |
| 2463 | 2716 | ROM_LOAD( "epr-6455.05", 0x4000, 0x4000, CRC(32ee64a1) SHA1(21743f78735fc9105fbbfac420bdaa2965b4b56f) ) |
| 2464 | 2717 | |
| 2465 | ROM_REGION( 0x0100, " | |
| 2718 | ROM_REGION( 0x0100, " | |
| 2466 | 2719 | ROM_LOAD( "pr-5317.76", 0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ |
| 2467 | 2720 | ROM_END |
| 2468 | 2721 | |
| 2469 | ROM_START( pitfallu ) | |
| 2722 | ROM_START( pitfall2u ) | |
| 2470 | 2723 | ROM_REGION( 0x10000, "maincpu", 0 ) |
| 2471 | 2724 | ROM_LOAD( "epr-6623.116", 0x0000, 0x4000, CRC(bcb47ed6) SHA1(d33421999f899c0a4dc0d4553614c1f5c7027257) ) |
| 2472 | 2725 | ROM_LOAD( "epr6624a.109", 0x4000, 0x4000, CRC(6e8b09c1) SHA1(4869ca4d3f0b08cd3df4c82be9cfc774ddeb3010) ) |
| r4470 | r4471 | |
| 2475 | 2728 | ROM_REGION( 0x10000, "soundcpu", 0 ) |
| 2476 | 2729 | ROM_LOAD( "epr-6462.120", 0x0000, 0x2000, CRC(86bb9185) SHA1(89add2e3784e8f5a20b895fb2c4466bdd6c34b0c) ) |
| 2477 | 2730 | |
| 2478 | ROM_REGION( 0xc000, " | |
| 2731 | ROM_REGION( 0xc000, "tiles", 0 | |
| 2479 | 2732 | ROM_LOAD( "epr6474a.62", 0x0000, 0x2000, CRC(9f1711b9) SHA1(c652010a8b19828f81fd101aa1ea781e250c4ec2) ) |
| 2480 | 2733 | ROM_LOAD( "epr6473a.61", 0x2000, 0x2000, CRC(8e53b8dd) SHA1(23e04589f2b523d6b8e46d16f40e59685e27f522) ) |
| 2481 | 2734 | ROM_LOAD( "epr6472a.64", 0x4000, 0x2000, CRC(e0f34a11) SHA1(b7a96a1867f8bd3cc1251b5fd12991c406e62a37) ) |
| r4470 | r4471 | |
| 2483 | 2736 | ROM_LOAD( "epr6470a.66", 0x8000, 0x2000, CRC(1439729f) SHA1(54ea6ef54be6dcc2a5d00f7f817fd8836a02b3b9) ) |
| 2484 | 2737 | ROM_LOAD( "epr6469a.65", 0xa000, 0x2000, CRC(e4ac6921) SHA1(f95e3b368c2c6dbf8265fb314d73019fe7dcce22) ) |
| 2485 | 2738 | |
| 2486 | ROM_REGION( 0x8000, " | |
| 2739 | ROM_REGION( 0x8000, " | |
| 2487 | 2740 | ROM_LOAD( "epr6454a.117", 0x0000, 0x4000, CRC(a5d96780) SHA1(e0571f6fd031bbe2d971c3be7b96a017b0ea4be9) ) |
| 2488 | 2741 | ROM_LOAD( "epr-6455.05", 0x4000, 0x4000, CRC(32ee64a1) SHA1(21743f78735fc9105fbbfac420bdaa2965b4b56f) ) |
| 2489 | 2742 | |
| 2490 | ROM_REGION( 0x0100, " | |
| 2743 | ROM_REGION( 0x0100, " | |
| 2491 | 2744 | ROM_LOAD( "pr-5317.76", 0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ |
| 2492 | 2745 | ROM_END |
| 2493 | 2746 | |
| 2747 | ||
| 2494 | 2748 | ROM_START( seganinj ) |
| 2495 | 2749 | ROM_REGION( 0x10000, "maincpu", 0 ) |
| 2496 | 2750 | ROM_LOAD( "epr-.116", 0x0000, 0x4000, CRC(a5d0c9d0) SHA1(b60caccab8269f40d4f6e7a50f3aa0d4901c1e57) ) /* encrypted */ |
| r4470 | r4471 | |
| 2500 | 2754 | ROM_REGION( 0x10000, "soundcpu", 0 ) |
| 2501 | 2755 | ROM_LOAD( "epr-6559.120", 0x0000, 0x2000, CRC(5a1570ee) SHA1(fd9215e007b6687d057ea7aee01f6d3dcbc8f894) ) |
| 2502 | 2756 | |
| 2503 | ROM_REGION( 0xc000, " | |
| 2757 | ROM_REGION( 0xc000, "tiles", 0 | |
| 2504 | 2758 | ROM_LOAD( "epr-6558.62", 0x0000, 0x2000, CRC(2af9eaeb) SHA1(a8a472e9f156c34f1cfcf6d6be808da4303a2276) ) |
| 2505 | 2759 | ROM_LOAD( "epr-6592.61", 0x2000, 0x2000, CRC(7804db86) SHA1(8229781b8296d3ffdfa2f0901e2eed297cc3e160) ) |
| 2506 | 2760 | ROM_LOAD( "epr-6556.64", 0x4000, 0x2000, CRC(79fd26f7) SHA1(a7de0f21ccbcfda495a5c93237569a9b3919d2d5) ) |
| r4470 | r4471 | |
| 2508 | 2762 | ROM_LOAD( "epr-6554.66", 0x8000, 0x2000, CRC(5ac9d205) SHA1(c3094d10d1d6226bf9ad174d2dd1631b8d6ca33a) ) |
| 2509 | 2763 | ROM_LOAD( "epr-6588.65", 0xa000, 0x2000, CRC(dc931dbb) SHA1(4729b27843f226ba5861c3106f8418db70e7c47d) ) |
| 2510 | 2764 | |
| 2511 | ROM_REGION( 0x10000, " | |
| 2765 | ROM_REGION( 0x10000, " | |
| 2512 | 2766 | ROM_LOAD( "epr-6546.117", 0x0000, 0x4000, CRC(a4785692) SHA1(95ce23076dc86c5d6d3a65274873d4c48e91cc06) ) |
| 2513 | 2767 | ROM_LOAD( "epr-6548.04", 0x4000, 0x4000, CRC(bdf278c1) SHA1(7ebe505f4f0434edb2cee17a6cbce6b900b29cc4) ) |
| 2514 | 2768 | ROM_LOAD( "epr-6547.110", 0x8000, 0x4000, CRC(34451b08) SHA1(ee8708f6c886b63f138bcc10dc2a053bfad96c37) ) |
| 2515 | 2769 | ROM_LOAD( "epr-6549.05", 0xc000, 0x4000, CRC(d2057668) SHA1(ded2a04f7555eb3b1e4da57901ca00635de2c043) ) |
| 2516 | 2770 | |
| 2517 | ROM_REGION( 0x0100, " | |
| 2771 | ROM_REGION( 0x0100, " | |
| 2518 | 2772 | ROM_LOAD( "pr-5317.76", 0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ |
| 2519 | 2773 | ROM_END |
| 2520 | 2774 | |
| 2521 | ROM_START( seganinu ) | |
| 2775 | ROM_START( seganinju ) | |
| 2522 | 2776 | ROM_REGION( 0x10000, "maincpu", 0 ) |
| 2523 | 2777 | ROM_LOAD( "epr-7149.116", 0x0000, 0x4000, CRC(cd9fade7) SHA1(958ef5c449df6ef5346b8634cb34a646950f706e) ) |
| 2524 | 2778 | ROM_LOAD( "epr-7150.109", 0x4000, 0x4000, CRC(c36351e2) SHA1(17734d3f410feb4cad617d1931b3356192b69ac0) ) |
| r4470 | r4471 | |
| 2527 | 2781 | ROM_REGION( 0x10000, "soundcpu", 0 ) |
| 2528 | 2782 | ROM_LOAD( "epr-6559.120", 0x0000, 0x2000, CRC(5a1570ee) SHA1(fd9215e007b6687d057ea7aee01f6d3dcbc8f894) ) |
| 2529 | 2783 | |
| 2530 | ROM_REGION( 0xc000, " | |
| 2784 | ROM_REGION( 0xc000, "tiles", 0 | |
| 2531 | 2785 | ROM_LOAD( "epr-6558.62", 0x0000, 0x2000, CRC(2af9eaeb) SHA1(a8a472e9f156c34f1cfcf6d6be808da4303a2276) ) |
| 2532 | 2786 | ROM_LOAD( "epr-6592.61", 0x2000, 0x2000, CRC(7804db86) SHA1(8229781b8296d3ffdfa2f0901e2eed297cc3e160) ) |
| 2533 | 2787 | ROM_LOAD( "epr-6556.64", 0x4000, 0x2000, CRC(79fd26f7) SHA1(a7de0f21ccbcfda495a5c93237569a9b3919d2d5) ) |
| r4470 | r4471 | |
| 2535 | 2789 | ROM_LOAD( "epr-6554.66", 0x8000, 0x2000, CRC(5ac9d205) SHA1(c3094d10d1d6226bf9ad174d2dd1631b8d6ca33a) ) |
| 2536 | 2790 | ROM_LOAD( "epr-6588.65", 0xa000, 0x2000, CRC(dc931dbb) SHA1(4729b27843f226ba5861c3106f8418db70e7c47d) ) |
| 2537 | 2791 | |
| 2538 | ROM_REGION( 0x10000, " | |
| 2792 | ROM_REGION( 0x10000, " | |
| 2539 | 2793 | ROM_LOAD( "epr-6546.117", 0x0000, 0x4000, CRC(a4785692) SHA1(95ce23076dc86c5d6d3a65274873d4c48e91cc06) ) |
| 2540 | 2794 | ROM_LOAD( "epr-6548.04", 0x4000, 0x4000, CRC(bdf278c1) SHA1(7ebe505f4f0434edb2cee17a6cbce6b900b29cc4) ) |
| 2541 | 2795 | ROM_LOAD( "epr-6547.110", 0x8000, 0x4000, CRC(34451b08) SHA1(ee8708f6c886b63f138bcc10dc2a053bfad96c37) ) |
| 2542 | 2796 | ROM_LOAD( "epr-6549.05", 0xc000, 0x4000, CRC(d2057668) SHA1(ded2a04f7555eb3b1e4da57901ca00635de2c043) ) |
| 2543 | 2797 | |
| 2544 | ROM_REGION( 0x0100, " | |
| 2798 | ROM_REGION( 0x0100, " | |
| 2545 | 2799 | ROM_LOAD( "pr-5317.76", 0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ |
| 2546 | 2800 | ROM_END |
| 2547 | 2801 | |
| r4470 | r4471 | |
| 2557 | 2811 | ROM_REGION( 0x10000, "soundcpu", 0 ) |
| 2558 | 2812 | ROM_LOAD( "epr-6559.120", 0x0000, 0x2000, CRC(5a1570ee) SHA1(fd9215e007b6687d057ea7aee01f6d3dcbc8f894) ) |
| 2559 | 2813 | |
| 2560 | ROM_REGION( 0xc000, " | |
| 2814 | ROM_REGION( 0xc000, "tiles", 0 | |
| 2561 | 2815 | ROM_LOAD( "epr-6558.62", 0x0000, 0x2000, CRC(2af9eaeb) SHA1(a8a472e9f156c34f1cfcf6d6be808da4303a2276) ) /* epr-6558.82 */ |
| 2562 | 2816 | ROM_LOAD( "epr-6557.61", 0x2000, 0x2000, CRC(6eb131d0) SHA1(27e6f7a3b6ed9a9a5aecfc9981202686b3a81cb4) ) /* epr-6557.65 */ |
| 2563 | 2817 | ROM_LOAD( "epr-6556.64", 0x4000, 0x2000, CRC(79fd26f7) SHA1(a7de0f21ccbcfda495a5c93237569a9b3919d2d5) ) /* epr-6556.81 */ |
| r4470 | r4471 | |
| 2565 | 2819 | ROM_LOAD( "epr-6554.66", 0x8000, 0x2000, CRC(5ac9d205) SHA1(c3094d10d1d6226bf9ad174d2dd1631b8d6ca33a) ) /* epr-6554.80 */ |
| 2566 | 2820 | ROM_LOAD( "epr-6553.65", 0xa000, 0x2000, CRC(eb82a8fe) SHA1(ec6a418ffbdc8563293d40617aae45382f68ecc2) ) /* epr-6553.63 */ |
| 2567 | 2821 | |
| 2568 | ROM_REGION( 0x10000, " | |
| 2822 | ROM_REGION( 0x10000, " | |
| 2569 | 2823 | ROM_LOAD( "epr-6546.117", 0x0000, 0x4000, CRC(a4785692) SHA1(95ce23076dc86c5d6d3a65274873d4c48e91cc06) ) /* epr-6546.3 */ |
| 2570 | 2824 | ROM_LOAD( "epr-6548.04", 0x4000, 0x4000, CRC(bdf278c1) SHA1(7ebe505f4f0434edb2cee17a6cbce6b900b29cc4) ) /* epr-6548.1 */ |
| 2571 | 2825 | ROM_LOAD( "epr-6547.110", 0x8000, 0x4000, CRC(34451b08) SHA1(ee8708f6c886b63f138bcc10dc2a053bfad96c37) ) /* epr-6547.4 */ |
| 2572 | 2826 | ROM_LOAD( "epr-6549.05", 0xc000, 0x4000, CRC(d2057668) SHA1(ded2a04f7555eb3b1e4da57901ca00635de2c043) ) /* epr-6549.2 */ |
| 2573 | 2827 | |
| 2574 | ROM_REGION( 0x0100, " | |
| 2828 | ROM_REGION( 0x0100, " | |
| 2575 | 2829 | ROM_LOAD( "pr-5317.76", 0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ |
| 2576 | 2830 | /* pr-5317.106 */ |
| 2577 | 2831 | ROM_END |
| 2578 | 2832 | |
| 2579 | ROM_START( nprincso ) | |
| 2833 | ROM_START( nprinceso ) | |
| 2580 | 2834 | ROM_REGION( 0x10000, "maincpu", 0 ) |
| 2581 | 2835 | ROM_LOAD( "epr-6550.116", 0x0000, 0x4000, CRC(5f6d59f1) SHA1(e151bf22799c6507a167f83262e48fe2ba74dbd9) ) /* encrypted */ |
| 2582 | 2836 | ROM_LOAD( "epr-6551.109", 0x4000, 0x4000, CRC(1af133b2) SHA1(d3ff924782223ea0566d52ab8b45f17af433966e) ) /* encrypted */ |
| r4470 | r4471 | |
| 2585 | 2839 | ROM_REGION( 0x10000, "soundcpu", 0 ) |
| 2586 | 2840 | ROM_LOAD( "epr-6559.120", 0x0000, 0x2000, CRC(5a1570ee) SHA1(fd9215e007b6687d057ea7aee01f6d3dcbc8f894) ) |
| 2587 | 2841 | |
| 2588 | ROM_REGION( 0xc000, " | |
| 2842 | ROM_REGION( 0xc000, "tiles", 0 | |
| 2589 | 2843 | ROM_LOAD( "epr-6558.62", 0x0000, 0x2000, CRC(2af9eaeb) SHA1(a8a472e9f156c34f1cfcf6d6be808da4303a2276) ) |
| 2590 | 2844 | ROM_LOAD( "epr-6557.61", 0x2000, 0x2000, CRC(6eb131d0) SHA1(27e6f7a3b6ed9a9a5aecfc9981202686b3a81cb4) ) |
| 2591 | 2845 | ROM_LOAD( "epr-6556.64", 0x4000, 0x2000, CRC(79fd26f7) SHA1(a7de0f21ccbcfda495a5c93237569a9b3919d2d5) ) |
| r4470 | r4471 | |
| 2593 | 2847 | ROM_LOAD( "epr-6554.66", 0x8000, 0x2000, CRC(5ac9d205) SHA1(c3094d10d1d6226bf9ad174d2dd1631b8d6ca33a) ) |
| 2594 | 2848 | ROM_LOAD( "epr-6553.65", 0xa000, 0x2000, CRC(eb82a8fe) SHA1(ec6a418ffbdc8563293d40617aae45382f68ecc2) ) |
| 2595 | 2849 | |
| 2596 | ROM_REGION( 0x10000, " | |
| 2850 | ROM_REGION( 0x10000, " | |
| 2597 | 2851 | ROM_LOAD( "epr-6546.117", 0x0000, 0x4000, CRC(a4785692) SHA1(95ce23076dc86c5d6d3a65274873d4c48e91cc06) ) |
| 2598 | 2852 | ROM_LOAD( "epr-6548.04", 0x4000, 0x4000, CRC(bdf278c1) SHA1(7ebe505f4f0434edb2cee17a6cbce6b900b29cc4) ) |
| 2599 | 2853 | ROM_LOAD( "epr-6547.110", 0x8000, 0x4000, CRC(34451b08) SHA1(ee8708f6c886b63f138bcc10dc2a053bfad96c37) ) |
| 2600 | 2854 | ROM_LOAD( "epr-6549.05", 0xc000, 0x4000, CRC(d2057668) SHA1(ded2a04f7555eb3b1e4da57901ca00635de2c043) ) |
| 2601 | 2855 | |
| 2602 | ROM_REGION( 0x0100, " | |
| 2856 | ROM_REGION( 0x0100, " | |
| 2603 | 2857 | ROM_LOAD( "pr-5317.76", 0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ |
| 2604 | 2858 | ROM_END |
| 2605 | 2859 | |
| 2606 | ROM_START( nprincsu ) | |
| 2860 | ROM_START( nprincesu ) | |
| 2607 | 2861 | ROM_REGION( 0x10000, "maincpu", 0 ) |
| 2608 | 2862 | ROM_LOAD( "epr-6573.129", 0x0000, 0x2000, CRC(d2919c7d) SHA1(993fdde7dd8d4dbad42f8072829cfea794693a37) ) |
| 2609 | 2863 | ROM_LOAD( "epr-6574.130", 0x2000, 0x2000, CRC(5a132833) SHA1(c21cdca6062a6ea2ca306a8dd26b572b3be86321) ) |
| r4470 | r4471 | |
| 2615 | 2869 | ROM_REGION( 0x10000, "soundcpu", 0 ) |
| 2616 | 2870 | ROM_LOAD( "epr-6559.120", 0x0000, 0x2000, CRC(5a1570ee) SHA1(fd9215e007b6687d057ea7aee01f6d3dcbc8f894) ) |
| 2617 | 2871 | |
| 2618 | ROM_REGION( 0xc000, " | |
| 2872 | ROM_REGION( 0xc000, "tiles", 0 | |
| 2619 | 2873 | ROM_LOAD( "epr-6558.62", 0x0000, 0x2000, CRC(2af9eaeb) SHA1(a8a472e9f156c34f1cfcf6d6be808da4303a2276) ) /* epr-6558.82 */ |
| 2620 | 2874 | ROM_LOAD( "epr-6557.61", 0x2000, 0x2000, CRC(6eb131d0) SHA1(27e6f7a3b6ed9a9a5aecfc9981202686b3a81cb4) ) /* epr-6557.65 */ |
| 2621 | 2875 | ROM_LOAD( "epr-6556.64", 0x4000, 0x2000, CRC(79fd26f7) SHA1(a7de0f21ccbcfda495a5c93237569a9b3919d2d5) ) /* epr-6556.81 */ |
| r4470 | r4471 | |
| 2623 | 2877 | ROM_LOAD( "epr-6554.66", 0x8000, 0x2000, CRC(5ac9d205) SHA1(c3094d10d1d6226bf9ad174d2dd1631b8d6ca33a) ) /* epr-6554.80 */ |
| 2624 | 2878 | ROM_LOAD( "epr-6553.65", 0xa000, 0x2000, CRC(eb82a8fe) SHA1(ec6a418ffbdc8563293d40617aae45382f68ecc2) ) /* epr-6553.63 */ |
| 2625 | 2879 | |
| 2626 | ROM_REGION( 0x10000, " | |
| 2880 | ROM_REGION( 0x10000, " | |
| 2627 | 2881 | ROM_LOAD( "epr-6546.117", 0x0000, 0x4000, CRC(a4785692) SHA1(95ce23076dc86c5d6d3a65274873d4c48e91cc06) ) /* epr-6546.3 */ |
| 2628 | 2882 | ROM_LOAD( "epr-6548.04", 0x4000, 0x4000, CRC(bdf278c1) SHA1(7ebe505f4f0434edb2cee17a6cbce6b900b29cc4) ) /* epr-6548.1 */ |
| 2629 | 2883 | ROM_LOAD( "epr-6547.110", 0x8000, 0x4000, CRC(34451b08) SHA1(ee8708f6c886b63f138bcc10dc2a053bfad96c37) ) /* epr-6547.4 */ |
| 2630 | 2884 | ROM_LOAD( "epr-6549.05", 0xc000, 0x4000, CRC(d2057668) SHA1(ded2a04f7555eb3b1e4da57901ca00635de2c043) ) /* epr-6549.2 */ |
| 2631 | 2885 | |
| 2632 | ROM_REGION( 0x0100, " | |
| 2886 | ROM_REGION( 0x0100, " | |
| 2633 | 2887 | ROM_LOAD( "pr-5317.76", 0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ |
| 2634 | 2888 | ROM_END |
| 2635 | 2889 | |
| 2636 | ROM_START( nprincsb ) | |
| 2890 | ROM_START( nprincesb ) | |
| 2637 | 2891 | ROM_REGION( 0x10000, "maincpu", 0 ) |
| 2638 | 2892 | ROM_LOAD( "nprinces.001", 0x0000, 0x4000, CRC(e0de073c) SHA1(26aec99ddb080124225e0abf17aac4cc4aed1834) ) /* encrypted */ |
| 2639 | 2893 | ROM_LOAD( "nprinces.002", 0x4000, 0x4000, CRC(27219c7f) SHA1(3f4b0ea9b49907231d10a38d89e2f1803dc168c9) ) /* encrypted */ |
| r4470 | r4471 | |
| 2642 | 2896 | ROM_REGION( 0x10000, "soundcpu", 0 ) |
| 2643 | 2897 | ROM_LOAD( "epr-6559.120", 0x0000, 0x2000, CRC(5a1570ee) SHA1(fd9215e007b6687d057ea7aee01f6d3dcbc8f894) ) |
| 2644 | 2898 | |
| 2645 | ROM_REGION( 0xc000, " | |
| 2899 | ROM_REGION( 0xc000, "tiles", 0 | |
| 2646 | 2900 | ROM_LOAD( "epr-6558.62", 0x0000, 0x2000, CRC(2af9eaeb) SHA1(a8a472e9f156c34f1cfcf6d6be808da4303a2276) ) |
| 2647 | 2901 | ROM_LOAD( "epr-6557.61", 0x2000, 0x2000, CRC(6eb131d0) SHA1(27e6f7a3b6ed9a9a5aecfc9981202686b3a81cb4) ) |
| 2648 | 2902 | ROM_LOAD( "epr-6556.64", 0x4000, 0x2000, CRC(79fd26f7) SHA1(a7de0f21ccbcfda495a5c93237569a9b3919d2d5) ) |
| r4470 | r4471 | |
| 2650 | 2904 | ROM_LOAD( "epr-6554.66", 0x8000, 0x2000, CRC(5ac9d205) SHA1(c3094d10d1d6226bf9ad174d2dd1631b8d6ca33a) ) |
| 2651 | 2905 | ROM_LOAD( "epr-6553.65", 0xa000, 0x2000, CRC(eb82a8fe) SHA1(ec6a418ffbdc8563293d40617aae45382f68ecc2) ) |
| 2652 | 2906 | |
| 2653 | ROM_REGION( 0x10000, " | |
| 2907 | ROM_REGION( 0x10000, " | |
| 2654 | 2908 | ROM_LOAD( "epr-6546.117", 0x0000, 0x4000, CRC(a4785692) SHA1(95ce23076dc86c5d6d3a65274873d4c48e91cc06) ) |
| 2655 | 2909 | ROM_LOAD( "epr-6548.04", 0x4000, 0x4000, CRC(bdf278c1) SHA1(7ebe505f4f0434edb2cee17a6cbce6b900b29cc4) ) |
| 2656 | 2910 | ROM_LOAD( "epr-6547.110", 0x8000, 0x4000, CRC(34451b08) SHA1(ee8708f6c886b63f138bcc10dc2a053bfad96c37) ) |
| 2657 | 2911 | ROM_LOAD( "epr-6549.05", 0xc000, 0x4000, CRC(d2057668) SHA1(ded2a04f7555eb3b1e4da57901ca00635de2c043) ) |
| 2658 | 2912 | |
| 2659 | ROM_REGION( 0x0220, " | |
| 2913 | ROM_REGION( 0x0220, " | |
| 2660 | 2914 | ROM_LOAD( "pr-5317.76", 0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ |
| 2661 | 2915 | ROM_LOAD( "nprinces.129", 0x0100, 0x0100, CRC(ae765f62) SHA1(9434b5a23d118a9c62015b479719826b38269cd4) ) /* decryption table (not used) */ |
| 2662 | 2916 | ROM_LOAD( "nprinces.123", 0x0200, 0x0020, CRC(ed5146e9) SHA1(7044035c07636e4029f4b746c1a92e15173869e9) ) /* decryption table (not used) */ |
| r4470 | r4471 | |
| 2671 | 2925 | ROM_REGION( 0x10000, "soundcpu", 0 ) |
| 2672 | 2926 | ROM_LOAD( "epr-6559.120", 0x0000, 0x2000, CRC(5a1570ee) SHA1(fd9215e007b6687d057ea7aee01f6d3dcbc8f894) ) |
| 2673 | 2927 | |
| 2674 | ROM_REGION( 0xc000, " | |
| 2928 | ROM_REGION( 0xc000, "tiles", 0 | |
| 2675 | 2929 | ROM_LOAD( "epr-6558.62", 0x0000, 0x2000, CRC(2af9eaeb) SHA1(a8a472e9f156c34f1cfcf6d6be808da4303a2276) ) |
| 2676 | 2930 | ROM_LOAD( "epr6592.bin", 0x2000, 0x2000, CRC(88d0c7a1) SHA1(a649a56484f3cf466dbd4bc468d21220e638c5fe) ) |
| 2677 | 2931 | ROM_LOAD( "epr-6556.64", 0x4000, 0x2000, CRC(79fd26f7) SHA1(a7de0f21ccbcfda495a5c93237569a9b3919d2d5) ) |
| r4470 | r4471 | |
| 2679 | 2933 | ROM_LOAD( "epr-6554.66", 0x8000, 0x2000, CRC(5ac9d205) SHA1(c3094d10d1d6226bf9ad174d2dd1631b8d6ca33a) ) |
| 2680 | 2934 | ROM_LOAD( "epr6588.bin", 0xa000, 0x2000, CRC(023a14a3) SHA1(199bdf597ace496992f323c0eaa1e779920fb976) ) |
| 2681 | 2935 | |
| 2682 | ROM_REGION( 0x10000, " | |
| 2936 | ROM_REGION( 0x10000, " | |
| 2683 | 2937 | ROM_LOAD( "epr-6546.117", 0x0000, 0x4000, CRC(a4785692) SHA1(95ce23076dc86c5d6d3a65274873d4c48e91cc06) ) |
| 2684 | 2938 | ROM_LOAD( "epr-6548.04", 0x4000, 0x4000, CRC(bdf278c1) SHA1(7ebe505f4f0434edb2cee17a6cbce6b900b29cc4) ) |
| 2685 | 2939 | ROM_LOAD( "epr-6547.110", 0x8000, 0x4000, CRC(34451b08) SHA1(ee8708f6c886b63f138bcc10dc2a053bfad96c37) ) |
| 2686 | 2940 | ROM_LOAD( "epr-6549.05", 0xc000, 0x4000, CRC(d2057668) SHA1(ded2a04f7555eb3b1e4da57901ca00635de2c043) ) |
| 2687 | 2941 | |
| 2688 | ROM_REGION( 0x0100, " | |
| 2942 | ROM_REGION( 0x0100, " | |
| 2689 | 2943 | ROM_LOAD( "pr-5317.76", 0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ |
| 2690 | 2944 | ROM_END |
| 2691 | 2945 | |
| 2946 | ||
| 2692 | 2947 | ROM_START( imsorry ) |
| 2693 | 2948 | ROM_REGION( 0x10000, "maincpu", 0 ) |
| 2694 | 2949 | ROM_LOAD( "epr-6676.116", 0x0000, 0x4000, CRC(eb087d7f) SHA1(b9bcc76bbdfa597d252e7db60fa0f7529e884cce) ) /* encrypted */ |
| r4470 | r4471 | |
| 2698 | 2953 | ROM_REGION( 0x10000, "soundcpu", 0 ) |
| 2699 | 2954 | ROM_LOAD( "epr-6656.120", 0x0000, 0x2000, CRC(25e3d685) SHA1(a0267d6533af6ff5bf76b9858f2913821a915baf) ) |
| 2700 | 2955 | |
| 2701 | ROM_REGION( 0xc000, " | |
| 2956 | ROM_REGION( 0xc000, "tiles", 0 | |
| 2702 | 2957 | ROM_LOAD( "epr-6684.62", 0x0000, 0x2000, CRC(2c8df377) SHA1(abcabdecee0ce52000dab831ae1e50fe12c97066) ) |
| 2703 | 2958 | ROM_LOAD( "epr-6683.61", 0x2000, 0x2000, CRC(89431c48) SHA1(99c0d141eb5519c31b194693a1fe9be882cb03fd) ) |
| 2704 | 2959 | ROM_LOAD( "epr-6682.64", 0x4000, 0x2000, CRC(256a9246) SHA1(6aed392a5dd639c54bf54acd3651a77274c0a277) ) |
| r4470 | r4471 | |
| 2706 | 2961 | ROM_LOAD( "epr-6680.66", 0x8000, 0x2000, CRC(10a629d6) SHA1(fa2c7df33c685e48020ccabcfba5830e7609e392) ) |
| 2707 | 2962 | ROM_LOAD( "epr-6674.65", 0xa000, 0x2000, CRC(143d883c) SHA1(e35f6fae7feb9a353321d8239ac8990bc773e60b) ) |
| 2708 | 2963 | |
| 2709 | ROM_REGION( 0x8000, " | |
| 2964 | ROM_REGION( 0x8000, " | |
| 2710 | 2965 | ROM_LOAD( "epr-6645.117", 0x0000, 0x4000, CRC(1ba167ee) SHA1(5a105cc3112f2533e7c5982233405d365402fba2) ) |
| 2711 | 2966 | ROM_LOAD( "epr-6646.04", 0x4000, 0x4000, CRC(edda7ad6) SHA1(eef7dcde632787283c4cb522380b138060018204) ) |
| 2712 | 2967 | |
| 2713 | ROM_REGION( 0x0100, " | |
| 2968 | ROM_REGION( 0x0100, " | |
| 2714 | 2969 | ROM_LOAD( "pr-5317.76", 0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ |
| 2715 | 2970 | ROM_END |
| 2716 | 2971 | |
| r4470 | r4471 | |
| 2723 | 2978 | ROM_REGION( 0x10000, "soundcpu", 0 ) |
| 2724 | 2979 | ROM_LOAD( "epr-6656.120", 0x0000, 0x2000, CRC(25e3d685) SHA1(a0267d6533af6ff5bf76b9858f2913821a915baf) ) |
| 2725 | 2980 | |
| 2726 | ROM_REGION( 0xc000, " | |
| 2981 | ROM_REGION( 0xc000, "tiles", 0 | |
| 2727 | 2982 | ROM_LOAD( "epr-6655.62", 0x0000, 0x2000, CRC(be1f762f) SHA1(abf7af29b1fe4003342fbb431541921433a1fc7c) ) |
| 2728 | 2983 | ROM_LOAD( "epr-6654.61", 0x2000, 0x2000, CRC(ed5f7fc8) SHA1(2e77e8292f644f5bbeebc807f193f20d4591f47a) ) |
| 2729 | 2984 | ROM_LOAD( "epr-6653.64", 0x4000, 0x2000, CRC(8b4845a7) SHA1(048efa9d8122d4a91f4d005d023261a5a5b8b046) ) |
| r4470 | r4471 | |
| 2731 | 2986 | ROM_LOAD( "epr-6651.66", 0x8000, 0x2000, CRC(4ee9b5e6) SHA1(821bdeefea03c5d3be6d83d0dd30841969d81bd4) ) |
| 2732 | 2987 | ROM_LOAD( "epr-6650.65", 0xa000, 0x2000, CRC(3fca4414) SHA1(d4c80e06bb7027dbc8aea42fb48c71d9fa08ca40) ) |
| 2733 | 2988 | |
| 2734 | ROM_REGION( 0x8000, " | |
| 2989 | ROM_REGION( 0x8000, " | |
| 2735 | 2990 | ROM_LOAD( "epr-6645.117", 0x0000, 0x4000, CRC(1ba167ee) SHA1(5a105cc3112f2533e7c5982233405d365402fba2) ) |
| 2736 | 2991 | ROM_LOAD( "epr-6646.04", 0x4000, 0x4000, CRC(edda7ad6) SHA1(eef7dcde632787283c4cb522380b138060018204) ) |
| 2737 | 2992 | |
| 2738 | ROM_REGION( 0x0100, " | |
| 2993 | ROM_REGION( 0x0100, " | |
| 2739 | 2994 | ROM_LOAD( "pr-5317.76", 0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ |
| 2740 | 2995 | ROM_END |
| 2741 | 2996 | |
| 2997 | ||
| 2742 | 2998 | ROM_START( teddybb ) |
| 2743 | 2999 | ROM_REGION( 0x10000, "maincpu", 0 ) |
| 2744 | 3000 | ROM_LOAD( "epr-6768.116", 0x0000, 0x4000, CRC(5939817e) SHA1(84d78412d3e13da493d08a40deb2ff3fd51ff9f8) ) /* encrypted */ |
| r4470 | r4471 | |
| 2748 | 3004 | ROM_REGION( 0x10000, "soundcpu", 0 ) |
| 2749 | 3005 | ROM_LOAD( "epr6748x.120", 0x0000, 0x2000, CRC(c2a1b89d) SHA1(55c5461640ccb26bed332c13adfbb99c27237bcb) ) |
| 2750 | 3006 | |
| 2751 | ROM_REGION( 0xc000, " | |
| 3007 | ROM_REGION( 0xc000, "tiles", 0 | |
| 2752 | 3008 | ROM_LOAD( "epr-6747.62", 0x0000, 0x2000, CRC(a0e5aca7) SHA1(e7d35ed5e1606a1ea8b29eeca3ca807ed163573b) ) /* epr-6776.62 */ |
| 2753 | 3009 | ROM_LOAD( "epr-6746.61", 0x2000, 0x2000, CRC(cdb77e51) SHA1(590855f41b62fe9a84db51f90242697abb603c00) ) /* epr-6775.61 */ |
| 2754 | 3010 | ROM_LOAD( "epr-6745.64", 0x4000, 0x2000, CRC(0cab75c3) SHA1(ef9b74c62fbd81db8942f0b7aa2569a8f4843e9d) ) /* epr-6774.64 */ |
| r4470 | r4471 | |
| 2756 | 3012 | ROM_LOAD( "epr-6743.66", 0x8000, 0x2000, CRC(c33062b5) SHA1(5845da895059ff0271a6ed6fd0fa1392be1ac223) ) /* epr-6772.66 */ |
| 2757 | 3013 | ROM_LOAD( "epr-6742.65", 0xa000, 0x2000, CRC(c457e8c5) SHA1(3c1008ae8b054c198cfeb0a66534fb51beaee0f6) ) /* epr-6771.65 */ |
| 2758 | 3014 | |
| 2759 | ROM_REGION( 0x10000, " | |
| 3015 | ROM_REGION( 0x10000, " | |
| 2760 | 3016 | ROM_LOAD( "epr-6735.117", 0x0000, 0x4000, CRC(1be35a97) SHA1(7524cfa1a9c9a2e37753f119e7ac7aa3158621be) ) |
| 2761 | 3017 | ROM_LOAD( "epr-6737.04", 0x4000, 0x4000, CRC(6b53aa7a) SHA1(b1b3ff9460b2321e72b49befa63b61c9c36fedd9) ) |
| 2762 | 3018 | ROM_LOAD( "epr-6736.110", 0x8000, 0x4000, CRC(565c25d0) SHA1(5ae524ef01138c5042b223286d65eb9043c0f0d5) ) |
| 2763 | 3019 | ROM_LOAD( "epr-6738.05", 0xc000, 0x4000, CRC(e116285f) SHA1(b6fb50b02a981b3b23385200045ae537092d26d6) ) |
| 2764 | 3020 | |
| 2765 | ROM_REGION( 0x0100, " | |
| 3021 | ROM_REGION( 0x0100, " | |
| 2766 | 3022 | ROM_LOAD( "pr-5317.76", 0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ |
| 2767 | 3023 | ROM_END |
| 2768 | 3024 | |
| r4470 | r4471 | |
| 2775 | 3031 | ROM_REGION( 0x10000, "soundcpu", 0 ) |
| 2776 | 3032 | ROM_LOAD( "epr-6748.120", 0x0000, 0x2000, CRC(9325a1cf) SHA1(555d137b1c974b144ebe6593b4c32c97b3bb5de9) ) |
| 2777 | 3033 | |
| 2778 | ROM_REGION( 0xc000, " | |
| 3034 | ROM_REGION( 0xc000, "tiles", 0 | |
| 2779 | 3035 | ROM_LOAD( "epr-6747.62", 0x0000, 0x2000, CRC(a0e5aca7) SHA1(e7d35ed5e1606a1ea8b29eeca3ca807ed163573b) ) |
| 2780 | 3036 | ROM_LOAD( "epr-6746.61", 0x2000, 0x2000, CRC(cdb77e51) SHA1(590855f41b62fe9a84db51f90242697abb603c00) ) |
| 2781 | 3037 | ROM_LOAD( "epr-6745.64", 0x4000, 0x2000, CRC(0cab75c3) SHA1(ef9b74c62fbd81db8942f0b7aa2569a8f4843e9d) ) |
| r4470 | r4471 | |
| 2783 | 3039 | ROM_LOAD( "epr-6743.66", 0x8000, 0x2000, CRC(c33062b5) SHA1(5845da895059ff0271a6ed6fd0fa1392be1ac223) ) |
| 2784 | 3040 | ROM_LOAD( "epr-6742.65", 0xa000, 0x2000, CRC(c457e8c5) SHA1(3c1008ae8b054c198cfeb0a66534fb51beaee0f6) ) |
| 2785 | 3041 | |
| 2786 | ROM_REGION( 0x10000, " | |
| 3042 | ROM_REGION( 0x10000, " | |
| 2787 | 3043 | ROM_LOAD( "epr-6735.117", 0x0000, 0x4000, CRC(1be35a97) SHA1(7524cfa1a9c9a2e37753f119e7ac7aa3158621be) ) |
| 2788 | 3044 | ROM_LOAD( "epr-6737.04", 0x4000, 0x4000, CRC(6b53aa7a) SHA1(b1b3ff9460b2321e72b49befa63b61c9c36fedd9) ) |
| 2789 | 3045 | ROM_LOAD( "epr-6736.110", 0x8000, 0x4000, CRC(565c25d0) SHA1(5ae524ef01138c5042b223286d65eb9043c0f0d5) ) |
| 2790 | 3046 | ROM_LOAD( "epr-6738.05", 0xc000, 0x4000, CRC(e116285f) SHA1(b6fb50b02a981b3b23385200045ae537092d26d6) ) |
| 2791 | 3047 | |
| 2792 | ROM_REGION( 0x0100, " | |
| 3048 | ROM_REGION( 0x0100, " | |
| 2793 | 3049 | ROM_LOAD( "pr-5317.76", 0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ |
| 2794 | 3050 | ROM_END |
| 2795 | 3051 | |
| 2796 | ||
| 3052 | ||
| 2797 | 3053 | ROM_START( hvymetal ) |
| 2798 | 3054 | ROM_REGION( 0x20000, "maincpu", 0 ) |
| 2799 | 3055 | ROM_LOAD( "epra6790.1", 0x00000, 0x8000, CRC(59195bb9) SHA1(63dde673bd875dd23d445b152decb1d70c3750a4) ) /* encrypted */ |
| r4470 | r4471 | |
| 2803 | 3059 | ROM_REGION( 0x10000, "soundcpu", 0 ) |
| 2804 | 3060 | ROM_LOAD( "epr6787.120", 0x0000, 0x8000, CRC(b64ac7f0) SHA1(2b16c2702d3230891b700714a66ece95f1a74b44) ) |
| 2805 | 3061 | |
| 2806 | ROM_REGION( 0x18000, " | |
| 3062 | ROM_REGION( 0x18000, "tiles", 0 | |
| 2807 | 3063 | ROM_LOAD( "epr6795.62", 0x00000, 0x4000, CRC(58a3d038) SHA1(9aabfad143748e2ec1b41fde72a1d533bac3f9d8) ) |
| 2808 | 3064 | ROM_LOAD( "epr6796.61", 0x04000, 0x4000, CRC(d8b08a55) SHA1(cfa5370aa430947637bfe57a5a1f802f273b43f7) ) |
| 2809 | 3065 | ROM_LOAD( "epr6793.64", 0x08000, 0x4000, CRC(487407c2) SHA1(9bb9fff24fe057fa17057ba9263d412905a0c036) ) |
| r4470 | r4471 | |
| 2811 | 3067 | ROM_LOAD( "epr6791.66", 0x10000, 0x4000, CRC(a7dcd042) SHA1(d9bac10aa7ac591a20bfed4e391ec1669eadc32d) ) |
| 2812 | 3068 | ROM_LOAD( "epr6792.65", 0x14000, 0x4000, CRC(d0be5e33) SHA1(1e61c6e14c3c736e74e6c2ff5cde71d1d20b99a4) ) |
| 2813 | 3069 | |
| 2814 | ROM_REGION( 0x20000, " | |
| 3070 | ROM_REGION( 0x20000, " | |
| 2815 | 3071 | ROM_LOAD( "epr6778.117", 0x00000, 0x8000, CRC(0af61aee) SHA1(90879d4d1bef38714a39ca71c101bd103d250284) ) |
| 2816 | 3072 | ROM_LOAD( "epr6777.110", 0x08000, 0x8000, CRC(91d7a197) SHA1(34c12b7de22169d369ff5b8a8d86da62404267f8) ) |
| 2817 | 3073 | ROM_LOAD( "epr6780.4", 0x10000, 0x8000, CRC(55b31df5) SHA1(aa1ce0b1666e17db196bd1e079691fbe433a9226) ) |
| 2818 | 3074 | ROM_LOAD( "epr6779.5", 0x18000, 0x8000, CRC(e03a2b28) SHA1(7e742c09e832d01f74fe4025d194cbc8d2f24b70) ) |
| 2819 | 3075 | |
| 2820 | ROM_REGION( 0x0 | |
| 3076 | ROM_REGION( 0x0300, "palette", 0 ) | |
| 2821 | 3077 | ROM_LOAD( "pr7036.3", 0x0000, 0x0100, CRC(146f16fb) SHA1(0a2ac871383b115c16491b9ba5973f0d363eac49) ) /* palette red component */ |
| 2822 | 3078 | ROM_LOAD( "pr7035.2", 0x0100, 0x0100, CRC(50b201ed) SHA1(14c3a585c083dc387532d64bfd63e34f5220e6de) ) /* palette green component */ |
| 2823 | 3079 | ROM_LOAD( "pr7034.1", 0x0200, 0x0100, CRC(dfb5f139) SHA1(56cba261819fd5f2beab56ffd80bb3fd328efe3e) ) /* palette blue component */ |
| 2824 | ROM_LOAD( "pr5317p.4", 0x0300, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ | |
| 3080 | ||
| 3081 | ROM_REGION( 0x0100, "proms", 0 ) | |
| 3082 | ROM_LOAD( "pr5317p.4", 0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ | |
| 2825 | 3083 | ROM_END |
| 2826 | 3084 | |
| 3085 | ||
| 2827 | 3086 | ROM_START( myhero ) |
| 2828 | 3087 | ROM_REGION( 0x10000, "maincpu", 0 ) |
| 2829 | 3088 | ROM_LOAD( "epr6963b.116", 0x0000, 0x4000, CRC(4daf89d4) SHA1(6fd69964d4e0dcd5637920711361f1879fcf330e) ) |
| r4470 | r4471 | |
| 2833 | 3092 | ROM_REGION( 0x10000, "soundcpu", 0 ) |
| 2834 | 3093 | ROM_LOAD( "epr-69xx.120", 0x0000, 0x2000, CRC(0039e1e9) SHA1(ead2e8a8a518da5ac6ccd5cd6db4cf167ea47c76) ) |
| 2835 | 3094 | |
| 2836 | ROM_REGION( 0xc000, " | |
| 3095 | ROM_REGION( 0xc000, "tiles", 0 | |
| 2837 | 3096 | ROM_LOAD( "epr-6966.62", 0x0000, 0x2000, CRC(157f0401) SHA1(f07eb40de95054d6a2c2ebec0b251685e8931b37) ) |
| 2838 | 3097 | ROM_LOAD( "epr-6961.61", 0x2000, 0x2000, CRC(be53ce47) SHA1(de6073e7a00cba7e13aca0248c55126b16595d50) ) |
| 2839 | 3098 | ROM_LOAD( "epr-6960.64", 0x4000, 0x2000, CRC(bd381baa) SHA1(e160db821422232fb8f6b4f1c4ce0b61f7bed463) ) |
| r4470 | r4471 | |
| 2841 | 3100 | ROM_LOAD( "epr-6958.66", 0x8000, 0x2000, CRC(714f2c26) SHA1(4696c9322d7b9b27f56309312fe498f14cb32827) ) |
| 2842 | 3101 | ROM_LOAD( "epr-6957.65", 0xa000, 0x2000, CRC(80920112) SHA1(745d029f99b6878efcca535885b9bf98bf8702f2) ) |
| 2843 | 3102 | |
| 2844 | ROM_REGION( 0x10000, " | |
| 3103 | ROM_REGION( 0x10000, " | |
| 2845 | 3104 | ROM_LOAD( "epr-6921.117", 0x0000, 0x4000, CRC(f19e05a1) SHA1(98288ba2e96c03a4ab9c8235faa7e01bb376d021) ) |
| 2846 | 3105 | ROM_LOAD( "epr-6923.04", 0x4000, 0x4000, CRC(7988adc3) SHA1(4ee9e964c24234366660af4981566e8c45f46db9) ) |
| 2847 | 3106 | ROM_LOAD( "epr-6922.110", 0x8000, 0x4000, CRC(37f77a78) SHA1(01d8bd41303bd5e3a6f1cdafa4a1d682e4c659a2) ) |
| 2848 | 3107 | ROM_LOAD( "epr-6924.05", 0xc000, 0x4000, CRC(42bdc8f6) SHA1(f31d82641187a7cc77a4a19189b5a15d5168cbd7) ) |
| 2849 | 3108 | |
| 2850 | ROM_REGION( 0x0100, " | |
| 3109 | ROM_REGION( 0x0100, " | |
| 2851 | 3110 | ROM_LOAD( "pr-5317.76", 0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ |
| 2852 | 3111 | ROM_END |
| 2853 | 3112 | |
| r4470 | r4471 | |
| 2860 | 3119 | ROM_REGION( 0x10000, "soundcpu", 0 ) |
| 2861 | 3120 | ROM_LOAD( "epr-6934.120", 0x0000, 0x2000, CRC(af467223) SHA1(d79a67e761fe483407cad645dd3b93d86e8790e3) ) |
| 2862 | 3121 | |
| 2863 | ROM_REGION( 0xc000, " | |
| 3122 | ROM_REGION( 0xc000, "tiles", 0 | |
| 2864 | 3123 | ROM_LOAD( "epr-6933.62", 0x0000, 0x2000, CRC(e7304036) SHA1(cff10b180832703ef472a6abd481f8433308d462) ) |
| 2865 | 3124 | ROM_LOAD( "epr-6932.61", 0x2000, 0x2000, CRC(f5cfbfda) SHA1(52044e3eb6f2e82c9490856410758c5223eb116b) ) |
| 2866 | 3125 | ROM_LOAD( "epr-6931.64", 0x4000, 0x2000, CRC(599d7f87) SHA1(c581001b45856447b2878dc5bdeb92bffb15086a) ) |
| r4470 | r4471 | |
| 2868 | 3127 | ROM_LOAD( "epr-6929.66", 0x8000, 0x2000, CRC(27a16856) SHA1(1e386dfa5178a0902f5d5e64f4d0414593f2e801) ) |
| 2869 | 3128 | ROM_LOAD( "epr-6928.65", 0xa000, 0x2000, CRC(c0c9cfa4) SHA1(3a98f25beab2dcacf5ec4457501ecfde9bc6e8eb) ) |
| 2870 | 3129 | |
| 2871 | ROM_REGION( 0x10000, " | |
| 3130 | ROM_REGION( 0x10000, " | |
| 2872 | 3131 | ROM_LOAD( "epr-6921.117", 0x0000, 0x4000, CRC(f19e05a1) SHA1(98288ba2e96c03a4ab9c8235faa7e01bb376d021) ) |
| 2873 | 3132 | ROM_LOAD( "epr-6923.04", 0x4000, 0x4000, CRC(7988adc3) SHA1(4ee9e964c24234366660af4981566e8c45f46db9) ) |
| 2874 | 3133 | ROM_LOAD( "epr-6922.110", 0x8000, 0x4000, CRC(37f77a78) SHA1(01d8bd41303bd5e3a6f1cdafa4a1d682e4c659a2) ) |
| 2875 | 3134 | ROM_LOAD( "epr-6924.05", 0xc000, 0x4000, CRC(42bdc8f6) SHA1(f31d82641187a7cc77a4a19189b5a15d5168cbd7) ) |
| 2876 | 3135 | |
| 2877 | ROM_REGION( 0x0100, " | |
| 3136 | ROM_REGION( 0x0100, " | |
| 2878 | 3137 | ROM_LOAD( "pr-5317.76", 0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ |
| 2879 | 3138 | ROM_END |
| 2880 | 3139 | |
| r4470 | r4471 | |
| 2889 | 3148 | ROM_REGION( 0x10000, "soundcpu", 0 ) |
| 2890 | 3149 | ROM_LOAD( "epr-6934.120", 0x0000, 0x2000, CRC(af467223) SHA1(d79a67e761fe483407cad645dd3b93d86e8790e3) ) |
| 2891 | 3150 | |
| 2892 | ROM_REGION( 0xc000, " | |
| 3151 | ROM_REGION( 0xc000, "tiles", 0 | |
| 2893 | 3152 | /* all three gfx ROMs have address lines A4 and A5 swapped, also #1 and #3 */ |
| 2894 | 3153 | /* have data lines D0 and D6 swapped, while #2 has data lines D1 and D5 swapped. */ |
| 2895 | 3154 | ROM_LOAD( "ry-04.rom", 0x0000, 0x4000, CRC(dfb75143) SHA1(b1943e0b8ca4439d5ef27abecd48e6fc806d3a0e) ) |
| 2896 | 3155 | ROM_LOAD( "ry-03.rom", 0x4000, 0x4000, CRC(cf68b4a2) SHA1(7f1607320943c452bcc30b4805e8e9c9d2a61955) ) |
| 2897 | 3156 | ROM_LOAD( "ry-02.rom", 0x8000, 0x4000, CRC(d100eaef) SHA1(d917a85c3560578cc7640bfcb4725b4217f0ed91) ) |
| 2898 | 3157 | |
| 2899 | ROM_REGION( 0x10000, " | |
| 3158 | ROM_REGION( 0x10000, " | |
| 2900 | 3159 | ROM_LOAD( "epr-6921.117", 0x0000, 0x4000, CRC(f19e05a1) SHA1(98288ba2e96c03a4ab9c8235faa7e01bb376d021) ) |
| 2901 | 3160 | ROM_LOAD( "epr-6923.04", 0x4000, 0x4000, CRC(7988adc3) SHA1(4ee9e964c24234366660af4981566e8c45f46db9) ) |
| 2902 | 3161 | ROM_LOAD( "epr-6922.110", 0x8000, 0x4000, CRC(37f77a78) SHA1(01d8bd41303bd5e3a6f1cdafa4a1d682e4c659a2) ) |
| 2903 | 3162 | ROM_LOAD( "epr-6924.05", 0xc000, 0x4000, CRC(42bdc8f6) SHA1(f31d82641187a7cc77a4a19189b5a15d5168cbd7) ) |
| 2904 | 3163 | |
| 2905 | ROM_REGION( 0x0100, " | |
| 3164 | ROM_REGION( 0x0100, " | |
| 2906 | 3165 | ROM_LOAD( "pr-5317.76", 0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ |
| 2907 | 3166 | ROM_END |
| 2908 | 3167 | |
| 3168 | ||
| 3169 | ROM_START( 4dwarrio ) | |
| 3170 | ROM_REGION( 0x10000, "maincpu", 0 ) | |
| 3171 | ROM_LOAD( "4d.116", 0x0000, 0x4000, CRC(546d1bc7) SHA1(724bb2f77a2b82fae85e535ae4a37820cfb323d0) ) /* encrypted */ | |
| 3172 | ROM_LOAD( "4d.109", 0x4000, 0x4000, CRC(f1074ec3) SHA1(bc368abeb6c0a7172e03bd7a1754cf4a6ecbb4f8) ) /* encrypted */ | |
| 3173 | ROM_LOAD( "4d.96", 0x8000, 0x4000, CRC(387c1e8f) SHA1(520ecbafd1c7271dad24410a68067dfd801fa6d6) ) | |
| 3174 | ||
| 3175 | ROM_REGION( 0x10000, "soundcpu", 0 ) | |
| 3176 | ROM_LOAD( "4d.120", 0x0000, 0x2000, CRC(5241c009) SHA1(b7a21f95b63234f2496d5ea6e7dc8050ca1b39fc) ) | |
| 3177 | ||
| 3178 | ROM_REGION( 0xc000, "tiles", 0 ) | |
| 3179 | ROM_LOAD( "4d.62", 0x0000, 0x2000, CRC(f31b2e09) SHA1(fdc288769495f4b0ca8c7594c9ab7dc0f29e57a4) ) | |
| 3180 | ROM_LOAD( "4d.61", 0x2000, 0x2000, CRC(5430e925) SHA1(55f92309223c41871175b1f54418c8b08339deb0) ) | |
| 3181 | ROM_LOAD( "4d.64", 0x4000, 0x2000, CRC(9f442351) SHA1(07076ef66e29c730050e38aecabdfbfced9f9bc4) ) | |
| 3182 | ROM_LOAD( "4d.63", 0x6000, 0x2000, CRC(633232bd) SHA1(c09c1df4f04608381d665a83776005607ad97ad4) ) | |
| 3183 | ROM_LOAD( "4d.66", 0x8000, 0x2000, CRC(52bfa2ed) SHA1(ea1c18d07957301f2006350b02fe40d13dbe2aa5) ) | |
| 3184 | ROM_LOAD( "4d.65", 0xa000, 0x2000, CRC(e9ba4658) SHA1(ba2581a52eb54e2d9f1e1bf30050280df3f5df1b) ) | |
| 3185 | ||
| 3186 | ROM_REGION( 0x10000, "sprites", 0 ) | |
| 3187 | ROM_LOAD( "4d.117", 0x0000, 0x4000, CRC(436e4141) SHA1(2574d5c3b01c89d8a041c82af976147d3b87b36b) ) | |
| 3188 | ROM_LOAD( "4d.04", 0x4000, 0x4000, CRC(8b7cecef) SHA1(4851754cb56784ac248f699f0781646455dd556b) ) | |
| 3189 | ROM_LOAD( "4d.110", 0x8000, 0x4000, CRC(6ec5990a) SHA1(a26dbd470744c38a26a016e5d4792ac2f2b9bc4b) ) | |
| 3190 | ROM_LOAD( "4d.05", 0xc000, 0x4000, CRC(f31a1e6a) SHA1(f49dbc4b381e7096d5ffe3c16660dd63121dabf7) ) | |
| 3191 | ||
| 3192 | ROM_REGION( 0x0100, "proms", 0 ) | |
| 3193 | ROM_LOAD( "pr5317.76", 0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ | |
| 3194 | ROM_END | |
| 3195 | ||
| 3196 | ||
| 2909 | 3197 | /* |
| 2910 | 3198 | Shooting Master (SEGA) - Rev A, 8751 315-5159a |
| 2911 | 3199 | Year: 1985 |
| r4470 | r4471 | |
| 2914 | 3202 | Main Board 834-5719 |
| 2915 | 3203 | Light Gun Board? 834-5720 |
| 2916 | 3204 | */ |
| 2917 | ||
| 2918 | 3205 | ROM_START( shtngmst ) |
| 2919 | 3206 | ROM_REGION( 0x20000, "maincpu", 0 ) |
| 2920 | 3207 | /* This rom is located on the daughter board .*/ |
| r4470 | r4471 | |
| 2932 | 3219 | ROM_LOAD( "315-5159a.ic74", 0x00000, 0x1000, NO_DUMP ) |
| 2933 | 3220 | |
| 2934 | 3221 | /* These roms are located on the main board. */ |
| 2935 | ROM_REGION( 0x18000, " | |
| 3222 | ROM_REGION( 0x18000, "tiles", 0 | |
| 2936 | 3223 | ROM_LOAD( "epr7040.ic4", 0x00000, 0x8000, CRC(f30769fa) SHA1(366c1fbe4e1c8943b209f6c831c9a6b7e4372105) ) |
| 2937 | 3224 | ROM_LOAD( "epr7041.ic5", 0x08000, 0x8000, CRC(f3e273f9) SHA1(b8715c528299dc1e4f0c19c50d91ca9861a423a1) ) |
| 2938 | 3225 | ROM_LOAD( "epr7042.ic6", 0x10000, 0x8000, CRC(6841c917) SHA1(6553843eea0131eb7b5a9aa29dddf641e41d8cc3) ) |
| 2939 | 3226 | |
| 2940 | 3227 | /* These roms are located on the daughter board. */ |
| 2941 | ROM_REGION( 0x40000, " | |
| 3228 | ROM_REGION( 0x40000, "sprites", ROMREGION_ERASEFF ) | |
| 2942 | 3229 | ROM_LOAD( "epr7110.ic26", 0x00000, 0x8000, CRC(5d1a5048) SHA1(d1626ab1981080451c912df7e4ad7f76c0cb3459) ) |
| 2943 | 3230 | ROM_LOAD( "epr7106.ic22", 0x08000, 0x8000, CRC(ae7ab7a2) SHA1(153691e468d29d21b95f1fbffb6896a3140d7e14) ) |
| 2944 | 3231 | ROM_LOAD( "epr7108.ic24", 0x10000, 0x8000, CRC(816180ac) SHA1(a59670ec77d4359041ebf12dae5b74add55d82ac) ) |
| r4470 | r4471 | |
| 2948 | 3235 | ROM_LOAD( "epr7107.ic23", 0x30000, 0x8000, CRC(8f50ea24) SHA1(781687e202dedca7b72c9bd5b97d9d46fcfd601c) ) |
| 2949 | 3236 | |
| 2950 | 3237 | /* These proms are located on the main board. */ |
| 2951 | ROM_REGION( 0x0 | |
| 3238 | ROM_REGION( 0x0300, "palette", 0 ) | |
| 2952 | 3239 | ROM_LOAD( "epr7113.ic20", 0x00000, 0x0100, CRC(5c0e1360) SHA1(2011b3eef2a58f9bd3f3b1bb9e6c201db85727c2) ) /* palette red component */ |
| 2953 | 3240 | ROM_LOAD( "epr7112.ic14", 0x00100, 0x0100, CRC(46fbd351) SHA1(1fca7fbc5d5f8e13e58bbac735511bd0af392446) ) /* palette green component */ |
| 2954 | 3241 | ROM_LOAD( "epr7111.ic8", 0x00200, 0x0100, CRC(8123b6b9) SHA1(fb2c5498f0603b5cd270402a738c891a85453666) ) /* palette blue component - N82S129AN */ |
| 2955 | ROM_LOAD( "epr5317.ic37", 0x00300, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) - N82S129AN */ | |
| 2956 | 3242 | |
| 3243 | ROM_REGION( 0x0100, "proms", 0 ) | |
| 3244 | ROM_LOAD( "epr5317.ic37", 0x00000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) - N82S129AN */ | |
| 3245 | ||
| 2957 | 3246 | /* These pld's are located on the main board. */ |
| 2958 | ROM_REGION( 0x0618, "plds", | |
| 3247 | ROM_REGION( 0x0618, "plds", 0 | |
| 2959 | 3248 | ROM_LOAD( "315-5137.bin", 0x00000, 0x0104, CRC(6ffd9e6f) SHA1(a60a3a2ec5bc256b18bfff0fec0172ee2e4fd955) ) /* TI PAL16R4A-2CN Located at IC10 */ |
| 2960 | 3249 | ROM_LOAD( "315-5138.bin", 0x00000, 0x0104, CRC(dd223015) SHA1(8d70f91b118e8653dda1efee3eaea287ae63809f) ) /* TI PAL16R4ACN Located at IC11 */ |
| 2961 | 3250 | ROM_LOAD( "315-5139.bin", 0x00000, 0x0104, NO_DUMP ) /* CK2605 located at IC50 */ |
| r4470 | r4471 | |
| 2972 | 3261 | Main Board 834-5719 |
| 2973 | 3262 | Light Gun Board? 834-5720 |
| 2974 | 3263 | */ |
| 2975 | ||
| 2976 | ROM_START( shtngms1 ) | |
| 3264 | ROM_START( shtngmst1 ) | |
| 2977 | 3265 | ROM_REGION( 0x20000, "maincpu", 0 ) |
| 2978 | 3266 | /* This rom is located on the daughter board .*/ |
| 2979 | 3267 | ROM_LOAD( "epr7100.ic18", 0x00000, 0x8000, CRC(45e64431) SHA1(7edf818dc1f65365641e51abc197d13db7a8d4d9) ) |
| r4470 | r4471 | |
| 2990 | 3278 | ROM_LOAD( "315-5159.ic74", 0x00000, 0x1000, NO_DUMP ) |
| 2991 | 3279 | |
| 2992 | 3280 | /* These roms are located on the main board. */ |
| 2993 | ROM_REGION( 0x18000, " | |
| 3281 | ROM_REGION( 0x18000, "tiles", 0 | |
| 2994 | 3282 | ROM_LOAD( "epr7040.ic4", 0x00000, 0x8000, CRC(f30769fa) SHA1(366c1fbe4e1c8943b209f6c831c9a6b7e4372105) ) |
| 2995 | 3283 | ROM_LOAD( "epr7041.ic5", 0x08000, 0x8000, CRC(f3e273f9) SHA1(b8715c528299dc1e4f0c19c50d91ca9861a423a1) ) |
| 2996 | 3284 | ROM_LOAD( "epr7042.ic6", 0x10000, 0x8000, CRC(6841c917) SHA1(6553843eea0131eb7b5a9aa29dddf641e41d8cc3) ) |
| 2997 | 3285 | |
| 2998 | 3286 | /* These roms are located on the daughter board. */ |
| 2999 | ROM_REGION( 0x40000, " | |
| 3287 | ROM_REGION( 0x40000, "sprites", ROMREGION_ERASEFF ) | |
| 3000 | 3288 | ROM_LOAD( "epr7110.ic26", 0x00000, 0x8000, CRC(5d1a5048) SHA1(d1626ab1981080451c912df7e4ad7f76c0cb3459) ) |
| 3001 | 3289 | ROM_LOAD( "epr7106.ic22", 0x08000, 0x8000, CRC(ae7ab7a2) SHA1(153691e468d29d21b95f1fbffb6896a3140d7e14) ) |
| 3002 | 3290 | ROM_LOAD( "epr7108.ic24", 0x10000, 0x8000, CRC(816180ac) SHA1(a59670ec77d4359041ebf12dae5b74add55d82ac) ) |
| r4470 | r4471 | |
| 3006 | 3294 | ROM_LOAD( "epr7107.ic23", 0x30000, 0x8000, CRC(8f50ea24) SHA1(781687e202dedca7b72c9bd5b97d9d46fcfd601c) ) |
| 3007 | 3295 | |
| 3008 | 3296 | /* These proms are located on the main board. */ |
| 3009 | ROM_REGION( 0x0 | |
| 3297 | ROM_REGION( 0x0300, "palette", 0 ) | |
| 3010 | 3298 | ROM_LOAD( "epr7113.ic20", 0x00000, 0x0100, CRC(5c0e1360) SHA1(2011b3eef2a58f9bd3f3b1bb9e6c201db85727c2) ) /* palette red component */ |
| 3011 | 3299 | ROM_LOAD( "epr7112.ic14", 0x00100, 0x0100, CRC(46fbd351) SHA1(1fca7fbc5d5f8e13e58bbac735511bd0af392446) ) /* palette green component */ |
| 3012 | 3300 | ROM_LOAD( "epr7111.ic8", 0x00200, 0x0100, CRC(8123b6b9) SHA1(fb2c5498f0603b5cd270402a738c891a85453666) ) /* palette blue component - N82S129AN */ |
| 3013 | ROM_LOAD( "epr5317.ic37", 0x00300, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) - N82S129AN */ | |
| 3014 | 3301 | |
| 3302 | ROM_REGION( 0x0100, "proms", 0 ) | |
| 3303 | ROM_LOAD( "epr5317.ic37", 0x00000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) - N82S129AN */ | |
| 3304 | ||
| 3015 | 3305 | /* These pld's are located on the main board. */ |
| 3016 | ROM_REGION( 0x0618, "plds", | |
| 3306 | ROM_REGION( 0x0618, "plds", 0 | |
| 3017 | 3307 | ROM_LOAD( "315-5137.bin", 0x00000, 0x0104, CRC(6ffd9e6f) SHA1(a60a3a2ec5bc256b18bfff0fec0172ee2e4fd955) ) /* TI PAL16R4A-2CN Located at IC10 */ |
| 3018 | 3308 | ROM_LOAD( "315-5138.bin", 0x00000, 0x0104, CRC(dd223015) SHA1(8d70f91b118e8653dda1efee3eaea287ae63809f) ) /* TI PAL16R4ACN Located at IC11 */ |
| 3019 | 3309 | ROM_LOAD( "315-5139.bin", 0x00000, 0x0104, NO_DUMP ) /* CK2605 located at IC50 */ |
| r4470 | r4471 | |
| 3071 | 3361 | this set seems to hang sometimes, is it bad, it could be hacked and failing checks hidden in the game. |
| 3072 | 3362 | |
| 3073 | 3363 | */ |
| 3074 | ||
| 3075 | ROM_START( shtngmsa ) | |
| 3364 | ROM_START( shtngmsta ) | |
| 3076 | 3365 | ROM_REGION( 0x20000, "maincpu", 0 ) |
| 3077 | 3366 | ROM_LOAD( "7100.18", 0x00000, 0x8000, CRC(268ecb1d) SHA1(a9274c9718f7244235cc6df76331d6a0b7e4e4c8) ) // different.. |
| 3078 | 3367 | ROM_LOAD( "epr7101.ic91", 0x10000, 0x8000, CRC(ebf5ff72) SHA1(13ae06e3a81cf00b80ec939d5baf30143d61d480) ) |
| r4470 | r4471 | |
| 3081 | 3370 | ROM_REGION( 0x10000, "soundcpu", 0 ) |
| 3082 | 3371 | ROM_LOAD( "epr7043.ic126", 0x0000, 0x8000, CRC(99a368ab) SHA1(a9451f39ee2613e5c3e2791d4d8d837b4a3ab666) ) |
| 3083 | 3372 | |
| 3084 | ROM_REGION( 0x18000, " | |
| 3373 | ROM_REGION( 0x18000, "tiles", 0 | |
| 3085 | 3374 | ROM_LOAD( "epr7040.ic4", 0x00000, 0x8000, CRC(f30769fa) SHA1(366c1fbe4e1c8943b209f6c831c9a6b7e4372105) ) |
| 3086 | 3375 | ROM_LOAD( "epr7041.ic5", 0x08000, 0x8000, CRC(f3e273f9) SHA1(b8715c528299dc1e4f0c19c50d91ca9861a423a1) ) |
| 3087 | 3376 | ROM_LOAD( "epr7042.ic6", 0x10000, 0x8000, CRC(6841c917) SHA1(6553843eea0131eb7b5a9aa29dddf641e41d8cc3) ) |
| 3088 | 3377 | |
| 3089 | ROM_REGION( 0x40000, " | |
| 3378 | ROM_REGION( 0x40000, "sprites", ROMREGION_ERASEFF ) | |
| 3090 | 3379 | ROM_LOAD( "epr7110", 0x00000, 0x8000, CRC(5d1a5048) SHA1(d1626ab1981080451c912df7e4ad7f76c0cb3459) ) |
| 3091 | 3380 | ROM_LOAD( "epr7106", 0x08000, 0x8000, CRC(ae7ab7a2) SHA1(153691e468d29d21b95f1fbffb6896a3140d7e14) ) |
| 3092 | 3381 | ROM_LOAD( "epr7108", 0x10000, 0x8000, CRC(816180ac) SHA1(a59670ec77d4359041ebf12dae5b74add55d82ac) ) |
| r4470 | r4471 | |
| 3095 | 3384 | ROM_LOAD( "epr7105", 0x28000, 0x8000, CRC(13111729) SHA1(57ca2b945db36b056d0e40a39456fd8bf9d0a3ec) ) |
| 3096 | 3385 | ROM_LOAD( "epr7107", 0x30000, 0x8000, CRC(8f50ea24) SHA1(781687e202dedca7b72c9bd5b97d9d46fcfd601c) ) |
| 3097 | 3386 | |
| 3098 | ROM_REGION( 0x0 | |
| 3387 | ROM_REGION( 0x0300, "palette", 0 ) | |
| 3099 | 3388 | ROM_LOAD( "epr7113.ic20", 0x00000, 0x0100, CRC(5c0e1360) SHA1(2011b3eef2a58f9bd3f3b1bb9e6c201db85727c2) ) /* palette red component */ |
| 3100 | 3389 | ROM_LOAD( "epr7112.ic14", 0x00100, 0x0100, CRC(46fbd351) SHA1(1fca7fbc5d5f8e13e58bbac735511bd0af392446) ) /* palette green component */ |
| 3101 | 3390 | ROM_LOAD( "epr7111.ic8", 0x00200, 0x0100, CRC(8123b6b9) SHA1(fb2c5498f0603b5cd270402a738c891a85453666) ) /* palette blue component - N82S129AN */ |
| 3102 | ROM_LOAD( "epr5317.ic37", 0x00300, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) - N82S129AN */ | |
| 3103 | 3391 | |
| 3104 | ROM_REGION( 0x0400, "plds", ROMREGION_DISPOSE ) | |
| 3392 | ROM_REGION( 0x0100, "proms", 0 ) | |
| 3393 | ROM_LOAD( "epr5317.ic37", 0x00000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) - N82S129AN */ | |
| 3394 | ||
| 3395 | ROM_REGION( 0x0400, "plds", 0 ) | |
| 3105 | 3396 | ROM_LOAD( "315-5137.bin", 0x00000, 0x0104, CRC(6ffd9e6f) SHA1(a60a3a2ec5bc256b18bfff0fec0172ee2e4fd955) ) /* TI PAL16R4A-2CN Located at IC10 */ |
| 3106 | 3397 | ROM_LOAD( "315-5138.bin", 0x00000, 0x0104, CRC(dd223015) SHA1(8d70f91b118e8653dda1efee3eaea287ae63809f) ) /* TI PAL16R4ACN Located at IC11 */ |
| 3107 | 3398 | ROM_END |
| 3108 | 3399 | |
| 3400 | ||
| 3109 | 3401 | /* |
| 3110 | 3402 | Choplifter (8751 315-5151) |
| 3111 | 3403 | Year: 1985 |
| r4470 | r4471 | |
| 3113 | 3405 | |
| 3114 | 3406 | Main Board 834-5795 |
| 3115 | 3407 | */ |
| 3116 | ||
| 3117 | ROM_START( chplft ) | |
| 3408 | ROM_START( choplift ) | |
| 3118 | 3409 | ROM_REGION( 0x20000, "maincpu", 0 ) |
| 3119 | 3410 | ROM_LOAD( "epr-7124.ic90", 0x00000, 0x8000, CRC(678d5c41) SHA1(7553979f78270c2ddc5b3f3ebf7817ead8e08de7) ) |
| 3120 | 3411 | ROM_LOAD( "epr-7125.ic91", 0x10000, 0x8000, CRC(f5283498) SHA1(1ad40f6d7b4cd18212ee56917240c0796f1a4ec2) ) |
| r4470 | r4471 | |
| 3126 | 3417 | ROM_REGION( 0x10000, "cpu2", 0 ) /* Internal i8751 MCU code */ |
| 3127 | 3418 | ROM_LOAD( "315-5151.ic74", 0x00000, 0x1000, NO_DUMP ) |
| 3128 | 3419 | |
| 3129 | ROM_REGION( 0x18000, " | |
| 3420 | ROM_REGION( 0x18000, "tiles", 0 | |
| 3130 | 3421 | ROM_LOAD( "epr-7127.ic4", 0x00000, 0x8000, CRC(1e708f6d) SHA1(b975e13bdc44105e7a15c2694e3ec53b60e23e5e) ) |
| 3131 | 3422 | ROM_LOAD( "epr-7128.ic5", 0x08000, 0x8000, CRC(b922e787) SHA1(16087671ec7de25f749b5fd66409d48ef7b35820) ) |
| 3132 | 3423 | ROM_LOAD( "epr-7129.ic6", 0x10000, 0x8000, CRC(bd3b6e6e) SHA1(c66f21b98cb8fc61a9318041ac1812c13099d974) ) |
| 3133 | 3424 | |
| 3134 | ROM_REGION( 0x20000, " | |
| 3425 | ROM_REGION( 0x20000, " | |
| 3135 | 3426 | ROM_LOAD( "epr-7121.ic87", 0x00000, 0x8000, CRC(f2b88f73) SHA1(2b06da1beabbea82d502fbe12f6ec3ef26056edd) ) |
| 3136 | 3427 | ROM_LOAD( "epr-7120.ic86", 0x08000, 0x8000, CRC(517d7fd3) SHA1(3fb5c00224920c3f62fb86e82caf0fee2293e1e2) ) |
| 3137 | 3428 | ROM_LOAD( "epr-7123.ic89", 0x10000, 0x8000, CRC(8f16a303) SHA1(5f2465505f001dc052e9de4cf66bc1d53fc8c7da) ) |
| 3138 | 3429 | ROM_LOAD( "epr-7122.ic88", 0x18000, 0x8000, CRC(7c93f160) SHA1(6ab156cad7556808496070f8b02a708ce405c492) ) |
| 3139 | 3430 | |
| 3140 | ROM_REGION( 0x0 | |
| 3431 | ROM_REGION( 0x0300, "palette", 0 ) | |
| 3141 | 3432 | ROM_LOAD( "pr7119.ic20", 0x0000, 0x0100, CRC(b2a8260f) SHA1(36c1debb4b3f2f190a25b18d533319d7380416de) ) /* palette red component */ |
| 3142 | 3433 | ROM_LOAD( "pr7118.ic14", 0x0100, 0x0100, CRC(693e20c7) SHA1(9ebf4bd2c30ddd9648bc4b41c7739cfdf80100da) ) /* palette green component */ |
| 3143 | 3434 | ROM_LOAD( "pr7117.ic8", 0x0200, 0x0100, CRC(4124307e) SHA1(cee28d891e6ce732c43a61acb5beeafd2200cf37) ) /* palette blue component */ |
| 3144 | ROM_LOAD( "pr5317.ic28", 0x0300, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ | |
| 3145 | 3435 | |
| 3146 | ROM_REGION( 0x0618, "plds", ROMREGION_DISPOSE ) | |
| 3436 | ROM_REGION( 0x0100, "proms", 0 ) | |
| 3437 | ROM_LOAD( "pr5317.ic28", 0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ | |
| 3438 | ||
| 3439 | ROM_REGION( 0x0618, "plds", 0 ) | |
| 3147 | 3440 | ROM_LOAD( "315-5152.bin", 0x00000, 0x0104, CRC(2c9229b4) SHA1(9755013afcf89f99d7a399c7e223e027761cf89a) ) /* PAL16R4A located at IC10. */ |
| 3148 | 3441 | ROM_LOAD( "315-5138.bin", 0x00000, 0x0104, CRC(dd223015) SHA1(8d70f91b118e8653dda1efee3eaea287ae63809f) ) /* TI PAL16R4NC located at IC11. */ |
| 3149 | 3442 | ROM_LOAD( "315-5139.bin", 0x00000, 0x0104, NO_DUMP ) /* CK2605 located at IC50. */ |
| r4470 | r4471 | |
| 3159 | 3452 | |
| 3160 | 3453 | Main Board 834-5795 |
| 3161 | 3454 | */ |
| 3162 | ||
| 3163 | ROM_START( chplftb ) | |
| 3455 | ROM_START( chopliftu ) | |
| 3164 | 3456 | ROM_REGION( 0x20000, "maincpu", 0 ) |
| 3165 | 3457 | ROM_LOAD( "epr-7152.ic90", 0x00000, 0x8000, CRC(fe49d83e) SHA1(307be38dd73ed37b275c1b464d266a752cb06132) ) |
| 3166 | 3458 | ROM_LOAD( "epr-7153.ic91", 0x10000, 0x8000, CRC(48697666) SHA1(0f4c6db9558272f5ceb347e742b284474f18b707) ) |
| r4470 | r4471 | |
| 3169 | 3461 | ROM_REGION( 0x10000, "soundcpu", 0 ) |
| 3170 | 3462 | ROM_LOAD( "epr-7130.ic126", 0x0000, 0x8000, CRC(346af118) SHA1(ef579818a45b8ebb276d5832092b26e232d5a737) ) |
| 3171 | 3463 | |
| 3172 | ROM_REGION( 0x18000, " | |
| 3464 | ROM_REGION( 0x18000, "tiles", 0 | |
| 3173 | 3465 | ROM_LOAD( "epr-7127.ic4", 0x00000, 0x8000, CRC(1e708f6d) SHA1(b975e13bdc44105e7a15c2694e3ec53b60e23e5e) ) |
| 3174 | 3466 | ROM_LOAD( "epr-7128.ic5", 0x08000, 0x8000, CRC(b922e787) SHA1(16087671ec7de25f749b5fd66409d48ef7b35820) ) |
| 3175 | 3467 | ROM_LOAD( "epr-7129.ic6", 0x10000, 0x8000, CRC(bd3b6e6e) SHA1(c66f21b98cb8fc61a9318041ac1812c13099d974) ) |
| 3176 | 3468 | |
| 3177 | ROM_REGION( 0x20000, " | |
| 3469 | ROM_REGION( 0x20000, " | |
| 3178 | 3470 | ROM_LOAD( "epr-7121.ic87", 0x00000, 0x8000, CRC(f2b88f73) SHA1(2b06da1beabbea82d502fbe12f6ec3ef26056edd) ) |
| 3179 | 3471 | ROM_LOAD( "epr-7120.ic86", 0x08000, 0x8000, CRC(517d7fd3) SHA1(3fb5c00224920c3f62fb86e82caf0fee2293e1e2) ) |
| 3180 | 3472 | ROM_LOAD( "epr-7123.ic89", 0x10000, 0x8000, CRC(8f16a303) SHA1(5f2465505f001dc052e9de4cf66bc1d53fc8c7da) ) |
| 3181 | 3473 | ROM_LOAD( "epr-7122.ic88", 0x18000, 0x8000, CRC(7c93f160) SHA1(6ab156cad7556808496070f8b02a708ce405c492) ) |
| 3182 | 3474 | |
| 3183 | ROM_REGION( 0x0 | |
| 3475 | ROM_REGION( 0x0300, "palette", 0 ) | |
| 3184 | 3476 | ROM_LOAD( "pr7119.ic20", 0x0000, 0x0100, CRC(b2a8260f) SHA1(36c1debb4b3f2f190a25b18d533319d7380416de) ) /* palette red component */ |
| 3185 | 3477 | ROM_LOAD( "pr7118.ic14", 0x0100, 0x0100, CRC(693e20c7) SHA1(9ebf4bd2c30ddd9648bc4b41c7739cfdf80100da) ) /* palette green component */ |
| 3186 | 3478 | ROM_LOAD( "pr7117.ic8", 0x0200, 0x0100, CRC(4124307e) SHA1(cee28d891e6ce732c43a61acb5beeafd2200cf37) ) /* palette blue component */ |
| 3187 | ROM_LOAD( "pr5317.ic28", 0x0300, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ | |
| 3188 | 3479 | |
| 3189 | ROM_REGION( 0x0618, "plds", ROMREGION_DISPOSE ) | |
| 3480 | ROM_REGION( 0x0100, "proms", 0 ) | |
| 3481 | ROM_LOAD( "pr5317.ic28", 0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ | |
| 3482 | ||
| 3483 | ROM_REGION( 0x0618, "plds", 0 ) | |
| 3190 | 3484 | ROM_LOAD( "315-5152.bin", 0x00000, 0x0104, CRC(2c9229b4) SHA1(9755013afcf89f99d7a399c7e223e027761cf89a) ) /* PAL16R4A located at IC10. */ |
| 3191 | 3485 | ROM_LOAD( "315-5138.bin", 0x00000, 0x0104, CRC(dd223015) SHA1(8d70f91b118e8653dda1efee3eaea287ae63809f) ) /* TI PAL16R4NC located at IC11. */ |
| 3192 | 3486 | ROM_LOAD( "315-5139.bin", 0x00000, 0x0104, NO_DUMP ) /* CK2605 located at IC50. */ |
| r4470 | r4471 | |
| 3239 | 3533 | |--------------------------------------| |
| 3240 | 3534 | 1 2 3 4 |
| 3241 | 3535 | */ |
| 3242 | ||
| 3243 | ROM_START( chplftbl ) | |
| 3536 | ROM_START( chopliftbl ) | |
| 3244 | 3537 | ROM_REGION( 0x20000, "maincpu", 0 ) |
| 3245 | 3538 | ROM_LOAD( "ep7124bl.90", 0x00000, 0x8000, CRC(71a37932) SHA1(72b6f8949d356b3adc5248fdaa13c2a1b9c0fa70) ) |
| 3246 | 3539 | ROM_LOAD( "epr-7125.91", 0x10000, 0x8000, CRC(f5283498) SHA1(1ad40f6d7b4cd18212ee56917240c0796f1a4ec2) ) |
| r4470 | r4471 | |
| 3249 | 3542 | ROM_REGION( 0x10000, "soundcpu", 0 ) |
| 3250 | 3543 | ROM_LOAD( "epr-7130.126", 0x0000, 0x8000, CRC(346af118) SHA1(ef579818a45b8ebb276d5832092b26e232d5a737) ) |
| 3251 | 3544 | |
| 3252 | ROM_REGION( 0x18000, " | |
| 3545 | ROM_REGION( 0x18000, "tiles", 0 | |
| 3253 | 3546 | ROM_LOAD( "epr-7127.4", 0x00000, 0x8000, CRC(1e708f6d) SHA1(b975e13bdc44105e7a15c2694e3ec53b60e23e5e) ) |
| 3254 | 3547 | ROM_LOAD( "epr-7128.5", 0x08000, 0x8000, CRC(b922e787) SHA1(16087671ec7de25f749b5fd66409d48ef7b35820) ) |
| 3255 | 3548 | ROM_LOAD( "epr-7129.6", 0x10000, 0x8000, CRC(bd3b6e6e) SHA1(c66f21b98cb8fc61a9318041ac1812c13099d974) ) |
| 3256 | 3549 | |
| 3257 | ROM_REGION( 0x20000, " | |
| 3550 | ROM_REGION( 0x20000, " | |
| 3258 | 3551 | ROM_LOAD( "epr-7121.87", 0x00000, 0x8000, CRC(f2b88f73) SHA1(2b06da1beabbea82d502fbe12f6ec3ef26056edd) ) |
| 3259 | 3552 | ROM_LOAD( "epr-7120.86", 0x08000, 0x8000, CRC(517d7fd3) SHA1(3fb5c00224920c3f62fb86e82caf0fee2293e1e2) ) |
| 3260 | 3553 | ROM_LOAD( "epr-7123.89", 0x10000, 0x8000, CRC(8f16a303) SHA1(5f2465505f001dc052e9de4cf66bc1d53fc8c7da) ) |
| 3261 | 3554 | ROM_LOAD( "epr-7122.88", 0x18000, 0x8000, CRC(7c93f160) SHA1(6ab156cad7556808496070f8b02a708ce405c492) ) |
| 3262 | 3555 | |
| 3263 | ROM_REGION( 0x0 | |
| 3556 | ROM_REGION( 0x0300, "palette", 0 ) | |
| 3264 | 3557 | ROM_LOAD( "pr7119.20", 0x0000, 0x0100, CRC(b2a8260f) SHA1(36c1debb4b3f2f190a25b18d533319d7380416de) ) /* palette red component */ |
| 3265 | 3558 | ROM_LOAD( "pr7118.14", 0x0100, 0x0100, CRC(693e20c7) SHA1(9ebf4bd2c30ddd9648bc4b41c7739cfdf80100da) ) /* palette green component */ |
| 3266 | 3559 | ROM_LOAD( "pr7117.8", 0x0200, 0x0100, CRC(4124307e) SHA1(cee28d891e6ce732c43a61acb5beeafd2200cf37) ) /* palette blue component */ |
| 3267 | ROM_LOAD( "pr5317.28", 0x0300, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ | |
| 3268 | 3560 | |
| 3269 | ROM_REGION( 0x0003, "plds_main", ROMREGION_DISPOSE ) | |
| 3561 | ROM_REGION( 0x0100, "proms", 0 ) | |
| 3562 | ROM_LOAD( "pr5317.28", 0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ | |
| 3563 | ||
| 3564 | ROM_REGION( 0x0003, "plds_main", 0 ) | |
| 3270 | 3565 | ROM_LOAD( "pal16r4.bin", 0x00000, 0x0001, NO_DUMP ) /* PAL16R4 located at IC13. */ |
| 3271 | 3566 | ROM_LOAD( "pal16r4.bin", 0x00000, 0x0001, NO_DUMP ) /* PAL16R4 located at IC14. */ |
| 3272 | 3567 | ROM_LOAD( "pal16l8.bin", 0x00000, 0x0001, NO_DUMP ) /* PAL16L8 located at IC62. */ |
| 3273 | 3568 | |
| 3274 | ROM_REGION( 0x0002, "plds_600a", | |
| 3569 | ROM_REGION( 0x0002, "plds_600a", 0 | |
| 3275 | 3570 | ROM_LOAD( "pal16r4.bin", 0x00000, 0x0001, NO_DUMP ) /* PAL16R4 located at E1. */ |
| 3276 | 3571 | ROM_LOAD( "pal16l8.bin", 0x00000, 0x0001, NO_DUMP ) /* PAL16L8 located at E2. */ |
| 3277 | 3572 | |
| 3278 | ROM_REGION( 0x0005, "plds_600b", | |
| 3573 | ROM_REGION( 0x0005, "plds_600b", 0 | |
| 3279 | 3574 | ROM_LOAD( "pal20r4.bin", 0x00000, 0x0001, NO_DUMP ) /* PAL20R4 located at A4. */ |
| 3280 | 3575 | ROM_LOAD( "pal16l8.bin", 0x00000, 0x0001, NO_DUMP ) /* PAL16L8 located at B1. */ |
| 3281 | 3576 | ROM_LOAD( "pal16l8.bin", 0x00000, 0x0001, NO_DUMP ) /* PAL16L8 located at B2. */ |
| 3282 | 3577 | ROM_LOAD( "pal16l8.bin", 0x00000, 0x0001, NO_DUMP ) /* PAL16L8 located at C2. */ |
| 3283 | 3578 | ROM_LOAD( "pal16l8.bin", 0x00000, 0x0001, NO_DUMP ) /* PAL16L8 located at C3. */ |
| 3284 | 3579 | |
| 3285 | ROM_REGION( 0x0410, "plds_unk", | |
| 3580 | ROM_REGION( 0x0410, "plds_unk", 0 | |
| 3286 | 3581 | /* Do any of these dumps match what's on the physical boards? */ |
| 3287 | 3582 | ROM_LOAD( "pal16r4a.ic9", 0x0000, 0x0104, CRC(dd223015) SHA1(8d70f91b118e8653dda1efee3eaea287ae63809f) ) |
| 3288 | 3583 | ROM_LOAD( "pal16r4a.ic10", 0x0104, 0x0104, CRC(2c9229b4) SHA1(9755013afcf89f99d7a399c7e223e027761cf89a) ) |
| r4470 | r4471 | |
| 3290 | 3585 | ROM_LOAD( "pal16l8a-chopbl2.bin", 0x030c, 0x0104, CRC(afa7425d) SHA1(09d8607b69ecfc0b12c8610751d489500b63c7d6) ) |
| 3291 | 3586 | ROM_END |
| 3292 | 3587 | |
| 3293 | ROM_START( 4dwarrio ) | |
| 3294 | ROM_REGION( 0x10000, "maincpu", 0 ) | |
| 3295 | ROM_LOAD( "4d.116", 0x0000, 0x4000, CRC(546d1bc7) SHA1(724bb2f77a2b82fae85e535ae4a37820cfb323d0) ) /* encrypted */ | |
| 3296 | ROM_LOAD( "4d.109", 0x4000, 0x4000, CRC(f1074ec3) SHA1(bc368abeb6c0a7172e03bd7a1754cf4a6ecbb4f8) ) /* encrypted */ | |
| 3297 | ROM_LOAD( "4d.96", 0x8000, 0x4000, CRC(387c1e8f) SHA1(520ecbafd1c7271dad24410a68067dfd801fa6d6) ) | |
| 3298 | 3588 | |
| 3299 | ROM_REGION( 0x10000, "soundcpu", 0 ) | |
| 3300 | ROM_LOAD( "4d.120", 0x0000, 0x2000, CRC(5241c009) SHA1(b7a21f95b63234f2496d5ea6e7dc8050ca1b39fc) ) | |
| 3301 | ||
| 3302 | ROM_REGION( 0xc000, "gfx1", ROMREGION_DISPOSE ) | |
| 3303 | ROM_LOAD( "4d.62", 0x0000, 0x2000, CRC(f31b2e09) SHA1(fdc288769495f4b0ca8c7594c9ab7dc0f29e57a4) ) | |
| 3304 | ROM_LOAD( "4d.61", 0x2000, 0x2000, CRC(5430e925) SHA1(55f92309223c41871175b1f54418c8b08339deb0) ) | |
| 3305 | ROM_LOAD( "4d.64", 0x4000, 0x2000, CRC(9f442351) SHA1(07076ef66e29c730050e38aecabdfbfced9f9bc4) ) | |
| 3306 | ROM_LOAD( "4d.63", 0x6000, 0x2000, CRC(633232bd) SHA1(c09c1df4f04608381d665a83776005607ad97ad4) ) | |
| 3307 | ROM_LOAD( "4d.66", 0x8000, 0x2000, CRC(52bfa2ed) SHA1(ea1c18d07957301f2006350b02fe40d13dbe2aa5) ) | |
| 3308 | ROM_LOAD( "4d.65", 0xa000, 0x2000, CRC(e9ba4658) SHA1(ba2581a52eb54e2d9f1e1bf30050280df3f5df1b) ) | |
| 3309 | ||
| 3310 | ROM_REGION( 0x10000, "gfx2", 0 ) /* 64k for sprites data */ | |
| 3311 | ROM_LOAD( "4d.117", 0x0000, 0x4000, CRC(436e4141) SHA1(2574d5c3b01c89d8a041c82af976147d3b87b36b) ) | |
| 3312 | ROM_LOAD( "4d.04", 0x4000, 0x4000, CRC(8b7cecef) SHA1(4851754cb56784ac248f699f0781646455dd556b) ) | |
| 3313 | ROM_LOAD( "4d.110", 0x8000, 0x4000, CRC(6ec5990a) SHA1(a26dbd470744c38a26a016e5d4792ac2f2b9bc4b) ) | |
| 3314 | ROM_LOAD( "4d.05", 0xc000, 0x4000, CRC(f31a1e6a) SHA1(f49dbc4b381e7096d5ffe3c16660dd63121dabf7) ) | |
| 3315 | ||
| 3316 | ROM_REGION( 0x0100, "user1", 0 ) /* misc PROMs, but not color so don't use "proms"! */ | |
| 3317 | ROM_LOAD( "pr5317.76", 0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ | |
| 3318 | ROM_END | |
| 3319 | ||
| 3320 | ROM_START( brain ) | |
| 3321 | ROM_REGION( 0x20000, "maincpu", 0 ) | |
| 3322 | ROM_LOAD( "brain.1", 0x00000, 0x8000, CRC(2d2aec31) SHA1(02dfbb0e9ca01b864e3aa594cf38306fe82a4b5d) ) | |
| 3323 | ROM_LOAD( "brain.2", 0x10000, 0x8000, CRC(810a8ab5) SHA1(87cd39f5b1047f355e1d257c691ef11fc55824ca) ) | |
| 3324 | ROM_RELOAD( 0x08000, 0x8000 ) /* there's code falling through from 7fff */ | |
| 3325 | /* so I have to copy the ROM there */ | |
| 3326 | ROM_LOAD( "brain.3", 0x18000, 0x8000, CRC(9a225634) SHA1(9f137938592dd9c5ab2273864a11a682e0f7f783) ) | |
| 3327 | ||
| 3328 | ROM_REGION( 0x10000, "soundcpu", 0 ) | |
| 3329 | ROM_LOAD( "brain.120", 0x0000, 0x8000, CRC(c7e50278) SHA1(9709a59004c6bc39173d0cb94f3602c358367976) ) | |
| 3330 | ||
| 3331 | ROM_REGION( 0xc000, "gfx1", ROMREGION_DISPOSE ) | |
| 3332 | ROM_LOAD( "brain.62", 0x0000, 0x4000, CRC(7dce2302) SHA1(ebf15da3aea36f6a831a5395b0e5fc253852a3ee) ) | |
| 3333 | ROM_LOAD( "brain.64", 0x4000, 0x4000, CRC(7ce03fd3) SHA1(11f037c75d606276cbf4ec76a2cfdde94a756493) ) | |
| 3334 | ROM_LOAD( "brain.66", 0x8000, 0x4000, CRC(ea54323f) SHA1(08a4d2543a75a1fbb6ef2c126e3aeb4945bf458f) ) | |
| 3335 | ||
| 3336 | ROM_REGION( 0x20000, "gfx2", 0 ) /* 128k for sprites data */ | |
| 3337 | ROM_LOAD( "brain.117", 0x00000, 0x8000, CRC(92ff71a4) SHA1(856646c595e0ef7bbcf18844ee34b04e05893ffa) ) | |
| 3338 | ROM_LOAD( "brain.110", 0x08000, 0x8000, CRC(a1b847ec) SHA1(d71664822b9b863bd2a37da71b4e0850893b9876) ) | |
| 3339 | ROM_LOAD( "brain.4", 0x10000, 0x8000, CRC(fd2ea53b) SHA1(c7f2d267f19d2c27a550120e003ebfcb10d8af89) ) | |
| 3340 | /* 18000-1ffff empty */ | |
| 3341 | ||
| 3342 | ROM_REGION( 0x0400, "proms", 0 ) | |
| 3343 | ROM_LOAD( "bprom.3", 0x0000, 0x0100, BAD_DUMP CRC(8eee0f72) SHA1(b5694c120f604a5f7cc95618a71ab16a1a6151ed) ) /* palette red component */ | |
| 3344 | ROM_LOAD( "bprom.2", 0x0100, 0x0100, BAD_DUMP CRC(3e7babd7) SHA1(d4f8790db4dce75e27156a4c6de2dcef2baf6d76) ) /* palette green component */ | |
| 3345 | ROM_LOAD( "bprom.1", 0x0200, 0x0100, BAD_DUMP CRC(371c44a6) SHA1(ac37458d1feb6566b09a795b20c21953d4ab109d) ) /* palette blue component */ | |
| 3346 | ROM_LOAD( "pr5317.76", 0x0300, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ | |
| 3347 | ROM_END | |
| 3348 | ||
| 3349 | 3589 | ROM_START( raflesia ) |
| 3350 | 3590 | ROM_REGION( 0x10000, "maincpu", 0 ) |
| 3351 | 3591 | ROM_LOAD( "epr-7411.116", 0x0000, 0x4000, CRC(88a0c6c6) SHA1(1deaa8d8d607100966696e5e9dd5f799ba693af0) ) /* encrypted */ |
| r4470 | r4471 | |
| 3355 | 3595 | ROM_REGION( 0x10000, "soundcpu", 0 ) |
| 3356 | 3596 | ROM_LOAD( "epr-7420.120", 0x0000, 0x2000, CRC(14387666) SHA1(9cb18e3002c32f658e4725707069f9cd2f496507) ) /* epr-7420.3 */ |
| 3357 | 3597 | |
| 3358 | ROM_REGION( 0xc000, " | |
| 3598 | ROM_REGION( 0xc000, "tiles", 0 | |
| 3359 | 3599 | ROM_LOAD( "epr-7419.62", 0x0000, 0x2000, CRC(bfd5f34c) SHA1(78c4d380d5558212e535c3262223137447d64818) ) /* epr-7419.82 */ |
| 3360 | 3600 | ROM_LOAD( "epr-7418.61", 0x2000, 0x2000, CRC(f8cbc9b6) SHA1(48be9337f704a11ac1fdeb64a3b3518c796bcdd0) ) /* epr-7418.65 */ |
| 3361 | 3601 | ROM_LOAD( "epr-7417.64", 0x4000, 0x2000, CRC(e63501bc) SHA1(5cfd19241c54782c262bbb23c6f682534e77feb7) ) /* epr-7417.81 */ |
| r4470 | r4471 | |
| 3363 | 3603 | ROM_LOAD( "epr-7415.66", 0x8000, 0x2000, CRC(1a8d6bd6) SHA1(b04ee35f603c6c9923ba888914eb43a8b7753d92) ) /* epr-7415.80 */ |
| 3364 | 3604 | ROM_LOAD( "epr-7414.65", 0xa000, 0x2000, CRC(5d20f218) SHA1(bdc0185d133f7bbe287106882bacde846634ffa4) ) /* epr-7414.63 */ |
| 3365 | 3605 | |
| 3366 | ROM_REGION( 0x10000, " | |
| 3606 | ROM_REGION( 0x10000, " | |
| 3367 | 3607 | ROM_LOAD( "epr-7407.117", 0x0000, 0x4000, CRC(f09fc057) SHA1(c6f06144b708055b31fbcba9f38b63736db789d8) ) /* epr-7407.3 */ |
| 3368 | 3608 | ROM_LOAD( "epr-7409.04", 0x4000, 0x4000, CRC(819fedb8) SHA1(e63f0422814423be91d8e1937a13d19693a1a5fc) ) /* epr-7409.1 */ |
| 3369 | 3609 | ROM_LOAD( "epr-7408.110", 0x8000, 0x4000, CRC(3189f33c) SHA1(8476c2c01920f0492cf643929d4f023f3afe0164) ) /* epr-7408.4 */ |
| 3370 | 3610 | ROM_LOAD( "epr-7410.05", 0xc000, 0x4000, CRC(ced74789) SHA1(d0ad845bfe83412ac8d43125e1c50d0581a5b47e) ) /* epr-7410.2 */ |
| 3371 | 3611 | |
| 3372 | ROM_REGION( 0x0100, " | |
| 3612 | ROM_REGION( 0x0100, " | |
| 3373 | 3613 | ROM_LOAD( "pr-5317.76", 0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ |
| 3374 | 3614 | /* pr-5317.106 */ |
| 3375 | 3615 | ROM_END |
| 3376 | 3616 | |
| 3377 | ROM_START( spatter ) | |
| 3378 | ROM_REGION( 0x10000, "maincpu", 0 ) | |
| 3379 | ROM_LOAD( "epr-6392.116", 0x0000, 0x4000, CRC(329b4506) SHA1(8f71ffc3015c4fcf84a895bf53760830602f1040) ) /* encrypted */ | |
| 3380 | ROM_LOAD( "epr-6393.109", 0x4000, 0x4000, CRC(3b56e25f) SHA1(23f26f8632c8a370b5b3b7a3ec58f359cdf04f73) ) /* encrypted */ | |
| 3381 | ROM_LOAD( "epr-6394.96", 0x8000, 0x4000, CRC(647c1301) SHA1(5142abfcc63772fd1b47eb584ccda0bc3830e337) ) | |
| 3382 | 3617 | |
| 3383 | ROM_REGION( 0x10000, "soundcpu", 0 ) | |
| 3384 | ROM_LOAD( "epr-6316.120", 0x0000, 0x2000, CRC(1df95511) SHA1(5780631c8c5a2c3fcd4085f217affa660d72a4e9) ) | |
| 3385 | ||
| 3386 | ROM_REGION( 0xc000, "gfx1", ROMREGION_DISPOSE ) | |
| 3387 | ROM_LOAD( "epr-6328.62", 0x0000, 0x2000, CRC(a2bf2832) SHA1(5d7047a6a0c0588a4e98b6ce94d5fd0e6ab963f9) ) | |
| 3388 | ROM_LOAD( "epr-6397.61", 0x2000, 0x2000, CRC(c60d4471) SHA1(9e8130d575fa342485dfe093e086a4b48e51b904) ) | |
| 3389 | ROM_LOAD( "epr-6326.64", 0x4000, 0x2000, CRC(269fbb4c) SHA1(7b91f551360698195bf9ce8e32dd2e8fa17e9db8) ) | |
| 3390 | ROM_LOAD( "epr-6396.63", 0x6000, 0x2000, CRC(c15ccf3b) SHA1(14809ab81816eedb85cacda042e437d48cf9b31a) ) | |
| 3391 | ROM_LOAD( "epr-6324.66", 0x8000, 0x2000, CRC(8ab3b563) SHA1(6ede93b9f1593dbcbabd6c875bac8ec01a1b40a2) ) | |
| 3392 | ROM_LOAD( "epr-6395.65", 0xa000, 0x2000, CRC(3f083065) SHA1(cb17c8c2fe04baa58863c10cd8f359a58def3417) ) | |
| 3393 | ||
| 3394 | ROM_REGION( 0x10000, "gfx2", 0 ) /* 64k for sprites data */ | |
| 3395 | ROM_LOAD( "epr-6306.04", 0x0000, 0x4000, CRC(e871e132) SHA1(55f7ab1a8c9a118911c64930452ea05f6ee37fc4) ) | |
| 3396 | ROM_LOAD( "epr-6308.117", 0x4000, 0x4000, CRC(99c2d90e) SHA1(5be54d931622892b7acc320e714d5b1cdce02d19) ) | |
| 3397 | ROM_LOAD( "epr-6307.05", 0x8000, 0x4000, CRC(0a5ad543) SHA1(5acada30c1affc4ffbebc8365a9ba4465f213d47) ) | |
| 3398 | ROM_LOAD( "epr-6309.110", 0xc000, 0x4000, CRC(7423ad98) SHA1(e19b4c64795f30e1491520160d315e4148d58df2) ) | |
| 3399 | ||
| 3400 | ROM_REGION( 0x0100, "user1", 0 ) /* misc PROMs, but not color so don't use "proms"! */ | |
| 3401 | ROM_LOAD( "pr-5317.76", 0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ | |
| 3402 | /* pr-5317.106 */ | |
| 3403 | ROM_END | |
| 3404 | ||
| 3405 | ROM_START( ssanchan ) | |
| 3406 | ROM_REGION( 0x10000, "maincpu", 0 ) | |
| 3407 | ROM_LOAD( "epr-6310.116", 0x0000, 0x4000, CRC(26b43701) SHA1(e041bde10da12a3f698da09220f0a7cc2ee99abe) ) /* encrypted */ | |
| 3408 | ROM_LOAD( "epr-6311.109", 0x4000, 0x4000, CRC(cb2bc620) SHA1(ecc69360ad9fcc825b35955fbc29da9ea28b8846) ) /* encrypted */ | |
| 3409 | ROM_LOAD( "epr-6312.96", 0x8000, 0x4000, CRC(71b15b47) SHA1(7c955be049f9a8d7ca18d877183b698dd5ffe4da) ) | |
| 3410 | ||
| 3411 | ROM_REGION( 0x10000, "soundcpu", 0 ) | |
| 3412 | ROM_LOAD( "epr-6316.120", 0x0000, 0x2000, CRC(1df95511) SHA1(5780631c8c5a2c3fcd4085f217affa660d72a4e9) ) | |
| 3413 | ||
| 3414 | ROM_REGION( 0xc000, "gfx1", ROMREGION_DISPOSE ) | |
| 3415 | ROM_LOAD( "epr-6328.62", 0x0000, 0x2000, CRC(a2bf2832) SHA1(5d7047a6a0c0588a4e98b6ce94d5fd0e6ab963f9) ) | |
| 3416 | ROM_LOAD( "epr-6327.61", 0x2000, 0x2000, CRC(53298109) SHA1(75fd37034aee78d63939d8b4f584c1dc1042264b) ) | |
| 3417 | ROM_LOAD( "epr-6326.64", 0x4000, 0x2000, CRC(269fbb4c) SHA1(7b91f551360698195bf9ce8e32dd2e8fa17e9db8) ) | |
| 3418 | ROM_LOAD( "epr-6325.63", 0x6000, 0x2000, CRC(bf038745) SHA1(2fda2412f76b8971ba543ec10da07d4b0d1f2006) ) | |
| 3419 | ROM_LOAD( "epr-6324.66", 0x8000, 0x2000, CRC(8ab3b563) SHA1(6ede93b9f1593dbcbabd6c875bac8ec01a1b40a2) ) | |
| 3420 | ROM_LOAD( "epr-6323.65", 0xa000, 0x2000, CRC(0394673c) SHA1(fbee6a5cb37d0394db95781b9f165d766546eb33) ) | |
| 3421 | ||
| 3422 | ROM_REGION( 0x10000, "gfx2", 0 ) /* 64k for sprites data */ | |
| 3423 | ROM_LOAD( "epr-6306.04", 0x0000, 0x4000, CRC(e871e132) SHA1(55f7ab1a8c9a118911c64930452ea05f6ee37fc4) ) | |
| 3424 | ROM_LOAD( "epr-6308.117", 0x4000, 0x4000, CRC(99c2d90e) SHA1(5be54d931622892b7acc320e714d5b1cdce02d19) ) | |
| 3425 | ROM_LOAD( "epr-6307.05", 0x8000, 0x4000, CRC(0a5ad543) SHA1(5acada30c1affc4ffbebc8365a9ba4465f213d47) ) | |
| 3426 | ROM_LOAD( "epr-6309.110", 0xc000, 0x4000, CRC(7423ad98) SHA1(e19b4c64795f30e1491520160d315e4148d58df2) ) | |
| 3427 | ||
| 3428 | ROM_REGION( 0x0100, "user1", 0 ) /* misc PROMs, but not color so don't use "proms"! */ | |
| 3429 | ROM_LOAD( "pr-5317.76", 0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ | |
| 3430 | /* pr-5317.106 */ | |
| 3431 | ROM_END | |
| 3432 | ||
| 3433 | 3618 | ROM_START( wboy ) |
| 3434 | 3619 | ROM_REGION( 0x10000, "maincpu", 0 ) |
| 3435 | 3620 | ROM_LOAD( "epr-7489.116", 0x0000, 0x4000, CRC(130f4b70) SHA1(4a2ea5bc06f3a240c68813be3a9f9bef2bcf4e9c) ) /* encrypted */ |
| r4470 | r4471 | |
| 3439 | 3624 | ROM_REGION( 0x10000, "soundcpu", 0 ) |
| 3440 | 3625 | ROM_LOAD( "epr-7498.120", 0x0000, 0x2000, CRC(78ae1e7b) SHA1(86032f443359b0bb2766e33024ed2e320aa9bc84) ) |
| 3441 | 3626 | |
| 3442 | ROM_REGION( 0xc000, " | |
| 3627 | ROM_REGION( 0xc000, "tiles", 0 | |
| 3443 | 3628 | ROM_LOAD( "epr-7497.62", 0x0000, 0x2000, CRC(08d609ca) SHA1(11799e9ef7e6942b304f132b404bff3ed44d524b) ) |
| 3444 | 3629 | ROM_LOAD( "epr-7496.61", 0x2000, 0x2000, CRC(6f61fdf1) SHA1(21826aebf5835b9f3d9c467c8647809c1bc0d01f) ) |
| 3445 | 3630 | ROM_LOAD( "epr-7495.64", 0x4000, 0x2000, CRC(6a0d2c2d) SHA1(8c21d7f0768e8dda2b7185f3c510cae4229a4a2e) ) |
| r4470 | r4471 | |
| 3447 | 3632 | ROM_LOAD( "epr-7493.66", 0x8000, 0x2000, CRC(89305df4) SHA1(7a5098624769a31e7512f56831e818bce6a18871) ) |
| 3448 | 3633 | ROM_LOAD( "epr-7492.65", 0xa000, 0x2000, CRC(60f806b1) SHA1(f91e5868a455dff2bce3c2891a7cfd648957cd73) ) |
| 3449 | 3634 | |
| 3450 | ROM_REGION( 0x10000, " | |
| 3635 | ROM_REGION( 0x10000, " | |
| 3451 | 3636 | ROM_LOAD( "epr-7485.117", 0x0000, 0x4000, CRC(c2891722) SHA1(e4e11c0e9bd0dc121c25349493f2b13d2ff8c807) ) |
| 3452 | 3637 | ROM_LOAD( "epr-7487.04", 0x4000, 0x4000, CRC(2d3a421b) SHA1(d70440a8703ccface3212cd9544c950b36263e8c) ) |
| 3453 | 3638 | ROM_LOAD( "epr-7486.110", 0x8000, 0x4000, CRC(8d622c50) SHA1(9a76a50204c618347d3e8eee6cda841becd906eb) ) |
| 3454 | 3639 | ROM_LOAD( "epr-7488.05", 0xc000, 0x4000, CRC(007c2f1b) SHA1(c2f1376144a49d20cb35384648e06d06978474c1) ) |
| 3455 | 3640 | |
| 3456 | ROM_REGION( 0x0100, " | |
| 3641 | ROM_REGION( 0x0100, " | |
| 3457 | 3642 | ROM_LOAD( "pr-5317.76", 0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ |
| 3458 | 3643 | ROM_END |
| 3459 | 3644 | |
| r4470 | r4471 | |
| 3466 | 3651 | ROM_REGION( 0x10000, "soundcpu", 0 ) |
| 3467 | 3652 | ROM_LOAD( "epr-7498.120", 0x0000, 0x2000, CRC(78ae1e7b) SHA1(86032f443359b0bb2766e33024ed2e320aa9bc84) ) |
| 3468 | 3653 | |
| 3469 | ROM_REGION( 0xc000, " | |
| 3654 | ROM_REGION( 0xc000, "tiles", 0 | |
| 3470 | 3655 | ROM_LOAD( "epr-7497.62", 0x0000, 0x2000, CRC(08d609ca) SHA1(11799e9ef7e6942b304f132b404bff3ed44d524b) ) |
| 3471 | 3656 | ROM_LOAD( "epr-7496.61", 0x2000, 0x2000, CRC(6f61fdf1) SHA1(21826aebf5835b9f3d9c467c8647809c1bc0d01f) ) |
| 3472 | 3657 | ROM_LOAD( "epr-7495.64", 0x4000, 0x2000, CRC(6a0d2c2d) SHA1(8c21d7f0768e8dda2b7185f3c510cae4229a4a2e) ) |
| r4470 | r4471 | |
| 3474 | 3659 | ROM_LOAD( "epr-7493.66", 0x8000, 0x2000, CRC(89305df4) SHA1(7a5098624769a31e7512f56831e818bce6a18871) ) |
| 3475 | 3660 | ROM_LOAD( "epr-7492.65", 0xa000, 0x2000, CRC(60f806b1) SHA1(f91e5868a455dff2bce3c2891a7cfd648957cd73) ) |
| 3476 | 3661 | |
| 3477 | ROM_REGION( 0x10000, " | |
| 3662 | ROM_REGION( 0x10000, " | |
| 3478 | 3663 | ROM_LOAD( "epr-7485.117", 0x0000, 0x4000, CRC(c2891722) SHA1(e4e11c0e9bd0dc121c25349493f2b13d2ff8c807) ) |
| 3479 | 3664 | ROM_LOAD( "epr-7487.04", 0x4000, 0x4000, CRC(2d3a421b) SHA1(d70440a8703ccface3212cd9544c950b36263e8c) ) |
| 3480 | 3665 | ROM_LOAD( "epr-7486.110", 0x8000, 0x4000, CRC(8d622c50) SHA1(9a76a50204c618347d3e8eee6cda841becd906eb) ) |
| 3481 | 3666 | ROM_LOAD( "epr-7488.05", 0xc000, 0x4000, CRC(007c2f1b) SHA1(c2f1376144a49d20cb35384648e06d06978474c1) ) |
| 3482 | 3667 | |
| 3483 | ROM_REGION( 0x0100, " | |
| 3668 | ROM_REGION( 0x0100, " | |
| 3484 | 3669 | ROM_LOAD( "pr-5317.76", 0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ |
| 3485 | 3670 | ROM_END |
| 3486 | 3671 | |
| r4470 | r4471 | |
| 3496 | 3681 | ROM_REGION( 0x10000, "soundcpu", 0 ) |
| 3497 | 3682 | ROM_LOAD( "epr-7498.120", 0x0000, 0x2000, CRC(78ae1e7b) SHA1(86032f443359b0bb2766e33024ed2e320aa9bc84) ) /* epr-7498.3 */ |
| 3498 | 3683 | |
| 3499 | ROM_REGION( 0xc000, " | |
| 3684 | ROM_REGION( 0xc000, "tiles", 0 | |
| 3500 | 3685 | ROM_LOAD( "epr-7497.62", 0x0000, 0x2000, CRC(08d609ca) SHA1(11799e9ef7e6942b304f132b404bff3ed44d524b) ) /* epr-7497.82 */ |
| 3501 | 3686 | ROM_LOAD( "epr-7496.61", 0x2000, 0x2000, CRC(6f61fdf1) SHA1(21826aebf5835b9f3d9c467c8647809c1bc0d01f) ) /* epr-7496.65 */ |
| 3502 | 3687 | ROM_LOAD( "epr-7495.64", 0x4000, 0x2000, CRC(6a0d2c2d) SHA1(8c21d7f0768e8dda2b7185f3c510cae4229a4a2e) ) /* epr-7495.81 */ |
| r4470 | r4471 | |
| 3504 | 3689 | ROM_LOAD( "epr-7493.66", 0x8000, 0x2000, CRC(89305df4) SHA1(7a5098624769a31e7512f56831e818bce6a18871) ) /* epr-7493.80 */ |
| 3505 | 3690 | ROM_LOAD( "epr-7492.65", 0xa000, 0x2000, CRC(60f806b1) SHA1(f91e5868a455dff2bce3c2891a7cfd648957cd73) ) /* epr-7492.63 */ |
| 3506 | 3691 | |
| 3507 | ROM_REGION( 0x10000, " | |
| 3692 | ROM_REGION( 0x10000, " | |
| 3508 | 3693 | ROM_LOAD( "epr-7485.117", 0x0000, 0x4000, CRC(c2891722) SHA1(e4e11c0e9bd0dc121c25349493f2b13d2ff8c807) ) /* epr-7485.3 */ |
| 3509 | 3694 | ROM_LOAD( "epr-7487.04", 0x4000, 0x4000, CRC(2d3a421b) SHA1(d70440a8703ccface3212cd9544c950b36263e8c) ) /* epr-7487.1 */ |
| 3510 | 3695 | ROM_LOAD( "epr-7486.110", 0x8000, 0x4000, CRC(8d622c50) SHA1(9a76a50204c618347d3e8eee6cda841becd906eb) ) /* epr-7486.4 */ |
| 3511 | 3696 | ROM_LOAD( "epr-7488.05", 0xc000, 0x4000, CRC(007c2f1b) SHA1(c2f1376144a49d20cb35384648e06d06978474c1) ) /* epr-7488.2 */ |
| 3512 | 3697 | |
| 3513 | ROM_REGION( 0x0100, " | |
| 3698 | ROM_REGION( 0x0100, " | |
| 3514 | 3699 | ROM_LOAD( "pr-5317.76", 0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ |
| 3515 | 3700 | /* pr-5317.106 */ |
| 3516 | 3701 | ROM_END |
| r4470 | r4471 | |
| 3527 | 3712 | ROM_REGION( 0x10000, "soundcpu", 0 ) |
| 3528 | 3713 | ROM_LOAD( "epr7498a.3", 0x0000, 0x2000, CRC(c198205c) SHA1(d2d5cd154ce6a5a3c6a099b4ab2ea7cc045ab0a1) ) |
| 3529 | 3714 | |
| 3530 | ROM_REGION( 0xc000, " | |
| 3715 | ROM_REGION( 0xc000, "tiles", 0 | |
| 3531 | 3716 | ROM_LOAD( "epr-7497.62", 0x0000, 0x2000, CRC(08d609ca) SHA1(11799e9ef7e6942b304f132b404bff3ed44d524b) ) /* epr-7497.82 */ |
| 3532 | 3717 | ROM_LOAD( "epr-7496.61", 0x2000, 0x2000, CRC(6f61fdf1) SHA1(21826aebf5835b9f3d9c467c8647809c1bc0d01f) ) /* epr-7496.65 */ |
| 3533 | 3718 | ROM_LOAD( "epr-7495.64", 0x4000, 0x2000, CRC(6a0d2c2d) SHA1(8c21d7f0768e8dda2b7185f3c510cae4229a4a2e) ) /* epr-7495.81 */ |
| r4470 | r4471 | |
| 3535 | 3720 | ROM_LOAD( "epr-7493.66", 0x8000, 0x2000, CRC(89305df4) SHA1(7a5098624769a31e7512f56831e818bce6a18871) ) /* epr-7493.80 */ |
| 3536 | 3721 | ROM_LOAD( "epr-7492.65", 0xa000, 0x2000, CRC(60f806b1) SHA1(f91e5868a455dff2bce3c2891a7cfd648957cd73) ) /* epr-7492.63 */ |
| 3537 | 3722 | |
| 3538 | ROM_REGION( 0x10000, " | |
| 3723 | ROM_REGION( 0x10000, " | |
| 3539 | 3724 | ROM_LOAD( "epr-7485.117", 0x0000, 0x4000, CRC(c2891722) SHA1(e4e11c0e9bd0dc121c25349493f2b13d2ff8c807) ) /* epr-7485.3 */ |
| 3540 | 3725 | ROM_LOAD( "epr-7487.04", 0x4000, 0x4000, CRC(2d3a421b) SHA1(d70440a8703ccface3212cd9544c950b36263e8c) ) /* epr-7487.1 */ |
| 3541 | 3726 | ROM_LOAD( "epr-7486.110", 0x8000, 0x4000, CRC(8d622c50) SHA1(9a76a50204c618347d3e8eee6cda841becd906eb) ) /* epr-7486.4 */ |
| 3542 | 3727 | ROM_LOAD( "epr-7488.05", 0xc000, 0x4000, CRC(007c2f1b) SHA1(c2f1376144a49d20cb35384648e06d06978474c1) ) /* epr-7488.2 */ |
| 3543 | 3728 | |
| 3544 | ROM_REGION( 0x0100, " | |
| 3729 | ROM_REGION( 0x0100, " | |
| 3545 | 3730 | ROM_LOAD( "pr-5317.76", 0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ |
| 3546 | 3731 | /* pr-5317.106 */ |
| 3547 | 3732 | ROM_END |
| r4470 | r4471 | |
| 3555 | 3740 | ROM_REGION( 0x10000, "soundcpu", 0 ) |
| 3556 | 3741 | ROM_LOAD( "epr-7498.120", 0x0000, 0x2000, CRC(78ae1e7b) SHA1(86032f443359b0bb2766e33024ed2e320aa9bc84) ) |
| 3557 | 3742 | |
| 3558 | ROM_REGION( 0xc000, " | |
| 3743 | ROM_REGION( 0xc000, "tiles", 0 | |
| 3559 | 3744 | ROM_LOAD( "epr-7497.62", 0x0000, 0x2000, CRC(08d609ca) SHA1(11799e9ef7e6942b304f132b404bff3ed44d524b) ) |
| 3560 | 3745 | ROM_LOAD( "epr-7496.61", 0x2000, 0x2000, CRC(6f61fdf1) SHA1(21826aebf5835b9f3d9c467c8647809c1bc0d01f) ) |
| 3561 | 3746 | ROM_LOAD( "epr-7495.64", 0x4000, 0x2000, CRC(6a0d2c2d) SHA1(8c21d7f0768e8dda2b7185f3c510cae4229a4a2e) ) |
| r4470 | r4471 | |
| 3563 | 3748 | ROM_LOAD( "epr-7493.66", 0x8000, 0x2000, CRC(89305df4) SHA1(7a5098624769a31e7512f56831e818bce6a18871) ) |
| 3564 | 3749 | ROM_LOAD( "epr-7492.65", 0xa000, 0x2000, CRC(60f806b1) SHA1(f91e5868a455dff2bce3c2891a7cfd648957cd73) ) |
| 3565 | 3750 | |
| 3566 | ROM_REGION( 0x10000, " | |
| 3751 | ROM_REGION( 0x10000, " | |
| 3567 | 3752 | ROM_LOAD( "epr-7485.117", 0x0000, 0x4000, CRC(c2891722) SHA1(e4e11c0e9bd0dc121c25349493f2b13d2ff8c807) ) |
| 3568 | 3753 | ROM_LOAD( "epr-7487.04", 0x4000, 0x4000, CRC(2d3a421b) SHA1(d70440a8703ccface3212cd9544c950b36263e8c) ) |
| 3569 | 3754 | ROM_LOAD( "epr-7486.110", 0x8000, 0x4000, CRC(8d622c50) SHA1(9a76a50204c618347d3e8eee6cda841becd906eb) ) |
| 3570 | 3755 | ROM_LOAD( "epr-7488.05", 0xc000, 0x4000, CRC(007c2f1b) SHA1(c2f1376144a49d20cb35384648e06d06978474c1) ) |
| 3571 | 3756 | |
| 3572 | ROM_REGION( 0x0100, " | |
| 3757 | ROM_REGION( 0x0100, " | |
| 3573 | 3758 | ROM_LOAD( "pr-5317.76", 0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ |
| 3574 | 3759 | ROM_END |
| 3575 | 3760 | |
| r4470 | r4471 | |
| 3594 | 3779 | ROM_REGION( 0x10000, "soundcpu", 0 ) |
| 3595 | 3780 | ROM_LOAD( "7583.126", 0x0000, 0x8000, CRC(99334b3c) SHA1(dfc09f63082b7666fa2152e22810c0455a7e5051) ) // epr7583.ic120 |
| 3596 | 3781 | |
| 3597 | ROM_REGION( 0xc000, " | |
| 3782 | ROM_REGION( 0xc000, "tiles", 0 | |
| 3598 | 3783 | ROM_LOAD( "epr7610.ic62", 0x0000, 0x4000, CRC(1685d26a) SHA1(d30d08d61d789fd5a0eb7ef2998eb9728dabf4c9) ) |
| 3599 | 3784 | ROM_LOAD( "epr7609.ic64", 0x4000, 0x4000, CRC(87ecba53) SHA1(b904d5af25e0c1f8c8ca8dc11a3bed508c868f19) ) |
| 3600 | 3785 | ROM_LOAD( "epr7608.ic66", 0x8000, 0x4000, CRC(e812b3ec) SHA1(3eebeaf3480a0370aa5ee031c25768ada17ad8a2) ) |
| 3601 | 3786 | |
| 3602 | ROM_REGION( 0x10000, " | |
| 3787 | ROM_REGION( 0x10000, " | |
| 3603 | 3788 | ROM_LOAD( "7578.87", 0x00000, 0x8000, CRC(6ff1637f) SHA1(9a6ddbd7b8d53273b30c3529b028c1f28bf3c63b) ) // epr7577.ic110 |
| 3604 | 3789 | ROM_LOAD( "7577.86", 0x08000, 0x8000, CRC(58b3705e) SHA1(1a8ff3f1765a3b21145bd1a6c85441f806f7b17d) ) // epr7576.ic117 |
| 3605 | 3790 | |
| 3606 | ROM_REGION( 0x0100, " | |
| 3791 | ROM_REGION( 0x0100, " | |
| 3607 | 3792 | ROM_LOAD( "pr-5317.76", 0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ |
| 3608 | 3793 | ROM_END |
| 3609 | 3794 | |
| r4470 | r4471 | |
| 3616 | 3801 | ROM_REGION( 0x10000, "soundcpu", 0 ) |
| 3617 | 3802 | ROM_LOAD( "epr-7498.120", 0x0000, 0x2000, CRC(78ae1e7b) SHA1(86032f443359b0bb2766e33024ed2e320aa9bc84) ) |
| 3618 | 3803 | |
| 3619 | ROM_REGION( 0xc000, " | |
| 3804 | ROM_REGION( 0xc000, "tiles", 0 | |
| 3620 | 3805 | ROM_LOAD( "epr-7497.62", 0x0000, 0x2000, CRC(08d609ca) SHA1(11799e9ef7e6942b304f132b404bff3ed44d524b) ) /* epr-7497.82 */ |
| 3621 | 3806 | ROM_LOAD( "epr-7496.61", 0x2000, 0x2000, CRC(6f61fdf1) SHA1(21826aebf5835b9f3d9c467c8647809c1bc0d01f) ) /* epr-7496.65 */ |
| 3622 | 3807 | ROM_LOAD( "epr-7495.64", 0x4000, 0x2000, CRC(6a0d2c2d) SHA1(8c21d7f0768e8dda2b7185f3c510cae4229a4a2e) ) /* epr-7495.81 */ |
| r4470 | r4471 | |
| 3624 | 3809 | ROM_LOAD( "epr-7493.66", 0x8000, 0x2000, CRC(89305df4) SHA1(7a5098624769a31e7512f56831e818bce6a18871) ) /* epr-7493.80 */ |
| 3625 | 3810 | ROM_LOAD( "epr-7492.65", 0xa000, 0x2000, CRC(60f806b1) SHA1(f91e5868a455dff2bce3c2891a7cfd648957cd73) ) /* epr-7492.63 */ |
| 3626 | 3811 | |
| 3627 | ROM_REGION( 0x10000, " | |
| 3812 | ROM_REGION( 0x10000, " | |
| 3628 | 3813 | ROM_LOAD( "ic117_85.bin", 0x0000, 0x4000, CRC(1ee96ae8) SHA1(4e69b87e919894b961477e6cc5272f448495d847) ) |
| 3629 | 3814 | ROM_LOAD( "ic004_87.bin", 0x4000, 0x4000, CRC(119735bb) SHA1(001efa55d7fbcd2fdb6da17b136f295e5ea4a4c2) ) |
| 3630 | 3815 | ROM_LOAD( "ic110_86.bin", 0x8000, 0x4000, CRC(26d0fac4) SHA1(2e6a06f6850b2d19e3dd7dcdc6b700d0eda878cb) ) |
| 3631 | 3816 | ROM_LOAD( "ic005_88.bin", 0xc000, 0x4000, CRC(2602e519) SHA1(00e94ec7ae37b5063137d4d49af7806fb0357c4b) ) |
| 3632 | 3817 | |
| 3633 | ROM_REGION( 0x0100, " | |
| 3818 | ROM_REGION( 0x0100, " | |
| 3634 | 3819 | ROM_LOAD( "pr-5317.76", 0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ |
| 3635 | 3820 | ROM_END |
| 3636 | 3821 | |
| r4470 | r4471 | |
| 3642 | 3827 | ROM_REGION( 0x10000, "soundcpu", 0 ) |
| 3643 | 3828 | ROM_LOAD( "7583.126", 0x0000, 0x8000, CRC(99334b3c) SHA1(dfc09f63082b7666fa2152e22810c0455a7e5051) ) |
| 3644 | 3829 | |
| 3645 | ROM_REGION( 0x18000, " | |
| 3830 | ROM_REGION( 0x18000, "tiles", 0 | |
| 3646 | 3831 | ROM_LOAD( "7581.4", 0x00000, 0x8000, CRC(d95565fd) SHA1(25f1653cca1d6432171a7b391cbb76bc18ddfb06) ) |
| 3647 | 3832 | ROM_LOAD( "7582.5", 0x08000, 0x8000, CRC(560cbac0) SHA1(851283e6d63e33d250840501dd22750b19772fb0) ) |
| 3648 | 3833 | ROM_LOAD( "7607.6", 0x10000, 0x8000, CRC(bd36df03) SHA1(7f7efac2c71fae48dd1dcb4dcc849f07e8127f7d) ) |
| 3649 | 3834 | |
| 3650 | ROM_REGION( 0x10000, " | |
| 3835 | ROM_REGION( 0x10000, " | |
| 3651 | 3836 | ROM_LOAD( "7578.87", 0x00000, 0x8000, CRC(6ff1637f) SHA1(9a6ddbd7b8d53273b30c3529b028c1f28bf3c63b) ) |
| 3652 | 3837 | ROM_LOAD( "7577.86", 0x08000, 0x8000, CRC(58b3705e) SHA1(1a8ff3f1765a3b21145bd1a6c85441f806f7b17d) ) |
| 3653 | 3838 | |
| 3654 | ROM_REGION( 0x0 | |
| 3839 | ROM_REGION( 0x0300, "palette", 0 ) | |
| 3655 | 3840 | ROM_LOAD( "pr-7345.20", 0x0000, 0x0100, CRC(8eee0f72) SHA1(b5694c120f604a5f7cc95618a71ab16a1a6151ed) ) /* palette red component */ |
| 3656 | 3841 | ROM_LOAD( "pr-7344.14", 0x0100, 0x0100, CRC(3e7babd7) SHA1(d4f8790db4dce75e27156a4c6de2dcef2baf6d76) ) /* palette green component */ |
| 3657 | 3842 | ROM_LOAD( "pr-7343.8", 0x0200, 0x0100, CRC(371c44a6) SHA1(ac37458d1feb6566b09a795b20c21953d4ab109d) ) /* palette blue component */ |
| 3658 | ROM_LOAD( "pr-5317.28", 0x0300, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ | |
| 3843 | ||
| 3844 | ROM_REGION( 0x0100, "proms", 0 ) | |
| 3845 | ROM_LOAD( "pr-5317.28", 0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ | |
| 3659 | 3846 | ROM_END |
| 3660 | 3847 | |
| 3661 | 3848 | ROM_START( wbdeluxe ) |
| r4470 | r4471 | |
| 3670 | 3857 | ROM_REGION( 0x10000, "soundcpu", 0 ) |
| 3671 | 3858 | ROM_LOAD( "epr7498a.3", 0x0000, 0x2000, CRC(c198205c) SHA1(d2d5cd154ce6a5a3c6a099b4ab2ea7cc045ab0a1) ) |
| 3672 | 3859 | |
| 3673 | ROM_REGION( 0xc000, " | |
| 3860 | ROM_REGION( 0xc000, "tiles", 0 | |
| 3674 | 3861 | ROM_LOAD( "epr-7497.62", 0x0000, 0x2000, CRC(08d609ca) SHA1(11799e9ef7e6942b304f132b404bff3ed44d524b) ) /* epr-7497.82 */ |
| 3675 | 3862 | ROM_LOAD( "epr-7496.61", 0x2000, 0x2000, CRC(6f61fdf1) SHA1(21826aebf5835b9f3d9c467c8647809c1bc0d01f) ) /* epr-7496.65 */ |
| 3676 | 3863 | ROM_LOAD( "epr-7495.64", 0x4000, 0x2000, CRC(6a0d2c2d) SHA1(8c21d7f0768e8dda2b7185f3c510cae4229a4a2e) ) /* epr-7495.81 */ |
| r4470 | r4471 | |
| 3678 | 3865 | ROM_LOAD( "epr-7493.66", 0x8000, 0x2000, CRC(89305df4) SHA1(7a5098624769a31e7512f56831e818bce6a18871) ) /* epr-7493.80 */ |
| 3679 | 3866 | ROM_LOAD( "epr-7492.65", 0xa000, 0x2000, CRC(60f806b1) SHA1(f91e5868a455dff2bce3c2891a7cfd648957cd73) ) /* epr-7492.63 */ |
| 3680 | 3867 | |
| 3681 | ROM_REGION( 0x10000, " | |
| 3868 | ROM_REGION( 0x10000, " | |
| 3682 | 3869 | ROM_LOAD( "epr-7485.117", 0x0000, 0x4000, CRC(c2891722) SHA1(e4e11c0e9bd0dc121c25349493f2b13d2ff8c807) ) /* epr-7485.3 */ |
| 3683 | 3870 | ROM_LOAD( "epr-7487.04", 0x4000, 0x4000, CRC(2d3a421b) SHA1(d70440a8703ccface3212cd9544c950b36263e8c) ) /* epr-7487.1 */ |
| 3684 | 3871 | ROM_LOAD( "epr-7486.110", 0x8000, 0x4000, CRC(8d622c50) SHA1(9a76a50204c618347d3e8eee6cda841becd906eb) ) /* epr-7486.4 */ |
| 3685 | 3872 | ROM_LOAD( "epr-7488.05", 0xc000, 0x4000, CRC(007c2f1b) SHA1(c2f1376144a49d20cb35384648e06d06978474c1) ) /* epr-7488.2 */ |
| 3686 | 3873 | |
| 3687 | ROM_REGION( 0x0100, " | |
| 3874 | ROM_REGION( 0x0100, " | |
| 3688 | 3875 | ROM_LOAD( "pr-5317.76", 0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ |
| 3689 | 3876 | /* pr-5317.106 */ |
| 3690 | 3877 | ROM_END |
| 3691 | 3878 | |
| 3879 | ||
| 3692 | 3880 | ROM_START( gardia ) |
| 3693 | 3881 | ROM_REGION( 0x20000, "maincpu", 0 ) |
| 3694 | 3882 | ROM_LOAD( "epr10255.1", 0x00000, 0x8000, CRC(89282a6b) SHA1(f19e345e5fae6a518276cc1bd09d1e2083672b25) ) /* encrypted */ |
| r4470 | r4471 | |
| 3698 | 3886 | ROM_REGION( 0x10000, "soundcpu", 0 ) |
| 3699 | 3887 | ROM_LOAD( "epr10243.120", 0x0000, 0x4000, CRC(87220660) SHA1(3f2bfc03e0f1053a4aa0ec5ebb0d573f2e20964c) ) |
| 3700 | 3888 | |
| 3701 | ROM_REGION( 0xc000, " | |
| 3889 | ROM_REGION( 0xc000, "tiles", 0 | |
| 3702 | 3890 | ROM_LOAD( "epr10249.61", 0x0000, 0x4000, CRC(4e0ad0f2) SHA1(b76c155b674f3ad8938278d5dbb0452351c716a5) ) |
| 3703 | 3891 | ROM_LOAD( "epr10248.64", 0x4000, 0x4000, CRC(3515d124) SHA1(39b28a103d8bfe702a376ebd880d6060e3d1ab30) ) |
| 3704 | 3892 | ROM_LOAD( "epr10247.66", 0x8000, 0x4000, CRC(541e1555) SHA1(6660204c74a9f7e63b3ba08d99fb854aa863710e) ) |
| 3705 | 3893 | |
| 3706 | ROM_REGION( 0x20000, " | |
| 3894 | ROM_REGION( 0x20000, " | |
| 3707 | 3895 | ROM_LOAD( "epr10234.117", 0x00000, 0x8000, CRC(8a6aed33) SHA1(044836885ace8294124b1be9b3a4828f772bb9ee) ) |
| 3708 | 3896 | ROM_LOAD( "epr10233.110", 0x08000, 0x8000, CRC(c52784d3) SHA1(b37d7f261be12616dbe11dfa375eaf6878e4a0f3) ) |
| 3709 | 3897 | ROM_LOAD( "epr10236.04", 0x10000, 0x8000, CRC(b35ab227) SHA1(616f6097afddffa9af89fe84d8b6df59c567c1e6) ) |
| 3710 | 3898 | ROM_LOAD( "epr10235.5", 0x18000, 0x8000, CRC(006a3151) SHA1(a575f9d5c026e6b18e990720ec7520b6b5ae94e3) ) |
| 3711 | 3899 | |
| 3712 | ROM_REGION( 0x0 | |
| 3900 | ROM_REGION( 0x0300, "palette", 0 ) | |
| 3713 | 3901 | ROM_LOAD( "bprom.3", 0x0000, 0x0100, CRC(8eee0f72) SHA1(b5694c120f604a5f7cc95618a71ab16a1a6151ed) ) /* palette red component */ |
| 3714 | 3902 | ROM_LOAD( "bprom.2", 0x0100, 0x0100, CRC(3e7babd7) SHA1(d4f8790db4dce75e27156a4c6de2dcef2baf6d76) ) /* palette green component */ |
| 3715 | 3903 | ROM_LOAD( "bprom.1", 0x0200, 0x0100, CRC(371c44a6) SHA1(ac37458d1feb6566b09a795b20c21953d4ab109d) ) /* palette blue component */ |
| 3716 | ROM_LOAD( "pr5317.4", 0x0300, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ | |
| 3904 | ||
| 3905 | ROM_REGION( 0x0100, "proms", 0 ) | |
| 3906 | ROM_LOAD( "pr5317.4", 0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ | |
| 3717 | 3907 | ROM_END |
| 3718 | 3908 | |
| 3719 | 3909 | ROM_START( gardiab ) |
| r4470 | r4471 | |
| 3725 | 3915 | ROM_REGION( 0x10000, "soundcpu", 0 ) |
| 3726 | 3916 | ROM_LOAD( "epr10243.120", 0x0000, 0x4000, CRC(87220660) SHA1(3f2bfc03e0f1053a4aa0ec5ebb0d573f2e20964c) ) |
| 3727 | 3917 | |
| 3728 | ROM_REGION( 0xc000, " | |
| 3918 | ROM_REGION( 0xc000, "tiles", 0 | |
| 3729 | 3919 | ROM_LOAD( "gardiabl.8", 0x0000, 0x4000, CRC(367c9a17) SHA1(bde7592ce94bbc6674c04b427c52e74207066f56) ) |
| 3730 | 3920 | ROM_LOAD( "gardiabl.9", 0x4000, 0x4000, CRC(1540fd30) SHA1(e2d134e0715231a428fd112be81493a0e2a2642f) ) |
| 3731 | 3921 | ROM_LOAD( "gardiabl.10", 0x8000, 0x4000, CRC(e5c9af10) SHA1(6bff5bbc0f339e84a8e31446dc9897c02600fbcf) ) |
| 3732 | 3922 | |
| 3733 | ROM_REGION( 0x20000, " | |
| 3923 | ROM_REGION( 0x20000, " | |
| 3734 | 3924 | ROM_LOAD( "epr10234.117", 0x00000, 0x8000, CRC(8a6aed33) SHA1(044836885ace8294124b1be9b3a4828f772bb9ee) ) |
| 3735 | 3925 | ROM_LOAD( "epr10233.110", 0x08000, 0x8000, CRC(c52784d3) SHA1(b37d7f261be12616dbe11dfa375eaf6878e4a0f3) ) |
| 3736 | 3926 | ROM_LOAD( "epr10236.04", 0x10000, 0x8000, CRC(b35ab227) SHA1(616f6097afddffa9af89fe84d8b6df59c567c1e6) ) |
| 3737 | 3927 | ROM_LOAD( "epr10235.5", 0x18000, 0x8000, CRC(006a3151) SHA1(a575f9d5c026e6b18e990720ec7520b6b5ae94e3) ) |
| 3738 | 3928 | |
| 3739 | ROM_REGION( 0x0 | |
| 3929 | ROM_REGION( 0x0300, "palette", 0 ) | |
| 3740 | 3930 | ROM_LOAD( "bprom.3", 0x0000, 0x0100, CRC(8eee0f72) SHA1(b5694c120f604a5f7cc95618a71ab16a1a6151ed) ) /* palette red component */ |
| 3741 | 3931 | ROM_LOAD( "bprom.2", 0x0100, 0x0100, CRC(3e7babd7) SHA1(d4f8790db4dce75e27156a4c6de2dcef2baf6d76) ) /* palette green component */ |
| 3742 | 3932 | ROM_LOAD( "bprom.1", 0x0200, 0x0100, CRC(371c44a6) SHA1(ac37458d1feb6566b09a795b20c21953d4ab109d) ) /* palette blue component */ |
| 3743 | ROM_LOAD( "pr5317.4", 0x0300, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ | |
| 3933 | ||
| 3934 | ROM_REGION( 0x0100, "proms", 0 ) | |
| 3935 | ROM_LOAD( "pr5317.4", 0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ | |
| 3744 | 3936 | ROM_END |
| 3745 | 3937 | |
| 3746 | ROM_START( blockgal ) | |
| 3747 | ROM_REGION( 0x10000, "maincpu", 0 ) | |
| 3748 | ROM_LOAD( "bg.116", 0x0000, 0x4000, CRC(a99b231a) SHA1(42ba45a4fd315255e9500bc3a0e8fe653c4c5a9c) ) /* encrypted */ | |
| 3749 | ROM_LOAD( "bg.109", 0x4000, 0x4000, CRC(a6b573d5) SHA1(33547a3895bbe65d5a6c40453eeb93e1fedad6de) ) /* encrypted */ | |
| 3750 | /* 0x8000-0xbfff empty (was same as My Hero) */ | |
| 3751 | 3938 | |
| 3752 | ROM_REGION( 0x2000, "user1", 0 ) /* MC8123 key */ | |
| 3753 | ROM_LOAD( "317-0029.key", 0x0000, 0x2000, CRC(350d7f93) SHA1(7ef12d63b2c7150f8e74f65ec8340471d72b1c03) ) | |
| 3939 | ROM_START( brain ) | |
| 3940 | ROM_REGION( 0x20000, "maincpu", 0 ) | |
| 3941 | ROM_LOAD( "brain.1", 0x00000, 0x8000, CRC(2d2aec31) SHA1(02dfbb0e9ca01b864e3aa594cf38306fe82a4b5d) ) | |
| 3942 | ROM_LOAD( "brain.2", 0x10000, 0x8000, CRC(810a8ab5) SHA1(87cd39f5b1047f355e1d257c691ef11fc55824ca) ) | |
| 3943 | ROM_RELOAD( 0x08000, 0x8000 ) /* there's code falling through from 7fff */ | |
| 3944 | /* so I have to copy the ROM there */ | |
| 3945 | ROM_LOAD( "brain.3", 0x18000, 0x8000, CRC(9a225634) SHA1(9f137938592dd9c5ab2273864a11a682e0f7f783) ) | |
| 3754 | 3946 | |
| 3755 | 3947 | ROM_REGION( 0x10000, "soundcpu", 0 ) |
| 3756 | ROM_LOAD( "b | |
| 3948 | ROM_LOAD( "brain.120", | |
| 3757 | 3949 | |
| 3758 | ROM_REGION( 0xc000, "gfx1", ROMREGION_DISPOSE ) | |
| 3759 | ROM_LOAD( "bg.62", 0x0000, 0x2000, CRC(7e3ea4eb) SHA1(8bf020b083e2da12fe95ddae9ac7a385490525bc) ) | |
| 3760 | ROM_LOAD( "bg.61", 0x2000, 0x2000, CRC(4dd3d39d) SHA1(759fca021f8d59e861dc19543d5a184428a5e472) ) | |
| 3761 | ROM_LOAD( "bg.64", 0x4000, 0x2000, CRC(17368663) SHA1(e8f2ac6de0fddf08aefae07e693cac100cfb0db4) ) | |
| 3762 | ROM_LOAD( "bg.63", 0x6000, 0x2000, CRC(0c8bc404) SHA1(fc96fb682da3af6b7fc852cea6d8a957c4ce57e3) ) | |
| 3763 | ROM_LOAD( "bg.66", 0x8000, 0x2000, CRC(2b7dc4fa) SHA1(79d3677b24682cee0c08088433646800703be531) ) | |
| 3764 | ROM_LOAD( "bg.65", 0xa000, 0x2000, CRC(ed121306) SHA1(89f812b3954922e22fcf8d9cc4ee5ba295279cb6) ) | |
| 3950 | ROM_REGION( 0xc000, "tiles", 0 ) | |
| 3951 | ROM_LOAD( "brain.62", 0x0000, 0x4000, CRC(7dce2302) SHA1(ebf15da3aea36f6a831a5395b0e5fc253852a3ee) ) | |
| 3952 | ROM_LOAD( "brain.64", 0x4000, 0x4000, CRC(7ce03fd3) SHA1(11f037c75d606276cbf4ec76a2cfdde94a756493) ) | |
| 3953 | ROM_LOAD( "brain.66", 0x8000, 0x4000, CRC(ea54323f) SHA1(08a4d2543a75a1fbb6ef2c126e3aeb4945bf458f) ) | |
| 3765 | 3954 | |
| 3766 | ROM_REGION( 0x10000, "gfx2", 0 ) /* 64k for sprites data */ | |
| 3767 | ROM_LOAD( "bg.117", 0x0000, 0x4000, CRC(e99cc920) SHA1(b2b9199a9296e0c34fcf4dd20ffd3e8de08f42da) ) | |
| 3768 | ROM_LOAD( "bg.04", 0x4000, 0x4000, CRC(213057f8) SHA1(a872631aaa2b73e9198f2ad6cede2a889279e610) ) | |
| 3769 | ROM_LOAD( "bg.110", 0x8000, 0x4000, CRC(064c812c) SHA1(673790dc5131fd280333386a0e9915fb94e9f3e1) ) | |
| 3770 | ROM_LOAD( "bg.05", 0xc000, 0x4000, CRC(02e0b040) SHA1(fb626fc31dfe25bf9fac0c8d76d5041609b06e82) ) | |
| 3955 | ROM_REGION( 0x20000, "sprites", 0 ) | |
| 3956 | ROM_LOAD( "brain.117", 0x00000, 0x8000, CRC(92ff71a4) SHA1(856646c595e0ef7bbcf18844ee34b04e05893ffa) ) | |
| 3957 | ROM_LOAD( "brain.110", 0x08000, 0x8000, CRC(a1b847ec) SHA1(d71664822b9b863bd2a37da71b4e0850893b9876) ) | |
| 3958 | ROM_LOAD( "brain.4", 0x10000, 0x8000, CRC(fd2ea53b) SHA1(c7f2d267f19d2c27a550120e003ebfcb10d8af89) ) | |
| 3959 | /* 18000-1ffff empty */ | |
| 3771 | 3960 | |
| 3772 | ROM_REGION( 0x0100, "user2", 0 ) /* misc PROMs, but not color so don't use "proms"! */ | |
| 3961 | ROM_REGION( 0x0300, "palette", 0 ) | |
| 3962 | ROM_LOAD( "bprom.3", 0x0000, 0x0100, BAD_DUMP CRC(8eee0f72) SHA1(b5694c120f604a5f7cc95618a71ab16a1a6151ed) ) /* palette red component */ | |
| 3963 | ROM_LOAD( "bprom.2", 0x0100, 0x0100, BAD_DUMP CRC(3e7babd7) SHA1(d4f8790db4dce75e27156a4c6de2dcef2baf6d76) ) /* palette green component */ | |
| 3964 | ROM_LOAD( "bprom.1", 0x0200, 0x0100, BAD_DUMP CRC(371c44a6) SHA1(ac37458d1feb6566b09a795b20c21953d4ab109d) ) /* palette blue component */ | |
| 3965 | ||
| 3966 | ROM_REGION( 0x0100, "proms", 0 ) | |
| 3773 | 3967 | ROM_LOAD( "pr5317.76", 0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ |
| 3774 | 3968 | ROM_END |
| 3775 | 3969 | |
| 3776 | ROM_START( blckgalb ) | |
| 3777 | ROM_REGION( 0x18000, "maincpu", 0 ) | |
| 3778 | ROM_LOAD( "ic62", 0x10000, 0x8000, CRC(65c47676) SHA1(bc283761e6f9ebf65fb405b1c8922c3c98c8d00e) ) /* decrypted opcodes */ | |
| 3779 | ROM_CONTINUE( 0x00000, 0x8000 ) /* decrypted data */ | |
| 3780 | 3970 | |
| 3781 | ROM_REGION( 0x10000, "soundcpu", 0 ) | |
| 3782 | ROM_LOAD( "bg.120", 0x0000, 0x2000, CRC(d848faff) SHA1(5974cc0c3090800ca79f580a620f5b6615f5d039) ) | |
| 3783 | ||
| 3784 | ROM_REGION( 0xc000, "gfx1", ROMREGION_DISPOSE ) | |
| 3785 | ROM_LOAD( "bg.62", 0x0000, 0x2000, CRC(7e3ea4eb) SHA1(8bf020b083e2da12fe95ddae9ac7a385490525bc) ) | |
| 3786 | ROM_LOAD( "bg.61", 0x2000, 0x2000, CRC(4dd3d39d) SHA1(759fca021f8d59e861dc19543d5a184428a5e472) ) | |
| 3787 | ROM_LOAD( "bg.64", 0x4000, 0x2000, CRC(17368663) SHA1(e8f2ac6de0fddf08aefae07e693cac100cfb0db4) ) | |
| 3788 | ROM_LOAD( "bg.63", 0x6000, 0x2000, CRC(0c8bc404) SHA1(fc96fb682da3af6b7fc852cea6d8a957c4ce57e3) ) | |
| 3789 | ROM_LOAD( "bg.66", 0x8000, 0x2000, CRC(2b7dc4fa) SHA1(79d3677b24682cee0c08088433646800703be531) ) | |
| 3790 | ROM_LOAD( "bg.65", 0xa000, 0x2000, CRC(ed121306) SHA1(89f812b3954922e22fcf8d9cc4ee5ba295279cb6) ) | |
| 3791 | ||
| 3792 | ROM_REGION( 0x10000, "gfx2", 0 ) /* 64k for sprites data */ | |
| 3793 | ROM_LOAD( "bg.117", 0x0000, 0x4000, CRC(e99cc920) SHA1(b2b9199a9296e0c34fcf4dd20ffd3e8de08f42da) ) | |
| 3794 | ROM_LOAD( "bg.04", 0x4000, 0x4000, CRC(213057f8) SHA1(a872631aaa2b73e9198f2ad6cede2a889279e610) ) | |
| 3795 | ROM_LOAD( "bg.110", 0x8000, 0x4000, CRC(064c812c) SHA1(673790dc5131fd280333386a0e9915fb94e9f3e1) ) | |
| 3796 | ROM_LOAD( "bg.05", 0xc000, 0x4000, CRC(02e0b040) SHA1(fb626fc31dfe25bf9fac0c8d76d5041609b06e82) ) | |
| 3797 | ||
| 3798 | ROM_REGION( 0x0100, "user1", 0 ) /* misc PROMs, but not color so don't use "proms"! */ | |
| 3799 | ROM_LOAD( "pr5317.76", 0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ | |
| 3800 | ROM_END | |
| 3801 | ||
| 3802 | 3971 | ROM_START( tokisens ) |
| 3803 | 3972 | ROM_REGION( 0x20000, "maincpu", 0 ) |
| 3804 | 3973 | ROM_LOAD( "epr10961.90", 0x00000, 0x8000, CRC(1466b61d) SHA1(99f93813834d3a7c9f6228076d400f74d9b6dea9) ) |
| r4470 | r4471 | |
| 3808 | 3977 | ROM_REGION( 0x10000, "soundcpu", 0 ) |
| 3809 | 3978 | ROM_LOAD( "epr10967.126", 0x0000, 0x8000, CRC(97966bf2) SHA1(b5a3d36afbb3d6e2e2e2c121609a30dc080ccf13) ) |
| 3810 | 3979 | |
| 3811 | ROM_REGION( 0x18000, " | |
| 3980 | ROM_REGION( 0x18000, "tiles", 0 | |
| 3812 | 3981 | ROM_LOAD( "epr10964.4", 0x00000, 0x8000, CRC(9013b85c) SHA1(c27322245052ffc9d840fe683ed35965c61bf9e8) ) |
| 3813 | 3982 | ROM_LOAD( "epr10965.5", 0x08000, 0x8000, CRC(e4755cc6) SHA1(33370d556a70e19edce5e0c7fa8b11453ccbe91b) ) |
| 3814 | 3983 | ROM_LOAD( "epr10966.6", 0x10000, 0x8000, CRC(5bbfbdcc) SHA1(e7e679da874a79dfdda0be58d1352c192635296d) ) |
| 3815 | 3984 | |
| 3816 | ROM_REGION( 0x20000, " | |
| 3985 | ROM_REGION( 0x20000, " | |
| 3817 | 3986 | ROM_LOAD( "epr10958.87", 0x00000, 0x8000, CRC(fc2bcbd7) SHA1(6b9007f2057e4c860ecae4ba5db4e02b8aaae8fd) ) |
| 3818 | 3987 | ROM_LOAD( "epr10957.86", 0x08000, 0x8000, CRC(4ec56860) SHA1(9fd6ba8a68b4cb98183e8ac8643656c251f1c72d) ) |
| 3819 | 3988 | ROM_LOAD( "epr10960.89", 0x10000, 0x8000, CRC(880e0d44) SHA1(2b2dc144807d1d048ffe81bfd33a77ccf618dd3e) ) |
| 3820 | 3989 | ROM_LOAD( "epr10959.88", 0x18000, 0x8000, CRC(4deda48f) SHA1(12db2a69286f22cd8243be6faa9a075fafec1dfd) ) |
| 3821 | 3990 | |
| 3822 | ROM_REGION( 0x0 | |
| 3991 | ROM_REGION( 0x0300, "palette", 0 ) | |
| 3823 | 3992 | ROM_LOAD( "bprom.20", 0x0000, 0x0100, CRC(8eee0f72) SHA1(b5694c120f604a5f7cc95618a71ab16a1a6151ed) ) /* palette red component */ |
| 3824 | 3993 | ROM_LOAD( "bprom.14", 0x0100, 0x0100, CRC(3e7babd7) SHA1(d4f8790db4dce75e27156a4c6de2dcef2baf6d76) ) /* palette green component */ |
| 3825 | 3994 | ROM_LOAD( "bprom.8", 0x0200, 0x0100, CRC(371c44a6) SHA1(ac37458d1feb6566b09a795b20c21953d4ab109d) ) /* palette blue component */ |
| 3826 | ROM_LOAD( "bprom.28", 0x0300, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ | |
| 3995 | ||
| 3996 | ROM_REGION( 0x0100, "proms", 0 ) | |
| 3997 | ROM_LOAD( "bprom.28", 0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ | |
| 3827 | 3998 | ROM_END |
| 3828 | 3999 | |
| 4000 | ||
| 3829 | 4001 | ROM_START( wbml ) |
| 3830 | 4002 | ROM_REGION( 0x20000, "maincpu", 0 ) |
| 3831 | 4003 | ROM_LOAD( "ep11031a.90", 0x00000, 0x8000, CRC(bd3349e5) SHA1(65cc16e5d3b08429388946df254b8122ad1da339) ) /* encrypted */ |
| 3832 | 4004 | ROM_LOAD( "epr11032.91", 0x10000, 0x8000, CRC(9d03bdb2) SHA1(7dbab23e7c7972d9b51a0d3d046374720b7d6af5) ) /* encrypted */ |
| 3833 | 4005 | ROM_LOAD( "epr11033.92", 0x18000, 0x8000, CRC(7076905c) SHA1(562fbd9bd60851f7e4e60b725193395b4f193479) ) /* encrypted */ |
| 3834 | 4006 | |
| 3835 | ROM_REGION( 0x2000, " | |
| 4007 | ROM_REGION( 0x2000, "k | |
| 3836 | 4008 | ROM_LOAD( "317-0043.key", 0x0000, 0x2000, CRC(e354abfc) SHA1(07b0d3c51301ebb25909234b6220a3ed20dbcc7d) ) |
| 3837 | 4009 | |
| 3838 | 4010 | ROM_REGION( 0x10000, "soundcpu", 0 ) |
| 3839 | 4011 | ROM_LOAD( "epr11037.126", 0x0000, 0x8000, CRC(7a4ee585) SHA1(050436106cced5dcbf40a3d94d48202eedddc3ad) ) |
| 3840 | 4012 | |
| 3841 | ROM_REGION( 0x18000, " | |
| 4013 | ROM_REGION( 0x18000, "tiles", 0 | |
| 3842 | 4014 | ROM_LOAD( "epr11034.4", 0x00000, 0x8000, CRC(37a2077d) SHA1(57f032a98022bf03ff98cb2e563178ba97e4b63c) ) |
| 3843 | 4015 | ROM_LOAD( "epr11035.5", 0x08000, 0x8000, CRC(cdf2a21b) SHA1(db2553866f21e03bd9d668c179be3352adbaf8a6) ) |
| 3844 | 4016 | ROM_LOAD( "epr11036.6", 0x10000, 0x8000, CRC(644687fa) SHA1(d6c5bc95da4fc7e81091dcfe6205b6f47d54af76) ) |
| 3845 | 4017 | |
| 3846 | ROM_REGION( 0x20000, " | |
| 4018 | ROM_REGION( 0x20000, " | |
| 3847 | 4019 | ROM_LOAD( "epr11028.87", 0x00000, 0x8000, CRC(af0b3972) SHA1(413825f66b84c7e45aa1855131482abead8f7f3b) ) |
| 3848 | 4020 | ROM_LOAD( "epr11027.86", 0x08000, 0x8000, CRC(277d8f1d) SHA1(7854673503ed03d276abe971805a11f8c992f6d6) ) |
| 3849 | 4021 | ROM_LOAD( "epr11030.89", 0x10000, 0x8000, CRC(f05ffc76) SHA1(f3dbb518240f86430840c3d4cda04bac79c20f69) ) |
| 3850 | 4022 | ROM_LOAD( "epr11029.88", 0x18000, 0x8000, CRC(cedc9c61) SHA1(dbe5744f9b6f2a406b52b910dd4e133db7bce6b2) ) |
| 3851 | 4023 | |
| 3852 | ROM_REGION( 0x0 | |
| 4024 | ROM_REGION( 0x0300, "palette", 0 ) | |
| 3853 | 4025 | ROM_LOAD( "pr11026.20", 0x0000, 0x0100, CRC(27057298) SHA1(654be7abb937bb0720263ee6512e31194662effe) ) |
| 3854 | 4026 | ROM_LOAD( "pr11025.14", 0x0100, 0x0100, CRC(41e4d86b) SHA1(a86e8bb0a465d01b04410edfbb82eb96f12b909f) ) |
| 3855 | 4027 | ROM_LOAD( "pr11024.8", 0x0200, 0x0100, CRC(08d71954) SHA1(df045dbfb3d669e4d42fbdba1e7191cd046f7b47) ) |
| 3856 | ROM_LOAD( "pr5317.37", 0x0300, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ | |
| 4028 | ||
| 4029 | ROM_REGION( 0x0100, "proms", 0 ) | |
| 4030 | ROM_LOAD( "pr5317.37", 0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ | |
| 3857 | 4031 | ROM_END |
| 3858 | 4032 | |
| 3859 | 4033 | ROM_START( wbmljo ) |
| r4470 | r4471 | |
| 3862 | 4036 | ROM_LOAD( "epr11032.91", 0x10000, 0x8000, CRC(9d03bdb2) SHA1(7dbab23e7c7972d9b51a0d3d046374720b7d6af5) ) /* encrypted */ |
| 3863 | 4037 | ROM_LOAD( "epr11033.92", 0x18000, 0x8000, CRC(7076905c) SHA1(562fbd9bd60851f7e4e60b725193395b4f193479) ) /* encrypted */ |
| 3864 | 4038 | |
| 3865 | ROM_REGION( 0x2000, " | |
| 4039 | ROM_REGION( 0x2000, "k | |
| 3866 | 4040 | ROM_LOAD( "317-0043.key", 0x0000, 0x2000, CRC(e354abfc) SHA1(07b0d3c51301ebb25909234b6220a3ed20dbcc7d) ) |
| 3867 | 4041 | |
| 3868 | 4042 | ROM_REGION( 0x10000, "soundcpu", 0 ) |
| 3869 | 4043 | ROM_LOAD( "epr11037.126", 0x0000, 0x8000, CRC(7a4ee585) SHA1(050436106cced5dcbf40a3d94d48202eedddc3ad) ) |
| 3870 | 4044 | |
| 3871 | ROM_REGION( 0x18000, " | |
| 4045 | ROM_REGION( 0x18000, "tiles", 0 | |
| 3872 | 4046 | ROM_LOAD( "epr11034.4", 0x00000, 0x8000, CRC(37a2077d) SHA1(57f032a98022bf03ff98cb2e563178ba97e4b63c) ) |
| 3873 | 4047 | ROM_LOAD( "epr11035.5", 0x08000, 0x8000, CRC(cdf2a21b) SHA1(db2553866f21e03bd9d668c179be3352adbaf8a6) ) |
| 3874 | 4048 | ROM_LOAD( "epr11036.6", 0x10000, 0x8000, CRC(644687fa) SHA1(d6c5bc95da4fc7e81091dcfe6205b6f47d54af76) ) |
| 3875 | 4049 | |
| 3876 | ROM_REGION( 0x20000, " | |
| 4050 | ROM_REGION( 0x20000, " | |
| 3877 | 4051 | ROM_LOAD( "epr11028.87", 0x00000, 0x8000, CRC(af0b3972) SHA1(413825f66b84c7e45aa1855131482abead8f7f3b) ) |
| 3878 | 4052 | ROM_LOAD( "epr11027.86", 0x08000, 0x8000, CRC(277d8f1d) SHA1(7854673503ed03d276abe971805a11f8c992f6d6) ) |
| 3879 | 4053 | ROM_LOAD( "epr11030.89", 0x10000, 0x8000, CRC(f05ffc76) SHA1(f3dbb518240f86430840c3d4cda04bac79c20f69) ) |
| 3880 | 4054 | ROM_LOAD( "epr11029.88", 0x18000, 0x8000, CRC(cedc9c61) SHA1(dbe5744f9b6f2a406b52b910dd4e133db7bce6b2) ) |
| 3881 | 4055 | |
| 3882 | ROM_REGION( 0x0 | |
| 4056 | ROM_REGION( 0x0300, "palette", 0 ) | |
| 3883 | 4057 | ROM_LOAD( "pr11026.20", 0x0000, 0x0100, CRC(27057298) SHA1(654be7abb937bb0720263ee6512e31194662effe) ) |
| 3884 | 4058 | ROM_LOAD( "pr11025.14", 0x0100, 0x0100, CRC(41e4d86b) SHA1(a86e8bb0a465d01b04410edfbb82eb96f12b909f) ) |
| 3885 | 4059 | ROM_LOAD( "pr11024.8", 0x0200, 0x0100, CRC(08d71954) SHA1(df045dbfb3d669e4d42fbdba1e7191cd046f7b47) ) |
| 3886 | ROM_LOAD( "pr5317.37", 0x0300, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ | |
| 4060 | ||
| 4061 | ROM_REGION( 0x0100, "proms", 0 ) | |
| 4062 | ROM_LOAD( "pr5317.37", 0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ | |
| 3887 | 4063 | ROM_END |
| 3888 | 4064 | |
| 3889 | 4065 | ROM_START( wbmljb ) |
| r4470 | r4471 | |
| 3898 | 4074 | ROM_REGION( 0x10000, "soundcpu", 0 ) |
| 3899 | 4075 | ROM_LOAD( "epr11037.126", 0x0000, 0x8000, CRC(7a4ee585) SHA1(050436106cced5dcbf40a3d94d48202eedddc3ad) ) |
| 3900 | 4076 | |
| 3901 | ROM_REGION( 0x18000, " | |
| 4077 | ROM_REGION( 0x18000, "tiles", 0 | |
| 3902 | 4078 | ROM_LOAD( "epr11034.4", 0x00000, 0x8000, CRC(37a2077d) SHA1(57f032a98022bf03ff98cb2e563178ba97e4b63c) ) |
| 3903 | 4079 | ROM_LOAD( "epr11035.5", 0x08000, 0x8000, CRC(cdf2a21b) SHA1(db2553866f21e03bd9d668c179be3352adbaf8a6) ) |
| 3904 | 4080 | ROM_LOAD( "epr11036.6", 0x10000, 0x8000, CRC(644687fa) SHA1(d6c5bc95da4fc7e81091dcfe6205b6f47d54af76) ) |
| 3905 | 4081 | |
| 3906 | ROM_REGION( 0x20000, " | |
| 4082 | ROM_REGION( 0x20000, " | |
| 3907 | 4083 | ROM_LOAD( "epr11028.87", 0x00000, 0x8000, CRC(af0b3972) SHA1(413825f66b84c7e45aa1855131482abead8f7f3b) ) |
| 3908 | 4084 | ROM_LOAD( "epr11027.86", 0x08000, 0x8000, CRC(277d8f1d) SHA1(7854673503ed03d276abe971805a11f8c992f6d6) ) |
| 3909 | 4085 | ROM_LOAD( "epr11030.89", 0x10000, 0x8000, CRC(f05ffc76) SHA1(f3dbb518240f86430840c3d4cda04bac79c20f69) ) |
| 3910 | 4086 | ROM_LOAD( "epr11029.88", 0x18000, 0x8000, CRC(cedc9c61) SHA1(dbe5744f9b6f2a406b52b910dd4e133db7bce6b2) ) |
| 3911 | 4087 | |
| 3912 | ROM_REGION( 0x0 | |
| 4088 | ROM_REGION( 0x0300, "palette", 0 ) | |
| 3913 | 4089 | ROM_LOAD( "pr11026.20", 0x0000, 0x0100, CRC(27057298) SHA1(654be7abb937bb0720263ee6512e31194662effe) ) |
| 3914 | 4090 | ROM_LOAD( "pr11025.14", 0x0100, 0x0100, CRC(41e4d86b) SHA1(a86e8bb0a465d01b04410edfbb82eb96f12b909f) ) |
| 3915 | 4091 | ROM_LOAD( "pr11024.8", 0x0200, 0x0100, CRC(08d71954) SHA1(df045dbfb3d669e4d42fbdba1e7191cd046f7b47) ) |
| 3916 | ROM_LOAD( "pr5317.37", 0x0300, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ | |
| 4092 | ||
| 4093 | ROM_REGION( 0x0100, "proms", 0 ) | |
| 4094 | ROM_LOAD( "pr5317.37", 0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ | |
| 3917 | 4095 | ROM_END |
| 3918 | 4096 | |
| 3919 | 4097 | ROM_START( wbmlb ) |
| r4470 | r4471 | |
| 3928 | 4106 | ROM_REGION( 0x10000, "soundcpu", 0 ) |
| 3929 | 4107 | ROM_LOAD( "epr11037.126", 0x0000, 0x8000, CRC(7a4ee585) SHA1(050436106cced5dcbf40a3d94d48202eedddc3ad) ) |
| 3930 | 4108 | |
| 3931 | ROM_REGION( 0x18000, " | |
| 4109 | ROM_REGION( 0x18000, "tiles", 0 | |
| 3932 | 4110 | ROM_LOAD( "wbml.08", 0x00000, 0x8000, CRC(bbea6afe) SHA1(ba56c6789a35eb57cd226296ebf57e9aa19ba625) ) |
| 3933 | 4111 | ROM_LOAD( "wbml.09", 0x08000, 0x8000, CRC(77567d41) SHA1(2ac501661522615859f8a1718dbb8451272d6931) ) |
| 3934 | 4112 | ROM_LOAD( "wbml.10", 0x10000, 0x8000, CRC(a52ffbdd) SHA1(609375112268b770a798186697ecab5853f29f89) ) |
| 3935 | 4113 | |
| 3936 | ROM_REGION( 0x20000, " | |
| 4114 | ROM_REGION( 0x20000, " | |
| 3937 | 4115 | ROM_LOAD( "epr11028.87", 0x00000, 0x8000, CRC(af0b3972) SHA1(413825f66b84c7e45aa1855131482abead8f7f3b) ) |
| 3938 | 4116 | ROM_LOAD( "epr11027.86", 0x08000, 0x8000, CRC(277d8f1d) SHA1(7854673503ed03d276abe971805a11f8c992f6d6) ) |
| 3939 | 4117 | ROM_LOAD( "epr11030.89", 0x10000, 0x8000, CRC(f05ffc76) SHA1(f3dbb518240f86430840c3d4cda04bac79c20f69) ) |
| 3940 | 4118 | ROM_LOAD( "epr11029.88", 0x18000, 0x8000, CRC(cedc9c61) SHA1(dbe5744f9b6f2a406b52b910dd4e133db7bce6b2) ) |
| 3941 | 4119 | |
| 3942 | ROM_REGION( 0x0 | |
| 4120 | ROM_REGION( 0x0300, "palette", 0 ) | |
| 3943 | 4121 | ROM_LOAD( "pr11026.20", 0x0000, 0x0100, CRC(27057298) SHA1(654be7abb937bb0720263ee6512e31194662effe) ) |
| 3944 | 4122 | ROM_LOAD( "pr11025.14", 0x0100, 0x0100, CRC(41e4d86b) SHA1(a86e8bb0a465d01b04410edfbb82eb96f12b909f) ) |
| 3945 | 4123 | ROM_LOAD( "pr11024.8", 0x0200, 0x0100, CRC(08d71954) SHA1(df045dbfb3d669e4d42fbdba1e7191cd046f7b47) ) |
| 3946 | ROM_LOAD( "pr5317.37", 0x0300, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ | |
| 4124 | ||
| 4125 | ROM_REGION( 0x0100, "proms", 0 ) | |
| 4126 | ROM_LOAD( "pr5317.37", 0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ | |
| 3947 | 4127 | ROM_END |
| 3948 | 4128 | |
| 3949 | 4129 | ROM_START( wbmlbg ) |
| r4470 | r4471 | |
| 3958 | 4138 | ROM_REGION( 0x10000, "soundcpu", 0 ) |
| 3959 | 4139 | ROM_LOAD( "epr11037.126", 0x0000, 0x8000, CRC(7a4ee585) SHA1(050436106cced5dcbf40a3d94d48202eedddc3ad) ) |
| 3960 | 4140 | |
| 3961 | ROM_REGION( 0x18000, " | |
| 4141 | ROM_REGION( 0x18000, "tiles", 0 | |
| 3962 | 4142 | ROM_LOAD( "galaxy.ic4", 0x00000, 0x8000, CRC(ab75d056) SHA1(d90d9c723536d0ec21900dc70b51715300b01fe7) ) |
| 3963 | 4143 | ROM_LOAD( "galaxy.ic6", 0x08000, 0x8000, CRC(6bb5e601) SHA1(465d67dcde4e775d1b93640ef1a300e958cbe707) ) |
| 3964 | 4144 | ROM_LOAD( "galaxy.ic5", 0x10000, 0x8000, CRC(3c11d151) SHA1(7b0c6792ae919ac309a709ca0c89006487e1d6e9) ) |
| 3965 | 4145 | |
| 3966 | ROM_REGION( 0x20000, " | |
| 4146 | ROM_REGION( 0x20000, " | |
| 3967 | 4147 | ROM_LOAD( "epr11028.87", 0x00000, 0x8000, CRC(af0b3972) SHA1(413825f66b84c7e45aa1855131482abead8f7f3b) ) |
| 3968 | 4148 | ROM_LOAD( "epr11027.86", 0x08000, 0x8000, CRC(277d8f1d) SHA1(7854673503ed03d276abe971805a11f8c992f6d6) ) |
| 3969 | 4149 | ROM_LOAD( "epr11030.89", 0x10000, 0x8000, CRC(f05ffc76) SHA1(f3dbb518240f86430840c3d4cda04bac79c20f69) ) |
| 3970 | 4150 | ROM_LOAD( "epr11029.88", 0x18000, 0x8000, CRC(cedc9c61) SHA1(dbe5744f9b6f2a406b52b910dd4e133db7bce6b2) ) |
| 3971 | 4151 | |
| 3972 | ROM_REGION( 0x0 | |
| 4152 | ROM_REGION( 0x0300, "palette", 0 ) | |
| 3973 | 4153 | ROM_LOAD( "pr11026.20", 0x0000, 0x0100, CRC(27057298) SHA1(654be7abb937bb0720263ee6512e31194662effe) ) |
| 3974 | 4154 | ROM_LOAD( "pr11025.14", 0x0100, 0x0100, CRC(41e4d86b) SHA1(a86e8bb0a465d01b04410edfbb82eb96f12b909f) ) |
| 3975 | 4155 | ROM_LOAD( "pr11024.8", 0x0200, 0x0100, CRC(08d71954) SHA1(df045dbfb3d669e4d42fbdba1e7191cd046f7b47) ) |
| 3976 | ROM_LOAD( "pr5317.37", 0x0300, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ | |
| 4156 | ||
| 4157 | ROM_REGION( 0x0100, "proms", 0 ) | |
| 4158 | ROM_LOAD( "pr5317.37", 0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ | |
| 3977 | 4159 | ROM_END |
| 3978 | 4160 | |
| 4161 | ||
| 3979 | 4162 | ROM_START( dakkochn ) |
| 3980 | 4163 | ROM_REGION( 0x20000, "maincpu", 0 ) |
| 3981 | 4164 | ROM_LOAD( "epr11224.90", 0x00000, 0x8000, CRC(9fb1972b) SHA1(1bb61c6ec2b5b8eb39f74f20d5bcd0f14501bd21) ) /* encrypted */ |
| 3982 | 4165 | ROM_LOAD( "epr11225.91", 0x10000, 0x8000, CRC(c540f9e2) SHA1(dbda9355e8b796bcfaee2789714d248c4d7ad58c) ) /* encrypted */ |
| 3983 | 4166 | /* 18000-1ffff empty */ |
| 3984 | 4167 | |
| 3985 | ROM_REGION( 0x2000, " | |
| 4168 | ROM_REGION( 0x2000, "k | |
| 3986 | 4169 | ROM_LOAD( "317-0014.key", 0x0000, 0x2000, CRC(bb9df5ad) SHA1(7e7b7255149ae01d19883ecf4a88989f8a9bf4c6) ) |
| 3987 | 4170 | |
| 3988 | 4171 | ROM_REGION( 0x10000, "soundcpu", 0 ) |
| 3989 | 4172 | ROM_LOAD( "epr11229.126", 0x0000, 0x8000, CRC(c11648d0) SHA1(c2df3d767d497c3365ae70748c4790f4ee394958) ) |
| 3990 | 4173 | |
| 3991 | ROM_REGION( 0x18000, " | |
| 4174 | ROM_REGION( 0x18000, "tiles", 0 | |
| 3992 | 4175 | ROM_LOAD( "epr11226.4", 0x00000, 0x8000, CRC(3dbc2f78) SHA1(f3f7ee2c0bedcc21c1c1f5394838af6d0a8833d8) ) |
| 3993 | 4176 | ROM_LOAD( "epr11227.5", 0x08000, 0x8000, CRC(34156e8d) SHA1(e23d8604a3d5db413cf150f9891fca2b1e0163fa) ) |
| 3994 | 4177 | ROM_LOAD( "epr11228.6", 0x10000, 0x8000, CRC(fdd5323f) SHA1(c47099c78207bb2258d34b98b48e3c04beb6407e) ) |
| 3995 | 4178 | |
| 3996 | ROM_REGION( 0x20000, " | |
| 4179 | ROM_REGION( 0x20000, " | |
| 3997 | 4180 | ROM_LOAD( "epr11221.87", 0x00000, 0x8000, CRC(f9a44916) SHA1(9d9ba96146cff4c1ed18b7134ab19919e144d326) ) |
| 3998 | 4181 | ROM_LOAD( "epr11220.86", 0x08000, 0x8000, CRC(fdd25d8a) SHA1(53636e2a9102a2d86277cff812639d1d92587fc4) ) |
| 3999 | 4182 | ROM_LOAD( "epr11223.89", 0x10000, 0x8000, CRC(538adc55) SHA1(542af53a56f580e5ab455aa6bed955ee5fd4a252) ) |
| 4000 | 4183 | ROM_LOAD( "epr11222.88", 0x18000, 0x8000, CRC(33fab0b2) SHA1(eb3c08009315e46590c2c0df17fc3fa391034c66) ) |
| 4001 | 4184 | |
| 4002 | ROM_REGION( 0x0 | |
| 4185 | ROM_REGION( 0x0300, "palette", 0 ) | |
| 4003 | 4186 | ROM_LOAD( "pr11219.20", 0x0000, 0x0100, CRC(45e252d9) SHA1(92d8f1d0f1a9e65234521ce02d512f08b5e06d78) ) /* palette red component */ |
| 4004 | 4187 | ROM_LOAD( "pr11218.14", 0x0100, 0x0100, CRC(3eda3a1b) SHA1(cc98c792521845259088eb163a150cd5bb603d5d) ) /* palette green component */ |
| 4005 | 4188 | ROM_LOAD( "pr11217.8", 0x0200, 0x0100, CRC(49dbde88) SHA1(7057da5617de7e4775adf092cce1709135066129) ) /* palette blue component */ |
| 4006 | ROM_LOAD( "pr5317.37", 0x0300, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ | |
| 4189 | ||
| 4190 | ROM_REGION( 0x0100, "proms", 0 ) | |
| 4191 | ROM_LOAD( "pr5317.37", 0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ | |
| 4007 | 4192 | ROM_END |
| 4008 | 4193 | |
| 4194 | ||
| 4009 | 4195 | ROM_START( ufosensi ) |
| 4010 | 4196 | ROM_REGION( 0x20000, "maincpu", 0 ) |
| 4011 | 4197 | ROM_LOAD( "epr11661.90", 0x00000, 0x8000, CRC(f3e394e2) SHA1(a295a2aa80a164a548995822c46f32fd9fad7a0b) ) /* encrypted */ |
| 4012 | 4198 | ROM_LOAD( "epr11662.91", 0x10000, 0x8000, CRC(0c2e4120) SHA1(d81fbefa95868e3efd29ef3bacf108329781ca17) ) /* encrypted */ |
| 4013 | 4199 | ROM_LOAD( "epr11663.92", 0x18000, 0x8000, CRC(4515ebae) SHA1(9b823f10999746292762c2f0a1ca9039efa22506) ) /* encrypted */ |
| 4014 | 4200 | |
| 4015 | ROM_REGION( 0x2000, " | |
| 4201 | ROM_REGION( 0x2000, "k | |
| 4016 | 4202 | ROM_LOAD( "317-0064.key", 0x0000, 0x2000, CRC(da326f36) SHA1(0871b351379a094ac578e0eca5cb17797f9085aa) ) |
| 4017 | 4203 | |
| 4018 | 4204 | ROM_REGION( 0x10000, "soundcpu", 0 ) |
| 4019 | 4205 | ROM_LOAD( "epr11667.126", 0x0000, 0x8000, CRC(110baba9) SHA1(e14cf5af11ac9691eca897bbae7c238665cd2a4d) ) |
| 4020 | 4206 | |
| 4021 | ROM_REGION( 0x18000, " | |
| 4207 | ROM_REGION( 0x18000, "tiles", 0 | |
| 4022 | 4208 | ROM_LOAD( "epr11664.4", 0x00000, 0x8000, CRC(1b1bc3d5) SHA1(2a09e0dbe2d467c151dce705f249367df849eaeb) ) |
| 4023 | 4209 | ROM_LOAD( "epr11665.5", 0x08000, 0x8000, CRC(3659174a) SHA1(176d2436abb45827a8d387241082854f55dc0314) ) |
| 4024 | 4210 | ROM_LOAD( "epr11666.6", 0x10000, 0x8000, CRC(99dcc793) SHA1(ad1d0acb60e7c1a7016955e142ebca1cf07b4908) ) |
| 4025 | 4211 | |
| 4026 | ROM_REGION( 0x20000, " | |
| 4212 | ROM_REGION( 0x20000, " | |
| 4027 | 4213 | ROM_LOAD( "epr11658.87", 0x00000, 0x8000, CRC(3b5a20f7) SHA1(03e0934b0913c3a2cadf1d28b8a700d70b80fbac) ) |
| 4028 | 4214 | ROM_LOAD( "epr11657.86", 0x08000, 0x8000, CRC(010f81a9) SHA1(1b7ee05c80edfa403e32c216fa69387ca556895e) ) |
| 4029 | 4215 | ROM_LOAD( "epr11660.89", 0x10000, 0x8000, CRC(e1e2e7c5) SHA1(434039a70049a6e74e2a2f48b60345f720e6b1af) ) |
| 4030 | 4216 | ROM_LOAD( "epr11659.88", 0x18000, 0x8000, CRC(286c7286) SHA1(449a19ea9a9f9df47005e8dac1b8eacaebc515e7) ) |
| 4031 | 4217 | |
| 4032 | ROM_REGION( 0x0 | |
| 4218 | ROM_REGION( 0x0300, "palette", 0 ) | |
| 4033 | 4219 | ROM_LOAD( "pr11656.20", 0x0000, 0x0100, CRC(640740eb) SHA1(9a601a3665f612d00c70019d33c7abd3cca9434b) ) /* palette red component */ |
| 4034 | 4220 | ROM_LOAD( "pr11655.14", 0x0100, 0x0100, CRC(a0c3fa77) SHA1(cdffa1de06d30ec421323145dfc3271803fc25d4) ) /* palette green component */ |
| 4035 | 4221 | ROM_LOAD( "pr11654.8", 0x0200, 0x0100, CRC(ba624305) SHA1(eb1d0dde60f81ff510ac8c1212e0ed5703febaf3) ) /* palette blue component */ |
| 4036 | ROM_LOAD( "pr5317.28", 0x0300, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ | |
| 4222 | ||
| 4223 | ROM_REGION( 0x0100, "proms", 0 ) | |
| 4224 | ROM_LOAD( "pr5317.28", 0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ | |
| 4037 | 4225 | ROM_END |
| 4038 | 4226 | |
| 4039 | ROM_START( ufosensb ) | |
| 4227 | ROM_START( ufosensib ) | |
| 4040 | 4228 | ROM_REGION( 0x40000, "maincpu", 0 ) |
| 4041 | 4229 | ROM_LOAD( "k108.ic18.3-4s", 0x20000, 0x8000, CRC(6b1d0955) SHA1(dbda145d40eaecd30c1d55a9675c58a2967c20c4) ) |
| 4042 | 4230 | ROM_CONTINUE( 0x00000, 0x8000 ) /* Now load the operands in RAM */ |
| r4470 | r4471 | |
| 4048 | 4236 | ROM_REGION( 0x10000, "soundcpu", 0 ) |
| 4049 | 4237 | ROM_LOAD( "epr11667.126", 0x0000, 0x8000, CRC(110baba9) SHA1(e14cf5af11ac9691eca897bbae7c238665cd2a4d) ) /* label on chip is "k111.ic168.10v" */ |
| 4050 | 4238 | |
| 4051 | ROM_REGION( 0x18000, " | |
| 4239 | ROM_REGION( 0x18000, "tiles", 0 | |
| 4052 | 4240 | ROM_LOAD( "epr11664.4", 0x00000, 0x8000, CRC(1b1bc3d5) SHA1(2a09e0dbe2d467c151dce705f249367df849eaeb) ) /* label on chip is "k101.ic72.6d" */ |
| 4053 | 4241 | ROM_LOAD( "epr11665.5", 0x08000, 0x8000, CRC(3659174a) SHA1(176d2436abb45827a8d387241082854f55dc0314) ) /* label on chip is "k102.ic73.6-7d" */ |
| 4054 | 4242 | ROM_LOAD( "epr11666.6", 0x10000, 0x8000, CRC(99dcc793) SHA1(ad1d0acb60e7c1a7016955e142ebca1cf07b4908) ) /* label on chip is "k103.ic74.7d" */ |
| 4055 | 4243 | |
| 4056 | ROM_REGION( 0x20000, " | |
| 4244 | ROM_REGION( 0x20000, " | |
| 4057 | 4245 | ROM_LOAD( "epr11658.87", 0x00000, 0x8000, CRC(3b5a20f7) SHA1(03e0934b0913c3a2cadf1d28b8a700d70b80fbac) ) /* label on chip is "k105.ic15.1-2s" */ |
| 4058 | 4246 | ROM_LOAD( "epr11657.86", 0x08000, 0x8000, CRC(010f81a9) SHA1(1b7ee05c80edfa403e32c216fa69387ca556895e) ) /* label on chip is "k104.ic14.1s" */ |
| 4059 | 4247 | ROM_LOAD( "epr11660.89", 0x10000, 0x8000, CRC(e1e2e7c5) SHA1(434039a70049a6e74e2a2f48b60345f720e6b1af) ) /* label on chip is "k107.ic17.2-3s" */ |
| 4060 | 4248 | ROM_LOAD( "epr11659.88", 0x18000, 0x8000, CRC(286c7286) SHA1(449a19ea9a9f9df47005e8dac1b8eacaebc515e7) ) /* label on chip is "k106.ic16.2s" */ |
| 4061 | 4249 | |
| 4062 | ROM_REGION( 0x0 | |
| 4250 | ROM_REGION( 0x0300, "palette", 0 ) | |
| 4063 | 4251 | ROM_LOAD( "pr11656.20", 0x0000, 0x0100, CRC(640740eb) SHA1(9a601a3665f612d00c70019d33c7abd3cca9434b) ) /* palette red component - label on chip is "74s287.ic134.9f" */ |
| 4064 | 4252 | ROM_LOAD( "pr11655.14", 0x0100, 0x0100, CRC(a0c3fa77) SHA1(cdffa1de06d30ec421323145dfc3271803fc25d4) ) /* palette green component - label on chip is "74s287.ic133.9e" */ |
| 4065 | 4253 | ROM_LOAD( "pr11654.8", 0x0200, 0x0100, CRC(ba624305) SHA1(eb1d0dde60f81ff510ac8c1212e0ed5703febaf3) ) /* palette blue component - label on chip is "74s287.ic132.9d" */ |
| 4066 | ROM_LOAD( "pr5317.28", 0x0300, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) - label on chip is "74s287.ic115.8j" */ | |
| 4067 | 4254 | |
| 4255 | ROM_REGION( 0x0100, "proms", 0 ) | |
| 4256 | ROM_LOAD( "pr5317.28", 0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) - label on chip is "74s287.ic115.8j" */ | |
| 4257 | ||
| 4068 | 4258 | ROM_REGION( 0x2000, "plds", 0 ) |
| 4069 | 4259 | ROM_LOAD( "pal6l8.ic3.1c", 0x0000, 0x0104, NO_DUMP ) /* PAL is read protected */ |
| 4070 | 4260 | ROM_LOAD( "pal6l8.ic32.2c", 0x0200, 0x0104, NO_DUMP ) /* PAL is read protected */ |
| r4470 | r4471 | |
| 4077 | 4267 | ROM_LOAD( "pal20r4.ic69.4c", 0x1000, 0x0144, NO_DUMP ) /* PAL is read protected */ |
| 4078 | 4268 | ROM_END |
| 4079 | 4269 | |
| 4270 | ||
| 4271 | ROM_START( blockgal ) | |
| 4272 | ROM_REGION( 0x10000, "maincpu", 0 ) | |
| 4273 | ROM_LOAD( "bg.116", 0x0000, 0x4000, CRC(a99b231a) SHA1(42ba45a4fd315255e9500bc3a0e8fe653c4c5a9c) ) /* encrypted */ | |
| 4274 | ROM_LOAD( "bg.109", 0x4000, 0x4000, CRC(a6b573d5) SHA1(33547a3895bbe65d5a6c40453eeb93e1fedad6de) ) /* encrypted */ | |
| 4275 | /* 0x8000-0xbfff empty (was same as My Hero) */ | |
| 4276 | ||
| 4277 | ROM_REGION( 0x2000, "key", 0 ) /* MC8123 key */ | |
| 4278 | ROM_LOAD( "317-0029.key", 0x0000, 0x2000, CRC(350d7f93) SHA1(7ef12d63b2c7150f8e74f65ec8340471d72b1c03) ) | |
| 4279 | ||
| 4280 | ROM_REGION( 0x10000, "soundcpu", 0 ) | |
| 4281 | ROM_LOAD( "bg.120", 0x0000, 0x2000, CRC(d848faff) SHA1(5974cc0c3090800ca79f580a620f5b6615f5d039) ) | |
| 4282 | ||
| 4283 | ROM_REGION( 0xc000, "tiles", 0 ) | |
| 4284 | ROM_LOAD( "bg.62", 0x0000, 0x2000, CRC(7e3ea4eb) SHA1(8bf020b083e2da12fe95ddae9ac7a385490525bc) ) | |
| 4285 | ROM_LOAD( "bg.61", 0x2000, 0x2000, CRC(4dd3d39d) SHA1(759fca021f8d59e861dc19543d5a184428a5e472) ) | |
| 4286 | ROM_LOAD( "bg.64", 0x4000, 0x2000, CRC(17368663) SHA1(e8f2ac6de0fddf08aefae07e693cac100cfb0db4) ) | |
| 4287 | ROM_LOAD( "bg.63", 0x6000, 0x2000, CRC(0c8bc404) SHA1(fc96fb682da3af6b7fc852cea6d8a957c4ce57e3) ) | |
| 4288 | ROM_LOAD( "bg.66", 0x8000, 0x2000, CRC(2b7dc4fa) SHA1(79d3677b24682cee0c08088433646800703be531) ) | |
| 4289 | ROM_LOAD( "bg.65", 0xa000, 0x2000, CRC(ed121306) SHA1(89f812b3954922e22fcf8d9cc4ee5ba295279cb6) ) | |
| 4290 | ||
| 4291 | ROM_REGION( 0x10000, "sprites", 0 ) | |
| 4292 | ROM_LOAD( "bg.117", 0x0000, 0x4000, CRC(e99cc920) SHA1(b2b9199a9296e0c34fcf4dd20ffd3e8de08f42da) ) | |
| 4293 | ROM_LOAD( "bg.04", 0x4000, 0x4000, CRC(213057f8) SHA1(a872631aaa2b73e9198f2ad6cede2a889279e610) ) | |
| 4294 | ROM_LOAD( "bg.110", 0x8000, 0x4000, CRC(064c812c) SHA1(673790dc5131fd280333386a0e9915fb94e9f3e1) ) | |
| 4295 | ROM_LOAD( "bg.05", 0xc000, 0x4000, CRC(02e0b040) SHA1(fb626fc31dfe25bf9fac0c8d76d5041609b06e82) ) | |
| 4296 | ||
| 4297 | ROM_REGION( 0x0100, "proms", 0 ) | |
| 4298 | ROM_LOAD( "pr5317.76", 0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ | |
| 4299 | ROM_END | |
| 4300 | ||
| 4301 | ROM_START( blockgalb ) | |
| 4302 | ROM_REGION( 0x18000, "maincpu", 0 ) | |
| 4303 | ROM_LOAD( "ic62", 0x10000, 0x8000, CRC(65c47676) SHA1(bc283761e6f9ebf65fb405b1c8922c3c98c8d00e) ) /* decrypted opcodes */ | |
| 4304 | ROM_CONTINUE( 0x00000, 0x8000 ) /* decrypted data */ | |
| 4305 | ||
| 4306 | ROM_REGION( 0x10000, "soundcpu", 0 ) | |
| 4307 | ROM_LOAD( "bg.120", 0x0000, 0x2000, CRC(d848faff) SHA1(5974cc0c3090800ca79f580a620f5b6615f5d039) ) | |
| 4308 | ||
| 4309 | ROM_REGION( 0xc000, "tiles", 0 ) | |
| 4310 | ROM_LOAD( "bg.62", 0x0000, 0x2000, CRC(7e3ea4eb) SHA1(8bf020b083e2da12fe95ddae9ac7a385490525bc) ) | |
| 4311 | ROM_LOAD( "bg.61", 0x2000, 0x2000, CRC(4dd3d39d) SHA1(759fca021f8d59e861dc19543d5a184428a5e472) ) | |
| 4312 | ROM_LOAD( "bg.64", 0x4000, 0x2000, CRC(17368663) SHA1(e8f2ac6de0fddf08aefae07e693cac100cfb0db4) ) | |
| 4313 | ROM_LOAD( "bg.63", 0x6000, 0x2000, CRC(0c8bc404) SHA1(fc96fb682da3af6b7fc852cea6d8a957c4ce57e3) ) | |
| 4314 | ROM_LOAD( "bg.66", 0x8000, 0x2000, CRC(2b7dc4fa) SHA1(79d3677b24682cee0c08088433646800703be531) ) | |
| 4315 | ROM_LOAD( "bg.65", 0xa000, 0x2000, CRC(ed121306) SHA1(89f812b3954922e22fcf8d9cc4ee5ba295279cb6) ) | |
| 4316 | ||
| 4317 | ROM_REGION( 0x10000, "sprites", 0 ) | |
| 4318 | ROM_LOAD( "bg.117", 0x0000, 0x4000, CRC(e99cc920) SHA1(b2b9199a9296e0c34fcf4dd20ffd3e8de08f42da) ) | |
| 4319 | ROM_LOAD( "bg.04", 0x4000, 0x4000, CRC(213057f8) SHA1(a872631aaa2b73e9198f2ad6cede2a889279e610) ) | |
| 4320 | ROM_LOAD( "bg.110", 0x8000, 0x4000, CRC(064c812c) SHA1(673790dc5131fd280333386a0e9915fb94e9f3e1) ) | |
| 4321 | ROM_LOAD( "bg.05", 0xc000, 0x4000, CRC(02e0b040) SHA1(fb626fc31dfe25bf9fac0c8d76d5041609b06e82) ) | |
| 4322 | ||
| 4323 | ROM_REGION( 0x0100, "proms", 0 ) | |
| 4324 | ROM_LOAD( "pr5317.76", 0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ | |
| 4325 | ROM_END | |
| 4326 | ||
| 4327 | ||
| 4080 | 4328 | /* |
| 4081 | 4329 | |
| 4082 | 4330 | Noboranka |
| r4470 | r4471 | |
| 4156 | 4404 | Z80B clock - 4.00MHz [20/5] |
| 4157 | 4405 | |
| 4158 | 4406 | */ |
| 4159 | ||
| 4160 | 4407 | ROM_START( nob ) |
| 4161 | 4408 | ROM_REGION( 0x20000, "maincpu", 0 ) |
| 4162 | 4409 | ROM_LOAD( "dm08.1f", 0x00000, 0x8000, CRC(98d602d6) SHA1(a0f1e6d243f2e07703bb641434dce46d0ddc15ae) ) |
| r4470 | r4471 | |
| 4169 | 4416 | ROM_REGION( 0x10000, "soundcpu", 0 ) |
| 4170 | 4417 | ROM_LOAD( "dm03.9h", 0x0000, 0x4000, CRC(415adf76) SHA1(fbd6f8921aa3246702983ba81fa9ae53fa10c19d) ) |
| 4171 | 4418 | |
| 4172 | ROM_REGION( 0x18000, " | |
| 4419 | ROM_REGION( 0x18000, "tiles", 0 | |
| 4173 | 4420 | ROM_LOAD( "dm02.13b", 0x08000, 0x8000, CRC(f12df039) SHA1(159de205f77fd74da30717054e6ddda2c0bb63d0) ) |
| 4174 | 4421 | ROM_LOAD( "dm01.12b", 0x00000, 0x8000, CRC(446fbcdd) SHA1(e3c8364eccfa6c8af7a57b599238b0e4ebe8cc59) ) |
| 4175 | 4422 | ROM_LOAD( "dm00.10b", 0x10000, 0x8000, CRC(35f396df) SHA1(ebf0a252513ae2b31ef012ac71d64fb20b8725cc) ) |
| 4176 | 4423 | |
| 4177 | ROM_REGION( 0x20000, " | |
| 4424 | ROM_REGION( 0x20000, " | |
| 4178 | 4425 | ROM_LOAD( "dm04.5f", 0x00000, 0x8000, CRC(2442b86d) SHA1(2eed80e1ff9cd782990142d0d73ca4fa13db4731) ) |
| 4179 | 4426 | ROM_LOAD( "dm06.5k", 0x08000, 0x8000, CRC(e33743a6) SHA1(56dce565523f19e673c9272992030386ca648e41) ) |
| 4180 | 4427 | ROM_LOAD( "dm05.5h", 0x10000, 0x8000, CRC(7fbba01d) SHA1(ded22806ae0d6642b45cd33c0ceab67390a6e319) ) |
| 4181 | 4428 | ROM_LOAD( "dm07.5l", 0x18000, 0x8000, CRC(85e7a29f) SHA1(0ca77c66599650f157450d703682ec114f0453cf) ) |
| 4182 | 4429 | |
| 4183 | ROM_REGION( 0x0 | |
| 4430 | ROM_REGION( 0x0300, "palette", 0 ) | |
| 4184 | 4431 | /* the first 2 proms were missing from the dump, but are clearly needed... */ |
| 4185 | 4432 | ROM_LOAD( "nobo_pr.16d", 0x0000, 0x0100, CRC(95010ac2) SHA1(deaf84b408cd1f3396eb851ef04cc1654d5e9a46) ) /* palette red component */ |
| 4186 | 4433 | ROM_LOAD( "nobo_pr.15d", 0x0100, 0x0100, CRC(c55aac0c) SHA1(0f7f2d383a90e9f7f319626b4d5565805f44a1f9) ) /* palette green component */ |
| 4187 | 4434 | ROM_LOAD( "dm-12.ic3", 0x0200, 0x0100, CRC(de394cee) SHA1(511c53f22459e5e238b48685f85b10f5e15f2ac1) ) /* palette blue component */ |
| 4188 | ROM_LOAD( "dc-11.6a", 0x0300, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ | |
| 4435 | ||
| 4436 | ROM_REGION( 0x0100, "proms", 0 ) | |
| 4437 | ROM_LOAD( "dc-11.6a", 0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ | |
| 4189 | 4438 | ROM_END |
| 4190 | 4439 | |
| 4191 | 4440 | /* the bootleg has different protection.. */ |
| r4470 | r4471 | |
| 4198 | 4447 | ROM_REGION( 0x10000, "soundcpu", 0 ) |
| 4199 | 4448 | ROM_LOAD( "nobo-m.bin", 0x0000, 0x4000, CRC(415adf76) SHA1(fbd6f8921aa3246702983ba81fa9ae53fa10c19d) ) |
| 4200 | 4449 | |
| 4201 | ROM_REGION( 0x18000, " | |
| 4450 | ROM_REGION( 0x18000, "tiles", 0 | |
| 4202 | 4451 | ROM_LOAD( "nobo-j.bin", 0x08000, 0x8000, CRC(f12df039) SHA1(159de205f77fd74da30717054e6ddda2c0bb63d0) ) |
| 4203 | 4452 | ROM_LOAD( "nobo-k.bin", 0x00000, 0x8000, CRC(446fbcdd) SHA1(e3c8364eccfa6c8af7a57b599238b0e4ebe8cc59) ) |
| 4204 | 4453 | ROM_LOAD( "nobo-l.bin", 0x10000, 0x8000, CRC(35f396df) SHA1(ebf0a252513ae2b31ef012ac71d64fb20b8725cc) ) |
| 4205 | 4454 | |
| 4206 | ROM_REGION( 0x20000, " | |
| 4455 | ROM_REGION( 0x20000, " | |
| 4207 | 4456 | ROM_LOAD( "nobo-q.bin", 0x00000, 0x8000, CRC(2442b86d) SHA1(2eed80e1ff9cd782990142d0d73ca4fa13db4731) ) |
| 4208 | 4457 | ROM_LOAD( "nobo-o.bin", 0x08000, 0x8000, CRC(e33743a6) SHA1(56dce565523f19e673c9272992030386ca648e41) ) |
| 4209 | 4458 | ROM_LOAD( "nobo-p.bin", 0x10000, 0x8000, CRC(7fbba01d) SHA1(ded22806ae0d6642b45cd33c0ceab67390a6e319) ) |
| 4210 | 4459 | ROM_LOAD( "nobo-n.bin", 0x18000, 0x8000, CRC(85e7a29f) SHA1(0ca77c66599650f157450d703682ec114f0453cf) ) |
| 4211 | 4460 | |
| 4212 | ROM_REGION( 0x0 | |
| 4461 | ROM_REGION( 0x0300, "palette", 0 ) | |
| 4213 | 4462 | ROM_LOAD( "nobo_pr.16d", 0x0000, 0x0100, CRC(95010ac2) SHA1(deaf84b408cd1f3396eb851ef04cc1654d5e9a46) ) /* palette red component */ |
| 4214 | 4463 | ROM_LOAD( "nobo_pr.15d", 0x0100, 0x0100, CRC(c55aac0c) SHA1(0f7f2d383a90e9f7f319626b4d5565805f44a1f9) ) /* palette green component */ |
| 4215 | 4464 | ROM_LOAD( "nobo_pr.14d", 0x0200, 0x0100, CRC(de394cee) SHA1(511c53f22459e5e238b48685f85b10f5e15f2ac1) ) /* palette blue component */ |
| 4216 | ROM_LOAD( "nobo_pr.13a", 0x0300, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ | |
| 4465 | ||
| 4466 | ROM_REGION( 0x0100, "proms", 0 ) | |
| 4467 | ROM_LOAD( "nobo_pr.13a", 0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ | |
| 4217 | 4468 | ROM_END |
| 4218 | 4469 | |
| 4470 | ||
| 4471 | ||
| 4219 | 4472 | /************************************* |
| 4220 | 4473 | * |
| 4221 | 4474 | * Generic driver initialization |
| 4222 | 4475 | * |
| 4223 | 4476 | *************************************/ |
| 4224 | 4477 | |
| 4225 | static DRIVER_INIT( regulus ) { regulus_decode(machine, "maincpu"); } | |
| 4226 | static DRIVER_INIT( mrviking ) { mrviking_decode(machine, "maincpu"); } | |
| 4227 | static DRIVER_INIT( swat ) { swat_decode(machine, "maincpu"); } | |
| 4228 | static DRIVER_INIT( flicky ) { flicky_decode(machine, "maincpu"); } | |
| 4229 | static DRIVER_INIT( wmatch ) { wmatch_decode(machine, "maincpu"); } | |
| 4230 | static DRIVER_INIT( bullfgtj ) { bullfgtj_decode(machine, "maincpu"); } | |
| 4231 | static DRIVER_INIT( spatter ) { spatter_decode(machine, "maincpu"); } | |
| 4232 | static DRIVER_INIT( pitfall2 ) { pitfall2_decode(machine, "maincpu"); } | |
| 4233 | static DRIVER_INIT( nprinces ) { nprinces_decode(machine, "maincpu"); } | |
| 4234 | static DRIVER_INIT( seganinj ) { seganinj_decode(machine, "maincpu"); } | |
| 4235 | static DRIVER_INIT( imsorry ) { imsorry_decode(machine, "maincpu"); } | |
| 4236 | static DRIVER_INIT( teddybb ) { teddybb_decode(machine, "maincpu"); } | |
| 4237 | static DRIVER_INIT( hvymetal ) { hvymetal_decode(machine, "maincpu"); } | |
| 4238 | static DRIVER_INIT( myheroj ) { myheroj_decode(machine, "maincpu"); } | |
| 4239 | static DRIVER_INIT( 4dwarrio ) { fdwarrio_decode(machine, "maincpu"); } | |
| 4240 | static DRIVER_INIT( wboy ) { astrofl_decode(machine, "maincpu"); } | |
| 4241 | static DRIVER_INIT( wboy2 ) { wboy2_decode(machine, "maincpu"); } | |
| 4242 | static DRIVER_INIT( gardia ) { gardia_decode(machine, "maincpu"); } | |
| 4243 | static DRIVER_INIT( gardiab ) { gardiab_decode(machine, "maincpu"); } | |
| 4478 | static DRIVER_INIT( bank00 ) { i8751_run = NULL; videomode_custom = NULL; } | |
| 4479 | static DRIVER_INIT( bank44 ) { i8751_run = NULL; videomode_custom = bank44_custom_w; } | |
| 4480 | static DRIVER_INIT( bank0c ) { i8751_run = NULL; videomode_custom = bank0c_custom_w; } | |
| 4244 | 4481 | |
| 4482 | static DRIVER_INIT( regulus ) { DRIVER_INIT_CALL(bank00); regulus_decode(machine, "maincpu"); } | |
| 4483 | static DRIVER_INIT( mrviking ) { DRIVER_INIT_CALL(bank00); mrviking_decode(machine, "maincpu"); } | |
| 4484 | static DRIVER_INIT( swat ) { DRIVER_INIT_CALL(bank00); swat_decode(machine, "maincpu"); } | |
| 4485 | static DRIVER_INIT( flicky ) { DRIVER_INIT_CALL(bank00); flicky_decode(machine, "maincpu"); } | |
| 4486 | static DRIVER_INIT( wmatch ) { DRIVER_INIT_CALL(bank00); wmatch_decode(machine, "maincpu"); } | |
| 4487 | static DRIVER_INIT( bullfgtj ) { DRIVER_INIT_CALL(bank00); bullfgtj_decode(machine, "maincpu"); } | |
| 4488 | static DRIVER_INIT( spatter ) { DRIVER_INIT_CALL(bank00); spatter_decode(machine, "maincpu"); } | |
| 4489 | static DRIVER_INIT( pitfall2 ) { DRIVER_INIT_CALL(bank00); pitfall2_decode(machine, "maincpu"); } | |
| 4490 | static DRIVER_INIT( nprinces ) { DRIVER_INIT_CALL(bank00); nprinces_decode(machine, "maincpu"); } | |
| 4491 | static DRIVER_INIT( seganinj ) { DRIVER_INIT_CALL(bank00); seganinj_decode(machine, "maincpu"); } | |
| 4492 | static DRIVER_INIT( imsorry ) { DRIVER_INIT_CALL(bank00); imsorry_decode(machine, "maincpu"); } | |
| 4493 | static DRIVER_INIT( teddybb ) { DRIVER_INIT_CALL(bank00); teddybb_decode(machine, "maincpu"); } | |
| 4494 | static DRIVER_INIT( myheroj ) { DRIVER_INIT_CALL(bank00); myheroj_decode(machine, "maincpu"); } | |
| 4495 | static DRIVER_INIT( 4dwarrio ) { DRIVER_INIT_CALL(bank00); fdwarrio_decode(machine, "maincpu"); } | |
| 4496 | static DRIVER_INIT( wboy ) { DRIVER_INIT_CALL(bank00); astrofl_decode(machine, "maincpu"); } | |
| 4497 | static DRIVER_INIT( wboy2 ) { DRIVER_INIT_CALL(bank00); wboy2_decode(machine, "maincpu"); } | |
| 4498 | static DRIVER_INIT( wboyo ) { DRIVER_INIT_CALL(bank00); hvymetal_decode(machine, "maincpu"); } | |
| 4499 | static DRIVER_INIT( blockgal ) { DRIVER_INIT_CALL(bank00); mc8123_decrypt_rom(machine, "maincpu", "key", 0, 0); } | |
| 4245 | 4500 | |
| 4501 | static DRIVER_INIT( hvymetal ) { DRIVER_INIT_CALL(bank44); hvymetal_decode(machine, "maincpu"); } | |
| 4502 | static DRIVER_INIT( gardia ) { DRIVER_INIT_CALL(bank44); gardia_decode(machine, "maincpu"); } | |
| 4503 | static DRIVER_INIT( gardiab ) { DRIVER_INIT_CALL(bank44); gardiab_decode(machine, "maincpu"); } | |
| 4246 | 4504 | |
| 4247 | static DRIVER_INIT( blockgal ) { mc8123_decrypt_rom(machine, "maincpu", "user1", 0, 0); } | |
| 4248 | static DRIVER_INIT( wbml ) { mc8123_decrypt_rom(machine, "maincpu", "user1", 1, 4); } | |
| 4249 | static DRIVER_INIT( ufosensi ) { mc8123_decrypt_rom(machine, "maincpu", "user1", 1, 4); } | |
| 4505 | static DRIVER_INIT( wbml ) { DRIVER_INIT_CALL(bank0c); mc8123_decrypt_rom(machine, "maincpu", "key", 1, 4); } | |
| 4506 | static DRIVER_INIT( ufosensi ) { DRIVER_INIT_CALL(bank0c); mc8123_decrypt_rom(machine, "maincpu", "key", 1, 4); } | |
| 4507 | static DRIVER_INIT( wboysys2 ) { DRIVER_INIT_CALL(bank0c); astrofl_decode(machine, "maincpu"); } | |
| 4250 | 4508 | |
| 4251 | static UINT8 dakkochn_control; | |
| 4252 | 4509 | |
| 4253 | /* | |
| 4254 | This game doesn't seem to have any mux writes, so I'm assuming that the mux does HW auto-incrementing. | |
| 4255 | I need schematics to understand how it's properly mapped anyway, because it could be for example tied | |
| 4256 | with vblank/video bits. | |
| 4257 | The program flow is: | |
| 4258 | I/O $00 R | |
| 4259 | I/O $15 W 0xe | |
| 4260 | I/O $15 W 0xc | |
| 4261 | I/O $00 R | |
| 4262 | I/O $15 W 0xe | |
| 4263 | (and so on) | |
| 4264 | ||
| 4265 | */ | |
| 4266 | static READ8_HANDLER( dakkochn_port_00_r ) | |
| 4267 | { | |
| 4268 | static UINT8 res; | |
| 4269 | ||
| 4270 | switch(dakkochn_mux_data) | |
| 4271 | { | |
| 4272 | case 0: res = input_port_read(space->machine, "KEY0"); break; | |
| 4273 | case 1: res = input_port_read(space->machine, "KEY1"); break; | |
| 4274 | case 2: res = input_port_read(space->machine, "KEY2"); break; | |
| 4275 | case 3: res = input_port_read(space->machine, "KEY3"); break; | |
| 4276 | case 4: res = input_port_read(space->machine, "KEY4"); break; | |
| 4277 | case 5: res = input_port_read(space->machine, "KEY5"); break; | |
| 4278 | case 6: res = input_port_read(space->machine, "KEY6"); break; | |
| 4279 | } | |
| 4280 | ||
| 4281 | dakkochn_mux_data++; | |
| 4282 | if(dakkochn_mux_data >= 7) | |
| 4283 | dakkochn_mux_data = 0; | |
| 4284 | ||
| 4285 | return res; | |
| 4286 | } | |
| 4287 | ||
| 4288 | static READ8_HANDLER( dakkochn_port_03_r ) | |
| 4289 | { | |
| 4290 | return 0; | |
| 4291 | } | |
| 4292 | ||
| 4293 | static READ8_HANDLER( dakkochn_port_04_r ) | |
| 4294 | { | |
| 4295 | return 0; | |
| 4296 | } | |
| 4297 | ||
| 4298 | static WRITE8_HANDLER( dakkochn_port_15_w ) | |
| 4299 | { | |
| 4300 | dakkochn_control = data; // check if any control multiplex bits are in here! | |
| 4301 | chplft_videomode_w(space,offset,data); | |
| 4302 | } | |
| 4303 | ||
| 4304 | 4510 | static DRIVER_INIT( dakkochn ) |
| 4305 | 4511 | { |
| 4306 | mc8123_decrypt_rom(machine, "maincpu", "user1", 1, 4); | |
| 4512 | DRIVER_INIT_CALL(bank0c); | |
| 4513 | videomode_custom = dakkochn_custom_w; | |
| 4307 | 4514 | |
| 4308 | memory_install_read8_handler(cpu_get_address_space(machine->cpu[0], ADDRESS_SPACE_IO), 0x00, 0x00, 0, 0, dakkochn_port_00_r); | |
| 4309 | memory_install_read8_handler(cpu_get_address_space(machine->cpu[0], ADDRESS_SPACE_IO), 0x03, 0x03, 0, 0, dakkochn_port_03_r); | |
| 4310 | memory_install_read8_handler(cpu_get_address_space(machine->cpu[0], ADDRESS_SPACE_IO), 0x04, 0x04, 0, 0, dakkochn_port_04_r); | |
| 4515 | mc8123_decrypt_rom(machine, "maincpu", "key", 1, 4); | |
| 4311 | 4516 | |
| 4312 | memory_install_write8_handler(cpu_get_address_space(machine->cpu[0], ADDRESS_SPACE_IO), 0x15, 0x15, 0, 0, dakkochn_port_15_w); | |
| 4517 | // memory_install_read8_handler(cpu_get_address_space(machine->cpu[0], ADDRESS_SPACE_IO), 0x00, 0x00, 0, 0, dakkochn_port_00_r); | |
| 4518 | // memory_install_read8_handler(cpu_get_address_space(machine->cpu[0], ADDRESS_SPACE_IO), 0x03, 0x03, 0, 0, dakkochn_port_03_r); | |
| 4519 | // memory_install_read8_handler(cpu_get_address_space(machine->cpu[0], ADDRESS_SPACE_IO), 0x04, 0x04, 0, 0, dakkochn_port_04_r); | |
| 4313 | 4520 | |
| 4521 | // memory_install_write8_handler(cpu_get_address_space(machine->cpu[0], ADDRESS_SPACE_IO), 0x15, 0x15, 0, 0, dakkochn_port_15_w); | |
| 4314 | 4522 | } |
| 4315 | 4523 | |
| 4316 | 4524 | |
| r4470 | r4471 | |
| 4319 | 4527 | int A; |
| 4320 | 4528 | UINT8 *rom; |
| 4321 | 4529 | |
| 4530 | DRIVER_INIT_CALL(bank00); | |
| 4531 | ||
| 4322 | 4532 | /* additionally to the usual protection, all the program ROMs have data lines */ |
| 4323 | 4533 | /* D0 and D1 swapped. */ |
| 4324 | 4534 | rom = memory_region(machine, "maincpu"); |
| r4470 | r4471 | |
| 4326 | 4536 | rom[A] = (rom[A] & 0xfc) | ((rom[A] & 1) << 1) | ((rom[A] & 2) >> 1); |
| 4327 | 4537 | |
| 4328 | 4538 | /* the tile gfx ROMs are mangled as well: */ |
| 4329 | rom = memory_region(machine, " | |
| 4539 | rom = memory_region(machine, "tiles"); | |
| 4330 | 4540 | |
| 4331 | 4541 | /* the first ROM has data lines D0 and D6 swapped. */ |
| 4332 | 4542 | for (A = 0x0000;A < 0x4000;A++) |
| r4470 | r4471 | |
| 4375 | 4585 | // ROM[0x10000 + 0 * 0x8000 + 0x3347] = 0x18; // 'jr' instead of 'jr z' |
| 4376 | 4586 | |
| 4377 | 4587 | /* Patch to get sound in later levels(the program enters into a tight loop)*/ |
| 4588 | const address_space *space = cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_IO); | |
| 4378 | 4589 | UINT8 *ROM2 = memory_region(machine, "soundcpu"); |
| 4379 | 4590 | |
| 4380 | 4591 | ROM2[0x02f9] = 0x28;//'jr z' instead of 'jr' |
| 4592 | ||
| 4593 | DRIVER_INIT_CALL(bank44); | |
| 4594 | ||
| 4595 | memory_install_read8_handler(space, 0x1c, 0x1c, 0x00, 0x00, nobb_inport1c_r); | |
| 4596 | memory_install_read8_handler(space, 0x22, 0x22, 0x00, 0x00, nobb_inport22_r); | |
| 4597 | memory_install_read8_handler(space, 0x23, 0x23, 0x00, 0x00, nobb_inport23_r); | |
| 4598 | memory_install_write8_handler(space, 0x24, 0x24, 0x00, 0x00, nobb_outport24_w); | |
| 4381 | 4599 | } |
| 4382 | 4600 | |
| 4383 | 4601 | |
| r4470 | r4471 | |
| 4385 | 4603 | { |
| 4386 | 4604 | const address_space *space = cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM); |
| 4387 | 4605 | memory_set_decrypted_region(space, 0x0000, 0x7fff, memory_region(machine, "maincpu") + 0x10000); |
| 4606 | DRIVER_INIT_CALL(bank00); | |
| 4388 | 4607 | } |
| 4389 | 4608 | |
| 4390 | 4609 | |
| r4470 | r4471 | |
| 4393 | 4612 | const address_space *space = cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM); |
| 4394 | 4613 | memory_set_decrypted_region(space, 0x0000, 0x7fff, memory_region(machine, "maincpu") + 0x20000); |
| 4395 | 4614 | memory_configure_bank_decrypted(machine, 1, 0, 4, memory_region(machine, "maincpu") + 0x30000, 0x4000); |
| 4615 | DRIVER_INIT_CALL(bank0c); | |
| 4396 | 4616 | } |
| 4397 | 4617 | |
| 4618 | static DRIVER_INIT( choplift ) | |
| 4619 | { | |
| 4620 | DRIVER_INIT_CALL(bank0c); | |
| 4621 | i8751_run = choplift_i8751_run; | |
| 4622 | } | |
| 4623 | ||
| 4624 | static DRIVER_INIT( shtngmst ) | |
| 4625 | { | |
| 4626 | const address_space *space = cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_IO); | |
| 4627 | memory_install_write8_handler(space, 0x10, 0x10, 0x00, 0x00, mcuenable_hack_w); | |
| 4628 | memory_install_read_port_handler(space, 0x12, 0x12, 0x00, 0x00, "TRIGGER"); | |
| 4629 | memory_install_read_port_handler(space, 0x18, 0x18, 0x00, 0x03, "18"); | |
| 4630 | memory_install_read_port_handler(space, 0x1c, 0x1c, 0x00, 0x02, "GUNX"); | |
| 4631 | memory_install_read_port_handler(space, 0x1d, 0x1d, 0x00, 0x02, "GUNY"); | |
| 4632 | DRIVER_INIT_CALL(choplift); | |
| 4633 | } | |
| 4634 | ||
| 4635 | ||
| 4636 | ||
| 4398 | 4637 | /************************************* |
| 4399 | 4638 | * |
| 4400 | 4639 | * Game driver(s) |
| 4401 | 4640 | * |
| 4402 | 4641 | *************************************/ |
| 4403 | 4642 | |
| 4404 | GAME( 1983, starjack, 0, small, starjack, 0, ROT270, "Sega", "Star Jacker (Sega)", GAME_SUPPORTS_SAVE ) | |
| 4405 | GAME( 1983, starjacs, starjack, small, starjacs, 0, ROT270, "Stern", "Star Jacker (Stern)", GAME_SUPPORTS_SAVE ) | |
| 4406 | GAME( 1983, regulus, 0, small, regulus, regulus, ROT270, "Sega", "Regulus (315-5033, Rev A.)", GAME_SUPPORTS_SAVE ) | |
| 4407 | GAME( 1983, reguluso, regulus, small, reguluso, regulus, ROT270, "Sega", "Regulus (315-5033)", GAME_SUPPORTS_SAVE ) | |
| 4408 | GAME( 1983, regulusu, regulus, small, regulus, 0, ROT270, "Sega", "Regulus (not encrypted)", GAME_SUPPORTS_SAVE ) | |
| 4409 | GAME( 1983, upndown, 0, system1, upndown, nprinces, ROT270, "Sega", "Up'n Down (315-5030)", GAME_SUPPORTS_SAVE ) | |
| 4410 | GAME( 1983, upndownu, upndown, system1, upndown, 0, ROT270, "Sega", "Up'n Down (not encrypted)", GAME_SUPPORTS_SAVE ) | |
| 4411 | GAME( 1984, mrviking, 0, small, mrviking, mrviking, ROT270, "Sega", "Mister Viking (315-5041)", GAME_SUPPORTS_SAVE ) | |
| 4412 | GAME( 1984, mrvikngj, mrviking, small, mrvikngj, mrviking, ROT270, "Sega", "Mister Viking (315-5041, Japan)", GAME_SUPPORTS_SAVE ) | |
| 4413 | GAME( 1984, swat, 0, system1, swat, swat, ROT270, "Coreland / Sega", "SWAT (315-5048)", GAME_SUPPORTS_SAVE ) | |
| 4414 | GAME( 1984, flicky, 0, system1, flicky, flicky, ROT0, "Sega", "Flicky (128k Version, System 2, 315-5051)", GAME_SUPPORTS_SAVE ) | |
| 4415 | GAME( 1984, flicks2, flicky, system1, flicky, 0, ROT0, "Sega", "Flicky (128k Version, System 2, not encrypted)", GAME_SUPPORTS_SAVE ) | |
| 4416 | GAME( 1984, flickyo, flicky, system1, flicky, flicky, ROT0, "Sega", "Flicky (64k Version, System 1, 315-5051, set 1)", GAME_SUPPORTS_SAVE ) | |
| 4417 | GAME( 1984, flicks1, flicky, system1, flicky, flicky, ROT0, "Sega", "Flicky (64k Version, System 1, 315-5051, set 2)", GAME_SUPPORTS_SAVE ) | |
| 4418 | GAME( 1984, wmatch, 0, small, wmatch, wmatch, ROT270, "Sega", "Water Match (315-5064)", GAME_SUPPORTS_SAVE ) | |
| 4419 | GAME( 1984, bullfgt, 0, system1, bullfgt, bullfgtj, ROT0, "Coreland / Sega", "Bullfight (315-5065)", GAME_SUPPORTS_SAVE ) | |
| 4420 | GAME( 1984, thetogyu, bullfgt, system1, bullfgt, bullfgtj, ROT0, "Coreland / Sega", "The Togyu (315-5065, Japan)", GAME_SUPPORTS_SAVE ) | |
| 4421 | GAME( 1984, spatter, 0, small, spatter, spatter, ROT0, "Sega", "Spatter", GAME_SUPPORTS_SAVE ) | |
| 4422 | GAME( 1984, ssanchan, spatter, small, spatter, spatter, ROT0, "Sega", "Sanrin San Chan (Japan)", GAME_SUPPORTS_SAVE ) | |
| 4423 | GAME( 1985, pitfall2, 0, pitfall2, pitfall2, pitfall2, ROT0, "Sega", "Pitfall II (315-5093)", GAME_SUPPORTS_SAVE ) | |
| 4424 | GAME( 1985, pitfalla, pitfall2, pitfall2, pitfall2, pitfall2, ROT0, "Sega", "Pitfall II (315-5093, Flicky Conversion)", GAME_SUPPORTS_SAVE ) | |
| 4425 | GAME( 1985, pitfallu, pitfall2, pitfall2, pitfallu, 0, ROT0, "Sega", "Pitfall II (not encrypted)", GAME_SUPPORTS_SAVE ) | |
| 4426 | GAME( 1985, seganinj, 0, system1, seganinj, seganinj, ROT0, "Sega", "Sega Ninja (315-5102)", GAME_SUPPORTS_SAVE ) | |
| 4427 | GAME( 1985, seganinu, seganinj, system1, seganinj, 0, ROT0, "Sega", "Sega Ninja (not encrypted)", GAME_SUPPORTS_SAVE ) | |
| 4428 | GAME( 1985, ninja, seganinj, system1, seganinj, seganinj, ROT0, "Sega", "Ninja (315-5102)", GAME_SUPPORTS_SAVE ) | |
| 4429 | GAME( 1985, nprinces, seganinj, system1, seganinj, flicky, ROT0, "bootleg?", "Ninja Princess (315-5051, 64k Ver. bootleg?)", GAME_SUPPORTS_SAVE ) | |
| 4430 | GAME( 1985, nprincso, seganinj, system1, seganinj, nprinces, ROT0, "Sega", "Ninja Princess (315-5098, 128k Ver.)", GAME_SUPPORTS_SAVE ) | |
| 4431 | GAME( 1985, nprincsu, seganinj, system1, seganinj, 0, ROT0, "Sega", "Ninja Princess (64k Ver. not encrypted)", GAME_SUPPORTS_SAVE ) | |
| 4432 | GAME( 1985, nprincsb, seganinj, system1, seganinj, flicky, ROT0, "bootleg?", "Ninja Princess (315-5051?, 128k Ver. bootleg?)", GAME_SUPPORTS_SAVE ) | |
| 4433 | GAME( 1985, imsorry, 0, system1, imsorry, imsorry, ROT0, "Coreland / Sega", "I'm Sorry (315-5110, US)", GAME_SUPPORTS_SAVE ) | |
| 4434 | GAME( 1985, imsorryj, imsorry, system1, imsorry, imsorry, ROT0, "Coreland / Sega", "Gonbee no I'm Sorry (315-5110, Japan)", GAME_SUPPORTS_SAVE ) | |
| 4435 | GAME( 1985, teddybb, 0, system1, teddybb, teddybb, ROT0, "Sega", "TeddyBoy Blues (315-5115, New Ver.)", GAME_SUPPORTS_SAVE ) | |
| 4436 | GAME( 1985, teddybbo, teddybb, system1, teddybb, teddybb, ROT0, "Sega", "TeddyBoy Blues (315-5115, Old Ver.)", GAME_SUPPORTS_SAVE ) | |
| 4437 | GAME( 1985, myhero, 0, system1, myhero, 0, ROT0, "Sega", "My Hero (US, not encrypted)", GAME_SUPPORTS_SAVE ) | |
| 4438 | GAME( 1985, sscandal, myhero, system1, myhero, myheroj, ROT0, "Coreland / Sega", "Seishun Scandal (315-5132, Japan)", GAME_SUPPORTS_SAVE ) | |
| 4439 | GAME( 1985, myherok, myhero, system1, myhero, myherok, ROT0, "Coreland / Sega", "My Hero (Korea)", GAME_SUPPORTS_SAVE ) | |
| 4440 | GAME( 1985, hvymetal, 0, hvymetal, hvymetal, hvymetal, ROT0, "Sega", "Heavy Metal (315-5135)", GAME_SUPPORTS_SAVE ) | |
| 4441 | GAME( 1985, shtngmst, 0, shtngmst, shtngmst, 0, ROT0, "Sega", "Shooting Master (Rev A, 8751 315-5159a)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE | GAME_NOT_WORKING ) | |
| 4442 | GAME( 1985, shtngms1, shtngmst, shtngmst, shtngmst, 0, ROT0, "Sega", "Shooting Master (8751 315-5159)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE | GAME_NOT_WORKING ) | |
| 4443 | GAME( 1985, shtngmsa, shtngmst, shtngmst, shtngmst, 0, ROT0, "Sega [EVG]", "Shooting Master (EVG, 8751 315-5159)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE | GAME_NOT_WORKING ) | |
| 4444 | GAME( 1985, chplft, 0, chplft, chplft, 0, ROT0, "Sega", "Choplifter (8751 315-5151)", GAME_UNEMULATED_PROTECTION | GAME_SUPPORTS_SAVE | GAME_NOT_WORKING ) | |
| 4445 | GAME( 1985, chplftb, chplft, chplft, chplft, 0, ROT0, "Sega", "Choplifter (unprotected)", GAME_SUPPORTS_SAVE ) | |
| 4446 | GAME( 1985, chplftbl, chplft, chplft, chplft, 0, ROT0, "bootleg", "Choplifter (bootleg)", GAME_SUPPORTS_SAVE ) | |
| 4447 | GAME( 1985, 4dwarrio, 0, system1, 4dwarrio, 4dwarrio, ROT0, "Coreland / Sega", "4-D Warriors (315-5162)", GAME_SUPPORTS_SAVE ) | |
| 4448 | GAME( 1986, brain, 0, brain, brain, 0, ROT0, "Coreland / Sega", "Brain", GAME_SUPPORTS_SAVE ) | |
| 4449 | GAME( 1986, raflesia, 0, system1, raflesia, 4dwarrio, ROT270, "Coreland / Sega", "Rafflesia (315-5162)", GAME_SUPPORTS_SAVE ) | |
| 4450 | GAME( 1986, wboy, 0, system1, wboy, wboy, ROT0, "Sega (Escape license)", "Wonder Boy (set 1, 315-5177)", GAME_SUPPORTS_SAVE ) | |
| 4451 | GAME( 1986, wboyo, wboy, system1, wboy, hvymetal, ROT0, "Sega (Escape license)", "Wonder Boy (set 1, 315-5135)", GAME_SUPPORTS_SAVE ) | |
| 4452 | GAME( 1986, wboy2, wboy, system1, wboy, wboy2, ROT0, "Sega (Escape license)", "Wonder Boy (set 2, 315-5178)", GAME_SUPPORTS_SAVE ) | |
| 4453 | GAME( 1986, wboy2u, wboy, system1, wboy, 0, ROT0, "Sega (Escape license)", "Wonder Boy (set 2, not encrypted)", GAME_SUPPORTS_SAVE ) | |
| 4454 | GAME( 1986, wboy3, wboy, system1, wboy3, hvymetal, ROT0, "Sega (Escape license)", "Wonder Boy (set 3, 315-5135)", GAME_SUPPORTS_SAVE ) | |
| 4455 | GAME( 1986, wboy4, wboy, system1, wboy, 4dwarrio, ROT0, "Sega (Escape license)", "Wonder Boy (315-5162, 4-D Warriors Conversion)", GAME_SUPPORTS_SAVE ) | |
| 4456 | GAME( 1986, wboyu, wboy, system1, wboyu, 0, ROT0, "Sega (Escape license)", "Wonder Boy (not encrypted)", GAME_SUPPORTS_SAVE ) | |
| 4457 | GAME( 1986, wboysys2, wboy, wbml, wboysys2, wboy, ROT0, "Sega (Escape license)", "Wonder Boy (system 2)", GAME_SUPPORTS_SAVE ) | |
| 4458 | GAME( 1986, wbdeluxe, wboy, system1, wbdeluxe, 0, ROT0, "Sega (Escape license)", "Wonder Boy Deluxe", GAME_SUPPORTS_SAVE ) | |
| 4459 | GAME( 1986, gardia, 0, brain, gardia, gardia, ROT270, "Sega / Coreland", "Gardia (317-0006)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE) | |
| 4460 | GAME( 1986, gardiab, gardia, gardiab, gardia, gardiab, ROT270, "bootleg", "Gardia (317-0007?, bootleg)", GAME_IMPERFECT_GRAPHICS | GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE ) | |
| 4461 | GAME( 1986, nob, nobb, nob, nob, 0, ROT270, "Data East Corporation", "Noboranka (Japan)", GAME_NOT_WORKING ) | |
| 4462 | GAME( 1986, nobb, 0, nobb, nob, nobb, ROT270, "bootleg", "Noboranka (Japan, bootleg)", GAME_SUPPORTS_SAVE ) | |
| 4463 | GAME( 1987, blockgal, 0, system1, blockgal, blockgal, ROT90, "Sega / Vic Tokai", "Block Gal (MC-8123B, 317-0029)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE) | |
| 4464 | GAME( 1987, blckgalb, blockgal, blckgalb, blockgal, bootleg, ROT90, "bootleg", "Block Gal (bootleg)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE ) | |
| 4465 | GAME( 1987, tokisens, 0, wbml, tokisens, 0, ROT90, "Sega", "Toki no Senshi - Chrono Soldier", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE ) | |
| 4466 | GAME( 1987, wbml, 0, wbml, wbml, wbml, ROT0, "Sega / Westone", "Wonder Boy in Monster Land (Japan New Ver., MC-8123, 317-0043)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE ) | |
| 4467 | GAME( 1987, wbmljo, wbml, wbml, wbml, wbml, ROT0, "Sega / Westone", "Wonder Boy in Monster Land (Japan Old Ver., MC-8123, 317-0043)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE ) | |
| 4468 | GAME( 1987, wbmljb, wbml, wbml, wbml, bootlegb, ROT0, "bootleg", "Wonder Boy in Monster Land (Japan not encrypted)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE ) | |
| 4469 | GAME( 1987, wbmlb, wbml, wbml, wbml, bootlegb, ROT0, "bootleg", "Wonder Boy in Monster Land (English bootleg)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE) | |
| 4470 | GAME( 1987, wbmlbg, wbml, wbml, wbml, bootlegb, ROT0, "bootleg", "Wonder Boy in Monster Land (Galaxy Electronics English bootleg)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE) | |
| 4471 | GAME( 1987, dakkochn, 0, dakkochn, dakkochn, dakkochn, ROT0, "Whiteboard", "DakkoChan House (MC-8123, 317-0014)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE | GAME_IMPERFECT_GRAPHICS ) | |
| 4472 | GAME( 1988, ufosensi, 0, ufosensi, ufosensi, ufosensi, ROT0, "Sega", "Ufo Senshi Yohko Chan (MC-8123, 317-0064)", GAME_SUPPORTS_SAVE ) | |
| 4473 | GAME( 1988, ufosensb, ufosensi, ufosensi, ufosensi, bootlegb, ROT0, "bootleg", "Ufo Senshi Yohko Chan (not encrypted)", GAME_SUPPORTS_SAVE ) | |
| 4643 | /* PPI-based System 1 */ | |
| 4644 | GAME( 1983, starjack, 0, sys1ppis, starjack, bank00, ROT270, "Sega", "Star Jacker (Sega)", GAME_SUPPORTS_SAVE ) | |
| 4645 | GAME( 1983, starjacks, starjack, sys1ppis, starjacks, bank00, ROT270, "Stern", "Star Jacker (Stern)", GAME_SUPPORTS_SAVE ) | |
| 4646 | GAME( 1983, upndown, 0, sys1ppi, upndown, nprinces, ROT270, "Sega", "Up'n Down (315-5030)", GAME_SUPPORTS_SAVE ) | |
| 4647 | GAME( 1983, upndownu, upndown, sys1ppi, upndown, bank00, ROT270, "Sega", "Up'n Down (not encrypted)", GAME_SUPPORTS_SAVE ) | |
| 4648 | GAME( 1983, regulus, 0, sys1ppis, regulus, regulus, ROT270, "Sega", "Regulus (315-5033, Rev A.)", GAME_SUPPORTS_SAVE ) | |
| 4649 | GAME( 1983, reguluso, regulus, sys1ppis, reguluso, regulus, ROT270, "Sega", "Regulus (315-5033)", GAME_SUPPORTS_SAVE ) | |
| 4650 | GAME( 1983, regulusu, regulus, sys1ppis, regulus, bank00, ROT270, "Sega", "Regulus (not encrypted)", GAME_SUPPORTS_SAVE ) | |
| 4651 | GAME( 1984, mrviking, 0, sys1ppis, mrviking, mrviking, ROT270, "Sega", "Mister Viking (315-5041)", GAME_SUPPORTS_SAVE ) | |
| 4652 | GAME( 1984, mrvikingj, mrviking, sys1ppis, mrvikingj, mrviking, ROT270, "Sega", "Mister Viking (315-5041, Japan)", GAME_SUPPORTS_SAVE ) | |
| 4653 | GAME( 1984, swat, 0, sys1ppi, swat, swat, ROT270, "Coreland / Sega", "SWAT (315-5048)", GAME_SUPPORTS_SAVE ) | |
| 4654 | GAME( 1984, flickyo, flicky, sys1ppi, flicky, flicky, ROT0, "Sega", "Flicky (64k Version, System 1, 315-5051, set 1)", GAME_SUPPORTS_SAVE ) | |
| 4655 | GAME( 1984, flickys1, flicky, sys1ppi, flicky, flicky, ROT0, "Sega", "Flicky (64k Version, System 1, 315-5051, set 2)", GAME_SUPPORTS_SAVE ) | |
| 4656 | GAME( 1984, wmatch, 0, sys1ppis, wmatch, wmatch, ROT270, "Sega", "Water Match (315-5064)", GAME_SUPPORTS_SAVE ) | |
| 4657 | GAME( 1984, bullfgt, 0, sys1ppi, bullfgt, bullfgtj, ROT0, "Coreland / Sega", "Bullfight (315-5065)", GAME_SUPPORTS_SAVE ) | |
| 4658 | GAME( 1985, nprinces, seganinj, sys1ppi, seganinj, flicky, ROT0, "bootleg?", "Ninja Princess (315-5051, 64k Ver. bootleg?)", GAME_SUPPORTS_SAVE ) | |
| 4659 | GAME( 1985, nprincesu, seganinj, sys1ppi, seganinj, bank00, ROT0, "Sega", "Ninja Princess (64k Ver. not encrypted)", GAME_SUPPORTS_SAVE ) | |
| 4660 | GAME( 1986, wboy2, wboy, sys1ppi, wboy, wboy2, ROT0, "Sega (Escape license)", "Wonder Boy (set 2, 315-5178)", GAME_SUPPORTS_SAVE ) | |
| 4661 | GAME( 1986, wboy2u, wboy, sys1ppi, wboy, bank00, ROT0, "Sega (Escape license)", "Wonder Boy (set 2, not encrypted)", GAME_SUPPORTS_SAVE ) | |
| 4662 | GAME( 1986, wbdeluxe, wboy, sys1ppi, wbdeluxe, bank00, ROT0, "Sega (Escape license)", "Wonder Boy Deluxe", GAME_SUPPORTS_SAVE ) | |
| 4663 | GAME( 1986, nob, nobb, nob, nob, bank44, ROT270, "Data East Corporation", "Noboranka (Japan)", GAME_NOT_WORKING ) | |
| 4664 | GAME( 1986, nobb, 0, nob, nob, nobb, ROT270, "bootleg", "Noboranka (Japan, bootleg)", GAME_SUPPORTS_SAVE ) | |
| 4665 | ||
| 4666 | /* PIO-based System 1 */ | |
| 4667 | GAME( 1984, flicky, 0, sys1pio, flicky, flicky, ROT0, "Sega", "Flicky (128k Version, System 2, 315-5051)", GAME_SUPPORTS_SAVE ) | |
| 4668 | GAME( 1984, flickys2, flicky, sys1pio, flicky, bank00, ROT0, "Sega", "Flicky (128k Version, System 2, not encrypted)", GAME_SUPPORTS_SAVE ) | |
| 4669 | GAME( 1984, thetogyu, bullfgt, sys1pio, bullfgt, bullfgtj, ROT0, "Coreland / Sega", "The Togyu (315-5065, Japan)", GAME_SUPPORTS_SAVE ) | |
| 4670 | GAME( 1984, spatter, 0, sys1pios, spatter, spatter, ROT0, "Sega", "Spatter", GAME_SUPPORTS_SAVE ) | |
| 4671 | GAME( 1984, ssanchan, spatter, sys1pios, spatter, spatter, ROT0, "Sega", "Sanrin San Chan (Japan)", GAME_SUPPORTS_SAVE ) | |
| 4672 | GAME( 1985, pitfall2, 0, sys1pio, pitfall2, pitfall2, ROT0, "Sega", "Pitfall II (315-5093)", GAME_SUPPORTS_SAVE ) | |
| 4673 | GAME( 1985, pitfall2a, pitfall2, sys1pio, pitfall2, pitfall2, ROT0, "Sega", "Pitfall II (315-5093, Flicky Conversion)", GAME_SUPPORTS_SAVE ) | |
| 4674 | GAME( 1985, pitfall2u, pitfall2, sys1pio, pitfall2u, bank00, ROT0, "Sega", "Pitfall II (not encrypted)", GAME_SUPPORTS_SAVE ) | |
| 4675 | GAME( 1985, seganinj, 0, sys1pio, seganinj, seganinj, ROT0, "Sega", "Sega Ninja (315-5102)", GAME_SUPPORTS_SAVE ) | |
| 4676 | GAME( 1985, seganinju, seganinj, sys1pio, seganinj, bank00, ROT0, "Sega", "Sega Ninja (not encrypted)", GAME_SUPPORTS_SAVE ) | |
| 4677 | GAME( 1985, ninja, seganinj, sys1pio, seganinj, seganinj, ROT0, "Sega", "Ninja (315-5102)", GAME_SUPPORTS_SAVE ) | |
| 4678 | GAME( 1985, nprinceso, seganinj, sys1pio, seganinj, nprinces, ROT0, "Sega", "Ninja Princess (315-5098, 128k Ver.)", GAME_SUPPORTS_SAVE ) | |
| 4679 | GAME( 1985, nprincesb, seganinj, sys1pio, seganinj, flicky, ROT0, "bootleg?", "Ninja Princess (315-5051?, 128k Ver. bootleg?)", GAME_SUPPORTS_SAVE ) | |
| 4680 | GAME( 1985, imsorry, 0, sys1pio, imsorry, imsorry, ROT0, "Coreland / Sega", "I'm Sorry (315-5110, US)", GAME_SUPPORTS_SAVE ) | |
| 4681 | GAME( 1985, imsorryj, imsorry, sys1pio, imsorry, imsorry, ROT0, "Coreland / Sega", "Gonbee no I'm Sorry (315-5110, Japan)", GAME_SUPPORTS_SAVE ) | |
| 4682 | GAME( 1985, teddybb, 0, sys1pio, teddybb, teddybb, ROT0, "Sega", "TeddyBoy Blues (315-5115, New Ver.)", GAME_SUPPORTS_SAVE ) | |
| 4683 | GAME( 1985, teddybbo, teddybb, sys1pio, teddybb, teddybb, ROT0, "Sega", "TeddyBoy Blues (315-5115, Old Ver.)", GAME_SUPPORTS_SAVE ) | |
| 4684 | GAME( 1985, myhero, 0, sys1pio, myhero, bank00, ROT0, "Sega", "My Hero (US, not encrypted)", GAME_SUPPORTS_SAVE ) | |
| 4685 | GAME( 1985, sscandal, myhero, sys1pio, myhero, myheroj, ROT0, "Coreland / Sega", "Seishun Scandal (315-5132, Japan)", GAME_SUPPORTS_SAVE ) | |
| 4686 | GAME( 1985, myherok, myhero, sys1pio, myhero, myherok, ROT0, "Coreland / Sega", "My Hero (Korea)", GAME_SUPPORTS_SAVE ) | |
| 4687 | GAME( 1985, 4dwarrio, 0, sys1pio, 4dwarrio, 4dwarrio, ROT0, "Coreland / Sega", "4-D Warriors (315-5162)", GAME_SUPPORTS_SAVE ) | |
| 4688 | GAME( 1986, raflesia, 0, sys1pio, raflesia, 4dwarrio, ROT270, "Coreland / Sega", "Rafflesia (315-5162)", GAME_SUPPORTS_SAVE ) | |
| 4689 | GAME( 1986, wboy, 0, sys1pio, wboy, wboy, ROT0, "Sega (Escape license)", "Wonder Boy (set 1, 315-5177)", GAME_SUPPORTS_SAVE ) | |
| 4690 | GAME( 1986, wboyo, wboy, sys1pio, wboy, wboyo, ROT0, "Sega (Escape license)", "Wonder Boy (set 1, 315-5135)", GAME_SUPPORTS_SAVE ) | |
| 4691 | GAME( 1986, wboy3, wboy, sys1pio, wboy3, wboyo, ROT0, "Sega (Escape license)", "Wonder Boy (set 3, 315-5135)", GAME_SUPPORTS_SAVE ) | |
| 4692 | GAME( 1986, wboy4, wboy, sys1pio, wboy, 4dwarrio, ROT0, "Sega (Escape license)", "Wonder Boy (315-5162, 4-D Warriors Conversion)", GAME_SUPPORTS_SAVE ) | |
| 4693 | GAME( 1986, wboyu, wboy, sys1pio, wboyu, bank00, ROT0, "Sega (Escape license)", "Wonder Boy (not encrypted)", GAME_SUPPORTS_SAVE ) | |
| 4694 | GAME( 1987, blockgal, 0, sys1pio, blockgal, blockgal, ROT90, "Sega / Vic Tokai", "Block Gal (MC-8123B, 317-0029)", GAME_SUPPORTS_SAVE) | |
| 4695 | ||
| 4696 | /* PIO-based System 1 with ROM banking */ | |
| 4697 | GAME( 1985, hvymetal, 0, sys1pio, hvymetal, hvymetal, ROT0, "Sega", "Heavy Metal (315-5135)", GAME_SUPPORTS_SAVE ) | |
| 4698 | GAME( 1986, gardia, 0, sys1pio, gardia, gardia, ROT270, "Sega / Coreland", "Gardia (317-0006)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE) | |
| 4699 | GAME( 1986, brain, 0, sys1pio, brain, bank44, ROT0, "Coreland / Sega", "Brain", GAME_SUPPORTS_SAVE ) | |
| 4700 | ||
| 4701 | /* System 2 */ | |
| 4702 | GAME( 1985, choplift, 0, sys2row, choplift, choplift, ROT0, "Sega", "Choplifter (8751 315-5151)", GAME_UNEMULATED_PROTECTION | GAME_SUPPORTS_SAVE | GAME_NOT_WORKING ) | |
| 4703 | GAME( 1985, chopliftu, choplift, sys2row, choplift, bank0c, ROT0, "Sega", "Choplifter (unprotected)", GAME_SUPPORTS_SAVE ) | |
| 4704 | GAME( 1985, chopliftbl, choplift, sys2row, choplift, bank0c, ROT0, "bootleg", "Choplifter (bootleg)", GAME_SUPPORTS_SAVE ) | |
| 4705 | GAME( 1985, shtngmst, 0, sys2s, shtngmst, shtngmst, ROT0, "Sega", "Shooting Master (Rev A, 8751 315-5159a)", GAME_SUPPORTS_SAVE | GAME_NOT_WORKING ) | |
| 4706 | GAME( 1985, shtngmst1, shtngmst, sys2s, shtngmst, shtngmst, ROT0, "Sega", "Shooting Master (8751 315-5159)", GAME_SUPPORTS_SAVE | GAME_NOT_WORKING ) | |
| 4707 | GAME( 1985, shtngmsta, shtngmst, sys2s, shtngmst, shtngmst, ROT0, "Sega [EVG]", "Shooting Master (EVG, 8751 315-5159)", GAME_SUPPORTS_SAVE | GAME_NOT_WORKING ) | |
| 4708 | GAME( 1986, gardiab, gardia, sys2, gardia, gardiab, ROT270, "bootleg", "Gardia (317-0007?, bootleg)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE ) | |
| 4709 | GAME( 1986, wboysys2, wboy, sys2, wboysys2, wboysys2, ROT0, "Sega (Escape license)", "Wonder Boy (system 2)", GAME_SUPPORTS_SAVE ) | |
| 4710 | GAME( 1987, tokisens, 0, sys2, tokisens, bank0c, ROT90, "Sega", "Toki no Senshi - Chrono Soldier", GAME_SUPPORTS_SAVE ) | |
| 4711 | GAME( 1987, wbml, 0, sys2, wbml, wbml, ROT0, "Sega / Westone", "Wonder Boy in Monster Land (Japan New Ver., MC-8123, 317-0043)", GAME_SUPPORTS_SAVE ) | |
| 4712 | GAME( 1987, wbmljo, wbml, sys2, wbml, wbml, ROT0, "Sega / Westone", "Wonder Boy in Monster Land (Japan Old Ver., MC-8123, 317-0043)", GAME_SUPPORTS_SAVE ) | |
| 4713 | GAME( 1987, wbmljb, wbml, sys2, wbml, bootlegb, ROT0, "bootleg", "Wonder Boy in Monster Land (Japan not encrypted)", GAME_SUPPORTS_SAVE ) | |
| 4714 | GAME( 1987, wbmlb, wbml, sys2, wbml, bootlegb, ROT0, "bootleg", "Wonder Boy in Monster Land (English bootleg)", GAME_SUPPORTS_SAVE) | |
| 4715 | GAME( 1987, wbmlbg, wbml, sys2, wbml, bootlegb, ROT0, "bootleg", "Wonder Boy in Monster Land (Galaxy Electronics English bootleg)", GAME_SUPPORTS_SAVE) | |
| 4716 | GAME( 1987, dakkochn, 0, sys2, dakkochn, dakkochn, ROT0, "Whiteboard", "DakkoChan House (MC-8123, 317-0014)", GAME_SUPPORTS_SAVE ) | |
| 4717 | GAME( 1987, blockgalb, blockgal, sys2, blockgal, bootleg, ROT90, "bootleg", "Block Gal (bootleg)", GAME_SUPPORTS_SAVE ) | |
| 4718 | GAME( 1988, ufosensi, 0, sys2rows, ufosensi, ufosensi, ROT0, "Sega", "Ufo Senshi Yohko Chan (MC-8123, 317-0064)", GAME_SUPPORTS_SAVE ) | |
| 4719 | GAME( 1988, ufosensib, ufosensi, sys2rows, ufosensi, bootlegb, ROT0, "bootleg", "Ufo Senshi Yohko Chan (not encrypted)", GAME_SUPPORTS_SAVE ) |
| r4470 | r4471 | |
|---|---|---|
| 130 | 130 | static ADDRESS_MAP_START( writemem_snd, ADDRESS_SPACE_PROGRAM, 8 ) |
| 131 | 131 | AM_RANGE(0x0000, 0xbfff) AM_WRITE(SMH_ROM) |
| 132 | 132 | AM_RANGE(0xc000, 0xdfff) AM_WRITE(SMH_RAM) |
| 133 | // AM_RANGE(0xe000, 0xe000) AM_WRITE(SMH_NOP) // ? written only once ? | |
| 134 | // AM_RANGE(0xe001, 0xe001) AM_WRITE(SMH_NOP) // ? | |
| 133 | // AM_RANGE(0xe000, 0xe000) AM_WRITENOP // ? written only once ? | |
| 134 | // AM_RANGE(0xe001, 0xe001) AM_WRITENOP // ? | |
| 135 | 135 | ADDRESS_MAP_END |
| 136 | 136 | |
| 137 | 137 | static ADDRESS_MAP_START( powerins_io_snd, ADDRESS_SPACE_IO, 8 ) |
| r4470 | r4471 | |
|---|---|---|
| 304 | 304 | |
| 305 | 305 | AM_RANGE(0x200000, 0x200001) AM_WRITE(niyanpai_sound_w) |
| 306 | 306 | |
| 307 | AM_RANGE(0x200200, 0x200201) AM_WRITE(SMH_NOP) // unknown | |
| 308 | AM_RANGE(0x240000, 0x240009) AM_WRITE(SMH_NOP) // unknown | |
| 309 | AM_RANGE(0x240200, 0x2403ff) AM_WRITE(SMH_NOP) // unknown | |
| 307 | AM_RANGE(0x200200, 0x200201) AM_WRITENOP // unknown | |
| 308 | AM_RANGE(0x240000, 0x240009) AM_WRITENOP // unknown | |
| 309 | AM_RANGE(0x240200, 0x2403ff) AM_WRITENOP // unknown | |
| 310 | 310 | |
| 311 | 311 | AM_RANGE(0x240400, 0x24041f) AM_WRITE(niyanpai_blitter_0_w) |
| 312 | 312 | AM_RANGE(0x240420, 0x24043f) AM_WRITE(niyanpai_clut_0_w) |
| r4470 | r4471 | |
| 366 | 366 | AM_RANGE(0x200000, 0x200001) AM_WRITE(niyanpai_sound_w) |
| 367 | 367 | |
| 368 | 368 | AM_RANGE(0x200200, 0x200201) AM_WRITE(musobana_inputport_w) // inputport select |
| 369 | AM_RANGE(0x240000, 0x240009) AM_WRITE(SMH_NOP) // unknown | |
| 370 | AM_RANGE(0x240200, 0x2403ff) AM_WRITE(SMH_NOP) // unknown | |
| 369 | AM_RANGE(0x240000, 0x240009) AM_WRITENOP // unknown | |
| 370 | AM_RANGE(0x240200, 0x2403ff) AM_WRITENOP // unknown | |
| 371 | 371 | |
| 372 | 372 | AM_RANGE(0x240400, 0x24041f) AM_WRITE(niyanpai_blitter_0_w) |
| 373 | 373 | AM_RANGE(0x240420, 0x24043f) AM_WRITE(niyanpai_clut_0_w) |
| r4470 | r4471 | |
| 429 | 429 | AM_RANGE(0x200000, 0x200001) AM_WRITE(niyanpai_sound_w) |
| 430 | 430 | |
| 431 | 431 | AM_RANGE(0x200200, 0x200201) AM_WRITE(musobana_inputport_w) // inputport select |
| 432 | AM_RANGE(0x240000, 0x240009) AM_WRITE(SMH_NOP) // unknown | |
| 433 | AM_RANGE(0x240200, 0x2403ff) AM_WRITE(SMH_NOP) // unknown | |
| 432 | AM_RANGE(0x240000, 0x240009) AM_WRITENOP // unknown | |
| 433 | AM_RANGE(0x240200, 0x2403ff) AM_WRITENOP // unknown | |
| 434 | 434 | |
| 435 | 435 | AM_RANGE(0x240400, 0x24041f) AM_WRITE(niyanpai_blitter_0_w) |
| 436 | 436 | AM_RANGE(0x240420, 0x24043f) AM_WRITE(niyanpai_clut_0_w) |
| r4470 | r4471 | |
|---|---|---|
| 58 | 58 | AM_RANGE(0x0000, 0xbfff) AM_WRITE(SMH_ROM) |
| 59 | 59 | AM_RANGE(0xc800, 0xc800) AM_WRITE(soundlatch_w) |
| 60 | 60 | AM_RANGE(0xc804, 0xc804) AM_WRITE(exedexes_c804_w) /* coin counters + text layer enable */ |
| 61 | AM_RANGE(0xc806, 0xc806) AM_WRITE | |
| 61 | AM_RANGE(0xc806, 0xc806) AM_WRITE | |
| 62 | 62 | AM_RANGE(0xd000, 0xd3ff) AM_WRITE(exedexes_videoram_w) AM_BASE(&videoram) |
| 63 | 63 | AM_RANGE(0xd400, 0xd7ff) AM_WRITE(exedexes_colorram_w) AM_BASE(&colorram) |
| 64 | 64 | AM_RANGE(0xd800, 0xd801) AM_WRITE(SMH_RAM) AM_BASE(&exedexes_nbg_yscroll) |
| r4470 | r4471 | |
|---|---|---|
| 2783 | 2783 | |
| 2784 | 2784 | ROM_START( trophyh ) /* V1.0 is currently the only known version */ |
| 2785 | 2785 | ROM_REGION( 0x200000, "maincpu", 0 ) /* TMP68301 Code */ |
| 2786 | ROM_LOAD16_BYTE( "as1106e01.u06", 0x000000, 0x100000, CRC(b4950882) SHA1(2749f7ffc5b543c9f39815f0913a1d1e385b63f4) ) | |
| 2787 | ROM_LOAD16_BYTE( "as1107e01.u07", 0x000001, 0x100000, CRC(19ee67cb) SHA1(e75ce66d3ff5aad46ba997c09d6514260e617f55) ) | |
| 2786 | ROM_LOAD16_BYTE( "as1106e01.u06", 0x000000, 0x100000, CRC(b4950882) SHA1(2749f7ffc5b543c9f39815f0913a1d1e385b63f4) ) /* checksum D8DA printed on label */ | |
| 2787 | ROM_LOAD16_BYTE( "as1107e01.u07", 0x000001, 0x100000, CRC(19ee67cb) SHA1(e75ce66d3ff5aad46ba997c09d6514260e617f55) ) /* checksum CEEF printed on label */ | |
| 2788 | 2788 | |
| 2789 | 2789 | ROM_REGION( 0x2000000, "gfx1", ROMREGION_DISPOSE ) /* Sprites */ |
| 2790 | 2790 | ROM_LOAD( "as1101m01.u38", 0x0000000, 0x800000, CRC(855ed675) SHA1(84ce229a9feb6331413253a5aed10b362e8102e5) ) |
| r4470 | r4471 | |
|---|---|---|
| 15 | 15 | #include "cpu/hd6309/hd6309.h" |
| 16 | 16 | #include "sound/2151intf.h" |
| 17 | 17 | #include "sound/k007232.h" |
| 18 | #include "konamipt.h" | |
| 18 | 19 | |
| 19 | 20 | /* from video/flkatck.c */ |
| 20 | 21 | VIDEO_START( flkatck ); |
| r4470 | r4471 | |
| 149 | 150 | |
| 150 | 151 | |
| 151 | 152 | static INPUT_PORTS_START( flkatck ) |
| 152 | PORT_START("DSW1") /* DSW #1 */ | |
| 153 | PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) ) | |
| 154 | PORT_DIPSETTING( 0x02, DEF_STR( 4C_1C ) ) | |
| 155 | PORT_DIPSETTING( 0x05, DEF_STR( 3C_1C ) ) | |
| 156 | PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) ) | |
| 157 | PORT_DIPSETTING( 0x04, DEF_STR( 3C_2C ) ) | |
| 158 | PORT_DIPSETTING( 0x01, DEF_STR( 4C_3C ) ) | |
| 159 | PORT_DIPSETTING( 0x0f, DEF_STR( 1C_1C ) ) | |
| 160 | PORT_DIPSETTING( 0x03, DEF_STR( 3C_4C ) ) | |
| 161 | PORT_DIPSETTING( 0x07, DEF_STR( 2C_3C ) ) | |
| 162 | PORT_DIPSETTING( 0x0e, DEF_STR( 1C_2C ) ) | |
| 163 | PORT_DIPSETTING( 0x06, DEF_STR( 2C_5C ) ) | |
| 164 | PORT_DIPSETTING( 0x0d, DEF_STR( 1C_3C ) ) | |
| 165 | PORT_DIPSETTING( 0x0c, DEF_STR( 1C_4C ) ) | |
| 166 | PORT_DIPSETTING( 0x0b, DEF_STR( 1C_5C ) ) | |
| 167 | PORT_DIPSETTING( 0x0a, DEF_STR( 1C_6C ) ) | |
| 168 | PORT_DIPSETTING( 0x09, DEF_STR( 1C_7C ) ) | |
| 169 | PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) | |
| 170 | PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) ) | |
| 171 | PORT_DIPSETTING( 0x20, DEF_STR( 4C_1C ) ) | |
| 172 | PORT_DIPSETTING( 0x50, DEF_STR( 3C_1C ) ) | |
| 173 | PORT_DIPSETTING( 0x80, DEF_STR( 2C_1C ) ) | |
| 174 | PORT_DIPSETTING( 0x40, DEF_STR( 3C_2C ) ) | |
| 175 | PORT_DIPSETTING( 0x10, DEF_STR( 4C_3C ) ) | |
| 176 | PORT_DIPSETTING( 0xf0, DEF_STR( 1C_1C ) ) | |
| 177 | PORT_DIPSETTING( 0x30, DEF_STR( 3C_4C ) ) | |
| 178 | PORT_DIPSETTING( 0x70, DEF_STR( 2C_3C ) ) | |
| 179 | PORT_DIPSETTING( 0xe0, DEF_STR( 1C_2C ) ) | |
| 180 | PORT_DIPSETTING( 0x60, DEF_STR( 2C_5C ) ) | |
| 181 | PORT_DIPSETTING( 0xd0, DEF_STR( 1C_3C ) ) | |
| 182 | PORT_DIPSETTING( 0xc0, DEF_STR( 1C_4C ) ) | |
| 183 | PORT_DIPSETTING( 0xb0, DEF_STR( 1C_5C ) ) | |
| 184 | PORT_DIPSETTING( 0xa0, DEF_STR( 1C_6C ) ) | |
| 185 | PORT_DIPSETTING( 0x90, DEF_STR( 1C_7C ) ) | |
| 186 | //PORT_DIPSETTING( 0x00, "Invalid" ) | |
| 153 | PORT_START("DSW1") | |
| 154 | KONAMI_COINAGE(DEF_STR( Free_Play ), "Invalid") | |
| 155 | /* "Invalid" = both coin slots disabled */ | |
| 187 | 156 | |
| 188 | PORT_START("DSW2") | |
| 157 | PORT_START("DSW2") | |
| 189 | 158 | PORT_DIPNAME( 0x03, 0x01, DEF_STR( Lives ) ) |
| 190 | 159 | PORT_DIPSETTING( 0x03, "1" ) |
| 191 | 160 | PORT_DIPSETTING( 0x02, "2" ) |
| r4470 | r4471 | |
| 208 | 177 | PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) |
| 209 | 178 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 210 | 179 | |
| 211 | PORT_START("DSW3") | |
| 180 | PORT_START("DSW3") | |
| 212 | 181 | PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) ) |
| 213 | 182 | PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) |
| 214 | 183 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| r4470 | r4471 | |
| 221 | 190 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 222 | 191 | PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 223 | 192 | |
| 224 | PORT_START("COIN") /* COINSW & START */ | |
| 225 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) | |
| 226 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) | |
| 227 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN3 ) /* service */ | |
| 228 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) | |
| 229 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 ) | |
| 230 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED ) | |
| 231 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) | |
| 232 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) | |
| 193 | PORT_START("COIN") | |
| 194 | KONAMI8_SYSTEM_UNK | |
| 233 | 195 | |
| 234 | PORT_START("P1") /* PLAYER 1 INPUTS */ | |
| 235 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) | |
| 236 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) | |
| 237 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) | |
| 238 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) | |
| 239 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) | |
| 240 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) | |
| 241 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) | |
| 242 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) | |
| 196 | PORT_START("P1") | |
| 197 | KONAMI8_B12_UNK(1) | |
| 243 | 198 | |
| 244 | PORT_START("P2") /* PLAYER 2 INPUTS */ | |
| 245 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) | |
| 246 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) | |
| 247 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) | |
| 248 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) | |
| 249 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) | |
| 250 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) | |
| 251 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) | |
| 252 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) | |
| 199 | PORT_START("P2") | |
| 200 | KONAMI8_B12_UNK(2) | |
| 253 | 201 | INPUT_PORTS_END |
| 254 | 202 | |
| 255 | 203 | static const gfx_layout gfxlayout = |
| r4470 | r4471 | |
| 358 | 306 | |
| 359 | 307 | GAME( 1987, mx5000, 0, flkatck, flkatck, 0, ROT90, "Konami", "MX5000", 0 ) |
| 360 | 308 | GAME( 1987, flkatck, mx5000, flkatck, flkatck, 0, ROT90, "Konami", "Flak Attack (Japan)", 0 ) |
| 361 |
| r4470 | r4471 | |
|---|---|---|
| 19 | 19 | #include "driver.h" |
| 20 | 20 | #include "cpu/m6809/m6809.h" |
| 21 | 21 | #include "sound/2151intf.h" |
| 22 | #include "konamipt.h" | |
| 22 | 23 | |
| 23 | 24 | extern UINT8 *contra_fg_vram,*contra_fg_cram; |
| 24 | 25 | extern UINT8 *contra_bg_vram,*contra_bg_cram; |
| r4470 | r4471 | |
| 88 | 89 | AM_RANGE(0x0018, 0x0018) AM_WRITE(contra_coin_counter_w) |
| 89 | 90 | AM_RANGE(0x001a, 0x001a) AM_WRITE(contra_sh_irqtrigger_w) |
| 90 | 91 | AM_RANGE(0x001c, 0x001c) AM_WRITE(cpu_sound_command_w) |
| 91 | AM_RANGE(0x001e, 0x001e) AM_WRITE | |
| 92 | AM_RANGE(0x001e, 0x001e) AM_WRITE | |
| 92 | 93 | AM_RANGE(0x0060, 0x0067) AM_WRITE(contra_K007121_ctrl_1_w) |
| 93 | 94 | AM_RANGE(0x0c00, 0x0cff) AM_WRITE(SMH_RAM) AM_BASE(&paletteram) |
| 94 | 95 | AM_RANGE(0x1000, 0x1fff) AM_WRITE(SMH_RAM) |
| r4470 | r4471 | |
| 115 | 116 | |
| 116 | 117 | static ADDRESS_MAP_START( writemem_sound, ADDRESS_SPACE_PROGRAM, 8 ) |
| 117 | 118 | AM_RANGE(0x2000, 0x2001) AM_DEVWRITE("ym", ym2151_w) |
| 118 | AM_RANGE(0x4000, 0x4000) AM_WRITE | |
| 119 | AM_RANGE(0x4000, 0x4000) AM_WRITE | |
| 119 | 120 | AM_RANGE(0x6000, 0x67ff) AM_WRITE(SMH_RAM) |
| 120 | 121 | AM_RANGE(0x8000, 0xffff) AM_WRITE(SMH_ROM) |
| 121 | 122 | ADDRESS_MAP_END |
| r4470 | r4471 | |
| 124 | 125 | |
| 125 | 126 | static INPUT_PORTS_START( contra ) |
| 126 | 127 | PORT_START("SYSTEM") |
| 127 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) | |
| 128 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) | |
| 129 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 ) | |
| 130 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) | |
| 131 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 ) | |
| 132 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 133 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 134 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 128 | KONAMI8_SYSTEM_UNK | |
| 135 | 129 | |
| 136 | 130 | PORT_START("P1") |
| 137 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY | |
| 138 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY | |
| 139 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY | |
| 140 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY | |
| 141 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) | |
| 142 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) | |
| 143 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 144 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 131 | KONAMI8_B12_UNK(1) | |
| 145 | 132 | |
| 146 | 133 | PORT_START("P2") |
| 147 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) | |
| 148 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) | |
| 149 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) | |
| 150 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) | |
| 151 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) | |
| 152 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) | |
| 153 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 154 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 134 | KONAMI8_B12_UNK(2) | |
| 155 | 135 | |
| 156 | 136 | PORT_START("DSW1") |
| 157 | PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW1:1,2,3,4") | |
| 158 | PORT_DIPSETTING( 0x02, DEF_STR( 4C_1C ) ) | |
| 159 | PORT_DIPSETTING( 0x05, DEF_STR( 3C_1C ) ) | |
| 160 | PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) ) | |
| 161 | PORT_DIPSETTING( 0x04, DEF_STR( 3C_2C ) ) | |
| 162 | PORT_DIPSETTING( 0x01, DEF_STR( 4C_3C ) ) | |
| 163 | PORT_DIPSETTING( 0x0f, DEF_STR( 1C_1C ) ) | |
| 164 | PORT_DIPSETTING( 0x03, DEF_STR( 3C_4C ) ) | |
| 165 | PORT_DIPSETTING( 0x07, DEF_STR( 2C_3C ) ) | |
| 166 | PORT_DIPSETTING( 0x0e, DEF_STR( 1C_2C ) ) | |
| 167 | PORT_DIPSETTING( 0x06, DEF_STR( 2C_5C ) ) | |
| 168 | PORT_DIPSETTING( 0x0d, DEF_STR( 1C_3C ) ) | |
| 169 | PORT_DIPSETTING( 0x0c, DEF_STR( 1C_4C ) ) | |
| 170 | PORT_DIPSETTING( 0x0b, DEF_STR( 1C_5C ) ) | |
| 171 | PORT_DIPSETTING( 0x0a, DEF_STR( 1C_6C ) ) | |
| 172 | PORT_DIPSETTING( 0x09, DEF_STR( 1C_7C ) ) | |
| 173 | PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) | |
| 174 | PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW1:5,6,7,8") | |
| 175 | PORT_DIPSETTING( 0x20, DEF_STR( 4C_1C ) ) | |
| 176 | PORT_DIPSETTING( 0x50, DEF_STR( 3C_1C ) ) | |
| 177 | PORT_DIPSETTING( 0x80, DEF_STR( 2C_1C ) ) | |
| 178 | PORT_DIPSETTING( 0x40, DEF_STR( 3C_2C ) ) | |
| 179 | PORT_DIPSETTING( 0x10, DEF_STR( 4C_3C ) ) | |
| 180 | PORT_DIPSETTING( 0xf0, DEF_STR( 1C_1C ) ) | |
| 181 | PORT_DIPSETTING( 0x30, DEF_STR( 3C_4C ) ) | |
| 182 | PORT_DIPSETTING( 0x70, DEF_STR( 2C_3C ) ) | |
| 183 | PORT_DIPSETTING( 0xe0, DEF_STR( 1C_2C ) ) | |
| 184 | PORT_DIPSETTING( 0x60, DEF_STR( 2C_5C ) ) | |
| 185 | PORT_DIPSETTING( 0xd0, DEF_STR( 1C_3C ) ) | |
| 186 | PORT_DIPSETTING( 0xc0, DEF_STR( 1C_4C ) ) | |
| 187 | PORT_DIPSETTING( 0xb0, DEF_STR( 1C_5C ) ) | |
| 188 | PORT_DIPSETTING( 0xa0, DEF_STR( 1C_6C ) ) | |
| 189 | PORT_DIPSETTING( 0x90, DEF_STR( 1C_7C ) )//marvins.c | |
| 190 | /* 0x00 is invalid */ | |
| 137 | KONAMI_COINAGE_LOC(DEF_STR( Free_Play ), "No Coin B", SW1) | |
| 138 | /* "No Coin B" = coins produce sound, but no effect on coin counter */ | |
| 191 | 139 | |
| 192 | 140 | PORT_START("DSW2") |
| 193 | 141 | PORT_DIPNAME( 0x03, 0x02, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW2:1,2") |
| r4470 | r4471 | |
|---|---|---|
| 1201 | 1201 | AM_RANGE(0xe000, 0xe003) AM_DEVREADWRITE("ym", ym2610_r, ym2610_w) |
| 1202 | 1202 | AM_RANGE(0xe200, 0xe200) AM_READWRITE(SMH_NOP, taitosound_slave_port_w) |
| 1203 | 1203 | AM_RANGE(0xe201, 0xe201) AM_READWRITE(taitosound_slave_comm_r, taitosound_slave_comm_w) |
| 1204 | AM_RANGE(0xe400, 0xe403) AM_WRITE | |
| 1204 | AM_RANGE(0xe400, 0xe403) AM_WRITE | |
| 1205 | 1205 | AM_RANGE(0xee00, 0xee00) AM_NOP /* ? */ |
| 1206 | AM_RANGE(0xf000, 0xf000) AM_WRITE | |
| 1206 | AM_RANGE(0xf000, 0xf000) AM_WRITE | |
| 1207 | 1207 | AM_RANGE(0xf200, 0xf200) AM_WRITE(fx1a_sound_bankswitch_w) |
| 1208 | 1208 | ADDRESS_MAP_END |
| 1209 | 1209 |
| r4470 | r4471 | |
|---|---|---|
| 79 | 79 | AM_RANGE(0x600000, 0x600001) AM_WRITE(volfied_video_mask_w) |
| 80 | 80 | AM_RANGE(0x700000, 0x700001) AM_WRITE(volfied_sprite_ctrl_w) |
| 81 | 81 | AM_RANGE(0xd00000, 0xd00001) AM_READWRITE(volfied_video_ctrl_r, volfied_video_ctrl_w) |
| 82 | AM_RANGE(0xe00000, 0xe00001) AM_WRITE(taitosound_port16_lsb_w) | |
| 83 | AM_RANGE(0xe00002, 0xe00003) AM_READWRITE(taitosound_comm16_lsb_r, taitosound_comm16_lsb_w) | |
| 82 | AM_RANGE(0xe00000, 0xe00001) AM_WRITE8(taitosound_port_w, 0x00ff) | |
| 83 | AM_RANGE(0xe00002, 0xe00003) AM_READWRITE8(taitosound_comm_r, taitosound_comm_w, 0x00ff) | |
| 84 | 84 | AM_RANGE(0xf00000, 0xf007ff) AM_READWRITE(volfied_cchip_ram_r, volfied_cchip_ram_w) |
| 85 | 85 | AM_RANGE(0xf00802, 0xf00803) AM_READWRITE(volfied_cchip_ctrl_r, volfied_cchip_ctrl_w) |
| 86 | 86 | AM_RANGE(0xf00c00, 0xf00c01) AM_WRITE(volfied_cchip_bank_w) |
| r4470 | r4471 | |
| 92 | 92 | AM_RANGE(0x8800, 0x8800) AM_WRITE(taitosound_slave_port_w) |
| 93 | 93 | AM_RANGE(0x8801, 0x8801) AM_READWRITE(taitosound_slave_comm_r, taitosound_slave_comm_w) |
| 94 | 94 | AM_RANGE(0x9000, 0x9001) AM_DEVREADWRITE("ym", ym2203_r, ym2203_w) |
| 95 | AM_RANGE(0x9800, 0x9800) AM_WRITE | |
| 95 | AM_RANGE(0x9800, 0x9800) AM_WRITE | |
| 96 | 96 | ADDRESS_MAP_END |
| 97 | 97 | |
| 98 | 98 |
| r4470 | r4471 | |
|---|---|---|
| 64 | 64 | |
| 65 | 65 | Later versions of games (Golden Tee Golf, Shuffle Shot & World Class |
| 66 | 66 | Bowling) converged to a single platform, the large single PCB |
| 67 | (P/N 108 | |
| 67 | (P/N 1083 Rev 2). With the correct jumpers setting (surface mounted) | |
| 68 | 68 | and chipset this board can run any of the 3 listed programs. |
| 69 | 69 | |
| 70 | 70 | Starting with GT Fore!, I.T. moved to a redesigned hardware platform known as the Eagle platform. |
| r4470 | r4471 | |
| 2179 | 2179 | ROM_LOAD16_BYTE( "hotmem.srom0", 0x000000, 0x80000, CRC(c1103224) SHA1(52cf341ff9092ecb8cb94f66a96ee0c726bf1412) ) |
| 2180 | 2180 | ROM_END |
| 2181 | 2181 | |
| 2182 | ROM_START( wcbowldx ) /* Deluxe version 2.00 (PCB P/N 108 | |
| 2182 | ROM_START( wcbowldx ) /* Deluxe version 2.00 (PCB P/N 1083 Rev 2), This version is derived from the Tournament version, but tournament features have be removed/disabled */ | |
| 2183 | 2183 | ROM_REGION32_BE( CODE_SIZE, "user1", 0 ) |
| 2184 | 2184 | ROM_LOAD32_BYTE( "wcbdprm0.200", 0x00000, 0x20000, CRC(280df7f0) SHA1(dacffe8fc21263093b0f4a4fbf444abd49afbff1) ) |
| 2185 | 2185 | ROM_LOAD32_BYTE( "wcbdprm1.200", 0x00001, 0x20000, CRC(526eded0) SHA1(106d5503ed4db2411e1f3446d613eac525a8a9cc) ) |
| r4470 | r4471 | |
| 2215 | 2215 | ROM_END |
| 2216 | 2216 | |
| 2217 | 2217 | |
| 2218 | ROM_START( wcbwl140 ) /* Version 1.40 Tournament (PCB P/N 108 | |
| 2218 | ROM_START( wcbwl140 ) /* Version 1.40 Tournament (PCB P/N 1083 Rev 2) */ | |
| 2219 | 2219 | ROM_REGION32_BE( CODE_SIZE, "user1", 0 ) |
| 2220 | 2220 | ROM_LOAD32_BYTE( "wcbfprm0.140", 0x00000, 0x20000, CRC(9d31ceb1) SHA1(d147976a763ba1e18d861351b12c5d275b94a562) ) /* Labeled "WCBF PROM0 1.40" ect */ |
| 2221 | 2221 | ROM_LOAD32_BYTE( "wcbfprm1.140", 0x00001, 0x20000, CRC(c6669452) SHA1(ba58da7bee5120682e2306454da287c969014899) ) |
| r4470 | r4471 | |
| 2251 | 2251 | ROM_END |
| 2252 | 2252 | |
| 2253 | 2253 | |
| 2254 | ROM_START( wcbowl ) /* Version 1.66 (PCB P/N 108 | |
| 2254 | ROM_START( wcbowl ) /* Version 1.66 (PCB P/N 1083 Rev 2) */ | |
| 2255 | 2255 | ROM_REGION32_BE( CODE_SIZE, "user1", 0 ) |
| 2256 | 2256 | ROM_LOAD32_BYTE( "wcb_prm0.166", 0x00000, 0x20000, CRC(f6774112) SHA1(cb09bb3e40490b3cdc3a5f7d18168384b5b29d85) ) |
| 2257 | 2257 | ROM_LOAD32_BYTE( "wcb_prm1.166", 0x00001, 0x20000, CRC(931821ae) SHA1(328cd78ba70fe3cb0bdbc53833fe6fb153aceaea) ) |
| r4470 | r4471 | |
| 2283 | 2283 | ROM_END |
| 2284 | 2284 | |
| 2285 | 2285 | |
| 2286 | ROM_START( wcbwl165 ) /* Version 1.65 (PCB P/N 108 | |
| 2286 | ROM_START( wcbwl165 ) /* Version 1.65 (PCB P/N 1083 Rev 2) */ | |
| 2287 | 2287 | ROM_REGION32_BE( CODE_SIZE, "user1", 0 ) |
| 2288 | 2288 | ROM_LOAD32_BYTE( "wcb_prm0.165", 0x00000, 0x20000, CRC(cf0f6c25) SHA1(90685288994dce73d5b1070a55fca3f1713c5bb6) ) |
| 2289 | 2289 | ROM_LOAD32_BYTE( "wcb_prm1.165", 0x00001, 0x20000, CRC(076ab158) SHA1(e6d8a6726e27ba6916d4711dff88f26f1dc162e1) ) |
| r4470 | r4471 | |
| 2315 | 2315 | ROM_END |
| 2316 | 2316 | |
| 2317 | 2317 | |
| 2318 | ROM_START( wcbwl161 ) /* Version 1.61 (PCB P/N 108 | |
| 2318 | ROM_START( wcbwl161 ) /* Version 1.61 (PCB P/N 1083 Rev 2) */ | |
| 2319 | 2319 | ROM_REGION32_BE( CODE_SIZE, "user1", 0 ) |
| 2320 | 2320 | ROM_LOAD32_BYTE( "wcb_prm0.161", 0x00000, 0x20000, CRC(b879d4a7) SHA1(8b5af3f4d3522bdb8e1d6092b2e311fbfaec2bd0) ) |
| 2321 | 2321 | ROM_LOAD32_BYTE( "wcb_prm1.161", 0x00001, 0x20000, CRC(49f3ed6a) SHA1(6c6857bd3fbfe0cfeaf0e512bbbd795376a21472) ) |
| r4470 | r4471 | |
| 2347 | 2347 | ROM_END |
| 2348 | 2348 | |
| 2349 | 2349 | |
| 2350 | ROM_START( wcbwl16 ) /* Version 1.6 (PCB P/N 108 | |
| 2350 | ROM_START( wcbwl16 ) /* Version 1.6 (PCB P/N 1083 Rev 2), This is the first set to move to the single board platform */ | |
| 2351 | 2351 | ROM_REGION32_BE( CODE_SIZE, "user1", 0 ) |
| 2352 | 2352 | ROM_LOAD32_BYTE( "wcb_prm0.16n", 0x00000, 0x20000, CRC(332c558f) SHA1(179b763e2189c11cf6751eb6c419fe4417b288a8) ) /* Program roms labeled as "WCB PROM0 V1.6N" ect */ |
| 2353 | 2353 | ROM_LOAD32_BYTE( "wcb_prm1.16n", 0x00001, 0x20000, CRC(c5750857) SHA1(8121b56d304ab405b06d4aa4c7d2db2f912f0bf2) ) |
| r4470 | r4471 | |
| 2659 | 2659 | ROM_END |
| 2660 | 2660 | |
| 2661 | 2661 | |
| 2662 | ROM_START( shufshot ) /* Version 1.40 (PCB P/N 108 | |
| 2662 | ROM_START( shufshot ) /* Version 1.40 (PCB P/N 1083 Rev 2) */ | |
| 2663 | 2663 | ROM_REGION32_BE( CODE_SIZE, "user1", 0 ) |
| 2664 | 2664 | ROM_LOAD32_BYTE( "shotprm0.140", 0x00000, 0x20000, CRC(33c0c98b) SHA1(9960a1e8131e5dde33450560665f315e5a97dc05) ) |
| 2665 | 2665 | ROM_LOAD32_BYTE( "shotprm1.140", 0x00001, 0x20000, CRC(d30a8831) SHA1(3a7937b542f703dfc2ae74b6fdb2ac6a8e22bdbd) ) |
| r4470 | r4471 | |
| 2694 | 2694 | ROM_END |
| 2695 | 2695 | |
| 2696 | 2696 | |
| 2697 | ROM_START( sshot139 ) /* Version 1.39 (PCB P/N 108 | |
| 2697 | ROM_START( sshot139 ) /* Version 1.39 (PCB P/N 1083 Rev 2) */ | |
| 2698 | 2698 | ROM_REGION32_BE( CODE_SIZE, "user1", 0 ) |
| 2699 | 2699 | ROM_LOAD32_BYTE( "shotprm0.139", 0x00000, 0x20000, CRC(e811fc4a) SHA1(9e1d8f64ac89ac865929f6a23f66d95eeeda3ac9) ) |
| 2700 | 2700 | ROM_LOAD32_BYTE( "shotprm1.139", 0x00001, 0x20000, CRC(f9d120c5) SHA1(f94216f1fb6d810ddee98479e83f0719b30b768f) ) |
| r4470 | r4471 | |
| 2729 | 2729 | ROM_END |
| 2730 | 2730 | |
| 2731 | 2731 | |
| 2732 | ROM_START( sshot137 ) /* Version 1.37 (PCB P/N 108 | |
| 2732 | ROM_START( sshot137 ) /* Version 1.37 (PCB P/N 1083 Rev 2) */ | |
| 2733 | 2733 | ROM_REGION32_BE( CODE_SIZE, "user1", 0 ) |
| 2734 | 2734 | ROM_LOAD32_BYTE( "shotprm0.137", 0x00000, 0x20000, CRC(6499c76f) SHA1(60fdaefb09088ac609addd40569bd7fab12593bc) ) |
| 2735 | 2735 | ROM_LOAD32_BYTE( "shotprm1.137", 0x00001, 0x20000, CRC(64fb47a4) SHA1(32ce9d91b16b8aaf545c0a22842ad8d806727a17) ) |
| r4470 | r4471 | |
| 2764 | 2764 | ROM_END |
| 2765 | 2765 | |
| 2766 | 2766 | |
| 2767 | ROM_START( gt3d ) /* Version 1.93N for the single large type PCB P/N 108 | |
| 2767 | ROM_START( gt3d ) /* Version 1.93N for the single large type PCB P/N 1083 Rev 2 */ | |
| 2768 | 2768 | ROM_REGION32_BE( CODE_SIZE, "user1", 0 ) |
| 2769 | 2769 | ROM_LOAD32_BYTE( "gtg3prm0.93n", 0x00000, 0x80000, CRC(cacacb44) SHA1(747f48a52e140ab3e321b8f6a96f06bc70dc7cfa) ) |
| 2770 | 2770 | ROM_LOAD32_BYTE( "gtg3prm1.93n", 0x00001, 0x80000, CRC(4c172d7f) SHA1(d4217d5d4d561e46e0213e6f8dc8d9a874f86877) ) |
| r4470 | r4471 | |
| 3091 | 3091 | ROM_END |
| 3092 | 3092 | |
| 3093 | 3093 | |
| 3094 | ROM_START( gt3dt231 ) /* Version 2.31 Tournament Edition (PCB P/N 108 | |
| 3094 | ROM_START( gt3dt231 ) /* Version 2.31 Tournament Edition (PCB P/N 1083 Rev 2) */ | |
| 3095 | 3095 | ROM_REGION32_BE( CODE_SIZE, "user1", 0 ) |
| 3096 | 3096 | ROM_LOAD32_BYTE( "gtg3prm0.231", 0x00000, 0x100000, CRC(92a5c3e9) SHA1(a20c9ffb9b08eff1d59b77d08e6411275c58d932) ) |
| 3097 | 3097 | ROM_LOAD32_BYTE( "gtg3prm1.231", 0x00001, 0x100000, CRC(a3b60226) SHA1(2b78fb2917ad66883d2353d82f48b5aeb599d444) ) |
| r4470 | r4471 | |
| 3122 | 3122 | ROM_END |
| 3123 | 3123 | |
| 3124 | 3124 | |
| 3125 | ROM_START( gt3dt211 ) /* Version 2.11 Tournament Edition (PCB P/N 108 | |
| 3125 | ROM_START( gt3dt211 ) /* Version 2.11 Tournament Edition (PCB P/N 1083 Rev 2) */ | |
| 3126 | 3126 | ROM_REGION32_BE( CODE_SIZE, "user1", 0 ) |
| 3127 | 3127 | ROM_LOAD32_BYTE( "gtg3prm0.211", 0x00000, 0x100000, CRC(54360fdf) SHA1(05687f7f41f719458ee72b4517c7be3e33ee80cf) ) |
| 3128 | 3128 | ROM_LOAD32_BYTE( "gtg3prm1.211", 0x00001, 0x100000, CRC(9142ebb7) SHA1(ae3c9bf1a954c2f790cdb7953a6fea3d1d277aa9) ) |
| r4470 | r4471 | |
| 3308 | 3308 | ROM_END |
| 3309 | 3309 | |
| 3310 | 3310 | |
| 3311 | ROM_START( gt97t243 ) /* Version 2.43 Tournament Edition (PCB P/N 108 | |
| 3311 | ROM_START( gt97t243 ) /* Version 2.43 Tournament Edition (PCB P/N 1083 Rev 2) */ | |
| 3312 | 3312 | ROM_REGION32_BE( CODE_SIZE, "user1", 0 ) |
| 3313 | 3313 | ROM_LOAD32_BYTE( "gt97prm0.243", 0x00000, 0x100000, CRC(b8de60f1) SHA1(06b1f8b9d0b878d5a19e6756957e2df19e013ad6) ) |
| 3314 | 3314 | ROM_LOAD32_BYTE( "gt97prm1.243", 0x00001, 0x100000, CRC(8152e5d3) SHA1(2a4f8acc6a4e33864c97d5974e2230b1cf3632ea) ) |
| r4470 | r4471 | |
| 3339 | 3339 | ROM_END |
| 3340 | 3340 | |
| 3341 | 3341 | |
| 3342 | ROM_START( gt97t240 ) /* Version 2.40 Tournament Edition (PCB P/N 108 | |
| 3342 | ROM_START( gt97t240 ) /* Version 2.40 Tournament Edition (PCB P/N 1083 Rev 2) */ | |
| 3343 | 3343 | ROM_REGION32_BE( CODE_SIZE, "user1", 0 ) |
| 3344 | 3344 | ROM_LOAD32_BYTE( "gt97prm0.240", 0x00000, 0x100000, CRC(88a386d0) SHA1(003dbf784125b1a442f85e18f8161695dcacc3a8) ) |
| 3345 | 3345 | ROM_LOAD32_BYTE( "gt97prm1.240", 0x00001, 0x100000, CRC(b0d751aa) SHA1(7e6ab9c2bb0bd4f50360655c59f48c44f6135f4f) ) |
| r4470 | r4471 | |
| 3463 | 3463 | ROM_END |
| 3464 | 3464 | |
| 3465 | 3465 | |
| 3466 | ROM_START( gt98t303 ) /* Version 3.03 Tournament Edition (PCB P/N 108 | |
| 3466 | ROM_START( gt98t303 ) /* Version 3.03 Tournament Edition (PCB P/N 1083 Rev 2) */ | |
| 3467 | 3467 | ROM_REGION32_BE( CODE_SIZE, "user1", 0 ) |
| 3468 | 3468 | ROM_LOAD32_BYTE( "gt98prm0.303", 0x00000, 0x100000, CRC(e3879c30) SHA1(fa9dd2df8969a98a3c87c6a96594e1f49ca7ec91) ) |
| 3469 | 3469 | ROM_LOAD32_BYTE( "gt98prm1.303", 0x00001, 0x100000, CRC(6a42ab1e) SHA1(9d8c5a48f0b91dcc8898913eec3d09ddded0f43d) ) |
| r4470 | r4471 | |
| 3562 | 3562 | ROM_END |
| 3563 | 3563 | |
| 3564 | 3564 | |
| 3565 | ROM_START( gt99t400 ) /* Version 4.00 Tournament Edition (PCB P/N 108 | |
| 3565 | ROM_START( gt99t400 ) /* Version 4.00 Tournament Edition (PCB P/N 1083 Rev 2) */ | |
| 3566 | 3566 | ROM_REGION32_BE( CODE_SIZE, "user1", 0 ) |
| 3567 | 3567 | ROM_LOAD32_BYTE( "gt99prm0.400", 0x00000, 0x100000, CRC(bc58e0a2) SHA1(9e207acb860d532238f6105fd5b0d283056e016f) ) |
| 3568 | 3568 | ROM_LOAD32_BYTE( "gt99prm1.400", 0x00001, 0x100000, CRC(89d8cc6b) SHA1(ff2a5452c1c3a14c22abe380cb1ce263c23cc071) ) |
| r4470 | r4471 | |
| 3596 | 3596 | ROM_END |
| 3597 | 3597 | |
| 3598 | 3598 | |
| 3599 | ROM_START( gtroyal ) /* Version 4.02T EDM (Tournament Edition, PCB P/N 108 | |
| 3599 | ROM_START( gtroyal ) /* Version 4.02T EDM (Tournament Edition, PCB P/N 1083 Rev 2) */ | |
| 3600 | 3600 | ROM_REGION32_BE( CODE_SIZE, "user1", 0 ) |
| 3601 | 3601 | ROM_LOAD32_BYTE( "gtr_prm0.402", 0x00000, 0x100000, CRC(ae499ea3) SHA1(0de651900fd92b2de3fcbc092c1292d546f12819) ) |
| 3602 | 3602 | ROM_LOAD32_BYTE( "gtr_prm1.402", 0x00001, 0x100000, CRC(87ee04b5) SHA1(2c4c4a80073bfd28066bef371fbd1008149cc56c) ) |
| r4470 | r4471 | |
| 3698 | 3698 | ROM_END |
| 3699 | 3699 | |
| 3700 | 3700 | |
| 3701 | ROM_START( gt2kt500 ) /* Version 5.00 Tournament Edition (PCB P/N 108 | |
| 3701 | ROM_START( gt2kt500 ) /* Version 5.00 Tournament Edition (PCB P/N 1083 Rev 2) */ | |
| 3702 | 3702 | ROM_REGION32_BE( CODE_SIZE, "user1", 0 ) |
| 3703 | 3703 | ROM_LOAD32_BYTE( "gt2kprm0.500", 0x00000, 0x100000, CRC(8f20f9eb) SHA1(e7b19c34fff39040b8849483146303d4eb394da6) ) |
| 3704 | 3704 | ROM_LOAD32_BYTE( "gt2kprm1.500", 0x00001, 0x100000, CRC(bdecc1f5) SHA1(f97edb54cffdba68d46dfb86d884192ffaa0d204) ) |
| r4470 | r4471 | |
| 3732 | 3732 | ROM_END |
| 3733 | 3733 | |
| 3734 | 3734 | |
| 3735 | ROM_START( gtsuprem ) /* Version 5.10T ELC S (Tournament Edition, PCB P/N 108 | |
| 3735 | ROM_START( gtsuprem ) /* Version 5.10T ELC S (Tournament Edition, PCB P/N 1083 Rev 2) */ | |
| 3736 | 3736 | ROM_REGION32_BE( CODE_SIZE, "user1", 0 ) |
| 3737 | 3737 | ROM_LOAD32_BYTE( "gts_prm0.510", 0x00000, 0x100000, CRC(a14f7e2b) SHA1(fa913452701e580a9242994020a42e0be7d41a60) ) /* chips labeled as "GTG SUP ELC PROM0 5.10T" ect */ |
| 3738 | 3738 | ROM_LOAD32_BYTE( "gts_prm1.510", 0x00001, 0x100000, CRC(772f4dc9) SHA1(c44c1893f28386b6457bffd0a85b361c1033a805) ) |
| r4470 | r4471 | |
| 3972 | 3972 | /* |
| 3973 | 3973 | The newest versions of World Class Bowling are on the same exact |
| 3974 | 3974 | platform as Shuffle Shot. So We'll use the same general INIT |
| 3975 | routine for these two programs. IE: PCB P/N 108 | |
| 3975 | routine for these two programs. IE: PCB P/N 1083 Rev 2 | |
| 3976 | 3976 | */ |
| 3977 | 3977 | init_program_rom(machine); |
| 3978 | 3978 | itech32_vram_height = 1024; |
| r4470 | r4471 | |
| 4155 | 4155 | ^^ ^ ^^^ |
| 4156 | 4156 | Game | Version |
| 4157 | 4157 | | |
| 4158 | v = Version (AAMA 676266+ PCB P/N 108 | |
| 4158 | v = Version (AAMA 676266+ PCB P/N 1083 Rev 2) | |
| 4159 | 4159 | l = Long ROM board: |
| 4160 | 4160 | Main P/N 1064 Rev 1 |
| 4161 | 4161 | ROM P/N 1080 Rev 5 |
| r4470 | r4471 | |
| 4164 | 4164 | Main P/N 1064 Rev 1 |
| 4165 | 4165 | ROM P/N 1069 Rev 2 or P/N 1088 Rev 0 (1 Trackball Connector) |
| 4166 | 4166 | Sound P/N 1078 Rev 1 or P/N 1066 Rev 2 |
| 4167 | n = Non-tournament (AAMA 676266+) PCB P/N 1082 Rev 2 - Applies only for GT3D | |
| 4168 | t = Tournament PCB P/N 1082 Rev 2, with necessary chips on board: | |
| 4167 | n = Non-tournament (AAMA 676266+) PCB P/N 1083 Rev 2 - Applies only for GT3D | |
| 4168 | t = Tournament PCB P/N 1083 Rev 2, with necessary chips on board: | |
| 4169 | 4169 | Philips SCN68681 (DUART) & ST Timekeeper (M48T02-120PC1) with an additional 3.6864MHz OSC |
| 4170 | 4170 | |
| 4171 | 4171 | NOTE: Due to various different upgrade packages from IT, the 3 tier boards can end up with any combination |
| r4470 | r4471 | |
| 4181 | 4181 | GT Diamond Edition Tournament is a Euro GT Classic (Not currently dumped) |
| 4182 | 4182 | This would be the only known tournament version of Classic |
| 4183 | 4183 | |
| 4184 | NOTE: There is an "8 Meg board" version of the P/N 108 | |
| 4184 | NOTE: There is an "8 Meg board" version of the P/N 1083 Rev 2 PCB, so GROM0_0 through GROM0_3 are 8 meg roms and labeled "GTxx GROM0_0 **" ect | |
| 4185 | 4185 | while GROM1_0 through GROM1_3 are 4 meg roms matching "4 Meg board" GROM2_0 through GROM2_3 and are labeled "GTxx GROM1_0 *" ect |
| 4186 | 4186 | It is possible to find these rom combinations on any given GT board set. There is only 1 known GT set which specificly checks for 8 meg |
| 4187 | 4187 | roms under the GROM Checksum test. |
| r4470 | r4471 | |
|---|---|---|
| 94 | 94 | AM_RANGE(0xe900, 0xefff) AM_WRITE(SMH_RAM) |
| 95 | 95 | AM_RANGE(0xf000, 0xf000) AM_WRITE(mexico86_bankswitch_w) /* program and gfx ROM banks */ |
| 96 | 96 | AM_RANGE(0xf008, 0xf008) AM_WRITE(mexico86_f008_w) /* cpu reset lines + other unknown stuff */ |
| 97 | AM_RANGE(0xf018, 0xf018) AM_WRITE | |
| 97 | AM_RANGE(0xf018, 0xf018) AM_WRITE | |
| 98 | 98 | AM_RANGE(0xf800, 0xffff) AM_WRITE(SMH_RAM) /* communication ram */ |
| 99 | 99 | ADDRESS_MAP_END |
| 100 | 100 | |
| r4470 | r4471 | |
| 127 | 127 | AM_RANGE(0x0001, 0x0001) AM_WRITE(mexico86_68705_portB_w) |
| 128 | 128 | AM_RANGE(0x0004, 0x0004) AM_WRITE(mexico86_68705_ddrA_w) |
| 129 | 129 | AM_RANGE(0x0005, 0x0005) AM_WRITE(mexico86_68705_ddrB_w) |
| 130 | AM_RANGE(0x000a, 0x000a) AM_WRITE | |
| 130 | AM_RANGE(0x000a, 0x000a) AM_WRITE | |
| 131 | 131 | /* 0x0a (=10dec) instead of 0x10 */ |
| 132 | 132 | AM_RANGE(0x0010, 0x007f) AM_WRITE(SMH_RAM) |
| 133 | 133 | AM_RANGE(0x0080, 0x07ff) AM_WRITE(SMH_ROM) |
| r4470 | r4471 | |
|---|---|---|
| 277 | 277 | }; |
| 278 | 278 | |
| 279 | 279 | |
| 280 | // #define PRIORITY_EASINESS_TO_PLAY | |
| 281 | ||
| 280 | 282 | /* I've put the inputs the same way they can be read in the "test mode" */ |
| 281 | 283 | |
| 282 | 284 | static INPUT_PORTS_START( fitfight ) |
| r4470 | r4471 | |
| 313 | 315 | PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN ) // "Fault" (= "Tilt" ?) |
| 314 | 316 | PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN ) |
| 315 | 317 | /* MSB : SW2 -> 0xe04c26.b (cpl) */ |
| 316 | PORT_DIPNAME( 0xf800, 0xf800, "Time" ) | |
| 318 | PORT_DIPNAME( 0xf800, 0xf800, "Time" ) PORT_DIPLOCATION("SW2:5,4,3,2,1") | |
| 317 | 319 | PORT_DIPSETTING( 0xf000, "02" ) |
| 318 | 320 | PORT_DIPSETTING( 0xe800, "05" ) |
| 319 | 321 | PORT_DIPSETTING( 0xe000, "08" ) |
| r4470 | r4471 | |
| 346 | 348 | PORT_DIPSETTING( 0x0800, "89" ) |
| 347 | 349 | PORT_DIPSETTING( 0x0000, "92" ) |
| 348 | 350 | PORT_DIPSETTING( 0xf800, "99" ) |
| 349 | PORT_DIPNAME( 0x0700, 0x0700, "First Credit" ) | |
| 351 | PORT_DIPNAME( 0x0700, 0x0700, "First Credit" ) PORT_DIPLOCATION("SW2:8,7,6") | |
| 350 | 352 | PORT_DIPSETTING( 0x0000, DEF_STR( 8C_1C ) ) |
| 351 | 353 | PORT_DIPSETTING( 0x0100, DEF_STR( 7C_1C ) ) |
| 352 | 354 | PORT_DIPSETTING( 0x0200, DEF_STR( 6C_1C ) ) |
| r4470 | r4471 | |
| 358 | 360 | |
| 359 | 361 | PORT_START("DSW3_DSW1") // 0x500000.w |
| 360 | 362 | /* MSB : SW3 -> 0xe04c24.b (cpl) */ |
| 361 | PORT_DIPNAME( 0xe000, 0xe000, "Next Credit" ) | |
| 363 | PORT_DIPNAME( 0xe000, 0xe000, "Next Credit" ) PORT_DIPLOCATION("SW3:3,2,1") | |
| 362 | 364 | PORT_DIPSETTING( 0x0000, DEF_STR( 4C_1C ) ) |
| 363 | 365 | PORT_DIPSETTING( 0x4000, DEF_STR( 2C_1C ) ) |
| 364 | 366 | PORT_DIPSETTING( 0x2000, DEF_STR( 3C_2C ) ) |
| r4470 | r4471 | |
| 367 | 369 | PORT_DIPSETTING( 0xa000, DEF_STR( 1C_3C ) ) |
| 368 | 370 | PORT_DIPSETTING( 0x8000, DEF_STR( 1C_4C ) ) |
| 369 | 371 | PORT_DIPSETTING( 0x6000, DEF_STR( 1C_6C ) ) |
| 370 | PORT_DIPNAME( 0x1c00, 0x1000, DEF_STR( Difficulty ) ) | |
| 372 | PORT_DIPNAME( 0x1c00, 0x1000, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW3:6,5,4") | |
| 371 | 373 | PORT_DIPSETTING( 0x1c00, DEF_STR( Easiest ) ) |
| 372 | 374 | PORT_DIPSETTING( 0x1800, DEF_STR( Easier ) ) |
| 373 | 375 | PORT_DIPSETTING( 0x1400, DEF_STR( Easy ) ) |
| r4470 | r4471 | |
| 376 | 378 | PORT_DIPSETTING( 0x0800, DEF_STR( Hard ) ) |
| 377 | 379 | PORT_DIPSETTING( 0x0400, DEF_STR( Hard ) ) |
| 378 | 380 | PORT_DIPSETTING( 0x0000, DEF_STR( Hardest ) ) |
| 379 | PORT_DIPNAME( 0x0200, 0x0000, DEF_STR( Free_Play ) ) | |
| 381 | PORT_DIPNAME( 0x0200, 0x0000, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("SW3:7") | |
| 380 | 382 | PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) |
| 381 | 383 | PORT_DIPSETTING( 0x0200, DEF_STR( On ) ) |
| 382 | 384 | PORT_SERVICE( 0x0100, IP_ACTIVE_LOW ) |
| 383 | 385 | /* LSB : SW1 -> 0xe04c25.b (cpl) */ |
| 384 | PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Demo_Sounds ) ) // To be confirmed | |
| 386 | PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW1:1") // To be confirmed | |
| 385 | 387 | PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) |
| 386 | 388 | PORT_DIPSETTING( 0x0080, DEF_STR( On ) ) |
| 387 | PORT_DIPNAME( 0x0070, 0x0060, "Needed Points/Maximum Rounds" ) // see notes | |
| 388 | // PORT_DIPSETTING( 0x0070, "Endless" ) | |
| 389 | PORT_DIPNAME( 0x0070, 0x0060, "Needed Points/Maximum Rounds" ) PORT_DIPLOCATION("SW1:4,3,2") // see notes | |
| 390 | PORT_DIPSETTING( 0x0070, "Endless" ) | |
| 389 | 391 | PORT_DIPSETTING( 0x0060, "1/2" ) |
| 390 | 392 | PORT_DIPSETTING( 0x0050, "2/3" ) |
| 391 | 393 | PORT_DIPSETTING( 0x0040, "2/4" ) |
| r4470 | r4471 | |
| 393 | 395 | PORT_DIPSETTING( 0x0020, "3/6" ) |
| 394 | 396 | PORT_DIPSETTING( 0x0010, "4/7" ) |
| 395 | 397 | PORT_DIPSETTING( 0x0000, "4/8" ) |
| 396 | PORT_DIPNAME( 0x0008, 0x0000, "Select All Players" ) // in a 1 player game | |
| 398 | PORT_DIPNAME( 0x0008, 0x0000, "Select All Players" ) PORT_DIPLOCATION("SW1:5") // in a 1 player game | |
| 397 | 399 | PORT_DIPSETTING( 0x0008, DEF_STR( No ) ) // only Ryo and Robert available |
| 398 | 400 | PORT_DIPSETTING( 0x0000, DEF_STR( Yes ) ) |
| 399 | PORT_DIPNAME( 0x0004, 0x0004, DEF_STR( Unused ) ) | |
| 400 | PORT_DIPSETTING( 0x0004, DEF_STR( Off ) ) | |
| 401 | PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) | |
| 402 | PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Unused ) ) // must be Off during P.O.S.T. ! | |
| 403 | PORT_DIPSETTING( 0x0002, DEF_STR( Off ) ) | |
| 404 | PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) | |
| 405 | PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Unused ) ) | |
| 406 | PORT_DIPSETTING( 0x0001, DEF_STR( Off ) ) | |
| 407 | PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) | |
| 401 | PORT_DIPUNKNOWN_DIPLOC( 0x0004, 0x0004, "SW1:6" ) | |
| 402 | PORT_DIPUNKNOWN_DIPLOC( 0x0002, 0x0002, "SW1:7" ) // must be Off during P.O.S.T. ! | |
| 403 | PORT_DIPUNKNOWN_DIPLOC( 0x0001, 0x0001, "SW1:8" ) | |
| 408 | 404 | INPUT_PORTS_END |
| 409 | 405 | |
| 410 | 406 | static INPUT_PORTS_START( histryma ) |
| r4470 | r4471 | |
| 451 | 447 | PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN ) // "Fault" (= "Tilt" ?) |
| 452 | 448 | PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN ) // "Test" (duplicated) |
| 453 | 449 | /* MSB : SW2 -> 0xe05874.b (cpl) */ |
| 454 | PORT_DIPNAME( 0xf800, 0x0000, "Time" ) | |
| 455 | // PORT_DIPSETTING( 0xf800, "15" ) // duplicated setting | |
| 456 | // PORT_DIPSETTING( 0xf000, "15" ) // duplicated setting | |
| 457 | // PORT_DIPSETTING( 0xe800, "15" ) // duplicated setting | |
| 450 | PORT_DIPNAME( 0xf800, 0x0000, "Time" ) PORT_DIPLOCATION("SW2:5,4,3,2,1") | |
| 451 | #ifndef PRIORITY_EASINESS_TO_PLAY | |
| 452 | PORT_DIPSETTING( 0xf800, "15" ) // duplicated setting | |
| 453 | PORT_DIPSETTING( 0xf000, "15" ) // duplicated setting | |
| 454 | PORT_DIPSETTING( 0xe800, "15" ) // duplicated setting | |
| 455 | #endif | |
| 458 | 456 | PORT_DIPSETTING( 0xe000, "15" ) |
| 459 | 457 | PORT_DIPSETTING( 0xd800, "18" ) |
| 460 | 458 | PORT_DIPSETTING( 0xd000, "21" ) |
| r4470 | r4471 | |
| 484 | 482 | PORT_DIPSETTING( 0x1000, "93" ) |
| 485 | 483 | PORT_DIPSETTING( 0x0800, "96" ) |
| 486 | 484 | PORT_DIPSETTING( 0x0000, "99" ) |
| 487 | PORT_DIPNAME( 0x0700, 0x0700, DEF_STR( Coin_A ) ) | |
| 485 | PORT_DIPNAME( 0x0700, 0x0700, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW2:8,7,6") | |
| 488 | 486 | PORT_DIPSETTING( 0x0200, DEF_STR( 6C_1C ) ) |
| 489 | 487 | PORT_DIPSETTING( 0x0300, DEF_STR( 5C_1C ) ) |
| 490 | 488 | PORT_DIPSETTING( 0x0400, DEF_STR( 4C_1C ) ) |
| r4470 | r4471 | |
| 496 | 494 | |
| 497 | 495 | PORT_START("DSW3_DSW1") // 0x500000.w |
| 498 | 496 | /* MSB : SW3 -> 0xe05872.b (cpl) */ |
| 499 | PORT_DIPNAME( 0xe000, 0xe000, DEF_STR( Coin_B ) ) | |
| 497 | PORT_DIPNAME( 0xe000, 0xe000, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW3:3,2,1") | |
| 500 | 498 | PORT_DIPSETTING( 0xe000, DEF_STR( 1C_1C ) ) |
| 501 | 499 | PORT_DIPSETTING( 0x0000, DEF_STR( 3C_4C ) ) |
| 502 | 500 | PORT_DIPSETTING( 0x2000, DEF_STR( 2C_3C ) ) |
| r4470 | r4471 | |
| 505 | 503 | PORT_DIPSETTING( 0x8000, DEF_STR( 1C_4C ) ) |
| 506 | 504 | PORT_DIPSETTING( 0x6000, DEF_STR( 1C_5C ) ) |
| 507 | 505 | PORT_DIPSETTING( 0x4000, DEF_STR( 1C_6C ) ) |
| 508 | PORT_DIPNAME( 0x1c00, 0x1000, DEF_STR( Difficulty ) ) | |
| 506 | PORT_DIPNAME( 0x1c00, 0x1000, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW3:6,5,4") | |
| 509 | 507 | PORT_DIPSETTING( 0x1c00, DEF_STR( Easiest ) ) |
| 510 | 508 | PORT_DIPSETTING( 0x1800, DEF_STR( Easier ) ) |
| 511 | 509 | PORT_DIPSETTING( 0x1400, DEF_STR( Easy ) ) |
| 512 | 510 | PORT_DIPSETTING( 0x1000, DEF_STR( Normal ) ) |
| 513 | 511 | PORT_DIPSETTING( 0x0c00, DEF_STR( Medium ) ) |
| 514 | 512 | PORT_DIPSETTING( 0x0800, DEF_STR( Hard ) ) |
| 515 | PORT_DIPSETTING( 0x0400, DEF_STR( Hard ) ) | |
| 513 | PORT_DIPSETTING( 0x0400, DEF_STR( Harder ) ) | |
| 516 | 514 | PORT_DIPSETTING( 0x0000, DEF_STR( Hardest ) ) |
| 517 | PORT_DIPNAME( 0x0200, 0x0000, DEF_STR( Free_Play ) ) | |
| 515 | PORT_DIPNAME( 0x0200, 0x0000, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("SW3:7") | |
| 518 | 516 | PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) |
| 519 | 517 | PORT_DIPSETTING( 0x0200, DEF_STR( On ) ) |
| 520 | PORT_SERVICE( 0x0100, IP_ACTIVE_LOW ) | |
| 518 | PORT_SERVICE_DIPLOC( 0x0100, IP_ACTIVE_LOW, "SW3:8" ) | |
| 521 | 519 | /* LSB : SW1 -> 0xe05873.b (cpl) */ |
| 522 | PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Demo_Sounds ) ) // To be confirmed | |
| 520 | PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW1:1") // To be confirmed | |
| 523 | 521 | PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) |
| 524 | 522 | PORT_DIPSETTING( 0x0080, DEF_STR( On ) ) |
| 525 | PORT_DIPNAME( 0x0070, 0x0060, "Needed Points/Maximum Points" ) // see notes | |
| 526 | // PORT_DIPSETTING( 0x0070, "Endless" ) // ends on a draw | |
| 523 | PORT_DIPNAME( 0x0070, 0x0060, "Needed Points/Maximum Points" ) PORT_DIPLOCATION("SW1:4,3,2") // see notes | |
| 524 | PORT_DIPSETTING( 0x0070, "Endless" ) // ends on a draw | |
| 527 | 525 | PORT_DIPSETTING( 0x0060, "1/2" ) |
| 528 | 526 | PORT_DIPSETTING( 0x0050, "2/3" ) |
| 529 | 527 | PORT_DIPSETTING( 0x0040, "2/4" ) |
| r4470 | r4471 | |
| 531 | 529 | PORT_DIPSETTING( 0x0020, "3/6" ) |
| 532 | 530 | PORT_DIPSETTING( 0x0010, "4/7" ) |
| 533 | 531 | PORT_DIPSETTING( 0x0000, "4/8" ) |
| 534 | PORT_DIPNAME( 0x0008, 0x0000, "Buttons" ) | |
| 532 | PORT_DIPNAME( 0x0008, 0x0000, "Buttons" ) PORT_DIPLOCATION("SW1:5") // 3 or 6 buttons as default ? | |
| 535 | 533 | PORT_DIPSETTING( 0x0008, "3" ) |
| 536 | 534 | PORT_DIPSETTING( 0x0000, "6" ) |
| 537 | PORT_DIPNAME( 0x0004, 0x0004, DEF_STR( Unused ) ) | |
| 538 | PORT_DIPSETTING( 0x0004, DEF_STR( Off ) ) | |
| 539 | PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) | |
| 540 | PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Unused ) ) // must be Off during P.O.S.T. ! | |
| 541 | PORT_DIPSETTING( 0x0002, DEF_STR( Off ) ) | |
| 542 | PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) | |
| 543 | PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Unused ) ) | |
| 544 | PORT_DIPSETTING( 0x0001, DEF_STR( Off ) ) | |
| 545 | PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) | |
| 535 | PORT_DIPUNKNOWN_DIPLOC( 0x0004, 0x0004, "SW1:6" ) | |
| 536 | PORT_DIPUNKNOWN_DIPLOC( 0x0002, 0x0002, "SW1:7" ) // must be Off during P.O.S.T. ! | |
| 537 | PORT_DIPUNKNOWN_DIPLOC( 0x0001, 0x0001, "SW1:8" ) | |
| 546 | 538 | INPUT_PORTS_END |
| 547 | 539 | |
| 548 | 540 | /* Check inputs again when video emulation is better */ |
| r4470 | r4471 | |
| 593 | 585 | PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN ) // "Fault" (= "Tilt" ?) |
| 594 | 586 | PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN ) // "Test" (duplicated) |
| 595 | 587 | /* MSB : SW2 -> 0xe07e84.b (cpl) */ |
| 596 | PORT_DIPNAME( 0xf800, 0x0000, "Time" ) | |
| 597 | // PORT_DIPSETTING( 0xf800, "15" ) // duplicated setting | |
| 598 | // PORT_DIPSETTING( 0xf000, "15" ) // duplicated setting | |
| 599 | // PORT_DIPSETTING( 0xe800, "15" ) // duplicated setting | |
| 588 | PORT_DIPNAME( 0xf800, 0x0000, "Time" ) PORT_DIPLOCATION("SW2:5,4,3,2,1") | |
| 589 | #ifndef PRIORITY_EASINESS_TO_PLAY | |
| 590 | PORT_DIPSETTING( 0xf800, "15" ) // duplicated setting | |
| 591 | PORT_DIPSETTING( 0xf000, "15" ) // duplicated setting | |
| 592 | PORT_DIPSETTING( 0xe800, "15" ) // duplicated setting | |
| 593 | #endif | |
| 600 | 594 | PORT_DIPSETTING( 0xe000, "15" ) |
| 601 | 595 | PORT_DIPSETTING( 0xd800, "18" ) |
| 602 | 596 | PORT_DIPSETTING( 0xd000, "21" ) |
| r4470 | r4471 | |
| 626 | 620 | PORT_DIPSETTING( 0x1000, "93" ) |
| 627 | 621 | PORT_DIPSETTING( 0x0800, "96" ) |
| 628 | 622 | PORT_DIPSETTING( 0x0000, "99" ) |
| 629 | PORT_DIPNAME( 0x0700, 0x0700, DEF_STR( Coin_A ) ) | |
| 623 | PORT_DIPNAME( 0x0700, 0x0700, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW2:8,7,6") | |
| 630 | 624 | PORT_DIPSETTING( 0x0200, DEF_STR( 6C_1C ) ) |
| 631 | 625 | PORT_DIPSETTING( 0x0300, DEF_STR( 5C_1C ) ) |
| 632 | 626 | PORT_DIPSETTING( 0x0400, DEF_STR( 4C_1C ) ) |
| r4470 | r4471 | |
| 638 | 632 | |
| 639 | 633 | PORT_START("DSW3_DSW1") // 0x480000.w |
| 640 | 634 | /* MSB : SW3 -> 0xe07e82.b (cpl) */ |
| 641 | PORT_DIPNAME( 0xe000, 0xe000, DEF_STR( Coin_B ) ) | |
| 635 | PORT_DIPNAME( 0xe000, 0xe000, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW3:3,2,1") | |
| 642 | 636 | PORT_DIPSETTING( 0xe000, DEF_STR( 1C_1C ) ) |
| 643 | 637 | PORT_DIPSETTING( 0x0000, DEF_STR( 3C_4C ) ) |
| 644 | 638 | PORT_DIPSETTING( 0x2000, DEF_STR( 2C_3C ) ) |
| r4470 | r4471 | |
| 647 | 641 | PORT_DIPSETTING( 0x8000, DEF_STR( 1C_4C ) ) |
| 648 | 642 | PORT_DIPSETTING( 0x6000, DEF_STR( 1C_5C ) ) |
| 649 | 643 | PORT_DIPSETTING( 0x4000, DEF_STR( 1C_6C ) ) |
| 650 | PORT_DIPNAME( 0x1c00, 0x1000, DEF_STR( Difficulty ) ) | |
| 644 | PORT_DIPNAME( 0x1c00, 0x1000, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW3:6,5,4") | |
| 651 | 645 | PORT_DIPSETTING( 0x1c00, DEF_STR( Easiest ) ) |
| 652 | 646 | PORT_DIPSETTING( 0x1800, DEF_STR( Easier ) ) |
| 653 | 647 | PORT_DIPSETTING( 0x1400, DEF_STR( Easy ) ) |
| r4470 | r4471 | |
| 656 | 650 | PORT_DIPSETTING( 0x0800, DEF_STR( Hard ) ) |
| 657 | 651 | PORT_DIPSETTING( 0x0400, DEF_STR( Hard ) ) |
| 658 | 652 | PORT_DIPSETTING( 0x0000, DEF_STR( Hardest ) ) |
| 659 | PORT_DIPNAME( 0x0200, 0x0000, DEF_STR( Free_Play ) ) | |
| 653 | PORT_DIPNAME( 0x0200, 0x0000, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("SW3:7") | |
| 660 | 654 | PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) |
| 661 | 655 | PORT_DIPSETTING( 0x0200, DEF_STR( On ) ) |
| 662 | PORT_SERVICE( 0x0100, IP_ACTIVE_LOW ) | |
| 656 | PORT_SERVICE_DIPLOC( 0x0100, IP_ACTIVE_LOW, "SW3:8" ) | |
| 663 | 657 | /* LSB : SW1 -> 0xe07e83.b (cpl) */ |
| 664 | PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Demo_Sounds ) ) // To be confirmed | |
| 658 | PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW1:1") // To be confirmed | |
| 665 | 659 | PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) |
| 666 | 660 | PORT_DIPSETTING( 0x0080, DEF_STR( On ) ) |
| 667 | PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Unused ) ) | |
| 668 | PORT_DIPSETTING( 0x0040, DEF_STR( Off ) ) | |
| 669 | PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) | |
| 670 | PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Unused ) ) | |
| 671 | PORT_DIPSETTING( 0x0020, DEF_STR( Off ) ) | |
| 672 | PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) | |
| 673 | PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Unused ) ) | |
| 674 | PORT_DIPSETTING( 0x0010, DEF_STR( Off ) ) | |
| 675 | PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) | |
| 676 | PORT_DIPNAME( 0x0008, 0x0000, "Buttons" ) // 3 or 6 buttons as default ? | |
| 661 | PORT_DIPUNKNOWN_DIPLOC( 0x0040, 0x0040, "SW1:2" ) | |
| 662 | PORT_DIPUNKNOWN_DIPLOC( 0x0020, 0x0020, "SW1:3" ) | |
| 663 | PORT_DIPUNKNOWN_DIPLOC( 0x0010, 0x0010, "SW1:4" ) | |
| 664 | PORT_DIPNAME( 0x0008, 0x0000, "Buttons" ) PORT_DIPLOCATION("SW1:5") // 3 or 6 buttons as default ? | |
| 677 | 665 | PORT_DIPSETTING( 0x0008, "3" ) |
| 678 | 666 | PORT_DIPSETTING( 0x0000, "6" ) |
| 679 | PORT_DIPNAME( 0x0004, 0x0004, DEF_STR( Unused ) ) | |
| 680 | PORT_DIPSETTING( 0x0004, DEF_STR( Off ) ) | |
| 681 | PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) | |
| 682 | PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Unused ) ) // must be Off during P.O.S.T. ! | |
| 683 | PORT_DIPSETTING( 0x0002, DEF_STR( Off ) ) | |
| 684 | PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) | |
| 685 | PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Unused ) ) | |
| 686 | PORT_DIPSETTING( 0x0001, DEF_STR( Off ) ) | |
| 687 | PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) | |
| 667 | PORT_DIPUNKNOWN_DIPLOC( 0x0004, 0x0004, "SW1:6" ) | |
| 668 | PORT_DIPUNKNOWN_DIPLOC( 0x0002, 0x0002, "SW1:7" ) // must be Off during P.O.S.T. ! | |
| 669 | PORT_DIPUNKNOWN_DIPLOC( 0x0001, 0x0001, "SW1:8" ) | |
| 688 | 670 | INPUT_PORTS_END |
| 689 | 671 | |
| 690 | 672 |
| r4470 | r4471 | |
|---|---|---|
| 207 | 207 | state_save_register_global_array(machine, mAmazonProtReg); |
| 208 | 208 | } |
| 209 | 209 | |
| 210 | static ADDRESS_MAP_START( terracre_readmem, ADDRESS_SPACE_PROGRAM, 16 ) | |
| 211 | AM_RANGE(0x000000, 0x01ffff) AM_READ(SMH_ROM) | |
| 212 | AM_RANGE(0x020000, 0x0201ff) AM_READ(SMH_RAM) | |
| 213 | AM_RANGE(0x020200, 0x021fff) AM_READ(SMH_RAM) | |
| 214 | AM_RANGE(0x023000, 0x023fff) AM_READ(SMH_RAM) | |
| 210 | static ADDRESS_MAP_START( terracre_map, ADDRESS_SPACE_PROGRAM, 16 ) | |
| 211 | AM_RANGE(0x000000, 0x01ffff) AM_ROM | |
| 212 | AM_RANGE(0x020000, 0x0201ff) AM_RAM AM_BASE(&spriteram16) | |
| 213 | AM_RANGE(0x020200, 0x021fff) AM_RAM | |
| 214 | AM_RANGE(0x022000, 0x022fff) AM_WRITE(amazon_background_w) AM_BASE(&amazon_videoram) | |
| 215 | AM_RANGE(0x023000, 0x023fff) AM_RAM | |
| 215 | 216 | AM_RANGE(0x024000, 0x024001) AM_READ_PORT("P1") |
| 216 | 217 | AM_RANGE(0x024002, 0x024003) AM_READ_PORT("P2") |
| 217 | 218 | AM_RANGE(0x024004, 0x024005) AM_READ_PORT("SYSTEM") |
| 218 | 219 | AM_RANGE(0x024006, 0x024007) AM_READ_PORT("DSW") |
| 219 | ADDRESS_MAP_END | |
| 220 | ||
| 221 | static ADDRESS_MAP_START( terracre_writemem, ADDRESS_SPACE_PROGRAM, 16 ) | |
| 222 | AM_RANGE(0x000000, 0x01ffff) AM_WRITE(SMH_ROM) | |
| 223 | AM_RANGE(0x020000, 0x0201ff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) | |
| 224 | AM_RANGE(0x020200, 0x021fff) AM_WRITE(SMH_RAM) | |
| 225 | AM_RANGE(0x022000, 0x022fff) AM_WRITE(amazon_background_w) AM_BASE(&amazon_videoram) | |
| 226 | AM_RANGE(0x023000, 0x023fff) AM_WRITE(SMH_RAM) | |
| 227 | 220 | AM_RANGE(0x026000, 0x026001) AM_WRITE(amazon_flipscreen_w) /* flip screen & coin counters */ |
| 228 | 221 | AM_RANGE(0x026002, 0x026003) AM_WRITE(amazon_scrollx_w) |
| 229 | 222 | AM_RANGE(0x026004, 0x026005) AM_WRITE(amazon_scrolly_w) |
| r4470 | r4471 | |
| 231 | 224 | AM_RANGE(0x028000, 0x0287ff) AM_WRITE(amazon_foreground_w) AM_BASE(&videoram16) |
| 232 | 225 | ADDRESS_MAP_END |
| 233 | 226 | |
| 234 | static ADDRESS_MAP_START( amazon_readmem, ADDRESS_SPACE_PROGRAM, 16 ) | |
| 235 | AM_RANGE(0x000000, 0x01ffff) AM_READ(SMH_ROM) | |
| 236 | AM_RANGE(0x040000, 0x040fff) AM_READ(SMH_RAM) | |
| 227 | static ADDRESS_MAP_START( amazon_map, ADDRESS_SPACE_PROGRAM, 16 ) | |
| 228 | AM_RANGE(0x000000, 0x01ffff) AM_ROM | |
| 229 | AM_RANGE(0x040000, 0x0401ff) AM_RAM AM_BASE(&spriteram16) | |
| 230 | AM_RANGE(0x040200, 0x040fff) AM_RAM | |
| 231 | AM_RANGE(0x042000, 0x042fff) AM_WRITE(amazon_background_w) AM_BASE(&amazon_videoram) | |
| 237 | 232 | AM_RANGE(0x044000, 0x044001) AM_READ_PORT("IN0") |
| 238 | 233 | AM_RANGE(0x044002, 0x044003) AM_READ_PORT("IN1") |
| 239 | 234 | AM_RANGE(0x044004, 0x044005) AM_READ_PORT("IN2") |
| 240 | 235 | AM_RANGE(0x044006, 0x044007) AM_READ_PORT("IN3") |
| 241 | AM_RANGE(0x070000, 0x070001) AM_READ(amazon_protection_r) | |
| 242 | ADDRESS_MAP_END | |
| 243 | ||
| 244 | static ADDRESS_MAP_START( amazon_writemem, ADDRESS_SPACE_PROGRAM, 16 ) | |
| 245 | AM_RANGE(0x000000, 0x01ffff) AM_WRITE(SMH_ROM) | |
| 246 | AM_RANGE(0x040000, 0x0401ff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) | |
| 247 | AM_RANGE(0x040200, 0x040fff) AM_WRITE(SMH_RAM) | |
| 248 | AM_RANGE(0x042000, 0x042fff) AM_WRITE(amazon_background_w) AM_BASE(&amazon_videoram) | |
| 249 | 236 | AM_RANGE(0x046000, 0x046001) AM_WRITE(amazon_flipscreen_w) /* flip screen & coin counters */ |
| 250 | 237 | AM_RANGE(0x046002, 0x046003) AM_WRITE(amazon_scrollx_w) |
| 251 | 238 | AM_RANGE(0x046004, 0x046005) AM_WRITE(amazon_scrolly_w) |
| 252 | 239 | AM_RANGE(0x04600c, 0x04600d) AM_WRITE(amazon_sound_w) |
| 253 | 240 | AM_RANGE(0x050000, 0x050fff) AM_WRITE(amazon_foreground_w) AM_BASE(&videoram16) |
| 254 | AM_RANGE(0x070000, 0x070003) AM_WRITE(amazon_protection_w) | |
| 241 | AM_RANGE(0x070000, 0x070003) AM_READWRITE(amazon_protection_r, amazon_protection_w) | |
| 255 | 242 | ADDRESS_MAP_END |
| 256 | 243 | |
| 257 | static ADDRESS_MAP_START( sound_readmem, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 258 | AM_RANGE(0x0000, 0xbfff) AM_READ(SMH_ROM) | |
| 259 | AM_RANGE(0xc000, 0xcfff) AM_READ(SMH_RAM) | |
| 244 | static ADDRESS_MAP_START( sound_map, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 245 | AM_RANGE(0x0000, 0xbfff) AM_ROM | |
| 246 | AM_RANGE(0xc000, 0xcfff) AM_RAM | |
| 260 | 247 | ADDRESS_MAP_END |
| 261 | 248 | |
| 262 | static ADDRESS_MAP_START( sound_writemem, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 263 | AM_RANGE(0x0000, 0xbfff) AM_WRITE(SMH_ROM) | |
| 264 | AM_RANGE(0xc000, 0xcfff) AM_WRITE(SMH_RAM) | |
| 265 | ADDRESS_MAP_END | |
| 266 | ||
| 267 | 249 | static ADDRESS_MAP_START( sound_3526_io_map, ADDRESS_SPACE_IO, 8 ) |
| 268 | 250 | ADDRESS_MAP_GLOBAL_MASK(0xff) |
| 269 | 251 | AM_RANGE(0x00, 0x01) AM_DEVWRITE("ym", ym3526_w) |
| r4470 | r4471 | |
| 559 | 541 | |
| 560 | 542 | static MACHINE_DRIVER_START( amazon ) |
| 561 | 543 | MDRV_CPU_ADD("maincpu", M68000, 8000000 ) |
| 562 | MDRV_CPU_PROGRAM_MAP(amazon_ | |
| 544 | MDRV_CPU_PROGRAM_MAP(amazon_ | |
| 563 | 545 | MDRV_CPU_VBLANK_INT("screen", irq1_line_hold) |
| 564 | 546 | |
| 565 | 547 | MDRV_CPU_ADD("audiocpu", Z80, 4000000) /* 4 MHz???? */ |
| 566 | MDRV_CPU_PROGRAM_MAP(sound_ | |
| 548 | MDRV_CPU_PROGRAM_MAP(sound_ | |
| 567 | 549 | MDRV_CPU_IO_MAP(sound_3526_io_map,0) |
| 568 | 550 | MDRV_CPU_VBLANK_INT_HACK(irq0_line_hold,128) /* ??? */ |
| 569 | 551 | |
| r4470 | r4471 | |
| 598 | 580 | |
| 599 | 581 | static MACHINE_DRIVER_START( ym3526 ) |
| 600 | 582 | MDRV_CPU_ADD("maincpu", M68000, 8000000 ) |
| 601 | MDRV_CPU_PROGRAM_MAP(terracre_ | |
| 583 | MDRV_CPU_PROGRAM_MAP(terracre_ | |
| 602 | 584 | MDRV_CPU_VBLANK_INT("screen", irq1_line_hold) |
| 603 | 585 | |
| 604 | 586 | MDRV_CPU_ADD("audiocpu", Z80, 4000000) /* 4 MHz???? */ |
| 605 | MDRV_CPU_PROGRAM_MAP(sound_ | |
| 587 | MDRV_CPU_PROGRAM_MAP(sound_ | |
| 606 | 588 | MDRV_CPU_IO_MAP(sound_3526_io_map,0) |
| 607 | 589 | MDRV_CPU_VBLANK_INT_HACK(irq0_line_hold,128) /* ??? */ |
| 608 | 590 | |
| r4470 | r4471 | |
| 635 | 617 | |
| 636 | 618 | static MACHINE_DRIVER_START( ym2203 ) |
| 637 | 619 | MDRV_CPU_ADD("maincpu", M68000, 8000000) /* 8 MHz?? */ |
| 638 | MDRV_CPU_PROGRAM_MAP(terracre_ | |
| 620 | MDRV_CPU_PROGRAM_MAP(terracre_ | |
| 639 | 621 | MDRV_CPU_VBLANK_INT("screen", irq1_line_hold) |
| 640 | 622 | |
| 641 | 623 | MDRV_CPU_ADD("audiocpu", Z80, 4000000) /* 4 MHz???? */ |
| 642 | MDRV_CPU_PROGRAM_MAP(sound_ | |
| 624 | MDRV_CPU_PROGRAM_MAP(sound_ | |
| 643 | 625 | MDRV_CPU_IO_MAP(sound_2203_io_map,0) |
| 644 | 626 | MDRV_CPU_VBLANK_INT_HACK(irq0_line_hold,128) /* ??? */ |
| 645 | 627 |
| r4470 | r4471 | |
|---|---|---|
| 69 | 69 | static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 ) |
| 70 | 70 | AM_RANGE(0x0000, 0x5fff) AM_WRITE(SMH_ROM) |
| 71 | 71 | AM_RANGE(0x6000, 0x6bff) AM_WRITE(SMH_RAM) |
| 72 | AM_RANGE(0x8800, 0x88ff) AM_WRITE | |
| 72 | AM_RANGE(0x8800, 0x88ff) AM_WRITE | |
| 73 | 73 | AM_RANGE(0x9000, 0x93ff) AM_WRITE(SMH_RAM) AM_BASE(&videoram) AM_SIZE(&videoram_size) |
| 74 | 74 | AM_RANGE(0x9800, 0x9cff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size) |
| 75 | 75 | AM_RANGE(0x9c00, 0x9fff) AM_WRITE(SMH_RAM) AM_BASE(&colorram) |
| r4470 | r4471 | |
| 90 | 90 | static ADDRESS_MAP_START( writemem2, ADDRESS_SPACE_PROGRAM, 8 ) |
| 91 | 91 | AM_RANGE(0x0000, 0x1fff) AM_WRITE(SMH_ROM) |
| 92 | 92 | AM_RANGE(0x2000, 0x23ff) AM_WRITE(SMH_RAM) |
| 93 | AM_RANGE(0x4000, 0x4000) AM_WRITE | |
| 93 | AM_RANGE(0x4000, 0x4000) AM_WRITE | |
| 94 | 94 | ADDRESS_MAP_END |
| 95 | 95 | |
| 96 | 96 | static ADDRESS_MAP_START( io_map_2, ADDRESS_SPACE_IO, 8 ) |
| r4470 | r4471 | |
|---|---|---|
| 206 | 206 | AM_RANGE(0x40, 0x40) AM_WRITE(port40_w) // possibly sound codes for dual SN76477s |
| 207 | 207 | AM_RANGE(0x60, 0x60) AM_WRITE(port60_w) // possibly playfield scroll X offset |
| 208 | 208 | AM_RANGE(0x80, 0x80) AM_READ_PORT("IN0") //controls |
| 209 | AM_RANGE(0xa0, 0xa0) AM_WRITE | |
| 209 | AM_RANGE(0xa0, 0xa0) AM_WRITE | |
| 210 | 210 | AM_RANGE(0xc0, 0xc0) AM_WRITE(portc0_w) // possibly playfield row selection for writing and/or collisions |
| 211 | 211 | AM_RANGE(S2650_DATA_PORT, S2650_DATA_PORT) AM_READ(s2650_data_r) // read upon death |
| 212 | 212 | AM_RANGE(S2650_SENSE_PORT, S2650_SENSE_PORT) AM_READ_PORT("SENSE") |
| r4470 | r4471 | |
|---|---|---|
| 680 | 680 | AM_RANGE(0x000000, 0x0fffff) AM_WRITE(SMH_ROM) |
| 681 | 681 | |
| 682 | 682 | AM_RANGE(0x100000, 0x100003) AM_WRITE(buffer_spriteram32_w) |
| 683 | AM_RANGE(0x108000, 0x108003) AM_WRITE | |
| 683 | AM_RANGE(0x108000, 0x108003) AM_WRITE | |
| 684 | 684 | AM_RANGE(0x110000, 0x110fff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram32) AM_SIZE(&spriteram_size) |
| 685 | 685 | AM_RANGE(0x120000, 0x127fff) AM_WRITE(SMH_RAM) AM_BASE(&deco32_ram) /* Main RAM */ |
| 686 | 686 | AM_RANGE(0x1280c8, 0x1280cb) AM_WRITE(deco32_sound_w) |
| r4470 | r4471 | |
| 728 | 728 | AM_RANGE(0x1d4800, 0x1d48ff) AM_READ(SMH_RAM) |
| 729 | 729 | AM_RANGE(0x1e0000, 0x1e001f) AM_READ(SMH_RAM) |
| 730 | 730 | |
| 731 | AM_RANGE(0x16c000, 0x16c01f) AM_READ(SMH_NOP) | |
| 732 | AM_RANGE(0x17c000, 0x17c03f) AM_READ(SMH_NOP) | |
| 731 | AM_RANGE(0x16c000, 0x16c01f) AM_READNOP | |
| 732 | AM_RANGE(0x17c000, 0x17c03f) AM_READNOP | |
| 733 | 733 | |
| 734 | 734 | AM_RANGE(0x200000, 0x200fff) AM_READ(deco16_146_fghthist_prot_r) |
| 735 | 735 | ADDRESS_MAP_END |
| r4470 | r4471 | |
| 740 | 740 | AM_RANGE(0x100000, 0x11ffff) AM_WRITE(SMH_RAM) AM_BASE(&deco32_ram) |
| 741 | 741 | AM_RANGE(0x12002c, 0x12002f) AM_WRITE(fghthist_eeprom_w) |
| 742 | 742 | AM_RANGE(0x1201fc, 0x1201ff) AM_WRITE(deco32_sound_w) |
| 743 | AM_RANGE(0x140000, 0x140003) AM_WRITE | |
| 743 | AM_RANGE(0x140000, 0x140003) AM_WRITE | |
| 744 | 744 | //148000 - IRQ mask (ca)... |
| 745 | 745 | AM_RANGE(0x168000, 0x169fff) AM_WRITE(deco32_buffered_palette_w) AM_BASE(&paletteram32) |
| 746 | 746 | AM_RANGE(0x16c008, 0x16c00b) AM_WRITE(deco32_palette_dma_w) |
| r4470 | r4471 | |
| 762 | 762 | AM_RANGE(0x1e0000, 0x1e001f) AM_WRITE(SMH_RAM) AM_BASE(&deco32_pf34_control) |
| 763 | 763 | |
| 764 | 764 | AM_RANGE(0x200000, 0x200fff) AM_WRITE(deco16_146_fghthist_prot_w) AM_BASE(&deco32_prot_ram) |
| 765 | AM_RANGE(0x208800, 0x208803) AM_WRITE | |
| 765 | AM_RANGE(0x208800, 0x208803) AM_WRITE | |
| 766 | 766 | ADDRESS_MAP_END |
| 767 | 767 | |
| 768 | 768 | static ADDRESS_MAP_START( fghthsta_memmap, ADDRESS_SPACE_PROGRAM, 32 ) |
| 769 | 769 | AM_RANGE(0x000000, 0x0fffff) AM_READ(SMH_ROM) AM_WRITE(SMH_ROM) |
| 770 | 770 | AM_RANGE(0x100000, 0x11ffff) AM_READ(SMH_RAM) AM_WRITE(SMH_RAM) AM_BASE(&deco32_ram) |
| 771 | AM_RANGE(0x140000, 0x140003) AM_WRITE | |
| 771 | AM_RANGE(0x140000, 0x140003) AM_WRITE | |
| 772 | 772 | AM_RANGE(0x150000, 0x150003) AM_WRITE(fghthist_eeprom_w) /* Volume port/Eprom */ |
| 773 | 773 | |
| 774 | 774 | AM_RANGE(0x168000, 0x169fff) AM_READ(SMH_RAM) AM_WRITE(deco32_buffered_palette_w) AM_BASE(&paletteram32) |
| 775 | 775 | AM_RANGE(0x16c008, 0x16c00b) AM_WRITE(deco32_palette_dma_w) |
| 776 | AM_RANGE(0x16c010, 0x16c013) AM_READ | |
| 776 | AM_RANGE(0x16c010, 0x16c013) AM_READ | |
| 777 | 777 | |
| 778 | 778 | AM_RANGE(0x178000, 0x179fff) AM_READ(SMH_RAM) AM_WRITE(SMH_RAM) AM_BASE(&spriteram32) AM_SIZE(&spriteram_size) |
| 779 | 779 | AM_RANGE(0x17c010, 0x17c013) AM_WRITE(buffer_spriteram32_w) |
| 780 | AM_RANGE(0x17c020, 0x17c023) AM_READ | |
| 780 | AM_RANGE(0x17c020, 0x17c023) AM_READ | |
| 781 | 781 | |
| 782 | 782 | AM_RANGE(0x182000, 0x183fff) AM_READ(SMH_RAM) AM_WRITE(deco32_pf1_data_w) AM_BASE(&deco32_pf1_data) |
| 783 | 783 | AM_RANGE(0x184000, 0x185fff) AM_READ(SMH_RAM) AM_WRITE(deco32_pf2_data_w) AM_BASE(&deco32_pf2_data) |
| r4470 | r4471 | |
| 800 | 800 | AM_RANGE(0x120000, 0x120fff) AM_READ(dragngun_prot_r) |
| 801 | 801 | AM_RANGE(0x128000, 0x12800f) AM_READ(deco32_irq_controller_r) |
| 802 | 802 | AM_RANGE(0x130000, 0x131fff) AM_READ(SMH_RAM) |
| 803 | AM_RANGE(0x138000, 0x138003) AM_READ | |
| 803 | AM_RANGE(0x138000, 0x138003) AM_READ | |
| 804 | 804 | |
| 805 | 805 | AM_RANGE(0x180000, 0x18001f) AM_READ(SMH_RAM) |
| 806 | 806 | AM_RANGE(0x190000, 0x191fff) AM_READ(SMH_RAM) |
| r4470 | r4471 | |
| 838 | 838 | AM_RANGE(0x128000, 0x12800f) AM_WRITE(deco32_irq_controller_w) |
| 839 | 839 | |
| 840 | 840 | AM_RANGE(0x130000, 0x131fff) AM_WRITE(deco32_buffered_palette_w) AM_BASE(&paletteram32) |
| 841 | AM_RANGE(0x138000, 0x138003) AM_WRITE | |
| 841 | AM_RANGE(0x138000, 0x138003) AM_WRITE | |
| 842 | 842 | AM_RANGE(0x138008, 0x13800b) AM_WRITE(deco32_palette_dma_w) |
| 843 | 843 | |
| 844 | 844 | AM_RANGE(0x180000, 0x18001f) AM_WRITE(SMH_RAM) AM_BASE(&deco32_pf12_control) |
| r4470 | r4471 | |
| 866 | 866 | AM_RANGE(0x300000, 0x3fffff) AM_WRITE(SMH_ROM) |
| 867 | 867 | |
| 868 | 868 | AM_RANGE(0x400000, 0x400003) AM_DEVWRITE8("oki3", okim6295_w, 0x000000ff) |
| 869 | AM_RANGE(0x410000, 0x410003) AM_WRITE | |
| 869 | AM_RANGE(0x410000, 0x410003) AM_WRITE | |
| 870 | 870 | AM_RANGE(0x420000, 0x420003) AM_WRITE(dragngun_eeprom_w) |
| 871 | 871 | AM_RANGE(0x430000, 0x43001f) AM_WRITE(dragngun_lightgun_w) |
| 872 | 872 | AM_RANGE(0x500000, 0x500003) AM_WRITE(dragngun_sprite_control_w) |
| r4470 | r4471 | |
| 919 | 919 | AM_RANGE(0x128000, 0x12800f) AM_WRITE(deco32_irq_controller_w) |
| 920 | 920 | |
| 921 | 921 | AM_RANGE(0x130000, 0x131fff) AM_WRITE(deco32_buffered_palette_w) AM_BASE(&paletteram32) |
| 922 | AM_RANGE(0x138000, 0x138003) AM_WRITE | |
| 922 | AM_RANGE(0x138000, 0x138003) AM_WRITE | |
| 923 | 923 | AM_RANGE(0x138008, 0x13800b) AM_WRITE(deco32_palette_dma_w) |
| 924 | AM_RANGE(0x178008, 0x17800f) AM_WRITE | |
| 924 | AM_RANGE(0x178008, 0x17800f) AM_WRITE | |
| 925 | 925 | |
| 926 | 926 | AM_RANGE(0x180000, 0x18001f) AM_WRITE(SMH_RAM) AM_BASE(&deco32_pf12_control) |
| 927 | 927 | AM_RANGE(0x190000, 0x191fff) AM_WRITE(deco32_pf1_data_w) AM_BASE(&deco32_pf1_data) |
| r4470 | r4471 | |
| 957 | 957 | static ADDRESS_MAP_START( tattass_readmem, ADDRESS_SPACE_PROGRAM, 32 ) |
| 958 | 958 | AM_RANGE(0x000000, 0x0fffff) AM_READ(SMH_ROM) |
| 959 | 959 | AM_RANGE(0x100000, 0x11ffff) AM_READ(SMH_RAM) |
| 960 | AM_RANGE(0x120000, 0x120003) AM_READ | |
| 960 | AM_RANGE(0x120000, 0x120003) AM_READ | |
| 961 | 961 | |
| 962 | 962 | AM_RANGE(0x162000, 0x162fff) AM_READ(SMH_RAM) /* 'Jack' RAM!? */ |
| 963 | 963 | AM_RANGE(0x163000, 0x16309f) AM_READ(SMH_RAM) |
| r4470 | r4471 | |
| 987 | 987 | |
| 988 | 988 | static ADDRESS_MAP_START( tattass_writemem, ADDRESS_SPACE_PROGRAM, 32 ) |
| 989 | 989 | AM_RANGE(0x000000, 0x0f7fff) AM_WRITE(SMH_ROM) |
| 990 | AM_RANGE(0x0f8000, 0x0fffff) AM_WRITE | |
| 990 | AM_RANGE(0x0f8000, 0x0fffff) AM_WRITE | |
| 991 | 991 | AM_RANGE(0x100000, 0x11ffff) AM_WRITE(SMH_RAM) AM_BASE(&deco32_ram) |
| 992 | 992 | |
| 993 | AM_RANGE(0x120000, 0x120003) AM_WRITE(SMH_NOP) /* ACIA (unused) */ | |
| 994 | AM_RANGE(0x130000, 0x130003) AM_WRITE(SMH_NOP) /* Coin port (unused?) */ | |
| 995 | AM_RANGE(0x140000, 0x140003) AM_WRITE(SMH_NOP) /* Vblank ack */ | |
| 993 | AM_RANGE(0x120000, 0x120003) AM_WRITENOP /* ACIA (unused) */ | |
| 994 | AM_RANGE(0x130000, 0x130003) AM_WRITENOP /* Coin port (unused?) */ | |
| 995 | AM_RANGE(0x140000, 0x140003) AM_WRITENOP /* Vblank ack */ | |
| 996 | 996 | AM_RANGE(0x150000, 0x150003) AM_WRITE(tattass_control_w) /* Volume port/Eprom/Priority */ |
| 997 | 997 | |
| 998 | 998 | AM_RANGE(0x162000, 0x162fff) AM_WRITE(SMH_RAM) /* 'Jack' RAM!? */ |
| 999 | 999 | AM_RANGE(0x163000, 0x16309f) AM_WRITE(deco32_ace_ram_w) AM_BASE(&deco32_ace_ram) /* 'Ace' RAM!? */ |
| 1000 | 1000 | |
| 1001 | AM_RANGE(0x164000, 0x164003) AM_WRITE(SMH_NOP) /* Palette control BG2/3 ($1a constant) */ | |
| 1002 | AM_RANGE(0x164004, 0x164007) AM_WRITE(SMH_NOP) /* Palette control Obj1 ($6 constant) */ | |
| 1003 | AM_RANGE(0x164008, 0x16400b) AM_WRITE(SMH_NOP) /* Palette control Obj2 ($5 constant) */ | |
| 1004 | AM_RANGE(0x16400c, 0x16400f) AM_WRITE(SMH_NOP) | |
| 1001 | AM_RANGE(0x164000, 0x164003) AM_WRITENOP /* Palette control BG2/3 ($1a constant) */ | |
| 1002 | AM_RANGE(0x164004, 0x164007) AM_WRITENOP /* Palette control Obj1 ($6 constant) */ | |
| 1003 | AM_RANGE(0x164008, 0x16400b) AM_WRITENOP /* Palette control Obj2 ($5 constant) */ | |
| 1004 | AM_RANGE(0x16400c, 0x16400f) AM_WRITENOP | |
| 1005 | 1005 | AM_RANGE(0x168000, 0x169fff) AM_WRITE(deco32_buffered_palette_w) AM_BASE(&paletteram32) |
| 1006 | AM_RANGE(0x16c000, 0x16c003) AM_WRITE | |
| 1006 | AM_RANGE(0x16c000, 0x16c003) AM_WRITE | |
| 1007 | 1007 | AM_RANGE(0x16c008, 0x16c00b) AM_WRITE(deco32_palette_dma_w) |
| 1008 | 1008 | |
| 1009 | 1009 | AM_RANGE(0x170000, 0x171fff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram32) AM_SIZE(&spriteram_size) |
| 1010 | AM_RANGE(0x174000, 0x174003) AM_WRITE | |
| 1010 | AM_RANGE(0x174000, 0x174003) AM_WRITE | |
| 1011 | 1011 | AM_RANGE(0x174010, 0x174013) AM_WRITE(buffer_spriteram32_w) |
| 1012 | AM_RANGE(0x174018, 0x17401b) AM_WRITE | |
| 1012 | AM_RANGE(0x174018, 0x17401b) AM_WRITE | |
| 1013 | 1013 | |
| 1014 | 1014 | AM_RANGE(0x178000, 0x179fff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram32_2) AM_SIZE(&spriteram_2_size) |
| 1015 | AM_RANGE(0x17c000, 0x17c003) AM_WRITE | |
| 1015 | AM_RANGE(0x17c000, 0x17c003) AM_WRITE | |
| 1016 | 1016 | AM_RANGE(0x17c010, 0x17c013) AM_WRITE(buffer_spriteram32_2_w) |
| 1017 | AM_RANGE(0x17c018, 0x17c01b) AM_WRITE | |
| 1017 | AM_RANGE(0x17c018, 0x17c01b) AM_WRITE | |
| 1018 | 1018 | |
| 1019 | 1019 | AM_RANGE(0x182000, 0x183fff) AM_WRITE(deco32_pf1_data_w) AM_BASE(&deco32_pf1_data) |
| 1020 | 1020 | AM_RANGE(0x184000, 0x185fff) AM_WRITE(deco32_pf2_data_w) AM_BASE(&deco32_pf2_data) |
| r4470 | r4471 | |
| 1034 | 1034 | static ADDRESS_MAP_START( nslasher_readmem, ADDRESS_SPACE_PROGRAM, 32 ) |
| 1035 | 1035 | AM_RANGE(0x000000, 0x0fffff) AM_READ(SMH_ROM) |
| 1036 | 1036 | AM_RANGE(0x100000, 0x11ffff) AM_READ(SMH_RAM) |
| 1037 | AM_RANGE(0x120000, 0x1200ff) AM_READ | |
| 1037 | AM_RANGE(0x120000, 0x1200ff) AM_READ | |
| 1038 | 1038 | |
| 1039 | 1039 | AM_RANGE(0x163000, 0x16309f) AM_READ(SMH_RAM) |
| 1040 | 1040 | AM_RANGE(0x168000, 0x169fff) AM_READ(SMH_RAM) |
| r4470 | r4471 | |
| 1065 | 1065 | AM_RANGE(0x000000, 0x0fffff) AM_WRITE(SMH_ROM) |
| 1066 | 1066 | AM_RANGE(0x100000, 0x11ffff) AM_WRITE(SMH_RAM) AM_BASE(&deco32_ram) |
| 1067 | 1067 | |
| 1068 | AM_RANGE(0x120000, 0x120003) AM_WRITE(SMH_NOP) /* ACIA (unused) */ | |
| 1069 | // AM_RANGE(0x130000, 0x130003) AM_WRITE(SMH_NOP) /* Coin port (unused?) */ | |
| 1070 | AM_RANGE(0x140000, 0x140003) AM_WRITE(SMH_NOP) /* Vblank ack */ | |
| 1068 | AM_RANGE(0x120000, 0x120003) AM_WRITENOP /* ACIA (unused) */ | |
| 1069 | // AM_RANGE(0x130000, 0x130003) AM_WRITENOP /* Coin port (unused?) */ | |
| 1070 | AM_RANGE(0x140000, 0x140003) AM_WRITENOP /* Vblank ack */ | |
| 1071 | 1071 | AM_RANGE(0x150000, 0x150003) AM_WRITE(nslasher_eeprom_w) /* Volume port/Eprom/Priority */ |
| 1072 | 1072 | |
| 1073 | 1073 | AM_RANGE(0x163000, 0x16309f) AM_WRITE(deco32_ace_ram_w) AM_BASE(&deco32_ace_ram) /* 'Ace' RAM!? */ |
| 1074 | AM_RANGE(0x164000, 0x164003) AM_WRITE(SMH_NOP) /* Palette control BG2/3 ($1a constant) */ | |
| 1075 | AM_RANGE(0x164004, 0x164007) AM_WRITE(SMH_NOP) /* Palette control Obj1 ($4 constant) */ | |
| 1076 | AM_RANGE(0x164008, 0x16400b) AM_WRITE(SMH_NOP) /* Palette control Obj2 ($6 constant) */ | |
| 1077 | AM_RANGE(0x16400c, 0x16400f) AM_WRITE(SMH_NOP) | |
| 1074 | AM_RANGE(0x164000, 0x164003) AM_WRITENOP /* Palette control BG2/3 ($1a constant) */ | |
| 1075 | AM_RANGE(0x164004, 0x164007) AM_WRITENOP /* Palette control Obj1 ($4 constant) */ | |
| 1076 | AM_RANGE(0x164008, 0x16400b) AM_WRITENOP /* Palette control Obj2 ($6 constant) */ | |
| 1077 | AM_RANGE(0x16400c, 0x16400f) AM_WRITENOP | |
| 1078 | 1078 | AM_RANGE(0x168000, 0x169fff) AM_WRITE(deco32_buffered_palette_w) AM_BASE(&paletteram32) |
| 1079 | AM_RANGE(0x16c000, 0x16c003) AM_WRITE | |
| 1079 | AM_RANGE(0x16c000, 0x16c003) AM_WRITE | |
| 1080 | 1080 | AM_RANGE(0x16c008, 0x16c00b) AM_WRITE(deco32_palette_dma_w) |
| 1081 | 1081 | |
| 1082 | 1082 | AM_RANGE(0x170000, 0x171fff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram32) AM_SIZE(&spriteram_size) |
| 1083 | AM_RANGE(0x174000, 0x174003) AM_WRITE | |
| 1083 | AM_RANGE(0x174000, 0x174003) AM_WRITE | |
| 1084 | 1084 | AM_RANGE(0x174010, 0x174013) AM_WRITE(buffer_spriteram32_w) |
| 1085 | AM_RANGE(0x174018, 0x17401b) AM_WRITE | |
| 1085 | AM_RANGE(0x174018, 0x17401b) AM_WRITE | |
| 1086 | 1086 | |
| 1087 | 1087 | AM_RANGE(0x178000, 0x179fff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram32_2) AM_SIZE(&spriteram_2_size) |
| 1088 | AM_RANGE(0x17c000, 0x17c003) AM_WRITE | |
| 1088 | AM_RANGE(0x17c000, 0x17c003) AM_WRITE | |
| 1089 | 1089 | AM_RANGE(0x17c010, 0x17c013) AM_WRITE(buffer_spriteram32_2_w) |
| 1090 | AM_RANGE(0x17c018, 0x17c01b) AM_WRITE | |
| 1090 | AM_RANGE(0x17c018, 0x17c01b) AM_WRITE | |
| 1091 | 1091 | |
| 1092 | 1092 | AM_RANGE(0x182000, 0x183fff) AM_WRITE(deco32_pf1_data_w) AM_BASE(&deco32_pf1_data) |
| 1093 | 1093 | AM_RANGE(0x184000, 0x185fff) AM_WRITE(deco32_pf2_data_w) AM_BASE(&deco32_pf2_data) |
| r4470 | r4471 | |
|---|---|---|
| 120 | 120 | AM_RANGE(0xe800, 0xefff) AM_RAM_WRITE(paletteram_xxxxRRRRGGGGBBBB_le_w) AM_BASE(&paletteram) |
| 121 | 121 | AM_RANGE(0xf000, 0xf003) AM_READ(SMH_RAM) AM_WRITE(SMH_RAM) AM_BASE(&lkage_vreg) /* video registers */ |
| 122 | 122 | AM_RANGE(0xf060, 0xf060) AM_WRITE(lkage_sound_command_w) |
| 123 | AM_RANGE(0xf061, 0xf061) AM_WRITE | |
| 123 | AM_RANGE(0xf061, 0xf061) AM_WRITE | |
| 124 | 124 | AM_RANGE(0xf062, 0xf062) AM_READ(lkage_mcu_r) AM_WRITE(lkage_mcu_w) |
| 125 | AM_RANGE(0xf063, 0xf063) AM_WRITE | |
| 125 | AM_RANGE(0xf063, 0xf063) AM_WRITE | |
| 126 | 126 | AM_RANGE(0xf080, 0xf080) AM_READ_PORT("DSW1") |
| 127 | 127 | AM_RANGE(0xf081, 0xf081) AM_READ_PORT("DSW2") |
| 128 | 128 | AM_RANGE(0xf082, 0xf082) AM_READ_PORT("DSW3") |
| r4470 | r4471 | |
| 132 | 132 | AM_RANGE(0xf087, 0xf087) AM_READ(lkage_mcu_status_r) |
| 133 | 133 | AM_RANGE(0xf0a0, 0xf0a3) AM_READ(SMH_RAM) AM_WRITE(SMH_RAM) /* unknown */ |
| 134 | 134 | AM_RANGE(0xf0c0, 0xf0c5) AM_READ(SMH_RAM) AM_WRITE(SMH_RAM) AM_BASE(&lkage_scroll) |
| 135 | AM_RANGE(0xf0e1, 0xf0e1) AM_WRITE | |
| 135 | AM_RANGE(0xf0e1, 0xf0e1) AM_WRITE | |
| 136 | 136 | AM_RANGE(0xf100, 0xf15f) AM_READ(SMH_RAM) AM_WRITE(SMH_RAM) AM_BASE(&spriteram) |
| 137 | 137 | AM_RANGE(0xf400, 0xffff) AM_READ(SMH_RAM) AM_WRITE(lkage_videoram_w) AM_BASE(&videoram) /* videoram */ |
| 138 | 138 | ADDRESS_MAP_END |
| r4470 | r4471 | |
| 177 | 177 | AM_RANGE(0x9000, 0x9001) AM_DEVREAD("ym1", ym2203_r) |
| 178 | 178 | AM_RANGE(0xa000, 0xa001) AM_DEVREAD("ym2", ym2203_r) |
| 179 | 179 | AM_RANGE(0xb000, 0xb000) AM_READ(soundlatch_r) |
| 180 | AM_RANGE(0xb001, 0xb001) AM_READ | |
| 180 | AM_RANGE(0xb001, 0xb001) AM_READ | |
| 181 | 181 | AM_RANGE(0xe000, 0xefff) AM_READ(SMH_ROM) /* space for diagnostic ROM? */ |
| 182 | 182 | ADDRESS_MAP_END |
| 183 | 183 | |
| r4470 | r4471 | |
| 186 | 186 | AM_RANGE(0x8000, 0x87ff) AM_WRITE(SMH_RAM) |
| 187 | 187 | AM_RANGE(0x9000, 0x9001) AM_DEVWRITE("ym1", ym2203_w) |
| 188 | 188 | AM_RANGE(0xa000, 0xa001) AM_DEVWRITE("ym2", ym2203_w) |
| 189 | AM_RANGE(0xb000, 0xb000) AM_WRITE | |
| 189 | AM_RANGE(0xb000, 0xb000) AM_WRITE | |
| 190 | 190 | AM_RANGE(0xb001, 0xb001) AM_WRITE(lkage_sh_nmi_enable_w) |
| 191 | 191 | AM_RANGE(0xb002, 0xb002) AM_WRITE(lkage_sh_nmi_disable_w) |
| 192 | 192 | AM_RANGE(0xe000, 0xefff) AM_WRITE(SMH_ROM) /* space for diagnostic ROM? */ |
| r4470 | r4471 | |
|---|---|---|
| 384 | 384 | AM_RANGE(0x074000, 0x075fff) AM_READ(gaiden_videoram3_r) |
| 385 | 385 | AM_RANGE(0x076000, 0x077fff) AM_READ(SMH_RAM) |
| 386 | 386 | AM_RANGE(0x078000, 0x0787ff) AM_READ(SMH_RAM) |
| 387 | AM_RANGE(0x078800, 0x079fff) AM_READ | |
| 387 | AM_RANGE(0x078800, 0x079fff) AM_READ | |
| 388 | 388 | AM_RANGE(0x07a000, 0x07a001) AM_READ_PORT("SYSTEM") |
| 389 | 389 | AM_RANGE(0x07a002, 0x07a003) AM_READ_PORT("P1_P2") |
| 390 | 390 | AM_RANGE(0x07a004, 0x07a005) AM_READ_PORT("DSW") |
| r4470 | r4471 | |
| 406 | 406 | AM_RANGE(0x07a30c, 0x07a30d) AM_WRITE(gaiden_bgscrollx_w) |
| 407 | 407 | AM_RANGE(0x07a800, 0x07a801) AM_WRITE(watchdog_reset16_w) |
| 408 | 408 | AM_RANGE(0x07a802, 0x07a803) AM_WRITE(gaiden_sound_command_w) |
| 409 | AM_RANGE(0x07a806, 0x07a807) AM_WRITE | |
| 409 | AM_RANGE(0x07a806, 0x07a807) AM_WRITE | |
| 410 | 410 | AM_RANGE(0x07a808, 0x07a809) AM_WRITE(gaiden_flip_w) |
| 411 | 411 | ADDRESS_MAP_END |
| 412 | 412 | |
| r4470 | r4471 | |
| 434 | 434 | AM_RANGE(0xe000, 0xefff) AM_READ(SMH_ROM) /* raiga only */ |
| 435 | 435 | AM_RANGE(0xf000, 0xf7ff) AM_READ(SMH_RAM) |
| 436 | 436 | AM_RANGE(0xf800, 0xf800) AM_DEVREAD("oki", okim6295_r) |
| 437 | AM_RANGE(0xfc00, 0xfc00) AM_READ | |
| 437 | AM_RANGE(0xfc00, 0xfc00) AM_READ | |
| 438 | 438 | AM_RANGE(0xfc20, 0xfc20) AM_READ(soundlatch_r) |
| 439 | 439 | ADDRESS_MAP_END |
| 440 | 440 | |
| r4470 | r4471 | |
| 445 | 445 | AM_RANGE(0xf800, 0xf800) AM_DEVWRITE("oki", okim6295_w) |
| 446 | 446 | AM_RANGE(0xf810, 0xf811) AM_DEVWRITE("ym1", ym2203_w) |
| 447 | 447 | AM_RANGE(0xf820, 0xf821) AM_DEVWRITE("ym2", ym2203_w) |
| 448 | AM_RANGE(0xfc00, 0xfc00) AM_WRITE | |
| 448 | AM_RANGE(0xfc00, 0xfc00) AM_WRITE | |
| 449 | 449 | ADDRESS_MAP_END |
| 450 | 450 | |
| 451 | 451 | static ADDRESS_MAP_START( drgnbowl_sound_map, ADDRESS_SPACE_PROGRAM, 8 ) |
| r4470 | r4471 | |
| 496 | 496 | |
| 497 | 497 | /* Dip Switches order fits the first screen */ |
| 498 | 498 | PORT_START("DSW") |
| 499 | PORT_DIPNAME( 0x00e0, 0x00e0, DEF_STR( Coin_A ) ) | |
| 499 | PORT_DIPNAME( 0x00e0, 0x00e0, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SWA:3,2,1") | |
| 500 | 500 | PORT_DIPSETTING( 0x0000, DEF_STR( 5C_1C ) ) |
| 501 | 501 | PORT_DIPSETTING( 0x0080, DEF_STR( 4C_1C ) ) |
| 502 | 502 | PORT_DIPSETTING( 0x0040, DEF_STR( 3C_1C ) ) |
| r4470 | r4471 | |
| 505 | 505 | PORT_DIPSETTING( 0x0060, DEF_STR( 1C_2C ) ) |
| 506 | 506 | PORT_DIPSETTING( 0x00a0, DEF_STR( 1C_3C ) ) |
| 507 | 507 | PORT_DIPSETTING( 0x00c0, DEF_STR( 1C_4C ) ) |
| 508 | PORT_DIPNAME( 0x001c, 0x001c, DEF_STR( Coin_B ) ) | |
| 508 | PORT_DIPNAME( 0x001c, 0x001c, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SWA:6,5,4") | |
| 509 | 509 | PORT_DIPSETTING( 0x0000, DEF_STR( 5C_1C ) ) |
| 510 | 510 | PORT_DIPSETTING( 0x0010, DEF_STR( 4C_1C ) ) |
| 511 | 511 | PORT_DIPSETTING( 0x0008, DEF_STR( 3C_1C ) ) |
| r4470 | r4471 | |
| 514 | 514 | PORT_DIPSETTING( 0x000c, DEF_STR( 1C_2C ) ) |
| 515 | 515 | PORT_DIPSETTING( 0x0014, DEF_STR( 1C_3C ) ) |
| 516 | 516 | PORT_DIPSETTING( 0x0018, DEF_STR( 1C_4C ) ) |
| 517 | PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Flip_Screen ) ) | |
| 517 | PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SWA:7") | |
| 518 | 518 | PORT_DIPSETTING( 0x0002, DEF_STR( Off ) ) |
| 519 | 519 | PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) |
| 520 | PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Demo_Sounds ) ) | |
| 520 | PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SWA:8") | |
| 521 | 521 | PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) |
| 522 | 522 | PORT_DIPSETTING( 0x0001, DEF_STR( On ) ) |
| 523 | PORT_DIPNAME( 0xc000, 0xc000, DEF_STR( Lives ) ) | |
| 523 | PORT_DIPNAME( 0xc000, 0xc000, DEF_STR( Lives ) ) PORT_DIPLOCATION("SWB:2,1") | |
| 524 | 524 | PORT_DIPSETTING( 0x0000, "1" ) |
| 525 | 525 | PORT_DIPSETTING( 0xc000, "2" ) |
| 526 | 526 | PORT_DIPSETTING( 0x4000, "3" ) |
| 527 | 527 | PORT_DIPSETTING( 0x8000, "4" ) |
| 528 | PORT_DIPNAME( 0x3000, 0x3000, "Energy" ) | |
| 528 | PORT_DIPNAME( 0x3000, 0x3000, "Energy" ) PORT_DIPLOCATION("SWB:4,3") | |
| 529 | 529 | PORT_DIPSETTING( 0x0000, "2" ) |
| 530 | 530 | PORT_DIPSETTING( 0x3000, "3" ) |
| 531 | 531 | PORT_DIPSETTING( 0x1000, "4" ) |
| 532 | 532 | PORT_DIPSETTING( 0x2000, "5" ) |
| 533 | PORT_DIPNAME( 0x0800, 0x0800, DEF_STR( Unused ) ) | |
| 534 | PORT_DIPSETTING( 0x0800, DEF_STR( Off ) ) | |
| 535 | PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) | |
| 536 | PORT_DIPNAME( 0x0400, 0x0400, DEF_STR( Unused ) ) | |
| 537 | PORT_DIPSETTING( 0x0400, DEF_STR( Off ) ) | |
| 538 | PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) | |
| 539 | PORT_DIPNAME( 0x0200, 0x0200, DEF_STR( Unused ) ) | |
| 540 | PORT_DIPSETTING( 0x0200, DEF_STR( Off ) ) | |
| 541 | PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) | |
| 542 | PORT_DIPNAME( 0x0100, 0x0100, DEF_STR( Unused ) ) | |
| 543 | PORT_DIPSETTING( 0x0100, DEF_STR( Off ) ) | |
| 544 | PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) | |
| 533 | PORT_DIPUNKNOWN_DIPLOC( 0x0800, 0x0800, "SWB:5" ) | |
| 534 | PORT_DIPUNKNOWN_DIPLOC( 0x0400, 0x0400, "SWB:6" ) | |
| 535 | PORT_DIPUNKNOWN_DIPLOC( 0x0200, 0x0200, "SWB:7" ) | |
| 536 | PORT_DIPUNKNOWN_DIPLOC( 0x0100, 0x0100, "SWB:8" ) | |
| 545 | 537 | INPUT_PORTS_END |
| 546 | 538 | |
| 547 | 539 | static INPUT_PORTS_START( wildfang ) |
| r4470 | r4471 | |
| 549 | 541 | |
| 550 | 542 | /* Dip Switches order fits the first screen */ |
| 551 | 543 | PORT_START("DSW") |
| 552 | PORT_DIPNAME( 0x00e0, 0x00e0, DEF_STR( Coin_A ) ) | |
| 544 | PORT_DIPNAME( 0x00e0, 0x00e0, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SWA:3,2,1") | |
| 553 | 545 | PORT_DIPSETTING( 0x0000, DEF_STR( 5C_1C ) ) |
| 554 | 546 | PORT_DIPSETTING( 0x0080, DEF_STR( 4C_1C ) ) |
| 555 | 547 | PORT_DIPSETTING( 0x0040, DEF_STR( 3C_1C ) ) |
| r4470 | r4471 | |
| 558 | 550 | PORT_DIPSETTING( 0x0060, DEF_STR( 1C_2C ) ) |
| 559 | 551 | PORT_DIPSETTING( 0x00a0, DEF_STR( 1C_3C ) ) |
| 560 | 552 | PORT_DIPSETTING( 0x00c0, DEF_STR( 1C_4C ) ) |
| 561 | PORT_DIPNAME( 0x001c, 0x001c, DEF_STR( Coin_B ) ) | |
| 553 | PORT_DIPNAME( 0x001c, 0x001c, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SWA:6,5,4") | |
| 562 | 554 | PORT_DIPSETTING( 0x0000, DEF_STR( 5C_1C ) ) |
| 563 | 555 | PORT_DIPSETTING( 0x0010, DEF_STR( 4C_1C ) ) |
| 564 | 556 | PORT_DIPSETTING( 0x0008, DEF_STR( 3C_1C ) ) |
| r4470 | r4471 | |
| 567 | 559 | PORT_DIPSETTING( 0x000c, DEF_STR( 1C_2C ) ) |
| 568 | 560 | PORT_DIPSETTING( 0x0014, DEF_STR( 1C_3C ) ) |
| 569 | 561 | PORT_DIPSETTING( 0x0018, DEF_STR( 1C_4C ) ) |
| 570 | PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Flip_Screen ) ) | |
| 562 | PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SWA:7") | |
| 571 | 563 | PORT_DIPSETTING( 0x0002, DEF_STR( Off ) ) |
| 572 | 564 | PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) |
| 573 | PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Demo_Sounds ) ) | |
| 565 | PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SWA:8") | |
| 574 | 566 | PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) |
| 575 | 567 | PORT_DIPSETTING( 0x0001, DEF_STR( On ) ) |
| 576 | PORT_DIPNAME( 0xc000, 0xc000, DEF_STR( Lives ) ) | |
| 568 | PORT_DIPNAME( 0xc000, 0xc000, DEF_STR( Lives ) ) PORT_DIPLOCATION("SWB:2,1") | |
| 577 | 569 | PORT_DIPSETTING( 0x8000, "1" ) |
| 578 | 570 | PORT_DIPSETTING( 0xc000, "2" ) |
| 579 | 571 | PORT_DIPSETTING( 0x4000, "3" ) |
| 580 | 572 | /* PORT_DIPSETTING( 0x0000, "2" ) */ |
| 581 | 573 | /* When bit 0 is On, use bits 4 and 5 for difficulty */ |
| 582 | PORT_DIPNAME( 0x3000, 0x3000, "Difficulty (Tecmo Knight)" ) | |
| 574 | PORT_DIPNAME( 0x3000, 0x3000, "Difficulty (Tecmo Knight)" ) PORT_DIPLOCATION("SWB:4,3") | |
| 583 | 575 | PORT_DIPSETTING( 0x3000, DEF_STR( Easy ) ) |
| 584 | 576 | PORT_DIPSETTING( 0x1000, DEF_STR( Normal ) ) |
| 585 | 577 | PORT_DIPSETTING( 0x2000, DEF_STR( Hard ) ) |
| 586 | 578 | PORT_DIPSETTING( 0x0000, DEF_STR( Hardest ) ) |
| 587 | 579 | /* When bit 0 is 0ff, use bits 2 and 3 for difficulty */ |
| 588 | PORT_DIPNAME( 0x0c00, 0x0c00, "Difficulty (Wild Fang)" ) | |
| 580 | PORT_DIPNAME( 0x0c00, 0x0c00, "Difficulty (Wild Fang)" ) PORT_DIPLOCATION("SWB:6,5") | |
| 589 | 581 | PORT_DIPSETTING( 0x0c00, DEF_STR( Easy ) ) |
| 590 | 582 | PORT_DIPSETTING( 0x0400, DEF_STR( Normal ) ) |
| 591 | 583 | PORT_DIPSETTING( 0x0800, DEF_STR( Hard ) ) |
| 592 | 584 | PORT_DIPSETTING( 0x0000, DEF_STR( Hardest ) ) |
| 593 | PORT_DIPNAME( 0x0200, 0x0200, DEF_STR( Unused ) ) | |
| 594 | PORT_DIPSETTING( 0x0200, DEF_STR( Off ) ) | |
| 595 | PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) | |
| 596 | PORT_DIPNAME( 0x0100, 0x0100, "Title" ) // also affects Difficulty Table (see above) | |
| 585 | PORT_DIPUNKNOWN_DIPLOC( 0x0200, 0x0200, "SWB:7" ) | |
| 586 | PORT_DIPNAME( 0x0100, 0x0100, "Title" ) PORT_DIPLOCATION("SWB:8") // also affects Difficulty Table (see above) | |
| 597 | 587 | PORT_DIPSETTING( 0x0100, "Wild Fang" ) |
| 598 | 588 | PORT_DIPSETTING( 0x0000, "Tecmo Knight" ) |
| 599 | 589 | INPUT_PORTS_END |
| r4470 | r4471 | |
| 603 | 593 | |
| 604 | 594 | /* Dip Switches order fits the first screen */ |
| 605 | 595 | PORT_START("DSW") |
| 606 | PORT_DIPNAME( 0x00e0, 0x00e0, DEF_STR( Coin_A ) ) | |
| 596 | PORT_DIPNAME( 0x00e0, 0x00e0, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SWA:3,2,1") | |
| 607 | 597 | PORT_DIPSETTING( 0x0000, DEF_STR( 5C_1C ) ) |
| 608 | 598 | PORT_DIPSETTING( 0x0080, DEF_STR( 4C_1C ) ) |
| 609 | 599 | PORT_DIPSETTING( 0x0040, DEF_STR( 3C_1C ) ) |
| r4470 | r4471 | |
| 612 | 602 | PORT_DIPSETTING( 0x0060, DEF_STR( 1C_2C ) ) |
| 613 | 603 | PORT_DIPSETTING( 0x00a0, DEF_STR( 1C_3C ) ) |
| 614 | 604 | PORT_DIPSETTING( 0x00c0, DEF_STR( 1C_4C ) ) |
| 615 | PORT_DIPNAME( 0x001c, 0x001c, DEF_STR( Coin_B ) ) | |
| 605 | PORT_DIPNAME( 0x001c, 0x001c, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SWA:6,5,4") | |
| 616 | 606 | PORT_DIPSETTING( 0x0000, DEF_STR( 5C_1C ) ) |
| 617 | 607 | PORT_DIPSETTING( 0x0010, DEF_STR( 4C_1C ) ) |
| 618 | 608 | PORT_DIPSETTING( 0x0008, DEF_STR( 3C_1C ) ) |
| r4470 | r4471 | |
| 621 | 611 | PORT_DIPSETTING( 0x000c, DEF_STR( 1C_2C ) ) |
| 622 | 612 | PORT_DIPSETTING( 0x0014, DEF_STR( 1C_3C ) ) |
| 623 | 613 | PORT_DIPSETTING( 0x0018, DEF_STR( 1C_4C ) ) |
| 624 | PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Flip_Screen ) ) | |
| 614 | PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SWA:7") | |
| 625 | 615 | PORT_DIPSETTING( 0x0002, DEF_STR( Off ) ) |
| 626 | 616 | PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) |
| 627 | PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Demo_Sounds ) ) | |
| 617 | PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SWA:8") | |
| 628 | 618 | PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) |
| 629 | 619 | PORT_DIPSETTING( 0x0001, DEF_STR( On ) ) |
| 630 | PORT_DIPNAME( 0xc000, 0xc000, DEF_STR( Lives ) ) | |
| 620 | PORT_DIPNAME( 0xc000, 0xc000, DEF_STR( Lives ) ) PORT_DIPLOCATION("SWB:2,1") | |
| 631 | 621 | PORT_DIPSETTING( 0x8000, "1" ) |
| 632 | 622 | PORT_DIPSETTING( 0xc000, "2" ) |
| 633 | 623 | PORT_DIPSETTING( 0x4000, "3" ) |
| 634 | 624 | /* PORT_DIPSETTING( 0x0000, "2" ) */ |
| 635 | PORT_DIPNAME( 0x2000, 0x2000, DEF_STR( Unused ) ) | |
| 636 | PORT_DIPSETTING( 0x2000, DEF_STR( Off ) ) | |
| 637 | PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) | |
| 638 | PORT_DIPNAME( 0x1000, 0x1000, DEF_STR( Unused ) ) | |
| 639 | PORT_DIPSETTING( 0x1000, DEF_STR( Off ) ) | |
| 640 | PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) | |
| 641 | PORT_DIPNAME( 0x0c00, 0x0c00, DEF_STR( Difficulty ) ) | |
| 625 | PORT_DIPUNKNOWN_DIPLOC( 0x2000, 0x2000, "SWB:3" ) | |
| 626 | PORT_DIPUNKNOWN_DIPLOC( 0x1000, 0x1000, "SWB:4" ) | |
| 627 | PORT_DIPNAME( 0x0c00, 0x0c00, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SWB:6,5") | |
| 642 | 628 | PORT_DIPSETTING( 0x0c00, DEF_STR( Easy ) ) |
| 643 | 629 | PORT_DIPSETTING( 0x0400, DEF_STR( Normal ) ) |
| 644 | 630 | PORT_DIPSETTING( 0x0800, DEF_STR( Hard ) ) |
| 645 | 631 | PORT_DIPSETTING( 0x0000, DEF_STR( Hardest ) ) |
| 646 | PORT_DIPNAME( 0x0200, 0x0200, DEF_STR( Unused ) ) | |
| 647 | PORT_DIPSETTING( 0x0200, DEF_STR( Off ) ) | |
| 648 | PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) | |
| 649 | PORT_DIPNAME( 0x0100, 0x0100, DEF_STR( Unused ) ) | |
| 650 | PORT_DIPSETTING( 0x0100, DEF_STR( Off ) ) | |
| 651 | PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) | |
| 632 | PORT_DIPUNKNOWN_DIPLOC( 0x0200, 0x0200, "SWB:7" ) | |
| 633 | PORT_DIPUNKNOWN_DIPLOC( 0x0100, 0x0100, "SWB:8" ) | |
| 652 | 634 | INPUT_PORTS_END |
| 653 | 635 | |
| 654 | 636 | static INPUT_PORTS_START( raiga ) |
| r4470 | r4471 | |
| 660 | 642 | |
| 661 | 643 | /* Dip Switches order fits the first screen */ |
| 662 | 644 | PORT_START("DSW") |
| 663 | PORT_DIPNAME( 0x00f0, 0x00f0, DEF_STR( Coin_A ) ) | |
| 645 | PORT_DIPNAME( 0x00f0, 0x00f0, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SWA:4,3,2,1") | |
| 664 | 646 | PORT_DIPSETTING( 0x0000, DEF_STR( 5C_1C ) ) |
| 665 | 647 | PORT_DIPSETTING( 0x0040, DEF_STR( 4C_1C ) ) |
| 666 | 648 | PORT_DIPSETTING( 0x00a0, DEF_STR( 3C_1C ) ) |
| r4470 | r4471 | |
| 677 | 659 | PORT_DIPSETTING( 0x00d0, DEF_STR( 1C_5C ) ) |
| 678 | 660 | PORT_DIPSETTING( 0x0050, DEF_STR( 1C_6C ) ) |
| 679 | 661 | PORT_DIPSETTING( 0x0090, DEF_STR( 1C_7C ) ) |
| 680 | PORT_DIPNAME( 0x000f, 0x000f, DEF_STR( Coin_B ) ) | |
| 662 | PORT_DIPNAME( 0x000f, 0x000f, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SWA:8,7,6,5") | |
| 681 | 663 | PORT_DIPSETTING( 0x0000, DEF_STR( 5C_1C ) ) |
| 682 | 664 | PORT_DIPSETTING( 0x0004, DEF_STR( 4C_1C ) ) |
| 683 | 665 | PORT_DIPSETTING( 0x000a, DEF_STR( 3C_1C ) ) |
| r4470 | r4471 | |
| 694 | 676 | PORT_DIPSETTING( 0x000d, DEF_STR( 1C_5C ) ) |
| 695 | 677 | PORT_DIPSETTING( 0x0005, DEF_STR( 1C_6C ) ) |
| 696 | 678 | PORT_DIPSETTING( 0x0009, DEF_STR( 1C_7C ) ) |
| 697 | PORT_DIPNAME( 0x8000, 0x0000, DEF_STR( Demo_Sounds ) ) | |
| 679 | PORT_DIPNAME( 0x8000, 0x0000, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SWB:1") | |
| 698 | 680 | PORT_DIPSETTING( 0x8000, DEF_STR( Off ) ) |
| 699 | 681 | PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) |
| 700 | PORT_DIPNAME( 0x4000, 0x4000, DEF_STR( Unused ) ) | |
| 701 | PORT_DIPSETTING( 0x4000, DEF_STR( Off ) ) | |
| 702 | PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) | |
| 703 | PORT_DIPNAME( 0x3000, 0x1000, DEF_STR( Difficulty ) ) | |
| 682 | PORT_DIPUNKNOWN_DIPLOC( 0x4000, 0x4000, "SWB:2" ) | |
| 683 | PORT_DIPNAME( 0x3000, 0x1000, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SWB:4,3") | |
| 704 | 684 | PORT_DIPSETTING( 0x3000, DEF_STR( Easy ) ) |
| 705 | 685 | PORT_DIPSETTING( 0x1000, DEF_STR( Normal ) ) |
| 706 | 686 | PORT_DIPSETTING( 0x2000, DEF_STR( Hard ) ) |
| 707 | 687 | PORT_DIPSETTING( 0x0000, DEF_STR( Hardest ) ) |
| 708 | PORT_DIPNAME( 0x0c00, 0x0c00, DEF_STR( Lives ) ) | |
| 688 | PORT_DIPNAME( 0x0c00, 0x0c00, DEF_STR( Lives ) ) PORT_DIPLOCATION("SWB:6,5") | |
| 709 | 689 | PORT_DIPSETTING( 0x0000, "2" ) |
| 710 | 690 | PORT_DIPSETTING( 0x0c00, "3" ) |
| 711 | 691 | PORT_DIPSETTING( 0x0400, "4" ) |
| 712 | 692 | PORT_DIPSETTING( 0x0800, "5" ) |
| 713 | PORT_DIPNAME( 0x0300, 0x0300, DEF_STR( Bonus_Life ) ) | |
| 693 | PORT_DIPNAME( 0x0300, 0x0300, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SWB:8,7") | |
| 714 | 694 | PORT_DIPSETTING( 0x0300, "50k 200k" ) |
| 715 | 695 | PORT_DIPSETTING( 0x0100, "100k 300k" ) |
| 716 | 696 | PORT_DIPSETTING( 0x0200, "50k only" ) |
| r4470 | r4471 | |
| 722 | 702 | |
| 723 | 703 | /* Dip Switches order fits the first screen */ |
| 724 | 704 | PORT_START("DSW") |
| 725 | PORT_DIPNAME( 0x00e0, 0x00e0, DEF_STR( Coin_A ) ) | |
| 705 | PORT_DIPNAME( 0x00e0, 0x00e0, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SWA:3,2,1") | |
| 726 | 706 | PORT_DIPSETTING( 0x0000, DEF_STR( 5C_1C ) ) |
| 727 | 707 | PORT_DIPSETTING( 0x0080, DEF_STR( 4C_1C ) ) |
| 728 | 708 | PORT_DIPSETTING( 0x0040, DEF_STR( 3C_1C ) ) |
| r4470 | r4471 | |
| 731 | 711 | PORT_DIPSETTING( 0x0060, DEF_STR( 1C_2C ) ) |
| 732 | 712 | PORT_DIPSETTING( 0x00a0, DEF_STR( 1C_3C ) ) |
| 733 | 713 | PORT_DIPSETTING( 0x00c0, DEF_STR( 1C_4C ) ) |
| 734 | PORT_DIPNAME( 0x001c, 0x001c, DEF_STR( Coin_B ) ) | |
| 714 | PORT_DIPNAME( 0x001c, 0x001c, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SWA:6,5,4") | |
| 735 | 715 | PORT_DIPSETTING( 0x0000, DEF_STR( 5C_1C ) ) |
| 736 | 716 | PORT_DIPSETTING( 0x0010, DEF_STR( 4C_1C ) ) |
| 737 | 717 | PORT_DIPSETTING( 0x0008, DEF_STR( 3C_1C ) ) |
| r4470 | r4471 | |
| 740 | 720 | PORT_DIPSETTING( 0x000c, DEF_STR( 1C_2C ) ) |
| 741 | 721 | PORT_DIPSETTING( 0x0014, DEF_STR( 1C_3C ) ) |
| 742 | 722 | PORT_DIPSETTING( 0x0018, DEF_STR( 1C_4C ) ) |
| 743 | PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Unknown ) ) | |
| 744 | PORT_DIPSETTING( 0x0002, DEF_STR( Off ) ) | |
| 745 | PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) | |
| 746 | PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Demo_Sounds ) ) | |
| 723 | PORT_DIPUNKNOWN_DIPLOC( 0x0002, 0x0002, "SWA:7" ) | |
| 724 | PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SWA:8") | |
| 747 | 725 | PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) |
| 748 | 726 | PORT_DIPSETTING( 0x0001, DEF_STR( On ) ) |
| 749 | PORT_DIPNAME( 0xc000, 0xc000, DEF_STR( Lives ) ) | |
| 727 | PORT_DIPNAME( 0xc000, 0xc000, DEF_STR( Lives ) ) PORT_DIPLOCATION("SWB:2,1") | |
| 750 | 728 | PORT_DIPSETTING( 0x0000, "1" ) |
| 751 | 729 | PORT_DIPSETTING( 0xc000, "2" ) |
| 752 | 730 | PORT_DIPSETTING( 0x4000, "3" ) |
| 753 | 731 | PORT_DIPSETTING( 0x8000, "4" ) |
| 754 | PORT_DIPNAME( 0x3000, 0x3000, "Energy" ) | |
| 732 | PORT_DIPNAME( 0x3000, 0x3000, "Energy" ) PORT_DIPLOCATION("SWB:4,3") | |
| 755 | 733 | PORT_DIPSETTING( 0x0000, "2" ) |
| 756 | 734 | PORT_DIPSETTING( 0x3000, "3" ) |
| 757 | 735 | PORT_DIPSETTING( 0x1000, "4" ) |
| 758 | 736 | PORT_DIPSETTING( 0x2000, "5" ) |
| 759 | PORT_DIPNAME( 0x0800, 0x0800, DEF_STR( Unused ) ) | |
| 760 | PORT_DIPSETTING( 0x0800, DEF_STR( Off ) ) | |
| 761 | PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) | |
| 762 | PORT_DIPNAME( 0x0400, 0x0400, DEF_STR( Unused ) ) | |
| 763 | PORT_DIPSETTING( 0x0400, DEF_STR( Off ) ) | |
| 764 | PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) | |
| 765 | PORT_DIPNAME( 0x0200, 0x0200, DEF_STR( Unused ) ) | |
| 766 | PORT_DIPSETTING( 0x0200, DEF_STR( Off ) ) | |
| 767 | PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) | |
| 768 | PORT_DIPNAME( 0x0100, 0x0100, DEF_STR( Unused ) ) | |
| 769 | PORT_DIPSETTING( 0x0100, DEF_STR( Off ) ) | |
| 770 | PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) | |
| 737 | PORT_DIPUNKNOWN_DIPLOC( 0x0800, 0x0800, "SWB:5" ) | |
| 738 | PORT_DIPUNKNOWN_DIPLOC( 0x0400, 0x0400, "SWB:6" ) | |
| 739 | PORT_DIPUNKNOWN_DIPLOC( 0x0200, 0x0200, "SWB:7" ) | |
| 740 | PORT_DIPUNKNOWN_DIPLOC( 0x0100, 0x0100, "SWB:8" ) | |
| 771 | 741 | INPUT_PORTS_END |
| 772 | 742 | |
| 773 | 743 |
| r4470 | r4471 | |
|---|---|---|
| 245 | 245 | |
| 246 | 246 | static ADDRESS_MAP_START( chinhero_main_map, ADDRESS_SPACE_PROGRAM, 8 ) |
| 247 | 247 | AM_RANGE(0x0000, 0x9fff) AM_ROM |
| 248 | AM_RANGE(0xa000, 0xa000) AM_WRITE | |
| 248 | AM_RANGE(0xa000, 0xa000) AM_WRITE | |
| 249 | 249 | AM_RANGE(0xb000, 0xb000) AM_WRITE(shangkid_bbx_enable_w) |
| 250 | 250 | AM_RANGE(0xb001, 0xb001) AM_WRITE(shangkid_sound_enable_w) |
| 251 | AM_RANGE(0xb002, 0xb002) AM_WRITE(SMH_NOP) /* main CPU interrupt-related */ | |
| 252 | AM_RANGE(0xb003, 0xb003) AM_WRITE(SMH_NOP) /* BBX interrupt-related */ | |
| 251 | AM_RANGE(0xb002, 0xb002) AM_WRITENOP /* main CPU interrupt-related */ | |
| 252 | AM_RANGE(0xb003, 0xb003) AM_WRITENOP /* BBX interrupt-related */ | |
| 253 | 253 | AM_RANGE(0xb004, 0xb004) AM_WRITE(shangkid_cpu_reset_w) |
| 254 | AM_RANGE(0xb006, 0xb006) AM_WRITE | |
| 254 | AM_RANGE(0xb006, 0xb006) AM_WRITE | |
| 255 | 255 | AM_RANGE(0xb800, 0xb800) AM_READ_PORT("DSW") |
| 256 | 256 | AM_RANGE(0xb801, 0xb801) AM_READ_PORT("SYSTEM") |
| 257 | 257 | AM_RANGE(0xb802, 0xb802) AM_READ_PORT("P2") |
| r4470 | r4471 | |
| 265 | 265 | static ADDRESS_MAP_START( shangkid_main_map, ADDRESS_SPACE_PROGRAM, 8 ) |
| 266 | 266 | AM_RANGE(0x0000, 0x7fff) AM_ROM |
| 267 | 267 | AM_RANGE(0x8000, 0x9fff) AM_ROMBANK(1) |
| 268 | AM_RANGE(0xa000, 0xa000) AM_WRITE | |
| 268 | AM_RANGE(0xa000, 0xa000) AM_WRITE | |
| 269 | 269 | AM_RANGE(0xb000, 0xb000) AM_WRITE(shangkid_bbx_enable_w) |
| 270 | 270 | AM_RANGE(0xb001, 0xb001) AM_WRITE(shangkid_sound_enable_w) |
| 271 | AM_RANGE(0xb002, 0xb002) AM_WRITE(SMH_NOP) /* main CPU interrupt-related */ | |
| 272 | AM_RANGE(0xb003, 0xb003) AM_WRITE(SMH_NOP) /* BBX interrupt-related */ | |
| 271 | AM_RANGE(0xb002, 0xb002) AM_WRITENOP /* main CPU interrupt-related */ | |
| 272 | AM_RANGE(0xb003, 0xb003) AM_WRITENOP /* BBX interrupt-related */ | |
| 273 | 273 | AM_RANGE(0xb004, 0xb004) AM_WRITE(shangkid_cpu_reset_w) |
| 274 | AM_RANGE(0xb006, 0xb006) AM_WRITE | |
| 274 | AM_RANGE(0xb006, 0xb006) AM_WRITE | |
| 275 | 275 | AM_RANGE(0xb007, 0xb007) AM_WRITE(shangkid_maincpu_bank_w) |
| 276 | 276 | AM_RANGE(0xb800, 0xb800) AM_READ_PORT("DSW") |
| 277 | 277 | AM_RANGE(0xb801, 0xb801) AM_READ_PORT("SYSTEM") |
| r4470 | r4471 | |
| 287 | 287 | |
| 288 | 288 | static ADDRESS_MAP_START( chinhero_bbx_map, ADDRESS_SPACE_PROGRAM, 8 ) |
| 289 | 289 | AM_RANGE(0x0000, 0x9fff) AM_ROM |
| 290 | AM_RANGE(0xa000, 0xa000) AM_WRITE | |
| 290 | AM_RANGE(0xa000, 0xa000) AM_WRITE | |
| 291 | 291 | AM_RANGE(0xb000, 0xb000) AM_WRITE(shangkid_bbx_enable_w) |
| 292 | 292 | AM_RANGE(0xb001, 0xb001) AM_WRITE(shangkid_sound_enable_w) |
| 293 | AM_RANGE(0xb002, 0xb002) AM_WRITE(SMH_NOP) /* main CPU interrupt-related */ | |
| 294 | AM_RANGE(0xb003, 0xb003) AM_WRITE(SMH_NOP) /* BBX interrupt-related */ | |
| 293 | AM_RANGE(0xb002, 0xb002) AM_WRITENOP /* main CPU interrupt-related */ | |
| 294 | AM_RANGE(0xb003, 0xb003) AM_WRITENOP /* BBX interrupt-related */ | |
| 295 | 295 | AM_RANGE(0xb004, 0xb004) AM_WRITE(shangkid_cpu_reset_w) |
| 296 | AM_RANGE(0xb006, 0xb006) AM_WRITE | |
| 296 | AM_RANGE(0xb006, 0xb006) AM_WRITE | |
| 297 | 297 | AM_RANGE(0xb800, 0xb800) AM_READ_PORT("DSW") |
| 298 | 298 | AM_RANGE(0xb801, 0xb801) AM_READ_PORT("SYSTEM") |
| 299 | 299 | AM_RANGE(0xb802, 0xb802) AM_READ_PORT("P2") |
| r4470 | r4471 | |
| 305 | 305 | |
| 306 | 306 | static ADDRESS_MAP_START( shangkid_bbx_map, ADDRESS_SPACE_PROGRAM, 8 ) |
| 307 | 307 | AM_RANGE(0x0000, 0x9fff) AM_ROM |
| 308 | AM_RANGE(0xa000, 0xa000) AM_WRITE | |
| 308 | AM_RANGE(0xa000, 0xa000) AM_WRITE | |
| 309 | 309 | AM_RANGE(0xb000, 0xb000) AM_WRITE(shangkid_bbx_enable_w) |
| 310 | 310 | AM_RANGE(0xb001, 0xb001) AM_WRITE(shangkid_sound_enable_w) |
| 311 | AM_RANGE(0xb002, 0xb002) AM_WRITE(SMH_NOP) /* main CPU interrupt-related */ | |
| 312 | AM_RANGE(0xb003, 0xb003) AM_WRITE(SMH_NOP) /* BBX interrupt-related */ | |
| 311 | AM_RANGE(0xb002, 0xb002) AM_WRITENOP /* main CPU interrupt-related */ | |
| 312 | AM_RANGE(0xb003, 0xb003) AM_WRITENOP /* BBX interrupt-related */ | |
| 313 | 313 | AM_RANGE(0xb004, 0xb004) AM_WRITE(shangkid_cpu_reset_w) |
| 314 | AM_RANGE(0xb006, 0xb006) AM_WRITE | |
| 314 | AM_RANGE(0xb006, 0xb006) AM_WRITE | |
| 315 | 315 | AM_RANGE(0xb007, 0xb007) AM_WRITE(shangkid_maincpu_bank_w) |
| 316 | 316 | AM_RANGE(0xb800, 0xb800) AM_READ_PORT("DSW") |
| 317 | 317 | AM_RANGE(0xb801, 0xb801) AM_READ_PORT("SYSTEM") |
| r4470 | r4471 | |
|---|---|---|
| 18 | 18 | ***************************************************************************/ |
| 19 | 19 | |
| 20 | 20 | #include "driver.h" |
| 21 | #include "trackfld.h" | |
| 21 | 22 | #include "cpu/z80/z80.h" |
| 22 | 23 | #include "cpu/m6800/m6800.h" |
| 23 | 24 | #include "machine/konami1.h" |
| r4470 | r4471 | |
| 27 | 28 | #include "sound/dac.h" |
| 28 | 29 | #include "sound/msm5205.h" |
| 29 | 30 | |
| 31 | #define MASTER_CLOCK XTAL_18_432MHz | |
| 32 | #define SOUND_CLOCK XTAL_14_31818MHz | |
| 33 | #define VLM_CLOCK XTAL_3_579545MHz | |
| 30 | 34 | |
| 31 | extern UINT8 *trackfld_scroll; | |
| 32 | extern UINT8 *trackfld_scroll2; | |
| 33 | 35 | |
| 34 | WRITE8_HANDLER( trackfld_videoram_w ); | |
| 35 | WRITE8_HANDLER( trackfld_colorram_w ); | |
| 36 | WRITE8_HANDLER( trackfld_flipscreen_w ); | |
| 37 | WRITE8_HANDLER( atlantol_gfxbank_w ); | |
| 36 | static UINT8 hyprolyb_adpcm_ready; | |
| 37 | static UINT8 hyprolyb_adpcm_busy; | |
| 38 | static UINT8 hyprolyb_vck_ready; | |
| 38 | 39 | |
| 39 | PALETTE_INIT( trackfld ); | |
| 40 | VIDEO_START( trackfld ); | |
| 41 | VIDEO_UPDATE( trackfld ); | |
| 42 | 40 | |
| 43 | WRITE8_HANDLER( konami_sh_irqtrigger_w ); | |
| 44 | READ8_HANDLER( trackfld_sh_timer_r ); | |
| 45 | READ8_DEVICE_HANDLER( trackfld_speech_r ); | |
| 46 | WRITE8_DEVICE_HANDLER( trackfld_sound_w ); | |
| 47 | READ8_HANDLER( hyprolyb_speech_r ); | |
| 48 | WRITE8_HANDLER( hyprolyb_ADPCM_data_w ); | |
| 41 | static WRITE8_HANDLER( coin_w ) | |
| 42 | { | |
| 43 | coin_counter_w(offset,data & 1); | |
| 44 | } | |
| 49 | 45 | |
| 50 | /* | |
| 51 | Track'n'Field has 1k of battery backed RAM which can be erased by setting a dipswitch | |
| 52 | */ | |
| 53 | static UINT8 *nvram; | |
| 54 | static size_t nvram_size; | |
| 46 | static WRITE8_HANDLER( questions_bank_w ) | |
| 47 | { | |
| 48 | if (!(data & 0x01)) | |
| 49 | memory_set_bank(space->machine, 1, 0); | |
| 50 | else if (!(data & 0x02)) | |
| 51 | memory_set_bank(space->machine, 1, 1); | |
| 52 | else if (!(data & 0x04)) | |
| 53 | memory_set_bank(space->machine, 1, 2); | |
| 54 | else if (!(data & 0x08)) | |
| 55 | memory_set_bank(space->machine, 1, 3); | |
| 56 | else if (!(data & 0x10)) | |
| 57 | memory_set_bank(space->machine, 1, 4); | |
| 58 | else if (!(data & 0x20)) | |
| 59 | memory_set_bank(space->machine, 1, 5); | |
| 60 | else if (!(data & 0x40)) | |
| 61 | memory_set_bank(space->machine, 1, 6); | |
| 62 | else if (!(data & 0x80)) | |
| 63 | memory_set_bank(space->machine, 1, 7); | |
| 64 | } | |
| 55 | 65 | |
| 56 | static | |
| 66 | static W | |
| 57 | 67 | { |
| 58 | if (read_or_write) | |
| 59 | mame_fwrite(file,nvram,nvram_size); | |
| 60 | else if (file) | |
| 61 | mame_fread(file,nvram,nvram_size); | |
| 68 | soundlatch2_w(space, offset, data); | |
| 69 | hyprolyb_adpcm_ready = 0x80; | |
| 62 | 70 | } |
| 63 | 71 | |
| 64 | static | |
| 72 | static | |
| 65 | 73 | { |
| 66 | if (read_or_write) | |
| 67 | mame_fwrite(file,nvram,nvram_size); | |
| 68 | else | |
| 69 | { | |
| 70 | if (file) | |
| 71 | mame_fread(file,nvram,nvram_size); | |
| 72 | } | |
| 74 | return hyprolyb_adpcm_busy ? 0x10 : 0x00; | |
| 73 | 75 | } |
| 74 | 76 | |
| 75 | static WRITE8_HANDLER( | |
| 77 | static WRITE8_DEVICE_HANDLER( hyprolyb_msm_data_w ) | |
| 76 | 78 | { |
| 77 | coin_counter_w(offset,data & 1); | |
| 79 | msm5205_data_w(device, data); | |
| 80 | hyprolyb_adpcm_busy = ~data & 0x80; | |
| 78 | 81 | } |
| 79 | 82 | |
| 80 | static | |
| 83 | static | |
| 81 | 84 | { |
| 82 | if( data != 0xff ) | |
| 83 | { | |
| 84 | UINT8 *questions = memory_region(space->machine, "user1"); | |
| 85 | int bankaddr = 0; | |
| 85 | UINT8 old = hyprolyb_vck_ready; | |
| 86 | hyprolyb_vck_ready = 0x00; | |
| 87 | return old; | |
| 88 | } | |
| 86 | 89 | |
| 87 | switch( ~data & 0xff ) | |
| 88 | { | |
| 89 | case 0x01: | |
| 90 | bankaddr = 0; | |
| 91 | break; | |
| 92 | case 0x02: | |
| 93 | bankaddr = 0x8000; | |
| 94 | break; | |
| 95 | case 0x04: | |
| 96 | bankaddr = 0x10000; | |
| 97 | break; | |
| 98 | case 0x08: | |
| 99 | bankaddr = 0x18000; | |
| 100 | break; | |
| 101 | case 0x10: | |
| 102 | bankaddr = 0x20000; | |
| 103 | break; | |
| 104 | case 0x20: | |
| 105 | bankaddr = 0x28000; | |
| 106 | break; | |
| 107 | case 0x40: | |
| 108 | bankaddr = 0x30000; | |
| 109 | break; | |
| 110 | case 0x80: | |
| 111 | bankaddr = 0x38000; | |
| 112 | break; | |
| 113 | } | |
| 90 | static READ8_HANDLER( hyprolyb_adpcm_ready_r ) | |
| 91 | { | |
| 92 | return hyprolyb_adpcm_ready; | |
| 93 | } | |
| 114 | 94 | |
| 115 | memory_set_bankptr(space->machine, 1,&questions[bankaddr]); | |
| 116 | } | |
| 95 | static READ8_HANDLER( hyprolyb_adpcm_data_r ) | |
| 96 | { | |
| 97 | hyprolyb_adpcm_ready = 0x00; | |
| 98 | return soundlatch2_r(space, offset); | |
| 117 | 99 | } |
| 118 | 100 | |
| 119 | 101 | |
| 120 | static ADDRESS_MAP_START( readmem, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 121 | AM_RANGE(0x1200, 0x1200) AM_READ_PORT("DSW2") | |
| 122 | AM_RANGE(0x1280, 0x1280) AM_READ_PORT("SYSTEM") | |
| 123 | AM_RANGE(0x1281, 0x1281) AM_READ_PORT("IN0") | |
| 124 | AM_RANGE(0x1282, 0x1282) AM_READ_PORT("IN1") | |
| 125 | AM_RANGE(0x1283, 0x1283) AM_READ_PORT("DSW1") | |
| 126 | AM_RANGE(0x1800, 0x1fff) AM_READ(SMH_RAM) | |
| 127 | AM_RANGE(0x2800, 0x3fff) AM_READ(SMH_RAM) | |
| 128 | AM_RANGE(0x6000, 0xffff) AM_READ(SMH_ROM) | |
| 129 | 102 | |
| 130 | AM_RANGE(0x0000, 0x5fff) AM_READ(SMH_ROM) /* for atlantol (everything not mapped is read from rom) */ | |
| 103 | static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 104 | AM_RANGE(0x1000, 0x1000) AM_MIRROR(0x007f) AM_WRITE(watchdog_reset_w) /* AFE */ | |
| 105 | AM_RANGE(0x1080, 0x1080) AM_MIRROR(0x0078) AM_WRITE(trackfld_flipscreen_w) /* FLIP */ | |
| 106 | AM_RANGE(0x1081, 0x1081) AM_MIRROR(0x0078) AM_WRITE(konami_sh_irqtrigger_w) /* 26 */ /* cause interrupt on audio CPU */ | |
| 107 | AM_RANGE(0x1082, 0x1082) AM_MIRROR(0x0078) AM_WRITENOP /* 25 */ | |
| 108 | AM_RANGE(0x1083, 0x1084) AM_MIRROR(0x0078) AM_WRITE(coin_w) /* 24, 23 */ | |
| 109 | AM_RANGE(0x1085, 0x1085) AM_MIRROR(0x0078) AM_WRITENOP /* CN3.2 */ | |
| 110 | AM_RANGE(0x1086, 0x1086) AM_MIRROR(0x0078) AM_WRITENOP /* CN3.4 */ | |
| 111 | AM_RANGE(0x1087, 0x1087) AM_MIRROR(0x0078) AM_WRITE(interrupt_enable_w) /* INT */ | |
| 112 | AM_RANGE(0x1100, 0x1100) AM_MIRROR(0x007f) AM_WRITE(soundlatch_w) /* 32 */ | |
| 113 | AM_RANGE(0x1200, 0x1200) AM_MIRROR(0x007f) AM_READ_PORT("DSW2") | |
| 114 | AM_RANGE(0x1280, 0x1280) AM_MIRROR(0x007c) AM_READ_PORT("SYSTEM") | |
| 115 | AM_RANGE(0x1281, 0x1281) AM_MIRROR(0x007c) AM_READ_PORT("IN0") | |
| 116 | AM_RANGE(0x1282, 0x1282) AM_MIRROR(0x007c) AM_READ_PORT("IN1") | |
| 117 | AM_RANGE(0x1283, 0x1283) AM_MIRROR(0x007c) AM_READ_PORT("DSW1") | |
| 118 | /* not used according to schems: AM_RANGE(0x1300, 0x1300) AM_MIRROR(0x007f) AM_READ_PORT("DSW3") */ | |
| 119 | AM_RANGE(0x1800, 0x183f) AM_RAM AM_BASE(&spriteram_2) | |
| 120 | AM_RANGE(0x1840, 0x185f) AM_RAM AM_BASE(&trackfld_scroll) | |
| 121 | AM_RANGE(0x1860, 0x1bff) AM_RAM | |
| 122 | AM_RANGE(0x1c00, 0x1c3f) AM_RAM AM_BASE(&spriteram) AM_SIZE(&spriteram_size) | |
| 123 | AM_RANGE(0x1c40, 0x1c5f) AM_RAM AM_BASE(&trackfld_scroll2) | |
| 124 | AM_RANGE(0x1c60, 0x1fff) AM_RAM | |
| 125 | AM_RANGE(0x2800, 0x2fff) AM_RAM AM_BASE(&generic_nvram) AM_SIZE(&generic_nvram_size) | |
| 126 | AM_RANGE(0x3000, 0x37ff) AM_RAM_WRITE(trackfld_videoram_w) AM_BASE(&videoram) | |
| 127 | AM_RANGE(0x3800, 0x3fff) AM_RAM_WRITE(trackfld_colorram_w) AM_BASE(&colorram) | |
| 128 | AM_RANGE(0x6000, 0xffff) AM_ROM | |
| 131 | 129 | ADDRESS_MAP_END |
| 132 | 130 | |
| 133 | static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 134 | AM_RANGE(0x0800, 0x0800) AM_WRITE(atlantol_gfxbank_w) | |
| 135 | AM_RANGE(0x1000, 0x1000) AM_WRITE(watchdog_reset_w) | |
| 136 | AM_RANGE(0x1080, 0x1080) AM_WRITE(trackfld_flipscreen_w) | |
| 137 | AM_RANGE(0x1081, 0x1081) AM_WRITE(konami_sh_irqtrigger_w) /* cause interrupt on audio CPU */ | |
| 138 | AM_RANGE(0x1083, 0x1084) AM_WRITE(coin_w) | |
| 139 | AM_RANGE(0x1087, 0x1087) AM_WRITE(interrupt_enable_w) | |
| 140 | AM_RANGE(0x1100, 0x1100) AM_WRITE(soundlatch_w) | |
| 141 | AM_RANGE(0x1800, 0x183f) AM_WRITE(SMH_RAM) AM_BASE(&spriteram_2) | |
| 142 | AM_RANGE(0x1840, 0x185f) AM_WRITE(SMH_RAM) AM_BASE(&trackfld_scroll) | |
| 143 | AM_RANGE(0x1860, 0x1bff) AM_WRITE(SMH_RAM) | |
| 144 | AM_RANGE(0x1c00, 0x1c3f) AM_WRITE(SMH_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size) | |
| 145 | AM_RANGE(0x1c40, 0x1c5f) AM_WRITE(SMH_RAM) AM_BASE(&trackfld_scroll2) | |
| 146 | AM_RANGE(0x1c60, 0x1fff) AM_WRITE(SMH_RAM) | |
| 147 | AM_RANGE(0x2800, 0x2bff) AM_WRITE(SMH_RAM) | |
| 148 | AM_RANGE(0x2c00, 0x2fff) AM_WRITE(SMH_RAM) AM_BASE(&nvram) AM_SIZE(&nvram_size) | |
| 149 | AM_RANGE(0x3000, 0x37ff) AM_WRITE(trackfld_videoram_w) AM_BASE(&videoram) | |
| 150 | AM_RANGE(0x3800, 0x3fff) AM_WRITE(trackfld_colorram_w) AM_BASE(&colorram) | |
| 151 | AM_RANGE(0x6000, 0xffff) AM_WRITE(SMH_ROM) | |
| 152 | ADDRESS_MAP_END | |
| 153 | ||
| 154 | static ADDRESS_MAP_START( reaktor_readmem, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 155 | AM_RANGE(0x0000, 0x7fff) AM_READ(SMH_ROM) | |
| 131 | static ADDRESS_MAP_START( reaktor_map, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 132 | AM_RANGE(0x0000, 0x7fff) AM_ROM | |
| 156 | 133 | /* all usual addresses +0x8000 */ |
| 157 | AM_RANGE(0x9200, 0x9200) AM_READ_PORT("DSW2") | |
| 158 | AM_RANGE(0x9280, 0x9280) AM_READ_PORT("SYSTEM") | |
| 159 | AM_RANGE(0x9281, 0x9281) AM_READ_PORT("IN0") | |
| 160 | AM_RANGE(0x9282, 0x9282) AM_READ_PORT("IN1") | |
| 161 | AM_RANGE(0x9283, 0x9283) AM_READ_PORT("DSW1") | |
| 162 | AM_RANGE(0x9800, 0x9fff) AM_READ(SMH_RAM) | |
| 163 | AM_RANGE(0xa800, 0xbfff) AM_READ(SMH_RAM) | |
| 164 | ADDRESS_MAP_END | |
| 165 | ||
| 166 | static ADDRESS_MAP_START( reaktor_writemem, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 167 | AM_RANGE(0x0000, 0x7fff) AM_WRITE(SMH_ROM) | |
| 168 | /* all usual addresses +0x8000 */ | |
| 169 | 134 | AM_RANGE(0x9000, 0x9000) AM_WRITE(watchdog_reset_w) |
| 170 | 135 | AM_RANGE(0x9080, 0x9080) AM_WRITE(trackfld_flipscreen_w) |
| 171 | 136 | AM_RANGE(0x9081, 0x9081) AM_WRITE(konami_sh_irqtrigger_w) /* cause interrupt on audio CPU */ |
| 172 | 137 | AM_RANGE(0x9083, 0x9084) AM_WRITE(coin_w) |
| 173 | 138 | AM_RANGE(0x9087, 0x9087) AM_WRITE(interrupt_enable_w) |
| 174 | 139 | AM_RANGE(0x9100, 0x9100) AM_WRITE(soundlatch_w) |
| 175 | AM_RANGE(0x9800, 0x983f) AM_WRITE(SMH_RAM) AM_BASE(&spriteram_2) | |
| 176 | AM_RANGE(0x9840, 0x985f) AM_WRITE(SMH_RAM) AM_BASE(&trackfld_scroll) | |
| 177 | AM_RANGE(0x9860, 0x9bff) AM_WRITE(SMH_RAM) | |
| 178 | AM_RANGE(0x9c00, 0x9c3f) AM_WRITE(SMH_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size) | |
| 179 | AM_RANGE(0x9c40, 0x9c5f) AM_WRITE(SMH_RAM) AM_BASE(&trackfld_scroll2) | |
| 180 | AM_RANGE(0x9c60, 0x9fff) AM_WRITE(SMH_RAM) | |
| 181 | AM_RANGE(0xa800, 0xabff) AM_WRITE(SMH_RAM) | |
| 182 | AM_RANGE(0xac00, 0xafff) AM_WRITE(SMH_RAM) AM_BASE(&nvram) AM_SIZE(&nvram_size) | |
| 183 | AM_RANGE(0xb000, 0xb7ff) AM_WRITE(trackfld_videoram_w) AM_BASE(&videoram) | |
| 184 | AM_RANGE(0xb800, 0xbfff) AM_WRITE(trackfld_colorram_w) AM_BASE(&colorram) | |
| 140 | AM_RANGE(0x9200, 0x9200) AM_READ_PORT("DSW2") | |
| 141 | AM_RANGE(0x9280, 0x9280) AM_READ_PORT("SYSTEM") | |
| 142 | AM_RANGE(0x9281, 0x9281) AM_READ_PORT("IN0") | |
| 143 | AM_RANGE(0x9282, 0x9282) AM_READ_PORT("IN1") | |
| 144 | AM_RANGE(0x9283, 0x9283) AM_READ_PORT("DSW1") | |
| 145 | AM_RANGE(0x9800, 0x983f) AM_RAM AM_BASE(&spriteram_2) | |
| 146 | AM_RANGE(0x9840, 0x985f) AM_RAM AM_BASE(&trackfld_scroll) | |
| 147 | AM_RANGE(0x9860, 0x9bff) AM_RAM | |
| 148 | AM_RANGE(0x9c00, 0x9c3f) AM_RAM AM_BASE(&spriteram) AM_SIZE(&spriteram_size) | |
| 149 | AM_RANGE(0x9c40, 0x9c5f) AM_RAM AM_BASE(&trackfld_scroll2) | |
| 150 | AM_RANGE(0x9c60, 0x9fff) AM_RAM | |
| 151 | AM_RANGE(0xa800, 0xabff) AM_RAM | |
| 152 | AM_RANGE(0xac00, 0xafff) AM_RAM AM_BASE(&generic_nvram) AM_SIZE(&generic_nvram_size) | |
| 153 | AM_RANGE(0xb000, 0xb7ff) AM_RAM_WRITE(trackfld_videoram_w) AM_BASE(&videoram) | |
| 154 | AM_RANGE(0xb800, 0xbfff) AM_RAM_WRITE(trackfld_colorram_w) AM_BASE(&colorram) | |
| 185 | 155 | ADDRESS_MAP_END |
| 186 | 156 | |
| 187 | 157 | /* Reaktor reads / writes some I/O ports, no idea what they're connected to, if anything */ |
| 188 | 158 | static ADDRESS_MAP_START( reaktor_io_map, ADDRESS_SPACE_IO, 8 ) |
| 189 | 159 | ADDRESS_MAP_GLOBAL_MASK(0xff) |
| 190 | AM_RANGE(0x00, 0x00) AM_WRITE(SMH_NOP) | |
| 191 | AM_RANGE(0x01, 0x01) AM_READWRITE(SMH_NOP, SMH_NOP) | |
| 192 | AM_RANGE(0x02, 0x02) AM_WRITE(SMH_NOP) | |
| 193 | AM_RANGE(0x03, 0x03) AM_WRITE(SMH_NOP) | |
| 160 | AM_RANGE(0x00, 0x00) AM_WRITENOP | |
| 161 | AM_RANGE(0x01, 0x01) AM_NOP | |
| 162 | AM_RANGE(0x02, 0x02) AM_WRITENOP | |
| 163 | AM_RANGE(0x03, 0x03) AM_WRITENOP | |
| 194 | 164 | ADDRESS_MAP_END |
| 195 | 165 | |
| 196 | static ADDRESS_MAP_START( mastkin_readmem, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 197 | AM_RANGE(0x1200, 0x1200) AM_READ_PORT("DSW2") | |
| 198 | AM_RANGE(0x1280, 0x1280) AM_READ_PORT("SYSTEM") | |
| 199 | AM_RANGE(0x1281, 0x1281) AM_READ_PORT("IN0") | |
| 200 | // AM_RANGE(0x1282, 0x1282) AM_READ_PORT("IN1") /* unused */ | |
| 201 | AM_RANGE(0x1283, 0x1283) AM_READ_PORT("DSW1") | |
| 202 | AM_RANGE(0x1800, 0x1fff) AM_READ(SMH_RAM) | |
| 203 | AM_RANGE(0x2800, 0x3fff) AM_READ(SMH_RAM) | |
| 204 | AM_RANGE(0x6000, 0xffff) AM_READ(SMH_ROM) | |
| 205 | ADDRESS_MAP_END | |
| 206 | ||
| 207 | static ADDRESS_MAP_START( mastkin_writemem, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 166 | static ADDRESS_MAP_START( mastkin_map, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 208 | 167 | AM_RANGE(0x1000, 0x1000) AM_WRITE(watchdog_reset_w) |
| 209 | 168 | AM_RANGE(0x10b0, 0x10b0) AM_WRITE(trackfld_flipscreen_w) |
| 210 | 169 | AM_RANGE(0x10b1, 0x10b1) AM_WRITE(konami_sh_irqtrigger_w) |
| 211 | 170 | AM_RANGE(0x1083, 0x1084) AM_WRITE(coin_w) |
| 212 | 171 | AM_RANGE(0x1087, 0x1087) AM_WRITE(interrupt_enable_w) |
| 213 | 172 | AM_RANGE(0x1100, 0x1100) AM_WRITE(soundlatch_w) |
| 214 | AM_RANGE(0x1800, 0x183f) AM_WRITE(SMH_RAM) AM_BASE(&spriteram_2) | |
| 215 | AM_RANGE(0x1840, 0x185f) AM_WRITE(SMH_RAM) AM_BASE(&trackfld_scroll) | |
| 216 | AM_RANGE(0x1860, 0x1bff) AM_WRITE(SMH_RAM) | |
| 217 | AM_RANGE(0x1c00, 0x1c3f) AM_WRITE(SMH_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size) | |
| 218 | AM_RANGE(0x1c40, 0x1c5f) AM_WRITE(SMH_RAM) AM_BASE(&trackfld_scroll2) | |
| 219 | AM_RANGE(0x1c60, 0x1fff) AM_WRITE(SMH_RAM) | |
| 220 | AM_RANGE(0x2800, 0x2bff) AM_WRITE(SMH_RAM) | |
| 221 | AM_RANGE(0x2c00, 0x2fff) AM_WRITE(SMH_RAM) AM_BASE(&nvram) AM_SIZE(&nvram_size) | |
| 222 | AM_RANGE(0x3000, 0x37ff) AM_WRITE(trackfld_videoram_w) AM_BASE(&videoram) | |
| 223 | AM_RANGE(0x3800, 0x3fff) AM_WRITE(trackfld_colorram_w) AM_BASE(&colorram) | |
| 224 | AM_RANGE(0x6000, 0xffff) AM_WRITE(SMH_ROM) | |
| 173 | AM_RANGE(0x1200, 0x1200) AM_READ_PORT("DSW2") | |
| 174 | AM_RANGE(0x1280, 0x1280) AM_READ_PORT("SYSTEM") | |
| 175 | AM_RANGE(0x1281, 0x1281) AM_READ_PORT("IN0") | |
| 176 | // AM_RANGE(0x1282, 0x1282) AM_READ_PORT("IN1") /* unused */ | |
| 177 | AM_RANGE(0x1283, 0x1283) AM_READ_PORT("DSW1") | |
| 178 | AM_RANGE(0x1800, 0x183f) AM_RAM AM_BASE(&spriteram_2) | |
| 179 | AM_RANGE(0x1840, 0x185f) AM_RAM AM_BASE(&trackfld_scroll) | |
| 180 | AM_RANGE(0x1860, 0x1bff) AM_RAM | |
| 181 | AM_RANGE(0x1c00, 0x1c3f) AM_RAM AM_BASE(&spriteram) AM_SIZE(&spriteram_size) | |
| 182 | AM_RANGE(0x1c40, 0x1c5f) AM_RAM AM_BASE(&trackfld_scroll2) | |
| 183 | AM_RANGE(0x1c60, 0x1fff) AM_RAM | |
| 184 | AM_RANGE(0x2800, 0x2bff) AM_RAM | |
| 185 | AM_RANGE(0x2c00, 0x2fff) AM_RAM AM_BASE(&generic_nvram) AM_SIZE(&generic_nvram_size) | |
| 186 | AM_RANGE(0x3000, 0x37ff) AM_RAM_WRITE(trackfld_videoram_w) AM_BASE(&videoram) | |
| 187 | AM_RANGE(0x3800, 0x3fff) AM_RAM_WRITE(trackfld_colorram_w) AM_BASE(&colorram) | |
| 188 | AM_RANGE(0x6000, 0xffff) AM_ROM | |
| 225 | 189 | ADDRESS_MAP_END |
| 226 | 190 | |
| 227 | 191 | static ADDRESS_MAP_START( wizzquiz_map, ADDRESS_SPACE_PROGRAM, 8 ) |
| r4470 | r4471 | |
| 252 | 216 | AM_RANGE(0xe000, 0xffff) AM_ROM |
| 253 | 217 | ADDRESS_MAP_END |
| 254 | 218 | |
| 255 | static ADDRESS_MAP_START( sound_readmem, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 256 | AM_RANGE(0x0000, 0x3fff) AM_READ(SMH_ROM) | |
| 257 | AM_RANGE(0x4000, 0x43ff) AM_READ(SMH_RAM) | |
| 258 | AM_RANGE(0x6000, 0x6000) AM_READ(soundlatch_r) | |
| 259 | AM_RANGE(0x8000, 0x8000) AM_READ(trackfld_sh_timer_r) | |
| 260 | AM_RANGE(0xc000, 0xc000) AM_READ(SMH_NOP) // reaktor reads here | |
| 261 | AM_RANGE(0xe001, 0xe001) AM_READ(SMH_NOP) // reaktor reads here | |
| 262 | AM_RANGE(0xe002, 0xe002) AM_DEVREAD("vlm", trackfld_speech_r) | |
| 219 | static ADDRESS_MAP_START( sound_map, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 220 | AM_RANGE(0x0000, 0x3fff) AM_ROM | |
| 221 | AM_RANGE(0x4000, 0x43ff) AM_MIRROR(0x1c00) AM_RAM | |
| 222 | AM_RANGE(0x6000, 0x6000) AM_MIRROR(0x1fff) AM_READ(soundlatch_r) | |
| 223 | AM_RANGE(0x8000, 0x8000) AM_MIRROR(0x1fff) AM_READ(trackfld_sh_timer_r) | |
| 224 | AM_RANGE(0xa000, 0xa000) AM_MIRROR(0x1fff) AM_WRITE(konami_SN76496_latch_w) | |
| 225 | AM_RANGE(0xc000, 0xc000) AM_MIRROR(0x1fff) AM_DEVWRITE("sn", konami_SN76496_w) | |
| 226 | AM_RANGE(0xe000, 0xe000) AM_MIRROR(0x1ff8) AM_DEVWRITE("dac", dac_w) | |
| 227 | AM_RANGE(0xe001, 0xe001) AM_MIRROR(0x1ff8) AM_NOP /* watch dog ?; reaktor reads here */ | |
| 228 | AM_RANGE(0xe002, 0xe002) AM_MIRROR(0x1ff8) AM_DEVREAD("vlm", trackfld_speech_r) | |
| 229 | AM_RANGE(0xe003, 0xe003) AM_MIRROR(0x1ff8) AM_MASK(0x0380) AM_DEVWRITE("vlm", trackfld_sound_w) | |
| 230 | AM_RANGE(0xe004, 0xe004) AM_MIRROR(0x1ff8) AM_DEVWRITE("vlm", vlm5030_data_w) | |
| 263 | 231 | ADDRESS_MAP_END |
| 264 | 232 | |
| 265 | static ADDRESS_MAP_START( sound_writemem, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 266 | AM_RANGE(0x0000, 0x3fff) AM_WRITE(SMH_ROM) | |
| 267 | AM_RANGE(0x4000, 0x43ff) AM_WRITE(SMH_RAM) | |
| 268 | AM_RANGE(0xa000, 0xa000) AM_DEVWRITE("sn", sn76496_w) /* Loads the snd command into the snd latch */ | |
| 269 | AM_RANGE(0xc000, 0xc000) AM_WRITE(SMH_NOP) /* This address triggers the SN chip to read the data port. */ | |
| 270 | AM_RANGE(0xe000, 0xe000) AM_DEVWRITE("dac", dac_w) | |
| 271 | /* There are lots more addresses which are used for setting a two bit volume | |
| 272 | controls for speech and music | |
| 273 | ||
| 274 | Currently these are un-supported by Mame | |
| 275 | */ | |
| 276 | AM_RANGE(0xe001, 0xe001) AM_WRITE(SMH_NOP) /* watch dog ? */ | |
| 277 | AM_RANGE(0xe004, 0xe004) AM_DEVWRITE("vlm", vlm5030_data_w) | |
| 278 | AM_RANGE(0xe000, 0xefff) AM_DEVWRITE("vlm", trackfld_sound_w) /* e003 speech control */ | |
| 233 | static ADDRESS_MAP_START( hyprolyb_sound_map, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 234 | AM_RANGE(0x0000, 0x3fff) AM_ROM | |
| 235 | AM_RANGE(0x4000, 0x43ff) AM_MIRROR(0x1c00) AM_RAM | |
| 236 | AM_RANGE(0x6000, 0x6000) AM_MIRROR(0x1fff) AM_READ(soundlatch_r) | |
| 237 | AM_RANGE(0x8000, 0x8000) AM_MIRROR(0x1fff) AM_READ(trackfld_sh_timer_r) | |
| 238 | AM_RANGE(0xa000, 0xa000) AM_MIRROR(0x1fff) AM_WRITE(konami_SN76496_latch_w) | |
| 239 | AM_RANGE(0xc000, 0xc000) AM_MIRROR(0x1fff) AM_DEVWRITE("sn", konami_SN76496_w) | |
| 240 | AM_RANGE(0xe000, 0xe000) AM_MIRROR(0x1ff8) AM_DEVWRITE("dac", dac_w) | |
| 241 | AM_RANGE(0xe001, 0xe001) AM_MIRROR(0x1ff8) AM_NOP /* watch dog ?; reaktor reads here */ | |
| 242 | AM_RANGE(0xe002, 0xe002) AM_MIRROR(0x1ff8) AM_READ(hyprolyb_adpcm_busy_r) | |
| 243 | AM_RANGE(0xe003, 0xe003) AM_MIRROR(0x1ff8) AM_WRITENOP | |
| 244 | AM_RANGE(0xe004, 0xe004) AM_MIRROR(0x1ff8) AM_WRITE(hyprolyb_adpcm_w) | |
| 279 | 245 | ADDRESS_MAP_END |
| 280 | 246 | |
| 281 | static ADDRESS_MAP_START( hyprolyb_sound_readmem, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 282 | AM_RANGE(0x0000, 0x3fff) AM_READ(SMH_ROM) | |
| 283 | AM_RANGE(0x4000, 0x43ff) AM_READ(SMH_RAM) | |
| 284 | AM_RANGE(0x6000, 0x6000) AM_READ(soundlatch_r) | |
| 285 | AM_RANGE(0x8000, 0x8000) AM_READ(trackfld_sh_timer_r) | |
| 286 | AM_RANGE(0xe002, 0xe002) AM_READ(hyprolyb_speech_r) | |
| 247 | static ADDRESS_MAP_START( hyprolyb_adpcm_map, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 248 | AM_RANGE(0x0000, 0x007f) AM_RAM | |
| 249 | AM_RANGE(0x1000, 0x1000) AM_READ(hyprolyb_adpcm_data_r) | |
| 250 | AM_RANGE(0x1001, 0x1001) AM_READ(hyprolyb_adpcm_ready_r) | |
| 251 | AM_RANGE(0x1002, 0x1002) AM_DEVWRITE("msm", hyprolyb_msm_data_w) | |
| 252 | AM_RANGE(0x1003, 0x1003) AM_DEVREAD("msm", hyprolyb_msm_vck_r) | |
| 253 | // on init: | |
| 254 | // $1003 = $00 | |
| 255 | // $1002 = $FF | |
| 256 | // $1003 = $34 | |
| 257 | // $1001 = $36 | |
| 258 | // $1002 = $80 | |
| 259 | // loops while ($1003) & 0x80 == 0 | |
| 260 | // 1002 = ADPCM data written (low 4 bits) | |
| 261 | // | |
| 262 | // $1003 & $80 (in) = 5205 DRQ | |
| 263 | // $1002 & $0f (out) = 5205 data | |
| 264 | // $1001 & $80 (in) = sound latch request | |
| 265 | // $1000 (in) = sound latch data | |
| 266 | AM_RANGE(0x8000, 0xffff) AM_ROM | |
| 287 | 267 | ADDRESS_MAP_END |
| 288 | 268 | |
| 289 | static ADDRESS_MAP_START( hyprolyb_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 290 | AM_RANGE(0x0000, 0x3fff) AM_WRITE(SMH_ROM) | |
| 291 | AM_RANGE(0x4000, 0x43ff) AM_WRITE(SMH_RAM) | |
| 292 | AM_RANGE(0xa000, 0xa000) AM_DEVWRITE("sn", sn76496_w) /* Loads the snd command into the snd latch */ | |
| 293 | AM_RANGE(0xc000, 0xc000) AM_WRITE(SMH_NOP) /* This address triggers the SN chip to read the data port. */ | |
| 294 | AM_RANGE(0xe000, 0xe000) AM_DEVWRITE("dac", dac_w) | |
| 295 | /* There are lots more addresses which are used for setting a two bit volume | |
| 296 | controls for speech and music | |
| 297 | 269 | |
| 298 | Currently these are un-supported by Mame | |
| 299 | */ | |
| 300 | AM_RANGE(0xe001, 0xe001) AM_WRITE(SMH_NOP) /* watch dog ? */ | |
| 301 | AM_RANGE(0xe004, 0xe004) AM_WRITE(hyprolyb_ADPCM_data_w) | |
| 302 | AM_RANGE(0xe000, 0xefff) AM_WRITE(SMH_NOP) | |
| 303 | ADDRESS_MAP_END | |
| 304 | 270 | |
| 305 | ||
| 306 | ||
| 307 | 271 | static INPUT_PORTS_START( trackfld ) |
| 308 | 272 | PORT_START("SYSTEM") |
| 309 | 273 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) |
| r4470 | r4471 | |
| 369 | 333 | PORT_DIPSETTING( 0xb0, DEF_STR( 1C_5C ) ) |
| 370 | 334 | PORT_DIPSETTING( 0xa0, DEF_STR( 1C_6C ) ) |
| 371 | 335 | PORT_DIPSETTING( 0x90, DEF_STR( 1C_7C ) ) |
| 372 | PORT_DIPSETTING( 0x00, "Disabled" ) | |
| 373 | /* 0x00 disables Coin 2. It still accepts coins and makes the sound, but | |
| 374 | it doesn't give you any credit */ | |
| 336 | PORT_DIPSETTING( 0x00, "No Coin B" ) | |
| 337 | /* "No Coin B" = coins produce sound, but no effect on coin counter */ | |
| 375 | 338 | |
| 376 | 339 | PORT_START("DSW2") |
| 377 | 340 | PORT_DIPNAME( 0x01, 0x01, DEF_STR( Lives ) ) |
| r4470 | r4471 | |
| 400 | 363 | INPUT_PORTS_END |
| 401 | 364 | |
| 402 | 365 | static INPUT_PORTS_START( atlantol ) |
| 403 | PORT_START("SYSTEM") | |
| 404 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) | |
| 405 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) | |
| 406 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 ) | |
| 407 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) | |
| 408 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 ) | |
| 409 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 410 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 411 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 366 | PORT_INCLUDE( trackfld ) | |
| 412 | 367 | |
| 413 | PORT_ | |
| 368 | PORT_MODIFY("IN0") | |
| 414 | 369 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_PLAYER(1) |
| 415 | 370 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) |
| 416 | 371 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_PLAYER(1) |
| r4470 | r4471 | |
| 420 | 375 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_PLAYER(2) |
| 421 | 376 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) |
| 422 | 377 | |
| 423 | PORT_ | |
| 378 | PORT_MODIFY("IN1") | |
| 424 | 379 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_PLAYER(3) //PORT_COCKTAIL |
| 425 | 380 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3) //PORT_COCKTAIL |
| 426 | 381 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_PLAYER(3) //PORT_COCKTAIL |
| r4470 | r4471 | |
| 430 | 385 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_PLAYER(4) //PORT_COCKTAIL |
| 431 | 386 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) |
| 432 | 387 | |
| 433 | PORT_START("DSW1") | |
| 434 | PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) ) | |
| 435 | PORT_DIPSETTING( 0x02, DEF_STR( 4C_1C ) ) | |
| 436 | PORT_DIPSETTING( 0x05, DEF_STR( 3C_1C ) ) | |
| 437 | PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) ) | |
| 438 | PORT_DIPSETTING( 0x04, DEF_STR( 3C_2C ) ) | |
| 439 | PORT_DIPSETTING( 0x01, DEF_STR( 4C_3C ) ) | |
| 440 | PORT_DIPSETTING( 0x0f, DEF_STR( 1C_1C ) ) | |
| 441 | PORT_DIPSETTING( 0x03, DEF_STR( 3C_4C ) ) | |
| 442 | PORT_DIPSETTING( 0x07, DEF_STR( 2C_3C ) ) | |
| 443 | PORT_DIPSETTING( 0x0e, DEF_STR( 1C_2C ) ) | |
| 444 | PORT_DIPSETTING( 0x06, DEF_STR( 2C_5C ) ) | |
| 445 | PORT_DIPSETTING( 0x0d, DEF_STR( 1C_3C ) ) | |
| 446 | PORT_DIPSETTING( 0x0c, DEF_STR( 1C_4C ) ) | |
| 447 | PORT_DIPSETTING( 0x0b, DEF_STR( 1C_5C ) ) | |
| 448 | PORT_DIPSETTING( 0x0a, DEF_STR( 1C_6C ) ) | |
| 449 | PORT_DIPSETTING( 0x09, DEF_STR( 1C_7C ) ) | |
| 450 | PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) | |
| 451 | PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) ) | |
| 452 | PORT_DIPSETTING( 0x20, DEF_STR( 4C_1C ) ) | |
| 453 | PORT_DIPSETTING( 0x50, DEF_STR( 3C_1C ) ) | |
| 454 | PORT_DIPSETTING( 0x80, DEF_STR( 2C_1C ) ) | |
| 455 | PORT_DIPSETTING( 0x40, DEF_STR( 3C_2C ) ) | |
| 456 | PORT_DIPSETTING( 0x10, DEF_STR( 4C_3C ) ) | |
| 457 | PORT_DIPSETTING( 0xf0, DEF_STR( 1C_1C ) ) | |
| 458 | PORT_DIPSETTING( 0x30, DEF_STR( 3C_4C ) ) | |
| 459 | PORT_DIPSETTING( 0x70, DEF_STR( 2C_3C ) ) | |
| 460 | PORT_DIPSETTING( 0xe0, DEF_STR( 1C_2C ) ) | |
| 461 | PORT_DIPSETTING( 0x60, DEF_STR( 2C_5C ) ) | |
| 462 | PORT_DIPSETTING( 0xd0, DEF_STR( 1C_3C ) ) | |
| 463 | PORT_DIPSETTING( 0xc0, DEF_STR( 1C_4C ) ) | |
| 464 | PORT_DIPSETTING( 0xb0, DEF_STR( 1C_5C ) ) | |
| 465 | PORT_DIPSETTING( 0xa0, DEF_STR( 1C_6C ) ) | |
| 466 | PORT_DIPSETTING( 0x90, DEF_STR( 1C_7C ) ) | |
| 467 | PORT_DIPSETTING( 0x00, "Disabled" ) | |
| 468 | /* 0x00 disables Coin 2. It still accepts coins and makes the sound, but | |
| 469 | it doesn't give you any credit */ | |
| 470 | ||
| 471 | PORT_START("DSW2") | |
| 472 | PORT_DIPNAME( 0x01, 0x01, DEF_STR( Lives ) ) | |
| 473 | PORT_DIPSETTING( 0x01, "1" ) | |
| 474 | PORT_DIPSETTING( 0x00, "2" ) | |
| 388 | PORT_MODIFY("DSW2") | |
| 475 | 389 | PORT_DIPNAME( 0x02, 0x02, DEF_STR( Allow_Continue ) ) |
| 476 | 390 | PORT_DIPSETTING( 0x00, DEF_STR( No ) ) |
| 477 | 391 | PORT_DIPSETTING( 0x02, DEF_STR( Yes ) ) |
| 478 | 392 | PORT_DIPNAME( 0x04, 0x04, DEF_STR( Language ) ) |
| 479 | 393 | PORT_DIPSETTING( 0x00, DEF_STR( English ) ) |
| 480 | 394 | PORT_DIPSETTING( 0x04, DEF_STR( Italian ) ) |
| 481 | PORT_DIPNAME( 0x08, 0x00, DEF_STR( Bonus_Life ) ) | |
| 482 | PORT_DIPSETTING( 0x08, DEF_STR( None ) ) | |
| 483 | PORT_DIPSETTING( 0x00, "100000" ) | |
| 484 | PORT_DIPNAME( 0x10, 0x10, "World Records" ) | |
| 485 | PORT_DIPSETTING( 0x10, "Don't Erase" ) | |
| 486 | PORT_DIPSETTING( 0x00, "Erase on Reset" ) | |
| 487 | PORT_DIPNAME( 0x60, 0x60, DEF_STR( Difficulty ) ) | |
| 488 | PORT_DIPSETTING( 0x60, DEF_STR( Easy ) ) | |
| 489 | PORT_DIPSETTING( 0x40, DEF_STR( Normal ) ) | |
| 490 | PORT_DIPSETTING( 0x20, DEF_STR( Hard ) ) | |
| 491 | PORT_DIPSETTING( 0x00, "Difficult" ) | |
| 492 | PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) ) | |
| 493 | PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) | |
| 494 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) | |
| 495 | 395 | INPUT_PORTS_END |
| 496 | 396 | |
| 497 | 397 | static INPUT_PORTS_START( mastkin ) |
| r4470 | r4471 | |
| 621 | 521 | PORT_DIPSETTING( 0x0b, DEF_STR( 1C_5C ) ) |
| 622 | 522 | PORT_DIPSETTING( 0x0a, DEF_STR( 1C_6C ) ) |
| 623 | 523 | PORT_DIPSETTING( 0x09, DEF_STR( 1C_7C ) ) |
| 624 | PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) // must set both Free Play | |
| 524 | PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) PORT_CONDITION("DSW1", 0xf0, PORTCOND_EQUALS, 0x00) | |
| 525 | PORT_DIPSETTING( 0x00, "No Coin A" ) PORT_CONDITION("DSW1", 0xf0, PORTCOND_NOTEQUALS, 0x00) | |
| 625 | 526 | PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) ) |
| 626 | 527 | PORT_DIPSETTING( 0x20, DEF_STR( 4C_1C ) ) |
| 627 | 528 | PORT_DIPSETTING( 0x50, DEF_STR( 3C_1C ) ) |
| r4470 | r4471 | |
| 638 | 539 | PORT_DIPSETTING( 0xb0, DEF_STR( 1C_5C ) ) |
| 639 | 540 | PORT_DIPSETTING( 0xa0, DEF_STR( 1C_6C ) ) |
| 640 | 541 | PORT_DIPSETTING( 0x90, DEF_STR( 1C_7C ) ) |
| 641 | PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) // must set both Free Play | |
| 542 | PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) PORT_CONDITION("DSW1", 0x0f, PORTCOND_EQUALS, 0x00) | |
| 543 | PORT_DIPSETTING( 0x00, "No Coin B" ) PORT_CONDITION("DSW1", 0x0f, PORTCOND_NOTEQUALS, 0x00) | |
| 544 | /* No Coin X = coin slot X open (coins produce sound), but no effect on coin counter */ | |
| 642 | 545 | |
| 643 | 546 | PORT_START("DSW2") |
| 644 | 547 | PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) ) |
| r4470 | r4471 | |
| 780 | 683 | GFXDECODE_END |
| 781 | 684 | |
| 782 | 685 | |
| 686 | static void adpcm_vck_callback(const device_config *device) | |
| 687 | { | |
| 688 | hyprolyb_vck_ready = 0x80; | |
| 689 | } | |
| 690 | ||
| 783 | 691 | static const msm5205_interface msm5205_config = |
| 784 | 692 | { |
| 785 | NULL, /* VCK function */ | |
| 786 | MSM5205_S48_4B /* 8 kHz */ | |
| 693 | adpcm_vck_callback, /* VCK function */ | |
| 694 | MSM5205_S96_4B /* 4 kHz */ | |
| 787 | 695 | }; |
| 788 | 696 | |
| 789 | 697 | |
| r4470 | r4471 | |
| 791 | 699 | static MACHINE_DRIVER_START( trackfld ) |
| 792 | 700 | |
| 793 | 701 | /* basic machine hardware */ |
| 794 | MDRV_CPU_ADD("maincpu", M6809, 2048000) /* 1.400 MHz ??? */ | |
| 795 | MDRV_CPU_PROGRAM_MAP(readmem,writemem) | |
| 702 | MDRV_CPU_ADD("maincpu", M6809, MASTER_CLOCK/6/2) /* a guess for now */ | |
| 703 | MDRV_CPU_PROGRAM_MAP(main_map,0) | |
| 796 | 704 | MDRV_CPU_VBLANK_INT("screen", irq0_line_hold) |
| 797 | 705 | |
| 798 | MDRV_CPU_ADD("audiocpu", Z80,14318180/4) /* Z80 Clock is derived from a 14.31818 MHz crystal */ | |
| 799 | MDRV_CPU_PROGRAM_MAP(sound_readmem,sound_writemem) | |
| 706 | MDRV_CPU_ADD("audiocpu", Z80, SOUND_CLOCK/4) | |
| 707 | MDRV_CPU_PROGRAM_MAP(sound_map,0) | |
| 800 | 708 | |
| 801 | MDRV_NVRAM_HANDLER( | |
| 709 | MDRV_NVRAM_HANDLER(generic_0fill) | |
| 802 | 710 | |
| 803 | 711 | /* video hardware */ |
| 804 | 712 | MDRV_SCREEN_ADD("screen", RASTER) |
| r4470 | r4471 | |
| 821 | 729 | MDRV_SOUND_ADD("dac", DAC, 0) |
| 822 | 730 | MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) |
| 823 | 731 | |
| 824 | MDRV_SOUND_ADD("sn", SN76496, | |
| 732 | MDRV_SOUND_ADD("sn", SN76496, SOUND_CLOCK/8) | |
| 825 | 733 | MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) |
| 826 | 734 | |
| 827 | MDRV_SOUND_ADD("vlm", VLM5030, | |
| 735 | MDRV_SOUND_ADD("vlm", VLM5030, VLM_CLOCK) | |
| 828 | 736 | MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) |
| 829 | 737 | MACHINE_DRIVER_END |
| 830 | 738 | |
| 831 | 739 | /* same as the original, but uses ADPCM instead of VLM5030 */ |
| 832 | 740 | /* also different memory handlers do handle that */ |
| 833 | 741 | static MACHINE_DRIVER_START( hyprolyb ) |
| 742 | MDRV_IMPORT_FROM(trackfld) | |
| 834 | 743 | |
| 835 | /* basic machine hardware */ | |
| 836 | MDRV_CPU_ADD("maincpu", M6809, 2048000) /* 1.400 MHz ??? */ | |
| 837 | MDRV_CPU_PROGRAM_MAP(readmem,writemem) | |
| 838 | MDRV_CPU_VBLANK_INT("screen", irq0_line_hold) | |
| 744 | MDRV_CPU_MODIFY("audiocpu") | |
| 745 | MDRV_CPU_PROGRAM_MAP(hyprolyb_sound_map,0) | |
| 839 | 746 | |
| 840 | MDRV_CPU_ADD("audiocpu", Z80,14318180/4) /* Z80 Clock is derived from a 14.31818 MHz crystal */ | |
| 841 | MDRV_CPU_PROGRAM_MAP(hyprolyb_sound_readmem,hyprolyb_sound_writemem) | |
| 747 | MDRV_CPU_ADD("adpcm", M6802, SOUND_CLOCK/8) /* unknown clock */ | |
| 748 | MDRV_CPU_PROGRAM_MAP(hyprolyb_adpcm_map,0) | |
| 842 | 749 | |
| 843 | MDRV_NVRAM_HANDLER(trackfld) | |
| 844 | ||
| 845 | /* video hardware */ | |
| 846 | MDRV_SCREEN_ADD("screen", RASTER) | |
| 847 | MDRV_SCREEN_REFRESH_RATE(60) | |
| 848 | MDRV_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) | |
| 849 | MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) | |
| 850 | MDRV_SCREEN_SIZE(32*8, 32*8) | |
| 851 | MDRV_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) | |
| 852 | ||
| 853 | MDRV_GFXDECODE(trackfld) | |
| 854 | MDRV_PALETTE_LENGTH(16*16+16*16) | |
| 855 | ||
| 856 | MDRV_PALETTE_INIT(trackfld) | |
| 857 | MDRV_VIDEO_START(trackfld) | |
| 858 | MDRV_VIDEO_UPDATE(trackfld) | |
| 859 | ||
| 860 | 750 | /* sound hardware */ |
| 861 | MDRV_S | |
| 751 | MDRV_SOU | |
| 862 | 752 | |
| 863 | MDRV_SOUND_ADD("dac", DAC, 0) | |
| 864 | MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) | |
| 865 | ||
| 866 | MDRV_SOUND_ADD("sn", SN76496, 14318180/8) | |
| 867 | MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) | |
| 868 | ||
| 869 | 753 | MDRV_SOUND_ADD("msm", MSM5205, 384000) |
| 870 | 754 | MDRV_SOUND_CONFIG(msm5205_config) |
| 871 | 755 | MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) |
| r4470 | r4471 | |
| 877 | 761 | /* basic machine hardware */ |
| 878 | 762 | MDRV_IMPORT_FROM(trackfld) |
| 879 | 763 | MDRV_CPU_MODIFY("maincpu") |
| 880 | MDRV_CPU_PROGRAM_MAP(mastkin_readmem,mastkin_writemem) | |
| 881 | ||
| 882 | MDRV_NVRAM_HANDLER(mastkin) | |
| 764 | MDRV_CPU_PROGRAM_MAP(mastkin_map,0) | |
| 883 | 765 | MACHINE_DRIVER_END |
| 884 | 766 | |
| 885 | 767 | static MACHINE_DRIVER_START( wizzquiz ) |
| r4470 | r4471 | |
| 890 | 772 | MDRV_CPU_REPLACE("maincpu",M6800,2048000) /* 1.400 MHz ??? */ |
| 891 | 773 | MDRV_CPU_PROGRAM_MAP(wizzquiz_map,0) |
| 892 | 774 | MDRV_CPU_VBLANK_INT("screen", nmi_line_pulse) |
| 893 | ||
| 894 | MDRV_NVRAM_HANDLER(generic_0fill) | |
| 895 | 775 | MACHINE_DRIVER_END |
| 896 | 776 | |
| 897 | 777 | static MACHINE_DRIVER_START( reaktor ) |
| 898 | 778 | |
| 899 | 779 | /* basic machine hardware */ |
| 900 | 780 | MDRV_IMPORT_FROM(trackfld) |
| 901 | MDRV_CPU_REPLACE("maincpu",Z80,18432000/6) | |
| 902 | MDRV_CPU_PROGRAM_MAP(reaktor_readmem,reaktor_writemem) | |
| 781 | MDRV_CPU_REPLACE("maincpu",Z80,MASTER_CLOCK/6) | |
| 782 | MDRV_CPU_PROGRAM_MAP(reaktor_map,0) | |
| 903 | 783 | MDRV_CPU_IO_MAP(reaktor_io_map,0) |
| 904 | 784 | MDRV_CPU_VBLANK_INT("screen", irq0_line_hold) |
| 905 | 785 | MACHINE_DRIVER_END |
| r4470 | r4471 | |
| 1019 | 899 | |
| 1020 | 900 | /* These ROM's are located on the Sound Board */ |
| 1021 | 901 | ROM_REGION( 0x10000, "adpcm", 0 ) /* 64k for the 6802 which plays ADPCM samples */ |
| 1022 | /* this bootleg uses a 6802 to "emulate" the VLM5030 speech chip */ | |
| 1023 | /* I didn't bother to emulate the 6802, I just play the samples. */ | |
| 1024 | 902 | ROM_LOAD( "2764.1", 0x8000, 0x2000, CRC(a4cddeb8) SHA1(057981ad3b04239662bb19342e9ec14b0dab2351) ) |
| 1025 | 903 | ROM_LOAD( "2764.2", 0xa000, 0x2000, CRC(e9919365) SHA1(bd11d6e3ee2c6e698159c2768e315389d666107f) ) |
| 1026 | 904 | ROM_LOAD( "2764.3", 0xc000, 0x2000, CRC(c3ec42e1) SHA1(048a95726c4f031552e629c3788952c1bc5e7251) ) |
| r4470 | r4471 | |
| 1061 | 939 | ROM_CONTINUE( 0x00000, 0x10000 ) |
| 1062 | 940 | |
| 1063 | 941 | ROM_REGION( 0x10000, "adpcm", 0 ) /* 64k for the 6802 which plays ADPCM samples */ |
| 1064 | /* this bootleg uses a 6802 to "emulate" the VLM5030 speech chip */ | |
| 1065 | /* I didn't bother to emulate the 6802, I just play the samples. */ | |
| 1066 | 942 | ROM_LOAD( "atl36", 0x00000, 0x10000, CRC(0bae8489) SHA1(fbaeac99733f9c46b0b8d9a601c57df4004e2044) ) |
| 1067 | 943 | ROM_CONTINUE( 0x00000, 0x10000 ) |
| 1068 | 944 | |
| r4470 | r4471 | |
| 1255 | 1131 | |
| 1256 | 1132 | memory_set_decrypted_region(space, 0x0000, 0xffff, decrypt); |
| 1257 | 1133 | |
| 1258 | memory_install_write8_handler(cpu_get_address_space(machine->cpu[0], ADDRESS_SPACE_PROGRAM), 0x1000, 0x1000, 0, 0, SMH_NOP ); | |
| 1134 | memory_install_write8_handler(space, 0x0800, 0x0800, 0, 0, atlantol_gfxbank_w); | |
| 1135 | memory_install_write8_handler(space, 0x1000, 0x1000, 0, 0, SMH_NOP); | |
| 1136 | ||
| 1137 | /* unmapped areas read as ROM */ | |
| 1138 | memory_install_read8_handler(space, 0x0000, 0x11ff, 0, 0, SMH_BANK10); | |
| 1139 | memory_install_read8_handler(space, 0x1380, 0x17ff, 0, 0, SMH_BANK11); | |
| 1140 | memory_install_read8_handler(space, 0x2000, 0x27ff, 0, 0, SMH_BANK12); | |
| 1141 | memory_install_read8_handler(space, 0x4000, 0x5fff, 0, 0, SMH_BANK13); | |
| 1142 | memory_set_bankptr(machine, 10, &rom[0x0000]); | |
| 1143 | memory_set_bankptr(machine, 11, &rom[0x1380]); | |
| 1144 | memory_set_bankptr(machine, 12, &rom[0x2000]); | |
| 1145 | memory_set_bankptr(machine, 13, &rom[0x4000]); | |
| 1259 | 1146 | } |
| 1260 | 1147 | |
| 1261 | 1148 | static DRIVER_INIT( mastkin ) |
| r4470 | r4471 | |
| 1293 | 1180 | /* decrypt questions roms */ |
| 1294 | 1181 | for( i = 0; i < 0x40000; i++ ) |
| 1295 | 1182 | ROM[i] = BITSWAP8(ROM[i],0,1,2,3,4,5,6,7); |
| 1183 | ||
| 1184 | memory_configure_bank(machine, 1, 0, 8, ROM, 0x8000); | |
| 1296 | 1185 | } |
| 1297 | 1186 | |
| 1298 | 1187 | |
| r4470 | r4471 | |
| 1305 | 1194 | GAME( 1985, wizzquiz, 0, wizzquiz, wizzquiz, wizzquiz, ROT0, "Konami", "Wizz Quiz (Konami version)", 0 ) |
| 1306 | 1195 | GAME( 1985, wizzquza, wizzquiz, wizzquiz, wizzquiz, wizzquiz, ROT0, "Zilec - Zenitone", "Wizz Quiz (version 4)", 0 ) |
| 1307 | 1196 | GAME( 1987, reaktor, 0, reaktor, reaktor, 0, ROT90, "Zilec", "Reaktor (Track & Field conversion)", 0 ) |
| 1308 |
| r4470 | r4471 | |
|---|---|---|
| 191 | 191 | AM_RANGE(0xe801, 0xe801) AM_READ_PORT("DSW2") |
| 192 | 192 | AM_RANGE(0xe802, 0xe802) AM_READ_PORT("BUTTONS") |
| 193 | 193 | AM_RANGE(0xe803, 0xe803) AM_READ_PORT("JOYS") |
| 194 | AM_RANGE(0xf000, 0xf000) AM_WRITE | |
| 194 | AM_RANGE(0xf000, 0xf000) AM_WRITE | |
| 195 | 195 | AM_RANGE(0xf001, 0xf001) AM_WRITE(interrupt_enable_w) |
| 196 | 196 | AM_RANGE(0xf002, 0xf002) AM_WRITE(fastfred_colorbank1_w) |
| 197 | 197 | AM_RANGE(0xf003, 0xf003) AM_WRITE(fastfred_colorbank2_w) |
| r4470 | r4471 | |
| 240 | 240 | AM_RANGE(0x4000, 0x4000) AM_WRITE(SMH_RAM) // Reset PSG's |
| 241 | 241 | AM_RANGE(0x5000, 0x5001) AM_DEVWRITE("ay8910.1", ay8910_address_data_w) |
| 242 | 242 | AM_RANGE(0x6000, 0x6001) AM_DEVWRITE("ay8910.2", ay8910_address_data_w) |
| 243 | AM_RANGE(0x7000, 0x7000) AM_READ | |
| 243 | AM_RANGE(0x7000, 0x7000) AM_READ | |
| 244 | 244 | ADDRESS_MAP_END |
| 245 | 245 | |
| 246 | 246 |
| r4470 | r4471 | |
|---|---|---|
| 293 | 293 | AM_RANGE(0xf802, 0xf803) AM_WRITE(lwings_bg1_scrolly_w) |
| 294 | 294 | AM_RANGE(0xf804, 0xf804) AM_WRITE(trojan_bg2_scrollx_w) |
| 295 | 295 | AM_RANGE(0xf805, 0xf805) AM_WRITE(trojan_bg2_image_w) |
| 296 | AM_RANGE(0xf808, 0xf808) AM_WRITE | |
| 296 | AM_RANGE(0xf808, 0xf808) AM_WRITE | |
| 297 | 297 | AM_RANGE(0xf809, 0xf809) AM_WRITE(avengers_protection_w) |
| 298 | 298 | AM_RANGE(0xf80c, 0xf80c) AM_WRITE(avengers_prot_bank_w) |
| 299 | 299 | AM_RANGE(0xf80d, 0xf80d) AM_WRITE(avengers_adpcm_w) |
| r4470 | r4471 | |
| 366 | 366 | /* Yes, _no_ ram */ |
| 367 | 367 | static ADDRESS_MAP_START( adpcm_writemem, ADDRESS_SPACE_PROGRAM, 8 ) |
| 368 | 368 | /* AM_RANGE(0x0000, 0xffff) AM_WRITE(SMH_ROM) avoid cluttering up error.log */ |
| 369 | AM_RANGE(0x0000, 0xffff) AM_WRITE | |
| 369 | AM_RANGE(0x0000, 0xffff) AM_WRITE | |
| 370 | 370 | ADDRESS_MAP_END |
| 371 | 371 | |
| 372 | 372 | static ADDRESS_MAP_START( avengers_adpcm_io_map, ADDRESS_SPACE_IO, 8 ) |
| r4470 | r4471 | |
|---|---|---|
| 369 | 369 | ADDRESS_MAP_GLOBAL_MASK(0xff) |
| 370 | 370 | AM_RANGE(0x00, 0x00) AM_READ_PORT("IN0") |
| 371 | 371 | AM_RANGE(0x01, 0x01) AM_READ_PORT("IN1") |
| 372 | AM_RANGE(0x00, 0x01) AM_WRITE | |
| 372 | AM_RANGE(0x00, 0x01) AM_WRITE | |
| 373 | 373 | AM_RANGE(0x02, 0x02) AM_READ_PORT("DSW2") AM_WRITE(soundlatch_w) |
| 374 | 374 | AM_RANGE(0x03, 0x03) AM_READ_PORT("DSW1") AM_WRITE(soundlatch2_w) |
| 375 | 375 | AM_RANGE(0x04, 0x04) AM_DEVWRITE("vlm", vlm5030_data_w) /* VLM5030 */ |
| 376 | // AM_RANGE(0x05, 0x05) AM_WRITE(SMH_NOP) /* unused */ | |
| 377 | // AM_RANGE(0x06, 0x06) AM_WRITE(SMH_NOP) | |
| 376 | // AM_RANGE(0x05, 0x05) AM_WRITENOP /* unused */ | |
| 377 | // AM_RANGE(0x06, 0x06) AM_WRITENOP | |
| 378 | 378 | AM_RANGE(0x08, 0x08) AM_WRITE(interrupt_enable_w) |
| 379 | AM_RANGE(0x09, 0x09) AM_WRITE(SMH_NOP) /* watchdog reset, seldom used because 08 clears the watchdog as well */ | |
| 380 | AM_RANGE(0x0a, 0x0a) AM_WRITE(SMH_NOP) /* ?? */ | |
| 379 | AM_RANGE(0x09, 0x09) AM_WRITENOP /* watchdog reset, seldom used because 08 clears the watchdog as well */ | |
| 380 | AM_RANGE(0x0a, 0x0a) AM_WRITENOP /* ?? */ | |
| 381 | 381 | AM_RANGE(0x0b, 0x0b) AM_WRITE(punchout_2a03_reset_w) |
| 382 | 382 | AM_RANGE(0x0c, 0x0c) AM_DEVWRITE("vlm", punchout_speech_reset_w) /* VLM5030 */ |
| 383 | 383 | AM_RANGE(0x0d, 0x0d) AM_DEVWRITE("vlm", punchout_speech_st_w) /* VLM5030 */ |
| 384 | 384 | AM_RANGE(0x0e, 0x0e) AM_DEVWRITE("vlm", punchout_speech_vcu_w) /* VLM5030 */ |
| 385 | AM_RANGE(0x0f, 0x0f) AM_WRITE | |
| 385 | AM_RANGE(0x0f, 0x0f) AM_WRITE | |
| 386 | 386 | |
| 387 | 387 | /* protection ports - Super Punchout only (move to install handler?) */ |
| 388 | 388 | AM_RANGE(0x07, 0x07) AM_MIRROR(0xf0) AM_MASK(0xf0) AM_READWRITE(spunchout_exp_r, spunchout_exp_w) |
| r4470 | r4471 | |
|---|---|---|
| 118 | 118 | |
| 119 | 119 | |
| 120 | 120 | |
| 121 | static ADDRESS_MAP_START( readmem, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 122 | AM_RANGE(0x0000, 0xbfff) AM_READ(SMH_ROM) | |
| 123 | AM_RANGE(0xc000, 0xefff) AM_READ(SMH_RAM) | |
| 124 | AM_RANGE(0xf000, 0xf7ff) AM_READ(SMH_BANK1) | |
| 121 | static ADDRESS_MAP_START( rygar_map, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 122 | AM_RANGE(0x0000, 0xbfff) AM_ROM | |
| 123 | AM_RANGE(0xc000, 0xcfff) AM_RAM | |
| 124 | AM_RANGE(0xd000, 0xd7ff) AM_RAM_WRITE(tecmo_txvideoram_w) AM_BASE(&tecmo_txvideoram) | |
| 125 | AM_RANGE(0xd800, 0xdbff) AM_RAM_WRITE(tecmo_fgvideoram_w) AM_BASE(&tecmo_fgvideoram) | |
| 126 | AM_RANGE(0xdc00, 0xdfff) AM_RAM_WRITE(tecmo_bgvideoram_w) AM_BASE(&tecmo_bgvideoram) | |
| 127 | AM_RANGE(0xe000, 0xe7ff) AM_RAM AM_BASE(&spriteram) AM_SIZE(&spriteram_size) | |
| 128 | AM_RANGE(0xe800, 0xefff) AM_RAM_WRITE(paletteram_xxxxBBBBRRRRGGGG_be_w) AM_BASE(&paletteram) | |
| 129 | AM_RANGE(0xf000, 0xf7ff) AM_ROMBANK(1) | |
| 125 | 130 | AM_RANGE(0xf800, 0xf800) AM_READ_PORT("JOY1") |
| 126 | 131 | AM_RANGE(0xf801, 0xf801) AM_READ_PORT("BUTTONS1") |
| 127 | 132 | AM_RANGE(0xf802, 0xf802) AM_READ_PORT("JOY2") |
| r4470 | r4471 | |
| 133 | 138 | AM_RANGE(0xf808, 0xf808) AM_READ_PORT("DSWB_0") |
| 134 | 139 | AM_RANGE(0xf809, 0xf809) AM_READ_PORT("DSWB_1") |
| 135 | 140 | AM_RANGE(0xf80f, 0xf80f) AM_READ_PORT("SYS_2") |
| 136 | ADDRESS_MAP_END | |
| 137 | ||
| 138 | static ADDRESS_MAP_START( rygar_writemem, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 139 | AM_RANGE(0x0000, 0xbfff) AM_WRITE(SMH_ROM) | |
| 140 | AM_RANGE(0xc000, 0xcfff) AM_WRITE(SMH_RAM) | |
| 141 | AM_RANGE(0xd000, 0xd7ff) AM_WRITE(tecmo_txvideoram_w) AM_BASE(&tecmo_txvideoram) | |
| 142 | AM_RANGE(0xd800, 0xdbff) AM_WRITE(tecmo_fgvideoram_w) AM_BASE(&tecmo_fgvideoram) | |
| 143 | AM_RANGE(0xdc00, 0xdfff) AM_WRITE(tecmo_bgvideoram_w) AM_BASE(&tecmo_bgvideoram) | |
| 144 | AM_RANGE(0xe000, 0xe7ff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size) | |
| 145 | AM_RANGE(0xe800, 0xefff) AM_WRITE(paletteram_xxxxBBBBRRRRGGGG_be_w) AM_BASE(&paletteram) | |
| 146 | AM_RANGE(0xf000, 0xf7ff) AM_WRITE(SMH_ROM) | |
| 147 | 141 | AM_RANGE(0xf800, 0xf802) AM_WRITE(tecmo_fgscroll_w) |
| 148 | 142 | AM_RANGE(0xf803, 0xf805) AM_WRITE(tecmo_bgscroll_w) |
| 149 | 143 | AM_RANGE(0xf806, 0xf806) AM_WRITE(tecmo_sound_command_w) |
| r4470 | r4471 | |
| 152 | 146 | AM_RANGE(0xf80b, 0xf80b) AM_WRITE(watchdog_reset_w) |
| 153 | 147 | ADDRESS_MAP_END |
| 154 | 148 | |
| 155 | static ADDRESS_MAP_START( gemini_writemem, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 156 | AM_RANGE(0x0000, 0xbfff) AM_WRITE(SMH_ROM) | |
| 157 | AM_RANGE(0xc000, 0xcfff) AM_WRITE(SMH_RAM) | |
| 158 | AM_RANGE(0xd000, 0xd7ff) AM_WRITE(tecmo_txvideoram_w) AM_BASE(&tecmo_txvideoram) | |
| 159 | AM_RANGE(0xd800, 0xdbff) AM_WRITE(tecmo_fgvideoram_w) AM_BASE(&tecmo_fgvideoram) | |
| 160 | AM_RANGE(0xdc00, 0xdfff) AM_WRITE(tecmo_bgvideoram_w) AM_BASE(&tecmo_bgvideoram) | |
| 161 | AM_RANGE(0xe000, 0xe7ff) AM_WRITE(paletteram_xxxxBBBBRRRRGGGG_be_w) AM_BASE(&paletteram) | |
| 162 | AM_RANGE(0xe800, 0xefff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size) | |
| 163 | AM_RANGE(0xf000, 0xf7ff) AM_WRITE(SMH_ROM) | |
| 149 | static ADDRESS_MAP_START( gemini_map, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 150 | AM_RANGE(0x0000, 0xbfff) AM_ROM | |
| 151 | AM_RANGE(0xc000, 0xcfff) AM_RAM | |
| 152 | AM_RANGE(0xd000, 0xd7ff) AM_RAM_WRITE(tecmo_txvideoram_w) AM_BASE(&tecmo_txvideoram) | |
| 153 | AM_RANGE(0xd800, 0xdbff) AM_RAM_WRITE(tecmo_fgvideoram_w) AM_BASE(&tecmo_fgvideoram) | |
| 154 | AM_RANGE(0xdc00, 0xdfff) AM_RAM_WRITE(tecmo_bgvideoram_w) AM_BASE(&tecmo_bgvideoram) | |
| 155 | AM_RANGE(0xe000, 0xe7ff) AM_RAM_WRITE(paletteram_xxxxBBBBRRRRGGGG_be_w) AM_BASE(&paletteram) | |
| 156 | AM_RANGE(0xe800, 0xefff) AM_RAM AM_BASE(&spriteram) AM_SIZE(&spriteram_size) | |
| 157 | AM_RANGE(0xf000, 0xf7ff) AM_ROMBANK(1) | |
| 158 | AM_RANGE(0xf800, 0xf800) AM_READ_PORT("JOY1") | |
| 159 | AM_RANGE(0xf801, 0xf801) AM_READ_PORT("BUTTONS1") | |
| 160 | AM_RANGE(0xf802, 0xf802) AM_READ_PORT("JOY2") | |
| 161 | AM_RANGE(0xf803, 0xf803) AM_READ_PORT("BUTTONS2") | |
| 162 | AM_RANGE(0xf804, 0xf804) AM_READ_PORT("SYS_0") | |
| 163 | AM_RANGE(0xf805, 0xf805) AM_READ_PORT("SYS_1") | |
| 164 | AM_RANGE(0xf806, 0xf806) AM_READ_PORT("DSWA_0") | |
| 165 | AM_RANGE(0xf807, 0xf807) AM_READ_PORT("DSWA_1") | |
| 166 | AM_RANGE(0xf808, 0xf808) AM_READ_PORT("DSWB_0") | |
| 167 | AM_RANGE(0xf809, 0xf809) AM_READ_PORT("DSWB_1") | |
| 168 | AM_RANGE(0xf80f, 0xf80f) AM_READ_PORT("SYS_2") | |
| 164 | 169 | AM_RANGE(0xf800, 0xf802) AM_WRITE(tecmo_fgscroll_w) |
| 165 | 170 | AM_RANGE(0xf803, 0xf805) AM_WRITE(tecmo_bgscroll_w) |
| 166 | 171 | AM_RANGE(0xf806, 0xf806) AM_WRITE(tecmo_sound_command_w) |
| r4470 | r4471 | |
| 169 | 174 | AM_RANGE(0xf80b, 0xf80b) AM_WRITE(watchdog_reset_w) |
| 170 | 175 | ADDRESS_MAP_END |
| 171 | 176 | |
| 172 | static ADDRESS_MAP_START( silkworm_writemem, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 173 | AM_RANGE(0x0000, 0xbfff) AM_WRITE(SMH_ROM) | |
| 174 | AM_RANGE(0xc000, 0xc3ff) AM_WRITE(tecmo_bgvideoram_w) AM_BASE(&tecmo_bgvideoram) | |
| 175 | AM_RANGE(0xc400, 0xc7ff) AM_WRITE(tecmo_fgvideoram_w) AM_BASE(&tecmo_fgvideoram) | |
| 176 | AM_RANGE(0xc800, 0xcfff) AM_WRITE(tecmo_txvideoram_w) AM_BASE(&tecmo_txvideoram) | |
| 177 | AM_RANGE(0xd000, 0xdfff) AM_WRITE(SMH_RAM) | |
| 178 | AM_RANGE(0xe000, 0xe7ff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size) | |
| 179 | AM_RANGE(0xe800, 0xefff) AM_WRITE(paletteram_xxxxBBBBRRRRGGGG_be_w) AM_BASE(&paletteram) | |
| 180 | AM_RANGE(0xf000, 0xf7ff) AM_WRITE(SMH_ROM) | |
| 177 | static ADDRESS_MAP_START( silkworm_map, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 178 | AM_RANGE(0x0000, 0xbfff) AM_ROM | |
| 179 | AM_RANGE(0xc000, 0xc3ff) AM_RAM_WRITE(tecmo_bgvideoram_w) AM_BASE(&tecmo_bgvideoram) | |
| 180 | AM_RANGE(0xc400, 0xc7ff) AM_RAM_WRITE(tecmo_fgvideoram_w) AM_BASE(&tecmo_fgvideoram) | |
| 181 | AM_RANGE(0xc800, 0xcfff) AM_RAM_WRITE(tecmo_txvideoram_w) AM_BASE(&tecmo_txvideoram) | |
| 182 | AM_RANGE(0xd000, 0xdfff) AM_RAM | |
| 183 | AM_RANGE(0xe000, 0xe7ff) AM_RAM AM_BASE(&spriteram) AM_SIZE(&spriteram_size) | |
| 184 | AM_RANGE(0xe800, 0xefff) AM_RAM_WRITE(paletteram_xxxxBBBBRRRRGGGG_be_w) AM_BASE(&paletteram) | |
| 185 | AM_RANGE(0xf000, 0xf7ff) AM_ROMBANK(1) | |
| 186 | AM_RANGE(0xf800, 0xf800) AM_READ_PORT("JOY1") | |
| 187 | AM_RANGE(0xf801, 0xf801) AM_READ_PORT("BUTTONS1") | |
| 188 | AM_RANGE(0xf802, 0xf802) AM_READ_PORT("JOY2") | |
| 189 | AM_RANGE(0xf803, 0xf803) AM_READ_PORT("BUTTONS2") | |
| 190 | AM_RANGE(0xf804, 0xf804) AM_READ_PORT("SYS_0") | |
| 191 | AM_RANGE(0xf805, 0xf805) AM_READ_PORT("SYS_1") | |
| 192 | AM_RANGE(0xf806, 0xf806) AM_READ_PORT("DSWA_0") | |
| 193 | AM_RANGE(0xf807, 0xf807) AM_READ_PORT("DSWA_1") | |
| 194 | AM_RANGE(0xf808, 0xf808) AM_READ_PORT("DSWB_0") | |
| 195 | AM_RANGE(0xf809, 0xf809) AM_READ_PORT("DSWB_1") | |
| 196 | AM_RANGE(0xf80f, 0xf80f) AM_READ_PORT("SYS_2") | |
| 181 | 197 | AM_RANGE(0xf800, 0xf802) AM_WRITE(tecmo_fgscroll_w) |
| 182 | 198 | AM_RANGE(0xf803, 0xf805) AM_WRITE(tecmo_bgscroll_w) |
| 183 | 199 | AM_RANGE(0xf806, 0xf806) AM_WRITE(tecmo_sound_command_w) |
| 184 | 200 | AM_RANGE(0xf807, 0xf807) AM_WRITE(tecmo_flipscreen_w) |
| 185 | 201 | AM_RANGE(0xf808, 0xf808) AM_WRITE(tecmo_bankswitch_w) |
| 186 | AM_RANGE(0xf809, 0xf809) AM_WRITE(SMH_NOP) /* ? */ | |
| 187 | AM_RANGE(0xf80b, 0xf80b) AM_WRITE(SMH_NOP) /* ? if mapped to watchdog like in the others, causes reset */ | |
| 202 | AM_RANGE(0xf809, 0xf809) AM_WRITENOP /* ? */ | |
| 203 | AM_RANGE(0xf80b, 0xf80b) AM_WRITENOP /* ? if mapped to watchdog like in the others, causes reset */ | |
| 188 | 204 | ADDRESS_MAP_END |
| 189 | 205 | |
| 190 | static ADDRESS_MAP_START( rygar_sound_readmem, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 191 | AM_RANGE(0x0000, 0x3fff) AM_READ(SMH_ROM) | |
| 192 | AM_RANGE(0x4000, 0x47ff) AM_READ(SMH_RAM) | |
| 193 | AM_RANGE(0xc000, 0xc000) AM_READ(soundlatch_r) | |
| 194 | ADDRESS_MAP_END | |
| 195 | ||
| 196 | static ADDRESS_MAP_START( rygar_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 197 | AM_RANGE(0x0000, 0x3fff) AM_WRITE(SMH_ROM) | |
| 198 | AM_RANGE(0x4000, 0x47ff) AM_WRITE(SMH_RAM) | |
| 206 | static ADDRESS_MAP_START( rygar_sound_map, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 207 | AM_RANGE(0x0000, 0x3fff) AM_ROM | |
| 208 | AM_RANGE(0x4000, 0x47ff) AM_RAM | |
| 199 | 209 | AM_RANGE(0x8000, 0x8001) AM_DEVWRITE("ym", ym3812_w) |
| 200 | AM_RANGE(0xc000, 0xc000) AM_DEVWRITE("msm", tecmo_adpcm_start_w) | |
| 210 | AM_RANGE(0xc000, 0xc000) AM_READ(soundlatch_r) AM_DEVWRITE("msm", tecmo_adpcm_start_w) | |
| 201 | 211 | AM_RANGE(0xd000, 0xd000) AM_WRITE(tecmo_adpcm_end_w) |
| 202 | 212 | AM_RANGE(0xe000, 0xe000) AM_DEVWRITE("msm", tecmo_adpcm_vol_w) |
| 203 | AM_RANGE(0xf000, 0xf000) AM_WRITE | |
| 213 | AM_RANGE(0xf000, 0xf000) AM_WRITE | |
| 204 | 214 | ADDRESS_MAP_END |
| 205 | 215 | |
| 206 | static ADDRESS_MAP_START( tecmo_sound_readmem, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 207 | AM_RANGE(0x0000, 0x7fff) AM_READ(SMH_ROM) | |
| 208 | AM_RANGE(0x8000, 0x87ff) AM_READ(SMH_RAM) | |
| 209 | AM_RANGE(0xc000, 0xc000) AM_READ(soundlatch_r) | |
| 210 | ADDRESS_MAP_END | |
| 211 | ||
| 212 | static ADDRESS_MAP_START( tecmo_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 213 | AM_RANGE(0x2000, 0x207f) AM_WRITE(SMH_RAM) /* Silkworm set #2 has a custom CPU which */ | |
| 214 | /* writes code to this area */ | |
| 215 | AM_RANGE(0x0000, 0x7fff) AM_WRITE(SMH_ROM) | |
| 216 | AM_RANGE(0x8000, 0x87ff) AM_WRITE(SMH_RAM) | |
| 216 | static ADDRESS_MAP_START( tecmo_sound_map, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 217 | AM_RANGE(0x2000, 0x207f) AM_RAM /* Silkworm set #2 has a custom CPU which */ | |
| 218 | /* writes code to this area */ | |
| 219 | AM_RANGE(0x0000, 0x7fff) AM_ROM | |
| 220 | AM_RANGE(0x8000, 0x87ff) AM_RAM | |
| 217 | 221 | AM_RANGE(0xa000, 0xa001) AM_DEVWRITE("ym", ym3812_w) |
| 218 | AM_RANGE(0xc000, 0xc000) AM_DEVWRITE("msm", tecmo_adpcm_start_w) | |
| 222 | AM_RANGE(0xc000, 0xc000) AM_READ(soundlatch_r) AM_DEVWRITE("msm", tecmo_adpcm_start_w) | |
| 219 | 223 | AM_RANGE(0xc400, 0xc400) AM_WRITE(tecmo_adpcm_end_w) |
| 220 | 224 | AM_RANGE(0xc800, 0xc800) AM_DEVWRITE("msm", tecmo_adpcm_vol_w) |
| 221 | AM_RANGE(0xcc00, 0xcc00) AM_WRITE | |
| 225 | AM_RANGE(0xcc00, 0xcc00) AM_WRITE | |
| 222 | 226 | ADDRESS_MAP_END |
| 223 | 227 | |
| 224 | 228 | |
| r4470 | r4471 | |
| 568 | 572 | |
| 569 | 573 | /* basic machine hardware */ |
| 570 | 574 | MDRV_CPU_ADD("maincpu", Z80, XTAL_24MHz/4) /* verified on pcb */ |
| 571 | MDRV_CPU_PROGRAM_MAP(r | |
| 575 | MDRV_CPU_PROGRAM_MAP(r | |
| 572 | 576 | MDRV_CPU_VBLANK_INT("screen", irq0_line_hold) |
| 573 | 577 | |
| 574 | 578 | MDRV_CPU_ADD("soundcpu", Z80, XTAL_4MHz) /* verified on pcb */ |
| 575 | MDRV_CPU_PROGRAM_MAP(rygar_sound_ | |
| 579 | MDRV_CPU_PROGRAM_MAP(rygar_sound_ | |
| 576 | 580 | |
| 577 | 581 | /* video hardware */ |
| 578 | 582 | MDRV_SCREEN_ADD("screen", RASTER) |
| r4470 | r4471 | |
| 608 | 612 | /* basic machine hardware */ |
| 609 | 613 | MDRV_IMPORT_FROM(rygar) |
| 610 | 614 | MDRV_CPU_REPLACE("maincpu", Z80, 6000000) |
| 611 | MDRV_CPU_PROGRAM_MAP( | |
| 615 | MDRV_CPU_PROGRAM_MAP( | |
| 612 | 616 | |
| 613 | 617 | MDRV_CPU_MODIFY("soundcpu") |
| 614 | MDRV_CPU_PROGRAM_MAP(tecmo_sound_ | |
| 618 | MDRV_CPU_PROGRAM_MAP(tecmo_sound_ | |
| 615 | 619 | MACHINE_DRIVER_END |
| 616 | 620 | |
| 617 | 621 | |
| r4470 | r4471 | |
| 620 | 624 | /* basic machine hardware */ |
| 621 | 625 | MDRV_IMPORT_FROM(gemini) |
| 622 | 626 | MDRV_CPU_REPLACE("maincpu", Z80, 6000000) |
| 623 | MDRV_CPU_PROGRAM_MAP( | |
| 627 | MDRV_CPU_PROGRAM_MAP( | |
| 624 | 628 | MACHINE_DRIVER_END |
| 625 | 629 | |
| 626 | 630 |
| r4470 | r4471 | |
|---|---|---|
| 230 | 230 | AM_RANGE(0x800004, 0x800005) AM_READ_PORT("SYSTEM") |
| 231 | 231 | AM_RANGE(0x900000, 0x900001) AM_WRITE(galpanic_6295_bankswitch_w) |
| 232 | 232 | AM_RANGE(0xa00000, 0xa00001) AM_WRITE(galpanic_coin_w) /* coin counters */ |
| 233 | AM_RANGE(0xb00000, 0xb00001) AM_WRITE(SMH_NOP) /* ??? */ | |
| 234 | AM_RANGE(0xc00000, 0xc00001) AM_WRITE(SMH_NOP) /* ??? */ | |
| 235 | AM_RANGE(0xd00000, 0xd00001) AM_WRITE(SMH_NOP) /* ??? */ | |
| 233 | AM_RANGE(0xb00000, 0xb00001) AM_WRITENOP /* ??? */ | |
| 234 | AM_RANGE(0xc00000, 0xc00001) AM_WRITENOP /* ??? */ | |
| 235 | AM_RANGE(0xd00000, 0xd00001) AM_WRITENOP /* ??? */ | |
| 236 | 236 | AM_RANGE(0xe00000, 0xe00015) AM_READWRITE(galpanib_calc_r,galpanib_calc_w) /* CALC1 MCU interaction (simulated) */ |
| 237 | 237 | ADDRESS_MAP_END |
| 238 | 238 | |
| r4470 | r4471 | |
| 306 | 306 | AM_RANGE(0x700000, 0x700fff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) |
| 307 | 307 | AM_RANGE(0x900000, 0x900001) AM_WRITE(galpania_6295_bankswitch_w) /* not sure */ |
| 308 | 308 | AM_RANGE(0xf80000, 0xf8ffff) AM_WRITE(SMH_RAM) |
| 309 | AM_RANGE(0xa00000, 0xa00001) AM_WRITE | |
| 309 | AM_RANGE(0xa00000, 0xa00001) AM_WRITE | |
| 310 | 310 | AM_RANGE(0xc80000, 0xc80001) AM_DEVWRITE8("oki", okim6295_w, 0xff00) |
| 311 | 311 | ADDRESS_MAP_END |
| 312 | 312 | |
| r4470 | r4471 | |
| 337 | 337 | AM_RANGE(0x680000, 0x68001f) AM_WRITE(SMH_RAM) // regs? |
| 338 | 338 | AM_RANGE(0x700000, 0x700fff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) |
| 339 | 339 | AM_RANGE(0x780000, 0x78001f) AM_WRITE(SMH_RAM) // regs? |
| 340 | AM_RANGE(0xa00000, 0xa00001) AM_WRITE | |
| 340 | AM_RANGE(0xa00000, 0xa00001) AM_WRITE | |
| 341 | 341 | AM_RANGE(0x900000, 0x900001) AM_WRITE(galpania_6295_bankswitch_w) |
| 342 | 342 | AM_RANGE(0xd00000, 0xd00001) AM_DEVWRITE8("oki", okim6295_w, 0xff00) |
| 343 | 343 | AM_RANGE(0xe80000, 0xe8ffff) AM_WRITE(SMH_RAM) |
| r4470 | r4471 | |
| 411 | 411 | AM_RANGE(0x700000, 0x700fff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) |
| 412 | 412 | AM_RANGE(0x780000, 0x78001f) AM_WRITE(SMH_RAM) |
| 413 | 413 | AM_RANGE(0x900000, 0x900001) AM_WRITE(galpania_6295_bankswitch_w) /* not sure */ |
| 414 | AM_RANGE(0xa00000, 0xa00001) AM_WRITE | |
| 414 | AM_RANGE(0xa00000, 0xa00001) AM_WRITE | |
| 415 | 415 | AM_RANGE(0xc80000, 0xc8ffff) AM_WRITE(SMH_RAM) // main ram |
| 416 | AM_RANGE(0xd80000, 0xd80001) AM_WRITE(SMH_NOP) | |
| 417 | AM_RANGE(0xe00012, 0xe00013) AM_WRITE(SMH_NOP) | |
| 418 | AM_RANGE(0xe80000, 0xe80001) AM_WRITE(SMH_NOP) | |
| 416 | AM_RANGE(0xd80000, 0xd80001) AM_WRITENOP | |
| 417 | AM_RANGE(0xe00012, 0xe00013) AM_WRITENOP | |
| 418 | AM_RANGE(0xe80000, 0xe80001) AM_WRITENOP | |
| 419 | 419 | AM_RANGE(0xf80000, 0xf80001) AM_DEVWRITE8("oki", okim6295_w, 0xff00) |
| 420 | 420 | ADDRESS_MAP_END |
| 421 | 421 |
| r4470 | r4471 | |
|---|---|---|
| 4 | 4 | |
| 5 | 5 | driver by Nicola Salmoria |
| 6 | 6 | |
| 7 | 2009-03: | |
| 8 | Added dsw locations and verified factory setting based on Guru's notes | |
| 9 | (actually for finalizr only, finalizb locations assumed to be the same) | |
| 10 | ||
| 7 | 11 | ***************************************************************************/ |
| 8 | 12 | |
| 9 | 13 | #include "driver.h" |
| r4470 | r4471 | |
| 13 | 17 | #include "cpu/mcs48/mcs48.h" |
| 14 | 18 | #include "sound/sn76496.h" |
| 15 | 19 | #include "sound/dac.h" |
| 20 | #include "konamipt.h" | |
| 16 | 21 | |
| 17 | ||
| 18 | 22 | extern UINT8 *finalizr_scroll; |
| 19 | 23 | extern UINT8 *finalizr_videoram2,*finalizr_colorram2; |
| 20 | 24 | static UINT8 nmi_enable,irq_enable; |
| r4470 | r4471 | |
| 114 | 118 | AM_RANGE(0x0818, 0x0818) AM_WRITE(watchdog_reset_w) |
| 115 | 119 | AM_RANGE(0x0819, 0x0819) AM_WRITE(finalizr_coin_w) |
| 116 | 120 | AM_RANGE(0x081a, 0x081a) AM_DEVWRITE("sn", sn76496_w) /* This address triggers the SN chip to read the data port. */ |
| 117 | AM_RANGE(0x081b, 0x081b) AM_WRITE | |
| 121 | AM_RANGE(0x081b, 0x081b) AM_WRITE | |
| 118 | 122 | AM_RANGE(0x081c, 0x081c) AM_WRITE(finalizr_i8039_irq_w) /* custom sound chip */ |
| 119 | 123 | AM_RANGE(0x081d, 0x081d) AM_WRITE(soundlatch_w) /* custom sound chip */ |
| 120 | 124 | AM_RANGE(0x2000, 0x23ff) AM_RAM AM_BASE(&colorram) |
| r4470 | r4471 | |
| 143 | 147 | |
| 144 | 148 | static INPUT_PORTS_START( finalizr ) |
| 145 | 149 | PORT_START("SYSTEM") |
| 146 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) | |
| 147 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) | |
| 148 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 ) | |
| 149 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) | |
| 150 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 ) | |
| 150 | KONAMI8_SYSTEM_10 | |
| 151 | 151 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) |
| 152 | 152 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) |
| 153 | 153 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_VBLANK ) |
| 154 | 154 | |
| 155 | 155 | PORT_START("P1") |
| 156 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY | |
| 157 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY | |
| 158 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY | |
| 159 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY | |
| 160 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) | |
| 161 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) | |
| 162 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 163 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 156 | KONAMI8_MONO_B12_UNK | |
| 164 | 157 | |
| 165 | 158 | PORT_START("P2") |
| 166 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL | |
| 167 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL | |
| 168 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL | |
| 169 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL | |
| 170 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL | |
| 171 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL | |
| 172 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 173 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 159 | KONAMI8_COCKTAIL_B12_UNK | |
| 174 | 160 | |
| 175 | 161 | PORT_START("DSW1") |
| 176 | PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) ) | |
| 177 | PORT_DIPSETTING( 0x02, DEF_STR( 4C_1C ) ) | |
| 178 | PORT_DIPSETTING( 0x05, DEF_STR( 3C_1C ) ) | |
| 179 | PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) ) | |
| 180 | PORT_DIPSETTING( 0x04, DEF_STR( 3C_2C ) ) | |
| 181 | PORT_DIPSETTING( 0x01, DEF_STR( 4C_3C ) ) | |
| 182 | PORT_DIPSETTING( 0x0f, DEF_STR( 1C_1C ) ) | |
| 183 | PORT_DIPSETTING( 0x03, DEF_STR( 3C_4C ) ) | |
| 184 | PORT_DIPSETTING( 0x07, DEF_STR( 2C_3C ) ) | |
| 185 | PORT_DIPSETTING( 0x0e, DEF_STR( 1C_2C ) ) | |
| 186 | PORT_DIPSETTING( 0x06, DEF_STR( 2C_5C ) ) | |
| 187 | PORT_DIPSETTING( 0x0d, DEF_STR( 1C_3C ) ) | |
| 188 | PORT_DIPSETTING( 0x0c, DEF_STR( 1C_4C ) ) | |
| 189 | PORT_DIPSETTING( 0x0b, DEF_STR( 1C_5C ) ) | |
| 190 | PORT_DIPSETTING( 0x0a, DEF_STR( 1C_6C ) ) | |
| 191 | PORT_DIPSETTING( 0x09, DEF_STR( 1C_7C ) ) | |
| 192 | PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) | |
| 193 | PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) ) | |
| 194 | PORT_DIPSETTING( 0x20, DEF_STR( 4C_1C ) ) | |
| 195 | PORT_DIPSETTING( 0x50, DEF_STR( 3C_1C ) ) | |
| 196 | PORT_DIPSETTING( 0x80, DEF_STR( 2C_1C ) ) | |
| 197 | PORT_DIPSETTING( 0x40, DEF_STR( 3C_2C ) ) | |
| 198 | PORT_DIPSETTING( 0x10, DEF_STR( 4C_3C ) ) | |
| 199 | PORT_DIPSETTING( 0xf0, DEF_STR( 1C_1C ) ) | |
| 200 | PORT_DIPSETTING( 0x30, DEF_STR( 3C_4C ) ) | |
| 201 | PORT_DIPSETTING( 0x70, DEF_STR( 2C_3C ) ) | |
| 202 | PORT_DIPSETTING( 0xe0, DEF_STR( 1C_2C ) ) | |
| 203 | PORT_DIPSETTING( 0x60, DEF_STR( 2C_5C ) ) | |
| 204 | PORT_DIPSETTING( 0xd0, DEF_STR( 1C_3C ) ) | |
| 205 | PORT_DIPSETTING( 0xc0, DEF_STR( 1C_4C ) ) | |
| 206 | PORT_DIPSETTING( 0xb0, DEF_STR( 1C_5C ) ) | |
| 207 | PORT_DIPSETTING( 0xa0, DEF_STR( 1C_6C ) ) | |
| 208 | PORT_DIPSETTING( 0x90, DEF_STR( 1C_7C ) ) | |
| 209 | PORT_DIPSETTING( 0x00, "Invalid" ) | |
| 162 | KONAMI_COINAGE_LOC(DEF_STR( Free_Play ), "No Coin B", SW1) | |
| 163 | /* "No Coin B" = coins produce sound, but no effect on coin counter */ | |
| 210 | 164 | |
| 211 | 165 | PORT_START("DSW2") |
| 212 | PORT_DIPNAME( 0x03, 0x02, DEF_STR( Lives ) ) | |
| 166 | PORT_DIPNAME( 0x03, 0x02, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW2:1,2") | |
| 213 | 167 | PORT_DIPSETTING( 0x03, "2" ) |
| 214 | 168 | PORT_DIPSETTING( 0x02, "3" ) |
| 215 | 169 | PORT_DIPSETTING( 0x01, "4" ) |
| 216 | 170 | PORT_DIPSETTING( 0x00, "7" ) |
| 217 | PORT_DIPNAME( 0x04, 0x00, DEF_STR( Cabinet ) ) | |
| 171 | PORT_DIPNAME( 0x04, 0x00, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SW2:3") | |
| 218 | 172 | PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) |
| 219 | 173 | PORT_DIPSETTING( 0x04, DEF_STR( Cocktail ) ) |
| 220 | PORT_DIPNAME( 0x18, 0x18, DEF_STR( Bonus_Life ) ) | |
| 174 | PORT_DIPNAME( 0x18, 0x18, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW2:4,5") | |
| 221 | 175 | PORT_DIPSETTING( 0x18, "30000 150000" ) |
| 222 | 176 | PORT_DIPSETTING( 0x10, "50000 300000" ) |
| 223 | 177 | PORT_DIPSETTING( 0x08, "30000" ) |
| 224 | 178 | PORT_DIPSETTING( 0x00, "50000" ) |
| 225 | PORT_DIPNAME( 0x60, 0x40, DEF_STR( Difficulty ) ) | |
| 179 | PORT_DIPNAME( 0x60, 0x40, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW2:6,7") | |
| 226 | 180 | PORT_DIPSETTING( 0x60, DEF_STR( Easy ) ) |
| 227 | 181 | PORT_DIPSETTING( 0x40, DEF_STR( Normal ) ) |
| 228 | 182 | PORT_DIPSETTING( 0x20, DEF_STR( Hard ) ) |
| 229 | 183 | PORT_DIPSETTING( 0x00, DEF_STR( Very_Hard ) ) |
| 230 | PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) ) | |
| 184 | PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW2:8") | |
| 231 | 185 | PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) |
| 232 | 186 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 233 | 187 | |
| 234 | 188 | PORT_START("DSW3") |
| 235 | PORT_DIPNAME( 0x01, 0x00, DEF_STR( Flip_Screen ) ) | |
| 189 | PORT_DIPNAME( 0x01, 0x00, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW3:1") | |
| 236 | 190 | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 237 | 191 | PORT_DIPSETTING( 0x01, DEF_STR( On ) ) |
| 238 | PORT_DIPNAME( 0x02, 0x02, DEF_STR( Controls ) ) | |
| 192 | PORT_DIPNAME( 0x02, 0x02, DEF_STR( Controls ) ) PORT_DIPLOCATION("SW3:2") | |
| 239 | 193 | PORT_DIPSETTING( 0x02, DEF_STR( Single ) ) |
| 240 | 194 | PORT_DIPSETTING( 0x00, DEF_STR( Dual ) ) |
| 241 | PORT_DIPNAME( 0x04, 0x04, DEF_STR( Service_Mode ) ) | |
| 242 | PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) | |
| 243 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) | |
| 244 | PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unused ) ) | |
| 245 | PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) | |
| 246 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) | |
| 195 | PORT_SERVICE_DIPLOC( 0x04, IP_ACTIVE_LOW, "SW3:3" ) | |
| 196 | PORT_DIPUNUSED_DIPLOC( 0x08, 0x08, "SW3:4" ) | |
| 247 | 197 | PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNKNOWN ) |
| 248 | 198 | INPUT_PORTS_END |
| 249 | 199 | |
| 250 | 200 | static INPUT_PORTS_START( finalizb ) |
| 251 | 201 | PORT_INCLUDE( finalizr ) |
| 252 | 202 | |
| 253 | PORT_MODIFY("SYSTEM") | |
| 254 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN3 ) | |
| 255 | ||
| 256 | 203 | PORT_MODIFY("DSW2") |
| 257 | PORT_DIPNAME( 0x18, 0x18, DEF_STR( Bonus_Life ) ) | |
| 204 | PORT_DIPNAME( 0x18, 0x18, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW2:4,5") | |
| 258 | 205 | PORT_DIPSETTING( 0x18, "20000 100000" ) |
| 259 | 206 | PORT_DIPSETTING( 0x10, "30000 150000" ) |
| 260 | 207 | PORT_DIPSETTING( 0x08, "20000" ) |
| 261 | 208 | PORT_DIPSETTING( 0x00, "30000" ) |
| 262 | PORT_DIPUNKNOWN( 0x20, 0x20 ) | |
| 263 | PORT_DIPUNKNOWN( 0x40, 0x40 ) | |
| 209 | PORT_DIPUNKNOWN_DIPLOC( 0x20, 0x20, "SW2:6" ) | |
| 210 | PORT_DIPUNKNOWN_DIPLOC( 0x40, 0x40, "SW2:7" ) | |
| 264 | 211 | |
| 265 | 212 | PORT_MODIFY("DSW3") |
| 266 | PORT_DIPUNKNOWN( 0x04, 0x04 ) | |
| 267 | PORT_DIPUNKNOWN( 0x08, 0x08 ) | |
| 213 | PORT_DIPUNKNOWN_DIPLOC( 0x08, 0x08, "SW3:4" ) | |
| 268 | 214 | INPUT_PORTS_END |
| 269 | 215 | |
| 270 | 216 | |
| r4470 | r4471 | |
| 404 | 350 | |
| 405 | 351 | GAME( 1985, finalizr, 0, finalizr, finalizr, finalizr, ROT90, "Konami", "Finalizer - Super Transformation", GAME_IMPERFECT_SOUND ) |
| 406 | 352 | GAME( 1985, finalizb, finalizr, finalizr, finalizb, finalizr, ROT90, "bootleg", "Finalizer - Super Transformation (bootleg)", GAME_IMPERFECT_SOUND ) |
| 407 |
| r4470 | r4471 | |
|---|---|---|
| 2242 | 2242 | GAMEL( 2000, number10, 0, number10, number10, number10, ROT0, "PlayMark Srl", "Number Dieci (Poker)", 0, layout_igspoker ) |
| 2243 | 2243 | GAMEL( 2000, numbr10l, number10, number10, number10, number10, ROT0, "PlayMark Srl", "Number Dieci (Lattine)", 0, layout_igspoker ) |
| 2244 | 2244 | GAMEL( 198?, igs_ncs, 0, igs_ncs, igs_ncs, igs_ncs, ROT0, "IGS", "New Champion Skill (v100n)", 0, layout_igspoker ) /* SU 062 */ |
| 2245 | GAMEL( 199?, cpokerpk, 0, cpokerpk, cpokerpk, cpokerpk, ROT0, "SGS", "Champion Poker PK (bootleg, blue board)", 0, layout_igspoker ) | |
| 2246 | GAMEL( 199?, cpokerpkg, cpokerpk, cpokerpk, cpokerpk, cpokerpk, ROT0, "SGS", "Champion Poker PK (bootleg, green board)", 0, layout_igspoker ) | |
| 2245 | GAMEL( 199?, cpokerpk, 0, cpokerpk, cpokerpk, cpokerpk, ROT0, "SGS", "Champion Italian PK (bootleg, blue board)", 0, layout_igspoker ) | |
| 2246 | GAMEL( 199?, cpokerpkg, cpokerpk, cpokerpk, cpokerpk, cpokerpk, ROT0, "SGS", "Champion Italian PK (bootleg, green board)", 0, layout_igspoker ) | |
| 2247 | 2247 | GAMEL( 199?, citalcup, cpokerpk, cpokerpk, cpokerpk, cpokerpk, ROT0, "SGS", "Champion Italian Cup (bootleg V220IT)", 0, layout_igspoker ) |
| 2248 | 2248 | |
| 2249 | 2249 | GAMEL( 2000, igs_ncs2, 0, igs_ncs, igs_ncs, igs_ncs2, ROT0, "IGS", "New Champion Skill (v100n 2000)", GAME_IMPERFECT_GRAPHICS, layout_igspoker ) |
| r4470 | r4471 | |
|---|---|---|
| 873 | 873 | * Memory Map Information * |
| 874 | 874 | *************************/ |
| 875 | 875 | |
| 876 | static ADDRESS_MAP_START( i8039_ | |
| 876 | static ADDRESS_MAP_START( i8039_ | |
| 877 | 877 | AM_RANGE(0x0000, 0x0fff) AM_ROM |
| 878 | 878 | ADDRESS_MAP_END |
| 879 | 879 | |
| r4470 | r4471 | |
| 1159 | 1159 | |
| 1160 | 1160 | /* basic machine hardware */ |
| 1161 | 1161 | MDRV_CPU_ADD("maincpu", I8039, CPU_CLOCK) |
| 1162 | MDRV_CPU_PROGRAM_MAP(i8039_ | |
| 1162 | MDRV_CPU_PROGRAM_MAP(i8039_ | |
| 1163 | 1163 | MDRV_CPU_IO_MAP(i8039_io_port, 0) |
| 1164 | 1164 | |
| 1165 | 1165 | MDRV_CPU_VBLANK_INT("screen", irq0_line_assert) |
| r4470 | r4471 | |
|---|---|---|
| 342 | 342 | MDRV_SCREEN_ADD("screen", RASTER) |
| 343 | 343 | MDRV_SCREEN_REFRESH_RATE(60) |
| 344 | 344 | MDRV_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
| 345 | MDRV_SCREEN_FORMAT(BITMAP_FORMAT_ | |
| 345 | MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) | |
| 346 | 346 | MDRV_SCREEN_SIZE(320, 240) |
| 347 | 347 | MDRV_SCREEN_VISIBLE_AREA(0, 320-1, 0, 240-1) |
| 348 | 348 |
| r4470 | r4471 | |
|---|---|---|
| 627 | 627 | |
| 628 | 628 | static ADDRESS_MAP_START( gg_cpu3_io_map, ADDRESS_SPACE_IO, 8 ) |
| 629 | 629 | ADDRESS_MAP_GLOBAL_MASK(0xff) |
| 630 | AM_RANGE(0x00, 0x00) AM_WRITE | |
| 630 | AM_RANGE(0x00, 0x00) AM_WRITE | |
| 631 | 631 | AM_RANGE(0x01, 0x01) AM_WRITE(cfb_backgnd_color_w) |
| 632 | 632 | AM_RANGE(0x02, 0x02) AM_READWRITE(cfb_port_02_r, cfb_led_w) /* Read = VCU status ? */ |
| 633 | 633 | AM_RANGE(0x03, 0x03) AM_WRITE(cfb_zpu_int_req_set_w) |
| r4470 | r4471 | |
| 1080 | 1080 | AM_RANGE(0x4c, 0x4c) AM_WRITE(main_sound_w) |
| 1081 | 1081 | AM_RANGE(0x60, 0x60) AM_WRITE(zpu_bcd_decoder_w) |
| 1082 | 1082 | AM_RANGE(0x62, 0x62) AM_READ(zpu_inputs_r) |
| 1083 | AM_RANGE(0x66, 0x66) AM_WRITE(SMH_NOP) | |
| 1084 | AM_RANGE(0x68, 0x68) AM_WRITE(SMH_NOP) | |
| 1083 | AM_RANGE(0x66, 0x66) AM_WRITENOP | |
| 1084 | AM_RANGE(0x68, 0x68) AM_WRITENOP | |
| 1085 | 1085 | AM_RANGE(0x6e, 0x6f) AM_WRITE(zpu_led_w) |
| 1086 | 1086 | ADDRESS_MAP_END |
| 1087 | 1087 |
| r4470 | r4471 | |
|---|---|---|
| 762 | 762 | AM_RANGE(0x000000, 0x07ffff) AM_RAM AM_BASE(&namcona1_workram) |
| 763 | 763 | AM_RANGE(0x3f8000, 0x3fffff) AM_READWRITE(mcu_mailbox_r, mcu_mailbox_w_68k) |
| 764 | 764 | AM_RANGE(0x400000, 0xbfffff) AM_ROM AM_REGION("maincpu", 0x280000) /* data */ |
| 765 | AM_RANGE(0xd00000, 0xd00001) AM_WRITE(SMH_NOP) /* xday: serial out? */ | |
| 766 | AM_RANGE(0xd40000, 0xd40001) AM_WRITE(SMH_NOP) /* xday: serial out? */ | |
| 767 | AM_RANGE(0xd80000, 0xd80001) AM_WRITE(SMH_NOP) /* xday: serial out? */ | |
| 768 | AM_RANGE(0xdc0000, 0xdc001f) AM_WRITE(SMH_NOP) /* xday: serial config? */ | |
| 765 | AM_RANGE(0xd00000, 0xd00001) AM_WRITENOP /* xday: serial out? */ | |
| 766 | AM_RANGE(0xd40000, 0xd40001) AM_WRITENOP /* xday: serial out? */ | |
| 767 | AM_RANGE(0xd80000, 0xd80001) AM_WRITENOP /* xday: serial out? */ | |
| 768 | AM_RANGE(0xdc0000, 0xdc001f) AM_WRITENOP /* xday: serial config? */ | |
| 769 | 769 | AM_RANGE(0xc00000, 0xdfffff) AM_ROM AM_REGION("maincpu", 0x080000) /* code */ |
| 770 | 770 | AM_RANGE(0xe00000, 0xe00fff) AM_READWRITE(namcona1_nvram_r, namcona1_nvram_w) |
| 771 | 771 | /* xday: additional battery-backed ram at 00E024FA? */ |
| r4470 | r4471 | |
|---|---|---|
| 80 | 80 | AM_RANGE(0x0800, 0x0800) AM_READ(bsktball_in0_r) |
| 81 | 81 | AM_RANGE(0x0802, 0x0802) AM_READ_PORT("IN1") |
| 82 | 82 | AM_RANGE(0x0803, 0x0803) AM_READ_PORT("DSW") |
| 83 | AM_RANGE(0x1000, 0x1000) AM_WRITE | |
| 83 | AM_RANGE(0x1000, 0x1000) AM_WRITE | |
| 84 | 84 | AM_RANGE(0x1010, 0x1010) AM_DEVWRITE("discrete", bsktball_bounce_w) /* Crowd Amp / Bounce */ |
| 85 | AM_RANGE(0x1022, 0x1023) AM_WRITE | |
| 85 | AM_RANGE(0x1022, 0x1023) AM_WRITE | |
| 86 | 86 | AM_RANGE(0x1024, 0x1025) AM_WRITE(bsktball_led1_w) /* LED 1 */ |
| 87 | 87 | AM_RANGE(0x1026, 0x1027) AM_WRITE(bsktball_led2_w) /* LED 2 */ |
| 88 | 88 | AM_RANGE(0x1028, 0x1029) AM_WRITE(bsktball_ld1_w) /* LD 1 */ |
| r4470 | r4471 | |
|---|---|---|
| 252 | 252 | AM_RANGE(0x07c006, 0x07c007) AM_WRITE(terraf_fg_scrollx_w) /* not use in terrafu, 0x07c008 neither */ |
| 253 | 253 | AM_RANGE(0x07c008, 0x07c009) AM_WRITE(terraf_fg_scrolly_w) /* written twice, lsb and msb */ |
| 254 | 254 | AM_RANGE(0x07c00a, 0x07c00b) AM_WRITE(sound_command_w) |
| 255 | AM_RANGE(0x07c00c, 0x07c00d) AM_WRITE | |
| 255 | AM_RANGE(0x07c00c, 0x07c00d) AM_WRITE | |
| 256 | 256 | AM_RANGE(0x07c00e, 0x07c00f) AM_WRITE(armedf_mcu_cmd) /* MCU Command ? */ |
| 257 | 257 | AM_RANGE(0x0c0000, 0x0c0001) AM_WRITE(terraf_fg_scroll_msb_arm_w) /* written between two consecutive writes to 7c008 */ |
| 258 | 258 | ADDRESS_MAP_END |
| r4470 | r4471 | |
| 278 | 278 | AM_RANGE(0x07c006, 0x07c007) AM_WRITE(terraf_fg_scrollx_w) /* not use in terrafu, 0x07c008 neither */ |
| 279 | 279 | AM_RANGE(0x07c008, 0x07c009) AM_WRITE(terraf_fg_scrolly_w) /* written twice, lsb and msb */ |
| 280 | 280 | AM_RANGE(0x07c00a, 0x07c00b) AM_WRITE(sound_command_w) |
| 281 | AM_RANGE(0x07c00c, 0x07c00d) AM_WRITE | |
| 281 | AM_RANGE(0x07c00c, 0x07c00d) AM_WRITE | |
| 282 | 282 | AM_RANGE(0x07c00e, 0x07c00f) AM_WRITE(armedf_mcu_cmd) /* MCU Command ? */ |
| 283 | 283 | AM_RANGE(0x0c0000, 0x0c0001) AM_WRITE(terraf_fg_scroll_msb_arm_w) /* written between two consecutive writes to 7c008 */ |
| 284 | 284 | ADDRESS_MAP_END |
| r4470 | r4471 | |
| 301 | 301 | AM_RANGE(0x07c002, 0x07c003) AM_WRITE(armedf_bg_scrollx_w) |
| 302 | 302 | AM_RANGE(0x07c004, 0x07c005) AM_WRITE(armedf_bg_scrolly_w) |
| 303 | 303 | AM_RANGE(0x07c00a, 0x07c00b) AM_WRITE(sound_command_w) |
| 304 | AM_RANGE(0x0c0000, 0x0c0001) AM_WRITE(SMH_NOP) /* watchdog? */ | |
| 305 | AM_RANGE(0xffd000, 0xffd001) AM_WRITE(SMH_NOP) /* ? */ | |
| 304 | AM_RANGE(0x0c0000, 0x0c0001) AM_WRITENOP /* watchdog? */ | |
| 305 | AM_RANGE(0xffd000, 0xffd001) AM_WRITENOP /* ? */ | |
| 306 | 306 | ADDRESS_MAP_END |
| 307 | 307 | |
| 308 | 308 | static ADDRESS_MAP_START( cclimbr2_map, ADDRESS_SPACE_PROGRAM, 16 ) |
| r4470 | r4471 | |
| 324 | 324 | AM_RANGE(0x07c002, 0x07c003) AM_WRITE(armedf_bg_scrollx_w) |
| 325 | 325 | AM_RANGE(0x07c004, 0x07c005) AM_WRITE(armedf_bg_scrolly_w) |
| 326 | 326 | AM_RANGE(0x07c00a, 0x07c00b) AM_WRITE(sound_command_w) |
| 327 | AM_RANGE(0x07c00e, 0x07c00f) AM_WRITE(SMH_NOP) /* ? */ | |
| 328 | AM_RANGE(0x07c00c, 0x07c00d) AM_WRITE(SMH_NOP) /* Watchdog ? cycle 0000 -> 0100 -> 0200 back to 0000 */ | |
| 327 | AM_RANGE(0x07c00e, 0x07c00f) AM_WRITENOP /* ? */ | |
| 328 | AM_RANGE(0x07c00c, 0x07c00d) AM_WRITENOP /* Watchdog ? cycle 0000 -> 0100 -> 0200 back to 0000 */ | |
| 329 | 329 | ADDRESS_MAP_END |
| 330 | 330 | |
| 331 | 331 | static ADDRESS_MAP_START( legion_map, ADDRESS_SPACE_PROGRAM, 16 ) |
| r4470 | r4471 | |
| 348 | 348 | AM_RANGE(0x07c004, 0x07c005) AM_WRITE(armedf_bg_scrolly_w) |
| 349 | 349 | AM_RANGE(0x07c00a, 0x07c00b) AM_WRITE(sound_command_w) |
| 350 | 350 | AM_RANGE(0x07c00e, 0x07c00f) AM_WRITE(armedf_mcu_cmd) /* MCU Command ? */ |
| 351 | AM_RANGE(0x07c00c, 0x07c00d) AM_WRITE | |
| 351 | AM_RANGE(0x07c00c, 0x07c00d) AM_WRITE | |
| 352 | 352 | ADDRESS_MAP_END |
| 353 | 353 | |
| 354 | 354 | static ADDRESS_MAP_START( legiono_map, ADDRESS_SPACE_PROGRAM, 16 ) |
| r4470 | r4471 | |
| 373 | 373 | AM_RANGE(0x07c004, 0x07c005) AM_WRITE(armedf_bg_scrolly_w) |
| 374 | 374 | AM_RANGE(0x07c00a, 0x07c00b) AM_WRITE(sound_command_w) |
| 375 | 375 | //AM_RANGE(0x07c00e, 0x07c00f) AM_WRITE(armedf_mcu_cmd) /* MCU Command ? */ |
| 376 | //AM_RANGE(0x07c00c, 0x07c00d) AM_WRITE | |
| 376 | //AM_RANGE(0x07c00c, 0x07c00d) AM_WRITE | |
| 377 | 377 | ADDRESS_MAP_END |
| 378 | 378 | |
| 379 | 379 | static ADDRESS_MAP_START( armedf_map, ADDRESS_SPACE_PROGRAM, 16 ) |
| r4470 | r4471 | |
|---|---|---|
| 137 | 137 | AM_RANGE(0x8000, 0x87ff) AM_WRITE(SMH_RAM) AM_BASE(&hanaroku_spriteram1) |
| 138 | 138 | AM_RANGE(0x9000, 0x97ff) AM_WRITE(SMH_RAM) AM_BASE(&hanaroku_spriteram2) |
| 139 | 139 | AM_RANGE(0xa000, 0xa1ff) AM_WRITE(SMH_RAM) AM_BASE(&hanaroku_spriteram3) |
| 140 | AM_RANGE(0xa200, 0xa2ff) AM_WRITE(SMH_NOP) // ??? written once during P.O.S.T. | |
| 141 | AM_RANGE(0xa300, 0xa304) AM_WRITE(SMH_NOP) // ??? | |
| 140 | AM_RANGE(0xa200, 0xa2ff) AM_WRITENOP // ??? written once during P.O.S.T. | |
| 141 | AM_RANGE(0xa300, 0xa304) AM_WRITENOP // ??? | |
| 142 | 142 | AM_RANGE(0xc000, 0xc3ff) AM_WRITE(SMH_RAM) // main ram |
| 143 | 143 | AM_RANGE(0xc400, 0xc4ff) AM_WRITE(SMH_RAM) // ??? |
| 144 | AM_RANGE(0xb000, 0xb000) AM_WRITE | |
| 144 | AM_RANGE(0xb000, 0xb000) AM_WRITE | |
| 145 | 145 | AM_RANGE(0xd000, 0xd001) AM_DEVWRITE("ay", ay8910_address_data_w) |
| 146 | 146 | AM_RANGE(0xe000, 0xe000) AM_WRITE(hanaroku_out_0_w) |
| 147 | 147 | AM_RANGE(0xe002, 0xe002) AM_WRITE(hanaroku_out_1_w) |
| r4470 | r4471 | |
|---|---|---|
| 13 | 13 | #include "video/konamiic.h" |
| 14 | 14 | #include "sound/k007232.h" |
| 15 | 15 | #include "sound/2151intf.h" |
| 16 | #include "konamipt.h" | |
| 16 | 17 | |
| 17 | 18 | /* prototypes */ |
| 18 | 19 | static MACHINE_RESET( aliens ); |
| r4470 | r4471 | |
| 121 | 122 | |
| 122 | 123 | static INPUT_PORTS_START( aliens ) |
| 123 | 124 | PORT_START("DSW1") |
| 124 | PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW1:1,2,3,4") | |
| 125 | PORT_DIPSETTING( 0x02, DEF_STR( 4C_1C ) ) | |
| 126 | PORT_DIPSETTING( 0x05, DEF_STR( 3C_1C ) ) | |
| 127 | PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) ) | |
| 128 | PORT_DIPSETTING( 0x04, DEF_STR( 3C_2C ) ) | |
| 129 | PORT_DIPSETTING( 0x01, DEF_STR( 4C_3C ) ) | |
| 130 | PORT_DIPSETTING( 0x0f, DEF_STR( 1C_1C ) ) | |
| 131 | PORT_DIPSETTING( 0x03, DEF_STR( 3C_4C ) ) | |
| 132 | PORT_DIPSETTING( 0x07, DEF_STR( 2C_3C ) ) | |
| 133 | PORT_DIPSETTING( 0x0e, DEF_STR( 1C_2C ) ) | |
| 134 | PORT_DIPSETTING( 0x06, DEF_STR( 2C_5C ) ) | |
| 135 | PORT_DIPSETTING( 0x0d, DEF_STR( 1C_3C ) ) | |
| 136 | PORT_DIPSETTING( 0x0c, DEF_STR( 1C_4C ) ) | |
| 137 | PORT_DIPSETTING( 0x0b, DEF_STR( 1C_5C ) ) | |
| 138 | PORT_DIPSETTING( 0x0a, DEF_STR( 1C_6C ) ) | |
| 139 | PORT_DIPSETTING( 0x09, DEF_STR( 1C_7C ) ) | |
| 140 | PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) | |
| 141 | PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW1:5,6,7,8") | |
| 142 | PORT_DIPSETTING( 0x20, DEF_STR( 4C_1C ) ) | |
| 143 | PORT_DIPSETTING( 0x50, DEF_STR( 3C_1C ) ) | |
| 144 | PORT_DIPSETTING( 0x80, DEF_STR( 2C_1C ) ) | |
| 145 | PORT_DIPSETTING( 0x40, DEF_STR( 3C_2C ) ) | |
| 146 | PORT_DIPSETTING( 0x10, DEF_STR( 4C_3C ) ) | |
| 147 | PORT_DIPSETTING( 0xf0, DEF_STR( 1C_1C ) ) | |
| 148 | PORT_DIPSETTING( 0x30, DEF_STR( 3C_4C ) ) | |
| 149 | PORT_DIPSETTING( 0x70, DEF_STR( 2C_3C ) ) | |
| 150 | PORT_DIPSETTING( 0xe0, DEF_STR( 1C_2C ) ) | |
| 151 | PORT_DIPSETTING( 0x60, DEF_STR( 2C_5C ) ) | |
| 152 | PORT_DIPSETTING( 0xd0, DEF_STR( 1C_3C ) ) | |
| 153 | PORT_DIPSETTING( 0xc0, DEF_STR( 1C_4C ) ) | |
| 154 | PORT_DIPSETTING( 0xb0, DEF_STR( 1C_5C ) ) | |
| 155 | PORT_DIPSETTING( 0xa0, DEF_STR( 1C_6C ) ) | |
| 156 | PORT_DIPSETTING( 0x90, DEF_STR( 1C_7C ) ) | |
| 157 | // PORT_DIPSETTING( 0x00, "Invalid" ) | |
| 125 | KONAMI_COINAGE_LOC(DEF_STR( Free_Play ), "No Credits", SW1) | |
| 126 | /* "No Credits" = both coin slots open, but no effect on coin counters */ | |
| 158 | 127 | |
| 159 | 128 | PORT_START("DSW2") |
| 160 | 129 | PORT_DIPNAME( 0x03, 0x02, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW2:1,2") |
| r4470 | r4471 | |
| 187 | 156 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) |
| 188 | 157 | |
| 189 | 158 | PORT_START("P1") |
| 190 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY | |
| 191 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY | |
| 192 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY | |
| 193 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY | |
| 194 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) | |
| 195 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) | |
| 196 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 ) | |
| 197 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 ) | |
| 159 | KONAMI8_B12_COIN_START(1) | |
| 198 | 160 | |
| 199 | 161 | PORT_START("P2") |
| 200 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) | |
| 201 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) | |
| 202 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) | |
| 203 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) | |
| 204 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) | |
| 205 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) | |
| 206 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 ) | |
| 207 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 ) | |
| 162 | KONAMI8_B12_COIN_START(2) | |
| 208 | 163 | INPUT_PORTS_END |
| 209 | 164 | |
| 210 | 165 | |
| r4470 | r4471 | |
| 513 | 468 | } |
| 514 | 469 | |
| 515 | 470 | |
| 516 | ||
| 517 | 471 | GAME( 1990, aliens, 0, aliens, aliens, aliens, ROT0, "Konami", "Aliens (World set 1)", GAME_SUPPORTS_SAVE ) |
| 518 | 472 | GAME( 1990, aliens2, aliens, aliens, aliens, aliens, ROT0, "Konami", "Aliens (World set 2)", GAME_SUPPORTS_SAVE ) |
| 519 | 473 | GAME( 1990, aliens3, aliens, aliens, aliens, aliens, ROT0, "Konami", "Aliens (World set 3)", GAME_SUPPORTS_SAVE ) |
| r4470 | r4471 | |
|---|---|---|
| 236 | 236 | PORT_DIPSETTING( 0xb0, DEF_STR( 1C_5C ) ) |
| 237 | 237 | PORT_DIPSETTING( 0xa0, DEF_STR( 1C_6C ) ) |
| 238 | 238 | PORT_DIPSETTING( 0x90, DEF_STR( 1C_7C ) ) |
| 239 | // PORT_DIPSETTING( 0x00, "Disabled" ) | |
| 239 | PORT_DIPSETTING( 0x00, "No Coin B" ) | |
| 240 | /* "No Coin B" = coins produce sound, but no effect on coin counter */ | |
| 240 | 241 | |
| 241 | 242 | PORT_START("DSW2") |
| 242 | 243 | PORT_DIPUNUSED_DIPLOC( 0x01, 0x01, "SW2:1" ) |
| r4470 | r4471 | |
|---|---|---|
| 1735 | 1735 | AM_RANGE(0xe0030c, 0xe0030d) AM_WRITE(ddenlovr_coincounter_1_w) // |
| 1736 | 1736 | AM_RANGE(0xe00400, 0xe00403) AM_DEVWRITE8("ym", ym2413_w, 0x00ff) |
| 1737 | 1737 | AM_RANGE(0xe00500, 0xe0051f) AM_DEVWRITE8("rtc", msm6242_w, 0x00ff) // 6242RTC |
| 1738 | // AM_RANGE(0xe00302, 0xe00303) AM_WRITE | |
| 1738 | // AM_RANGE(0xe00302, 0xe00303) AM_WRITE | |
| 1739 | 1739 | AM_RANGE(0xe00600, 0xe00603) AM_DEVWRITE8("ay", ay8910_address_data_w, 0x00ff) |
| 1740 | 1740 | AM_RANGE(0xe00700, 0xe00701) AM_DEVWRITE8("oki", okim6295_w, 0x00ff) |
| 1741 | 1741 | AM_RANGE(0xff0000, 0xffffff) AM_WRITE(SMH_RAM) // RAM |
| r4470 | r4471 | |
| 1776 | 1776 | AM_RANGE(0xe0030c, 0xe0030d) AM_WRITE(ddenlovr_coincounter_1_w) // |
| 1777 | 1777 | AM_RANGE(0xe00400, 0xe00403) AM_DEVWRITE8("ym", ym2413_w, 0x00ff) |
| 1778 | 1778 | AM_RANGE(0xe00500, 0xe0051f) AM_DEVWRITE8("rtc", msm6242_w, 0x00ff) // 6242RTC |
| 1779 | // AM_RANGE(0xe00302, 0xe00303) AM_WRITE | |
| 1779 | // AM_RANGE(0xe00302, 0xe00303) AM_WRITE | |
| 1780 | 1780 | AM_RANGE(0xe00600, 0xe00603) AM_DEVWRITE8("ay", ay8910_address_data_w, 0x00ff) |
| 1781 | 1781 | AM_RANGE(0xe00700, 0xe00701) AM_DEVWRITE8("oki", okim6295_w, 0x00ff) |
| 1782 | 1782 | AM_RANGE(0xff0000, 0xffffff) AM_WRITE(SMH_RAM) // RAM |
| r4470 | r4471 | |
| 1936 | 1936 | AM_RANGE(0x96, 0x96) AM_WRITE(ddenlovr_layer_enable_w) |
| 1937 | 1937 | AM_RANGE(0xa0, 0xaf) AM_DEVWRITE("rtc", msm6242_w) // 6242RTC |
| 1938 | 1938 | AM_RANGE(0xc0, 0xc0) AM_DEVWRITE("oki", quizchq_oki_bank_w) |
| 1939 | AM_RANGE(0xc2, 0xc2) AM_WRITE | |
| 1939 | AM_RANGE(0xc2, 0xc2) AM_WRITE | |
| 1940 | 1940 | ADDRESS_MAP_END |
| 1941 | 1941 | |
| 1942 | 1942 | |
| r4470 | r4471 | |
| 1979 | 1979 | AM_RANGE(0x95, 0x95) AM_WRITE(ddenlovr_priority_w) |
| 1980 | 1980 | AM_RANGE(0x96, 0x96) AM_WRITE(ddenlovr_layer_enable_w) |
| 1981 | 1981 | AM_RANGE(0xa0, 0xa0) AM_WRITE(ddenlovr_select2_w) |
| 1982 | AM_RANGE(0xc2, 0xc2) AM_WRITE | |
| 1982 | AM_RANGE(0xc2, 0xc2) AM_WRITE | |
| 1983 | 1983 | ADDRESS_MAP_END |
| 1984 | 1984 | /* |
| 1985 | 1985 | 1e input select,1c input read |
| r4470 | r4471 | |
| 2112 | 2112 | AM_RANGE(0x69, 0x69) AM_WRITE(mmpanic_lockout_w) |
| 2113 | 2113 | AM_RANGE(0x74, 0x74) AM_WRITE(mmpanic_rombank_w) |
| 2114 | 2114 | |
| 2115 | AM_RANGE(0x78, 0x78) AM_WRITE | |
| 2115 | AM_RANGE(0x78, 0x78) AM_WRITE | |
| 2116 | 2116 | |
| 2117 | 2117 | AM_RANGE(0x7c, 0x7c) AM_DEVWRITE("oki", okim6295_w) // Sound |
| 2118 | 2118 | AM_RANGE(0x8c, 0x8c) AM_WRITE(mmpanic_soundlatch_w) // |
| 2119 | 2119 | AM_RANGE(0x88, 0x88) AM_WRITE(mmpanic_leds_w) // Leds |
| 2120 | AM_RANGE(0x90, 0x90) AM_WRITE | |
| 2120 | AM_RANGE(0x90, 0x90) AM_WRITE | |
| 2121 | 2121 | AM_RANGE(0xa6, 0xa6) AM_WRITE(mmpanic_leds2_w) // |
| 2122 | 2122 | ADDRESS_MAP_END |
| 2123 | 2123 | |
| r4470 | r4471 | |
| 2140 | 2140 | ADDRESS_MAP_END |
| 2141 | 2141 | |
| 2142 | 2142 | static ADDRESS_MAP_START( mmpanic_sound_writeport, ADDRESS_SPACE_IO, 8 ) ADDRESS_MAP_GLOBAL_MASK(0xff) |
| 2143 | AM_RANGE(0x04, 0x04) AM_WRITE(SMH_NOP) // 0, during IRQ | |
| 2144 | AM_RANGE(0x06, 0x06) AM_WRITE(SMH_NOP) // almost always 1, sometimes 0 | |
| 2143 | AM_RANGE(0x04, 0x04) AM_WRITENOP // 0, during IRQ | |
| 2144 | AM_RANGE(0x06, 0x06) AM_WRITENOP // almost always 1, sometimes 0 | |
| 2145 | 2145 | AM_RANGE(0x08, 0x09) AM_DEVWRITE("ym", ym2413_w) |
| 2146 | 2146 | AM_RANGE(0x0c, 0x0c) AM_DEVWRITE("ay", ay8910_data_w) |
| 2147 | 2147 | AM_RANGE(0x0e, 0x0e) AM_DEVWRITE("ay", ay8910_address_w) |
| r4470 | r4471 | |
| 2166 | 2166 | AM_RANGE(0x6000, 0x6fff) AM_WRITE(SMH_RAM) |
| 2167 | 2167 | AM_RANGE(0x7000, 0x7fff) AM_WRITE(SMH_BANK2) // RAM (Banked) |
| 2168 | 2168 | AM_RANGE(0x8000, 0x81ff) AM_WRITE(rongrong_palette_w) |
| 2169 | AM_RANGE(0x8400, 0x87ff) AM_WRITE | |
| 2169 | AM_RANGE(0x8400, 0x87ff) AM_WRITE | |
| 2170 | 2170 | ADDRESS_MAP_END |
| 2171 | 2171 | |
| 2172 | 2172 | |
| r4470 | r4471 | |
| 2283 | 2283 | |
| 2284 | 2284 | static ADDRESS_MAP_START( funkyfig_sound_readport, ADDRESS_SPACE_IO, 8 ) ADDRESS_MAP_GLOBAL_MASK(0xff) |
| 2285 | 2285 | AM_RANGE(0x02, 0x02) AM_READ(soundlatch_r) |
| 2286 | AM_RANGE(0x04, 0x04) AM_READ | |
| 2286 | AM_RANGE(0x04, 0x04) AM_READ | |
| 2287 | 2287 | ADDRESS_MAP_END |
| 2288 | 2288 | |
| 2289 | 2289 | |
| r4470 | r4471 | |
| 2670 | 2670 | AM_RANGE(0x6000, 0x6fff) AM_WRITE(SMH_RAM) // RAM |
| 2671 | 2671 | AM_RANGE(0x7000, 0x7fff) AM_WRITE(SMH_BANK2) // RAM (Banked) |
| 2672 | 2672 | AM_RANGE(0xf000, 0xf1ff) AM_WRITE(rongrong_palette_w) // RAM enabled by bit 4 of rombank |
| 2673 | AM_RANGE(0xf200, 0xffff) AM_WRITE | |
| 2673 | AM_RANGE(0xf200, 0xffff) AM_WRITE | |
| 2674 | 2674 | ADDRESS_MAP_END |
| 2675 | 2675 | |
| 2676 | 2676 | static WRITE8_HANDLER( mjmyster_rambank_w ) |
| r4470 | r4471 | |
| 2817 | 2817 | AM_RANGE(0x6000, 0x6fff) AM_WRITE(SMH_RAM) // RAM |
| 2818 | 2818 | AM_RANGE(0x7000, 0x7fff) AM_WRITE(SMH_BANK2) // RAM (Banked) |
| 2819 | 2819 | AM_RANGE(0xf000, 0xf1ff) AM_WRITE(rongrong_palette_w) // RAM enabled by bit 4 of rombank |
| 2820 | AM_RANGE(0xf700, 0xf706) AM_WRITE | |
| 2820 | AM_RANGE(0xf700, 0xf706) AM_WRITE | |
| 2821 | 2821 | ADDRESS_MAP_END |
| 2822 | 2822 | |
| 2823 | 2823 | static READ8_DEVICE_HANDLER( hginga_dsw_r ) |
| r4470 | r4471 | |
| 2934 | 2934 | |
| 2935 | 2935 | static ADDRESS_MAP_START( hginga_readport, ADDRESS_SPACE_IO, 8 ) ADDRESS_MAP_GLOBAL_MASK(0xff) |
| 2936 | 2936 | AM_RANGE(0x03, 0x03) AM_READ(rongrong_gfxrom_r) |
| 2937 | AM_RANGE(0x1c, 0x1c) AM_READ | |
| 2937 | AM_RANGE(0x1c, 0x1c) AM_READ | |
| 2938 | 2938 | AM_RANGE(0x24, 0x24) AM_DEVREAD("ay", ay8910_r) |
| 2939 | 2939 | AM_RANGE(0x60, 0x6f) AM_DEVREAD("rtc", msm6242_r) // 6242RTC |
| 2940 | 2940 | AM_RANGE(0x42, 0x42) AM_READ(hginga_coins_r) |
| r4470 | r4471 | |
| 3040 | 3040 | AM_RANGE(0x6000, 0x6fff) AM_WRITE(SMH_RAM) // RAM |
| 3041 | 3041 | AM_RANGE(0x7000, 0x7fff) AM_WRITE(SMH_BANK2) // RAM (Banked) |
| 3042 | 3042 | AM_RANGE(0xe000, 0xe1ff) AM_WRITE(rongrong_palette_w) |
| 3043 | AM_RANGE(0xe700, 0xe706) AM_WRITE | |
| 3043 | AM_RANGE(0xe700, 0xe706) AM_WRITE | |
| 3044 | 3044 | ADDRESS_MAP_END |
| 3045 | 3045 | |
| 3046 | 3046 | |
| 3047 | 3047 | static ADDRESS_MAP_START( hgokou_readport, ADDRESS_SPACE_IO, 8 ) ADDRESS_MAP_GLOBAL_MASK(0xff) |
| 3048 | 3048 | AM_RANGE(0x03, 0x03) AM_READ(rongrong_gfxrom_r) |
| 3049 | AM_RANGE(0x1c, 0x1c) AM_READ | |
| 3049 | AM_RANGE(0x1c, 0x1c) AM_READ | |
| 3050 | 3050 | AM_RANGE(0x20, 0x2f) AM_DEVREAD("rtc", msm6242_r) // 6242RTC |
| 3051 | 3051 | AM_RANGE(0x58, 0x58) AM_READ(unk_r) // ? must be 78 on startup |
| 3052 | 3052 | AM_RANGE(0x62, 0x62) AM_READ(hgokou_input_r) |
| r4470 | r4471 | |
| 3166 | 3166 | AM_RANGE(0x96, 0x96) AM_WRITE(ddenlovr_layer_enable_w) |
| 3167 | 3167 | AM_RANGE(0xa0, 0xa0) AM_WRITE(hginga_input_w) |
| 3168 | 3168 | AM_RANGE(0xa1, 0xa1) AM_WRITE(hparadis_coin_w) |
| 3169 | AM_RANGE(0xc2, 0xc2) AM_WRITE | |
| 3169 | AM_RANGE(0xc2, 0xc2) AM_WRITE | |
| 3170 | 3170 | ADDRESS_MAP_END |
| 3171 | 3171 | |
| 3172 | 3172 | |
| r4470 | r4471 | |
| 3376 | 3376 | static ADDRESS_MAP_START( mjflove_readport, ADDRESS_SPACE_IO, 8 ) // 16 bit I/O |
| 3377 | 3377 | AM_RANGE(0x0010, 0x0010) AM_READ(hanakanz_rand_r) AM_MIRROR(0xff00) |
| 3378 | 3378 | AM_RANGE(0x001c, 0x001c) AM_READ_PORT("DSW2") AM_MIRROR(0xff00) |
| 3379 | AM_RANGE(0x0038, 0x0038) AM_READ | |
| 3379 | AM_RANGE(0x0038, 0x0038) AM_READ | |
| 3380 | 3380 | AM_RANGE(0x0043, 0x0043) AM_READ(rongrong_gfxrom_r) |
| 3381 | 3381 | AM_RANGE(0x0080, 0x0081) AM_READ(mjflove_keyb_r) |
| 3382 | 3382 | AM_RANGE(0x0082, 0x0082) AM_READ_PORT("SYSTEM") |
| r4470 | r4471 | |
| 3399 | 3399 | AM_RANGE(0x00f2, 0x00f2) AM_WRITE(mjmyster_rambank_w) AM_MIRROR(0xff00) |
| 3400 | 3400 | AM_RANGE(0x00f8, 0x00f8) AM_WRITE(mjflove_rombank_w) AM_MIRROR(0xff00) |
| 3401 | 3401 | AM_RANGE(0x00fa, 0x00fa) AM_DEVWRITE("oki", mjflove_okibank_w) |
| 3402 | AM_RANGE(0x0181, 0x0181) AM_WRITE | |
| 3402 | AM_RANGE(0x0181, 0x0181) AM_WRITE | |
| 3403 | 3403 | AM_RANGE(0x0184, 0x0184) AM_WRITE(mjflove_coincounter_w) |
| 3404 | 3404 | AM_RANGE(0x0200, 0x0201) AM_DEVWRITE("ym", ym2413_w) |
| 3405 | 3405 | AM_RANGE(0x0280, 0x028f) AM_DEVWRITE("rtc", msm6242_w) // 6242RTC |
| r4470 | r4471 | |
|---|---|---|
| 356 | 356 | AM_RANGE(0x0000, 0x1fff) AM_RAM AM_SHARE(1) |
| 357 | 357 | AM_RANGE(0x2000, 0x2000) AM_WRITE(chinagat_sub_bankswitch_w) |
| 358 | 358 | AM_RANGE(0x2800, 0x2800) AM_WRITE(SMH_RAM) /* Called on CPU start and after return from jump table */ |
| 359 | // AM_RANGE(0x2a2b, 0x2a2b) AM_READ(SMH_NOP) /* What lives here? */ | |
| 360 | // AM_RANGE(0x2a30, 0x2a30) AM_READ(SMH_NOP) /* What lives here? */ | |
| 359 | // AM_RANGE(0x2a2b, 0x2a2b) AM_READNOP /* What lives here? */ | |
| 360 | // AM_RANGE(0x2a30, 0x2a30) AM_READNOP /* What lives here? */ | |
| 361 | 361 | AM_RANGE(0x4000, 0x7fff) AM_ROMBANK(4) |
| 362 | 362 | AM_RANGE(0x8000, 0xffff) AM_ROM |
| 363 | 363 | ADDRESS_MAP_END |
| r4470 | r4471 | |
| 891 | 891 | |
| 892 | 892 | |
| 893 | 893 | /* ( YEAR NAME PARENT MACHINE INPUT INIT MONITOR COMPANY FULLNAME FLAGS ) */ |
| 894 | GAME( 1988, chinagat, 0, chinagat, chinagat, chinagat, ROT0, "[Technos] (Taito Romstar license)", "China Gate (US)", 0 ) | |
| 895 | GAME( 1988, saiyugou, chinagat, chinagat, chinagat, chinagat, ROT0, "Technos", "Sai Yu Gou Ma Roku (Japan)", 0 ) | |
| 894 | GAME( 1988, chinagat, 0, chinagat, chinagat, chinagat, ROT0, "[Technos Japan] (Taito Romstar license)", "China Gate (US)", 0 ) | |
| 895 | GAME( 1988, saiyugou, chinagat, chinagat, chinagat, chinagat, ROT0, "Technos Japan", "Sai Yu Gou Ma Roku (Japan)", 0 ) | |
| 896 | 896 | GAME( 1988, saiyugb1, chinagat, saiyugb1, chinagat, chinagat, ROT0, "bootleg", "Sai Yu Gou Ma Roku (Japan bootleg 1)", GAME_IMPERFECT_SOUND ) |
| 897 | 897 | GAME( 1988, saiyugb2, chinagat, saiyugb2, chinagat, chinagat, ROT0, "bootleg", "Sai Yu Gou Ma Roku (Japan bootleg 2)", 0 ) |
| r4470 | r4471 | |
|---|---|---|
| 443 | 443 | AM_RANGE(0xc00006, 0xc00007) AM_READ_PORT("SYSTEM") |
| 444 | 444 | AM_RANGE(0xd00000, 0xd00001) AM_WRITE(kaneko16_coin_lockout_w) // Coin Lockout |
| 445 | 445 | AM_RANGE(0xe00000, 0xe00001) AM_READWRITE(SMH_NOP, kaneko16_soundlatch_w) // Read = IRQ Ack ? |
| 446 | AM_RANGE(0xe40000, 0xe40001) AM_READ(SMH_NOP) // IRQ Ack ? | |
| 447 | // AM_RANGE(0xe80000, 0xe80001) AM_READ(SMH_NOP) // IRQ Ack ? | |
| 448 | AM_RANGE(0xec0000, 0xec0001) AM_READ(SMH_NOP) // Lev 4 IRQ Ack ? | |
| 446 | AM_RANGE(0xe40000, 0xe40001) AM_READNOP // IRQ Ack ? | |
| 447 | // AM_RANGE(0xe80000, 0xe80001) AM_READNOP // IRQ Ack ? | |
| 448 | AM_RANGE(0xec0000, 0xec0001) AM_READNOP // Lev 4 IRQ Ack ? | |
| 449 | 449 | ADDRESS_MAP_END |
| 450 | 450 | |
| 451 | 451 |
| r4470 | r4471 | |
|---|---|---|
| 148 | 148 | AM_RANGE(0x508000, 0x509fff) AM_READ(SMH_RAM) |
| 149 | 149 | AM_RANGE(0x510000, 0x513fff) AM_READ(SMH_RAM) |
| 150 | 150 | AM_RANGE(0x518000, 0x51bfff) AM_READ(SMH_RAM) |
| 151 | AM_RANGE(0x600000, 0x6fffff) AM_READ(SMH_NOP) // PSAC 1 ROM readback window | |
| 152 | AM_RANGE(0x700000, 0x7fffff) AM_READ(SMH_NOP) // PSAC 2 ROM readback window | |
| 151 | AM_RANGE(0x600000, 0x6fffff) AM_READNOP // PSAC 1 ROM readback window | |
| 152 | AM_RANGE(0x700000, 0x7fffff) AM_READNOP // PSAC 2 ROM readback window | |
| 153 | 153 | ADDRESS_MAP_END |
| 154 | 154 | |
| 155 | 155 | static ADDRESS_MAP_START( dbz_writemem, ADDRESS_SPACE_PROGRAM, 16 ) |
| r4470 | r4471 | |
| 166 | 166 | AM_RANGE(0x4ec000, 0x4ec001) AM_WRITE(dbzcontrol_w) |
| 167 | 167 | AM_RANGE(0x4d0000, 0x4d001f) AM_WRITE(SMH_RAM) AM_BASE(&K053936_0_ctrl) |
| 168 | 168 | AM_RANGE(0x4d4000, 0x4d401f) AM_WRITE(SMH_RAM) AM_BASE(&K053936_1_ctrl) |
| 169 | AM_RANGE(0x4e8000, 0x4e8001) AM_WRITE | |
| 169 | AM_RANGE(0x4e8000, 0x4e8001) AM_WRITE | |
| 170 | 170 | AM_RANGE(0x4f0000, 0x4f0001) AM_WRITE(dbz_sound_command_w) |
| 171 | 171 | AM_RANGE(0x4f4000, 0x4f4001) AM_WRITE(dbz_sound_cause_nmi) |
| 172 | AM_RANGE(0x4f8000, 0x4f801f) AM_WRITE | |
| 172 | AM_RANGE(0x4f8000, 0x4f801f) AM_WRITE | |
| 173 | 173 | AM_RANGE(0x4fc000, 0x4fc01f) AM_WRITE(K053251_lsb_w) // 251 #2 |
| 174 | 174 | AM_RANGE(0x500000, 0x501fff) AM_WRITE(dbz_bg2_videoram_w) AM_BASE(&dbz_bg2_videoram) |
| 175 | 175 | AM_RANGE(0x508000, 0x509fff) AM_WRITE(dbz_bg1_videoram_w) AM_BASE(&dbz_bg1_videoram) |
| r4470 | r4471 | |
| 197 | 197 | |
| 198 | 198 | static ADDRESS_MAP_START( dbz_sound_io_map, ADDRESS_SPACE_IO, 8 ) |
| 199 | 199 | ADDRESS_MAP_GLOBAL_MASK(0xff) |
| 200 | AM_RANGE(0x00, 0x00) AM_WRITE | |
| 200 | AM_RANGE(0x00, 0x00) AM_WRITE | |
| 201 | 201 | ADDRESS_MAP_END |
| 202 | 202 | |
| 203 | 203 | /**********************************************************************************/ |
| r4470 | r4471 | |
| 289 | 289 | PORT_DIPSETTING( 0xb0, DEF_STR( 1C_5C ) ) |
| 290 | 290 | PORT_DIPSETTING( 0xa0, DEF_STR( 1C_6C ) ) |
| 291 | 291 | PORT_DIPSETTING( 0x90, DEF_STR( 1C_7C ) ) |
| 292 | // PORT_DIPSETTING( 0x00, "Disabled" ) | |
| 292 | PORT_DIPSETTING( 0x00, "No Coin B" ) | |
| 293 | /* "No Coin B" = coins produce sound, but no effect on coin counter */ | |
| 293 | 294 | INPUT_PORTS_END |
| 294 | 295 | |
| 295 | 296 | static INPUT_PORTS_START( dbz2 ) |
| r4470 | r4471 | |
|---|---|---|
| 145 | 145 | AM_RANGE(0x0000, 0xbfff) AM_ROM |
| 146 | 146 | AM_RANGE(0xf000, 0xf7ff) AM_RAM |
| 147 | 147 | AM_RANGE(0xf800, 0xf803) AM_DEVREADWRITE("ym", ym2608_r, ym2608_w) |
| 148 | AM_RANGE(0xfc00, 0xfc00) AM_READ | |
| 148 | AM_RANGE(0xfc00, 0xfc00) AM_READ | |
| 149 | 149 | AM_RANGE(0xfc10, 0xfc10) AM_READ(soundlatch_r) |
| 150 | 150 | ADDRESS_MAP_END |
| 151 | 151 |
| r4470 | r4471 | |
|---|---|---|
| 272 | 272 | static ADDRESS_MAP_START( ms32_readmem, ADDRESS_SPACE_PROGRAM, 32 ) |
| 273 | 273 | AM_RANGE(0x00000000, 0x001fffff) AM_READ(SMH_ROM) |
| 274 | 274 | AM_RANGE(0xfc000000, 0xfc007fff) AM_READ(SMH_RAM) |
| 275 | AM_RANGE(0xfc800000, 0xfc800003) AM_READ | |
| 275 | AM_RANGE(0xfc800000, 0xfc800003) AM_READ | |
| 276 | 276 | AM_RANGE(0xfcc00004, 0xfcc00007) AM_READ_PORT("INPUTS") |
| 277 | 277 | AM_RANGE(0xfcc00010, 0xfcc00013) AM_READ_PORT("DSW") |
| 278 | 278 | /**/AM_RANGE(0xfce00600, 0xfce0065f) AM_READ(SMH_RAM) /* roz control registers */ |
| r4470 | r4471 | |
| 319 | 319 | AM_RANGE(0xfc000000, 0xfc007fff) AM_WRITE(SMH_RAM) AM_BASE(&ms32_fc000000) // NVRAM? |
| 320 | 320 | AM_RANGE(0xfc800000, 0xfc800003) AM_WRITE(ms32_sound_w) /* sound? */ |
| 321 | 321 | AM_RANGE(0xfce00000, 0xfce00003) AM_WRITE(ms32_gfxctrl_w) /* flip screen + other unknown bits */ |
| 322 | AM_RANGE(0xfce00034, 0xfce00037) AM_WRITE | |
| 322 | AM_RANGE(0xfce00034, 0xfce00037) AM_WRITE | |
| 323 | 323 | AM_RANGE(0xfce00038, 0xfce0003b) AM_WRITE(reset_sub_w) |
| 324 | AM_RANGE(0xfce00050, 0xfce0005f) AM_WRITE | |
| 324 | AM_RANGE(0xfce00050, 0xfce0005f) AM_WRITE | |
| 325 | 325 | // AM_RANGE(0xfce00000, 0xfce0007f) AM_WRITE(SMH_RAM) AM_BASE(&ms32_fce00000) /* registers not ram? */ |
| 326 | 326 | AM_RANGE(0xfce00280, 0xfce0028f) AM_WRITE(ms32_brightness_w) // global brightness control |
| 327 | 327 | AM_RANGE(0xfce00600, 0xfce0065f) AM_WRITE(SMH_RAM) AM_BASE(&ms32_roz_ctrl) /* roz control registers */ |
| r4470 | r4471 | |
| 346 | 346 | |
| 347 | 347 | AM_RANGE(0xfe000000, 0xfe01ffff) AM_WRITE(ms32_rozram_w) AM_BASE(&ms32_rozram) /* roz layer */ |
| 348 | 348 | AM_RANGE(0xfe020000, 0xfe03ffff) AM_WRITE(ms32_rozram_w) /* mirror only used by memory test in service mode */ |
| 349 | AM_RANGE(0xfe1ffc88, 0xfe1fffff) AM_WRITE | |
| 349 | AM_RANGE(0xfe1ffc88, 0xfe1fffff) AM_WRITE | |
| 350 | 350 | AM_RANGE(0xfe200000, 0xfe201fff) AM_WRITE(ms32_lineram_w) AM_BASE(&ms32_lineram) /* line ram for roz layer */ |
| 351 | 351 | ///**/AM_RANGE(0xfe202000, 0xfe2fffff) AM_WRITE(SMH_RAM) /* f1superb vram */ |
| 352 | 352 | ///**/AM_RANGE(0xfe100000, 0xfe1fffff) AM_WRITE(SMH_RAM) /* gratia writes here ?! */ |
| r4470 | r4471 | |
| 1176 | 1176 | AM_RANGE(0x0000, 0x3eff) AM_READ(SMH_ROM) |
| 1177 | 1177 | AM_RANGE(0x3f00, 0x3f0f) AM_DEVREAD("ymf", ymf271_r) |
| 1178 | 1178 | AM_RANGE(0x3f10, 0x3f10) AM_READ(latch_r) |
| 1179 | AM_RANGE(0x3f20, 0x3f20) AM_READ | |
| 1179 | AM_RANGE(0x3f20, 0x3f20) AM_READ | |
| 1180 | 1180 | AM_RANGE(0x4000, 0x7fff) AM_READ(SMH_RAM) |
| 1181 | 1181 | AM_RANGE(0x8000, 0xbfff) AM_READ(SMH_BANK4) |
| 1182 | 1182 | AM_RANGE(0xc000, 0xffff) AM_READ(SMH_BANK5) |
| r4470 | r4471 | |
| 1186 | 1186 | AM_RANGE(0x0000, 0x3eff) AM_WRITE(SMH_ROM) |
| 1187 | 1187 | AM_RANGE(0x3f00, 0x3f0f) AM_DEVWRITE("ymf", ymf271_w) |
| 1188 | 1188 | AM_RANGE(0x3f10, 0x3f10) AM_WRITE(to_main_w) |
| 1189 | AM_RANGE(0x3f20, 0x3f20) AM_WRITE(SMH_NOP) /* to_main2_w ? */ | |
| 1190 | AM_RANGE(0x3f40, 0x3f40) AM_WRITE(SMH_NOP) /* YMF271 pin 4 (bit 1) , YMF271 pin 39 (bit 4) */ | |
| 1191 | AM_RANGE(0x3f70, 0x3f70) AM_WRITE(SMH_NOP) // watchdog? banking? very noisy | |
| 1189 | AM_RANGE(0x3f20, 0x3f20) AM_WRITENOP /* to_main2_w ? */ | |
| 1190 | AM_RANGE(0x3f40, 0x3f40) AM_WRITENOP /* YMF271 pin 4 (bit 1) , YMF271 pin 39 (bit 4) */ | |
| 1191 | AM_RANGE(0x3f70, 0x3f70) AM_WRITENOP // watchdog? banking? very noisy | |
| 1192 | 1192 | AM_RANGE(0x3f80, 0x3f80) AM_WRITE(ms32_snd_bank_w) |
| 1193 | 1193 | AM_RANGE(0x4000, 0x7fff) AM_WRITE(SMH_RAM) |
| 1194 | 1194 | AM_RANGE(0x8000, 0xffff) AM_WRITE(SMH_ROM) |
| r4470 | r4471 | |
|---|---|---|
| 226 | 226 | AM_RANGE(0x81, 0x81) AM_READ_PORT("P2") |
| 227 | 227 | AM_RANGE(0x82, 0x82) AM_READ_PORT("SERVICE") |
| 228 | 228 | AM_RANGE(0x80, 0x80) AM_WRITE(watchdog_reset_w) |
| 229 | AM_RANGE(0x81, 0x81) AM_WRITE | |
| 229 | AM_RANGE(0x81, 0x81) AM_WRITE | |
| 230 | 230 | AM_RANGE(0x82, 0x82) AM_WRITE(irqack_w) |
| 231 | AM_RANGE(0x85, 0x86) AM_WRITE | |
| 231 | AM_RANGE(0x85, 0x86) AM_WRITE | |
| 232 | 232 | AM_RANGE(0x87, 0x87) AM_READWRITE(eeprom_r, eeprom_w) |
| 233 | 233 | AM_RANGE(0x88, 0x88) AM_WRITE(rom_bank_select_w) |
| 234 | 234 | AM_RANGE(0x89, 0x89) AM_DEVWRITE("dac", dac_signed_w) |
| 235 | AM_RANGE(0x8a, 0x8a) AM_WRITE | |
| 235 | AM_RANGE(0x8a, 0x8a) AM_WRITE | |
| 236 | 236 | AM_RANGE(0x8b, 0x8b) AM_WRITE(SMH_RAM) AM_BASE_MEMBER(_20pacgal_state, flip) |
| 237 | 237 | AM_RANGE(0x8f, 0x8f) AM_WRITE(_20pacgal_coin_counter_w) |
| 238 | 238 | ADDRESS_MAP_END |
| r4470 | r4471 | |
|---|---|---|
| 168 | 168 | AM_RANGE(0x80000, 0x827ff) AM_WRITE(paletteram16_xxxxBBBBGGGGRRRR_word_w) AM_BASE(&paletteram16) |
| 169 | 169 | |
| 170 | 170 | /* this is an awful lot of unknowns */ |
| 171 | AM_RANGE(0x90000, 0x90001) AM_WRITE | |
| 171 | AM_RANGE(0x90000, 0x90001) AM_WRITE | |
| 172 | 172 | AM_RANGE(0x90010, 0x90011) AM_WRITE(soundcommand_w) |
| 173 | 173 | // AM_RANGE(0x90020, 0x90021) AM_WRITE(soundcommand_w) |
| 174 | AM_RANGE(0x90030, 0x90031) AM_WRITE | |
| 174 | AM_RANGE(0x90030, 0x90031) AM_WRITE | |
| 175 | 175 | |
| 176 | AM_RANGE(0x90080, 0x90081) AM_WRITE(SMH_NOP) | |
| 177 | AM_RANGE(0x90090, 0x90091) AM_WRITE(SMH_NOP) | |
| 178 | AM_RANGE(0x900a0, 0x900a1) AM_WRITE(SMH_NOP) | |
| 179 | AM_RANGE(0x900b0, 0x900b1) AM_WRITE(SMH_NOP) | |
| 180 | AM_RANGE(0x900c0, 0x900c1) AM_WRITE(SMH_NOP) | |
| 181 | AM_RANGE(0x900d0, 0x900d1) AM_WRITE(SMH_NOP) | |
| 182 | AM_RANGE(0x900e0, 0x900e1) AM_WRITE(SMH_NOP) | |
| 183 | AM_RANGE(0x900f0, 0x900f1) AM_WRITE(SMH_NOP) | |
| 176 | AM_RANGE(0x90080, 0x90081) AM_WRITENOP | |
| 177 | AM_RANGE(0x90090, 0x90091) AM_WRITENOP | |
| 178 | AM_RANGE(0x900a0, 0x900a1) AM_WRITENOP | |
| 179 | AM_RANGE(0x900b0, 0x900b1) AM_WRITENOP | |
| 180 | AM_RANGE(0x900c0, 0x900c1) AM_WRITENOP | |
| 181 | AM_RANGE(0x900d0, 0x900d1) AM_WRITENOP | |
| 182 | AM_RANGE(0x900e0, 0x900e1) AM_WRITENOP | |
| 183 | AM_RANGE(0x900f0, 0x900f1) AM_WRITENOP | |
| 184 | 184 | |
| 185 | AM_RANGE(0xa0000, 0xa0001) AM_WRITE(SMH_NOP) | |
| 186 | AM_RANGE(0xa0004, 0xa0005) AM_WRITE(SMH_NOP) | |
| 187 | AM_RANGE(0xa0008, 0xa0009) AM_WRITE(SMH_NOP) | |
| 188 | AM_RANGE(0xa000c, 0xa000d) AM_WRITE(SMH_NOP) | |
| 189 | AM_RANGE(0xa0010, 0xa0011) AM_WRITE(SMH_NOP) | |
| 185 | AM_RANGE(0xa0000, 0xa0001) AM_WRITENOP | |
| 186 | AM_RANGE(0xa0004, 0xa0005) AM_WRITENOP | |
| 187 | AM_RANGE(0xa0008, 0xa0009) AM_WRITENOP | |
| 188 | AM_RANGE(0xa000c, 0xa000d) AM_WRITENOP | |
| 189 | AM_RANGE(0xa0010, 0xa0011) AM_WRITENOP | |
| 190 | 190 | |
| 191 | AM_RANGE(0xa0100, 0xa0101) AM_WRITE(SMH_NOP) | |
| 192 | AM_RANGE(0xa0104, 0xa0105) AM_WRITE(SMH_NOP) | |
| 193 | AM_RANGE(0xa0108, 0xa0109) AM_WRITE(SMH_NOP) | |
| 194 | AM_RANGE(0xa010c, 0xa010d) AM_WRITE(SMH_NOP) | |
| 195 | AM_RANGE(0xa0110, 0xa0111) AM_WRITE(SMH_NOP) | |
| 191 | AM_RANGE(0xa0100, 0xa0101) AM_WRITENOP | |
| 192 | AM_RANGE(0xa0104, 0xa0105) AM_WRITENOP | |
| 193 | AM_RANGE(0xa0108, 0xa0109) AM_WRITENOP | |
| 194 | AM_RANGE(0xa010c, 0xa010d) AM_WRITENOP | |
| 195 | AM_RANGE(0xa0110, 0xa0111) AM_WRITENOP | |
| 196 | 196 | |
| 197 | AM_RANGE(0xa0200, 0xa0201) AM_WRITE(SMH_NOP) | |
| 198 | AM_RANGE(0xa0202, 0xa0203) AM_WRITE(SMH_NOP) | |
| 199 | AM_RANGE(0xa0204, 0xa0205) AM_WRITE(SMH_NOP) | |
| 200 | AM_RANGE(0xa0206, 0xa0207) AM_WRITE(SMH_NOP) | |
| 197 | AM_RANGE(0xa0200, 0xa0201) AM_WRITENOP | |
| 198 | AM_RANGE(0xa0202, 0xa0203) AM_WRITENOP | |
| 199 | AM_RANGE(0xa0204, 0xa0205) AM_WRITENOP | |
| 200 | AM_RANGE(0xa0206, 0xa0207) AM_WRITENOP | |
| 201 | 201 | ADDRESS_MAP_END |
| 202 | 202 | |
| 203 | 203 | static ADDRESS_MAP_START( sound_readmem, ADDRESS_SPACE_PROGRAM, 8 ) |
| 204 | 204 | AM_RANGE(0x0000, 0xefff) AM_READ(SMH_ROM) |
| 205 | 205 | AM_RANGE(0xf000, 0xf7ff) AM_READ(SMH_RAM) |
| 206 | 206 | AM_RANGE(0xf800, 0xf800) AM_DEVREAD("oki", okim6295_r) |
| 207 | AM_RANGE(0xfc00, 0xfc00) AM_READ | |
| 207 | AM_RANGE(0xfc00, 0xfc00) AM_READ | |
| 208 | 208 | AM_RANGE(0xfc20, 0xfc20) AM_READ(soundlatch_r) |
| 209 | 209 | ADDRESS_MAP_END |
| 210 | 210 | |
| r4470 | r4471 | |
| 213 | 213 | AM_RANGE(0xf000, 0xf7ff) AM_WRITE(SMH_RAM) |
| 214 | 214 | AM_RANGE(0xf800, 0xf800) AM_DEVWRITE("oki", okim6295_w) |
| 215 | 215 | AM_RANGE(0xf810, 0xf811) AM_DEVWRITE("ym", ym3812_w) |
| 216 | AM_RANGE(0xfc00, 0xfc00) AM_WRITE | |
| 216 | AM_RANGE(0xfc00, 0xfc00) AM_WRITE | |
| 217 | 217 | ADDRESS_MAP_END |
| 218 | 218 | |
| 219 | 219 | static INPUT_PORTS_START( spbactn ) |
| r4470 | r4471 | |
|---|---|---|
| 313 | 313 | |
| 314 | 314 | static ADDRESS_MAP_START(tturfbl_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 ) |
| 315 | 315 | AM_RANGE(0x0000, 0x7fff) AM_WRITE(SMH_ROM) |
| 316 | AM_RANGE(0x8000, 0xbfff) AM_WRITE | |
| 316 | AM_RANGE(0x8000, 0xbfff) AM_WRITE | |
| 317 | 317 | AM_RANGE(0xe000, 0xe000) AM_WRITE(tturfbl_soundbank_w) |
| 318 | 318 | AM_RANGE(0xf000, 0xf000) AM_WRITE(tturfbl_msm5205_data_w) |
| 319 | 319 | AM_RANGE(0xf800, 0xffff) AM_WRITE(SMH_RAM) |
| r4470 | r4471 | |
| 322 | 322 | static ADDRESS_MAP_START( tturfbl_sound_readport, ADDRESS_SPACE_IO, 8 ) |
| 323 | 323 | ADDRESS_MAP_GLOBAL_MASK(0xff) |
| 324 | 324 | AM_RANGE(0x00, 0x01) AM_DEVREAD("ym", ym2151_r) |
| 325 | AM_RANGE(0x80, 0x80) AM_READ | |
| 325 | AM_RANGE(0x80, 0x80) AM_READ | |
| 326 | 326 | ADDRESS_MAP_END |
| 327 | 327 | |
| 328 | 328 | static ADDRESS_MAP_START( tturfbl_sound_writeport, ADDRESS_SPACE_IO, 8 ) |
| 329 | 329 | ADDRESS_MAP_GLOBAL_MASK(0xff) |
| 330 | 330 | AM_RANGE(0x00, 0x01) AM_DEVWRITE("ym", ym2151_w) |
| 331 | AM_RANGE(0x40, 0x40) AM_WRITE(SMH_NOP) | |
| 332 | AM_RANGE(0x80, 0x80) AM_WRITE(SMH_NOP) | |
| 331 | AM_RANGE(0x40, 0x40) AM_WRITENOP | |
| 332 | AM_RANGE(0x80, 0x80) AM_WRITENOP | |
| 333 | 333 | ADDRESS_MAP_END |
| 334 | 334 | |
| 335 | 335 | /*******************************************************************************/ |
| r4470 | r4471 | |
| 635 | 635 | |
| 636 | 636 | static ADDRESS_MAP_START( bayroute_writemem, ADDRESS_SPACE_PROGRAM, 16 ) |
| 637 | 637 | AM_RANGE(0x000000, 0x0bffff) AM_WRITE(SMH_ROM) |
| 638 | AM_RANGE(0x100000, 0x100003) AM_WRITE | |
| 638 | AM_RANGE(0x100000, 0x100003) AM_WRITE | |
| 639 | 639 | AM_RANGE(0x500000, 0x503fff) AM_WRITE(SYS16_MWA16_WORKINGRAM) AM_BASE(&sys16_workingram) |
| 640 | 640 | AM_RANGE(0x600000, 0x600fff) AM_WRITE(SYS16_MWA16_SPRITERAM) AM_BASE(&sys16_spriteram) |
| 641 | 641 | AM_RANGE(0x700000, 0x70ffff) AM_WRITE(SYS16_MWA16_TILERAM) AM_BASE(&sys16_tileram) |
| r4470 | r4471 | |
| 643 | 643 | AM_RANGE(0x800000, 0x800fff) AM_WRITE(SYS16_MWA16_PALETTERAM) AM_BASE(&paletteram16) |
| 644 | 644 | AM_RANGE(0x900000, 0x900001) AM_WRITE(sys16_coinctrl_w) |
| 645 | 645 | AM_RANGE(0xff0006, 0xff0007) AM_WRITE(sound_command_w) |
| 646 | AM_RANGE(0xff0020, 0xff003f) AM_WRITE | |
| 646 | AM_RANGE(0xff0020, 0xff003f) AM_WRITE | |
| 647 | 647 | ADDRESS_MAP_END |
| 648 | 648 | |
| 649 | 649 | /***************************************************************************/ |
| r4470 | r4471 | |
| 743 | 743 | AM_RANGE(0xc40000, 0xc40001) AM_WRITE(sys16_coinctrl_w) |
| 744 | 744 | AM_RANGE(0xc40006, 0xc40007) AM_WRITE(sound_command_w) |
| 745 | 745 | AM_RANGE(0xc46000, 0xc4603f) AM_WRITE(SYS16_MWA16_EXTRAM2) AM_BASE(&sys16_extraram2) |
| 746 | AM_RANGE(0xfe0020, 0xfe003f) AM_WRITE | |
| 746 | AM_RANGE(0xfe0020, 0xfe003f) AM_WRITE | |
| 747 | 747 | AM_RANGE(0xffc000, 0xffffff) AM_WRITE(SYS16_MWA16_WORKINGRAM) AM_BASE(&sys16_workingram) |
| 748 | 748 | ADDRESS_MAP_END |
| 749 | 749 | |
| r4470 | r4471 | |
| 897 | 897 | AM_RANGE(0x840000, 0x840fff) AM_WRITE(SYS16_MWA16_PALETTERAM) AM_BASE(&paletteram16) |
| 898 | 898 | AM_RANGE(0xc42006, 0xc42007) AM_WRITE(sound_command_w) |
| 899 | 899 | AM_RANGE(0xc40000, 0xc40001) AM_WRITE(sys16_coinctrl_w) |
| 900 | AM_RANGE(0xc80000, 0xc80001) AM_WRITE | |
| 900 | AM_RANGE(0xc80000, 0xc80001) AM_WRITE | |
| 901 | 901 | AM_RANGE(0xffc000, 0xffffff) AM_WRITE(SYS16_MWA16_WORKINGRAM) AM_BASE(&sys16_workingram) |
| 902 | 902 | ADDRESS_MAP_END |
| 903 | 903 | |
| r4470 | r4471 | |
| 1231 | 1231 | AM_RANGE(0x1f0000, 0x1f0003) AM_WRITE(SYS16_MWA16_EXTRAM) AM_BASE(&sys16_extraram) |
| 1232 | 1232 | AM_RANGE(0x200000, 0x200fff) AM_WRITE(SYS16_MWA16_SPRITERAM) AM_BASE(&sys16_spriteram) |
| 1233 | 1233 | AM_RANGE(0xc40000, 0xc40001) AM_WRITE(sys16_coinctrl_w) |
| 1234 | AM_RANGE(0xc43000, 0xc43001) AM_WRITE(SMH_NOP) // ? | |
| 1235 | // AM_RANGE(0xfe0006, 0xfe0007) AM_WRITE(SMH_NOP) I think this is the real sound out | |
| 1234 | AM_RANGE(0xc43000, 0xc43001) AM_WRITENOP // ? | |
| 1235 | // AM_RANGE(0xfe0006, 0xfe0007) AM_WRITENOP I think this is the real sound out | |
| 1236 | 1236 | AM_RANGE(0xffec1c, 0xffec1d) AM_WRITE(goldnaxe_prot_w)// how does this really work? |
| 1237 | 1237 | AM_RANGE(0xffecfc, 0xffecfd) AM_WRITE(ga_sound_command_w)// probably just a buffer |
| 1238 | 1238 | AM_RANGE(0xffc000, 0xffffff) AM_WRITE(SYS16_MWA16_WORKINGRAM) AM_BASE(&sys16_workingram) /* fails SCRATCH RAM test because of hacks */ |
| r4470 | r4471 | |
| 1733 | 1733 | AM_RANGE(0xc41000, 0xc41001) AM_READ_PORT("SERVICE") |
| 1734 | 1734 | AM_RANGE(0xc42002, 0xc42003) AM_READ_PORT("DSW1") |
| 1735 | 1735 | AM_RANGE(0xc42000, 0xc42001) AM_READ_PORT("DSW2") |
| 1736 | AM_RANGE(0xc80000, 0xc80001) AM_READ | |
| 1736 | AM_RANGE(0xc80000, 0xc80001) AM_READ | |
| 1737 | 1737 | AM_RANGE(0xffc000, 0xffffff) AM_READ(SYS16_MRA16_WORKINGRAM) |
| 1738 | 1738 | ADDRESS_MAP_END |
| 1739 | 1739 | |
| r4470 | r4471 | |
| 1746 | 1746 | AM_RANGE(0x840000, 0x840fff) AM_WRITE(SYS16_MWA16_PALETTERAM) AM_BASE(&paletteram16) |
| 1747 | 1747 | AM_RANGE(0xc40000, 0xc40001) AM_WRITE(sys16_coinctrl_w) |
| 1748 | 1748 | AM_RANGE(0xc42006, 0xc42007) AM_WRITE(sound_command_w) |
| 1749 | AM_RANGE(0xc43034, 0xc43035) AM_WRITE(SMH_NOP) | |
| 1750 | AM_RANGE(0xc80000, 0xc80001) AM_WRITE(SMH_NOP) | |
| 1749 | AM_RANGE(0xc43034, 0xc43035) AM_WRITENOP | |
| 1750 | AM_RANGE(0xc80000, 0xc80001) AM_WRITENOP | |
| 1751 | 1751 | AM_RANGE(0xffc000, 0xffffff) AM_WRITE(SYS16_MWA16_WORKINGRAM) AM_BASE(&sys16_workingram) |
| 1752 | 1752 | ADDRESS_MAP_END |
| 1753 | 1753 | |
| r4470 | r4471 | |
| 1766 | 1766 | |
| 1767 | 1767 | static ADDRESS_MAP_START( beautyb_map, ADDRESS_SPACE_PROGRAM, 16 ) |
| 1768 | 1768 | AM_RANGE(0x000000, 0x00ffff) AM_READWRITE(SMH_ROM, SMH_NOP) |
| 1769 | //AM_RANGE(0x010000, 0x03ffff) AM_WRITE | |
| 1769 | //AM_RANGE(0x010000, 0x03ffff) AM_WRITE | |
| 1770 | 1770 | |
| 1771 | 1771 | AM_RANGE(0x0280D6, 0x0280D7) AM_READ(beautyb_unk2_r) |
| 1772 | 1772 | AM_RANGE(0x0280D8, 0x0280D9) AM_READ(beautyb_unk2_r) |
| r4470 | r4471 | |
| 1780 | 1780 | AM_RANGE(0xC41000, 0xC41001) AM_READ(beautyb_unk1_r ) |
| 1781 | 1781 | AM_RANGE(0xC41002, 0xC41003) AM_READ(beautyb_unk1_r ) |
| 1782 | 1782 | |
| 1783 | AM_RANGE(0xc40000, 0xc40001) AM_WRITE(SMH_NOP) | |
| 1784 | AM_RANGE(0xc80000, 0xc80001) AM_WRITE(SMH_NOP) | |
| 1783 | AM_RANGE(0xc40000, 0xc40001) AM_WRITENOP | |
| 1784 | AM_RANGE(0xc80000, 0xc80001) AM_WRITENOP | |
| 1785 | 1785 | |
| 1786 | 1786 | AM_RANGE(0xffc000, 0xffffff) AM_RAM_WRITE(SYS16_MWA16_WORKINGRAM) AM_BASE(&sys16_workingram) |
| 1787 | 1787 | ADDRESS_MAP_END |
| r4470 | r4471 | |
| 1972 | 1972 | AM_RANGE(0x500000, 0x500fff) AM_WRITE(SYS16_MWA16_PALETTERAM) AM_BASE(&paletteram16) |
| 1973 | 1973 | AM_RANGE(0x600000, 0x600001) AM_WRITE(sys16_coinctrl_w) |
| 1974 | 1974 | AM_RANGE(0x600006, 0x600007) AM_WRITE(sound_command_w) |
| 1975 | AM_RANGE(0xc44000, 0xc44001) AM_WRITE | |
| 1975 | AM_RANGE(0xc44000, 0xc44001) AM_WRITE | |
| 1976 | 1976 | AM_RANGE(0xc46000, 0xc4601f) AM_WRITE(SYS16_MWA16_EXTRAM3) AM_BASE(&sys16_extraram3) |
| 1977 | AM_RANGE(0xff0020, 0xff003f) AM_WRITE | |
| 1977 | AM_RANGE(0xff0020, 0xff003f) AM_WRITE | |
| 1978 | 1978 | ADDRESS_MAP_END |
| 1979 | 1979 | |
| 1980 | 1980 | /***************************************************************************/ |
| r4470 | r4471 | |
| 2105 | 2105 | AM_RANGE(0x840000, 0x840fff) AM_WRITE(SYS16_MWA16_PALETTERAM) AM_BASE(&paletteram16) |
| 2106 | 2106 | AM_RANGE(0xc40000, 0xc40001) AM_WRITE(sys16_coinctrl_w) |
| 2107 | 2107 | AM_RANGE(0xc42006, 0xc42007) AM_WRITE(sound_command_w) |
| 2108 | AM_RANGE(0xc44000, 0xc44001) AM_WRITE | |
| 2108 | AM_RANGE(0xc44000, 0xc44001) AM_WRITE | |
| 2109 | 2109 | AM_RANGE(0xc46000, 0xc4601f) AM_WRITE(SYS16_MWA16_EXTRAM3) AM_BASE(&sys16_extraram3) |
| 2110 | 2110 | AM_RANGE(0xff0000, 0xffffff) AM_WRITE(SYS16_MWA16_WORKINGRAM) AM_BASE(&sys16_workingram) |
| 2111 | 2111 | ADDRESS_MAP_END |
| r4470 | r4471 | |
|---|---|---|
| 87 | 87 | AM_RANGE(0xc44000, 0xc44001) AM_READ_PORT("SYSTEM") |
| 88 | 88 | AM_RANGE(0xc44002, 0xc44003) AM_READ_PORT("P1") |
| 89 | 89 | AM_RANGE(0xc44004, 0xc44005) AM_READ_PORT("P2") |
| 90 | AM_RANGE(0xc44006, 0xc44007) AM_READ | |
| 90 | AM_RANGE(0xc44006, 0xc44007) AM_READ | |
| 91 | 91 | AM_RANGE(0xc4400a, 0xc4400b) AM_READ_PORT("DSW") |
| 92 | 92 | AM_RANGE(0xff0000, 0xffffff) AM_READ(SMH_RAM) |
| 93 | 93 | ADDRESS_MAP_END |
| r4470 | r4471 | |
| 100 | 100 | AM_RANGE(0x840000, 0x840fff) AM_WRITE(deniam_palette_w) AM_BASE(&paletteram16) |
| 101 | 101 | AM_RANGE(0xc40000, 0xc40001) AM_WRITE(sound_command_w) |
| 102 | 102 | AM_RANGE(0xc40002, 0xc40003) AM_WRITE(deniam_coinctrl_w) |
| 103 | AM_RANGE(0xc40004, 0xc40005) AM_WRITE | |
| 103 | AM_RANGE(0xc40004, 0xc40005) AM_WRITE | |
| 104 | 104 | AM_RANGE(0xff0000, 0xffffff) AM_WRITE(SMH_RAM) |
| 105 | 105 | ADDRESS_MAP_END |
| 106 | 106 | |
| r4470 | r4471 | |
| 132 | 132 | AM_RANGE(0xc44000, 0xc44001) AM_READ_PORT("SYSTEM") |
| 133 | 133 | AM_RANGE(0xc44002, 0xc44003) AM_READ_PORT("P1") |
| 134 | 134 | AM_RANGE(0xc44004, 0xc44005) AM_READ_PORT("P2") |
| 135 | AM_RANGE(0xc44006, 0xc44007) AM_READ | |
| 135 | AM_RANGE(0xc44006, 0xc44007) AM_READ | |
| 136 | 136 | AM_RANGE(0xc4400a, 0xc4400b) AM_READ_PORT("DSW") /* probably YM3812 input port */ |
| 137 | 137 | AM_RANGE(0xff0000, 0xffffff) AM_READ(SMH_RAM) |
| 138 | 138 | ADDRESS_MAP_END |
| r4470 | r4471 | |
| 145 | 145 | AM_RANGE(0x840000, 0x840fff) AM_WRITE(deniam_palette_w) AM_BASE(&paletteram16) |
| 146 | 146 | AM_RANGE(0xc40000, 0xc40001) AM_DEVWRITE8("oki", okim6295_w, 0x00ff) |
| 147 | 147 | AM_RANGE(0xc40002, 0xc40003) AM_WRITE(deniam_coinctrl_w) |
| 148 | AM_RANGE(0xc40004, 0xc40005) AM_WRITE | |
| 148 | AM_RANGE(0xc40004, 0xc40005) AM_WRITE | |
| 149 | 149 | AM_RANGE(0xc40006, 0xc40007) AM_DEVWRITE("oki", deniam16c_oki_rom_bank_w) |
| 150 | 150 | AM_RANGE(0xc40008, 0xc4000b) AM_DEVWRITE8("ym", ym3812_w, 0xff00) |
| 151 | 151 | AM_RANGE(0xff0000, 0xffffff) AM_WRITE(SMH_RAM) |
| r4470 | r4471 | |
|---|---|---|
| 506 | 506 | SSIO_INPUT_PORTS |
| 507 | 507 | AM_RANGE(0x84, 0x86) AM_WRITE(mcr_scroll_value_w) |
| 508 | 508 | AM_RANGE(0xe0, 0xe0) AM_WRITE(watchdog_reset_w) |
| 509 | AM_RANGE(0xe8, 0xe8) AM_WRITE | |
| 509 | AM_RANGE(0xe8, 0xe8) AM_WRITE | |
| 510 | 510 | AM_RANGE(0xf0, 0xf3) AM_DEVREADWRITE("ctc", z80ctc_r, z80ctc_w) |
| 511 | 511 | ADDRESS_MAP_END |
| 512 | 512 |
| r4470 | r4471 | |
|---|---|---|
| 110 | 110 | AM_RANGE(0x9041, 0x9041) AM_DEVWRITE("namco", pacman_sound_enable_w) |
| 111 | 111 | AM_RANGE(0x9042, 0x9042) AM_WRITE(pengo_palettebank_w) |
| 112 | 112 | AM_RANGE(0x9043, 0x9043) AM_WRITE(pacman_flipscreen_w) |
| 113 | AM_RANGE(0x9044, 0x9045) AM_WRITE | |
| 113 | AM_RANGE(0x9044, 0x9045) AM_WRITE | |
| 114 | 114 | AM_RANGE(0x9046, 0x9046) AM_WRITE(pengo_colortablebank_w) |
| 115 | 115 | AM_RANGE(0x9047, 0x9047) AM_WRITE(pengo_gfxbank_w) |
| 116 | AM_RANGE(0x9070, 0x9070) AM_WRITE | |
| 116 | AM_RANGE(0x9070, 0x9070) AM_WRITE | |
| 117 | 117 | AM_RANGE(0x9080, 0x90bf) AM_READ_PORT("IN1") |
| 118 | 118 | AM_RANGE(0x90c0, 0x90ff) AM_READ_PORT("IN0") |
| 119 | 119 | ADDRESS_MAP_END |
| r4470 | r4471 | |
| 136 | 136 | AM_RANGE(0x9045, 0x9045) AM_WRITE(jrpacman_spritebank_w) |
| 137 | 137 | AM_RANGE(0x9046, 0x9046) AM_WRITE(pengo_colortablebank_w) |
| 138 | 138 | AM_RANGE(0x9047, 0x9047) AM_WRITE(jrpacman_charbank_w) |
| 139 | AM_RANGE(0x9070, 0x9070) AM_WRITE | |
| 139 | AM_RANGE(0x9070, 0x9070) AM_WRITE | |
| 140 | 140 | AM_RANGE(0x9080, 0x90bf) AM_READ_PORT("P2") |
| 141 | 141 | AM_RANGE(0x90c0, 0x90ff) AM_READ_PORT("P1") |
| 142 | 142 | ADDRESS_MAP_END |
| r4470 | r4471 | |
|---|---|---|
| 73 | 73 | #include "sound/2151intf.h" |
| 74 | 74 | #include "sound/k053260.h" |
| 75 | 75 | #include "includes/simpsons.h" |
| 76 | #include "konamipt.h" | |
| 76 | 77 | |
| 77 | 78 | |
| 78 | 79 | /*************************************************************************** |
| r4470 | r4471 | |
| 149 | 150 | ***************************************************************************/ |
| 150 | 151 | |
| 151 | 152 | static INPUT_PORTS_START( simpsons ) |
| 152 | PORT_START("P1") /* IN0 - Player 1 */ | |
| 153 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) | |
| 154 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) | |
| 155 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) | |
| 156 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) | |
| 157 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) | |
| 158 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) | |
| 159 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) //BUTTON3 Unused | |
| 160 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 ) | |
| 153 | PORT_START("P1") | |
| 154 | KONAMI8_B12_START(1) | |
| 161 | 155 | |
| 162 | PORT_START("P2") /* IN1 - Player 2 */ | |
| 163 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) | |
| 164 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) | |
| 165 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) | |
| 166 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) | |
| 167 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) | |
| 168 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) | |
| 169 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) //BUTTON3 Unused | |
| 170 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 ) | |
| 156 | PORT_START("P2") | |
| 157 | KONAMI8_B12_START(2) | |
| 171 | 158 | |
| 172 | PORT_START("P3") /* IN2 - Player 3 - Used on the 4p version */ | |
| 173 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(3) | |
| 174 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(3) | |
| 175 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(3) | |
| 176 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(3) | |
| 177 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3) | |
| 178 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3) | |
| 179 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) //BUTTON3 Unused | |
| 180 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START3 ) | |
| 159 | PORT_START("P3") | |
| 160 | KONAMI8_B12_START(3) | |
| 181 | 161 | |
| 182 | PORT_START("P4") /* IN3 - Player 4 - Used on the 4p version */ | |
| 183 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(4) | |
| 184 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(4) | |
| 185 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(4) | |
| 186 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(4) | |
| 187 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(4) | |
| 188 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(4) | |
| 189 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) //BUTTON3 Unused | |
| 190 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START4 ) | |
| 162 | PORT_START("P4") | |
| 163 | KONAMI8_B12_START(4) | |
| 191 | 164 | |
| 192 | PORT_START("COIN") | |
| 165 | PORT_START("COIN") | |
| 193 | 166 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) |
| 194 | 167 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) |
| 195 | 168 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN3 ) |
| r4470 | r4471 | |
| 199 | 172 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) //SERVICE3 Unused |
| 200 | 173 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) //SERVICE4 Unused |
| 201 | 174 | |
| 202 | PORT_START("TEST") | |
| 175 | PORT_START("TEST") | |
| 203 | 176 | PORT_SERVICE_NO_TOGGLE( 0x01, IP_ACTIVE_LOW ) |
| 204 | 177 | PORT_BIT( 0xfe, IP_ACTIVE_LOW, IPT_UNKNOWN ) |
| 205 | 178 | INPUT_PORTS_END |
| 206 | 179 | |
| 207 | 180 | static INPUT_PORTS_START( simpsn2p ) |
| 208 | PORT_START("P1") /* IN0 - Player 1 */ | |
| 209 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) | |
| 210 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) | |
| 211 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) | |
| 212 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) | |
| 213 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) | |
| 214 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) | |
| 215 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) //BUTTON3 Unused | |
| 216 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 ) | |
| 181 | PORT_START("P1") | |
| 182 | KONAMI8_B12_START(1) | |
| 217 | 183 | |
| 218 | PORT_START("P2") /* IN1 - Player 2 */ | |
| 219 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) | |
| 220 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) | |
| 221 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) | |
| 222 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) | |
| 223 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) | |
| 224 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) | |
| 225 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) //BUTTON3 Unused | |
| 226 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 ) | |
| 184 | PORT_START("P2") | |
| 185 | KONAMI8_B12_START(2) | |
| 227 | 186 | |
| 228 | PORT_START("P3") /* IN2 - Player 3 - Used on the 4p version */ | |
| 229 | // PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(3) | |
| 230 | // PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(3) | |
| 231 | // PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(3) | |
| 232 | // PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(3) | |
| 233 | // PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3) | |
| 234 | // PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3) | |
| 235 | // PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) //BUTTON3 Unused | |
| 236 | // PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START3 ) | |
| 187 | PORT_START("P3") | |
| 188 | PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) | |
| 237 | 189 | |
| 238 | PORT_START("P4") /* IN3 - Player 4 - Used on the 4p version */ | |
| 239 | // PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(4) | |
| 240 | // PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(4) | |
| 241 | // PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(4) | |
| 242 | // PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(4) | |
| 243 | // PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(4) | |
| 244 | // PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(4) | |
| 245 | // PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) //BUTTON3 Unused | |
| 246 | // PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START4 ) | |
| 190 | PORT_START("P4") | |
| 191 | PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) | |
| 247 | 192 | |
| 248 | 193 | PORT_START("COIN") /* IN4 */ |
| 249 | 194 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) |
| r4470 | r4471 | |
|---|---|---|
| 96 | 96 | AM_RANGE(0x000000, 0x03ffff) AM_ROM |
| 97 | 97 | AM_RANGE(0x040000, 0x04001f) AM_WRITE(actfancr_pf2_control_w) |
| 98 | 98 | AM_RANGE(0x044000, 0x045fff) AM_READWRITE(actfancr_pf2_data_r, actfancr_pf2_data_w) AM_BASE(&actfancr_pf2_data) |
| 99 | AM_RANGE(0x046400, 0x0467ff) AM_WRITE | |
| 99 | AM_RANGE(0x046400, 0x0467ff) AM_WRITE | |
| 100 | 100 | AM_RANGE(0x060000, 0x06001f) AM_WRITE(actfancr_pf1_control_w) |
| 101 | 101 | AM_RANGE(0x064000, 0x0647ff) AM_READWRITE(actfancr_pf1_data_r, actfancr_pf1_data_w) AM_BASE(&actfancr_pf1_data) |
| 102 | 102 | AM_RANGE(0x066400, 0x0667ff) AM_WRITE(SMH_RAM) AM_BASE(&actfancr_pf1_rowscroll_data) |
| r4470 | r4471 | |
|---|---|---|
| 493 | 493 | |
| 494 | 494 | AM_RANGE(0xa00000, 0xa0000f) AM_READ(TC0220IOC_halfword_byteswap_r) |
| 495 | 495 | |
| 496 | AM_RANGE(0x800000, 0x800001) AM_READ(SMH_NOP) | |
| 497 | AM_RANGE(0x800002, 0x800003) AM_READ(taitosound_comm16_msb_r) | |
| 496 | AM_RANGE(0x800000, 0x800001) AM_READNOP | |
| 497 | AM_RANGE(0x800002, 0x800003) AM_READ8(taitosound_comm_r, 0xff00) | |
| 498 | 498 | ADDRESS_MAP_END |
| 499 | 499 | |
| 500 | 500 | static ADDRESS_MAP_START( rastsag2_writemem, ADDRESS_SPACE_PROGRAM, 16 ) |
| r4470 | r4471 | |
| 507 | 507 | |
| 508 | 508 | AM_RANGE(0xa00000, 0xa0000f) AM_WRITE(TC0220IOC_halfword_byteswap_w) |
| 509 | 509 | |
| 510 | AM_RANGE(0x800000, 0x800001) AM_WRITE(taitosound_port16_msb_w) | |
| 511 | AM_RANGE(0x800002, 0x800003) AM_WRITE(taitosound_comm16_msb_w) | |
| 510 | AM_RANGE(0x800000, 0x800001) AM_WRITE8(taitosound_port_w, 0xff00) | |
| 511 | AM_RANGE(0x800002, 0x800003) AM_WRITE8(taitosound_comm_w, 0xff00) | |
| 512 | 512 | ADDRESS_MAP_END |
| 513 | 513 | |
| 514 | 514 | |
| r4470 | r4471 | |
| 522 | 522 | |
| 523 | 523 | AM_RANGE(0x200000, 0x20000f) AM_READ(TC0220IOC_halfword_byteswap_r) |
| 524 | 524 | |
| 525 | AM_RANGE(0x600000, 0x600001) AM_READ(SMH_NOP) | |
| 526 | AM_RANGE(0x600002, 0x600003) AM_READ(taitosound_comm16_msb_r) | |
| 525 | AM_RANGE(0x600000, 0x600001) AM_READNOP | |
| 526 | AM_RANGE(0x600002, 0x600003) AM_READ8(taitosound_comm_r, 0xff00) | |
| 527 | 527 | ADDRESS_MAP_END |
| 528 | 528 | |
| 529 | 529 | static ADDRESS_MAP_START( crimec_writemem, ADDRESS_SPACE_PROGRAM, 16 ) |
| r4470 | r4471 | |
| 536 | 536 | |
| 537 | 537 | AM_RANGE(0x200000, 0x20000f) AM_WRITE(TC0220IOC_halfword_byteswap_w) |
| 538 | 538 | |
| 539 | AM_RANGE(0x600000, 0x600001) AM_WRITE(taitosound_port16_msb_w) | |
| 540 | AM_RANGE(0x600002, 0x600003) AM_WRITE(taitosound_comm16_msb_w) | |
| 539 | AM_RANGE(0x600000, 0x600001) AM_WRITE8(taitosound_port_w, 0xff00) | |
| 540 | AM_RANGE(0x600002, 0x600003) AM_WRITE8(taitosound_comm_w, 0xff00) | |
| 541 | 541 | ADDRESS_MAP_END |
| 542 | 542 | |
| 543 | 543 | |
| r4470 | r4471 | |
| 551 | 551 | |
| 552 | 552 | AM_RANGE(0x600000, 0x60000f) AM_READ(TC0220IOC_halfword_byteswap_r) |
| 553 | 553 | |
| 554 | AM_RANGE(0x200000, 0x200001) AM_READ(SMH_NOP) | |
| 555 | AM_RANGE(0x200002, 0x200003) AM_READ(taitosound_comm16_msb_r) | |
| 554 | AM_RANGE(0x200000, 0x200001) AM_READNOP | |
| 555 | AM_RANGE(0x200002, 0x200003) AM_READ8(taitosound_comm_r, 0xff00) | |
| 556 | 556 | ADDRESS_MAP_END |
| 557 | 557 | |
| 558 | 558 | static ADDRESS_MAP_START( tetrist_writemem, ADDRESS_SPACE_PROGRAM, 16 ) |
| r4470 | r4471 | |
| 565 | 565 | |
| 566 | 566 | AM_RANGE(0x600000, 0x60000f) AM_WRITE(TC0220IOC_halfword_byteswap_w) |
| 567 | 567 | |
| 568 | AM_RANGE(0x200000, 0x200001) AM_WRITE(taitosound_port16_msb_w) | |
| 569 | AM_RANGE(0x200002, 0x200003) AM_WRITE(taitosound_comm16_msb_w) | |
| 568 | AM_RANGE(0x200000, 0x200001) AM_WRITE8(taitosound_port_w, 0xff00) | |
| 569 | AM_RANGE(0x200002, 0x200003) AM_WRITE8(taitosound_comm_w, 0xff00) | |
| 570 | 570 | ADDRESS_MAP_END |
| 571 | 571 | |
| 572 | 572 | static ADDRESS_MAP_START( tetrista_readmem, ADDRESS_SPACE_PROGRAM, 16 ) |
| r4470 | r4471 | |
| 580 | 580 | AM_RANGE(0x600000, 0x600001) AM_READ(TC0220IOC_halfword_byteswap_portreg_r) /* DSW A/B, player inputs*/ |
| 581 | 581 | AM_RANGE(0x600002, 0x600003) AM_READ(TC0220IOC_halfword_byteswap_port_r /*watchdog_reset16_r*/ ) |
| 582 | 582 | |
| 583 | AM_RANGE(0xa00000, 0xa00001) AM_READ(SMH_NOP) | |
| 584 | AM_RANGE(0xa00002, 0xa00003) AM_READ(taitosound_comm16_msb_r) | |
| 583 | AM_RANGE(0xa00000, 0xa00001) AM_READNOP | |
| 584 | AM_RANGE(0xa00002, 0xa00003) AM_READ8(taitosound_comm_r, 0xff00) | |
| 585 | 585 | ADDRESS_MAP_END |
| 586 | 586 | |
| 587 | 587 | static ADDRESS_MAP_START( tetrista_writemem, ADDRESS_SPACE_PROGRAM, 16 ) |
| r4470 | r4471 | |
| 595 | 595 | AM_RANGE(0x600000, 0x600001) AM_WRITE(TC0220IOC_halfword_byteswap_portreg_w) |
| 596 | 596 | AM_RANGE(0x600002, 0x600003) AM_WRITE(TC0220IOC_halfword_byteswap_port_w) |
| 597 | 597 | |
| 598 | AM_RANGE(0xa00000, 0xa00001) AM_WRITE(taitosound_port16_msb_w) | |
| 599 | AM_RANGE(0xa00002, 0xa00003) AM_WRITE(taitosound_comm16_msb_w) | |
| 598 | AM_RANGE(0xa00000, 0xa00001) AM_WRITE8(taitosound_port_w, 0xff00) | |
| 599 | AM_RANGE(0xa00002, 0xa00003) AM_WRITE8(taitosound_comm_w, 0xff00) | |
| 600 | 600 | ADDRESS_MAP_END |
| 601 | 601 | |
| 602 | 602 | static ADDRESS_MAP_START( hitice_readmem, ADDRESS_SPACE_PROGRAM, 16 ) |
| r4470 | r4471 | |
| 610 | 610 | AM_RANGE(0x600000, 0x60000f) AM_READ(TC0220IOC_halfword_byteswap_r) |
| 611 | 611 | AM_RANGE(0x610000, 0x610001) AM_READ_PORT("P3_P4") |
| 612 | 612 | |
| 613 | AM_RANGE(0x700000, 0x700001) AM_READ(SMH_NOP) | |
| 614 | AM_RANGE(0x700002, 0x700003) AM_READ(taitosound_comm16_msb_r) | |
| 613 | AM_RANGE(0x700000, 0x700001) AM_READNOP | |
| 614 | AM_RANGE(0x700002, 0x700003) AM_READ8(taitosound_comm_r, 0xff00) | |
| 615 | 615 | |
| 616 | 616 | AM_RANGE(0xb00000, 0xb7ffff) AM_READ(SMH_RAM) |
| 617 | 617 | ADDRESS_MAP_END |
| r4470 | r4471 | |
| 626 | 626 | |
| 627 | 627 | AM_RANGE(0x600000, 0x60000f) AM_WRITE(TC0220IOC_halfword_byteswap_w) |
| 628 | 628 | |
| 629 | AM_RANGE(0x700000, 0x700001) AM_WRITE(taitosound_port16_msb_w) | |
| 630 | AM_RANGE(0x700002, 0x700003) AM_WRITE(taitosound_comm16_msb_w) | |
| 629 | AM_RANGE(0x700000, 0x700001) AM_WRITE8(taitosound_port_w, 0xff00) | |
| 630 | AM_RANGE(0x700002, 0x700003) AM_WRITE8(taitosound_comm_w, 0xff00) | |
| 631 | 631 | |
| 632 | 632 | AM_RANGE(0xb00000, 0xb7ffff) AM_WRITE(hitice_pixelram_w) AM_BASE(&taitob_pixelram) |
| 633 | 633 | // { 0xbffff0, 0xbffff1, ??? |
| r4470 | r4471 | |
| 654 | 654 | AM_RANGE(0x60001c, 0x60001d) AM_READ(trackx2_lo_r) |
| 655 | 655 | AM_RANGE(0x60001e, 0x60001f) AM_READ(trackx2_hi_r) |
| 656 | 656 | |
| 657 | AM_RANGE(0x200000, 0x200001) AM_READ(SMH_NOP) | |
| 658 | AM_RANGE(0x200002, 0x200003) AM_READ(taitosound_comm16_msb_r) | |
| 657 | AM_RANGE(0x200000, 0x200001) AM_READNOP | |
| 658 | AM_RANGE(0x200002, 0x200003) AM_READ8(taitosound_comm_r, 0xff00) | |
| 659 | 659 | ADDRESS_MAP_END |
| 660 | 660 | |
| 661 | 661 | static ADDRESS_MAP_START( rambo3_writemem, ADDRESS_SPACE_PROGRAM, 16 ) |
| r4470 | r4471 | |
| 668 | 668 | |
| 669 | 669 | AM_RANGE(0x600000, 0x60000f) AM_WRITE(TC0220IOC_halfword_byteswap_w) |
| 670 | 670 | |
| 671 | AM_RANGE(0x200000, 0x200001) AM_WRITE(taitosound_port16_msb_w) | |
| 672 | AM_RANGE(0x200002, 0x200003) AM_WRITE(taitosound_comm16_msb_w) | |
| 671 | AM_RANGE(0x200000, 0x200001) AM_WRITE8(taitosound_port_w, 0xff00) | |
| 672 | AM_RANGE(0x200002, 0x200003) AM_WRITE8(taitosound_comm_w, 0xff00) | |
| 673 | 673 | ADDRESS_MAP_END |
| 674 | 674 | |
| 675 | 675 | |
| r4470 | r4471 | |
| 686 | 686 | AM_RANGE(0x500026, 0x500027) AM_READ(eep_latch_r) /* not read by this game */ |
| 687 | 687 | AM_RANGE(0x50002e, 0x50002f) AM_READ_PORT("IN4") /* shown in service mode, game omits to read it */ |
| 688 | 688 | |
| 689 | AM_RANGE(0x700000, 0x700001) AM_READ(SMH_NOP) | |
| 690 | AM_RANGE(0x700002, 0x700003) AM_READ(taitosound_comm16_msb_r) | |
| 689 | AM_RANGE(0x700000, 0x700001) AM_READNOP | |
| 690 | AM_RANGE(0x700002, 0x700003) AM_READ8(taitosound_comm_r, 0xff00) | |
| 691 | 691 | ADDRESS_MAP_END |
| 692 | 692 | |
| 693 | 693 | static ADDRESS_MAP_START( pbobble_writemem, ADDRESS_SPACE_PROGRAM, 16 ) |
| r4470 | r4471 | |
| 702 | 702 | AM_RANGE(0x500026, 0x500027) AM_WRITE(eeprom_w) |
| 703 | 703 | AM_RANGE(0x500028, 0x500029) AM_WRITE(player_34_coin_ctrl_w) /* simply locks coins 3&4 out */ |
| 704 | 704 | |
| 705 | AM_RANGE(0x700000, 0x700001) AM_WRITE(taitosound_port16_msb_w) | |
| 706 | AM_RANGE(0x700002, 0x700003) AM_WRITE(taitosound_comm16_msb_w) | |
| 705 | AM_RANGE(0x700000, 0x700001) AM_WRITE8(taitosound_port_w, 0xff00) | |
| 706 | AM_RANGE(0x700002, 0x700003) AM_WRITE8(taitosound_comm_w, 0xff00) | |
| 707 | 707 | AM_RANGE(0x600000, 0x600003) AM_WRITE(gain_control_w) |
| 708 | 708 | ADDRESS_MAP_END |
| 709 | 709 | |
| r4470 | r4471 | |
| 720 | 720 | AM_RANGE(0x500026, 0x500027) AM_READ(eep_latch_r) |
| 721 | 721 | AM_RANGE(0x50002e, 0x50002f) AM_READ_PORT("IN4") |
| 722 | 722 | |
| 723 | AM_RANGE(0x700000, 0x700001) AM_READ(SMH_NOP) | |
| 724 | AM_RANGE(0x700002, 0x700003) AM_READ(taitosound_comm16_msb_r) | |
| 723 | AM_RANGE(0x700000, 0x700001) AM_READNOP | |
| 724 | AM_RANGE(0x700002, 0x700003) AM_READ8(taitosound_comm_r, 0xff00) | |
| 725 | 725 | ADDRESS_MAP_END |
| 726 | 726 | |
| 727 | 727 | static ADDRESS_MAP_START( spacedx_writemem, ADDRESS_SPACE_PROGRAM, 16 ) |
| r4470 | r4471 | |
| 736 | 736 | AM_RANGE(0x500026, 0x500027) AM_WRITE(eeprom_w) |
| 737 | 737 | AM_RANGE(0x500028, 0x500029) AM_WRITE(player_34_coin_ctrl_w) /* simply locks coins 3&4 out */ |
| 738 | 738 | |
| 739 | AM_RANGE(0x700000, 0x700001) AM_WRITE(taitosound_port16_msb_w) | |
| 740 | AM_RANGE(0x700002, 0x700003) AM_WRITE(taitosound_comm16_msb_w) | |
| 739 | AM_RANGE(0x700000, 0x700001) AM_WRITE8(taitosound_port_w, 0xff00) | |
| 740 | AM_RANGE(0x700002, 0x700003) AM_WRITE8(taitosound_comm_w, 0xff00) | |
| 741 | 741 | AM_RANGE(0x600000, 0x600003) AM_WRITE(gain_control_w) |
| 742 | 742 | ADDRESS_MAP_END |
| 743 | 743 | |
| r4470 | r4471 | |
| 754 | 754 | AM_RANGE(0x220000, 0x220001) AM_READ_PORT("IN4") |
| 755 | 755 | AM_RANGE(0x230000, 0x230001) AM_READ_PORT("IN5") |
| 756 | 756 | |
| 757 | AM_RANGE(0x100000, 0x100001) AM_READ(SMH_NOP) | |
| 758 | AM_RANGE(0x100002, 0x100003) AM_READ(taitosound_comm16_msb_r) | |
| 757 | AM_RANGE(0x100000, 0x100001) AM_READNOP | |
| 758 | AM_RANGE(0x100002, 0x100003) AM_READ8(taitosound_comm_r, 0xff00) | |
| 759 | 759 | ADDRESS_MAP_END |
| 760 | 760 | |
| 761 | 761 | static ADDRESS_MAP_START( spacedxo_writemem, ADDRESS_SPACE_PROGRAM, 16 ) |
| r4470 | r4471 | |
| 768 | 768 | |
| 769 | 769 | AM_RANGE(0x200000, 0x20000f) AM_WRITE(TC0220IOC_halfword_w) |
| 770 | 770 | |
| 771 | AM_RANGE(0x100000, 0x100001) AM_WRITE(taitosound_port16_msb_w) | |
| 772 | AM_RANGE(0x100002, 0x100003) AM_WRITE(taitosound_comm16_msb_w) | |
| 771 | AM_RANGE(0x100000, 0x100001) AM_WRITE8(taitosound_port_w, 0xff00) | |
| 772 | AM_RANGE(0x100002, 0x100003) AM_WRITE8(taitosound_comm_w, 0xff00) | |
| 773 | 773 | ADDRESS_MAP_END |
| 774 | 774 | |
| 775 | 775 | static ADDRESS_MAP_START( qzshowby_readmem, ADDRESS_SPACE_PROGRAM, 16 ) |
| r4470 | r4471 | |
| 785 | 785 | AM_RANGE(0x200028, 0x200029) AM_READ(player_34_coin_ctrl_r) |
| 786 | 786 | AM_RANGE(0x20002e, 0x20002f) AM_READ_PORT("IN4") /* player 3,4 buttons */ |
| 787 | 787 | |
| 788 | AM_RANGE(0x600000, 0x600001) AM_READ(SMH_NOP) | |
| 789 | AM_RANGE(0x600002, 0x600003) AM_READ(taitosound_comm16_msb_r) | |
| 788 | AM_RANGE(0x600000, 0x600001) AM_READNOP | |
| 789 | AM_RANGE(0x600002, 0x600003) AM_READ8(taitosound_comm_r, 0xff00) | |
| 790 | 790 | ADDRESS_MAP_END |
| 791 | 791 | |
| 792 | 792 | static ADDRESS_MAP_START( qzshowby_writemem, ADDRESS_SPACE_PROGRAM, 16 ) |
| r4470 | r4471 | |
| 801 | 801 | AM_RANGE(0x200026, 0x200027) AM_WRITE(eeprom_w) |
| 802 | 802 | AM_RANGE(0x200028, 0x200029) AM_WRITE(player_34_coin_ctrl_w) |
| 803 | 803 | |
| 804 | AM_RANGE(0x600000, 0x600001) AM_WRITE(taitosound_port16_msb_w) | |
| 805 | AM_RANGE(0x600002, 0x600003) AM_WRITE(taitosound_comm16_msb_w) | |
| 804 | AM_RANGE(0x600000, 0x600001) AM_WRITE8(taitosound_port_w, 0xff00) | |
| 805 | AM_RANGE(0x600002, 0x600003) AM_WRITE8(taitosound_comm_w, 0xff00) | |
| 806 | 806 | AM_RANGE(0x700000, 0x700003) AM_WRITE(gain_control_w) |
| 807 | 807 | ADDRESS_MAP_END |
| 808 | 808 | |
| r4470 | r4471 | |
| 817 | 817 | |
| 818 | 818 | AM_RANGE(0x800000, 0x80000f) AM_READ(TC0220IOC_halfword_byteswap_r) |
| 819 | 819 | |
| 820 | AM_RANGE(0x200000, 0x200001) AM_READ(SMH_NOP) | |
| 821 | AM_RANGE(0x200002, 0x200003) AM_READ(taitosound_comm16_msb_r) | |
| 820 | AM_RANGE(0x200000, 0x200001) AM_READNOP | |
| 821 | AM_RANGE(0x200002, 0x200003) AM_READ8(taitosound_comm_r, 0xff00) | |
| 822 | 822 | ADDRESS_MAP_END |
| 823 | 823 | |
| 824 | 824 | static ADDRESS_MAP_START( viofight_writemem, ADDRESS_SPACE_PROGRAM, 16 ) |
| r4470 | r4471 | |
| 831 | 831 | |
| 832 | 832 | AM_RANGE(0x800000, 0x80000f) AM_WRITE(TC0220IOC_halfword_byteswap_w) |
| 833 | 833 | |
| 834 | AM_RANGE(0x200000, 0x200001) AM_WRITE(taitosound_port16_msb_w) | |
| 835 | AM_RANGE(0x200002, 0x200003) AM_WRITE(taitosound_comm16_msb_w) | |
| 834 | AM_RANGE(0x200000, 0x200001) AM_WRITE8(taitosound_port_w, 0xff00) | |
| 835 | AM_RANGE(0x200002, 0x200003) AM_WRITE8(taitosound_comm_w, 0xff00) | |
| 836 | 836 | ADDRESS_MAP_END |
| 837 | 837 | |
| 838 | 838 | |
| r4470 | r4471 | |
| 847 | 847 | AM_RANGE(0x800000, 0x800001) AM_READ(TC0220IOC_halfword_byteswap_portreg_r) /* DSW A/B, player inputs*/ |
| 848 | 848 | AM_RANGE(0x800002, 0x800003) AM_READ(TC0220IOC_halfword_byteswap_port_r /*watchdog_reset16_r*/ ) |
| 849 | 849 | |
| 850 | AM_RANGE(0xa00000, 0xa00001) AM_READ(SMH_NOP) | |
| 851 | AM_RANGE(0xa00002, 0xa00003) AM_READ(taitosound_comm16_msb_r) | |
| 850 | AM_RANGE(0xa00000, 0xa00001) AM_READNOP | |
| 851 | AM_RANGE(0xa00002, 0xa00003) AM_READ8(taitosound_comm_r, 0xff00) | |
| 852 | 852 | ADDRESS_MAP_END |
| 853 | 853 | |
| 854 | 854 | static ADDRESS_MAP_START( masterw_writemem, ADDRESS_SPACE_PROGRAM, 16 ) |
| r4470 | r4471 | |
| 862 | 862 | AM_RANGE(0x800000, 0x800001) AM_WRITE(TC0220IOC_halfword_byteswap_portreg_w) |
| 863 | 863 | AM_RANGE(0x800002, 0x800003) AM_WRITE(TC0220IOC_halfword_byteswap_port_w) |
| 864 | 864 | |
| 865 | AM_RANGE(0xa00000, 0xa00001) AM_WRITE(taitosound_port16_msb_w) | |
| 866 | AM_RANGE(0xa00002, 0xa00003) AM_WRITE(taitosound_comm16_msb_w) | |
| 865 | AM_RANGE(0xa00000, 0xa00001) AM_WRITE8(taitosound_port_w, 0xff00) | |
| 866 | AM_RANGE(0xa00002, 0xa00003) AM_WRITE8(taitosound_comm_w, 0xff00) | |
| 867 | 867 | ADDRESS_MAP_END |
| 868 | 868 | |
| 869 | 869 | |
| r4470 | r4471 | |
| 879 | 879 | AM_RANGE(0x210000, 0x210001) AM_READ_PORT("IN3") |
| 880 | 880 | AM_RANGE(0x220000, 0x220001) AM_READ_PORT("IN4") |
| 881 | 881 | AM_RANGE(0x230000, 0x230001) AM_READ_PORT("IN5") |
| 882 | // AM_RANGE(0x240000, 0x240001) AM_READ | |
| 882 | // AM_RANGE(0x240000, 0x240001) AM_READ | |
| 883 | 883 | |
| 884 | AM_RANGE(0x100000, 0x100001) AM_READ(SMH_NOP) | |
| 885 | AM_RANGE(0x100002, 0x100003) AM_READ(taitosound_comm16_msb_r) | |
| 886 | // AM_RANGE(0x10001a, 0x10001b) AM_READ(SMH_NOP) // ??? read at $1e344 | |
| 887 | // AM_RANGE(0x10001c, 0x10001d) AM_READ(SMH_NOP) // ??? read at $1e356 | |
| 884 | AM_RANGE(0x100000, 0x100001) AM_READNOP | |
| 885 | AM_RANGE(0x100002, 0x100003) AM_READ8(taitosound_comm_r, 0xff00) | |
| 886 | // AM_RANGE(0x10001a, 0x10001b) AM_READNOP // ??? read at $1e344 | |
| 887 | // AM_RANGE(0x10001c, 0x10001d) AM_READNOP // ??? read at $1e356 | |
| 888 | 888 | ADDRESS_MAP_END |
| 889 | 889 | |
| 890 | 890 | static ADDRESS_MAP_START( silentd_writemem, ADDRESS_SPACE_PROGRAM, 16 ) |
| r4470 | r4471 | |
| 896 | 896 | TC0180VCU_MEMW( 0x500000 ) |
| 897 | 897 | |
| 898 | 898 | AM_RANGE(0x200000, 0x20000f) AM_WRITE(TC0220IOC_halfword_w) |
| 899 | AM_RANGE(0x240000, 0x240001) AM_WRITE | |
| 899 | AM_RANGE(0x240000, 0x240001) AM_WRITE | |
| 900 | 900 | |
| 901 | AM_RANGE(0x100000, 0x100001) AM_WRITE(taitosound_port16_msb_w) | |
| 902 | AM_RANGE(0x100002, 0x100003) AM_WRITE(taitosound_comm16_msb_w) | |
| 901 | AM_RANGE(0x100000, 0x100001) AM_WRITE8(taitosound_port_w, 0xff00) | |
| 902 | AM_RANGE(0x100002, 0x100003) AM_WRITE8(taitosound_comm_w, 0xff00) | |
| 903 | 903 | ADDRESS_MAP_END |
| 904 | 904 | |
| 905 | 905 | |
| r4470 | r4471 | |
| 914 | 914 | AM_RANGE(0x400000, 0x40000f) AM_READ(TC0220IOC_halfword_byteswap_r) |
| 915 | 915 | AM_RANGE(0x410000, 0x41000f) AM_READ(TC0220IOC_halfword_byteswap_r) /* mirror address - seems to be only used for coin control */ |
| 916 | 916 | |
| 917 | AM_RANGE(0x500000, 0x500001) AM_READ(SMH_NOP) | |
| 918 | AM_RANGE(0x500002, 0x500003) AM_READ(taitosound_comm16_msb_r) | |
| 917 | AM_RANGE(0x500000, 0x500001) AM_READNOP | |
| 918 | AM_RANGE(0x500002, 0x500003) AM_READ8(taitosound_comm_r, 0xff00) | |
| 919 | 919 | ADDRESS_MAP_END |
| 920 | 920 | |
| 921 | 921 | static ADDRESS_MAP_START( selfeena_writemem, ADDRESS_SPACE_PROGRAM, 16 ) |
| r4470 | r4471 | |
| 929 | 929 | AM_RANGE(0x400000, 0x40000f) AM_WRITE(TC0220IOC_halfword_byteswap_w) |
| 930 | 930 | AM_RANGE(0x410000, 0x41000f) AM_WRITE(TC0220IOC_halfword_byteswap_w) /* mirror address - seems to be only used for coin control */ |
| 931 | 931 | |
| 932 | AM_RANGE(0x500000, 0x500001) AM_WRITE(taitosound_port16_msb_w) | |
| 933 | AM_RANGE(0x500002, 0x500003) AM_WRITE(taitosound_comm16_msb_w) | |
| 932 | AM_RANGE(0x500000, 0x500001) AM_WRITE8(taitosound_port_w, 0xff00) | |
| 933 | AM_RANGE(0x500002, 0x500003) AM_WRITE8(taitosound_comm_w, 0xff00) | |
| 934 | 934 | ADDRESS_MAP_END |
| 935 | 935 | |
| 936 | 936 | |
| r4470 | r4471 | |
| 944 | 944 | |
| 945 | 945 | AM_RANGE(0x300000, 0x30000f) AM_READ(TC0510NIO_halfword_wordswap_r) |
| 946 | 946 | |
| 947 | AM_RANGE(0x320000, 0x320001) AM_READ(SMH_NOP) | |
| 948 | AM_RANGE(0x320002, 0x320003) AM_READ(taitosound_comm16_msb_r) | |
| 947 | AM_RANGE(0x320000, 0x320001) AM_READNOP | |
| 948 | AM_RANGE(0x320002, 0x320003) AM_READ8(taitosound_comm_r, 0xff00) | |
| 949 | 949 | ADDRESS_MAP_END |
| 950 | 950 | |
| 951 | 951 | static ADDRESS_MAP_START( sbm_writemem, ADDRESS_SPACE_PROGRAM, 16 ) |
| r4470 | r4471 | |
| 958 | 958 | |
| 959 | 959 | AM_RANGE(0x300000, 0x30000f) AM_WRITE(TC0510NIO_halfword_wordswap_w) |
| 960 | 960 | |
| 961 | AM_RANGE(0x320000, 0x320001) AM_WRITE(taitosound_port16_msb_w) | |
| 962 | AM_RANGE(0x320002, 0x320003) AM_WRITE(taitosound_comm16_msb_w) | |
| 961 | AM_RANGE(0x320000, 0x320001) AM_WRITE8(taitosound_port_w, 0xff00) | |
| 962 | AM_RANGE(0x320002, 0x320003) AM_WRITE8(taitosound_comm_w, 0xff00) | |
| 963 | 963 | ADDRESS_MAP_END |
| 964 | 964 | |
| 965 | 965 | |
| r4470 | r4471 | |
| 985 | 985 | AM_RANGE(0x4000, 0x7fff) AM_READ(SMH_BANK1) |
| 986 | 986 | AM_RANGE(0xc000, 0xdfff) AM_READ(SMH_RAM) |
| 987 | 987 | AM_RANGE(0xe000, 0xe003) AM_DEVREAD("ym", ym2610_r) |
| 988 | AM_RANGE(0xe200, 0xe200) AM_READ | |
| 988 | AM_RANGE(0xe200, 0xe200) AM_READ | |
| 989 | 989 | AM_RANGE(0xe201, 0xe201) AM_READ(taitosound_slave_comm_r) |
| 990 | AM_RANGE(0xea00, 0xea00) AM_READ | |
| 990 | AM_RANGE(0xea00, 0xea00) AM_READ | |
| 991 | 991 | ADDRESS_MAP_END |
| 992 | 992 | |
| 993 | 993 | static ADDRESS_MAP_START( sound_writemem, ADDRESS_SPACE_PROGRAM, 8 ) |
| r4470 | r4471 | |
| 996 | 996 | AM_RANGE(0xe000, 0xe003) AM_DEVWRITE("ym", ym2610_w) |
| 997 | 997 | AM_RANGE(0xe200, 0xe200) AM_WRITE(taitosound_slave_port_w) |
| 998 | 998 | AM_RANGE(0xe201, 0xe201) AM_WRITE(taitosound_slave_comm_w) |
| 999 | AM_RANGE(0xe400, 0xe403) AM_WRITE(SMH_NOP) /* pan */ | |
| 1000 | AM_RANGE(0xe600, 0xe600) AM_WRITE(SMH_NOP) /* ? */ | |
| 1001 | AM_RANGE(0xee00, 0xee00) AM_WRITE(SMH_NOP) /* ? */ | |
| 1002 | AM_RANGE(0xf000, 0xf000) AM_WRITE(SMH_NOP) /* ? */ | |
| 999 | AM_RANGE(0xe400, 0xe403) AM_WRITENOP /* pan */ | |
| 1000 | AM_RANGE(0xe600, 0xe600) AM_WRITENOP /* ? */ | |
| 1001 | AM_RANGE(0xee00, 0xee00) AM_WRITENOP /* ? */ | |
| 1002 | AM_RANGE(0xf000, 0xf000) AM_WRITENOP /* ? */ | |
| 1003 | 1003 | AM_RANGE(0xf200, 0xf200) AM_WRITE(bankswitch_w) |
| 1004 | 1004 | ADDRESS_MAP_END |
| 1005 | 1005 |
| r4470 | r4471 | |
|---|---|---|
| 74 | 74 | #include "cpu/m6809/m6809.h" |
| 75 | 75 | #include "sound/2151intf.h" |
| 76 | 76 | #include "includes/jackal.h" |
| 77 | #include "konamipt.h" | |
| 77 | 78 | |
| 78 | ||
| 79 | 79 | #define MASTER_CLOCK XTAL_18_432MHz |
| 80 | 80 | #define SOUND_CLOCK XTAL_3_579545MHz |
| 81 | 81 | |
| r4470 | r4471 | |
| 128 | 128 | |
| 129 | 129 | static INPUT_PORTS_START( jackal ) |
| 130 | 130 | PORT_START("DSW1") |
| 131 | PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) ) PORT_DIPLOCATION( "SW1:1,2,3,4" ) | |
| 132 | PORT_DIPSETTING( 0x02, DEF_STR( 4C_1C ) ) | |
| 133 | PORT_DIPSETTING( 0x05, DEF_STR( 3C_1C ) ) | |
| 134 | PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) ) | |
| 135 | PORT_DIPSETTING( 0x04, DEF_STR( 3C_2C ) ) | |
| 136 | PORT_DIPSETTING( 0x01, DEF_STR( 4C_3C ) ) | |
| 137 | PORT_DIPSETTING( 0x0f, DEF_STR( 1C_1C ) ) | |
| 138 | PORT_DIPSETTING( 0x03, DEF_STR( 3C_4C ) ) | |
| 139 | PORT_DIPSETTING( 0x07, DEF_STR( 2C_3C ) ) | |
| 140 | PORT_DIPSETTING( 0x0e, DEF_STR( 1C_2C ) ) | |
| 141 | PORT_DIPSETTING( 0x06, DEF_STR( 2C_5C ) ) | |
| 142 | PORT_DIPSETTING( 0x0d, DEF_STR( 1C_3C ) ) | |
| 143 | PORT_DIPSETTING( 0x0c, DEF_STR( 1C_4C ) ) | |
| 144 | PORT_DIPSETTING( 0x0b, DEF_STR( 1C_5C ) ) | |
| 145 | PORT_DIPSETTING( 0x0a, DEF_STR( 1C_6C ) ) | |
| 146 | PORT_DIPSETTING( 0x09, DEF_STR( 1C_7C ) ) | |
| 147 | PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) | |
| 148 | PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) ) PORT_DIPLOCATION( "SW1:5,6,7,8" ) | |
| 149 | PORT_DIPSETTING( 0x20, DEF_STR( 4C_1C ) ) | |
| 150 | PORT_DIPSETTING( 0x50, DEF_STR( 3C_1C ) ) | |
| 151 | PORT_DIPSETTING( 0x80, DEF_STR( 2C_1C ) ) | |
| 152 | PORT_DIPSETTING( 0x40, DEF_STR( 3C_2C ) ) | |
| 153 | PORT_DIPSETTING( 0x10, DEF_STR( 4C_3C ) ) | |
| 154 | PORT_DIPSETTING( 0xf0, DEF_STR( 1C_1C ) ) | |
| 155 | PORT_DIPSETTING( 0x30, DEF_STR( 3C_4C ) ) | |
| 156 | PORT_DIPSETTING( 0x70, DEF_STR( 2C_3C ) ) | |
| 157 | PORT_DIPSETTING( 0xe0, DEF_STR( 1C_2C ) ) | |
| 158 | PORT_DIPSETTING( 0x60, DEF_STR( 2C_5C ) ) | |
| 159 | PORT_DIPSETTING( 0xd0, DEF_STR( 1C_3C ) ) | |
| 160 | PORT_DIPSETTING( 0xc0, DEF_STR( 1C_4C ) ) | |
| 161 | PORT_DIPSETTING( 0xb0, DEF_STR( 1C_5C ) ) | |
| 162 | PORT_DIPSETTING( 0xa0, DEF_STR( 1C_6C ) ) | |
| 163 | PORT_DIPSETTING( 0x90, DEF_STR( 1C_7C ) ) | |
| 131 | KONAMI_COINAGE_LOC(DEF_STR( Free_Play ), "No Coin B", SW1) | |
| 132 | /* "No Coin B" = coins produce sound, but no effect on coin counter */ | |
| 164 | 133 | |
| 165 | 134 | PORT_START("DSW2") |
| 166 | 135 | PORT_DIPNAME( 0x03, 0x02, DEF_STR( Lives ) ) PORT_DIPLOCATION( "SW2:1,2" ) |
| r4470 | r4471 | |
| 186 | 155 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 187 | 156 | |
| 188 | 157 | PORT_START("IN0") |
| 189 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) | |
| 190 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) | |
| 191 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 ) | |
| 192 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) | |
| 193 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 ) | |
| 158 | KONAMI8_SYSTEM_10 | |
| 194 | 159 | PORT_DIPNAME( 0x20, 0x20, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION( "SW3:1" ) |
| 195 | 160 | PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) |
| 196 | 161 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| r4470 | r4471 | |
| 202 | 167 | PORT_DIPSETTING( 0x00, DEF_STR( Stereo ) ) |
| 203 | 168 | |
| 204 | 169 | PORT_START("IN1") |
| 205 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) | |
| 206 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) | |
| 207 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) | |
| 208 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) | |
| 209 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("P1 Fire") PORT_PLAYER(1) | |
| 210 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("P1 Bomb") PORT_PLAYER(1) | |
| 211 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) // P1 button 3 | |
| 170 | KONAMI8_B12(1) | |
| 212 | 171 | PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unused ) ) PORT_DIPLOCATION( "SW3:4" ) |
| 213 | 172 | PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) |
| 214 | 173 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 215 | 174 | |
| 216 | 175 | PORT_START("IN2") |
| 217 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) | |
| 218 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) | |
| 219 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) | |
| 220 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) | |
| 221 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("P2 Fire") PORT_PLAYER(2) | |
| 222 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("P2 Bomb") PORT_PLAYER(2) | |
| 223 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) // P2 button 3 | |
| 224 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) | |
| 176 | KONAMI8_B12_UNK(2) | |
| 225 | 177 | INPUT_PORTS_END |
| 226 | 178 | |
| 227 | 179 | static INPUT_PORTS_START( topgunbl ) |
| r4470 | r4471 | |
|---|---|---|
| 422 | 422 | AM_RANGE(ADDR_LOWROM, ADDR_LOWROM+0x3fff) AM_ROM \ |
| 423 | 423 | AM_RANGE(0x8000, 0xbfff) AM_ROM \ |
| 424 | 424 | AM_RANGE(0xf000, 0xffff) AM_ROM \ |
| 425 | AM_RANGE(ADDR_UNK1, ADDR_UNK1) AM_WRITE(SMH_NOP) /* ??? written (not always) at end of interrupt */ \ | |
| 426 | AM_RANGE(ADDR_UNK2, ADDR_UNK2) AM_WRITE(SMH_NOP) /* ??? written (not always) at end of interrupt */ \ | |
| 425 | AM_RANGE(ADDR_UNK1, ADDR_UNK1) AM_WRITENOP /* ??? written (not always) at end of interrupt */ \ | |
| 426 | AM_RANGE(ADDR_UNK2, ADDR_UNK2) AM_WRITENOP /* ??? written (not always) at end of interrupt */ \ | |
| 427 | 427 | ADDRESS_MAP_END |
| 428 | 428 | |
| 429 | 429 | #define UNUSED 0x4000 |
| r4470 | r4471 | |
| 452 | 452 | |
| 453 | 453 | /*******************************************************************/ |
| 454 | 454 | |
| 455 | // #define PRIORITY_EASINESS_TO_PLAY | |
| 456 | ||
| 455 | 457 | static INPUT_PORTS_START( hopmappy ) |
| 456 | 458 | PORT_START("IN0") |
| 457 | 459 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* button 3 player 2 */ |
| r4470 | r4471 | |
| 484 | 486 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL |
| 485 | 487 | |
| 486 | 488 | PORT_START("DSWA") |
| 487 | PORT_SERVICE( 0x80, IP_ACTIVE_LOW ) | |
| 488 | PORT_DIPNAME( 0x60, 0x60, DEF_STR( Coin_A ) ) | |
| 489 | PORT_SERVICE_DIPLOC( 0x80, IP_ACTIVE_LOW, "SWA:1" ) | |
| 490 | PORT_DIPNAME( 0x60, 0x60, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SWA:3,2") | |
| 489 | 491 | PORT_DIPSETTING( 0x00, DEF_STR( 3C_1C ) ) |
| 490 | 492 | PORT_DIPSETTING( 0x20, DEF_STR( 2C_1C ) ) |
| 491 | 493 | PORT_DIPSETTING( 0x60, DEF_STR( 1C_1C ) ) |
| 492 | 494 | PORT_DIPSETTING( 0x40, DEF_STR( 1C_2C ) ) |
| 493 | PORT_DIPNAME( 0x18, 0x18, DEF_STR( Lives ) ) | |
| 495 | PORT_DIPNAME( 0x18, 0x18, DEF_STR( Lives ) ) PORT_DIPLOCATION("SWA:5,4") | |
| 494 | 496 | PORT_DIPSETTING( 0x10, "1" ) |
| 495 | 497 | PORT_DIPSETTING( 0x08, "2" ) |
| 496 | 498 | PORT_DIPSETTING( 0x18, "3" ) |
| 497 | 499 | PORT_DIPSETTING( 0x00, "5" ) |
| 498 | PORT_DIPNAME( 0x04, 0x04, DEF_STR( Allow_Continue ) ) | |
| 500 | PORT_DIPNAME( 0x04, 0x04, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SWA:6") | |
| 499 | 501 | PORT_DIPSETTING( 0x00, DEF_STR( No ) ) |
| 500 | 502 | PORT_DIPSETTING( 0x04, DEF_STR( Yes ) ) |
| 501 | PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coin_B ) ) | |
| 503 | PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SWA:8,7") | |
| 502 | 504 | PORT_DIPSETTING( 0x00, DEF_STR( 3C_1C ) ) |
| 503 | 505 | PORT_DIPSETTING( 0x01, DEF_STR( 2C_1C ) ) |
| 504 | 506 | PORT_DIPSETTING( 0x03, DEF_STR( 1C_1C ) ) |
| 505 | 507 | PORT_DIPSETTING( 0x02, DEF_STR( 1C_2C ) ) |
| 506 | 508 | |
| 507 | 509 | PORT_START("DSWB") |
| 508 | PORT_DIPNAME( 0x80, 0x80, DEF_STR( Difficulty ) ) | |
| 510 | PORT_DIPNAME( 0x80, 0x80, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SWB:1") | |
| 509 | 511 | PORT_DIPSETTING( 0x80, DEF_STR( Easy ) ) |
| 510 | 512 | PORT_DIPSETTING( 0x00, DEF_STR( Hard ) ) |
| 511 | PORT_DIPNAME( 0x40, 0x40, DEF_STR( Demo_Sounds ) ) | |
| 513 | PORT_DIPNAME( 0x40, 0x40, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SWB:2") | |
| 512 | 514 | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 513 | 515 | PORT_DIPSETTING( 0x40, DEF_STR( On ) ) |
| 514 | PORT_DIPNAME( 0x20, 0x20, DEF_STR( Flip_Screen ) ) | |
| 516 | PORT_DIPNAME( 0x20, 0x20, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SWB:3") | |
| 515 | 517 | PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) |
| 516 | 518 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 517 | PORT_DIPNAME( 0x10, 0x10, "Level Select (Cheat)") | |
| 519 | PORT_DIPNAME( 0x10, 0x10, "Level Select (Cheat)") PORT_DIPLOCATION("SWB:4") | |
| 518 | 520 | PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) |
| 519 | 521 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 520 | PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) | |
| 521 | PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) | |
| 522 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) | |
| 523 | PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) | |
| 524 | PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) | |
| 525 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) | |
| 526 | PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) ) | |
| 527 | PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) | |
| 528 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) | |
| 529 | PORT_DIPNAME( 0x01, 0x01, DEF_STR( Cabinet ) ) | |
| 522 | PORT_DIPUNKNOWN_DIPLOC( 0x08, 0x08, "SWB:5" ) | |
| 523 | PORT_DIPUNKNOWN_DIPLOC( 0x04, 0x04, "SWB:6" ) | |
| 524 | PORT_DIPUNKNOWN_DIPLOC( 0x02, 0x02, "SWB:7" ) | |
| 525 | PORT_DIPNAME( 0x01, 0x01, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SWB:8") | |
| 530 | 526 | PORT_DIPSETTING( 0x01, DEF_STR( Upright ) ) |
| 531 | 527 | PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) ) |
| 532 | 528 | INPUT_PORTS_END |
| r4470 | r4471 | |
| 563 | 559 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL |
| 564 | 560 | |
| 565 | 561 | PORT_START("DSWA") |
| 566 | PORT_SERVICE( 0x80, IP_ACTIVE_LOW ) | |
| 567 | PORT_DIPNAME( 0x60, 0x60, DEF_STR( Coin_A ) ) | |
| 562 | PORT_SERVICE_DIPLOC( 0x80, IP_ACTIVE_LOW, "SWA:1" ) | |
| 563 | PORT_DIPNAME( 0x60, 0x60, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SWA:3,2") | |
| 568 | 564 | PORT_DIPSETTING( 0x00, DEF_STR( 3C_1C ) ) |
| 569 | 565 | PORT_DIPSETTING( 0x20, DEF_STR( 2C_1C ) ) |
| 570 | 566 | PORT_DIPSETTING( 0x60, DEF_STR( 1C_1C ) ) |
| 571 | 567 | PORT_DIPSETTING( 0x40, DEF_STR( 1C_2C ) ) |
| 572 | PORT_DIPNAME( 0x10, 0x10, DEF_STR( Demo_Sounds ) ) | |
| 568 | PORT_DIPNAME( 0x10, 0x10, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SWA:4") | |
| 573 | 569 | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 574 | 570 | PORT_DIPSETTING( 0x10, DEF_STR( On ) ) |
| 575 | PORT_DIPNAME( 0x08, 0x08, "Level Select (Cheat)" ) | |
| 571 | PORT_DIPNAME( 0x08, 0x08, "Level Select (Cheat)" ) PORT_DIPLOCATION("SWA:5") | |
| 576 | 572 | PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) |
| 577 | 573 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 578 | PORT_DIPNAME( 0x04, 0x04, "Freeze" ) | |
| 574 | PORT_DIPNAME( 0x04, 0x04, "Freeze" ) PORT_DIPLOCATION("SWA:6") | |
| 579 | 575 | PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) |
| 580 | 576 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 581 | PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coin_B ) ) | |
| 577 | PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SWA:8,7") | |
| 582 | 578 | PORT_DIPSETTING( 0x00, DEF_STR( 3C_1C ) ) |
| 583 | 579 | PORT_DIPSETTING( 0x01, DEF_STR( 2C_1C ) ) |
| 584 | 580 | PORT_DIPSETTING( 0x03, DEF_STR( 1C_1C ) ) |
| 585 | 581 | PORT_DIPSETTING( 0x02, DEF_STR( 1C_2C ) ) |
| 586 | 582 | |
| 587 | 583 | PORT_START("DSWB") |
| 588 | PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Lives ) ) | |
| 584 | PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Lives ) ) PORT_DIPLOCATION("SWB:2,1") | |
| 589 | 585 | PORT_DIPSETTING( 0x80, "1" ) |
| 590 | 586 | PORT_DIPSETTING( 0x40, "2" ) |
| 591 | 587 | PORT_DIPSETTING( 0xc0, "3" ) |
| 592 | 588 | PORT_DIPSETTING( 0x00, "5" ) |
| 593 | PORT_DIPNAME( 0x30, 0x30, DEF_STR( Bonus_Life ) ) | |
| 589 | PORT_DIPNAME( 0x30, 0x30, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SWB:4,3") | |
| 594 | 590 | PORT_DIPSETTING( 0x00, "20000 Every 80000" ) |
| 595 | 591 | PORT_DIPSETTING( 0x10, "20000 80000" ) |
| 596 | 592 | PORT_DIPSETTING( 0x20, "30000 Every 90000" ) |
| 597 | 593 | PORT_DIPSETTING( 0x30, "30000 90000" ) |
| 598 | PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) | |
| 599 | PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) | |
| 600 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) | |
| 601 | PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) | |
| 602 | PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) | |
| 603 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) | |
| 604 | PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) ) | |
| 605 | PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) | |
| 606 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) | |
| 607 | PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) ) | |
| 594 | PORT_DIPUNKNOWN_DIPLOC( 0x08, 0x08, "SWB:5" ) | |
| 595 | PORT_DIPUNKNOWN_DIPLOC( 0x04, 0x04, "SWB:6" ) | |
| 596 | PORT_DIPUNKNOWN_DIPLOC( 0x02, 0x02, "SWB:7" ) | |
| 597 | PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SWB:8") | |
| 608 | 598 | PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) |
| 609 | 599 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 610 | 600 | INPUT_PORTS_END |
| r4470 | r4471 | |
| 641 | 631 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_LEFT ) PORT_8WAY |
| 642 | 632 | |
| 643 | 633 | PORT_START("DSWA") |
| 644 | PORT_SERVICE( 0x80, IP_ACTIVE_LOW ) | |
| 645 | PORT_DIPNAME( 0x40, 0x40, DEF_STR( Demo_Sounds ) ) | |
| 634 | PORT_SERVICE_DIPLOC( 0x80, IP_ACTIVE_LOW, "SWA:1" ) | |
| 635 | PORT_DIPNAME( 0x40, 0x40, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SWA:2") | |
| 646 | 636 | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 647 | 637 | PORT_DIPSETTING( 0x40, DEF_STR( On ) ) |
| 648 | PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) | |
| 649 | PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) | |
| 650 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) | |
| 651 | PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) | |
| 652 | PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) | |
| 653 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) | |
| 654 | PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) | |
| 655 | PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) | |
| 656 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) | |
| 657 | PORT_DIPNAME( 0x07, 0x07, DEF_STR( Coin_A ) ) | |
| 638 | PORT_DIPUNKNOWN_DIPLOC( 0x20, 0x20, "SWA:3" ) | |
| 639 | PORT_DIPUNKNOWN_DIPLOC( 0x10, 0x10, "SWA:4" ) | |
| 640 | PORT_DIPUNKNOWN_DIPLOC( 0x08, 0x08, "SWA:5" ) | |
| 641 | PORT_DIPNAME( 0x07, 0x07, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SWA:8,7,6") | |
| 658 | 642 | PORT_DIPSETTING( 0x00, DEF_STR( 3C_1C ) ) |
| 659 | 643 | PORT_DIPSETTING( 0x02, DEF_STR( 2C_1C ) ) |
| 660 | 644 | PORT_DIPSETTING( 0x07, DEF_STR( 1C_1C ) ) |
| r4470 | r4471 | |
| 665 | 649 | PORT_DIPSETTING( 0x03, DEF_STR( 1C_6C ) ) |
| 666 | 650 | |
| 667 | 651 | PORT_START("DSWB") |
| 668 | PORT_DIPNAME( 0x80, 0x80, "Freeze" ) | |
| 652 | PORT_DIPNAME( 0x80, 0x80, "Freeze" ) PORT_DIPLOCATION("SWB:1") | |
| 669 | 653 | PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) |
| 670 | 654 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 671 | PORT_DIPNAME( 0x40, 0x00, DEF_STR( Flip_Screen ) ) | |
| 655 | PORT_DIPNAME( 0x40, 0x00, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SWB:2") | |
| 672 | 656 | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 673 | 657 | PORT_DIPSETTING( 0x40, DEF_STR( On ) ) |
| 674 | PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) | |
| 675 | PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) | |
| 676 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) | |
| 677 | PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) | |
| 678 | PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) | |
| 679 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) | |
| 680 | PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) | |
| 681 | PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) | |
| 682 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) | |
| 683 | PORT_DIPNAME( 0x07, 0x07, DEF_STR( Coin_B ) ) | |
| 658 | PORT_DIPUNKNOWN_DIPLOC( 0x20, 0x20, "SWB:3" ) | |
| 659 | PORT_DIPUNKNOWN_DIPLOC( 0x10, 0x10, "SWB:4" ) | |
| 660 | PORT_DIPUNKNOWN_DIPLOC( 0x08, 0x08, "SWB:5" ) | |
| 661 | PORT_DIPNAME( 0x07, 0x07, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SWB:8,7,6") | |
| 684 | 662 | PORT_DIPSETTING( 0x00, DEF_STR( 3C_1C ) ) |
| 685 | 663 | PORT_DIPSETTING( 0x02, DEF_STR( 2C_1C ) ) |
| 686 | 664 | PORT_DIPSETTING( 0x07, DEF_STR( 1C_1C ) ) |
| r4470 | r4471 | |
| 723 | 701 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) |
| 724 | 702 | |
| 725 | 703 | PORT_START("DSWA") |
| 726 | PORT_SERVICE( 0x80, IP_ACTIVE_LOW ) | |
| 727 | PORT_DIPNAME( 0x60, 0x60, DEF_STR( Coin_A ) ) | |
| 704 | PORT_SERVICE_DIPLOC( 0x80, IP_ACTIVE_LOW, "SWA:1" ) | |
| 705 | PORT_DIPNAME( 0x60, 0x60, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SWA:3,2") | |
| 728 | 706 | PORT_DIPSETTING( 0x00, DEF_STR( 3C_1C ) ) |
| 729 | 707 | PORT_DIPSETTING( 0x20, DEF_STR( 2C_1C ) ) |
| 730 | 708 | PORT_DIPSETTING( 0x60, DEF_STR( 1C_1C ) ) |
| 731 | 709 | PORT_DIPSETTING( 0x40, DEF_STR( 1C_2C ) ) |
| 732 | PORT_DIPNAME( 0x10, 0x10, DEF_STR( Demo_Sounds ) ) | |
| 710 | PORT_DIPNAME( 0x10, 0x10, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SWA:4") | |
| 733 | 711 | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 734 | 712 | PORT_DIPSETTING( 0x10, DEF_STR( On ) ) |
| 735 | PORT_DIPNAME( 0x08, 0x08, DEF_STR( Allow_Continue ) ) | |
| 713 | PORT_DIPNAME( 0x08, 0x08, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SWA:5") | |
| 736 | 714 | PORT_DIPSETTING( 0x00, DEF_STR( No ) ) |
| 737 | 715 | PORT_DIPSETTING( 0x08, DEF_STR( Yes ) ) |
| 738 | PORT_DIPNAME( 0x04, 0x04, "Freeze" ) | |
| 716 | PORT_DIPNAME( 0x04, 0x04, "Freeze" ) PORT_DIPLOCATION("SWA:6") | |
| 739 | 717 | PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) |
| 740 | 718 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 741 | PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coin_B ) ) | |
| 719 | PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SWA:8,7") | |
| 742 | 720 | PORT_DIPSETTING( 0x00, DEF_STR( 3C_1C ) ) |
| 743 | 721 | PORT_DIPSETTING( 0x01, DEF_STR( 2C_1C ) ) |
| 744 | 722 | PORT_DIPSETTING( 0x03, DEF_STR( 1C_1C ) ) |
| 745 | 723 | PORT_DIPSETTING( 0x02, DEF_STR( 1C_2C ) ) |
| 746 | 724 | |
| 747 | 725 | PORT_START("DSWB") |
| 748 | PORT_DIPNAME( 0xc0, 0xc0, "Candle" ) | |
| 726 | PORT_DIPNAME( 0xc0, 0xc0, "Candle" ) PORT_DIPLOCATION("SWB:2,1") | |
| 749 | 727 | PORT_DIPSETTING( 0x80, "40" ) |
| 750 | 728 | PORT_DIPSETTING( 0xc0, "50" ) |
| 751 | 729 | PORT_DIPSETTING( 0x40, "60" ) |
| 752 | 730 | PORT_DIPSETTING( 0x00, "70" ) |
| 753 | PORT_DIPNAME( 0x30, 0x30, DEF_STR( Difficulty ) ) | |
| 731 | PORT_DIPNAME( 0x30, 0x30, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SWB:4,3") | |
| 754 | 732 | PORT_DIPSETTING( 0x20, DEF_STR( Easy ) ) |
| 755 | 733 | PORT_DIPSETTING( 0x30, DEF_STR( Normal ) ) |
| 756 | 734 | PORT_DIPSETTING( 0x10, DEF_STR( Hard ) ) |
| 757 | 735 | PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) |
| 758 | PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) | |
| 759 | PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) | |
| 760 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) | |
| 761 | PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) | |
| 762 | PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) | |
| 763 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) | |
| 764 | PORT_DIPNAME( 0x02, 0x00, DEF_STR( Cabinet ) ) | |
| 736 | PORT_DIPUNKNOWN_DIPLOC( 0x08, 0x08, "SWB:5" ) | |
| 737 | PORT_DIPUNKNOWN_DIPLOC( 0x04, 0x04, "SWB:6" ) | |
| 738 | PORT_DIPNAME( 0x02, 0x00, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SWB:7") | |
| 765 | 739 | PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) |
| 766 | 740 | PORT_DIPSETTING( 0x02, DEF_STR( Cocktail ) ) |
| 767 | PORT_DIPNAME( 0x01, 0x00, DEF_STR( Flip_Screen ) ) | |
| 741 | PORT_DIPNAME( 0x01, 0x00, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SWB:8") | |
| 768 | 742 | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 769 | 743 | PORT_DIPSETTING( 0x01, DEF_STR( On ) ) |
| 770 | 744 | INPUT_PORTS_END |
| r4470 | r4471 | |
| 801 | 775 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_PLAYER(2) |
| 802 | 776 | |
| 803 | 777 | PORT_START("DSWA") |
| 804 | PORT_SERVICE( 0x80, IP_ACTIVE_LOW ) | |
| 805 | PORT_DIPNAME( 0x60, 0x60, DEF_STR( Coin_A ) ) | |
| 778 | PORT_SERVICE_DIPLOC( 0x80, IP_ACTIVE_LOW, "SWA:1" ) | |
| 779 | PORT_DIPNAME( 0x60, 0x60, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SWA:3,2") | |
| 806 | 780 | PORT_DIPSETTING( 0x00, DEF_STR( 3C_1C ) ) |
| 807 | 781 | PORT_DIPSETTING( 0x20, DEF_STR( 2C_1C ) ) |
| 808 | 782 | PORT_DIPSETTING( 0x60, DEF_STR( 1C_1C ) ) |
| 809 | 783 | PORT_DIPSETTING( 0x40, DEF_STR( 1C_2C ) ) |
| 810 | PORT_DIPNAME( 0x10, 0x10, DEF_STR( Demo_Sounds ) ) | |
| 784 | PORT_DIPNAME( 0x10, 0x10, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SWA:4") | |
| 811 | 785 | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 812 | 786 | PORT_DIPSETTING( 0x10, DEF_STR( On ) ) |
| 813 | PORT_DIPNAME( 0x08, 0x08, "Invulnerability" ) | |
| 787 | PORT_DIPNAME( 0x08, 0x08, "Invulnerability" ) PORT_DIPLOCATION("SWA:5") | |
| 814 | 788 | PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) |
| 815 | 789 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 816 | PORT_DIPNAME( 0x04, 0x04, "Freeze" ) | |
| 790 | PORT_DIPNAME( 0x04, 0x04, "Freeze" ) PORT_DIPLOCATION("SWA:6") | |
| 817 | 791 | PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) |
| 818 | 792 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 819 | PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coin_B ) ) | |
| 793 | PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SWA:8,7") | |
| 820 | 794 | PORT_DIPSETTING( 0x00, DEF_STR( 3C_1C ) ) |
| 821 | 795 | PORT_DIPSETTING( 0x01, DEF_STR( 2C_1C ) ) |
| 822 | 796 | PORT_DIPSETTING( 0x03, DEF_STR( 1C_1C ) ) |
| 823 | 797 | PORT_DIPSETTING( 0x02, DEF_STR( 1C_2C ) ) |
| 824 | 798 | |
| 825 | 799 | PORT_START("DSWB") |
| 826 | PORT_DIPNAME( 0x80, 0x80, DEF_STR( Lives ) ) | |
| 800 | PORT_DIPNAME( 0x80, 0x80, DEF_STR( Lives ) ) PORT_DIPLOCATION("SWB:1") | |
| 827 | 801 | PORT_DIPSETTING( 0x80, "3" ) |
| 828 | 802 | PORT_DIPSETTING( 0x00, "5" ) |
| 829 | PORT_DIPNAME( 0x40, 0x40, DEF_STR( Bonus_Life ) ) | |
| 803 | PORT_DIPNAME( 0x40, 0x40, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SWB:2") | |
| 830 | 804 | PORT_DIPSETTING( 0x40, "70k, 200k" ) |
| 831 | 805 | PORT_DIPSETTING( 0x00, "100k, 300k" ) |
| 832 | PORT_DIPNAME( 0x20, 0x00, "Timer value" ) | |
| 806 | PORT_DIPNAME( 0x20, 0x00, "Timer value" ) PORT_DIPLOCATION("SWB:3") | |
| 833 | 807 | PORT_DIPSETTING( 0x20, "120 secs" ) |
| 834 | 808 | PORT_DIPSETTING( 0x00, "150 secs" ) |
| 835 | PORT_DIPNAME( 0x10, 0x10, DEF_STR( Difficulty ) ) | |
| 809 | PORT_DIPNAME( 0x10, 0x10, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SWB:4") | |
| 836 | 810 | PORT_DIPSETTING( 0x10, DEF_STR( Normal ) ) |
| 837 | 811 | PORT_DIPSETTING( 0x00, DEF_STR( Easy ) ) |
| 838 | PORT_DIPNAME( 0x08, 0x00, "Level Select (Cheat)" ) | |
| 812 | PORT_DIPNAME( 0x08, 0x00, "Level Select (Cheat)" ) PORT_DIPLOCATION("SWB:5") | |
| 839 | 813 | PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) |
| 840 | 814 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 841 | PORT_DIPNAME( 0x06, 0x06, DEF_STR( Cabinet ) ) | |
| 815 | PORT_DIPNAME( 0x06, 0x06, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SWB:7,6") | |
| 842 | 816 | PORT_DIPSETTING( 0x06, "Upright 1 Player" ) |
| 843 | /* PORT_DIPSETTING( 0x02, "Upright 1 Player" ) */ | |
| 817 | #ifndef PRIORITY_EASINESS_TO_PLAY | |
| 818 | PORT_DIPSETTING( 0x02, "Upright 1 Player" ) // duplicated setting | |
| 819 | #endif | |
| 844 | 820 | PORT_DIPSETTING( 0x04, "Upright 2 Players" ) |
| 845 | 821 | PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) ) |
| 846 | PORT_DIPNAME( 0x01, 0x01, DEF_STR( Continues ) ) | |
| 822 | PORT_DIPNAME( 0x01, 0x01, DEF_STR( Continues ) ) PORT_DIPLOCATION("SWB:8") | |
| 847 | 823 | PORT_DIPSETTING( 0x00, "3" ) |
| 848 | 824 | PORT_DIPSETTING( 0x01, "6" ) |
| 849 | 825 | INPUT_PORTS_END |
| r4470 | r4471 | |
| 880 | 856 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_PLAYER(2) |
| 881 | 857 | |
| 882 | 858 | PORT_START("DSWA") |
| 883 | PORT_SERVICE( 0x80, IP_ACTIVE_LOW ) | |
| 884 | PORT_DIPNAME( 0x60, 0x60, DEF_STR( Coin_A ) ) | |
| 859 | PORT_SERVICE_DIPLOC( 0x80, IP_ACTIVE_LOW, "SWA:1" ) | |
| 860 | PORT_DIPNAME( 0x60, 0x60, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SWA:3,2") | |
| 885 | 861 | PORT_DIPSETTING( 0x00, DEF_STR( 3C_1C ) ) |
| 886 | 862 | PORT_DIPSETTING( 0x20, DEF_STR( 2C_1C ) ) |
| 887 | 863 | PORT_DIPSETTING( 0x60, DEF_STR( 1C_1C ) ) |
| 888 | 864 | PORT_DIPSETTING( 0x40, DEF_STR( 1C_2C ) ) |
| 889 | PORT_DIPNAME( 0x10, 0x10, DEF_STR( Demo_Sounds ) ) | |
| 865 | PORT_DIPNAME( 0x10, 0x10, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SWA:4") | |
| 890 | 866 | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 891 | 867 | PORT_DIPSETTING( 0x10, DEF_STR( On ) ) |
| 892 | PORT_DIPNAME( 0x08, 0x08, "Invulnerability" ) | |
| 868 | PORT_DIPNAME( 0x08, 0x08, "Invulnerability" ) PORT_DIPLOCATION("SWA:5") | |
| 893 | 869 | PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) |
| 894 | 870 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 895 | PORT_DIPNAME( 0x04, 0x04, "Freeze" ) | |
| 871 | PORT_DIPNAME( 0x04, 0x04, "Freeze" ) PORT_DIPLOCATION("SWA:6") | |
| 896 | 872 | PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) |
| 897 | 873 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 898 | PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coin_B ) ) | |
| 874 | PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SWA:8,7") | |
| 899 | 875 | PORT_DIPSETTING( 0x00, DEF_STR( 3C_1C ) ) |
| 900 | 876 | PORT_DIPSETTING( 0x01, DEF_STR( 2C_1C ) ) |
| 901 | 877 | PORT_DIPSETTING( 0x03, DEF_STR( 1C_1C ) ) |
| 902 | 878 | PORT_DIPSETTING( 0x02, DEF_STR( 1C_2C ) ) |
| 903 | 879 | |
| 904 | 880 | PORT_START("DSWB") |
| 905 | PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Lives ) ) | |
| 881 | PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Lives ) ) PORT_DIPLOCATION("SWB:2,1") | |
| 906 | 882 | PORT_DIPSETTING( 0x80, "1" ) |
| 907 | 883 | PORT_DIPSETTING( 0x40, "2" ) |
| 908 | 884 | PORT_DIPSETTING( 0xc0, "3" ) |
| 909 | 885 | PORT_DIPSETTING( 0x00, "5" ) |
| 910 | PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) | |
| 911 | PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) | |
| 912 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) | |
| 913 | PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) | |
| 914 | PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) | |
| 915 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) | |
| 916 | PORT_DIPNAME( 0x08, 0x08, "Level Select (Cheat)" ) | |
| 886 | PORT_DIPUNKNOWN_DIPLOC( 0x20, 0x20, "SWB:3" ) | |
| 887 | PORT_DIPUNKNOWN_DIPLOC( 0x10, 0x10, "SWB:4" ) | |
| 888 | PORT_DIPNAME( 0x08, 0x08, "Level Select (Cheat)" ) PORT_DIPLOCATION("SWB:5") | |
| 917 | 889 | PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) |
| 918 | 890 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 919 | PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) | |
| 920 | PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) | |
| 921 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) | |
| 922 | PORT_DIPNAME( 0x02, 0x00, DEF_STR( Cabinet ) ) | |
| 891 | PORT_DIPUNKNOWN_DIPLOC( 0x04, 0x04, "SWB:6" ) | |
| 892 | PORT_DIPNAME( 0x02, 0x00, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SWB:7") | |
| 923 | 893 | PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) |
| 924 | 894 | PORT_DIPSETTING( 0x02, DEF_STR( Cocktail ) ) |
| 925 | PORT_DIPNAME( 0x01, 0x00, DEF_STR( Flip_Screen ) ) | |
| 895 | PORT_DIPNAME( 0x01, 0x00, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SWB:8") | |
| 926 | 896 | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 927 | 897 | PORT_DIPSETTING( 0x01, DEF_STR( On ) ) |
| 928 | 898 | INPUT_PORTS_END |
| r4470 | r4471 | |
| 959 | 929 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_PLAYER(2) |
| 960 | 930 | |
| 961 | 931 | PORT_START("DSWA") |
| 962 | PORT_SERVICE( 0x80, IP_ACTIVE_LOW ) | |
| 963 | PORT_DIPNAME( 0x60, 0x60, DEF_STR( Coin_A ) ) | |
| 932 | PORT_SERVICE_DIPLOC( 0x80, IP_ACTIVE_LOW, "SWA:1" ) | |
| 933 | PORT_DIPNAME( 0x60, 0x60, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SWA:3,2") | |
| 964 | 934 | PORT_DIPSETTING( 0x00, DEF_STR( 3C_1C ) ) |
| 965 | 935 | PORT_DIPSETTING( 0x20, DEF_STR( 2C_1C ) ) |
| 966 | 936 | PORT_DIPSETTING( 0x60, DEF_STR( 1C_1C ) ) |
| 967 | 937 | PORT_DIPSETTING( 0x40, DEF_STR( 1C_2C ) ) |
| 968 | PORT_DIPNAME( 0x10, 0x10, DEF_STR( Demo_Sounds ) ) | |
| 938 | PORT_DIPNAME( 0x10, 0x10, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SWA:4") | |
| 969 | 939 | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 970 | 940 | PORT_DIPSETTING( 0x10, DEF_STR( On ) ) |
| 971 | PORT_DIPNAME( 0x08, 0x00, DEF_STR( Level_Select ) ) | |
| 941 | PORT_DIPNAME( 0x08, 0x00, DEF_STR( Level_Select ) ) PORT_DIPLOCATION("SWA:5") | |
| 972 | 942 | PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) |
| 973 | 943 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 974 | PORT_DIPNAME( 0x04, 0x04, "Freeze" ) | |
| 944 | PORT_DIPNAME( 0x04, 0x04, "Freeze" ) PORT_DIPLOCATION("SWA:6") | |
| 975 | 945 | PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) |
| 976 | 946 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 977 | PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coin_B ) ) | |
| 947 | PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SWA:8,7") | |
| 978 | 948 | PORT_DIPSETTING( 0x00, DEF_STR( 3C_1C ) ) |
| 979 | 949 | PORT_DIPSETTING( 0x01, DEF_STR( 2C_1C ) ) |
| 980 | 950 | PORT_DIPSETTING( 0x03, DEF_STR( 1C_1C ) ) |
| 981 | 951 | PORT_DIPSETTING( 0x02, DEF_STR( 1C_2C ) ) |
| 982 | 952 | |
| 983 | 953 | PORT_START("DSWB") |
| 984 | PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) | |
| 985 | PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) | |
| 986 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) | |
| 987 | PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) | |
| 988 | PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) | |
| 989 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) | |
| 990 | PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) | |
| 991 | PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) | |
| 992 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) | |
| 993 | PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) | |
| 994 | PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) | |
| 995 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) | |
| 996 | PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) | |
| 997 | PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) | |
| 998 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) | |
| 999 | PORT_DIPNAME( 0x06, 0x02, DEF_STR( Cabinet ) ) | |
| 954 | PORT_DIPUNKNOWN_DIPLOC( 0x80, 0x80, "SWB:1" ) | |
| 955 | PORT_DIPUNKNOWN_DIPLOC( 0x40, 0x40, "SWB:2" ) | |
| 956 | PORT_DIPUNKNOWN_DIPLOC( 0x20, 0x20, "SWB:3" ) | |
| 957 | PORT_DIPUNKNOWN_DIPLOC( 0x10, 0x10, "SWB:4" ) | |
| 958 | PORT_DIPUNKNOWN_DIPLOC( 0x08, 0x08, "SWB:5" ) | |
| 959 | PORT_DIPNAME( 0x06, 0x02, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SWB:7,6") | |
| 1000 | 960 | PORT_DIPSETTING( 0x02, "Upright 1 Player" ) |
| 1001 | 961 | PORT_DIPSETTING( 0x04, "Upright 2 Players" ) |
| 1002 | 962 | PORT_DIPSETTING( 0x06, DEF_STR( Cocktail ) ) |
| 1003 | /* PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) ) */ | |
| 1004 | PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) ) | |
| 963 | #ifndef PRIORITY_EASINESS_TO_PLAY | |
| 964 | PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) ) // duplicated setting | |
| 965 | #endif | |
| 966 | PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SWB:8") | |
| 1005 | 967 | PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) |
| 1006 | 968 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 1007 | 969 | INPUT_PORTS_END |
| r4470 | r4471 | |
|---|---|---|
| 2116 | 2116 | GAME( 1981, lnc, 0, lnc, lnc, lnc, ROT270, "Data East Corporation", "Lock'n'Chase", 0 ) |
| 2117 | 2117 | GAME( 1982, protennb, 0, disco, disco, protennb, ROT270, "bootleg", "Tennis (bootleg of Pro Tennis)", 0 ) |
| 2118 | 2118 | GAME( 1982, wtennis, 0, wtennis, wtennis, wtennis, ROT270, "bootleg", "World Tennis", 0 ) |
| 2119 | GAME( 1982, mmonkey, 0, mmonkey, mmonkey, lnc, ROT270, "Technos + Roller Tron", "Minky Monkey", 0 ) | |
| 2119 | GAME( 1982, mmonkey, 0, mmonkey, mmonkey, lnc, ROT270, "Technos Japan + Roller Tron", "Minky Monkey", 0 ) | |
| 2120 | 2120 | GAME( 1982, brubber, 0, bnj, bnj, bnj, ROT270, "Data East", "Burnin' Rubber", 0 ) |
| 2121 | 2121 | GAME( 1982, bnj, brubber, bnj, bnj, bnj, ROT270, "Data East USA (Bally Midway license)", "Bump 'n' Jump", 0 ) |
| 2122 | 2122 | GAME( 1982, caractn, brubber, bnj, bnj, bnj, ROT270, "bootleg", "Car Action", 0 ) |
| r4470 | r4471 | |
|---|---|---|
| 351 | 351 | AM_RANGE(0x280000, 0x280fff) AM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE(&paletteram16) |
| 352 | 352 | AM_RANGE(0x300000, 0x30003f) AM_WRITE(K056832_word_w) /* video reg */ |
| 353 | 353 | AM_RANGE(0x320000, 0x32001f) AM_WRITE(K053252_word_w) /* ccu */ |
| 354 | AM_RANGE(0x350000, 0x350001) AM_WRITE(SMH_NOP) /* unknown */ | |
| 355 | AM_RANGE(0x360000, 0x360001) AM_WRITE(SMH_NOP) /* unknown */ | |
| 354 | AM_RANGE(0x350000, 0x350001) AM_WRITENOP /* unknown */ | |
| 355 | AM_RANGE(0x360000, 0x360001) AM_WRITENOP /* unknown */ | |
| 356 | 356 | AM_RANGE(0x370000, 0x370001) AM_WRITE(gp_control_w) /* control reg */ |
| 357 | AM_RANGE(0x380000, 0x380001) AM_WRITE | |
| 357 | AM_RANGE(0x380000, 0x380001) AM_WRITE | |
| 358 | 358 | AM_RANGE(0x800000, 0x80045f) AM_DEVWRITE8("konami", k054539_w, 0x00ff) /* sound regs */ |
| 359 | 359 | AM_RANGE(0x880000, 0x881fff) AM_WRITE(K056832_ram_word_w) /* vram */ |
| 360 | 360 | AM_RANGE(0x882000, 0x883fff) AM_WRITE(K056832_ram_word_w) /* vram (mirror) */ |
| r4470 | r4471 | |
| 388 | 388 | AM_RANGE(0x280000, 0x280fff) AM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE(&paletteram16) |
| 389 | 389 | AM_RANGE(0x300000, 0x30003f) AM_WRITE(K056832_word_w) /* video reg */ |
| 390 | 390 | AM_RANGE(0x320000, 0x32001f) AM_WRITE(K053252_word_w) /* ccu */ |
| 391 | AM_RANGE(0x350000, 0x350001) AM_WRITE(SMH_NOP) /* unknown */ | |
| 392 | AM_RANGE(0x360000, 0x360001) AM_WRITE(SMH_NOP) /* unknown */ | |
| 391 | AM_RANGE(0x350000, 0x350001) AM_WRITENOP /* unknown */ | |
| 392 | AM_RANGE(0x360000, 0x360001) AM_WRITENOP /* unknown */ | |
| 393 | 393 | AM_RANGE(0x370000, 0x370001) AM_WRITE(gp2_control_w) /* control reg */ |
| 394 | AM_RANGE(0x380000, 0x380001) AM_WRITE | |
| 394 | AM_RANGE(0x380000, 0x380001) AM_WRITE | |
| 395 | 395 | AM_RANGE(0x800000, 0x80045f) AM_DEVWRITE8("konami", k054539_w, 0x00ff) /* sound regs */ |
| 396 | 396 | AM_RANGE(0x880000, 0x881fff) AM_WRITE(gp2_vram_w) /* vram */ |
| 397 | 397 | AM_RANGE(0x89f000, 0x8a0fff) AM_WRITE(gp2_vram_mirror_w) /* vram (mirror) */ |
| r4470 | r4471 | |
|---|---|---|
| 270 | 270 | AM_RANGE(0x8001, 0x8001) AM_DEVREAD("ay1", ay8910_r) |
| 271 | 271 | AM_RANGE(0x8002, 0x8003) AM_DEVWRITE("ay2", ay8910_address_data_w) |
| 272 | 272 | AM_RANGE(0x8003, 0x8003) AM_DEVREAD("ay2", ay8910_r) |
| 273 | AM_RANGE(0x9000, 0x9000) AM_READ | |
| 273 | AM_RANGE(0x9000, 0x9000) AM_READ | |
| 274 | 274 | AM_RANGE(0xa000, 0xa7ff) AM_RAM AM_SHARE(1) |
| 275 | AM_RANGE(0xc000, 0xc000) AM_READ(SMH_NOP) /* unknown */ | |
| 276 | AM_RANGE(0xc800, 0xc800) AM_READ(SMH_NOP) /* unknown */ | |
| 277 | AM_RANGE(0xd000, 0xd000) AM_READ(SMH_NOP) /* unknown */ | |
| 275 | AM_RANGE(0xc000, 0xc000) AM_READNOP /* unknown */ | |
| 276 | AM_RANGE(0xc800, 0xc800) AM_READNOP /* unknown */ | |
| 277 | AM_RANGE(0xd000, 0xd000) AM_READNOP /* unknown */ | |
| 278 | 278 | AM_RANGE(0xe000, 0xe000) AM_WRITE(nova2001_scroll_x_w) |
| 279 | 279 | AM_RANGE(0xe001, 0xe001) AM_WRITE(nova2001_scroll_y_w) |
| 280 | 280 | AM_RANGE(0xe002, 0xe002) AM_WRITE(pkunwar_flipscreen_w) |
| 281 | 281 | ADDRESS_MAP_END |
| 282 | 282 | |
| 283 | 283 | static ADDRESS_MAP_START( raiders5_io, ADDRESS_SPACE_IO, 8 ) |
| 284 | AM_RANGE(0x00, 0x00) AM_READ | |
| 284 | AM_RANGE(0x00, 0x00) AM_READ | |
| 285 | 285 | ADDRESS_MAP_END |
| 286 | 286 | |
| 287 | 287 |
| r4470 | r4471 | |
|---|---|---|
| 177 | 177 | AM_RANGE(0xa802, 0xa802) AM_WRITE(galaxold_flip_screen_x_w) |
| 178 | 178 | AM_RANGE(0xa804, 0xa804) AM_WRITE(galaxold_nmi_enable_w) |
| 179 | 179 | AM_RANGE(0xa806, 0xa806) AM_WRITE(galaxold_flip_screen_y_w) |
| 180 | AM_RANGE(0xa80e, 0xa80e) AM_WRITE | |
| 180 | AM_RANGE(0xa80e, 0xa80e) AM_WRITE | |
| 181 | 181 | AM_RANGE(0xd000, 0xd01f) AM_DEVWRITE("ppi8255_0", hustler_ppi8255_w) |
| 182 | 182 | AM_RANGE(0xe000, 0xe01f) AM_DEVWRITE("ppi8255_1", hustler_ppi8255_w) |
| 183 | 183 | ADDRESS_MAP_END |
| r4470 | r4471 | |
| 200 | 200 | AM_RANGE(0x9060, 0x907f) AM_WRITE(SMH_RAM) AM_BASE(&galaxold_bulletsram) AM_SIZE(&galaxold_bulletsram_size) |
| 201 | 201 | AM_RANGE(0x9080, 0x90ff) AM_WRITE(SMH_RAM) |
| 202 | 202 | AM_RANGE(0xa801, 0xa801) AM_WRITE(galaxold_nmi_enable_w) |
| 203 | AM_RANGE(0xa802, 0xa802) AM_WRITE | |
| 203 | AM_RANGE(0xa802, 0xa802) AM_WRITE | |
| 204 | 204 | AM_RANGE(0xa806, 0xa806) AM_WRITE(galaxold_flip_screen_y_w) |
| 205 | 205 | AM_RANGE(0xa807, 0xa807) AM_WRITE(galaxold_flip_screen_x_w) |
| 206 | 206 | AM_RANGE(0xc100, 0xc103) AM_DEVWRITE("ppi8255_0", ppi8255_w) |
| r4470 | r4471 | |
| 391 | 391 | static ADDRESS_MAP_START( scobra_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 ) |
| 392 | 392 | AM_RANGE(0x0000, 0x2fff) AM_WRITE(SMH_ROM) |
| 393 | 393 | AM_RANGE(0x8000, 0x8fff) AM_WRITE(scobra_soundram_w) |
| 394 | AM_RANGE(0x8000, 0x83ff) AM_WRITE | |
| 394 | AM_RANGE(0x8000, 0x83ff) AM_WRITE | |
| 395 | 395 | AM_RANGE(0x9000, 0x9fff) AM_WRITE(scramble_filter_w) |
| 396 | 396 | ADDRESS_MAP_END |
| 397 | 397 | |
| r4470 | r4471 | |
| 400 | 400 | AM_RANGE(0x0000, 0x1fff) AM_WRITE(SMH_ROM) |
| 401 | 401 | AM_RANGE(0x6000, 0x6fff) AM_WRITE(frogger_filter_w) |
| 402 | 402 | AM_RANGE(0x8000, 0x83ff) AM_WRITE(SMH_RAM) |
| 403 | AM_RANGE(0x8000, 0x83ff) AM_WRITE | |
| 403 | AM_RANGE(0x8000, 0x83ff) AM_WRITE | |
| 404 | 404 | ADDRESS_MAP_END |
| 405 | 405 | |
| 406 | 406 |
| r4470 | r4471 | |
|---|---|---|
| 251 | 251 | AM_RANGE(0xf006, 0xf006) AM_WRITE(wiz_flipx_w) |
| 252 | 252 | AM_RANGE(0xf007, 0xf007) AM_WRITE(wiz_flipy_w) |
| 253 | 253 | AM_RANGE(0xf008, 0xf008) AM_READ_PORT("DSW1") |
| 254 | AM_RANGE(0xf008, 0xf00f) AM_WRITE | |
| 254 | AM_RANGE(0xf008, 0xf00f) AM_WRITE | |
| 255 | 255 | AM_RANGE(0xf010, 0xf010) AM_READ_PORT("IN0") |
| 256 | 256 | AM_RANGE(0xf018, 0xf018) AM_READ_PORT("IN1") |
| 257 | 257 | AM_RANGE(0xf800, 0xf800) AM_READ(watchdog_reset_r) |
| r4470 | r4471 | |
|---|---|---|
| 177 | 177 | AM_RANGE(0x5000, 0x5000) AM_MIRROR(0x0fff) AM_READ_PORT("IN0") |
| 178 | 178 | AM_RANGE(0x6000, 0x6000) AM_MIRROR(0x0fff) AM_READ_PORT("IN1") |
| 179 | 179 | AM_RANGE(0x6000, 0x6001) AM_MIRROR(0x0f08) AM_WRITE(stactics_coin_lockout_w) |
| 180 | AM_RANGE(0x6002, 0x6005) AM_MIRROR(0x0f08) AM_WRITE | |
| 180 | AM_RANGE(0x6002, 0x6005) AM_MIRROR(0x0f08) AM_WRITE | |
| 181 | 181 | AM_RANGE(0x6006, 0x6007) AM_MIRROR(0x0f08) AM_WRITE(SMH_RAM) AM_BASE_MEMBER(stactics_state, palette) |
| 182 | 182 | /* AM_RANGE(0x6010, 0x6017) AM_MIRROR(0x0f08) AM_WRITE(stactics_sound_w) */ |
| 183 | 183 | AM_RANGE(0x6016, 0x6016) AM_MIRROR(0x0f08) AM_WRITE(SMH_RAM) AM_BASE_MEMBER(stactics_state, motor_on) /* Note: This overlaps rocket sound */ |
| r4470 | r4471 | |
| 186 | 186 | AM_RANGE(0x6040, 0x6040) AM_MIRROR(0x0f0f) AM_WRITE(stactics_shot_trigger_w) |
| 187 | 187 | AM_RANGE(0x6050, 0x6050) AM_MIRROR(0x0f0f) AM_WRITE(stactics_shot_flag_clear_w) |
| 188 | 188 | AM_RANGE(0x6060, 0x606f) AM_MIRROR(0x0f00) AM_WRITE(SMH_RAM) AM_BASE_MEMBER(stactics_state, display_buffer) |
| 189 | AM_RANGE(0x6070, 0x609f) AM_MIRROR(0x0f00) AM_WRITE | |
| 189 | AM_RANGE(0x6070, 0x609f) AM_MIRROR(0x0f00) AM_WRITE | |
| 190 | 190 | /* AM_RANGE(0x60a0, 0x60ef) AM_MIRROR(0x0f00) AM_WRITE(stactics_sound2_w) */ |
| 191 | AM_RANGE(0x60f0, 0x60ff) AM_MIRROR(0x0f00) AM_WRITE | |
| 191 | AM_RANGE(0x60f0, 0x60ff) AM_MIRROR(0x0f00) AM_WRITE | |
| 192 | 192 | AM_RANGE(0x7000, 0x7000) AM_MIRROR(0x0fff) AM_READ_PORT("IN2") |
| 193 | 193 | AM_RANGE(0x8000, 0x8000) AM_MIRROR(0x0fff) AM_READ_PORT("IN3") |
| 194 | 194 | AM_RANGE(0x8000, 0x87ff) AM_MIRROR(0x0800) AM_WRITE(stactics_scroll_ram_w) |
| r4470 | r4471 | |
|---|---|---|
| 137 | 137 | AM_RANGE(0x2000, 0x2000) AM_MIRROR(0x0ffc) AM_READ_PORT("IN0") |
| 138 | 138 | AM_RANGE(0x2001, 0x2001) AM_MIRROR(0x0ffc) AM_READ_PORT("IN1") |
| 139 | 139 | AM_RANGE(0x2002, 0x2002) AM_MIRROR(0x0ffc) AM_READ_PORT("PADDLE") |
| 140 | AM_RANGE(0x2003, 0x2003) AM_MIRROR(0x0ffc) AM_READ | |
| 140 | AM_RANGE(0x2003, 0x2003) AM_MIRROR(0x0ffc) AM_READ | |
| 141 | 141 | AM_RANGE(0x3000, 0x3000) AM_MIRROR(0x0fff) AM_WRITE(watchdog_reset_w) |
| 142 | 142 | AM_RANGE(0x4000, 0x4000) AM_MIRROR(0x0ff8) AM_WRITE(avalance_credit_1_lamp_w) |
| 143 | 143 | AM_RANGE(0x4001, 0x4001) AM_MIRROR(0x0ff8) AM_DEVWRITE("discrete", avalnche_attract_enable_w) |
| r4470 | r4471 | |
|---|---|---|
| 62 | 62 | AM_RANGE(0xa0000, 0xa000d) AM_WRITE(seibu_main_word_w) |
| 63 | 63 | AM_RANGE(0xc001c, 0xc001d) AM_WRITE(dcon_control_w) |
| 64 | 64 | AM_RANGE(0xc0020, 0xc002f) AM_WRITE(SMH_RAM) AM_BASE(&dcon_scroll_ram) |
| 65 | AM_RANGE(0xc0080, 0xc0081) AM_WRITE(SMH_NOP) | |
| 66 | AM_RANGE(0xc00c0, 0xc00c1) AM_WRITE(SMH_NOP) | |
| 65 | AM_RANGE(0xc0080, 0xc0081) AM_WRITENOP | |
| 66 | AM_RANGE(0xc00c0, 0xc00c1) AM_WRITENOP | |
| 67 | 67 | ADDRESS_MAP_END |
| 68 | 68 | |
| 69 | 69 | /******************************************************************************/ |
| r4470 | r4471 | |
|---|---|---|
| 343 | 343 | AM_RANGE(0x0e0018, 0x0e0019) AM_READ(sound_status_r) |
| 344 | 344 | AM_RANGE(0x0e8000, 0x0e8001) AM_READWRITE(kludge_r, gun_select_w) |
| 345 | 345 | AM_RANGE(0x0e8002, 0x0e8003) AM_READ(control_3_r) |
| 346 | AM_RANGE(0x0f0008, 0x0f0009) AM_WRITE | |
| 346 | AM_RANGE(0x0f0008, 0x0f0009) AM_WRITE | |
| 347 | 347 | AM_RANGE(0x0f0018, 0x0f0019) AM_WRITE(sound_cpu_w) |
| 348 | 348 | AM_RANGE(0x0f8000, 0x0f80ff) AM_READWRITE(eprom_r, SMH_RAM) AM_BASE(&eprom_data) /* Eeprom */ |
| 349 | 349 | ADDRESS_MAP_END |
| r4470 | r4471 | |
| 364 | 364 | AM_RANGE(0x0e0000, 0x0e0001) AM_READ_PORT("IN0") |
| 365 | 365 | AM_RANGE(0x0e0002, 0x0e0003) AM_READ_PORT("DSW1") |
| 366 | 366 | AM_RANGE(0x0e0004, 0x0e0007) AM_READ(mechatt_gun_r) |
| 367 | AM_RANGE(0x0e4002, 0x0e4003) AM_WRITE | |
| 367 | AM_RANGE(0x0e4002, 0x0e4003) AM_WRITE | |
| 368 | 368 | AM_RANGE(0x0e8000, 0x0e8001) AM_READWRITE(sound_status_r, sound_cpu_w) |
| 369 | 369 | ADDRESS_MAP_END |
| 370 | 370 | |
| r4470 | r4471 | |
| 379 | 379 | static ADDRESS_MAP_START( sound_portmap, ADDRESS_SPACE_IO, 8 ) |
| 380 | 380 | ADDRESS_MAP_GLOBAL_MASK(0xff) |
| 381 | 381 | AM_RANGE(0x00, 0x03) AM_DEVREADWRITE("ym", ym2610_r, ym2610_w) |
| 382 | AM_RANGE(0xc0, 0xc1) AM_WRITE | |
| 382 | AM_RANGE(0xc0, 0xc1) AM_WRITE | |
| 383 | 383 | ADDRESS_MAP_END |
| 384 | 384 | |
| 385 | 385 | static ADDRESS_MAP_START( sounda_portmap, ADDRESS_SPACE_IO, 8 ) |
| 386 | 386 | ADDRESS_MAP_GLOBAL_MASK(0xff) |
| 387 | 387 | AM_RANGE(0x00, 0x03) AM_DEVREADWRITE("ym", ym2608_r, ym2608_w) |
| 388 | AM_RANGE(0xc0, 0xc1) AM_WRITE | |
| 388 | AM_RANGE(0xc0, 0xc1) AM_WRITE | |
| 389 | 389 | ADDRESS_MAP_END |
| 390 | 390 | |
| 391 | 391 | /******************************************************************************/ |
| 392 | 392 | |
| 393 | 393 | static INPUT_PORTS_START( bbusters ) |
| 394 | PORT_START("IN0") | |
| 394 | PORT_START("IN0") | |
| 395 | 395 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) |
| 396 | 396 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) PORT_NAME("P1 Fire") // "Fire" |
| 397 | 397 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) PORT_NAME("P1 Grenade") // "Grenade" |
| r4470 | r4471 | |
| 401 | 401 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) PORT_NAME("P2 Grenade") // "Grenade" |
| 402 | 402 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 403 | 403 | |
| 404 | PORT_START("IN1") | |
| 404 | PORT_START("IN1") | |
| 405 | 405 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START3 ) |
| 406 | 406 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3) PORT_NAME("P3 Fire") // "Fire" |
| 407 | 407 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3) PORT_NAME("P3 Grenade") // "Grenade" |
| r4470 | r4471 | |
| 421 | 421 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SERVICE1 ) // See notes |
| 422 | 422 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) |
| 423 | 423 | |
| 424 | PORT_START("DSW1") | |
| 424 | PORT_START("DSW1") | |
| 425 | 425 | PORT_DIPNAME( 0x01, 0x01, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SW1:1") |
| 426 | 426 | PORT_DIPSETTING( 0x00, DEF_STR( No ) ) |
| 427 | 427 | PORT_DIPSETTING( 0x01, DEF_STR( Yes ) ) |
| r4470 | r4471 | |
| 457 | 457 | PORT_DIPSETTING( 0x80, "Common" ) |
| 458 | 458 | PORT_DIPSETTING( 0x00, "Individual" ) |
| 459 | 459 | |
| 460 | PORT_START("DSW2") | |
| 460 | PORT_START("DSW2") | |
| 461 | 461 | PORT_DIPNAME( 0x03, 0x03, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW2:1,2") |
| 462 | 462 | PORT_DIPSETTING( 0x02, DEF_STR( Easy ) ) |
| 463 | 463 | PORT_DIPSETTING( 0x03, DEF_STR( Normal ) ) |
| r4470 | r4471 | |
| 508 | 508 | PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) PORT_NAME("P2 Grenade") // "Grenade" |
| 509 | 509 | PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 510 | 510 | |
| 511 | PORT_START("DSW1") | |
| 511 | PORT_START("DSW1") | |
| 512 | 512 | PORT_DIPNAME( 0x0001, 0x0001, "Coin Slots" ) PORT_DIPLOCATION("SW1:1") // Listed as "Unused" (manual from different revision/region?), See notes |
| 513 | 513 | PORT_DIPSETTING( 0x0001, "Common" ) |
| 514 | 514 | PORT_DIPSETTING( 0x0000, "Individual" ) |
| r4470 | r4471 | |
| 556 | 556 | PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_Y ) PORT_CROSSHAIR(Y, 1.0, 0.0, 0) PORT_SENSITIVITY(25) PORT_KEYDELTA(10) PORT_PLAYER(2) |
| 557 | 557 | INPUT_PORTS_END |
| 558 | 558 | |
| 559 | static INPUT_PORTS_START( mechattu ) | |
| 560 | PORT_INCLUDE( mechatt ) | |
| 561 | ||
| 562 | PORT_MODIFY("DSW1") | |
| 563 | PORT_DIPUNUSED_DIPLOC( 0x0001, 0x0001, "SW1:1" ) | |
| 564 | PORT_DIPNAME( 0x0030, 0x0030, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW1:5,6") | |
| 565 | PORT_DIPSETTING( 0x0000, DEF_STR( Free_Play ) ) | |
| 566 | PORT_DIPSETTING( 0x0010, "1 Coin/2 Credits first, then 1 Coin/1 Credit" ) | |
| 567 | PORT_DIPSETTING( 0x0020, "2 Coins/1 Credit first, then 1 Coin/1 Credit" ) | |
| 568 | PORT_DIPSETTING( 0x0030, DEF_STR( 1C_1C ) ) | |
| 569 | PORT_DIPUNUSED_DIPLOC( 0x00c0, 0x00c0, "SW1:7,8" ) | |
| 570 | INPUT_PORTS_END | |
| 571 | ||
| 572 | ||
| 559 | 573 | /******************************************************************************/ |
| 560 | 574 | |
| 561 | 575 | static const gfx_layout charlayout = |
| r4470 | r4471 | |
| 940 | 954 | GAME( 1989, bbusteru, bbusters, bbusters, bbusters, 0, ROT0, "SNK", "Beast Busters (US, Version 2)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) |
| 941 | 955 | |
| 942 | 956 | GAME( 1989, mechatt, 0, mechatt, mechatt, 0, ROT0, "SNK", "Mechanized Attack (World)", 0 ) |
| 943 | GAME( 1989, mechattu, mechatt, mechatt, mechatt, | |
| 957 | GAME( 1989, mechattu, mechatt, mechatt, mechattu, |
| r4470 | r4471 | |
|---|---|---|
| 23 | 23 | |
| 24 | 24 | -- |
| 25 | 25 | Written by Hau |
| 26 | 03/2 | |
| 26 | 03/29/2009 | |
| 27 | 27 | based on driver from drivers/metro.c by Luca Elia |
| 28 | 28 | spthx to kikur,Cha,teioh,kokkyu,teruchu,aya,sgo |
| 29 | 29 | --- |
| r4470 | r4471 | |
| 45 | 45 | |
| 46 | 46 | static int blitter_bit; |
| 47 | 47 | static int requested_int; |
| 48 | static UINT16 *hypr_irq_enable; | |
| 48 | static UINT16 *hyprduel_irq_enable; | |
| 49 | 49 | static int subcpu_resetline; |
| 50 | static int cpu_trigger; | |
| 50 | 51 | static int int_num; |
| 51 | 52 | |
| 52 | static UINT16 *sharedram; | |
| 53 | static UINT16 *sharedram1; | |
| 54 | static UINT16 *sharedram3; | |
| 53 | 55 | |
| 54 | 56 | /*************************************************************************** |
| 55 | 57 | Interrupts |
| r4470 | r4471 | |
| 57 | 59 | |
| 58 | 60 | static void update_irq_state(running_machine *machine) |
| 59 | 61 | { |
| 60 | int irq = requested_int & ~*hypr_irq_enable; | |
| 62 | int irq = requested_int & ~*hyprduel_irq_enable; | |
| 61 | 63 | |
| 62 | 64 | cpu_set_input_line(machine->cpu[0], 3, (irq & int_num) ? ASSERT_LINE : CLEAR_LINE); |
| 63 | 65 | } |
| r4470 | r4471 | |
| 65 | 67 | static TIMER_CALLBACK( vblank_end_callback ) |
| 66 | 68 | { |
| 67 | 69 | requested_int &= ~param; |
| 68 | cpu_set_input_line(machine->cpu[1], 2, HOLD_LINE); | |
| 69 | 70 | } |
| 70 | 71 | |
| 71 | 72 | static INTERRUPT_GEN( hyprduel_interrupt ) |
| r4470 | r4471 | |
| 77 | 78 | requested_int |= 0x01; /* vblank */ |
| 78 | 79 | requested_int |= 0x20; |
| 79 | 80 | cpu_set_input_line(device, 2, HOLD_LINE); |
| 80 | cpu_set_input_line(device->machine->cpu[1], 1, HOLD_LINE); | |
| 81 | 81 | /* the duration is a guess */ |
| 82 | 82 | timer_set(device->machine, ATTOTIME_IN_USEC(2500), NULL, 0x20, vblank_end_callback); |
| 83 | 83 | } else { |
| r4470 | r4471 | |
| 97 | 97 | if (ACCESSING_BITS_0_7) |
| 98 | 98 | { |
| 99 | 99 | if (data == int_num) |
| 100 | requested_int &= ~(int_num & ~*hypr_irq_enable); | |
| 100 | requested_int &= ~(int_num & ~*hyprduel_irq_enable); | |
| 101 | 101 | else |
| 102 | requested_int &= ~(data & *hypr_irq_enable); | |
| 102 | requested_int &= ~(data & *hyprduel_irq_enable); | |
| 103 | 103 | |
| 104 | 104 | update_irq_state(space->machine); |
| 105 | 105 | } |
| 106 | 106 | } |
| 107 | 107 | |
| 108 | 108 | |
| 109 | static WRITE16_HANDLER( hypr_subcpu_control_w ) | |
| 109 | static WRITE16_HANDLER( hyprduel_subcpu_control_w ) | |
| 110 | 110 | { |
| 111 | i | |
| 111 | switch (data | |
| 112 | 112 | { |
| 113 | if (!subcpu_resetline) | |
| 114 | { | |
| 115 | cpu_set_input_line(space->machine->cpu[1], INPUT_LINE_RESET, ASSERT_LINE); | |
| 116 | subcpu_resetline = 1; | |
| 117 | } | |
| 113 | case 0x0d: | |
| 114 | case 0x0f: | |
| 115 | case 0x01: | |
| 116 | if (!subcpu_resetline) | |
| 117 | { | |
| 118 | cpu_set_input_line(space->machine->cpu[1], INPUT_LINE_RESET, ASSERT_LINE); | |
| 119 | subcpu_resetline = 1; | |
| 120 | } | |
| 121 | break; | |
| 122 | ||
| 123 | case 0x00: | |
| 124 | if (subcpu_resetline) | |
| 125 | { | |
| 126 | cpu_set_input_line(space->machine->cpu[1], INPUT_LINE_RESET, CLEAR_LINE); | |
| 127 | subcpu_resetline = 0; | |
| 128 | } | |
| 129 | cpu_spinuntil_int(space->cpu); | |
| 130 | break; | |
| 131 | ||
| 132 | case 0x0c: | |
| 133 | case 0x80: | |
| 134 | cpu_set_input_line(space->machine->cpu[1], 2, HOLD_LINE); | |
| 135 | break; | |
| 118 | 136 | } |
| 119 | else | |
| 137 | } | |
| 138 | ||
| 139 | ||
| 140 | static READ16_HANDLER( hyprduel_cpusync_trigger1_r ) | |
| 141 | { | |
| 142 | if (cpu_trigger == 1001) | |
| 120 | 143 | { |
| 121 | if ((subcpu_resetline == 1) && (data != 0x0c)) | |
| 144 | cpuexec_trigger(space->machine, 1001); | |
| 145 | cpu_trigger = 0; | |
| 146 | } | |
| 147 | ||
| 148 | return sharedram1[0x000408/2 + offset]; | |
| 149 | } | |
| 150 | ||
| 151 | static WRITE16_HANDLER( hyprduel_cpusync_trigger1_w ) | |
| 152 | { | |
| 153 | COMBINE_DATA(&sharedram1[0x00040e/2 + offset]); | |
| 154 | ||
| 155 | if (((sharedram1[0x00040e/2]<<16) + sharedram1[0x000410/2]) != 0x00) | |
| 156 | { | |
| 157 | if (!cpu_trigger && !subcpu_resetline) | |
| 122 | 158 | { |
| 123 | cpu_set_input_line(space->machine->cpu[1], INPUT_LINE_RESET, CLEAR_LINE); | |
| 124 | subcpu_resetline = 0; | |
| 125 | ||
| 126 | if ((int_num == 0x02) && (cpu_get_pc(space->cpu) == 0x000bb0)) | |
| 127 | cpu_spinuntil_time(space->cpu, ATTOTIME_IN_USEC(8000)); | |
| 128 | else | |
| 129 | cpu_spinuntil_int(space->cpu); | |
| 159 | cpu_spinuntil_trigger(space->cpu, 1001); | |
| 160 | cpu_trigger = 1001; | |
| 130 | 161 | } |
| 131 | 162 | } |
| 132 | 163 | } |
| 133 | 164 | |
| 134 | static READ16_HANDLER( hypr_cpusync_r ) | |
| 165 | ||
| 166 | static READ16_HANDLER( hyprduel_cpusync_trigger2_r ) | |
| 135 | 167 | { |
| 136 | cpu_spin(space->cpu); | |
| 168 | if (cpu_trigger == 1002) | |
| 169 | { | |
| 170 | cpuexec_trigger(space->machine, 1002); | |
| 171 | cpu_trigger = 0; | |
| 172 | } | |
| 137 | 173 | |
| 138 | return sharedram[0x40 | |
| 174 | return sharedram3[(0xfff34c - 0xfe4000)/2 + offset]; | |
| 139 | 175 | } |
| 140 | 176 | |
| 177 | static WRITE16_HANDLER( hyprduel_cpusync_trigger2_w ) | |
| 178 | { | |
| 179 | COMBINE_DATA(&sharedram1[0x000408/2 + offset]); | |
| 141 | 180 | |
| 181 | if (ACCESSING_BITS_8_15) | |
| 182 | { | |
| 183 | if (!cpu_trigger && !subcpu_resetline) | |
| 184 | { | |
| 185 | cpu_spinuntil_trigger(space->cpu, 1002); | |
| 186 | cpu_trigger = 1002; | |
| 187 | } | |
| 188 | } | |
| 189 | } | |
| 190 | ||
| 191 | ||
| 142 | 192 | static emu_timer *magerror_irq_timer; |
| 143 | 193 | |
| 144 | 194 | static TIMER_CALLBACK( magerror_irq_callback ) |
| r4470 | r4471 | |
| 394 | 444 | AM_RANGE(0x478890, 0x478891) AM_WRITENOP |
| 395 | 445 | AM_RANGE(0x4788a0, 0x4788a1) AM_WRITENOP |
| 396 | 446 | AM_RANGE(0x4788a2, 0x4788a3) AM_READWRITE(hyprduel_irq_cause_r, hyprduel_irq_cause_w) /* IRQ Cause,Acknowledge */ |
| 397 | AM_RANGE(0x4788a4, 0x4788a5) AM_RAM AM_BASE(&hypr_irq_enable) /* IRQ Enable */ | |
| 447 | AM_RANGE(0x4788a4, 0x4788a5) AM_RAM AM_BASE(&hyprduel_irq_enable) /* IRQ Enable */ | |
| 398 | 448 | AM_RANGE(0x4788aa, 0x4788ab) AM_RAM AM_BASE(&hyprduel_rombank) /* Rom Bank */ |
| 399 | 449 | AM_RANGE(0x4788ac, 0x4788ad) AM_RAM AM_BASE(&hyprduel_screenctrl) /* Screen Control */ |
| 400 | 450 | AM_RANGE(0x479700, 0x479713) AM_RAM AM_BASE(&hyprduel_videoregs) /* Video Registers */ |
| 401 | AM_RANGE(0x800000, 0x800001) AM_WRITE(hypr_subcpu_control_w) | |
| 402 | AM_RANGE(0xc00000, 0xc07fff) AM_RAM AM_SHARE(1) AM_BASE(&sharedram) | |
| 451 | AM_RANGE(0x800000, 0x800001) AM_WRITE(hyprduel_subcpu_control_w) | |
| 452 | AM_RANGE(0xc00000, 0xc07fff) AM_RAM AM_SHARE(1) AM_BASE(&sharedram1) | |
| 403 | 453 | AM_RANGE(0xe00000, 0xe00001) AM_READ_PORT("SERVICE") AM_WRITENOP |
| 404 | 454 | AM_RANGE(0xe00002, 0xe00003) AM_READ_PORT("DSW") |
| 405 | 455 | AM_RANGE(0xe00004, 0xe00005) AM_READ_PORT("P1_P2") |
| 406 | 456 | AM_RANGE(0xe00006, 0xe00007) AM_READ_PORT("SYSTEM") |
| 407 | 457 | AM_RANGE(0xfe0000, 0xfe3fff) AM_RAM AM_SHARE(2) |
| 408 | AM_RANGE(0xfe4000, 0xffffff) AM_RAM AM_SHARE(3) | |
| 458 | AM_RANGE(0xfe4000, 0xffffff) AM_RAM AM_SHARE(3) AM_BASE(&sharedram3) | |
| 409 | 459 | ADDRESS_MAP_END |
| 410 | 460 | |
| 411 | 461 | static ADDRESS_MAP_START( hyprduel_map2, ADDRESS_SPACE_PROGRAM, 16 ) |
| r4470 | r4471 | |
| 424 | 474 | |
| 425 | 475 | static ADDRESS_MAP_START( magerror_map, ADDRESS_SPACE_PROGRAM, 16 ) |
| 426 | 476 | AM_RANGE(0x000000, 0x07ffff) AM_ROM |
| 427 | AM_RANGE(0x400000, 0x400001) AM_WRITE(hypr_subcpu_control_w) | |
| 477 | AM_RANGE(0x400000, 0x400001) AM_WRITE(hyprduel_subcpu_control_w) | |
| 428 | 478 | AM_RANGE(0x800000, 0x81ffff) AM_RAM_WRITE(hyprduel_vram_0_w) AM_BASE(&hyprduel_vram_0) /* Layer 0 */ |
| 429 | 479 | AM_RANGE(0x820000, 0x83ffff) AM_RAM_WRITE(hyprduel_vram_1_w) AM_BASE(&hyprduel_vram_1) /* Layer 1 */ |
| 430 | 480 | AM_RANGE(0x840000, 0x85ffff) AM_RAM_WRITE(hyprduel_vram_2_w) AM_BASE(&hyprduel_vram_2) /* Layer 2 */ |
| r4470 | r4471 | |
| 441 | 491 | AM_RANGE(0x878890, 0x878891) AM_WRITENOP |
| 442 | 492 | AM_RANGE(0x8788a0, 0x8788a1) AM_WRITENOP |
| 443 | 493 | AM_RANGE(0x8788a2, 0x8788a3) AM_READWRITE(hyprduel_irq_cause_r, hyprduel_irq_cause_w) /* IRQ Cause, Acknowledge */ |
| 444 | AM_RANGE(0x8788a4, 0x8788a5) AM_RAM AM_BASE(&hypr_irq_enable) /* IRQ Enable */ | |
| 494 | AM_RANGE(0x8788a4, 0x8788a5) AM_RAM AM_BASE(&hyprduel_irq_enable) /* IRQ Enable */ | |
| 445 | 495 | AM_RANGE(0x8788aa, 0x8788ab) AM_RAM AM_BASE(&hyprduel_rombank) /* Rom Bank */ |
| 446 | 496 | AM_RANGE(0x8788ac, 0x8788ad) AM_RAM AM_BASE(&hyprduel_screenctrl) /* Screen Control */ |
| 447 | 497 | AM_RANGE(0x879700, 0x879713) AM_RAM AM_BASE(&hyprduel_videoregs) /* Video Registers */ |
| 448 | AM_RANGE(0xc00000, 0xc1ffff) AM_RAM AM_SHARE(1) AM_BASE(&sharedram) | |
| 498 | AM_RANGE(0xc00000, 0xc1ffff) AM_RAM AM_SHARE(1) AM_BASE(&sharedram1) | |
| 449 | 499 | AM_RANGE(0xe00000, 0xe00001) AM_READ_PORT("SERVICE") AM_WRITENOP |
| 450 | 500 | AM_RANGE(0xe00002, 0xe00003) AM_READ_PORT("DSW") |
| 451 | 501 | AM_RANGE(0xe00004, 0xe00005) AM_READ_PORT("P1_P2") |
| 452 | 502 | AM_RANGE(0xe00006, 0xe00007) AM_READ_PORT("SYSTEM") |
| 453 | 503 | AM_RANGE(0xfe0000, 0xfe3fff) AM_RAM AM_SHARE(2) |
| 454 | AM_RANGE(0xfe4000, 0xffffff) AM_RAM AM_SHARE(3) | |
| 504 | AM_RANGE(0xfe4000, 0xffffff) AM_RAM AM_SHARE(3) AM_BASE(&sharedram3) | |
| 455 | 505 | ADDRESS_MAP_END |
| 456 | 506 | |
| 457 | 507 | static ADDRESS_MAP_START( magerror_map2, ADDRESS_SPACE_PROGRAM, 16 ) |
| r4470 | r4471 | |
| 521 | 571 | PORT_DIPSETTING( 0x0040, DEF_STR( Off ) ) |
| 522 | 572 | PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) |
| 523 | 573 | PORT_DIPNAME( 0x0080, 0x0080, "Start Up Mode" ) |
| 524 | PORT_DIPSETTING( 0x0080, "Game Mode" ) | |
| 525 | PORT_DIPSETTING( 0x0000, "Test Mode" ) | |
| 574 | PORT_DIPSETTING( 0x0080, DEF_STR( Off ) ) | |
| 575 | PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) | |
| 526 | 576 | PORT_DIPNAME( 0x0100, 0x0100, DEF_STR( Flip_Screen ) ) |
| 527 | 577 | PORT_DIPSETTING( 0x0100, DEF_STR( Off ) ) |
| 528 | 578 | PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) |
| r4470 | r4471 | |
| 553 | 603 | PORT_BIT( 0xffc0, IP_ACTIVE_LOW, IPT_UNKNOWN ) |
| 554 | 604 | INPUT_PORTS_END |
| 555 | 605 | |
| 606 | static INPUT_PORTS_START( magerror ) | |
| 607 | PORT_INCLUDE( hyprduel ) | |
| 608 | ||
| 609 | PORT_MODIFY("DSW") | |
| 610 | PORT_DIPNAME( 0x0007, 0x0007, DEF_STR( Coin_A ) ) | |
| 611 | PORT_DIPSETTING( 0x0001, DEF_STR( 4C_1C ) ) | |
| 612 | PORT_DIPSETTING( 0x0002, DEF_STR( 3C_1C ) ) | |
| 613 | PORT_DIPSETTING( 0x0003, DEF_STR( 2C_1C ) ) | |
| 614 | PORT_DIPSETTING( 0x0007, DEF_STR( 1C_1C ) ) | |
| 615 | PORT_DIPSETTING( 0x0006, DEF_STR( 1C_2C ) ) | |
| 616 | PORT_DIPSETTING( 0x0005, DEF_STR( 1C_3C ) ) | |
| 617 | PORT_DIPSETTING( 0x0004, DEF_STR( 1C_4C ) ) | |
| 618 | PORT_DIPSETTING( 0x0000, DEF_STR( Free_Play ) ) | |
| 619 | PORT_DIPNAME( 0x0038, 0x0038, DEF_STR( Coin_B ) ) | |
| 620 | PORT_DIPSETTING( 0x0008, DEF_STR( 4C_1C ) ) | |
| 621 | PORT_DIPSETTING( 0x0010, DEF_STR( 3C_1C ) ) | |
| 622 | PORT_DIPSETTING( 0x0018, DEF_STR( 2C_1C ) ) | |
| 623 | PORT_DIPSETTING( 0x0038, DEF_STR( 1C_1C ) ) | |
| 624 | PORT_DIPSETTING( 0x0030, DEF_STR( 1C_2C ) ) | |
| 625 | PORT_DIPSETTING( 0x0028, DEF_STR( 1C_3C ) ) | |
| 626 | PORT_DIPSETTING( 0x0020, DEF_STR( 1C_4C ) ) | |
| 627 | PORT_DIPSETTING( 0x0000, DEF_STR( Free_Play ) ) | |
| 628 | PORT_DIPNAME( 0x0040, 0x0000, DEF_STR( Demo_Sounds ) ) | |
| 629 | PORT_DIPSETTING( 0x0040, DEF_STR( Off ) ) | |
| 630 | PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) | |
| 631 | PORT_DIPNAME( 0x0080, 0x0080, "Start Up Mode" ) | |
| 632 | PORT_DIPSETTING( 0x0080, "Game Mode" ) | |
| 633 | PORT_DIPSETTING( 0x0000, "Test Mode" ) | |
| 634 | PORT_DIPNAME( 0x0100, 0x0100, DEF_STR( Flip_Screen ) ) | |
| 635 | PORT_DIPSETTING( 0x0100, DEF_STR( Off ) ) | |
| 636 | PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) | |
| 637 | PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 638 | PORT_DIPNAME( 0x0c00, 0x0c00, DEF_STR( Difficulty ) ) | |
| 639 | PORT_DIPSETTING( 0x0800, DEF_STR( Easy ) ) | |
| 640 | PORT_DIPSETTING( 0x0c00, DEF_STR( Normal ) ) | |
| 641 | PORT_DIPSETTING( 0x0400, DEF_STR( Hard ) ) | |
| 642 | PORT_DIPSETTING( 0x0000, DEF_STR( Very_Hard ) ) | |
| 643 | PORT_DIPNAME( 0x3000, 0x3000, DEF_STR( Lives ) ) | |
| 644 | PORT_DIPSETTING( 0x2000, "2" ) | |
| 645 | PORT_DIPSETTING( 0x3000, "3" ) | |
| 646 | PORT_DIPSETTING( 0x1000, "4" ) | |
| 647 | PORT_DIPSETTING( 0x0000, "5" ) | |
| 648 | PORT_BIT( 0xc000, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 649 | INPUT_PORTS_END | |
| 650 | ||
| 556 | 651 | /*************************************************************************** |
| 557 | 652 | Graphics Layouts |
| 558 | 653 | ***************************************************************************/ |
| r4470 | r4471 | |
| 591 | 686 | /* start with cpu2 halted */ |
| 592 | 687 | cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, ASSERT_LINE); |
| 593 | 688 | subcpu_resetline = 1; |
| 689 | cpu_trigger = 0; | |
| 594 | 690 | |
| 595 | 691 | requested_int = 0x00; |
| 596 | 692 | blitter_bit = 2; |
| 597 | *hypr_irq_enable = 0xff; | |
| 693 | *hyprduel_irq_enable = 0xff; | |
| 598 | 694 | } |
| 599 | 695 | |
| 600 | 696 | static MACHINE_START( magerror ) |
| 601 | 697 | { |
| 602 | timer_adjust_periodic(magerror_irq_timer, attotime_zero, 0, ATTOTIME_IN_HZ(968)); /* ? */ | |
| 698 | timer_adjust_periodic(magerror_irq_timer, attotime_zero, 0, ATTOTIME_IN_HZ(968)); /* tempo? */ | |
| 603 | 699 | } |
| 604 | 700 | |
| 605 | 701 | static MACHINE_DRIVER_START( hyprduel ) |
| r4470 | r4471 | |
| 737 | 833 | ROM_END |
| 738 | 834 | |
| 739 | 835 | |
| 740 | static | |
| 836 | static void | |
| 741 | 837 | { |
| 742 | int_num = 0x02; | |
| 743 | ||
| 744 | memory_install_read16_handler(cpu_get_address_space(machine->cpu[0], ADDRESS_SPACE_PROGRAM), 0xc00408, 0xc0040b, 0, 0, hypr_cpusync_r); | |
| 745 | ||
| 746 | 838 | /* Set up save state */ |
| 747 | 839 | state_save_register_global(machine, blitter_bit); |
| 748 | 840 | state_save_register_global(machine, requested_int); |
| 749 | 841 | state_save_register_global(machine, subcpu_resetline); |
| 842 | state_save_register_global(machine, cpu_trigger); | |
| 750 | 843 | state_save_register_global(machine, int_num); |
| 751 | 844 | } |
| 752 | 845 | |
| 846 | static DRIVER_INIT( hyprduel ) | |
| 847 | { | |
| 848 | int_num = 0x02; | |
| 849 | savestate(machine); | |
| 850 | ||
| 851 | /* cpu synchronization (severe timings) */ | |
| 852 | memory_install_write16_handler(cpu_get_address_space(machine->cpu[0], ADDRESS_SPACE_PROGRAM), 0xc0040e, 0xc00411, 0, 0, hyprduel_cpusync_trigger1_w); | |
| 853 | memory_install_read16_handler(cpu_get_address_space(machine->cpu[1], ADDRESS_SPACE_PROGRAM), 0xc00408, 0xc00409, 0, 0, hyprduel_cpusync_trigger1_r); | |
| 854 | memory_install_write16_handler(cpu_get_address_space(machine->cpu[0], ADDRESS_SPACE_PROGRAM), 0xc00408, 0xc00409, 0, 0, hyprduel_cpusync_trigger2_w); | |
| 855 | memory_install_read16_handler(cpu_get_address_space(machine->cpu[1], ADDRESS_SPACE_PROGRAM), 0xfff34c, 0xfff34d, 0, 0, hyprduel_cpusync_trigger2_r); | |
| 856 | } | |
| 857 | ||
| 753 | 858 | static DRIVER_INIT( magerror ) |
| 754 | 859 | { |
| 755 | DRIVER_INIT_CALL(hyprduel); | |
| 860 | int_num = 0x01; | |
| 861 | savestate(machine); | |
| 756 | 862 | |
| 757 | int_num = 0x01; | |
| 758 | 863 | magerror_irq_timer = timer_alloc(machine, magerror_irq_callback, NULL); |
| 759 | 864 | } |
| 760 | 865 | |
| 761 | 866 | |
| 762 | 867 | GAME( 1993, hyprduel, 0, hyprduel, hyprduel, hyprduel, ROT0, "Technosoft", "Hyper Duel (Japan set 1)", GAME_SUPPORTS_SAVE ) |
| 763 | 868 | GAME( 1993, hyprdelj, hyprduel, hyprduel, hyprduel, hyprduel, ROT0, "Technosoft", "Hyper Duel (Japan set 2)", GAME_SUPPORTS_SAVE ) |
| 764 | GAME( 1994, magerror, 0, magerror, | |
| 869 | GAME( 1994, magerror, 0, magerror, mag |
| r4470 | r4471 | |
|---|---|---|
| 865 | 865 | AM_RANGE(0x640000, 0x64ffff) AM_READWRITE(namco_tilemapvideoram32_r,namco_tilemapvideoram32_w ) |
| 866 | 866 | AM_RANGE(0x660000, 0x66003f) AM_READWRITE(namco_tilemapcontrol32_r,namco_tilemapcontrol32_w) |
| 867 | 867 | AM_RANGE(0x680000, 0x68000f) AM_READ(SMH_RAM) AM_WRITE(SMH_RAM) AM_BASE(&namconb1_spritebank32) |
| 868 | AM_RANGE(0x6e0000, 0x6e001f) AM_READ(custom_key_r) AM_WRITE | |
| 868 | AM_RANGE(0x6e0000, 0x6e001f) AM_READ(custom_key_r) AM_WRITE | |
| 869 | 869 | AM_RANGE(0x700000, 0x707fff) AM_READ(SMH_RAM) AM_WRITE(SMH_RAM) AM_BASE(&paletteram32) |
| 870 | 870 | ADDRESS_MAP_END |
| 871 | 871 | |
| r4470 | r4471 | |
| 888 | 888 | AM_RANGE(0x940000, 0x94000f) AM_READ(SMH_RAM) AM_WRITE(SMH_RAM) AM_BASE(&namconb1_tilebank32) |
| 889 | 889 | AM_RANGE(0x980000, 0x98000f) AM_READ(namco_rozbank32_r) AM_WRITE(namco_rozbank32_w) |
| 890 | 890 | AM_RANGE(0xa00000, 0xa007ff) AM_READ(SMH_RAM) AM_WRITE(SMH_RAM) AM_BASE(&nvmem32) |
| 891 | AM_RANGE(0xc00000, 0xc0001f) AM_READ(custom_key_r) AM_WRITE | |
| 891 | AM_RANGE(0xc00000, 0xc0001f) AM_READ(custom_key_r) AM_WRITE | |
| 892 | 892 | AM_RANGE(0xf00000, 0xf0001f) AM_READWRITE(namconb_cpureg_r, namconb2_cpureg_w) |
| 893 | 893 | ADDRESS_MAP_END /* namconb2_readmem */ |
| 894 | 894 |
| r4470 | r4471 | |
|---|---|---|
| 111 | 111 | AM_RANGE(0xd000, 0xd7ff) AM_WRITE(strnskil_videoram_w) AM_BASE(&videoram) |
| 112 | 112 | |
| 113 | 113 | AM_RANGE(0xd808, 0xd808) AM_WRITE(strnskil_scrl_ctrl_w) |
| 114 | AM_RANGE(0xd809, 0xd809) AM_WRITE | |
| 114 | AM_RANGE(0xd809, 0xd809) AM_WRITE | |
| 115 | 115 | AM_RANGE(0xd80a, 0xd80b) AM_WRITE(SMH_RAM) AM_BASE(&strnskil_xscroll) |
| 116 | 116 | ADDRESS_MAP_END |
| 117 | 117 | |
| r4470 | r4471 | |
| 513 | 513 | |
| 514 | 514 | static DRIVER_INIT( pettanp ) |
| 515 | 515 | { |
| 516 | // AM_RANGE(0xd80c, 0xd80c) AM_WRITE | |
| 516 | // AM_RANGE(0xd80c, 0xd80c) AM_WRITE | |
| 517 | 517 | // AM_RANGE(0xd80d, 0xd80d) AM_WRITE(protection_w) /* protection data write (pettanp) */ |
| 518 | 518 | // AM_RANGE(0xd806, 0xd806) AM_READ(protection_r) /* protection data read (pettanp) */ |
| 519 | 519 |
| r4470 | r4471 | |
|---|---|---|
| 57 | 57 | AM_RANGE(0x0300, 0x0300) AM_DEVWRITE("sn1", sn76496_w) /* trigger chip to read from latch. The program always */ |
| 58 | 58 | AM_RANGE(0x0400, 0x0400) AM_DEVWRITE("sn2", sn76496_w) /* writes the same number as the latch, so we don't */ |
| 59 | 59 | /* bother emulating them. */ |
| 60 | AM_RANGE(0x0800, 0x0800) AM_WRITE(SMH_NOP) /* latch for 76496 #0 */ | |
| 61 | AM_RANGE(0x1000, 0x1000) AM_WRITE(SMH_NOP) /* latch for 76496 #1 */ | |
| 60 | AM_RANGE(0x0800, 0x0800) AM_WRITENOP /* latch for 76496 #0 */ | |
| 61 | AM_RANGE(0x1000, 0x1000) AM_WRITENOP /* latch for 76496 #1 */ | |
| 62 | 62 | AM_RANGE(0x1800, 0x1800) AM_WRITE(shaolins_palettebank_w) |
| 63 | 63 | AM_RANGE(0x2000, 0x2000) AM_WRITE(shaolins_scroll_w) |
| 64 | 64 | AM_RANGE(0x2800, 0x2bff) AM_WRITE(SMH_RAM) /* RAM BANK 2 */ |
| r4470 | r4471 | |
|---|---|---|
| 2537 | 2537 | ROM_LOAD32_WORD( "mpr-18515.9", 0x400002, 0x200000, CRC(6ba1ffec) SHA1(70f493aa4eb93edce8dd5b7b532d1f50f81069ce) ) |
| 2538 | 2538 | ROM_LOAD32_WORD( "mpr-18522.6", 0x800000, 0x200000, CRC(61d18536) SHA1(cc467cb26a8fccc48837d000fe9e1c41b0c0f4f9) ) |
| 2539 | 2539 | ROM_LOAD32_WORD( "mpr-18523.7", 0x800002, 0x200000, CRC(61d08dc4) SHA1(40d8231d184582c0fc01ad874371aaec7dfcc337) ) |
| 2540 | ROM_LOAD32_WORD( "mpr-18520.4", 0xc00000, 0x080000, CRC(1d4ec5e8) SHA1(44c4b5560d150909342e4182496f136c8c5e2edb) ) | |
| 2541 | ROM_LOAD32_WORD( "mpr-18521.5", 0xc00002, 0x080000, CRC(b8b3781c) SHA1(11956fe912c34d6a86a6b91d55987f6bead73473) ) | |
| 2540 | ROM_LOAD32_WORD( "epr-18520.4", 0xc00000, 0x080000, CRC(1d4ec5e8) SHA1(44c4b5560d150909342e4182496f136c8c5e2edb) ) | |
| 2541 | ROM_LOAD32_WORD( "epr-18521.5", 0xc00002, 0x080000, CRC(b8b3781c) SHA1(11956fe912c34d6a86a6b91d55987f6bead73473) ) | |
| 2542 | 2542 | ROM_COPY( "user1", 0xc00000, 0xd00000, 0x100000 ) |
| 2543 | 2543 | ROM_COPY( "user1", 0xc00000, 0xe00000, 0x100000 ) |
| 2544 | 2544 | ROM_COPY( "user1", 0xc00000, 0xf00000, 0x100000 ) |
| r4470 | r4471 | |
|---|---|---|
| 329 | 329 | |
| 330 | 330 | AM_RANGE(0x090000, 0x090001) AM_WRITE(bmc_RAMDAC_offset_w) |
| 331 | 331 | AM_RANGE(0x090002, 0x090003) AM_WRITE(bmc_RAMDAC_color_w) |
| 332 | AM_RANGE(0x090004, 0x090005) AM_WRITE | |
| 332 | AM_RANGE(0x090004, 0x090005) AM_WRITE | |
| 333 | 333 | |
| 334 | AM_RANGE(0x090800, 0x090803) AM_WRITE(SMH_NOP) | |
| 335 | AM_RANGE(0x091000, 0x091001) AM_WRITE(SMH_NOP) | |
| 334 | AM_RANGE(0x090800, 0x090803) AM_WRITENOP | |
| 335 | AM_RANGE(0x091000, 0x091001) AM_WRITENOP | |
| 336 | 336 | AM_RANGE(0x091800, 0x091801) AM_WRITE(scroll_w) |
| 337 | 337 | |
| 338 | 338 | AM_RANGE(0x092000, 0x09201f) AM_READWRITE(bmcbowl_via_r, bmcbowl_via_w) |
| 339 | 339 | |
| 340 | AM_RANGE(0x093000, 0x093003) AM_WRITE | |
| 340 | AM_RANGE(0x093000, 0x093003) AM_WRITE | |
| 341 | 341 | AM_RANGE(0x092800, 0x092803) AM_DEVWRITE8("ay", ay8910_data_address_w, 0xff00) |
| 342 | 342 | AM_RANGE(0x092802, 0x092803) AM_DEVREAD8("ay", ay8910_r, 0xff00) |
| 343 | 343 | AM_RANGE(0x093802, 0x093803) AM_READ_PORT("IN0") |
| 344 | 344 | AM_RANGE(0x095000, 0x095fff) AM_RAM AM_BASE((UINT16 **)&stats_ram) AM_SIZE(&stats_ram_size) /* 8 bit */ |
| 345 | AM_RANGE(0x097000, 0x097001) AM_READ | |
| 345 | AM_RANGE(0x097000, 0x097001) AM_READ | |
| 346 | 346 | AM_RANGE(0x140000, 0x1bffff) AM_ROM |
| 347 | 347 | AM_RANGE(0x1c0000, 0x1effff) AM_RAM AM_BASE(&bmcbowl_vid1) |
| 348 | 348 | AM_RANGE(0x1f0000, 0x1fffff) AM_RAM |
| r4470 | r4471 | |
| 351 | 351 | AM_RANGE(0x28c000, 0x28c001) AM_DEVREADWRITE8("oki", okim6295_r, okim6295_w, 0xff00) |
| 352 | 352 | |
| 353 | 353 | /* protection device*/ |
| 354 | AM_RANGE(0x30c000, 0x30c001) AM_WRITE(SMH_NOP) | |
| 355 | AM_RANGE(0x30c040, 0x30c041) AM_WRITE(SMH_NOP) | |
| 356 | AM_RANGE(0x30c080, 0x30c081) AM_WRITE(SMH_NOP) | |
| 357 | AM_RANGE(0x30c0c0, 0x30c0c1) AM_WRITE(SMH_NOP) | |
| 354 | AM_RANGE(0x30c000, 0x30c001) AM_WRITENOP | |
| 355 | AM_RANGE(0x30c040, 0x30c041) AM_WRITENOP | |
| 356 | AM_RANGE(0x30c080, 0x30c081) AM_WRITENOP | |
| 357 | AM_RANGE(0x30c0c0, 0x30c0c1) AM_WRITENOP | |
| 358 | 358 | AM_RANGE(0x30c100, 0x30c101) AM_READ(bmc_protection_r) |
| 359 | AM_RANGE(0x30c140, 0x30c141) AM_WRITE(SMH_NOP) | |
| 360 | AM_RANGE(0x30ca00, 0x30ca01) AM_READ(bmc_random_read) AM_WRITE(SMH_NOP) | |
| 359 | AM_RANGE(0x30c140, 0x30c141) AM_WRITENOP | |
| 360 | AM_RANGE(0x30ca00, 0x30ca01) AM_READ(bmc_random_read) AM_WRITENOP | |
| 361 | 361 | ADDRESS_MAP_END |
| 362 | 362 | |
| 363 | 363 |
| r4470 | r4471 | |
|---|---|---|
| 175 | 175 | AM_RANGE(0x206000, 0x2067ff) AM_WRITE(SMH_RAM) AM_BASE(&sshangha_pf2_rowscroll) |
| 176 | 176 | AM_RANGE(0x300000, 0x30000f) AM_WRITE(sshangha_control_0_w) |
| 177 | 177 | AM_RANGE(0x320000, 0x320001) AM_WRITE(sshangha_video_w) |
| 178 | AM_RANGE(0x320002, 0x320005) AM_WRITE | |
| 178 | AM_RANGE(0x320002, 0x320005) AM_WRITE | |
| 179 | 179 | AM_RANGE(0x340000, 0x340fff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) |
| 180 | AM_RANGE(0x350000, 0x350007) AM_WRITE | |
| 180 | AM_RANGE(0x350000, 0x350007) AM_WRITE | |
| 181 | 181 | AM_RANGE(0x360000, 0x360fff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16_2) |
| 182 | AM_RANGE(0x370000, 0x370007) AM_WRITE | |
| 182 | AM_RANGE(0x370000, 0x370007) AM_WRITE | |
| 183 | 183 | AM_RANGE(0x380000, 0x383fff) AM_WRITE(sshangha_palette_24bit_w) AM_BASE(&paletteram16) |
| 184 | 184 | AM_RANGE(0x3c0000, 0x3c0fff) AM_WRITE(SMH_RAM) /* Sprite ram buffer on bootleg only?? */ |
| 185 | 185 | AM_RANGE(0xfec000, 0xff3fff) AM_WRITE(SMH_RAM) |
| r4470 | r4471 | |
|---|---|---|
| 177 | 177 | |
| 178 | 178 | static ADDRESS_MAP_START( cpu3_map, ADDRESS_SPACE_PROGRAM, 8 ) |
| 179 | 179 | AM_RANGE(0x0000, 0x1fff) AM_ROM |
| 180 | AM_RANGE(0x2000, 0x2000) AM_READ | |
| 180 | AM_RANGE(0x2000, 0x2000) AM_READ | |
| 181 | 181 | AM_RANGE(0xfc00, 0xffff) AM_RAM |
| 182 | 182 | ADDRESS_MAP_END |
| 183 | 183 |
| r4470 | r4471 | |
|---|---|---|
| 70 | 70 | AM_RANGE(0x1000, 0x17ff) AM_WRITE(compgolf_video_w) AM_BASE(&videoram) |
| 71 | 71 | AM_RANGE(0x1800, 0x1fff) AM_WRITE(compgolf_back_w) AM_BASE(&compgolf_bg_ram) |
| 72 | 72 | AM_RANGE(0x2000, 0x2060) AM_WRITE(SMH_RAM) AM_BASE(&spriteram) |
| 73 | AM_RANGE(0x2061, 0x2061) AM_WRITE | |
| 73 | AM_RANGE(0x2061, 0x2061) AM_WRITE | |
| 74 | 74 | AM_RANGE(0x3001, 0x3001) AM_WRITE(compgolf_ctrl_w) |
| 75 | 75 | AM_RANGE(0x3800, 0x3801) AM_DEVWRITE("ym", ym2203_w) |
| 76 | 76 | AM_RANGE(0x4000, 0x7fff) AM_WRITE(SMH_ROM) |
| r4470 | r4471 | |
|---|---|---|
| 877 | 877 | AM_RANGE(0x800100, 0x80013f) AM_WRITE(cps1_cps_a_w) AM_BASE(&cps1_cps_a_regs) /* mirror (sfa) */ |
| 878 | 878 | AM_RANGE(0x800140, 0x80017f) AM_WRITE(cps1_cps_b_w) AM_BASE(&cps1_cps_b_regs) /* mirror (sfa) */ |
| 879 | 879 | AM_RANGE(0x804040, 0x804041) AM_WRITE(cps2_eeprom_port_w) /* EEPROM */ |
| 880 | AM_RANGE(0x8040a0, 0x8040a1) AM_WRITE | |
| 880 | AM_RANGE(0x8040a0, 0x8040a1) AM_WRITE | |
| 881 | 881 | AM_RANGE(0x8040e0, 0x8040e1) AM_WRITE(cps2_objram_bank_w) /* bit 0 = Object ram bank swap */ |
| 882 | 882 | AM_RANGE(0x804100, 0x80413f) AM_WRITE(cps1_cps_a_w) AM_BASE(&cps1_cps_a_regs) /* CPS-A custom */ |
| 883 | 883 | AM_RANGE(0x804140, 0x80417f) AM_WRITE(cps1_cps_b_w) AM_BASE(&cps1_cps_b_regs) /* CPS-B custom */ |
| r4470 | r4471 | |
| 902 | 902 | AM_RANGE(0x800100, 0x80013f) AM_WRITE(cps1_cps_a_w) AM_BASE(&cps1_cps_a_regs) /* mirror (sfa) */ |
| 903 | 903 | AM_RANGE(0x800140, 0x80017f) AM_WRITE(cps1_cps_b_w) AM_BASE(&cps1_cps_b_regs) /* mirror (sfa) */ |
| 904 | 904 | AM_RANGE(0x804040, 0x804041) AM_WRITE(cps2_eeprom_port_w) /* EEPROM */ |
| 905 | AM_RANGE(0x8040a0, 0x8040a1) AM_WRITE | |
| 905 | AM_RANGE(0x8040a0, 0x8040a1) AM_WRITE | |
| 906 | 906 | AM_RANGE(0x8040e0, 0x8040e1) AM_WRITE(cps2_objram_bank_w) /* bit 0 = Object ram bank swap */ |
| 907 | 907 | AM_RANGE(0x804100, 0x80413f) AM_WRITE(cps1_cps_a_w) AM_BASE(&cps1_cps_a_regs) /* CPS-A custom */ |
| 908 | 908 | AM_RANGE(0x804140, 0x80417f) AM_WRITE(cps1_cps_b_w) AM_BASE(&cps1_cps_b_regs) /* CPS-B custom */ |
| r4470 | r4471 | |
|---|---|---|
| 164 | 164 | AM_RANGE(0xfe4000, 0xfe4001) AM_WRITE(pushman_flipscreen_w) |
| 165 | 165 | AM_RANGE(0xfe4002, 0xfe4003) AM_WRITE(pushman_control_w) |
| 166 | 166 | AM_RANGE(0xfe8000, 0xfe8003) AM_WRITE(pushman_scroll_w) |
| 167 | AM_RANGE(0xfe800e, 0xfe800f) AM_WRITE | |
| 167 | AM_RANGE(0xfe800e, 0xfe800f) AM_WRITE | |
| 168 | 168 | AM_RANGE(0xfec000, 0xfec7ff) AM_WRITE(pushman_videoram_w) AM_BASE(&videoram16) |
| 169 | 169 | AM_RANGE(0xff8000, 0xff87ff) AM_WRITE(paletteram16_xxxxRRRRGGGGBBBB_word_w) AM_BASE(&paletteram16) |
| 170 | 170 | AM_RANGE(0xffc000, 0xffffff) AM_WRITE(SMH_RAM) |
| r4470 | r4471 | |
| 220 | 220 | AM_RANGE(0xe4000, 0xe4001) AM_WRITE(pushman_flipscreen_w) |
| 221 | 221 | AM_RANGE(0xe4002, 0xe4003) AM_WRITE(pushman_control_w) |
| 222 | 222 | AM_RANGE(0xe8000, 0xe8003) AM_WRITE(pushman_scroll_w) |
| 223 | AM_RANGE(0xe800e, 0xe800f) AM_WRITE | |
| 223 | AM_RANGE(0xe800e, 0xe800f) AM_WRITE | |
| 224 | 224 | AM_RANGE(0xec000, 0xec7ff) AM_WRITE(pushman_videoram_w) AM_BASE(&videoram16) |
| 225 | 225 | AM_RANGE(0xf8000, 0xf87ff) AM_WRITE(paletteram16_xxxxRRRRGGGGBBBB_word_w) AM_BASE(&paletteram16) |
| 226 | 226 | AM_RANGE(0xfc000, 0xfffff) AM_WRITE(SMH_RAM) |
| r4470 | r4471 | |
|---|---|---|
| 7 | 7 | ***************************************************************************/ |
| 8 | 8 | |
| 9 | 9 | #include "driver.h" |
| 10 | #include "trackfld.h" | |
| 10 | 11 | #include "cpu/z80/z80.h" |
| 11 | 12 | #include "cpu/m6809/m6809.h" |
| 12 | 13 | #include "sound/dac.h" |
| 13 | 14 | #include "sound/sn76496.h" |
| 14 | 15 | #include "sound/vlm5030.h" |
| 15 | 16 | #include "machine/konami1.h" |
| 17 | #include "konamipt.h" | |
| 16 | 18 | |
| 17 | ||
| 18 | 19 | extern UINT8 *hyperspt_scroll; |
| 19 | 20 | |
| 20 | 21 | extern WRITE8_HANDLER( hyperspt_videoram_w ); |
| r4470 | r4471 | |
| 27 | 28 | extern VIDEO_START( roadf ); |
| 28 | 29 | extern VIDEO_UPDATE( roadf ); |
| 29 | 30 | |
| 30 | extern WRITE8_HANDLER( konami_sh_irqtrigger_w ); | |
| 31 | extern READ8_HANDLER( hyperspt_sh_timer_r ); | |
| 32 | extern WRITE8_DEVICE_HANDLER( hyperspt_sound_w ); | |
| 33 | 31 | |
| 34 | /* these routines lurk in audio/trackfld.c */ | |
| 35 | extern WRITE8_HANDLER( konami_SN76496_latch_w ); | |
| 36 | extern WRITE8_DEVICE_HANDLER( konami_SN76496_w ); | |
| 37 | ||
| 38 | ||
| 39 | 32 | static WRITE8_HANDLER( hyperspt_coin_counter_w ) |
| 40 | 33 | { |
| 41 | 34 | coin_counter_w(offset,data); |
| r4470 | r4471 | |
| 133 | 126 | AM_RANGE(0xe002, 0xe002) AM_DEVWRITE("sn", konami_SN76496_w) /* This address triggers the SN chip to read the data port. */ |
| 134 | 127 | ADDRESS_MAP_END |
| 135 | 128 | |
| 136 | static INPUT_PORTS_START( shared_dsw1 ) | |
| 137 | /* This DSW1 is shared between games */ | |
| 138 | PORT_START("DSW1") | |
| 139 | PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW1:1,2,3,4") | |
| 140 | PORT_DIPSETTING( 0x02, DEF_STR( 4C_1C ) ) | |
| 141 | PORT_DIPSETTING( 0x05, DEF_STR( 3C_1C ) ) | |
| 142 | PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) ) | |
| 143 | PORT_DIPSETTING( 0x04, DEF_STR( 3C_2C ) ) | |
| 144 | PORT_DIPSETTING( 0x01, DEF_STR( 4C_3C ) ) | |
| 145 | PORT_DIPSETTING( 0x0f, DEF_STR( 1C_1C ) ) | |
| 146 | PORT_DIPSETTING( 0x03, DEF_STR( 3C_4C ) ) | |
| 147 | PORT_DIPSETTING( 0x07, DEF_STR( 2C_3C ) ) | |
| 148 | PORT_DIPSETTING( 0x0e, DEF_STR( 1C_2C ) ) | |
| 149 | PORT_DIPSETTING( 0x06, DEF_STR( 2C_5C ) ) | |
| 150 | PORT_DIPSETTING( 0x0d, DEF_STR( 1C_3C ) ) | |
| 151 | PORT_DIPSETTING( 0x0c, DEF_STR( 1C_4C ) ) | |
| 152 | PORT_DIPSETTING( 0x0b, DEF_STR( 1C_5C ) ) | |
| 153 | PORT_DIPSETTING( 0x0a, DEF_STR( 1C_6C ) ) | |
| 154 | PORT_DIPSETTING( 0x09, DEF_STR( 1C_7C ) ) | |
| 155 | PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) | |
| 156 | PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW1:5,6,7,8") | |
| 157 | PORT_DIPSETTING( 0x20, DEF_STR( 4C_1C ) ) | |
| 158 | PORT_DIPSETTING( 0x50, DEF_STR( 3C_1C ) ) | |
| 159 | PORT_DIPSETTING( 0x80, DEF_STR( 2C_1C ) ) | |
| 160 | PORT_DIPSETTING( 0x40, DEF_STR( 3C_2C ) ) | |
| 161 | PORT_DIPSETTING( 0x10, DEF_STR( 4C_3C ) ) | |
| 162 | PORT_DIPSETTING( 0xf0, DEF_STR( 1C_1C ) ) | |
| 163 | PORT_DIPSETTING( 0x30, DEF_STR( 3C_4C ) ) | |
| 164 | PORT_DIPSETTING( 0x70, DEF_STR( 2C_3C ) ) | |
| 165 | PORT_DIPSETTING( 0xe0, DEF_STR( 1C_2C ) ) | |
| 166 | PORT_DIPSETTING( 0x60, DEF_STR( 2C_5C ) ) | |
| 167 | PORT_DIPSETTING( 0xd0, DEF_STR( 1C_3C ) ) | |
| 168 | PORT_DIPSETTING( 0xc0, DEF_STR( 1C_4C ) ) | |
| 169 | PORT_DIPSETTING( 0xb0, DEF_STR( 1C_5C ) ) | |
| 170 | PORT_DIPSETTING( 0xa0, DEF_STR( 1C_6C ) ) | |
| 171 | PORT_DIPSETTING( 0x90, DEF_STR( 1C_7C ) ) | |
| 172 | PORT_DIPSETTING( 0x00, "Disabled" ) | |
| 173 | /* 0x00 disables Coin 2. It still accepts coins and makes the sound, but | |
| 174 | it doesn't give you any credit */ | |
| 175 | INPUT_PORTS_END | |
| 176 | 129 | |
| 177 | ||
| 178 | 130 | static INPUT_PORTS_START( hyperspt ) |
| 179 | 131 | PORT_START("SYSTEM") |
| 180 | 132 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) |
| r4470 | r4471 | |
| 208 | 160 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(4) //PORT_COCKTAIL |
| 209 | 161 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) |
| 210 | 162 | |
| 211 | PORT_INCLUDE(shared_dsw1) | |
| 163 | PORT_START("DSW1") | |
| 164 | KONAMI_COINAGE_LOC(DEF_STR( Free_Play ), "No Coin B", SW1) | |
| 165 | /* "No Coin B" = coins produce sound, but no effect on coin counter */ | |
| 212 | 166 | |
| 213 | 167 | PORT_START("DSW2") |
| 214 | 168 | PORT_DIPNAME( 0x01, 0x01, "After Last Event" ) PORT_DIPLOCATION("SW2:1") |
| r4470 | r4471 | |
| 245 | 199 | |
| 246 | 200 | static INPUT_PORTS_START( roadf ) |
| 247 | 201 | PORT_START("SYSTEM") |
| 248 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) | |
| 249 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) | |
| 250 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN3 ) | |
| 251 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) | |
| 252 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 ) | |
| 253 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN4 ) | |
| 254 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 255 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 202 | KONAMI8_SYSTEM_UNK | |
| 256 | 203 | |
| 257 | 204 | PORT_START("P1") |
| 258 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY | |
| 259 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY | |
| 260 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY | |
| 261 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY | |
| 262 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) | |
| 263 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) | |
| 264 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 265 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 205 | KONAMI8_MONO_B12_UNK | |
| 266 | 206 | |
| 267 | 207 | PORT_START("P2") |
| 268 | 208 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL |
| r4470 | r4471 | |
| 274 | 214 | PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN ) /* the game doesn't boot if this is 1 */ |
| 275 | 215 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) |
| 276 | 216 | |
| 277 | PORT_INCLUDE(shared_dsw1) | |
| 217 | PORT_START("DSW1") | |
| 218 | KONAMI_COINAGE_LOC(DEF_STR( Free_Play ), "No Coin B", SW1) | |
| 219 | /* "No Coin B" = coins produce sound, but no effect on coin counter */ | |
| 278 | 220 | |
| 279 | 221 | PORT_START("DSW2") |
| 280 | 222 | PORT_DIPNAME( 0x01, 0x01, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SW2:1") |
| r4470 | r4471 | |
|---|---|---|
| 131 | 131 | } |
| 132 | 132 | |
| 133 | 133 | |
| 134 | static ADDRESS_MAP_START( tiamc1_readmem, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 135 | AM_RANGE(0x0000, 0xdfff) AM_READ(SMH_ROM) | |
| 136 | AM_RANGE(0xe000, 0xffff) AM_READ(SMH_RAM) | |
| 137 | ADDRESS_MAP_END | |
| 138 | ||
| 139 | static ADDRESS_MAP_START( tiamc1_writemem, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 134 | static ADDRESS_MAP_START( tiamc1_map, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 140 | 135 | AM_RANGE(0xb000, 0xb7ff) AM_WRITE(tiamc1_videoram_w) |
| 141 | AM_RANGE(0xe000, 0xffff) AM_WRITE(SMH_RAM) | |
| 136 | AM_RANGE(0x0000, 0xdfff) AM_ROM | |
| 137 | AM_RANGE(0xe000, 0xffff) AM_RAM | |
| 142 | 138 | ADDRESS_MAP_END |
| 143 | 139 | |
| 144 | 140 | static ADDRESS_MAP_START( tiamc1_io_map, ADDRESS_SPACE_IO, 8 ) |
| r4470 | r4471 | |
| 225 | 221 | static MACHINE_DRIVER_START( tiamc1 ) |
| 226 | 222 | /* basic machine hardware */ |
| 227 | 223 | MDRV_CPU_ADD("maincpu", 8080,16000000/9) /* 16 MHz */ |
| 228 | MDRV_CPU_PROGRAM_MAP(tiamc1_ | |
| 224 | MDRV_CPU_PROGRAM_MAP(tiamc1_ | |
| 229 | 225 | MDRV_CPU_IO_MAP(tiamc1_io_map,0) |
| 230 | 226 | |
| 231 | 227 | MDRV_CPU_VBLANK_INT("screen", irq1_line_hold) |
| r4470 | r4471 | |
| 319 | 315 | GAME( 1988, konek, 0, tiamc1, tiamc1, 0, ROT0, "Terminal", "Konek-Gorbunok", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE ) |
| 320 | 316 | GAME( 1988, sosterm, 0, tiamc1, tiamc1, 0, ROT0, "Terminal", "S.O.S.", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE ) |
| 321 | 317 | GAME( 1988, koroleva, 0, tiamc1, tiamc1, 0, ROT0, "Terminal", "Snezhnaja Koroleva", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE ) |
| 322 |
| r4470 | r4471 | |
|---|---|---|
| 121 | 121 | AM_RANGE(0x02, 0x03) AM_DEVREAD("ym", ym2203_r) |
| 122 | 122 | AM_RANGE(0x04, 0x04) AM_READ_PORT("DSW3") |
| 123 | 123 | AM_RANGE(0x06, 0x06) AM_DEVWRITE("msm", adpcm_data_w) |
| 124 | // AM_RANGE(0x08, 0x08) AM_WRITE(SMH_NOP) // CRT Controller | |
| 125 | // AM_RANGE(0x09, 0x09) AM_WRITE(SMH_NOP) // CRT Controller | |
| 124 | // AM_RANGE(0x08, 0x08) AM_WRITENOP // CRT Controller | |
| 125 | // AM_RANGE(0x09, 0x09) AM_WRITENOP // CRT Controller | |
| 126 | 126 | AM_RANGE(0x0a, 0x0a) AM_WRITE(dynax_blitter_rev1_start_w) |
| 127 | 127 | AM_RANGE(0x0c, 0x0c) AM_WRITE(dynax_blitter_rev1_clear_w) |
| 128 | 128 | AM_RANGE(0x23, 0x23) AM_DEVWRITE("msm", adpcm_vclk_w) |
| r4470 | r4471 | |
| 152 | 152 | AM_RANGE(0x8000, 0xfeff) AM_WRITE(SMH_ROM) |
| 153 | 153 | AM_RANGE(0xff00, 0xff01) AM_DEVWRITE("ym", ym2203_w) |
| 154 | 154 | AM_RANGE(0xff06, 0xff06) AM_DEVWRITE("msm", adpcm_data_w) |
| 155 | // AM_RANGE(0xff08, 0xff08) AM_WRITE(SMH_NOP) // CRT Controller | |
| 156 | // AM_RANGE(0xff09, 0xff09) AM_WRITE(SMH_NOP) // CRT Controller | |
| 155 | // AM_RANGE(0xff08, 0xff08) AM_WRITENOP // CRT Controller | |
| 156 | // AM_RANGE(0xff09, 0xff09) AM_WRITENOP // CRT Controller | |
| 157 | 157 | AM_RANGE(0xff0a, 0xff0a) AM_WRITE(dynax_blitter_rev1_start_w) |
| 158 | 158 | AM_RANGE(0xff0c, 0xff0c) AM_WRITE(dynax_blitter_rev1_clear_w) |
| 159 | 159 | AM_RANGE(0xff23, 0xff23) AM_DEVWRITE("msm", adpcm_vclk_w) |
| r4470 | r4471 | |
| 179 | 179 | ADDRESS_MAP_GLOBAL_MASK(0xff) |
| 180 | 180 | AM_RANGE(0x10, 0x10) AM_DEVWRITE("ym", ym2203_control_port_w) |
| 181 | 181 | AM_RANGE(0x11, 0x11) AM_DEVREAD("ym", ym2203_status_port_r) |
| 182 | // AM_RANGE(0x12, 0x12) AM_WRITE | |
| 182 | // AM_RANGE(0x12, 0x12) AM_WRITE | |
| 183 | 183 | AM_RANGE(0x13, 0x13) AM_DEVWRITE("msm", adpcm_data_w) |
| 184 | 184 | AM_RANGE(0x14, 0x14) AM_READ_PORT("COIN") |
| 185 | 185 | AM_RANGE(0x15, 0x15) AM_READ(keyboard_1_r) |
| r4470 | r4471 | |
| 193 | 193 | AM_RANGE(0x32, 0x32) AM_DEVWRITE("msm", adpcm_reset_inv_w) |
| 194 | 194 | AM_RANGE(0x50, 0x50) AM_DEVWRITE("ym", ym2203_write_port_w) |
| 195 | 195 | AM_RANGE(0x51, 0x51) AM_DEVREAD("ym", ym2203_read_port_r) |
| 196 | // AM_RANGE(0x52, 0x52) AM_WRITE | |
| 196 | // AM_RANGE(0x52, 0x52) AM_WRITE | |
| 197 | 197 | ADDRESS_MAP_END |
| 198 | 198 | |
| 199 | 199 | static INPUT_PORTS_START( mj_keyboard ) |
| r4470 | r4471 | |
|---|---|---|
| 78 | 78 | #include "sound/k007232.h" |
| 79 | 79 | #include "sound/upd7759.h" |
| 80 | 80 | #include "includes/tmnt.h" |
| 81 | #include "konamipt.h" | |
| 81 | 82 | |
| 82 | ||
| 83 | 83 | static int tmnt_soundlatch; |
| 84 | 84 | static int cuebrick_snd_irqlatch, cuebrick_nvram_bank; |
| 85 | 85 | static UINT16 cuebrick_nvram[0x400*0x20]; // 32k paged in a 1k window |
| r4470 | r4471 | |
| 684 | 684 | AM_RANGE(0x0c0000, 0x0c0001) AM_WRITE(tmnt_priority_w) |
| 685 | 685 | #endif |
| 686 | 686 | AM_RANGE(0x100000, 0x107fff) AM_READWRITE(K052109_word_noA12_r, K052109_word_noA12_w) |
| 687 | // AM_RANGE(0x10e800, 0x10e801) AM_WRITE | |
| 687 | // AM_RANGE(0x10e800, 0x10e801) AM_WRITE | |
| 688 | 688 | AM_RANGE(0x140000, 0x140007) AM_READWRITE(K051937_word_r, K051937_word_w) |
| 689 | 689 | AM_RANGE(0x140400, 0x1407ff) AM_READWRITE(K051960_word_r, K051960_word_w) |
| 690 | 690 | ADDRESS_MAP_END |
| r4470 | r4471 | |
| 705 | 705 | AM_RANGE(0x0a0018, 0x0a0019) AM_READ_PORT("DSW3") |
| 706 | 706 | AM_RANGE(0x0c0000, 0x0c0001) AM_WRITE(tmnt_priority_w) |
| 707 | 707 | AM_RANGE(0x100000, 0x107fff) AM_READWRITE(K052109_word_noA12_r, K052109_word_noA12_w) |
| 708 | // AM_RANGE(0x10e800, 0x10e801) AM_WRITE | |
| 708 | // AM_RANGE(0x10e800, 0x10e801) AM_WRITE | |
| 709 | 709 | AM_RANGE(0x140000, 0x140007) AM_READWRITE(K051937_word_r, K051937_word_w) |
| 710 | 710 | AM_RANGE(0x140400, 0x1407ff) AM_READWRITE(K051960_word_r, K051960_word_w) |
| 711 | 711 | ADDRESS_MAP_END |
| r4470 | r4471 | |
| 1116 | 1116 | AM_RANGE(0x180000, 0x183fff) AM_READWRITE(K053245_scattered_word_r, K053245_scattered_word_w) AM_BASE(&spriteram16) |
| 1117 | 1117 | AM_RANGE(0x184000, 0x18ffff) AM_RAM |
| 1118 | 1118 | AM_RANGE(0x1c0300, 0x1c0301) AM_WRITE(ssriders_1c0300_w) |
| 1119 | AM_RANGE(0x1c0400, 0x1c0401) AM_WRITE | |
| 1119 | AM_RANGE(0x1c0400, 0x1c0401) AM_WRITE | |
| 1120 | 1120 | AM_RANGE(0x5a0000, 0x5a001f) AM_READWRITE(K053244_word_noA1_r, K053244_word_noA1_w) |
| 1121 | 1121 | AM_RANGE(0x600000, 0x603fff) AM_READWRITE(K052109_word_r, K052109_word_w) |
| 1122 | AM_RANGE(0x604020, 0x60402f) AM_WRITE(SMH_NOP) /* written every frame */ | |
| 1123 | AM_RANGE(0x604200, 0x604201) AM_WRITE(SMH_NOP) /* watchdog */ | |
| 1124 | AM_RANGE(0x6119e2, 0x6119e3) AM_WRITE(SMH_NOP) /* written a lot in some test menus (PC=18204) */ | |
| 1122 | AM_RANGE(0x604020, 0x60402f) AM_WRITENOP /* written every frame */ | |
| 1123 | AM_RANGE(0x604200, 0x604201) AM_WRITENOP /* watchdog */ | |
| 1124 | AM_RANGE(0x6119e2, 0x6119e3) AM_WRITENOP /* written a lot in some test menus (PC=18204) */ | |
| 1125 | 1125 | AM_RANGE(0xc00000, 0xc00001) AM_READ_PORT("P1") |
| 1126 | 1126 | AM_RANGE(0xc00002, 0xc00003) AM_READ_PORT("P2") |
| 1127 | 1127 | AM_RANGE(0xc00004, 0xc00005) AM_READ_PORT("P3") |
| r4470 | r4471 | |
| 1130 | 1130 | AM_RANGE(0xc00404, 0xc00405) AM_READ_PORT("COINS") |
| 1131 | 1131 | AM_RANGE(0xc00406, 0xc00407) AM_READ(sunsetbl_eeprom_r) |
| 1132 | 1132 | AM_RANGE(0xc00600, 0xc00601) AM_DEVREADWRITE8("oki", okim6295_r, okim6295_w, 0x00ff) |
| 1133 | AM_RANGE(0x75d288, 0x75d289) AM_READ | |
| 1133 | AM_RANGE(0x75d288, 0x75d289) AM_READ | |
| 1134 | 1134 | ADDRESS_MAP_END |
| 1135 | 1135 | |
| 1136 | 1136 | |
| r4470 | r4471 | |
| 1145 | 1145 | AM_RANGE(0x500100, 0x500101) AM_WRITE(thndrx2_eeprom_w) |
| 1146 | 1146 | AM_RANGE(0x500200, 0x500201) AM_READ(thndrx2_in0_r) |
| 1147 | 1147 | AM_RANGE(0x500202, 0x500203) AM_READ(thndrx2_eeprom_r) |
| 1148 | AM_RANGE(0x500300, 0x500301) AM_WRITE | |
| 1148 | AM_RANGE(0x500300, 0x500301) AM_WRITE | |
| 1149 | 1149 | AM_RANGE(0x600000, 0x607fff) AM_READWRITE(K052109_word_noA12_r, K052109_word_noA12_w) |
| 1150 | 1150 | AM_RANGE(0x700000, 0x700007) AM_READWRITE(K051937_word_r, K051937_word_w) |
| 1151 | 1151 | AM_RANGE(0x700400, 0x7007ff) AM_READWRITE(K051960_word_r, K051960_word_w) |
| r4470 | r4471 | |
| 1240 | 1240 | ADDRESS_MAP_END |
| 1241 | 1241 | |
| 1242 | 1242 | |
| 1243 | ||
| 1244 | #define KONAMI_PLAYERS_INPUT_LSB( player, button3, start ) \ | |
| 1245 | PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(player) \ | |
| 1246 | PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(player) \ | |
| 1247 | PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(player) \ | |
| 1248 | PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(player) \ | |
| 1249 | PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(player) \ | |
| 1250 | PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(player) \ | |
| 1251 | PORT_BIT( 0x0040, IP_ACTIVE_LOW, button3 ) PORT_PLAYER(player) \ | |
| 1252 | PORT_BIT( 0x0080, IP_ACTIVE_LOW, start ) | |
| 1253 | ||
| 1254 | #define KONAMI_PLAYERS_INPUT_MSB( player, button3, start ) \ | |
| 1255 | PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(player) \ | |
| 1256 | PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(player) \ | |
| 1257 | PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(player) \ | |
| 1258 | PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(player) \ | |
| 1259 | PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(player) \ | |
| 1260 | PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(player) \ | |
| 1261 | PORT_BIT( 0x4000, IP_ACTIVE_LOW, button3 ) PORT_PLAYER(player) \ | |
| 1262 | PORT_BIT( 0x8000, IP_ACTIVE_LOW, start ) | |
| 1263 | ||
| 1264 | 1243 | static INPUT_PORTS_START( cuebrick ) |
| 1265 | 1244 | PORT_START("COINS") |
| 1266 | 1245 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) |
| r4470 | r4471 | |
| 1273 | 1252 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 1274 | 1253 | |
| 1275 | 1254 | PORT_START("P1") |
| 1276 | KONAMI | |
| 1255 | KONAMI16 | |
| 1277 | 1256 | |
| 1278 | 1257 | PORT_START("P2") |
| 1279 | KONAMI | |
| 1258 | KONAMI16 | |
| 1280 | 1259 | |
| 1281 | 1260 | PORT_START("DSW1") |
| 1282 | 1261 | PORT_DIPNAME( 0x03, 0x02, DEF_STR( Lives ) ) |
| r4470 | r4471 | |
| 1300 | 1279 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 1301 | 1280 | |
| 1302 | 1281 | PORT_START("DSW2") |
| 1303 | PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) ) | |
| 1304 | PORT_DIPSETTING( 0x02, DEF_STR( 4C_1C ) ) | |
| 1305 | PORT_DIPSETTING( 0x05, DEF_STR( 3C_1C ) ) | |
| 1306 | PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) ) | |
| 1307 | PORT_DIPSETTING( 0x04, DEF_STR( 3C_2C ) ) | |
| 1308 | PORT_DIPSETTING( 0x01, DEF_STR( 4C_3C ) ) | |
| 1309 | PORT_DIPSETTING( 0x0f, DEF_STR( 1C_1C ) ) | |
| 1310 | PORT_DIPSETTING( 0x03, DEF_STR( 3C_4C ) ) | |
| 1311 | PORT_DIPSETTING( 0x07, DEF_STR( 2C_3C ) ) | |
| 1312 | PORT_DIPSETTING( 0x0e, DEF_STR( 1C_2C ) ) | |
| 1313 | PORT_DIPSETTING( 0x06, DEF_STR( 2C_5C ) ) | |
| 1314 | PORT_DIPSETTING( 0x0d, DEF_STR( 1C_3C ) ) | |
| 1315 | PORT_DIPSETTING( 0x0c, DEF_STR( 1C_4C ) ) | |
| 1316 | PORT_DIPSETTING( 0x0b, DEF_STR( 1C_5C ) ) | |
| 1317 | PORT_DIPSETTING( 0x0a, DEF_STR( 1C_6C ) ) | |
| 1318 | PORT_DIPSETTING( 0x09, DEF_STR( 1C_7C ) ) | |
| 1319 | PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) | |
| 1320 | PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) ) | |
| 1321 | PORT_DIPSETTING( 0x20, DEF_STR( 4C_1C ) ) | |
| 1322 | PORT_DIPSETTING( 0x50, DEF_STR( 3C_1C ) ) | |
| 1323 | PORT_DIPSETTING( 0x80, DEF_STR( 2C_1C ) ) | |
| 1324 | PORT_DIPSETTING( 0x40, DEF_STR( 3C_2C ) ) | |
| 1325 | PORT_DIPSETTING( 0x10, DEF_STR( 4C_3C ) ) | |
| 1326 | PORT_DIPSETTING( 0xf0, DEF_STR( 1C_1C ) ) | |
| 1327 | PORT_DIPSETTING( 0x30, DEF_STR( 3C_4C ) ) | |
| 1328 | PORT_DIPSETTING( 0x70, DEF_STR( 2C_3C ) ) | |
| 1329 | PORT_DIPSETTING( 0xe0, DEF_STR( 1C_2C ) ) | |
| 1330 | PORT_DIPSETTING( 0x60, DEF_STR( 2C_5C ) ) | |
| 1331 | PORT_DIPSETTING( 0xd0, DEF_STR( 1C_3C ) ) | |
| 1332 | PORT_DIPSETTING( 0xc0, DEF_STR( 1C_4C ) ) | |
| 1333 | PORT_DIPSETTING( 0xb0, DEF_STR( 1C_5C ) ) | |
| 1334 | PORT_DIPSETTING( 0xa0, DEF_STR( 1C_6C ) ) | |
| 1335 | PORT_DIPSETTING( 0x90, DEF_STR( 1C_7C ) ) | |
| 1336 | // PORT_DIPSETTING( 0x00, "Invalid" ) | |
| 1282 | KONAMI_COINAGE(DEF_STR( Free_Play ), "Invalid") | |
| 1283 | /* "Invalid" = both coin slots disabled */ | |
| 1337 | 1284 | |
| 1338 | 1285 | PORT_START("DSW3") |
| 1339 | 1286 | PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) ) |
| r4470 | r4471 | |
| 1358 | 1305 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 1359 | 1306 | |
| 1360 | 1307 | PORT_START("P1") |
| 1361 | KONAMI | |
| 1308 | KONAMI16 | |
| 1362 | 1309 | |
| 1363 | 1310 | PORT_START("P2") |
| 1364 | KONAMI | |
| 1311 | KONAMI16 | |
| 1365 | 1312 | |
| 1366 | 1313 | PORT_START("DSW1") |
| 1367 | PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) ) | |
| 1368 | PORT_DIPSETTING( 0x02, DEF_STR( 4C_1C ) ) | |
| 1369 | PORT_DIPSETTING( 0x05, DEF_STR( 3C_1C ) ) | |
| 1370 | PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) ) | |
| 1371 | PORT_DIPSETTING( 0x04, DEF_STR( 3C_2C ) ) | |
| 1372 | PORT_DIPSETTING( 0x01, DEF_STR( 4C_3C ) ) | |
| 1373 | PORT_DIPSETTING( 0x0f, DEF_STR( 1C_1C ) ) | |
| 1374 | PORT_DIPSETTING( 0x03, DEF_STR( 3C_4C ) ) | |
| 1375 | PORT_DIPSETTING( 0x07, DEF_STR( 2C_3C ) ) | |
| 1376 | PORT_DIPSETTING( 0x0e, DEF_STR( 1C_2C ) ) | |
| 1377 | PORT_DIPSETTING( 0x06, DEF_STR( 2C_5C ) ) | |
| 1378 | PORT_DIPSETTING( 0x0d, DEF_STR( 1C_3C ) ) | |
| 1379 | PORT_DIPSETTING( 0x0c, DEF_STR( 1C_4C ) ) | |
| 1380 | PORT_DIPSETTING( 0x0b, DEF_STR( 1C_5C ) ) | |
| 1381 | PORT_DIPSETTING( 0x0a, DEF_STR( 1C_6C ) ) | |
| 1382 | PORT_DIPSETTING( 0x09, DEF_STR( 1C_7C ) ) | |
| 1383 | PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) | |
| 1384 | PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) ) | |
| 1385 | PORT_DIPSETTING( 0x20, DEF_STR( 4C_1C ) ) | |
| 1386 | PORT_DIPSETTING( 0x50, DEF_STR( 3C_1C ) ) | |
| 1387 | PORT_DIPSETTING( 0x80, DEF_STR( 2C_1C ) ) | |
| 1388 | PORT_DIPSETTING( 0x40, DEF_STR( 3C_2C ) ) | |
| 1389 | PORT_DIPSETTING( 0x10, DEF_STR( 4C_3C ) ) | |
| 1390 | PORT_DIPSETTING( 0xf0, DEF_STR( 1C_1C ) ) | |
| 1391 | PORT_DIPSETTING( 0x30, DEF_STR( 3C_4C ) ) | |
| 1392 | PORT_DIPSETTING( 0x70, DEF_STR( 2C_3C ) ) | |
| 1393 | PORT_DIPSETTING( 0xe0, DEF_STR( 1C_2C ) ) | |
| 1394 | PORT_DIPSETTING( 0x60, DEF_STR( 2C_5C ) ) | |
| 1395 | PORT_DIPSETTING( 0xd0, DEF_STR( 1C_3C ) ) | |
| 1396 | PORT_DIPSETTING( 0xc0, DEF_STR( 1C_4C ) ) | |
| 1397 | PORT_DIPSETTING( 0xb0, DEF_STR( 1C_5C ) ) | |
| 1398 | PORT_DIPSETTING( 0xa0, DEF_STR( 1C_6C ) ) | |
| 1399 | PORT_DIPSETTING( 0x90, DEF_STR( 1C_7C ) ) | |
| 1400 | // PORT_DIPSETTING( 0x00, "Invalid" ) | |
| 1314 | KONAMI_COINAGE(DEF_STR( Free_Play ), "Invalid") | |
| 1315 | /* "Invalid" = both coin slots disabled */ | |
| 1401 | 1316 | |
| 1402 | 1317 | PORT_START("DSW2") |
| 1403 | 1318 | PORT_DIPNAME( 0x03, 0x02, DEF_STR( Lives ) ) |
| r4470 | r4471 | |
| 1443 | 1358 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SERVICE4 ) |
| 1444 | 1359 | |
| 1445 | 1360 | PORT_START("P1") |
| 1446 | KONAMI | |
| 1361 | KONAMI16 | |
| 1447 | 1362 | |
| 1448 | 1363 | PORT_START("P2") |
| 1449 | KONAMI | |
| 1364 | KONAMI16 | |
| 1450 | 1365 | |
| 1451 | 1366 | PORT_START("P3") |
| 1452 | KONAMI | |
| 1367 | KONAMI16 | |
| 1453 | 1368 | |
| 1369 | PORT_START("P4") | |
| 1370 | KONAMI16_LSB( 4, IPT_UNKNOWN, IPT_UNKNOWN ) | |
| 1371 | ||
| 1454 | 1372 | PORT_START("DSW1") |
| 1455 | 1373 | PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coinage ) ) |
| 1456 | 1374 | PORT_DIPSETTING( 0x00, DEF_STR( 5C_1C ) ) |
| r4470 | r4471 | |
| 1494 | 1412 | PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) |
| 1495 | 1413 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 1496 | 1414 | |
| 1497 | PORT_START("P4") | |
| 1498 | KONAMI_PLAYERS_INPUT_LSB( 4, IPT_UNKNOWN, IPT_UNKNOWN ) | |
| 1499 | ||
| 1500 | 1415 | PORT_START("DSW3") |
| 1501 | 1416 | PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) ) |
| 1502 | 1417 | PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) |
| r4470 | r4471 | |
| 1523 | 1438 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) |
| 1524 | 1439 | |
| 1525 | 1440 | PORT_START("P1") |
| 1526 | KONAMI | |
| 1441 | KONAMI16 | |
| 1527 | 1442 | |
| 1528 | 1443 | PORT_START("P2") |
| 1529 | KONAMI | |
| 1444 | KONAMI16 | |
| 1530 | 1445 | |
| 1531 | 1446 | PORT_START("P3") |
| 1532 | 1447 | PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 1533 | 1448 | |
| 1449 | PORT_START("P4") | |
| 1450 | PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) | |
| 1451 | ||
| 1534 | 1452 | PORT_START("DSW1") |
| 1535 | PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) ) | |
| 1536 | PORT_DIPSETTING( 0x02, DEF_STR( 4C_1C ) ) | |
| 1537 | PORT_DIPSETTING( 0x05, DEF_STR( 3C_1C ) ) | |
| 1538 | PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) ) | |
| 1539 | PORT_DIPSETTING( 0x04, DEF_STR( 3C_2C ) ) | |
| 1540 | PORT_DIPSETTING( 0x01, DEF_STR( 4C_3C ) ) | |
| 1541 | PORT_DIPSETTING( 0x0f, DEF_STR( 1C_1C ) ) | |
| 1542 | PORT_DIPSETTING( 0x03, DEF_STR( 3C_4C ) ) | |
| 1543 | PORT_DIPSETTING( 0x07, DEF_STR( 2C_3C ) ) | |
| 1544 | PORT_DIPSETTING( 0x0e, DEF_STR( 1C_2C ) ) | |
| 1545 | PORT_DIPSETTING( 0x06, DEF_STR( 2C_5C ) ) | |
| 1546 | PORT_DIPSETTING( 0x0d, DEF_STR( 1C_3C ) ) | |
| 1547 | PORT_DIPSETTING( 0x0c, DEF_STR( 1C_4C ) ) | |
| 1548 | PORT_DIPSETTING( 0x0b, DEF_STR( 1C_5C ) ) | |
| 1549 | PORT_DIPSETTING( 0x0a, DEF_STR( 1C_6C ) ) | |
| 1550 | PORT_DIPSETTING( 0x09, DEF_STR( 1C_7C ) ) | |
| 1551 | PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) | |
| 1552 | PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) ) | |
| 1553 | PORT_DIPSETTING( 0x20, DEF_STR( 4C_1C ) ) | |
| 1554 | PORT_DIPSETTING( 0x50, DEF_STR( 3C_1C ) ) | |
| 1555 | PORT_DIPSETTING( 0x80, DEF_STR( 2C_1C ) ) | |
| 1556 | PORT_DIPSETTING( 0x40, DEF_STR( 3C_2C ) ) | |
| 1557 | PORT_DIPSETTING( 0x10, DEF_STR( 4C_3C ) ) | |
| 1558 | PORT_DIPSETTING( 0xf0, DEF_STR( 1C_1C ) ) | |
| 1559 | PORT_DIPSETTING( 0x30, DEF_STR( 3C_4C ) ) | |
| 1560 | PORT_DIPSETTING( 0x70, DEF_STR( 2C_3C ) ) | |
| 1561 | PORT_DIPSETTING( 0xe0, DEF_STR( 1C_2C ) ) | |
| 1562 | PORT_DIPSETTING( 0x60, DEF_STR( 2C_5C ) ) | |
| 1563 | PORT_DIPSETTING( 0xd0, DEF_STR( 1C_3C ) ) | |
| 1564 | PORT_DIPSETTING( 0xc0, DEF_STR( 1C_4C ) ) | |
| 1565 | PORT_DIPSETTING( 0xb0, DEF_STR( 1C_5C ) ) | |
| 1566 | PORT_DIPSETTING( 0xa0, DEF_STR( 1C_6C ) ) | |
| 1567 | PORT_DIPSETTING( 0x90, DEF_STR( 1C_7C ) ) | |
| 1568 | // PORT_DIPSETTING( 0x00, "Invalid" ) | |
| 1453 | KONAMI_COINAGE(DEF_STR( Free_Play ), "No Coin B") | |
| 1454 | /* "No Coin B" = coins produce sound, but no effect on coin counter */ | |
| 1569 | 1455 | |
| 1570 | 1456 | PORT_START("DSW2") |
| 1571 | 1457 | PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) ) |
| r4470 | r4471 | |
| 1591 | 1477 | PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) |
| 1592 | 1478 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 1593 | 1479 | |
| 1594 | PORT_START("P4") | |
| 1595 | PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) | |
| 1596 | ||
| 1597 | 1480 | PORT_START("DSW3") |
| 1598 | 1481 | PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) ) |
| 1599 | 1482 | PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) |
| r4470 | r4471 | |
| 1686 | 1569 | PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) |
| 1687 | 1570 | |
| 1688 | 1571 | PORT_START("P1/P2") |
| 1689 | KONAMI_PLAYERS_INPUT_LSB( 1, IPT_UNKNOWN, IPT_UNKNOWN ) | |
| 1690 | KONAMI_PLAYERS_INPUT_MSB( 2, IPT_UNKNOWN, IPT_UNKNOWN ) | |
| 1572 | KONAMI16_LSB( 1, IPT_UNKNOWN, IPT_UNKNOWN ) | |
| 1573 | KONAMI16_MSB( 2, IPT_UNKNOWN, IPT_UNKNOWN ) | |
| 1691 | 1574 | |
| 1692 | 1575 | PORT_START("P3/P4") |
| 1693 | KONAMI_PLAYERS_INPUT_LSB( 3, IPT_UNKNOWN, IPT_UNKNOWN ) | |
| 1694 | KONAMI_PLAYERS_INPUT_MSB( 4, IPT_UNKNOWN, IPT_UNKNOWN ) | |
| 1576 | KONAMI16_LSB( 3, IPT_UNKNOWN, IPT_UNKNOWN ) | |
| 1577 | KONAMI16_MSB( 4, IPT_UNKNOWN, IPT_UNKNOWN ) | |
| 1695 | 1578 | INPUT_PORTS_END |
| 1696 | 1579 | |
| 1697 | 1580 | static INPUT_PORTS_START( punksht2 ) |
| r4470 | r4471 | |
| 1772 | 1655 | PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) |
| 1773 | 1656 | |
| 1774 | 1657 | PORT_START("P1/P2") |
| 1775 | KONAMI_PLAYERS_INPUT_LSB( 1, IPT_UNKNOWN, IPT_UNKNOWN ) | |
| 1776 | KONAMI_PLAYERS_INPUT_MSB( 2, IPT_UNKNOWN, IPT_UNKNOWN ) | |
| 1658 | KONAMI16_LSB( 1, IPT_UNKNOWN, IPT_UNKNOWN ) | |
| 1659 | KONAMI16_MSB( 2, IPT_UNKNOWN, IPT_UNKNOWN ) | |
| 1777 | 1660 | |
| 1778 | 1661 | PORT_START("P3/P4") |
| 1779 | 1662 | PORT_BIT( 0xffff, IP_ACTIVE_LOW, IPT_UNUSED ) |
| r4470 | r4471 | |
| 1791 | 1674 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) |
| 1792 | 1675 | |
| 1793 | 1676 | PORT_START("P1") |
| 1794 | KONAMI | |
| 1677 | KONAMI16 | |
| 1795 | 1678 | |
| 1796 | 1679 | PORT_START("P2") |
| 1797 | KONAMI | |
| 1680 | KONAMI16 | |
| 1798 | 1681 | |
| 1799 | 1682 | PORT_START("DSW1") |
| 1800 | 1683 | PORT_DIPNAME( 0x03, 0x02, DEF_STR( Lives ) ) |
| r4470 | r4471 | |
| 1820 | 1703 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 1821 | 1704 | |
| 1822 | 1705 | PORT_START("DSW2") |
| 1823 | PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) ) | |
| 1824 | PORT_DIPSETTING( 0x02, DEF_STR( 4C_1C ) ) | |
| 1825 | PORT_DIPSETTING( 0x05, DEF_STR( 3C_1C ) ) | |
| 1826 | PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) ) | |
| 1827 | PORT_DIPSETTING( 0x04, DEF_STR( 3C_2C ) ) | |
| 1828 | PORT_DIPSETTING( 0x01, DEF_STR( 4C_3C ) ) | |
| 1829 | PORT_DIPSETTING( 0x0f, DEF_STR( 1C_1C ) ) | |
| 1830 | PORT_DIPSETTING( 0x03, DEF_STR( 3C_4C ) ) | |
| 1831 | PORT_DIPSETTING( 0x07, DEF_STR( 2C_3C ) ) | |
| 1832 | PORT_DIPSETTING( 0x0e, DEF_STR( 1C_2C ) ) | |
| 1833 | PORT_DIPSETTING( 0x06, DEF_STR( 2C_5C ) ) | |
| 1834 | PORT_DIPSETTING( 0x0d, DEF_STR( 1C_3C ) ) | |
| 1835 | PORT_DIPSETTING( 0x0c, DEF_STR( 1C_4C ) ) | |
| 1836 | PORT_DIPSETTING( 0x0b, DEF_STR( 1C_5C ) ) | |
| 1837 | PORT_DIPSETTING( 0x0a, DEF_STR( 1C_6C ) ) | |
| 1838 | PORT_DIPSETTING( 0x09, DEF_STR( 1C_7C ) ) | |
| 1839 | PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) | |
| 1840 | PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) ) | |
| 1841 | PORT_DIPSETTING( 0x20, DEF_STR( 4C_1C ) ) | |
| 1842 | PORT_DIPSETTING( 0x50, DEF_STR( 3C_1C ) ) | |
| 1843 | PORT_DIPSETTING( 0x80, DEF_STR( 2C_1C ) ) | |
| 1844 | PORT_DIPSETTING( 0x40, DEF_STR( 3C_2C ) ) | |
| 1845 | PORT_DIPSETTING( 0x10, DEF_STR( 4C_3C ) ) | |
| 1846 | PORT_DIPSETTING( 0xf0, DEF_STR( 1C_1C ) ) | |
| 1847 | PORT_DIPSETTING( 0x30, DEF_STR( 3C_4C ) ) | |
| 1848 | PORT_DIPSETTING( 0x70, DEF_STR( 2C_3C ) ) | |
| 1849 | PORT_DIPSETTING( 0xe0, DEF_STR( 1C_2C ) ) | |
| 1850 | PORT_DIPSETTING( 0x60, DEF_STR( 2C_5C ) ) | |
| 1851 | PORT_DIPSETTING( 0xd0, DEF_STR( 1C_3C ) ) | |
| 1852 | PORT_DIPSETTING( 0xc0, DEF_STR( 1C_4C ) ) | |
| 1853 | PORT_DIPSETTING( 0xb0, DEF_STR( 1C_5C ) ) | |
| 1854 | PORT_DIPSETTING( 0xa0, DEF_STR( 1C_6C ) ) | |
| 1855 | PORT_DIPSETTING( 0x90, DEF_STR( 1C_7C ) ) | |
| 1856 | // PORT_DIPSETTING( 0x00, "Invalid" ) | |
| 1706 | KONAMI_COINAGE(DEF_STR( Free_Play ), "No Coin B") | |
| 1707 | /* "No Coin B" = coins produce sound, but no effect on coin counter */ | |
| 1857 | 1708 | |
| 1858 | 1709 | PORT_START("DSW3") |
| 1859 | 1710 | PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) ) |
| r4470 | r4471 | |
| 1870 | 1721 | INPUT_PORTS_END |
| 1871 | 1722 | |
| 1872 | 1723 | static INPUT_PORTS_START( blswhstl ) |
| 1873 | PORT_START("P1") | |
| 1874 | KONAMI_PLAYERS_INPUT_LSB( 1, IPT_UNKNOWN, IPT_UNKNOWN ) | |
| 1875 | ||
| 1876 | PORT_START("P2") | |
| 1877 | KONAMI_PLAYERS_INPUT_LSB( 2, IPT_UNKNOWN, IPT_UNKNOWN ) | |
| 1878 | ||
| 1879 | 1724 | PORT_START("COINS") |
| 1880 | 1725 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) |
| 1881 | 1726 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) |
| r4470 | r4471 | |
| 1886 | 1731 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* VBLANK? OBJMPX? */ |
| 1887 | 1732 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) |
| 1888 | 1733 | |
| 1734 | PORT_START("P1") | |
| 1735 | KONAMI16_LSB( 1, IPT_UNKNOWN, IPT_UNKNOWN ) | |
| 1736 | ||
| 1737 | PORT_START("P2") | |
| 1738 | KONAMI16_LSB( 2, IPT_UNKNOWN, IPT_UNKNOWN ) | |
| 1739 | ||
| 1889 | 1740 | PORT_START("EEPROM") |
| 1890 | 1741 | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(eeprom_bit_r, NULL) /* EEPROM data */ |
| 1891 | 1742 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SPECIAL ) /* EEPROM status? - always 1 */ |
| r4470 | r4471 | |
| 1893 | 1744 | INPUT_PORTS_END |
| 1894 | 1745 | |
| 1895 | 1746 | static INPUT_PORTS_START( glfgreat ) |
| 1896 | PORT_START("P1/P2") | |
| 1897 | KONAMI_PLAYERS_INPUT_LSB( 1, IPT_BUTTON3, IPT_BUTTON4 ) PORT_PLAYER(1) | |
| 1898 | KONAMI_PLAYERS_INPUT_MSB( 2, IPT_BUTTON3, IPT_BUTTON4 ) PORT_PLAYER(2) | |
| 1899 | ||
| 1900 | PORT_START("P3/P4") | |
| 1901 | KONAMI_PLAYERS_INPUT_LSB( 3, IPT_BUTTON3, IPT_BUTTON4 ) PORT_PLAYER(3) | |
| 1902 | KONAMI_PLAYERS_INPUT_MSB( 4, IPT_BUTTON3, IPT_BUTTON4 ) PORT_PLAYER(4) | |
| 1903 | ||
| 1904 | 1747 | PORT_START("DSW1/DSW2") |
| 1905 | PORT_DIPNAME( 0x000f, 0x000f, DEF_STR( Coin_A ) ) | |
| 1906 | PORT_DIPSETTING( 0x0002, DEF_STR( 4C_1C ) ) | |
| 1907 | PORT_DIPSETTING( 0x0005, DEF_STR( 3C_1C ) ) | |
| 1908 | PORT_DIPSETTING( 0x0008, DEF_STR( 2C_1C ) ) | |
| 1909 | PORT_DIPSETTING( 0x0004, DEF_STR( 3C_2C ) ) | |
| 1910 | PORT_DIPSETTING( 0x0001, DEF_STR( 4C_3C ) ) | |
| 1911 | PORT_DIPSETTING( 0x000f, DEF_STR( 1C_1C ) ) | |
| 1912 | PORT_DIPSETTING( 0x0003, DEF_STR( 3C_4C ) ) | |
| 1913 | PORT_DIPSETTING( 0x0007, DEF_STR( 2C_3C ) ) | |
| 1914 | PORT_DIPSETTING( 0x000e, DEF_STR( 1C_2C ) ) | |
| 1915 | PORT_DIPSETTING( 0x0006, DEF_STR( 2C_5C ) ) | |
| 1916 | PORT_DIPSETTING( 0x000d, DEF_STR( 1C_3C ) ) | |
| 1917 | PORT_DIPSETTING( 0x000c, DEF_STR( 1C_4C ) ) | |
| 1918 | PORT_DIPSETTING( 0x000b, DEF_STR( 1C_5C ) ) | |
| 1919 | PORT_DIPSETTING( 0x000a, DEF_STR( 1C_6C ) ) | |
| 1920 | PORT_DIPSETTING( 0x0009, DEF_STR( 1C_7C ) ) | |
| 1921 | PORT_DIPSETTING( 0x0000, DEF_STR( Free_Play ) ) | |
| 1922 | PORT_DIPNAME( 0x00f0, 0x00f0, DEF_STR( Coin_B ) ) | |
| 1923 | PORT_DIPSETTING( 0x0020, DEF_STR( 4C_1C ) ) | |
| 1924 | PORT_DIPSETTING( 0x0050, DEF_STR( 3C_1C ) ) | |
| 1925 | PORT_DIPSETTING( 0x0080, DEF_STR( 2C_1C ) ) | |
| 1926 | PORT_DIPSETTING( 0x0040, DEF_STR( 3C_2C ) ) | |
| 1927 | PORT_DIPSETTING( 0x0010, DEF_STR( 4C_3C ) ) | |
| 1928 | PORT_DIPSETTING( 0x00f0, DEF_STR( 1C_1C ) ) | |
| 1929 | PORT_DIPSETTING( 0x0030, DEF_STR( 3C_4C ) ) | |
| 1930 | PORT_DIPSETTING( 0x0070, DEF_STR( 2C_3C ) ) | |
| 1931 | PORT_DIPSETTING( 0x00e0, DEF_STR( 1C_2C ) ) | |
| 1932 | PORT_DIPSETTING( 0x0060, DEF_STR( 2C_5C ) ) | |
| 1933 | PORT_DIPSETTING( 0x00d0, DEF_STR( 1C_3C ) ) | |
| 1934 | PORT_DIPSETTING( 0x00c0, DEF_STR( 1C_4C ) ) | |
| 1935 | PORT_DIPSETTING( 0x00b0, DEF_STR( 1C_5C ) ) | |
| 1936 | PORT_DIPSETTING( 0x00a0, DEF_STR( 1C_6C ) ) | |
| 1937 | PORT_DIPSETTING( 0x0090, DEF_STR( 1C_7C ) ) | |
| 1938 | // PORT_DIPSETTING( 0x0000, "Invalid" ) | |
| 1748 | KONAMI_COINAGE(DEF_STR( Free_Play ), "No Coin B") | |
| 1749 | /* "No Coin B" = coins produce sound, but no effect on coin counter */ | |
| 1939 | 1750 | PORT_DIPNAME( 0x0300, 0x0100, "Players/Controllers" ) |
| 1940 | 1751 | PORT_DIPSETTING( 0x0300, "4/1" ) |
| 1941 | 1752 | PORT_DIPSETTING( 0x0200, "4/2" ) |
| r4470 | r4471 | |
| 1984 | 1795 | PORT_DIPNAME( 0x8000, 0x8000, DEF_STR( Unknown ) ) |
| 1985 | 1796 | PORT_DIPSETTING( 0x8000, DEF_STR( Off ) ) |
| 1986 | 1797 | PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) |
| 1987 | INPUT_PORTS_END | |
| 1988 | 1798 | |
| 1989 | static INPUT_PORTS_START( ssriders ) | |
| 1990 | PORT_START("P1") | |
| 1991 | KONAMI_PLAYERS_INPUT_LSB( 1, IPT_UNKNOWN, IPT_START1 ) | |
| 1799 | PORT_START("P1/P2") | |
| 1800 | KONAMI16_LSB( 1, IPT_BUTTON3, IPT_BUTTON4 ) | |
| 1801 | KONAMI16_MSB( 2, IPT_BUTTON3, IPT_BUTTON4 ) | |
| 1992 | 1802 | |
| 1993 | PORT_START("P2") | |
| 1994 | KONAMI_PLAYERS_INPUT_LSB( 2, IPT_UNKNOWN, IPT_START2 ) | |
| 1803 | PORT_START("P3/P4") | |
| 1804 | KONAMI16_LSB( 3, IPT_BUTTON3, IPT_BUTTON4 ) | |
| 1805 | KONAMI16_MSB( 4, IPT_BUTTON3, IPT_BUTTON4 ) | |
| 1806 | INPUT_PORTS_END | |
| 1995 | 1807 | |
| 1808 | static INPUT_PORTS_START( ssriders ) | |
| 1996 | 1809 | PORT_START("COINS") |
| 1997 | 1810 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) |
| 1998 | 1811 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) |
| r4470 | r4471 | |
| 2003 | 1816 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) |
| 2004 | 1817 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) |
| 2005 | 1818 | |
| 1819 | PORT_START("P1") | |
| 1820 | KONAMI16_LSB( 1, IPT_UNKNOWN, IPT_START1 ) | |
| 1821 | ||
| 1822 | PORT_START("P2") | |
| 1823 | KONAMI16_LSB( 2, IPT_UNKNOWN, IPT_START2 ) | |
| 1824 | ||
| 1825 | PORT_START("P3") | |
| 1826 | PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) | |
| 1827 | ||
| 1828 | PORT_START("P4") | |
| 1829 | PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) | |
| 1830 | ||
| 2006 | 1831 | PORT_START("EEPROM") |
| 2007 | 1832 | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(eeprom_bit_r, NULL) /* EEPROM data */ |
| 2008 | 1833 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SPECIAL ) /* EEPROM status? - always 1 */ |
| r4470 | r4471 | |
| 2011 | 1836 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* ?? TMNT2: IPL0 */ |
| 2012 | 1837 | PORT_BIT( 0x60, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* unused? */ |
| 2013 | 1838 | PORT_SERVICE_NO_TOGGLE( 0x80, IP_ACTIVE_LOW ) |
| 2014 | ||
| 2015 | PORT_START("P3") | |
| 2016 | PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) | |
| 2017 | ||
| 2018 | PORT_START("P4") | |
| 2019 | PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) | |
| 2020 | 1839 | INPUT_PORTS_END |
| 2021 | 1840 | |
| 2022 | 1841 | static INPUT_PORTS_START( ssridr4p ) |
| 2023 | PORT_START("P1") | |
| 2024 | KONAMI_PLAYERS_INPUT_LSB( 1, IPT_UNKNOWN, IPT_UNKNOWN ) | |
| 2025 | ||
| 2026 | PORT_START("P2") | |
| 2027 | KONAMI_PLAYERS_INPUT_LSB( 2, IPT_UNKNOWN, IPT_UNKNOWN ) | |
| 2028 | ||
| 2029 | 1842 | PORT_START("COINS") |
| 2030 | 1843 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) |
| 2031 | 1844 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) |
| r4470 | r4471 | |
| 2036 | 1849 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SERVICE3 ) |
| 2037 | 1850 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SERVICE4 ) |
| 2038 | 1851 | |
| 1852 | PORT_START("P1") | |
| 1853 | KONAMI16_LSB( 1, IPT_UNKNOWN, IPT_UNKNOWN ) | |
| 1854 | ||
| 1855 | PORT_START("P2") | |
| 1856 | KONAMI16_LSB( 2, IPT_UNKNOWN, IPT_UNKNOWN ) | |
| 1857 | ||
| 1858 | PORT_START("P3") | |
| 1859 | KONAMI16_LSB( 3, IPT_UNKNOWN, IPT_UNKNOWN ) | |
| 1860 | ||
| 1861 | PORT_START("P4") | |
| 1862 | KONAMI16_LSB( 4, IPT_UNKNOWN, IPT_UNKNOWN ) | |
| 1863 | ||
| 2039 | 1864 | PORT_START("EEPROM") |
| 2040 | 1865 | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(eeprom_bit_r, NULL) /* EEPROM data */ |
| 2041 | 1866 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SPECIAL ) /* EEPROM status? - always 1 */ |
| r4470 | r4471 | |
| 2044 | 1869 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* ?? TMNT2: IPL0 */ |
| 2045 | 1870 | PORT_BIT( 0x60, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* unused? */ |
| 2046 | 1871 | PORT_SERVICE_NO_TOGGLE( 0x80, IP_ACTIVE_LOW ) |
| 2047 | ||
| 2048 | PORT_START("P3") | |
| 2049 | KONAMI_PLAYERS_INPUT_LSB( 3, IPT_UNKNOWN, IPT_UNKNOWN ) | |
| 2050 | ||
| 2051 | PORT_START("P4") | |
| 2052 | KONAMI_PLAYERS_INPUT_LSB( 4, IPT_UNKNOWN, IPT_UNKNOWN ) | |
| 2053 | 1872 | INPUT_PORTS_END |
| 2054 | 1873 | |
| 2055 | 1874 | /* Same as 'ssridr4p', but additional Start button for each player. |
| 2056 | 1875 | COIN3, COIN4, SERVICE3 and SERVICE4 only have an effect in the "test mode". */ |
| 2057 | 1876 | static INPUT_PORTS_START( ssrid4ps ) |
| 2058 | PORT_START("P1") | |
| 2059 | KONAMI_PLAYERS_INPUT_LSB( 1, IPT_UNKNOWN, IPT_START1 ) | |
| 2060 | ||
| 2061 | PORT_START("P2") | |
| 2062 | KONAMI_PLAYERS_INPUT_LSB( 2, IPT_UNKNOWN, IPT_START2 ) | |
| 2063 | ||
| 2064 | 1877 | PORT_START("COINS") |
| 2065 | 1878 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) |
| 2066 | 1879 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) |
| r4470 | r4471 | |
| 2071 | 1884 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SERVICE3 ) |
| 2072 | 1885 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SERVICE4 ) |
| 2073 | 1886 | |
| 1887 | PORT_START("P1") | |
| 1888 | KONAMI16_LSB( 1, IPT_UNKNOWN, IPT_START1 ) | |
| 1889 | ||
| 1890 | PORT_START("P2") | |
| 1891 | KONAMI16_LSB( 2, IPT_UNKNOWN, IPT_START2 ) | |
| 1892 | ||
| 1893 | PORT_START("P3") | |
| 1894 | KONAMI16_LSB( 3, IPT_UNKNOWN, IPT_START3 ) | |
| 1895 | ||
| 1896 | PORT_START("P4") | |
| 1897 | KONAMI16_LSB( 4, IPT_UNKNOWN, IPT_START4 ) | |
| 1898 | ||
| 2074 | 1899 | PORT_START("EEPROM") |
| 2075 | 1900 | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(eeprom_bit_r, NULL) /* EEPROM data */ |
| 2076 | 1901 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SPECIAL ) /* EEPROM status? - always 1 */ |
| r4470 | r4471 | |
| 2079 | 1904 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* ?? TMNT2: IPL0 */ |
| 2080 | 1905 | PORT_BIT( 0x60, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* unused? */ |
| 2081 | 1906 | PORT_SERVICE_NO_TOGGLE( 0x80, IP_ACTIVE_LOW ) |
| 2082 | ||
| 2083 | PORT_START("P3") | |
| 2084 | KONAMI_PLAYERS_INPUT_LSB( 3, IPT_UNKNOWN, IPT_START3 ) | |
| 2085 | ||
| 2086 | PORT_START("P4") | |
| 2087 | KONAMI_PLAYERS_INPUT_LSB( 4, IPT_UNKNOWN, IPT_START4 ) | |
| 2088 | 1907 | INPUT_PORTS_END |
| 2089 | 1908 | |
| 2090 | 1909 | /* Version for the bootleg, which has the service switch a little different */ |
| 2091 | 1910 | static INPUT_PORTS_START( sunsetbl ) |
| 2092 | PORT_START("P1") | |
| 2093 | KONAMI_PLAYERS_INPUT_LSB( 1, IPT_UNKNOWN, IPT_START1 ) | |
| 2094 | ||
| 2095 | PORT_START("P2") | |
| 2096 | KONAMI_PLAYERS_INPUT_LSB( 2, IPT_UNKNOWN, IPT_START2 ) | |
| 2097 | ||
| 2098 | 1911 | PORT_START("COINS") |
| 2099 | 1912 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) |
| 2100 | 1913 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) |
| r4470 | r4471 | |
| 2105 | 1918 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SERVICE3 ) |
| 2106 | 1919 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SERVICE4 ) |
| 2107 | 1920 | |
| 1921 | PORT_START("P1") | |
| 1922 | KONAMI16_LSB( 1, IPT_UNKNOWN, IPT_START1 ) | |
| 1923 | ||
| 1924 | PORT_START("P2") | |
| 1925 | KONAMI16_LSB( 2, IPT_UNKNOWN, IPT_START2 ) | |
| 1926 | ||
| 1927 | PORT_START("P3") | |
| 1928 | KONAMI16_LSB( 3, IPT_UNKNOWN, IPT_START3 ) | |
| 1929 | ||
| 1930 | PORT_START("P4") | |
| 1931 | KONAMI16_LSB( 4, IPT_UNKNOWN, IPT_START4 ) | |
| 1932 | ||
| 2108 | 1933 | PORT_START("EEPROM") |
| 2109 | 1934 | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(eeprom_bit_r, NULL) /* EEPROM data */ |
| 2110 | 1935 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SPECIAL ) /* EEPROM status? - always 1 */ |
| r4470 | r4471 | |
| 2113 | 1938 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) |
| 2114 | 1939 | PORT_BIT( 0x60, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* unused? */ |
| 2115 | 1940 | PORT_SERVICE_NO_TOGGLE( 0x80, IP_ACTIVE_LOW ) |
| 2116 | ||
| 2117 | PORT_START("P3") | |
| 2118 | KONAMI_PLAYERS_INPUT_LSB( 3, IPT_UNKNOWN, IPT_START3 ) | |
| 2119 | ||
| 2120 | PORT_START("P4") | |
| 2121 | KONAMI_PLAYERS_INPUT_LSB( 4, IPT_UNKNOWN, IPT_START4 ) | |
| 2122 | 1941 | INPUT_PORTS_END |
| 2123 | 1942 | |
| 2124 | 1943 | static INPUT_PORTS_START( qgakumon ) |
| r4470 | r4471 | |
| 2142 | 1961 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) |
| 2143 | 1962 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 ) |
| 2144 | 1963 | |
| 1964 | PORT_START("P3") | |
| 1965 | PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) | |
| 1966 | ||
| 1967 | PORT_START("P4") | |
| 1968 | PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) | |
| 1969 | ||
| 2145 | 1970 | PORT_START("COINS") |
| 2146 | 1971 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) |
| 2147 | 1972 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) |
| r4470 | r4471 | |
| 2160 | 1985 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* ?? TMNT2: IPL0 */ |
| 2161 | 1986 | PORT_BIT( 0x60, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* unused? */ |
| 2162 | 1987 | PORT_SERVICE_NO_TOGGLE( 0x80, IP_ACTIVE_LOW ) |
| 2163 | ||
| 2164 | PORT_START("P3") | |
| 2165 | PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) | |
| 2166 | ||
| 2167 | PORT_START("P4") | |
| 2168 | PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) | |
| 2169 | 1988 | INPUT_PORTS_END |
| 2170 | 1989 | |
| 2171 | 1990 | static INPUT_PORTS_START( thndrx2 ) |
| 2172 | 1991 | PORT_START("P1/COINS") |
| 2173 | KONAMI | |
| 1992 | KONAMI16 | |
| 2174 | 1993 | PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_COIN1 ) |
| 2175 | 1994 | PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_COIN2 ) |
| 2176 | 1995 | PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_SERVICE1 ) |
| r4470 | r4471 | |
| 2181 | 2000 | PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) |
| 2182 | 2001 | |
| 2183 | 2002 | PORT_START("P2/EEPROM") |
| 2184 | KONAMI | |
| 2003 | KONAMI16 | |
| 2185 | 2004 | PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(eeprom_bit_r, NULL) /* EEPROM data */ |
| 2186 | 2005 | PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_SPECIAL ) /* EEPROM status? - always 1 */ |
| 2187 | 2006 | PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_UNKNOWN ) |
| r4470 | r4471 | |
| 2194 | 2013 | |
| 2195 | 2014 | static INPUT_PORTS_START( prmrsocr ) |
| 2196 | 2015 | PORT_START("P1/COINS") |
| 2197 | KONAMI | |
| 2016 | KONAMI16 | |
| 2198 | 2017 | PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_SERVICE1 ) |
| 2199 | 2018 | PORT_SERVICE_NO_TOGGLE( 0x0200, IP_ACTIVE_LOW ) |
| 2200 | 2019 | PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_COIN1 ) |
| r4470 | r4471 | |
| 2213 | 2032 | PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) |
| 2214 | 2033 | |
| 2215 | 2034 | PORT_START("P2/EEPROM") |
| 2216 | KONAMI | |
| 2035 | KONAMI16 | |
| 2217 | 2036 | PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(eeprom_bit_r, NULL) /* EEPROM data */ |
| 2218 | 2037 | PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_SPECIAL ) /* EEPROM status? - always 1 */ |
| 2219 | 2038 | PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_COIN2 ) |
| r4470 | r4471 | |
|---|---|---|
| 2023 | 2023 | |
| 2024 | 2024 | AM_RANGE(0x006b0, 0x006b1) AM_WRITE(mcu_prog_w) |
| 2025 | 2025 | AM_RANGE(0x006b2, 0x006b3) AM_WRITE(mcu_prog_w2) |
| 2026 | AM_RANGE(0x006b4, 0x006b5) AM_WRITE(SMH_NOP) | |
| 2027 | AM_RANGE(0x006b6, 0x006b7) AM_WRITE(SMH_NOP) | |
| 2026 | AM_RANGE(0x006b4, 0x006b5) AM_WRITENOP | |
| 2027 | AM_RANGE(0x006b6, 0x006b7) AM_WRITENOP | |
| 2028 | 2028 | |
| 2029 | 2029 | AM_RANGE(0x006bc, 0x006bd) AM_WRITE(mcu_prog_offs_w) |
| 2030 | 2030 |
| r4470 | r4471 | |
|---|---|---|
| 149 | 149 | AM_RANGE(0x4c00, 0x4fff) AM_READ(galaxold_videoram_r) |
| 150 | 150 | AM_RANGE(0x5000, 0x50ff) AM_READ(SMH_RAM) |
| 151 | 151 | AM_RANGE(0x7000, 0x7000) AM_READ(watchdog_reset_r) |
| 152 | AM_RANGE(0x7000, 0x7000) AM_READ | |
| 152 | AM_RANGE(0x7000, 0x7000) AM_READ | |
| 153 | 153 | AM_RANGE(0x8100, 0x810f) AM_DEVREAD("ppi8255_0", mars_ppi8255_r) |
| 154 | 154 | AM_RANGE(0x8200, 0x820f) AM_DEVREAD("ppi8255_1", mars_ppi8255_r) |
| 155 | 155 | ADDRESS_MAP_END |
| r4470 | r4471 | |
| 1298 | 1298 | static ADDRESS_MAP_START( scramble_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 ) |
| 1299 | 1299 | AM_RANGE(0x0000, 0x2fff) AM_WRITE(SMH_ROM) |
| 1300 | 1300 | AM_RANGE(0x8000, 0x8fff) AM_WRITE(scramble_soundram_w) |
| 1301 | AM_RANGE(0x8000, 0x83ff) AM_WRITE | |
| 1301 | AM_RANGE(0x8000, 0x83ff) AM_WRITE | |
| 1302 | 1302 | AM_RANGE(0x9000, 0x9fff) AM_WRITE(scramble_filter_w) |
| 1303 | 1303 | ADDRESS_MAP_END |
| 1304 | 1304 |
| r4470 | r4471 | |
|---|---|---|
| 3 | 3 | #include "driver.h" |
| 4 | 4 | #include "cpu/z80/z80.h" |
| 5 | 5 | #include "sound/dac.h" |
| 6 | #include "konamipt.h" | |
| 6 | 7 | |
| 7 | 8 | static UINT8 *mogura_tileram; |
| 8 | 9 | static UINT8* mogura_gfxram; |
| r4470 | r4471 | |
| 96 | 97 | |
| 97 | 98 | static ADDRESS_MAP_START( io_map, ADDRESS_SPACE_IO, 8 ) |
| 98 | 99 | ADDRESS_MAP_GLOBAL_MASK(0xff) |
| 99 | AM_RANGE(0x00, 0x00) AM_WRITE | |
| 100 | AM_RANGE(0x00, 0x00) AM_WRITE | |
| 100 | 101 | AM_RANGE(0x08, 0x08) AM_READ_PORT("SYSTEM") |
| 101 | 102 | AM_RANGE(0x0c, 0x0c) AM_READ_PORT("P1") |
| 102 | 103 | AM_RANGE(0x0d, 0x0d) AM_READ_PORT("P2") |
| r4470 | r4471 | |
| 142 | 143 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SERVICE4 ) |
| 143 | 144 | |
| 144 | 145 | PORT_START("P1") |
| 145 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) | |
| 146 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) | |
| 147 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) | |
| 148 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) | |
| 149 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1) PORT_PLAYER(1) | |
| 150 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2) PORT_PLAYER(1) | |
| 151 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3) PORT_PLAYER(1) | |
| 152 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 ) | |
| 146 | KONAMI8_B123_START(1) | |
| 153 | 147 | |
| 154 | 148 | PORT_START("P2") |
| 155 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) | |
| 156 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) | |
| 157 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) | |
| 158 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) | |
| 159 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1) PORT_PLAYER(2) | |
| 160 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2) PORT_PLAYER(2) | |
| 161 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3) PORT_PLAYER(2) | |
| 162 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 ) | |
| 149 | KONAMI8_B123_START(2) | |
| 163 | 150 | |
| 164 | 151 | PORT_START("P3") |
| 165 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(3) | |
| 166 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(3) | |
| 167 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(3) | |
| 168 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(3) | |
| 169 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1) PORT_PLAYER(3) | |
| 170 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2) PORT_PLAYER(3) | |
| 171 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3) PORT_PLAYER(3) | |
| 172 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START3 ) | |
| 152 | KONAMI8_B123_START(3) | |
| 173 | 153 | |
| 174 | 154 | PORT_START("P4") |
| 175 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(4) | |
| 176 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(4) | |
| 177 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(4) | |
| 178 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(4) | |
| 179 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1) PORT_PLAYER(4) | |
| 180 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2) PORT_PLAYER(4) | |
| 181 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3) PORT_PLAYER(4) | |
| 182 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START4 ) | |
| 155 | KONAMI8_B123_START(4) | |
| 183 | 156 | |
| 184 | 157 | PORT_START("SERVICE") |
| 185 | 158 | PORT_SERVICE_NO_TOGGLE( 0x01, IP_ACTIVE_LOW) |
| r4470 | r4471 | |
| 245 | 218 | ROM_END |
| 246 | 219 | |
| 247 | 220 | GAME( 1991, mogura, 0, mogura, mogura, 0, ROT0, "Konami", "Mogura Desse", 0 ) |
| 248 |
| r4470 | r4471 | |
|---|---|---|
| 229 | 229 | AM_RANGE(0xc400, 0xc400) AM_READ(soundlatch_r) |
| 230 | 230 | AM_RANGE(0xcc00, 0xcc03) AM_DEVREAD("3438.0", ym3438_r) |
| 231 | 231 | AM_RANGE(0xd000, 0xd003) AM_DEVREAD("3438.1", ym3438_r) |
| 232 | AM_RANGE(0xdf00, 0xdfff) AM_READ | |
| 232 | AM_RANGE(0xdf00, 0xdfff) AM_READ | |
| 233 | 233 | AM_RANGE(0xe000, 0xffff) AM_READ(SMH_RAM) |
| 234 | 234 | ADDRESS_MAP_END |
| 235 | 235 | |
| 236 | 236 | static ADDRESS_MAP_START(shdancbl_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 ) |
| 237 | 237 | AM_RANGE(0x0000, 0x7fff) AM_WRITE(SMH_ROM) |
| 238 | AM_RANGE(0x8000, 0xbfff) AM_WRITE(SMH_NOP) /* ROM bank */ | |
| 239 | AM_RANGE(0xc000, 0xc00f) AM_WRITE(SMH_NOP) | |
| 238 | AM_RANGE(0x8000, 0xbfff) AM_WRITENOP /* ROM bank */ | |
| 239 | AM_RANGE(0xc000, 0xc00f) AM_WRITENOP | |
| 240 | 240 | AM_RANGE(0xc800, 0xc800) AM_WRITE(shdancbl_msm5205_data_w) |
| 241 | 241 | AM_RANGE(0xcc00, 0xcc03) AM_DEVWRITE("3438.0", ym3438_w) |
| 242 | 242 | AM_RANGE(0xd000, 0xd003) AM_DEVWRITE("3438.1", ym3438_w) |
| 243 | 243 | AM_RANGE(0xd400, 0xd400) AM_WRITE(shdancbl_bankctrl_w) |
| 244 | AM_RANGE(0xdf00, 0xdfff) AM_WRITE | |
| 244 | AM_RANGE(0xdf00, 0xdfff) AM_WRITE | |
| 245 | 245 | AM_RANGE(0xe000, 0xffff) AM_WRITE(SMH_RAM) |
| 246 | 246 | ADDRESS_MAP_END |
| 247 | 247 | |
| 248 | 248 | static ADDRESS_MAP_START( shdancbl_sound_io_map, ADDRESS_SPACE_IO, 8 ) |
| 249 | 249 | ADDRESS_MAP_GLOBAL_MASK(0xff) |
| 250 | AM_RANGE(0xa0, 0xbf) AM_WRITE(SMH_NOP) | |
| 251 | AM_RANGE(0xc0, 0xdf) AM_READ(SMH_NOP) | |
| 250 | AM_RANGE(0xa0, 0xbf) AM_WRITENOP | |
| 251 | AM_RANGE(0xc0, 0xdf) AM_READNOP | |
| 252 | 252 | ADDRESS_MAP_END |
| 253 | 253 | |
| 254 | 254 | /***************************************************************************/ |
| r4470 | r4471 | |
| 672 | 672 | AM_RANGE(0x440000, 0x440fff) AM_WRITE(SYS16_MWA16_SPRITERAM) AM_BASE(&sys16_spriteram) |
| 673 | 673 | AM_RANGE(0x840000, 0x840fff) AM_WRITE(SYS16_MWA16_PALETTERAM) AM_BASE(&paletteram16) |
| 674 | 674 | AM_RANGE(0xc00000, 0xc0ffff) AM_WRITE(vdp_w) |
| 675 | AM_RANGE(0xe4001c, 0xe4001d) AM_WRITE | |
| 675 | AM_RANGE(0xe4001c, 0xe4001d) AM_WRITE | |
| 676 | 676 | AM_RANGE(0xe40000, 0xe4ffff) AM_WRITE(sys18_io_w) |
| 677 | 677 | AM_RANGE(0xc40006, 0xc40007) AM_WRITE(sound_command_irq_w) |
| 678 | AM_RANGE(0xc44000, 0xc44001) AM_WRITE(SMH_NOP) // only used via clr.w after tilebank set | |
| 679 | AM_RANGE(0xc46000, 0xc46fff) AM_WRITE(SMH_NOP) // bootleg specific video hardware | |
| 680 | AM_RANGE(0xfe0020, 0xfe003f) AM_WRITE(SMH_NOP) // config regs | |
| 678 | AM_RANGE(0xc44000, 0xc44001) AM_WRITENOP // only used via clr.w after tilebank set | |
| 679 | AM_RANGE(0xc46000, 0xc46fff) AM_WRITENOP // bootleg specific video hardware | |
| 680 | AM_RANGE(0xfe0020, 0xfe003f) AM_WRITENOP // config regs | |
| 681 | 681 | AM_RANGE(0xffc000, 0xffffff) AM_WRITE(SYS16_MWA16_WORKINGRAM) AM_BASE(&sys16_workingram) |
| 682 | 682 | ADDRESS_MAP_END |
| 683 | 683 | |
| r4470 | r4471 | |
| 767 | 767 | AM_RANGE(0xc41002, 0xc41003) AM_READ_PORT("P1") |
| 768 | 768 | AM_RANGE(0xc41004, 0xc41005) AM_READ_PORT("P2") |
| 769 | 769 | AM_RANGE(0xc41006, 0xc41007) AM_READ_PORT("P3") |
| 770 | AM_RANGE(0xc41008, 0xc41009) AM_READ | |
| 770 | AM_RANGE(0xc41008, 0xc41009) AM_READ | |
| 771 | 771 | AM_RANGE(0xc41000, 0xc41001) AM_READ_PORT("SERVICE") |
| 772 | 772 | AM_RANGE(0xe40000, 0xe4ffff) AM_READ(SYS16_MRA16_EXTRAM2) |
| 773 | 773 | AM_RANGE(0xffe02c, 0xffe02d) AM_READ(mwalkbl_skip_r) |
| r4470 | r4471 | |
| 785 | 785 | AM_RANGE(0xc46600, 0xc46601) AM_WRITE(sys18_refreshenable_w) |
| 786 | 786 | AM_RANGE(0xc46800, 0xc46801) AM_WRITE(sys18_tilebank_w) |
| 787 | 787 | AM_RANGE(0xe40000, 0xe4ffff) AM_WRITE(SYS16_MWA16_EXTRAM2) AM_BASE(&sys16_extraram2) |
| 788 | AM_RANGE(0xfe0020, 0xfe003f) AM_WRITE | |
| 788 | AM_RANGE(0xfe0020, 0xfe003f) AM_WRITE | |
| 789 | 789 | AM_RANGE(0xffc000, 0xffffff) AM_WRITE(SYS16_MWA16_WORKINGRAM) AM_BASE(&sys16_workingram) |
| 790 | 790 | ADDRESS_MAP_END |
| 791 | 791 | |
| r4470 | r4471 | |
| 916 | 916 | AM_RANGE(0xa0000e, 0xa0000f) AM_WRITE(sys18_tilebank_w) |
| 917 | 917 | AM_RANGE(0xc00000, 0xc0ffff) AM_WRITE(vdp_w) |
| 918 | 918 | AM_RANGE(0xc46600, 0xc46601) AM_WRITE(sys18_refreshenable_w) |
| 919 | AM_RANGE(0xfe0020, 0xfe003f) AM_WRITE | |
| 919 | AM_RANGE(0xfe0020, 0xfe003f) AM_WRITE | |
| 920 | 920 | AM_RANGE(0xffc000, 0xffffff) AM_WRITE(SYS16_MWA16_WORKINGRAM) AM_BASE(&sys16_workingram) |
| 921 | 921 | ADDRESS_MAP_END |
| 922 | 922 |
| r4470 | r4471 | |
|---|---|---|
| 111 | 111 | AM_RANGE(0x8800, 0x8fff) AM_WRITE(pitnrun_videoram_w) AM_BASE(&videoram) AM_SIZE(&videoram_size) |
| 112 | 112 | AM_RANGE(0x9000, 0x9fff) AM_WRITE(pitnrun_videoram2_w) AM_BASE(&pitnrun_videoram2) |
| 113 | 113 | AM_RANGE(0xa000, 0xa0ff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size) |
| 114 | AM_RANGE(0xa800, 0xa807) AM_WRITE | |
| 114 | AM_RANGE(0xa800, 0xa807) AM_WRITE | |
| 115 | 115 | AM_RANGE(0xb000, 0xb000) AM_WRITE(nmi_enable_w) |
| 116 | 116 | AM_RANGE(0xb001, 0xb001) AM_WRITE(pitnrun_color_select_w) |
| 117 | AM_RANGE(0xb004, 0xb004) AM_WRITE | |
| 117 | AM_RANGE(0xb004, 0xb004) AM_WRITE | |
| 118 | 118 | AM_RANGE(0xb005, 0xb005) AM_WRITE(pitnrun_char_bank_select) |
| 119 | 119 | AM_RANGE(0xb006, 0xb006) AM_WRITE(pitnrun_hflip_w) |
| 120 | 120 | AM_RANGE(0xb007, 0xb007) AM_WRITE(pitnrun_vflip_w) |
| 121 | 121 | AM_RANGE(0xb800, 0xb800) AM_WRITE(soundlatch_w) |
| 122 | 122 | AM_RANGE(0xc800, 0xc801) AM_WRITE(pitnrun_scroll_w) |
| 123 | AM_RANGE(0xc802, 0xc802) AM_WRITE | |
| 123 | AM_RANGE(0xc802, 0xc802) AM_WRITE | |
| 124 | 124 | AM_RANGE(0xc804, 0xc804) AM_WRITE(pitnrun_mcu_data_w) |
| 125 | 125 | AM_RANGE(0xc805, 0xc805) AM_WRITE(pitnrun_h_heed_w) |
| 126 | 126 | AM_RANGE(0xc806, 0xc806) AM_WRITE(pitnrun_v_heed_w) |
| r4470 | r4471 | |
| 134 | 134 | AM_RANGE(0x8c, 0x8d) AM_DEVWRITE("ay2", ay8910_address_data_w) |
| 135 | 135 | AM_RANGE(0x8e, 0x8f) AM_DEVWRITE("ay1", ay8910_address_data_w) |
| 136 | 136 | AM_RANGE(0x8f, 0x8f) AM_DEVREAD("ay1", ay8910_r) |
| 137 | AM_RANGE(0x90, 0x96) AM_WRITE(SMH_NOP) | |
| 138 | AM_RANGE(0x97, 0x97) AM_WRITE(SMH_NOP) | |
| 139 | AM_RANGE(0x98, 0x98) AM_WRITE(SMH_NOP) | |
| 137 | AM_RANGE(0x90, 0x96) AM_WRITENOP | |
| 138 | AM_RANGE(0x97, 0x97) AM_WRITENOP | |
| 139 | AM_RANGE(0x98, 0x98) AM_WRITENOP | |
| 140 | 140 | ADDRESS_MAP_END |
| 141 | 141 | |
| 142 | 142 | static ADDRESS_MAP_START( sound_readmem, ADDRESS_SPACE_PROGRAM, 8 ) |
| r4470 | r4471 | |
|---|---|---|
| 249 | 249 | AM_RANGE(0xf813, 0xf813) AM_READ_PORT("P2BUT") |
| 250 | 250 | AM_RANGE(0xf820, 0xf820) AM_READWRITE(soundlatch2_r, sound_command_w) /* answer from the sound CPU */ |
| 251 | 251 | AM_RANGE(0xf840, 0xf840) AM_READ_PORT("DSW1") AM_WRITE(sub_cpu_halt_w) |
| 252 | AM_RANGE(0xf850, 0xf850) AM_READ_PORT("DSW2") AM_WRITE | |
| 252 | AM_RANGE(0xf850, 0xf850) AM_READ_PORT("DSW2") AM_WRITE | |
| 253 | 253 | AM_RANGE(0xf860, 0xf860) AM_READWRITE(watchdog_reset_r, tehkanwc_flipscreen_x_w) |
| 254 | 254 | AM_RANGE(0xf870, 0xf870) AM_READ_PORT("DSW3") AM_WRITE(tehkanwc_flipscreen_y_w) |
| 255 | 255 | ADDRESS_MAP_END |
| r4470 | r4471 | |
| 273 | 273 | AM_RANGE(0x0000, 0x3fff) AM_ROM |
| 274 | 274 | AM_RANGE(0x4000, 0x47ff) AM_RAM |
| 275 | 275 | AM_RANGE(0x8001, 0x8001) AM_DEVWRITE("msm", msm_reset_w)/* MSM51xx reset */ |
| 276 | AM_RANGE(0x8002, 0x8002) AM_WRITE(SMH_NOP) /* ?? written in the IRQ handler */ | |
| 277 | AM_RANGE(0x8003, 0x8003) AM_WRITE(SMH_NOP) /* ?? written in the NMI handler */ | |
| 276 | AM_RANGE(0x8002, 0x8002) AM_WRITENOP /* ?? written in the IRQ handler */ | |
| 277 | AM_RANGE(0x8003, 0x8003) AM_WRITENOP /* ?? written in the NMI handler */ | |
| 278 | 278 | AM_RANGE(0xc000, 0xc000) AM_READWRITE(soundlatch_r, sound_answer_w) |
| 279 | 279 | ADDRESS_MAP_END |
| 280 | 280 |
| r4470 | r4471 | |
|---|---|---|
| 23 | 23 | #include "video/konamiic.h" |
| 24 | 24 | #include "sound/3812intf.h" |
| 25 | 25 | #include "sound/k007232.h" |
| 26 | #include "konamipt.h" | |
| 26 | 27 | |
| 27 | ||
| 28 | 28 | VIDEO_START( spy ); |
| 29 | 29 | VIDEO_UPDATE( spy ); |
| 30 | 30 | |
| r4470 | r4471 | |
| 399 | 399 | |
| 400 | 400 | static INPUT_PORTS_START( spy ) |
| 401 | 401 | PORT_START("P1") |
| 402 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) | |
| 403 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) | |
| 404 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) | |
| 405 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) | |
| 406 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) | |
| 407 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) | |
| 408 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) | |
| 409 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* button 3 */ | |
| 402 | KONAMI8_ALT_B21(1) /* button 3 unused */ | |
| 410 | 403 | |
| 411 | 404 | PORT_START("P2") |
| 412 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START2 ) | |
| 413 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) | |
| 414 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) | |
| 415 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) | |
| 416 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) | |
| 417 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) | |
| 418 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) | |
| 419 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* button 3 */ | |
| 405 | KONAMI8_ALT_B21(2) /* button 3 unused */ | |
| 420 | 406 | |
| 421 | 407 | PORT_START("DSW1") |
| 422 | PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) ) | |
| 423 | PORT_DIPSETTING( 0x02, DEF_STR( 4C_1C ) ) | |
| 424 | PORT_DIPSETTING( 0x05, DEF_STR( 3C_1C ) ) | |
| 425 | PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) ) | |
| 426 | PORT_DIPSETTING( 0x04, DEF_STR( 3C_2C ) ) | |
| 427 | PORT_DIPSETTING( 0x01, DEF_STR( 4C_3C ) ) | |
| 428 | PORT_DIPSETTING( 0x0f, DEF_STR( 1C_1C ) ) | |
| 429 | PORT_DIPSETTING( 0x03, DEF_STR( 3C_4C ) ) | |
| 430 | PORT_DIPSETTING( 0x07, DEF_STR( 2C_3C ) ) | |
| 431 | PORT_DIPSETTING( 0x0e, DEF_STR( 1C_2C ) ) | |
| 432 | PORT_DIPSETTING( 0x06, DEF_STR( 2C_5C ) ) | |
| 433 | PORT_DIPSETTING( 0x0d, DEF_STR( 1C_3C ) ) | |
| 434 | PORT_DIPSETTING( 0x0c, DEF_STR( 1C_4C ) ) | |
| 435 | PORT_DIPSETTING( 0x0b, DEF_STR( 1C_5C ) ) | |
| 436 | PORT_DIPSETTING( 0x0a, DEF_STR( 1C_6C ) ) | |
| 437 | PORT_DIPSETTING( 0x09, DEF_STR( 1C_7C ) ) | |
| 438 | PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) | |
| 439 | PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) ) | |
| 440 | PORT_DIPSETTING( 0x20, DEF_STR( 4C_1C ) ) | |
| 441 | PORT_DIPSETTING( 0x50, DEF_STR( 3C_1C ) ) | |
| 442 | PORT_DIPSETTING( 0x80, DEF_STR( 2C_1C ) ) | |
| 443 | PORT_DIPSETTING( 0x40, DEF_STR( 3C_2C ) ) | |
| 444 | PORT_DIPSETTING( 0x10, DEF_STR( 4C_3C ) ) | |
| 445 | PORT_DIPSETTING( 0xf0, DEF_STR( 1C_1C ) ) | |
| 446 | PORT_DIPSETTING( 0x30, DEF_STR( 3C_4C ) ) | |
| 447 | PORT_DIPSETTING( 0x70, DEF_STR( 2C_3C ) ) | |
| 448 | PORT_DIPSETTING( 0xe0, DEF_STR( 1C_2C ) ) | |
| 449 | PORT_DIPSETTING( 0x60, DEF_STR( 2C_5C ) ) | |
| 450 | PORT_DIPSETTING( 0xd0, DEF_STR( 1C_3C ) ) | |
| 451 | PORT_DIPSETTING( 0xc0, DEF_STR( 1C_4C ) ) | |
| 452 | PORT_DIPSETTING( 0xb0, DEF_STR( 1C_5C ) ) | |
| 453 | PORT_DIPSETTING( 0xa0, DEF_STR( 1C_6C ) ) | |
| 454 | PORT_DIPSETTING( 0x90, DEF_STR( 1C_7C ) ) | |
| 455 | // PORT_DIPSETTING( 0x00, "Invalid" ) | |
| 408 | KONAMI_COINAGE(DEF_STR( Free_Play ), "Invalid") | |
| 409 | /* "Invalid" = both coin slots disabled */ | |
| 456 | 410 | |
| 457 | 411 | PORT_START("DSW2") |
| 458 | 412 | PORT_DIPNAME( 0x03, 0x02, DEF_STR( Lives ) ) |
| r4470 | r4471 | |
|---|---|---|
| 77 | 77 | AM_RANGE(0x50, 0x50) AM_READ_PORT("IN0") |
| 78 | 78 | AM_RANGE(0x51, 0x51) AM_READ_PORT("IN1") |
| 79 | 79 | AM_RANGE(0x52, 0x52) AM_READ_PORT("DSW") |
| 80 | AM_RANGE(0x62, 0x62) AM_WRITE | |
| 80 | AM_RANGE(0x62, 0x62) AM_WRITE | |
| 81 | 81 | AM_RANGE(0x63, 0x63) AM_WRITE(soundlatch_w) |
| 82 | AM_RANGE(0x70, 0x77) AM_WRITE | |
| 82 | AM_RANGE(0x70, 0x77) AM_WRITE | |
| 83 | 83 | ADDRESS_MAP_END |
| 84 | 84 | |
| 85 | 85 | static ADDRESS_MAP_START( dynadice_sound_map, ADDRESS_SPACE_PROGRAM, 8 ) |
| r4470 | r4471 | |
|---|---|---|
| 234 | 234 | AM_RANGE(0x304000, 0x304001) AM_NOP /* watchdog? irq ack? */ |
| 235 | 235 | AM_RANGE(0x440000, 0x4403ff) AM_RAM AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) |
| 236 | 236 | AM_RANGE(0x500000, 0x500fff) AM_WRITE(wbeachvl_fgvideoram_w) AM_BASE(&wbeachvl_videoram2) |
| 237 | AM_RANGE(0x501000, 0x501fff) AM_WRITE | |
| 237 | AM_RANGE(0x501000, 0x501fff) AM_WRITE | |
| 238 | 238 | AM_RANGE(0x502000, 0x503fff) AM_WRITE(wbeachvl_txvideoram_w) AM_BASE(&wbeachvl_videoram1) |
| 239 | AM_RANGE(0x504000, 0x50ffff) AM_WRITE | |
| 239 | AM_RANGE(0x504000, 0x50ffff) AM_WRITE | |
| 240 | 240 | AM_RANGE(0x510000, 0x51000b) AM_WRITE(bigtwin_scroll_w) |
| 241 | 241 | AM_RANGE(0x51000c, 0x51000d) AM_WRITENOP /* always 3? */ |
| 242 | 242 | AM_RANGE(0x600000, 0x67ffff) AM_RAM AM_BASE(&bigtwin_bgvideoram) |
| r4470 | r4471 | |
| 269 | 269 | AM_RANGE(0x710018, 0x710019) AM_READ_PORT("P3") |
| 270 | 270 | AM_RANGE(0x71001a, 0x71001b) AM_READ_PORT("P4") |
| 271 | 271 | // AM_RANGE(0x71001c, 0x71001d) AM_READ(playmark_snd_status???) |
| 272 | // AM_RANGE(0x71001e, 0x71001f) AM_WRITE | |
| 272 | // AM_RANGE(0x71001e, 0x71001f) AM_WRITE | |
| 273 | 273 | AM_RANGE(0x780000, 0x780fff) AM_WRITE(paletteram16_RRRRRGGGGGBBBBBx_word_w) AM_BASE(&paletteram16) |
| 274 | 274 | AM_RANGE(0xff0000, 0xffffff) AM_RAM |
| 275 | 275 | ADDRESS_MAP_END |
| r4470 | r4471 | |
|---|---|---|
| 190 | 190 | AM_RANGE(0xb00004, 0xb00007) AM_WRITE(SMH_RAM) AM_BASE(&esd16_scroll_1 ) // |
| 191 | 191 | AM_RANGE(0xb00008, 0xb00009) AM_WRITE(SMH_RAM) AM_BASE(&headpanic_platform_x) |
| 192 | 192 | AM_RANGE(0xb0000a, 0xb0000b) AM_WRITE(SMH_RAM) AM_BASE(&headpanic_platform_y) |
| 193 | AM_RANGE(0xb0000c, 0xb0000d) AM_WRITE | |
| 193 | AM_RANGE(0xb0000c, 0xb0000d) AM_WRITE | |
| 194 | 194 | AM_RANGE(0xb0000e, 0xb0000f) AM_WRITE(SMH_RAM) AM_BASE(&head_layersize) // ?? |
| 195 | AM_RANGE(0xc00000, 0xc00001) AM_WRITE | |
| 195 | AM_RANGE(0xc00000, 0xc00001) AM_WRITE | |
| 196 | 196 | AM_RANGE(0xc00008, 0xc00009) AM_WRITE(esd16_tilemap0_color_w) // Flip Screen + Tileamp0 palette banking |
| 197 | AM_RANGE(0xc0000a, 0xc0000b) AM_WRITE | |
| 197 | AM_RANGE(0xc0000a, 0xc0000b) AM_WRITE | |
| 198 | 198 | AM_RANGE(0xc0000c, 0xc0000d) AM_WRITE(esd16_sound_command_w ) // To Sound CPU // ok |
| 199 | 199 | AM_RANGE(0xc0000e, 0xc0000f) AM_WRITE(esd_eeprom_w) |
| 200 | 200 | AM_RANGE(0xd00008, 0xd00009) AM_WRITE(hedpanic_platform_w) |
| r4470 | r4471 | |
| 218 | 218 | AM_RANGE(0x320000, 0x323fff) AM_WRITE(esd16_vram_1_w) AM_BASE(&esd16_vram_1 ) // |
| 219 | 219 | AM_RANGE(0x324000, 0x327fff) AM_WRITE(esd16_vram_1_w) AM_BASE(&esd16_vram_1 ) // mirror? |
| 220 | 220 | AM_RANGE(0x400000, 0x400fff) AM_WRITE(paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE(&paletteram16) |
| 221 | AM_RANGE(0x500000, 0x500001) AM_WRITE | |
| 221 | AM_RANGE(0x500000, 0x500001) AM_WRITE | |
| 222 | 222 | AM_RANGE(0x500008, 0x500009) AM_WRITE(esd16_tilemap0_color_w) // Flip Screen + Tileamp0 palette banking |
| 223 | AM_RANGE(0x50000a, 0x50000b) AM_WRITE | |
| 223 | AM_RANGE(0x50000a, 0x50000b) AM_WRITE | |
| 224 | 224 | AM_RANGE(0x50000c, 0x50000d) AM_WRITE(esd16_sound_command_w ) // To Sound CPU // ok |
| 225 | 225 | AM_RANGE(0x50000e, 0x50000f) AM_WRITE(esd_eeprom_w) |
| 226 | 226 | AM_RANGE(0x600000, 0x6007ff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size ) // Sprites |
| r4470 | r4471 | |
| 229 | 229 | AM_RANGE(0x700004, 0x700007) AM_WRITE(SMH_RAM) AM_BASE(&esd16_scroll_1 ) // |
| 230 | 230 | AM_RANGE(0x700008, 0x700009) AM_WRITE(SMH_RAM) AM_BASE(&headpanic_platform_x) // not used in mchampdx? |
| 231 | 231 | AM_RANGE(0x70000a, 0x70000b) AM_WRITE(SMH_RAM) AM_BASE(&headpanic_platform_y) // not used in mchampdx? |
| 232 | AM_RANGE(0x70000c, 0x70000d) AM_WRITE | |
| 232 | AM_RANGE(0x70000c, 0x70000d) AM_WRITE | |
| 233 | 233 | AM_RANGE(0x70000e, 0x70000f) AM_WRITE(SMH_RAM) AM_BASE(&head_layersize) // ?? |
| 234 | 234 | AM_RANGE(0xd00008, 0xd00009) AM_WRITE(hedpanic_platform_w) // not used in mchampdx? |
| 235 | 235 | ADDRESS_MAP_END |
| r4470 | r4471 | |
| 257 | 257 | AM_RANGE(0x400004, 0x400007) AM_WRITE(SMH_RAM) AM_BASE(&esd16_scroll_1 ) // |
| 258 | 258 | AM_RANGE(0x400008, 0x400009) AM_WRITE(SMH_RAM) AM_BASE(&headpanic_platform_x) // not used in mchampdx? |
| 259 | 259 | AM_RANGE(0x40000a, 0x40000b) AM_WRITE(SMH_RAM) AM_BASE(&headpanic_platform_y) // not used in mchampdx? |
| 260 | AM_RANGE(0x40000c, 0x40000d) AM_WRITE | |
| 260 | AM_RANGE(0x40000c, 0x40000d) AM_WRITE | |
| 261 | 261 | AM_RANGE(0x40000e, 0x40000f) AM_WRITE(SMH_RAM) AM_BASE(&head_layersize) // ?? |
| 262 | AM_RANGE(0x500000, 0x500001) AM_WRITE | |
| 262 | AM_RANGE(0x500000, 0x500001) AM_WRITE | |
| 263 | 263 | AM_RANGE(0x500008, 0x500009) AM_WRITE(esd16_tilemap0_color_w) // Flip Screen + Tileamp0 palette banking |
| 264 | AM_RANGE(0x50000a, 0x50000b) AM_WRITE | |
| 264 | AM_RANGE(0x50000a, 0x50000b) AM_WRITE | |
| 265 | 265 | AM_RANGE(0x50000c, 0x50000d) AM_WRITE(esd16_sound_command_w ) // To Sound CPU // ok |
| 266 | 266 | AM_RANGE(0x50000e, 0x50000f) AM_WRITE(esd_eeprom_w) |
| 267 | 267 | AM_RANGE(0x600008, 0x600009) AM_WRITE(hedpanic_platform_w) |
| r4470 | r4471 | |
|---|---|---|
| 364 | 364 | ADDRESS_MAP_GLOBAL_MASK(0xff) |
| 365 | 365 | AM_RANGE(0x00,0x00) AM_READ(sound_latch_r) |
| 366 | 366 | AM_RANGE(0x01,0x01) AM_WRITE(cvsd_w) |
| 367 | AM_RANGE(0x02,0x02) AM_WRITE | |
| 367 | AM_RANGE(0x02,0x02) AM_WRITE | |
| 368 | 368 | ADDRESS_MAP_END |
| 369 | 369 | |
| 370 | 370 | |
| r4470 | r4471 | |
| 389 | 389 | ADDRESS_MAP_GLOBAL_MASK(0xff) |
| 390 | 390 | AM_RANGE(0x00,0x00) AM_READ(sound_latch_r) |
| 391 | 391 | AM_RANGE(0x01,0x01) AM_WRITE(adpcm_w) |
| 392 | AM_RANGE(0x02,0x02) AM_WRITE | |
| 392 | AM_RANGE(0x02,0x02) AM_WRITE | |
| 393 | 393 | ADDRESS_MAP_END |
| 394 | 394 | |
| 395 | 395 |
| r4470 | r4471 | |
|---|---|---|
| 940 | 940 | AM_RANGE(0x02,0x02) AM_READ(slave_port2_r) |
| 941 | 941 | AM_RANGE(0x03,0x03) AM_READ(slave_port3_r) AM_WRITE(slave_port3_w) |
| 942 | 942 | AM_RANGE(0x0f,0x0f) AM_READ(slave_portf_r) |
| 943 | AM_RANGE(TMS32025_HOLD, TMS32025_HOLD) AM_READ(SMH_NOP) | |
| 944 | AM_RANGE(TMS32025_HOLDA, TMS32025_HOLDA) AM_WRITE(SMH_NOP) | |
| 943 | AM_RANGE(TMS32025_HOLD, TMS32025_HOLD) AM_READNOP | |
| 944 | AM_RANGE(TMS32025_HOLDA, TMS32025_HOLDA) AM_WRITENOP | |
| 945 | 945 | AM_RANGE(TMS32025_XF, TMS32025_XF) AM_WRITE(slave_XF_output_w) |
| 946 | 946 | ADDRESS_MAP_END |
| 947 | 947 | |
| r4470 | r4471 | |
| 1120 | 1120 | |
| 1121 | 1121 | static ADDRESS_MAP_START( namcos21_68k_common, ADDRESS_SPACE_PROGRAM, 16 ) |
| 1122 | 1122 | AM_RANGE(0x200000, 0x20ffff) AM_READ(dspram16_r) AM_WRITE(dspram16_w) AM_BASE(&namcos21_dspram16) |
| 1123 | AM_RANGE(0x280000, 0x280001) AM_WRITE | |
| 1123 | AM_RANGE(0x280000, 0x280001) AM_WRITE | |
| 1124 | 1124 | AM_RANGE(0x400000, 0x400001) AM_WRITE(pointram_control_w) |
| 1125 | 1125 | AM_RANGE(0x440000, 0x440001) AM_READ(pointram_data_r) AM_WRITE(pointram_data_w) |
| 1126 | AM_RANGE(0x440002, 0x47ffff) AM_WRITE | |
| 1126 | AM_RANGE(0x440002, 0x47ffff) AM_WRITE | |
| 1127 | 1127 | AM_RANGE(0x480000, 0x4807ff) AM_WRITE(namcos21_depthcue_w) AM_READ(namcos21_depthcue_r) /* Air Combat */ |
| 1128 | 1128 | AM_RANGE(0x700000, 0x71ffff) AM_READ(namco_obj16_r) AM_WRITE(namco_obj16_w) |
| 1129 | 1129 | AM_RANGE(0x720000, 0x720007) AM_READ(namco_spritepos16_r) AM_WRITE(namco_spritepos16_w) |
| r4470 | r4471 | |
| 1288 | 1288 | static ADDRESS_MAP_START( winrun_dsp_io, ADDRESS_SPACE_IO, 16 ) |
| 1289 | 1289 | AM_RANGE(0x08,0x09) AM_WRITE(winrun_dsp_pointrom_addr_w) AM_READ(winrun_dsp_pointrom_data_r) |
| 1290 | 1290 | AM_RANGE(0x0a,0x0a) AM_WRITE(winrun_dsp_render_w) |
| 1291 | AM_RANGE(0x0b,0x0b) AM_WRITE | |
| 1291 | AM_RANGE(0x0b,0x0b) AM_WRITE | |
| 1292 | 1292 | AM_RANGE(0x0c,0x0c) AM_WRITE(winrun_dsp_complete_w) |
| 1293 | 1293 | AM_RANGE(TMS32025_BIO, TMS32025_BIO) AM_READ( winrun_poly_reset_r ) |
| 1294 | 1294 | AM_RANGE(TMS32025_HOLD, TMS32025_HOLD) AM_READ( SMH_NOP ) |
| r4470 | r4471 | |
| 1411 | 1411 | ADDRESS_MAP_END |
| 1412 | 1412 | |
| 1413 | 1413 | static ADDRESS_MAP_START( writemem_sound, ADDRESS_SPACE_PROGRAM, 8 ) |
| 1414 | AM_RANGE(0x3000, 0x3003) AM_WRITE | |
| 1414 | AM_RANGE(0x3000, 0x3003) AM_WRITE | |
| 1415 | 1415 | AM_RANGE(0x0000, 0x3fff) AM_WRITE(SMH_ROM) |
| 1416 | 1416 | AM_RANGE(0x4000, 0x4001) AM_DEVWRITE("ym", ym2151_w) |
| 1417 | 1417 | AM_RANGE(0x5000, 0x6fff) AM_DEVWRITE("c140", c140_w) |
| 1418 | 1418 | AM_RANGE(0x7000, 0x77ff) AM_WRITE(namcos2_dualportram_byte_w) AM_BASE(&mpDualPortRAM) |
| 1419 | 1419 | AM_RANGE(0x7800, 0x7fff) AM_WRITE(namcos2_dualportram_byte_w) /* mirror */ |
| 1420 | 1420 | AM_RANGE(0x8000, 0x9fff) AM_WRITE(SMH_RAM) |
| 1421 | AM_RANGE(0xa000, 0xbfff) AM_WRITE | |
| 1421 | AM_RANGE(0xa000, 0xbfff) AM_WRITE | |
| 1422 | 1422 | AM_RANGE(0xc000, 0xc001) AM_WRITE(namcos2_sound_bankselect_w) |
| 1423 | AM_RANGE(0xd001, 0xd001) AM_WRITE(SMH_NOP) /* watchdog */ | |
| 1424 | AM_RANGE(0xc000, 0xffff) AM_WRITE(SMH_NOP) /* avoid debug log noise; games write frequently to 0xe000 */ | |
| 1423 | AM_RANGE(0xd001, 0xd001) AM_WRITENOP /* watchdog */ | |
| 1424 | AM_RANGE(0xc000, 0xffff) AM_WRITENOP /* avoid debug log noise; games write frequently to 0xe000 */ | |
| 1425 | 1425 | ADDRESS_MAP_END |
| 1426 | 1426 | |
| 1427 | 1427 | /*************************************************************/ |
| r4470 | r4471 | |
| 1429 | 1429 | /*************************************************************/ |
| 1430 | 1430 | |
| 1431 | 1431 | static ADDRESS_MAP_START( readmem_mcu, ADDRESS_SPACE_PROGRAM, 8 ) |
| 1432 | AM_RANGE(0x0000, 0x0000) AM_READ | |
| 1432 | AM_RANGE(0x0000, 0x0000) AM_READ | |
| 1433 | 1433 | AM_RANGE(0x0001, 0x0001) AM_READ_PORT("PORTB") /* p1,p2 start */ |
| 1434 | 1434 | AM_RANGE(0x0002, 0x0002) AM_READ_PORT("PORTC") /* coins */ |
| 1435 | 1435 | AM_RANGE(0x0003, 0x0003) AM_READ(namcos2_mcu_port_d_r) |
| r4470 | r4471 | |
| 1445 | 1445 | AM_RANGE(0x3002, 0x3002) AM_READ_PORT("DIAL2") |
| 1446 | 1446 | AM_RANGE(0x3003, 0x3003) AM_READ_PORT("DIAL3") |
| 1447 | 1447 | AM_RANGE(0x5000, 0x57ff) AM_READ(namcos2_dualportram_byte_r) |
| 1448 | AM_RANGE(0x6000, 0x6fff) AM_READ | |
| 1448 | AM_RANGE(0x6000, 0x6fff) AM_READ | |
| 1449 | 1449 | AM_RANGE(0x8000, 0xffff) AM_READ(SMH_ROM) |
| 1450 | 1450 | ADDRESS_MAP_END |
| 1451 | 1451 |
| r4470 | r4471 | |
|---|---|---|
| 35 | 35 | 030x - 1998 - The Killing Blade |
| 36 | 36 | 040x - 1998 - Dragon World 3 |
| 37 | 37 | 050x - 1999? - Oriental Legend Super |
| 38 | 060x - 1999 - Knights of Valor, Knights of Valor Plus, Knights of Valor Super | |
| 38 | 060x - 1999 - Knights of Valor, Knights of Valor Plus, Knights of Valor Super Heroes | |
| 39 | 39 | 070x - 1999 - Photo Y2k |
| 40 | 40 | 080x - 1999 - Puzzle Star |
| 41 | 41 | 090x - 2001 - Puzzli II |
| r4470 | r4471 | |
| 173 | 173 | arm7 cpu with 16kb internal rom (different per game / region) + optional external data rom |
| 174 | 174 | probably used to give extra power to the system, lots of calculations are offloaded to it |
| 175 | 175 | used by: |
| 176 | Knights of Valour Super | |
| 176 | Knights of Valour Super Heroes / Plus | |
| 177 | 177 | Puzzli II |
| 178 | Oriental Legend | |
| 178 | Oriental Legend Special Plus | |
| 179 | 179 | Knights of Valor 2 / 2 Plus |
| 180 | 180 | DoDonPachi II |
| 181 | 181 | Martial Masters |
| 182 | 182 | The Gladiator |
| 183 | 183 | Demon Front |
| 184 | Killing Blade Plus | |
| 184 | The Killing Blade Plus | |
| 185 | 185 | Spectral VS Generation |
| 186 | 186 | |
| 187 | 187 | there are probably more... |
| r4470 | r4471 | |
| 292 | 292 | #include "includes/pgm.h" |
| 293 | 293 | |
| 294 | 294 | |
| 295 | UINT16 *pgm_mainram, *pgm_bg_videoram, *pgm_tx_videoram, *pgm_videoregs, *pgm_rowscrollram; | |
| 295 | UINT16 *pgm_mainram, *pgm_bg_videoram, *pgm_tx_videoram, *pgm_videoregs, *pgm_rowscrollram, *pgm_videoram; | |
| 296 | 296 | static UINT8 *z80_mainram; |
| 297 | 297 | static UINT32 *arm7_shareram; |
| 298 | 298 | static UINT32 *svg_shareram[2]; //for 5585G MACHINE |
| r4470 | r4471 | |
| 300 | 300 | static UINT32 kov2_latchdata_arm_w; |
| 301 | 301 | |
| 302 | 302 | |
| 303 | static WRITE16_HANDLER( pgm_videoram_w ) | |
| 304 | { | |
| 305 | if (offset<0x4000/2) | |
| 306 | pgm_bg_videoram_w(space, offset, data, mem_mask); | |
| 307 | else if (offset<0x7000/2) | |
| 308 | pgm_tx_videoram_w(space, offset-0x4000/2, data, mem_mask); | |
| 309 | else COMBINE_DATA(&pgm_videoram[offset/2]); | |
| 310 | } | |
| 311 | ||
| 303 | 312 | static READ16_HANDLER ( z80_ram_r ) |
| 304 | 313 | { |
| 305 | 314 | return (z80_mainram[offset*2] << 8)|z80_mainram[offset*2+1]; |
| r4470 | r4471 | |
| 342 | 351 | |
| 343 | 352 | generic_pulse_irq_line(space->machine->cpu[2], ARM7_FIRQ_LINE); |
| 344 | 353 | cpuexec_boost_interleave(space->machine, attotime_zero, ATTOTIME_IN_USEC(200)); |
| 345 | cpu_spinuntil_time(space->cpu, cpu_clocks_to_attotime(space->machine->cpu[2], 200)); // give the arm time to respond (just boosting the interleave doesn't help | |
| 354 | cpu_spinuntil_time(space->cpu, cpu_clocks_to_attotime(space->machine->cpu[2], 200)); // give the arm time to respond (just boosting the interleave doesn't help) | |
| 346 | 355 | } |
| 347 | 356 | |
| 348 | 357 | static READ16_HANDLER( arm7_ram_r ) |
| r4470 | r4471 | |
| 529 | 538 | |
| 530 | 539 | AM_RANGE(0x800000, 0x81ffff) AM_RAM AM_MIRROR(0x0e0000) AM_BASE(&pgm_mainram) /* Main Ram */ |
| 531 | 540 | |
| 532 | AM_RANGE(0x900000, 0x903fff) AM_RAM_WRITE(pgm_bg_videoram_w) AM_BASE(&pgm_bg_videoram) /* Backgrounds */ | |
| 533 | AM_RANGE(0x904000, 0x905fff) AM_RAM_WRITE(pgm_tx_videoram_w) AM_BASE(&pgm_tx_videoram) /* Text Layer */ | |
| 534 | AM_RANGE(0x907000, 0x9077ff) AM_RAM AM_BASE(&pgm_rowscrollram) | |
| 541 | // AM_RANGE(0x900000, 0x903fff) AM_RAM_WRITE(pgm_bg_videoram_w) AM_BASE(&pgm_bg_videoram) /* Backgrounds */ | |
| 542 | // AM_RANGE(0x904000, 0x905fff) AM_RAM_WRITE(pgm_tx_videoram_w) AM_BASE(&pgm_tx_videoram) /* Text Layer */ | |
| 543 | // AM_RANGE(0x907000, 0x9077ff) AM_RAM AM_BASE(&pgm_rowscrollram) | |
| 544 | AM_RANGE(0x900000, 0x907fff) AM_MIRROR(0x0f8000) AM_RAM_WRITE(pgm_videoram_w) AM_BASE(&pgm_videoram) /* IGS023 VIDEO CHIP */ | |
| 535 | 545 | AM_RANGE(0xa00000, 0xa011ff) AM_RAM_WRITE(paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE(&paletteram16) |
| 536 | 546 | AM_RANGE(0xb00000, 0xb0ffff) AM_RAM AM_BASE(&pgm_videoregs) /* Video Regs inc. Zoom Table */ |
| 537 | 547 | |
| r4470 | r4471 | |
| 561 | 571 | |
| 562 | 572 | AM_RANGE(0x800000, 0x81ffff) AM_RAM AM_MIRROR(0x0e0000) AM_BASE(&pgm_mainram) /* Main Ram */ |
| 563 | 573 | |
| 564 | AM_RANGE(0x900000, 0x903fff) AM_RAM_WRITE(pgm_bg_videoram_w) AM_BASE(&pgm_bg_videoram) /* Backgrounds */ | |
| 565 | AM_RANGE(0x904000, 0x905fff) AM_RAM_WRITE(pgm_tx_videoram_w) AM_BASE(&pgm_tx_videoram) /* Text Layer */ | |
| 566 | AM_RANGE(0x907000, 0x9077ff) AM_RAM AM_BASE(&pgm_rowscrollram) | |
| 574 | // AM_RANGE(0x900000, 0x903fff) AM_RAM_WRITE(pgm_bg_videoram_w) AM_BASE(&pgm_bg_videoram) /* Backgrounds */ | |
| 575 | // AM_RANGE(0x904000, 0x905fff) AM_RAM_WRITE(pgm_tx_videoram_w) AM_BASE(&pgm_tx_videoram) /* Text Layer */ | |
| 576 | // AM_RANGE(0x907000, 0x9077ff) AM_RAM AM_BASE(&pgm_rowscrollram) | |
| 577 | AM_RANGE(0x900000, 0x907fff) AM_MIRROR(0x0f8000) AM_RAM_WRITE(pgm_videoram_w) AM_BASE(&pgm_videoram) /* IGS023 VIDEO CHIP */ | |
| 567 | 578 | AM_RANGE(0xa00000, 0xa011ff) AM_RAM_WRITE(paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE(&paletteram16) |
| 568 | 579 | AM_RANGE(0xb00000, 0xb0ffff) AM_RAM AM_BASE(&pgm_videoregs) /* Video Regs inc. Zoom Table */ |
| 569 | 580 | |
| r4470 | r4471 | |
| 593 | 604 | |
| 594 | 605 | AM_RANGE(0x800000, 0x81ffff) AM_RAM AM_MIRROR(0x0e0000) AM_BASE(&pgm_mainram) /* Main Ram */ |
| 595 | 606 | |
| 596 | AM_RANGE(0x900000, 0x903fff) AM_RAM_WRITE(pgm_bg_videoram_w) AM_BASE(&pgm_bg_videoram) /* Backgrounds */ | |
| 597 | AM_RANGE(0x904000, 0x905fff) AM_RAM_WRITE(pgm_tx_videoram_w) AM_BASE(&pgm_tx_videoram) /* Text Layer */ | |
| 598 | AM_RANGE(0x907000, 0x9077ff) AM_RAM AM_BASE(&pgm_rowscrollram) | |
| 607 | // AM_RANGE(0x900000, 0x903fff) AM_RAM_WRITE(pgm_bg_videoram_w) AM_BASE(&pgm_bg_videoram) /* Backgrounds */ | |
| 608 | // AM_RANGE(0x904000, 0x905fff) AM_RAM_WRITE(pgm_tx_videoram_w) AM_BASE(&pgm_tx_videoram) /* Text Layer */ | |
| 609 | // AM_RANGE(0x907000, 0x9077ff) AM_RAM AM_BASE(&pgm_rowscrollram) | |
| 610 | AM_RANGE(0x900000, 0x907fff) AM_MIRROR(0x0f8000) AM_RAM_WRITE(pgm_videoram_w) AM_BASE(&pgm_videoram) /* IGS023 VIDEO CHIP */ | |
| 599 | 611 | AM_RANGE(0xa00000, 0xa011ff) AM_RAM_WRITE(paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE(&paletteram16) |
| 600 | 612 | AM_RANGE(0xb00000, 0xb0ffff) AM_RAM AM_BASE(&pgm_videoregs) /* Video Regs inc. Zoom Table */ |
| 601 | 613 | |
| r4470 | r4471 | |
| 622 | 634 | |
| 623 | 635 | AM_RANGE(0x800000, 0x81ffff) AM_RAM AM_MIRROR(0x0e0000) AM_BASE(&pgm_mainram) /* Main Ram */ |
| 624 | 636 | |
| 625 | AM_RANGE(0x900000, 0x903fff) AM_RAM_WRITE(pgm_bg_videoram_w) AM_BASE(&pgm_bg_videoram) /* Backgrounds */ | |
| 626 | AM_RANGE(0x904000, 0x905fff) AM_RAM_WRITE(pgm_tx_videoram_w) AM_BASE(&pgm_tx_videoram) /* Text Layer */ | |
| 627 | AM_RANGE(0x907000, 0x9077ff) AM_RAM AM_BASE(&pgm_rowscrollram) | |
| 637 | // AM_RANGE(0x900000, 0x903fff) AM_RAM_WRITE(pgm_bg_videoram_w) AM_BASE(&pgm_bg_videoram) /* Backgrounds */ | |
| 638 | // AM_RANGE(0x904000, 0x905fff) AM_RAM_WRITE(pgm_tx_videoram_w) AM_BASE(&pgm_tx_videoram) /* Text Layer */ | |
| 639 | // AM_RANGE(0x907000, 0x9077ff) AM_RAM AM_BASE(&pgm_rowscrollram) | |
| 640 | AM_RANGE(0x900000, 0x907fff) AM_MIRROR(0x0f8000) AM_RAM_WRITE(pgm_videoram_w) AM_BASE(&pgm_videoram) /* IGS023 VIDEO CHIP */ | |
| 628 | 641 | AM_RANGE(0xa00000, 0xa011ff) AM_RAM_WRITE(paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE(&paletteram16) |
| 629 | 642 | AM_RANGE(0xb00000, 0xb0ffff) AM_RAM AM_BASE(&pgm_videoregs) /* Video Regs inc. Zoom Table */ |
| 630 | 643 | |
| r4470 | r4471 | |
| 655 | 668 | |
| 656 | 669 | AM_RANGE(0x800000, 0x81ffff) AM_RAM AM_MIRROR(0x0e0000) AM_BASE(&pgm_mainram) /* Main Ram */ |
| 657 | 670 | |
| 658 | AM_RANGE(0x900000, 0x903fff) AM_RAM_WRITE(pgm_bg_videoram_w) AM_BASE(&pgm_bg_videoram) /* Backgrounds */ | |
| 659 | AM_RANGE(0x904000, 0x905fff) AM_RAM_WRITE(pgm_tx_videoram_w) AM_BASE(&pgm_tx_videoram) /* Text Layer */ | |
| 660 | AM_RANGE(0x907000, 0x9077ff) AM_RAM AM_BASE(&pgm_rowscrollram) | |
| 671 | // AM_RANGE(0x900000, 0x903fff) AM_RAM_WRITE(pgm_bg_videoram_w) AM_BASE(&pgm_bg_videoram) /* Backgrounds */ | |
| 672 | // AM_RANGE(0x904000, 0x905fff) AM_RAM_WRITE(pgm_tx_videoram_w) AM_BASE(&pgm_tx_videoram) /* Text Layer */ | |
| 673 | // AM_RANGE(0x907000, 0x9077ff) AM_RAM AM_BASE(&pgm_rowscrollram) | |
| 674 | AM_RANGE(0x900000, 0x907fff) AM_MIRROR(0x0f8000) AM_RAM_WRITE(pgm_videoram_w) AM_BASE(&pgm_videoram) /* IGS023 VIDEO CHIP */ | |
| 661 | 675 | AM_RANGE(0xa00000, 0xa011ff) AM_RAM_WRITE(paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE(&paletteram16) |
| 662 | 676 | AM_RANGE(0xb00000, 0xb0ffff) AM_RAM AM_BASE(&pgm_videoregs) /* Video Regs inc. Zoom Table */ |
| 663 | 677 | |
| r4470 | r4471 | |
| 698 | 712 | AM_RANGE(0x50000000, 0x500003ff) AM_RAM |
| 699 | 713 | ADDRESS_MAP_END |
| 700 | 714 | |
| 701 | ||
| 702 | 715 | /* Kov Superheroes */ |
| 703 | 716 | |
| 704 | 717 | static UINT16 kovsh_highlatch_arm_w, kovsh_lowlatch_arm_w; |
| r4470 | r4471 | |
| 706 | 719 | |
| 707 | 720 | static READ32_HANDLER( kovsh_arm7_protlatch_r ) |
| 708 | 721 | { |
| 722 | timer_call_after_resynch(space->machine, NULL, 0, 0); // force resync | |
| 723 | ||
| 709 | 724 | return (kovsh_highlatch_68k_w << 16) | (kovsh_lowlatch_68k_w); |
| 710 | 725 | } |
| 711 | 726 | |
| 712 | 727 | static WRITE32_HANDLER( kovsh_arm7_protlatch_w ) |
| 713 | 728 | { |
| 729 | timer_call_after_resynch(space->machine, NULL, 0, 0); // force resync | |
| 730 | ||
| 714 | 731 | if (ACCESSING_BITS_16_31) |
| 715 | 732 | { |
| 716 | 733 | kovsh_highlatch_arm_w = data>>16; |
| r4470 | r4471 | |
| 721 | 738 | kovsh_lowlatch_arm_w = data; |
| 722 | 739 | kovsh_lowlatch_68k_w = 0; |
| 723 | 740 | } |
| 724 | ||
| 725 | // cpuexec_boost_interleave(space->machine, attotime_zero, ATTOTIME_IN_USEC(100)); | |
| 726 | // cpu_spinuntil_time(space->cpu, cpu_clocks_to_attotime(space->machine->cpu[0], 100)); | |
| 727 | 741 | } |
| 728 | 742 | |
| 729 | 743 | static READ16_HANDLER( kovsh_68k_protlatch_r ) |
| 730 | 744 | { |
| 731 | //cpuexec_boost_interleave(space->machine, attotime_zero, ATTOTIME_IN_USEC(200)); | |
| 732 | //cpu_spinuntil_time(space->cpu, cpu_clocks_to_attotime(space->machine->cpu[0], 600)); | |
| 745 | timer_call_after_resynch(space->machine, NULL, 0, 0); // force resync | |
| 733 | 746 | |
| 734 | 747 | switch (offset) |
| 735 | 748 | { |
| r4470 | r4471 | |
| 741 | 754 | |
| 742 | 755 | static WRITE16_HANDLER( kovsh_68k_protlatch_w ) |
| 743 | 756 | { |
| 757 | timer_call_after_resynch(space->machine, NULL, 0, 0); // force resync | |
| 758 | ||
| 744 | 759 | switch (offset) |
| 745 | 760 | { |
| 746 | case 1: kovsh_highlatch_68k_w = data; break; | |
| 747 | case 0: kovsh_lowlatch_68k_w = data; break; | |
| 761 | case 1: | |
| 762 | { | |
| 763 | kovsh_highlatch_68k_w = data; | |
| 764 | } | |
| 765 | break; | |
| 766 | ||
| 767 | case 0: | |
| 768 | { | |
| 769 | kovsh_lowlatch_68k_w = data; | |
| 770 | } | |
| 771 | break; | |
| 748 | 772 | } |
| 749 | 773 | } |
| 750 | 774 | |
| r4470 | r4471 | |
| 771 | 795 | |
| 772 | 796 | AM_RANGE(0x800000, 0x81ffff) AM_RAM AM_MIRROR(0x0e0000) AM_BASE(&pgm_mainram) /* Main Ram */ |
| 773 | 797 | |
| 774 | AM_RANGE(0x900000, 0x903fff) AM_RAM_WRITE(pgm_bg_videoram_w) AM_BASE(&pgm_bg_videoram) /* Backgrounds */ | |
| 775 | AM_RANGE(0x904000, 0x905fff) AM_RAM_WRITE(pgm_tx_videoram_w) AM_BASE(&pgm_tx_videoram) /* Text Layer */ | |
| 776 | AM_RANGE(0x907000, 0x9077ff) AM_RAM AM_BASE(&pgm_rowscrollram) | |
| 798 | // AM_RANGE(0x900000, 0x903fff) AM_RAM_WRITE(pgm_bg_videoram_w) AM_BASE(&pgm_bg_videoram) /* Backgrounds */ | |
| 799 | // AM_RANGE(0x904000, 0x905fff) AM_RAM_WRITE(pgm_tx_videoram_w) AM_BASE(&pgm_tx_videoram) /* Text Layer */ | |
| 800 | // AM_RANGE(0x907000, 0x9077ff) AM_RAM AM_BASE(&pgm_rowscrollram) | |
| 801 | AM_RANGE(0x900000, 0x907fff) AM_MIRROR(0x0f8000) AM_RAM_WRITE(pgm_videoram_w) AM_BASE(&pgm_videoram) /* IGS023 VIDEO CHIP */ | |
| 777 | 802 | AM_RANGE(0xa00000, 0xa011ff) AM_RAM_WRITE(paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE(&paletteram16) |
| 778 | 803 | AM_RANGE(0xb00000, 0xb0ffff) AM_RAM AM_BASE(&pgm_videoregs) /* Video Regs inc. Zoom Table */ |
| 779 | 804 | |
| r4470 | r4471 | |
| 811 | 836 | AM_RANGE(0x08100000, 0x083fffff) AM_READ(kovsh_exrom_r) // unpopulated, returns 0 to keep checksum happy |
| 812 | 837 | AM_RANGE(0x10000000, 0x100003ff) AM_RAM // internal ram for asic |
| 813 | 838 | AM_RANGE(0x40000000, 0x40000003) AM_READ(kovsh_arm7_protlatch_r) AM_WRITE(kovsh_arm7_protlatch_w) |
| 814 | AM_RANGE(0x40000008, 0x4000000b) AM_WRITE | |
| 839 | AM_RANGE(0x40000008, 0x4000000b) AM_WRITE | |
| 815 | 840 | AM_RANGE(0x4000000c, 0x4000000f) AM_READ(kovsh_arm7_unk_r) |
| 816 | 841 | AM_RANGE(0x50800000, 0x5080003f) AM_READWRITE(arm7_shareram_r, arm7_shareram_w) AM_BASE(&arm7_shareram) |
| 817 | 842 | AM_RANGE(0x50000000, 0x500003ff) AM_RAM // uploads xor table to decrypt 68k rom here |
| r4470 | r4471 | |
| 862 | 887 | { |
| 863 | 888 | generic_pulse_irq_line(space->machine->cpu[2], ARM7_FIRQ_LINE); |
| 864 | 889 | cpuexec_boost_interleave(space->machine, attotime_zero, ATTOTIME_IN_USEC(200)); |
| 865 | cpu_spinuntil_time(space->cpu, cpu_clocks_to_attotime(space->machine->cpu[2], 200)); // give the arm time to respond (just boosting the interleave doesn't help | |
| 890 | cpu_spinuntil_time(space->cpu, cpu_clocks_to_attotime(space->machine->cpu[2], 200)); // give the arm time to respond (just boosting the interleave doesn't help) | |
| 866 | 891 | } |
| 867 | 892 | |
| 868 | 893 | static WRITE16_HANDLER( svg_latch_68k_w ) |
| r4470 | r4471 | |
| 879 | 904 | |
| 880 | 905 | AM_RANGE(0x800000, 0x81ffff) AM_RAM AM_MIRROR(0x0e0000) AM_BASE(&pgm_mainram) /* Main Ram */ |
| 881 | 906 | |
| 882 | AM_RANGE(0x900000, 0x903fff) AM_RAM_WRITE(pgm_bg_videoram_w) AM_BASE(&pgm_bg_videoram) /* Backgrounds */ | |
| 883 | AM_RANGE(0x904000, 0x905fff) AM_RAM_WRITE(pgm_tx_videoram_w) AM_BASE(&pgm_tx_videoram) /* Text Layer */ | |
| 884 | AM_RANGE(0x907000, 0x9077ff) AM_RAM AM_BASE(&pgm_rowscrollram) | |
| 907 | // AM_RANGE(0x900000, 0x903fff) AM_RAM_WRITE(pgm_bg_videoram_w) AM_BASE(&pgm_bg_videoram) /* Backgrounds */ | |
| 908 | // AM_RANGE(0x904000, 0x905fff) AM_RAM_WRITE(pgm_tx_videoram_w) AM_BASE(&pgm_tx_videoram) /* Text Layer */ | |
| 909 | // AM_RANGE(0x907000, 0x9077ff) AM_RAM AM_BASE(&pgm_rowscrollram) | |
| 910 | AM_RANGE(0x900000, 0x907fff) AM_MIRROR(0x0f8000) AM_RAM_WRITE(pgm_videoram_w) AM_BASE(&pgm_videoram) /* IGS023 VIDEO CHIP */ | |
| 885 | 911 | AM_RANGE(0xa00000, 0xa011ff) AM_RAM_WRITE(paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE(&paletteram16) |
| 886 | 912 | AM_RANGE(0xb00000, 0xb0ffff) AM_RAM AM_BASE(&pgm_videoregs) /* Video Regs inc. Zoom Table */ |
| 887 | 913 | |
| r4470 | r4471 | |
| 1422 | 1448 | |
| 1423 | 1449 | expand_32x32x5bpp(machine); |
| 1424 | 1450 | expand_colourdata(machine); |
| 1451 | ||
| 1452 | pgm_bg_videoram = &pgm_videoram[0]; | |
| 1453 | pgm_tx_videoram = &pgm_videoram[0x4000/2]; | |
| 1454 | pgm_rowscrollram = &pgm_videoram[0x7000/2]; | |
| 1425 | 1455 | } |
| 1426 | 1456 | |
| 1427 | 1457 | static DRIVER_INIT( pgm ) |
| r4470 | r4471 | |
| 1512 | 1542 | pgm_kovsh_decrypt(machine); |
| 1513 | 1543 | } |
| 1514 | 1544 | |
| 1515 | static DRIVER_INIT( kovh ) | |
| 1545 | static DRIVER_INIT( kovshp ) | |
| 1516 | 1546 | { |
| 1517 | 1547 | pgm_basic_init(machine); |
| 1518 | pgm_kovh_decrypt(machine); | |
| 1548 | pgm_kovshp_decrypt(machine); | |
| 1519 | 1549 | } |
| 1520 | 1550 | |
| 1521 | static DRIVER_INIT( oldss ) | |
| 1551 | static DRIVER_INIT( oldsplus ) | |
| 1522 | 1552 | { |
| 1523 | 1553 | pgm_basic_init(machine); |
| 1524 | pgm_oldss_decrypt(machine); | |
| 1554 | pgm_oldsplus_decrypt(machine); | |
| 1525 | 1555 | } |
| 1526 | 1556 | |
| 1527 | 1557 | static DRIVER_INIT( kov2 ) |
| r4470 | r4471 | |
| 2058 | 2088 | |
| 2059 | 2089 | /* CPU2 = Z80, romless, code uploaded by 68k */ |
| 2060 | 2090 | |
| 2061 | ROM_REGION( 0x200000, "gfx1", | |
| 2091 | ROM_REGION( 0x200000, "gfx1", 0 | |
| 2062 | 2092 | ROM_LOAD( "pgm_t01s.rom", 0x000000, 0x200000, CRC(1a7123a0) SHA1(cc567f577bfbf45427b54d6695b11b74f2578af3) ) |
| 2063 | 2093 | |
| 2064 | 2094 | ROM_REGION( 0x200000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ |
| 2065 | 2095 | ROM_LOAD( "pgm_m01s.rom", 0x000000, 0x200000, CRC(45ae7159) SHA1(d3ed3ff3464557fd0df6b069b2e431528b0ebfa8) ) |
| 2066 | 2096 | |
| 2067 | ROM_REGION( 0x800000/5*8, "gfx2", ROMREGION_ | |
| 2097 | ROM_REGION( 0x800000/5*8, "gfx2", ROMREGION_ | |
| 2068 | 2098 | |
| 2069 | 2099 | ROM_REGION( 0x1000000, "gfx4", ROMREGION_ERASEFF ) /* Sprite Masks + Colour Indexes */ |
| 2070 | 2100 | ROM_END |
| r4470 | r4471 | |
| 2076 | 2106 | |
| 2077 | 2107 | /* CPU2 = Z80, romless, code uploaded by 68k */ |
| 2078 | 2108 | |
| 2079 | ROM_REGION( 0x800000, "gfx1", | |
| 2109 | ROM_REGION( 0x800000, "gfx1", 0 | |
| 2080 | 2110 | ROM_LOAD( "pgm_t01s.rom", 0x000000, 0x200000, CRC(1a7123a0) SHA1(cc567f577bfbf45427b54d6695b11b74f2578af3) ) // (BIOS) |
| 2081 | 2111 | ROM_LOAD( "t0100.rom", 0x400000, 0x400000, CRC(61425e1e) SHA1(20753b86fc12003cfd763d903f034dbba8010b32) ) |
| 2082 | 2112 | |
| 2083 | ROM_REGION( 0x800000/5*8, "gfx2", ROMREGION_ | |
| 2113 | ROM_REGION( 0x800000/5*8, "gfx2", ROMREGION_ | |
| 2084 | 2114 | /* 32x32 Tile Data is put here for easier Decoding */ |
| 2085 | 2115 | |
| 2086 | ROM_REGION( 0x1800000, "gfx3", | |
| 2116 | ROM_REGION( 0x1800000, "gfx3", 0 | |
| 2087 | 2117 | ROM_LOAD( "a0100.rom", 0x0000000, 0x400000, CRC(8b3bd88a) SHA1(42db3a60c6ba9d83ebe2008c8047d094027f65a7) ) |
| 2088 | 2118 | ROM_LOAD( "a0101.rom", 0x0400000, 0x400000, CRC(3b9e9644) SHA1(5b95ec1d25c3bc3504c93547f5adb5ce24376405) ) |
| 2089 | 2119 | ROM_LOAD( "a0102.rom", 0x0800000, 0x400000, CRC(069e2c38) SHA1(9bddca8c2f5bd80f4abe4e1f062751736dc151dd) ) |
| r4470 | r4471 | |
| 2108 | 2138 | |
| 2109 | 2139 | /* CPU2 = Z80, romless, code uploaded by 68k */ |
| 2110 | 2140 | |
| 2111 | ROM_REGION( 0x800000, "gfx1", | |
| 2141 | ROM_REGION( 0x800000, "gfx1", 0 | |
| 2112 | 2142 | ROM_LOAD( "pgm_t01s.rom", 0x000000, 0x200000, CRC(1a7123a0) SHA1(cc567f577bfbf45427b54d6695b11b74f2578af3) ) // (BIOS) |
| 2113 | 2143 | ROM_LOAD( "t0100.rom", 0x400000, 0x400000, CRC(61425e1e) SHA1(20753b86fc12003cfd763d903f034dbba8010b32) ) |
| 2114 | 2144 | |
| 2115 | ROM_REGION( 0x800000/5*8, "gfx2", ROMREGION_ | |
| 2145 | ROM_REGION( 0x800000/5*8, "gfx2", ROMREGION_ | |
| 2116 | 2146 | /* 32x32 Tile Data is put here for easier Decoding */ |
| 2117 | 2147 | |
| 2118 | ROM_REGION( 0x1800000, "gfx3", | |
| 2148 | ROM_REGION( 0x1800000, "gfx3", 0 | |
| 2119 | 2149 | ROM_LOAD( "a0100.rom", 0x0000000, 0x400000, CRC(8b3bd88a) SHA1(42db3a60c6ba9d83ebe2008c8047d094027f65a7) ) |
| 2120 | 2150 | ROM_LOAD( "a0101.rom", 0x0400000, 0x400000, CRC(3b9e9644) SHA1(5b95ec1d25c3bc3504c93547f5adb5ce24376405) ) |
| 2121 | 2151 | ROM_LOAD( "a0102.rom", 0x0800000, 0x400000, CRC(069e2c38) SHA1(9bddca8c2f5bd80f4abe4e1f062751736dc151dd) ) |
| r4470 | r4471 | |
| 2140 | 2170 | |
| 2141 | 2171 | /* CPU2 = Z80, romless, code uploaded by 68k */ |
| 2142 | 2172 | |
| 2143 | ROM_REGION( 0x800000, "gfx1", | |
| 2173 | ROM_REGION( 0x800000, "gfx1", 0 | |
| 2144 | 2174 | ROM_LOAD( "pgm_t01s.rom", 0x000000, 0x200000, CRC(1a7123a0) SHA1(cc567f577bfbf45427b54d6695b11b74f2578af3) ) // (BIOS) |
| 2145 | 2175 | ROM_LOAD( "t0100.rom", 0x400000, 0x400000, CRC(61425e1e) SHA1(20753b86fc12003cfd763d903f034dbba8010b32) ) |
| 2146 | 2176 | |
| 2147 | ROM_REGION( 0x800000/5*8, "gfx2", ROMREGION_ | |
| 2177 | ROM_REGION( 0x800000/5*8, "gfx2", ROMREGION_ | |
| 2148 | 2178 | /* 32x32 Tile Data is put here for easier Decoding */ |
| 2149 | 2179 | |
| 2150 | ROM_REGION( 0x1800000, "gfx3", | |
| 2180 | ROM_REGION( 0x1800000, "gfx3", 0 | |
| 2151 | 2181 | ROM_LOAD( "a0100.rom", 0x0000000, 0x400000, CRC(8b3bd88a) SHA1(42db3a60c6ba9d83ebe2008c8047d094027f65a7) ) |
| 2152 | 2182 | ROM_LOAD( "a0101.rom", 0x0400000, 0x400000, CRC(3b9e9644) SHA1(5b95ec1d25c3bc3504c93547f5adb5ce24376405) ) |
| 2153 | 2183 | ROM_LOAD( "a0102.rom", 0x0800000, 0x400000, CRC(069e2c38) SHA1(9bddca8c2f5bd80f4abe4e1f062751736dc151dd) ) |
| r4470 | r4471 | |
| 2208 | 2238 | |
| 2209 | 2239 | /* CPU2 = Z80, romless, code uploaded by 68k */ |
| 2210 | 2240 | |
| 2211 | ROM_REGION( 0x800000, "gfx1", | |
| 2241 | ROM_REGION( 0x800000, "gfx1", 0 | |
| 2212 | 2242 | ROM_LOAD( "pgm_t01s.rom", 0x000000, 0x200000, CRC(1a7123a0) SHA1(cc567f577bfbf45427b54d6695b11b74f2578af3) ) // (BIOS) |
| 2213 | 2243 | ROM_LOAD( "t0100.rom", 0x400000, 0x400000, CRC(61425e1e) SHA1(20753b86fc12003cfd763d903f034dbba8010b32) ) |
| 2214 | 2244 | |
| 2215 | ROM_REGION( 0x800000/5*8, "gfx2", ROMREGION_ | |
| 2245 | ROM_REGION( 0x800000/5*8, "gfx2", ROMREGION_ | |
| 2216 | 2246 | /* 32x32 Tile Data is put here for easier Decoding */ |
| 2217 | 2247 | |
| 2218 | ROM_REGION( 0x1800000, "gfx3", | |
| 2248 | ROM_REGION( 0x1800000, "gfx3", 0 | |
| 2219 | 2249 | ROM_LOAD( "a0100.rom", 0x0000000, 0x400000, CRC(8b3bd88a) SHA1(42db3a60c6ba9d83ebe2008c8047d094027f65a7) ) |
| 2220 | 2250 | ROM_LOAD( "a0101.rom", 0x0400000, 0x400000, CRC(3b9e9644) SHA1(5b95ec1d25c3bc3504c93547f5adb5ce24376405) ) |
| 2221 | 2251 | ROM_LOAD( "a0102.rom", 0x0800000, 0x400000, CRC(069e2c38) SHA1(9bddca8c2f5bd80f4abe4e1f062751736dc151dd) ) |
| r4470 | r4471 | |
| 2276 | 2306 | |
| 2277 | 2307 | /* CPU2 = Z80, romless, code uploaded by 68k */ |
| 2278 | 2308 | |
| 2279 | ROM_REGION( 0x800000, "gfx1", | |
| 2309 | ROM_REGION( 0x800000, "gfx1", 0 | |
| 2280 | 2310 | ROM_LOAD( "pgm_t01s.rom", 0x000000, 0x200000, CRC(1a7123a0) SHA1(cc567f577bfbf45427b54d6695b11b74f2578af3) ) // (BIOS) |
| 2281 | 2311 | ROM_LOAD( "t0100.rom", 0x400000, 0x400000, CRC(61425e1e) SHA1(20753b86fc12003cfd763d903f034dbba8010b32) ) |
| 2282 | 2312 | |
| 2283 | ROM_REGION( 0x800000/5*8, "gfx2", ROMREGION_ | |
| 2313 | ROM_REGION( 0x800000/5*8, "gfx2", ROMREGION_ | |
| 2284 | 2314 | /* 32x32 Tile Data is put here for easier Decoding */ |
| 2285 | 2315 | |
| 2286 | ROM_REGION( 0x1800000, "gfx3", | |
| 2316 | ROM_REGION( 0x1800000, "gfx3", 0 | |
| 2287 | 2317 | ROM_LOAD( "a0100.rom", 0x0000000, 0x400000, CRC(8b3bd88a) SHA1(42db3a60c6ba9d83ebe2008c8047d094027f65a7) ) |
| 2288 | 2318 | ROM_LOAD( "a0101.rom", 0x0400000, 0x400000, CRC(3b9e9644) SHA1(5b95ec1d25c3bc3504c93547f5adb5ce24376405) ) |
| 2289 | 2319 | ROM_LOAD( "a0102.rom", 0x0800000, 0x400000, CRC(069e2c38) SHA1(9bddca8c2f5bd80f4abe4e1f062751736dc151dd) ) |
| r4470 | r4471 | |
| 2375 | 2405 | |
| 2376 | 2406 | /* CPU2 = Z80, romless, code uploaded by 68k */ |
| 2377 | 2407 | |
| 2378 | ROM_REGION( 0x800000, "gfx1", | |
| 2408 | ROM_REGION( 0x800000, "gfx1", 0 | |
| 2379 | 2409 | ROM_LOAD( "pgm_t01s.rom", 0x000000, 0x200000, CRC(1a7123a0) SHA1(cc567f577bfbf45427b54d6695b11b74f2578af3) ) // (BIOS) |
| 2380 | 2410 | ROM_LOAD( "pgmt0200.u7", 0x400000, 0x400000, CRC(b0f6534d) SHA1(174cacd81169a0e0d14790ac06d03caed737e05d) ) |
| 2381 | 2411 | |
| 2382 | ROM_REGION( 0x800000/5*8, "gfx2", ROMREGION_ | |
| 2412 | ROM_REGION( 0x800000/5*8, "gfx2", ROMREGION_ | |
| 2383 | 2413 | /* 32x32 Tile Data is put here for easier Decoding */ |
| 2384 | 2414 | |
| 2385 | ROM_REGION( 0x400000, "gfx3", | |
| 2415 | ROM_REGION( 0x400000, "gfx3", 0 | |
| 2386 | 2416 | ROM_LOAD( "pgma0200.u5", 0x0000000, 0x400000, CRC(13b95069) SHA1(4888b06002afb18eab81c010e9362629045767af) ) |
| 2387 | 2417 | |
| 2388 | 2418 | ROM_REGION( 0x400000, "gfx4", 0 ) /* Sprite Masks + Colour Indexes */ |
| r4470 | r4471 | |
| 2400 | 2430 | |
| 2401 | 2431 | /* CPU2 = Z80, romless, code uploaded by 68k */ |
| 2402 | 2432 | |
| 2403 | ROM_REGION( 0x800000, "gfx1", | |
| 2433 | ROM_REGION( 0x800000, "gfx1", 0 | |
| 2404 | 2434 | ROM_LOAD( "pgm_t01s.rom", 0x000000, 0x200000, CRC(1a7123a0) SHA1(cc567f577bfbf45427b54d6695b11b74f2578af3) ) // (BIOS) |
| 2405 | 2435 | ROM_LOAD( "pgmt0200.u7", 0x400000, 0x400000, CRC(b0f6534d) SHA1(174cacd81169a0e0d14790ac06d03caed737e05d) ) |
| 2406 | 2436 | |
| 2407 | ROM_REGION( 0x800000/5*8, "gfx2", ROMREGION_ | |
| 2437 | ROM_REGION( 0x800000/5*8, "gfx2", ROMREGION_ | |
| 2408 | 2438 | /* 32x32 Tile Data is put here for easier Decoding */ |
| 2409 | 2439 | |
| 2410 | ROM_REGION( 0x400000, "gfx3", | |
| 2440 | ROM_REGION( 0x400000, "gfx3", 0 | |
| 2411 | 2441 | ROM_LOAD( "pgma0200.u5", 0x0000000, 0x400000, CRC(13b95069) SHA1(4888b06002afb18eab81c010e9362629045767af) ) |
| 2412 | 2442 | |
| 2413 | 2443 | ROM_REGION( 0x400000, "gfx4", 0 ) /* Sprite Masks + Colour Indexes */ |
| r4470 | r4471 | |
| 2424 | 2454 | |
| 2425 | 2455 | /* CPU2 = Z80, romless, code uploaded by 68k */ |
| 2426 | 2456 | |
| 2427 | ROM_REGION( 0x800000, "gfx1", | |
| 2457 | ROM_REGION( 0x800000, "gfx1", 0 | |
| 2428 | 2458 | ROM_LOAD( "pgm_t01s.rom", 0x000000, 0x200000, CRC(1a7123a0) SHA1(cc567f577bfbf45427b54d6695b11b74f2578af3) ) // (BIOS) |
| 2429 | 2459 | ROM_LOAD( "pgmt0200.u7", 0x400000, 0x400000, CRC(b0f6534d) SHA1(174cacd81169a0e0d14790ac06d03caed737e05d) ) |
| 2430 | 2460 | |
| 2431 | ROM_REGION( 0x800000/5*8, "gfx2", ROMREGION_ | |
| 2461 | ROM_REGION( 0x800000/5*8, "gfx2", ROMREGION_ | |
| 2432 | 2462 | /* 32x32 Tile Data is put here for easier Decoding */ |
| 2433 | 2463 | |
| 2434 | ROM_REGION( 0x400000, "gfx3", | |
| 2464 | ROM_REGION( 0x400000, "gfx3", 0 | |
| 2435 | 2465 | ROM_LOAD( "pgma0200.u5", 0x0000000, 0x400000, CRC(13b95069) SHA1(4888b06002afb18eab81c010e9362629045767af) ) |
| 2436 | 2466 | |
| 2437 | 2467 | ROM_REGION( 0x400000, "gfx4", 0 ) /* Sprite Masks + Colour Indexes */ |
| r4470 | r4471 | |
| 2476 | 2506 | ROM_REGION( 0x010000, "user1", 0 ) /* Protection Data */ |
| 2477 | 2507 | ROM_LOAD( "dw3_v100.u15", 0x000000, 0x010000, CRC(03dc4fdf) SHA1(b329b04325d4f725231b1bb7862eedef2319b652) ) |
| 2478 | 2508 | |
| 2479 | ROM_REGION( 0xc00000, "gfx1", | |
| 2509 | ROM_REGION( 0xc00000, "gfx1", 0 | |
| 2480 | 2510 | ROM_LOAD( "pgm_t01s.rom", 0x000000, 0x200000, CRC(1a7123a0) SHA1(cc567f577bfbf45427b54d6695b11b74f2578af3) ) // (BIOS) |
| 2481 | 2511 | ROM_LOAD( "dw3t0400.u18", 0x400000, 0x400000, CRC(b70f3357) SHA1(8733969d7d21f540f295a9f747a4bb8f0d325cf0) ) |
| 2482 | 2512 | |
| 2483 | ROM_REGION( 0xc00000/5*8, "gfx2", ROMREGION_ | |
| 2513 | ROM_REGION( 0xc00000/5*8, "gfx2", ROMREGION_ | |
| 2484 | 2514 | /* 32x32 Tile Data is put here for easier Decoding */ |
| 2485 | 2515 | |
| 2486 | ROM_REGION( 0x1800000, "gfx3", | |
| 2516 | ROM_REGION( 0x1800000, "gfx3", 0 | |
| 2487 | 2517 | ROM_LOAD( "dw3a0400.u9", 0x0000000, 0x400000, CRC(dd7bfd40) SHA1(fb7ec5bf89a413c5208716083762a725ff63f5db) ) // FIXED BITS (xxxxxxxx1xxxxxxx) |
| 2488 | 2518 | ROM_LOAD( "dw3a0401.u10", 0x0400000, 0x400000, CRC(cab6557f) SHA1(1904dd86645eea27ac1ab8a2462b20f6531356f8) ) // FIXED BITS (xxxxxxxx1xxxxxxx) |
| 2489 | 2519 | |
| r4470 | r4471 | |
| 2522 | 2552 | ROM_REGION( 0x010000, "user1", 0 ) /* Protection Data - is it correct for this set? */ |
| 2523 | 2553 | ROM_LOAD( "dw3_v100.u15", 0x000000, 0x010000, CRC(03dc4fdf) SHA1(b329b04325d4f725231b1bb7862eedef2319b652) ) |
| 2524 | 2554 | |
| 2525 | ROM_REGION( 0xc00000, "gfx1", | |
| 2555 | ROM_REGION( 0xc00000, "gfx1", 0 | |
| 2526 | 2556 | ROM_LOAD( "pgm_t01s.rom", 0x000000, 0x200000, CRC(1a7123a0) SHA1(cc567f577bfbf45427b54d6695b11b74f2578af3) ) // (BIOS) |
| 2527 | 2557 | ROM_LOAD( "dw3t0400.u18", 0x400000, 0x400000, CRC(b70f3357) SHA1(8733969d7d21f540f295a9f747a4bb8f0d325cf0) ) |
| 2528 | 2558 | |
| 2529 | ROM_REGION( 0xc00000/5*8, "gfx2", ROMREGION_ | |
| 2559 | ROM_REGION( 0xc00000/5*8, "gfx2", ROMREGION_ | |
| 2530 | 2560 | /* 32x32 Tile Data is put here for easier Decoding */ |
| 2531 | 2561 | |
| 2532 | ROM_REGION( 0x1800000, "gfx3", | |
| 2562 | ROM_REGION( 0x1800000, "gfx3", 0 | |
| 2533 | 2563 | ROM_LOAD( "dw3a0400.u9", 0x0000000, 0x400000, CRC(dd7bfd40) SHA1(fb7ec5bf89a413c5208716083762a725ff63f5db) ) // FIXED BITS (xxxxxxxx1xxxxxxx) |
| 2534 | 2564 | ROM_LOAD( "dw3a0401.u10", 0x0400000, 0x400000, CRC(cab6557f) SHA1(1904dd86645eea27ac1ab8a2462b20f6531356f8) ) // FIXED BITS (xxxxxxxx1xxxxxxx) |
| 2535 | 2565 | |
| r4470 | r4471 | |
| 2551 | 2581 | ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */ |
| 2552 | 2582 | ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP ) |
| 2553 | 2583 | |
| 2554 | ROM_REGION( 0xc00000, "gfx1", | |
| 2584 | ROM_REGION( 0xc00000, "gfx1", 0 | |
| 2555 | 2585 | ROM_LOAD( "pgm_t01s.rom", 0x000000, 0x200000, CRC(1a7123a0) SHA1(cc567f577bfbf45427b54d6695b11b74f2578af3) ) // (BIOS) |
| 2556 | 2586 | ROM_LOAD( "t0600.rom", 0x400000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) ) |
| 2557 | 2587 | |
| 2558 | ROM_REGION( 0xc00000/5*8, "gfx2", ROMREGION_ | |
| 2588 | ROM_REGION( 0xc00000/5*8, "gfx2", ROMREGION_ | |
| 2559 | 2589 | /* 32x32 Tile Data is put here for easier Decoding */ |
| 2560 | 2590 | |
| 2561 | ROM_REGION( 0x1c00000, "gfx3", | |
| 2591 | ROM_REGION( 0x1c00000, "gfx3", 0 | |
| 2562 | 2592 | ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) ) // FIXED BITS (xxxxxxxx1xxxxxxx) |
| 2563 | 2593 | ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) // FIXED BITS (xxxxxxxx1xxxxxxx) |
| 2564 | 2594 | ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) ) // FIXED BITS (xxxxxxxx1xxxxxxx) |
| r4470 | r4471 | |
| 2583 | 2613 | ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */ |
| 2584 | 2614 | ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP ) |
| 2585 | 2615 | |
| 2586 | ROM_REGION( 0xc00000, "gfx1", | |
| 2616 | ROM_REGION( 0xc00000, "gfx1", 0 | |
| 2587 | 2617 | ROM_LOAD( "pgm_t01s.rom", 0x000000, 0x200000, CRC(1a7123a0) SHA1(cc567f577bfbf45427b54d6695b11b74f2578af3) ) // (BIOS) |
| 2588 | 2618 | ROM_LOAD( "t0600.rom", 0x400000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) ) |
| 2589 | 2619 | |
| 2590 | ROM_REGION( 0xc00000/5*8, "gfx2", ROMREGION_ | |
| 2620 | ROM_REGION( 0xc00000/5*8, "gfx2", ROMREGION_ | |
| 2591 | 2621 | /* 32x32 Tile Data is put here for easier Decoding */ |
| 2592 | 2622 | |
| 2593 | ROM_REGION( 0x1c00000, "gfx3", | |
| 2623 | ROM_REGION( 0x1c00000, "gfx3", 0 | |
| 2594 | 2624 | ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) ) // FIXED BITS (xxxxxxxx1xxxxxxx) |
| 2595 | 2625 | ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) // FIXED BITS (xxxxxxxx1xxxxxxx) |
| 2596 | 2626 | ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) ) // FIXED BITS (xxxxxxxx1xxxxxxx) |
| r4470 | r4471 | |
| 2650 | 2680 | ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */ |
| 2651 | 2681 | ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP ) |
| 2652 | 2682 | |
| 2653 | ROM_REGION( 0xc00000, "gfx1", | |
| 2683 | ROM_REGION( 0xc00000, "gfx1", 0 | |
| 2654 | 2684 | ROM_LOAD( "pgm_t01s.rom", 0x000000, 0x200000, CRC(1a7123a0) SHA1(cc567f577bfbf45427b54d6695b11b74f2578af3) ) // (BIOS) |
| 2655 | 2685 | ROM_LOAD( "t0600.rom", 0x400000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) ) |
| 2656 | 2686 | |
| 2657 | ROM_REGION( 0xc00000/5*8, "gfx2", ROMREGION_ | |
| 2687 | ROM_REGION( 0xc00000/5*8, "gfx2", ROMREGION_ | |
| 2658 | 2688 | /* 32x32 Tile Data is put here for easier Decoding */ |
| 2659 | 2689 | |
| 2660 | ROM_REGION( 0x1c00000, "gfx3", | |
| 2690 | ROM_REGION( 0x1c00000, "gfx3", 0 | |
| 2661 | 2691 | ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) ) // FIXED BITS (xxxxxxxx1xxxxxxx) |
| 2662 | 2692 | ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) // FIXED BITS (xxxxxxxx1xxxxxxx) |
| 2663 | 2693 | ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) ) // FIXED BITS (xxxxxxxx1xxxxxxx) |
| r4470 | r4471 | |
| 2682 | 2712 | ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */ |
| 2683 | 2713 | ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP ) |
| 2684 | 2714 | |
| 2685 | ROM_REGION( 0xc00000, "gfx1", | |
| 2715 | ROM_REGION( 0xc00000, "gfx1", 0 | |
| 2686 | 2716 | ROM_LOAD( "pgm_t01s.rom", 0x000000, 0x200000, CRC(1a7123a0) SHA1(cc567f577bfbf45427b54d6695b11b74f2578af3) ) // (BIOS) |
| 2687 | 2717 | ROM_LOAD( "t0600.rom", 0x400000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) ) |
| 2688 | 2718 | |
| 2689 | ROM_REGION( 0xc00000/5*8, "gfx2", ROMREGION_ | |
| 2719 | ROM_REGION( 0xc00000/5*8, "gfx2", ROMREGION_ | |
| 2690 | 2720 | /* 32x32 Tile Data is put here for easier Decoding */ |
| 2691 | 2721 | |
| 2692 | ROM_REGION( 0x1c00000, "gfx3", | |
| 2722 | ROM_REGION( 0x1c00000, "gfx3", 0 | |
| 2693 | 2723 | ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) ) // FIXED BITS (xxxxxxxx1xxxxxxx) |
| 2694 | 2724 | ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) // FIXED BITS (xxxxxxxx1xxxxxxx) |
| 2695 | 2725 | ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) ) // FIXED BITS (xxxxxxxx1xxxxxxx) |
| r4470 | r4471 | |
| 2749 | 2779 | ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */ |
| 2750 | 2780 | ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP ) |
| 2751 | 2781 | |
| 2752 | ROM_REGION( 0xc00000, "gfx1", | |
| 2782 | ROM_REGION( 0xc00000, "gfx1", 0 | |
| 2753 | 2783 | ROM_LOAD( "pgm_t01s.rom", 0x000000, 0x200000, CRC(1a7123a0) SHA1(cc567f577bfbf45427b54d6695b11b74f2578af3) ) // (BIOS) |
| 2754 | 2784 | ROM_LOAD( "t0600.rom", 0x400000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) ) |
| 2755 | 2785 | |
| 2756 | ROM_REGION( 0xc00000/5*8, "gfx2", ROMREGION_ | |
| 2786 | ROM_REGION( 0xc00000/5*8, "gfx2", ROMREGION_ | |
| 2757 | 2787 | /* 32x32 Tile Data is put here for easier Decoding */ |
| 2758 | 2788 | |
| 2759 | ROM_REGION( 0x1c00000, "gfx3", | |
| 2789 | ROM_REGION( 0x1c00000, "gfx3", 0 | |
| 2760 | 2790 | ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) ) // FIXED BITS (xxxxxxxx1xxxxxxx) |
| 2761 | 2791 | ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) // FIXED BITS (xxxxxxxx1xxxxxxx) |
| 2762 | 2792 | ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) ) // FIXED BITS (xxxxxxxx1xxxxxxx) |
| r4470 | r4471 | |
| 2781 | 2811 | ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */ |
| 2782 | 2812 | ROM_LOAD( "kovsh_v100_china.asic", 0x000000, 0x04000, CRC(0f09a5c1) SHA1(621b38c05f33277608d58b49822aebc930ae4870) ) |
| 2783 | 2813 | |
| 2784 | ROM_REGION( 0xc00000, "gfx1", | |
| 2814 | ROM_REGION( 0xc00000, "gfx1", 0 | |
| 2785 | 2815 | ROM_LOAD( "pgm_t01s.rom", 0x000000, 0x200000, CRC(1a7123a0) SHA1(cc567f577bfbf45427b54d6695b11b74f2578af3) ) // (BIOS) |
| 2786 | 2816 | ROM_LOAD( "t0600.rom", 0x400000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) ) |
| 2787 | 2817 | |
| 2788 | ROM_REGION( 0xc00000/5*8, "gfx2", ROMREGION_ | |
| 2818 | ROM_REGION( 0xc00000/5*8, "gfx2", ROMREGION_ | |
| 2789 | 2819 | /* 32x32 Tile Data is put here for easier Decoding */ |
| 2790 | 2820 | |
| 2791 | 2821 | /* all roms below need checking to see if they're the same on this board */ |
| 2792 | ROM_REGION( 0x1e00000, "gfx3", | |
| 2822 | ROM_REGION( 0x1e00000, "gfx3", 0 | |
| 2793 | 2823 | ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) ) // FIXED BITS (xxxxxxxx1xxxxxxx) |
| 2794 | 2824 | ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) // FIXED BITS (xxxxxxxx1xxxxxxx) |
| 2795 | 2825 | ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) ) // FIXED BITS (xxxxxxxx1xxxxxxx) |
| r4470 | r4471 | |
| 2816 | 2846 | ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */ |
| 2817 | 2847 | ROM_LOAD( "photoy2k_v100_china.asic", 0x000000, 0x04000, CRC(6dd7f257) SHA1(1984f98a282d8b3264674f231c3b7def1757cf72) ) |
| 2818 | 2848 | |
| 2819 | ROM_REGION( 0x480000, "gfx1", | |
| 2849 | ROM_REGION( 0x480000, "gfx1", 0 | |
| 2820 | 2850 | ROM_LOAD( "pgm_t01s.rom", 0x000000, 0x200000, CRC(1a7123a0) SHA1(cc567f577bfbf45427b54d6695b11b74f2578af3) ) // (BIOS) |
| 2821 | 2851 | ROM_LOAD( "t0700.rom", 0x400000, 0x080000, CRC(93943b4d) SHA1(3b439903853727d45d62c781af6073024eb3c5a3) ) |
| 2822 | 2852 | |
| 2823 | ROM_REGION( 0x480000/5*8, "gfx2", ROMREGION_ | |
| 2853 | ROM_REGION( 0x480000/5*8, "gfx2", ROMREGION_ | |
| 2824 | 2854 | /* 32x32 Tile Data is put here for easier Decoding */ |
| 2825 | 2855 | |
| 2826 | 2856 | /* all roms below need checking to see if they're the same on this board */ |
| 2827 | ROM_REGION( 0x1080000, "gfx3", | |
| 2857 | ROM_REGION( 0x1080000, "gfx3", 0 | |
| 2828 | 2858 | ROM_LOAD( "a0700.l", 0x0000000, 0x0400000, CRC(26a9ae9c) SHA1(c977c89db6fdf47ee260ff687b80375caeab975c) ) // FIXED BITS (xxxxxxxx1xxxxxxx) |
| 2829 | 2859 | ROM_LOAD( "a0700.h", 0x0400000, 0x0400000, CRC(79bc1fc1) SHA1(a09472a9b75704c1d31ab828f92c2a5007b2b4ed) ) // FIXED BITS (xxxxxxxx1xxxxxxx) |
| 2830 | 2860 | ROM_LOAD( "a0701.l", 0x0800000, 0x0400000, CRC(23607f81) SHA1(8b6dbcdce9b131370693847ed9771aa04b62711c) ) // FIXED BITS (xxxxxxxx1xxxxxxx) |
| r4470 | r4471 | |
| 2884 | 2914 | ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */ |
| 2885 | 2915 | ROM_LOAD( "photoy2k_v100_china.asic", 0x000000, 0x04000, CRC(6dd7f257) SHA1(1984f98a282d8b3264674f231c3b7def1757cf72) ) |
| 2886 | 2916 | |
| 2887 | ROM_REGION( 0x480000, "gfx1", | |
| 2917 | ROM_REGION( 0x480000, "gfx1", 0 | |
| 2888 | 2918 | ROM_LOAD( "pgm_t01s.rom", 0x000000, 0x200000, CRC(1a7123a0) SHA1(cc567f577bfbf45427b54d6695b11b74f2578af3) ) // (BIOS) |
| 2889 | 2919 | ROM_LOAD( "t0700.rom", 0x400000, 0x080000, CRC(93943b4d) SHA1(3b439903853727d45d62c781af6073024eb3c5a3) ) |
| 2890 | 2920 | |
| 2891 | ROM_REGION( 0x480000/5*8, "gfx2", ROMREGION_ | |
| 2921 | ROM_REGION( 0x480000/5*8, "gfx2", ROMREGION_ | |
| 2892 | 2922 | /* 32x32 Tile Data is put here for easier Decoding */ |
| 2893 | 2923 | |
| 2894 | 2924 | /* all roms below need checking to see if they're the same on this board */ |
| 2895 | ROM_REGION( 0x1080000, "gfx3", | |
| 2925 | ROM_REGION( 0x1080000, "gfx3", 0 | |
| 2896 | 2926 | ROM_LOAD( "a0700.l", 0x0000000, 0x0400000, CRC(26a9ae9c) SHA1(c977c89db6fdf47ee260ff687b80375caeab975c) ) // FIXED BITS (xxxxxxxx1xxxxxxx) |
| 2897 | 2927 | ROM_LOAD( "a0700.h", 0x0400000, 0x0400000, CRC(79bc1fc1) SHA1(a09472a9b75704c1d31ab828f92c2a5007b2b4ed) ) // FIXED BITS (xxxxxxxx1xxxxxxx) |
| 2898 | 2928 | ROM_LOAD( "a0701.l", 0x0800000, 0x0400000, CRC(23607f81) SHA1(8b6dbcdce9b131370693847ed9771aa04b62711c) ) // FIXED BITS (xxxxxxxx1xxxxxxx) |
| r4470 | r4471 | |
| 2993 | 3023 | ROM_REGION( 0x010000, "user1", 0 ) /* Protection Data */ |
| 2994 | 3024 | ROM_LOAD16_WORD_SWAP( "kb_u2_v104.u2", 0x000000, 0x010000, CRC(c970f6d5) SHA1(399fc6f80262784c566363c847dc3fdc4fb37494) ) |
| 2995 | 3025 | |
| 2996 | ROM_REGION( 0x800000, "gfx1", | |
| 3026 | ROM_REGION( 0x800000, "gfx1", 0 | |
| 2997 | 3027 | ROM_LOAD( "pgm_t01s.rom", 0x000000, 0x200000, CRC(1a7123a0) SHA1(cc567f577bfbf45427b54d6695b11b74f2578af3) ) // (BIOS) |
| 2998 | 3028 | ROM_LOAD( "t0300.u14", 0x400000, 0x400000, CRC(0922f7d9) SHA1(4302b4b7369e13f315fad14f7d6cad1321101d24) ) |
| 2999 | 3029 | |
| 3000 | ROM_REGION( 0x800000/5*8, "gfx2", ROMREGION_ | |
| 3030 | ROM_REGION( 0x800000/5*8, "gfx2", ROMREGION_ | |
| 3001 | 3031 | /* 32x32 Tile Data is put here for easier Decoding */ |
| 3002 | 3032 | |
| 3003 | ROM_REGION( 0x2000000, "gfx3", | |
| 3033 | ROM_REGION( 0x2000000, "gfx3", 0 | |
| 3004 | 3034 | ROM_LOAD( "a0300.u9", 0x0000000, 0x0400000, CRC(3f9455d3) SHA1(3718ce00ad93975383aafc14e5a74dc297b011a1) ) |
| 3005 | 3035 | ROM_LOAD( "a0301.u10", 0x0400000, 0x0400000, CRC(92776889) SHA1(6d677837fefff47bfd1c6166322f69f89989a5e2) ) |
| 3006 | 3036 | ROM_LOAD( "a0303.u11", 0x0800000, 0x0400000, CRC(33f5cc69) SHA1(9cacd5058d4bb25b77f71658bbbbd4b38d0a6b6a) ) |
| r4470 | r4471 | |
| 3034 | 3064 | ROM_REGION( 0x010000, "user1", 0 ) /* Protection Data */ |
| 3035 | 3065 | ROM_LOAD16_WORD_SWAP( "kb_u2.rom", 0x000000, 0x010000, CRC(de3eae63) SHA1(03af767ef764055bda528b5cc6a24b9e1218cca8) ) |
| 3036 | 3066 | |
| 3037 | ROM_REGION( 0x800000, "gfx1", | |
| 3067 | ROM_REGION( 0x800000, "gfx1", 0 | |
| 3038 | 3068 | ROM_LOAD( "pgm_t01s.rom", 0x000000, 0x200000, CRC(1a7123a0) SHA1(cc567f577bfbf45427b54d6695b11b74f2578af3) ) // (BIOS) |
| 3039 | 3069 | ROM_LOAD( "t0300.u14", 0x400000, 0x400000, CRC(0922f7d9) SHA1(4302b4b7369e13f315fad14f7d6cad1321101d24) ) |
| 3040 | 3070 | |
| 3041 | ROM_REGION( 0x800000/5*8, "gfx2", ROMREGION_ | |
| 3071 | ROM_REGION( 0x800000/5*8, "gfx2", ROMREGION_ | |
| 3042 | 3072 | /* 32x32 Tile Data is put here for easier Decoding */ |
| 3043 | 3073 | |
| 3044 | ROM_REGION( 0x2000000, "gfx3", | |
| 3074 | ROM_REGION( 0x2000000, "gfx3", 0 | |
| 3045 | 3075 | ROM_LOAD( "a0300.u9", 0x0000000, 0x0400000, CRC(3f9455d3) SHA1(3718ce00ad93975383aafc14e5a74dc297b011a1) ) |
| 3046 | 3076 | ROM_LOAD( "a0301.u10", 0x0400000, 0x0400000, CRC(92776889) SHA1(6d677837fefff47bfd1c6166322f69f89989a5e2) ) |
| 3047 | 3077 | ROM_LOAD( "a0303.u11", 0x0800000, 0x0400000, CRC(33f5cc69) SHA1(9cacd5058d4bb25b77f71658bbbbd4b38d0a6b6a) ) |
| r4470 | r4471 | |
| 3125 | 3155 | ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */ |
| 3126 | 3156 | ROM_LOAD( "puzlstar_igs027a.bin", 0x000000, 0x04000, NO_DUMP ) |
| 3127 | 3157 | |
| 3128 | ROM_REGION( 0xc00000, "gfx1", | |
| 3158 | ROM_REGION( 0xc00000, "gfx1", 0 | |
| 3129 | 3159 | ROM_LOAD( "pgm_t01s.rom", 0x000000, 0x200000, CRC(1a7123a0) SHA1(cc567f577bfbf45427b54d6695b11b74f2578af3) ) // (BIOS) |
| 3130 | 3160 | ROM_LOAD( "t0800.u5", 0x400000, 0x200000, CRC(f9d84e59) SHA1(80ec77025ac5bf355b1a60f2a678dd4c56071f6b) ) |
| 3131 | 3161 | |
| 3132 | ROM_REGION( 0xc00000/5*8, "gfx2", ROMREGION_ | |
| 3162 | ROM_REGION( 0xc00000/5*8, "gfx2", ROMREGION_ | |
| 3133 | 3163 | /* 32x32 Tile Data is put here for easier Decoding */ |
| 3134 | 3164 | |
| 3135 | ROM_REGION( 0x1c00000, "gfx3", | |
| 3165 | ROM_REGION( 0x1c00000, "gfx3", 0 | |
| 3136 | 3166 | ROM_LOAD( "a0800.u1", 0x0000000, 0x0400000, CRC(e1e6ec40) SHA1(390432431f144ef63424a426582b311765a61771) ) |
| 3137 | 3167 | |
| 3138 | 3168 | ROM_REGION( 0x1000000, "gfx4", 0 ) /* Sprite Masks + Colour Indexes */ |
| r4470 | r4471 | |
| 3217 | 3247 | // clearly not for this revision |
| 3218 | 3248 | ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) ) |
| 3219 | 3249 | |
| 3220 | ROM_REGION( 0xc00000, "gfx1", | |
| 3250 | ROM_REGION( 0xc00000, "gfx1", 0 | |
| 3221 | 3251 | ROM_LOAD( "pgm_t01s.rom", 0x000000, 0x200000, CRC(1a7123a0) SHA1(cc567f577bfbf45427b54d6695b11b74f2578af3) ) // (BIOS) |
| 3222 | 3252 | ROM_LOAD( "t0500.rom", 0x400000, 0x400000, CRC(d881726c) SHA1(a82517e665996f7b7017c940f1fcf016fccb65c2) ) |
| 3223 | 3253 | ROM_LOAD( "t0501.rom", 0x800000, 0x200000, CRC(d2106864) SHA1(65d827135b87d82196433aea3279608ee263feca) ) |
| 3224 | 3254 | |
| 3225 | ROM_REGION( 0xc00000/5*8, "gfx2", ROMREGION_ | |
| 3255 | ROM_REGION( 0xc00000/5*8, "gfx2", ROMREGION_ | |
| 3226 | 3256 | /* 32x32 Tile Data is put here for easier Decoding */ |
| 3227 | 3257 | |
| 3228 | ROM_REGION( 0x1c00000, "gfx3", | |
| 3258 | ROM_REGION( 0x1c00000, "gfx3", 0 | |
| 3229 | 3259 | ROM_LOAD( "a0500.rom", 0x0000000, 0x400000, CRC(80a59197) SHA1(7d0108e2f0d0347d43ace2d96c0388202c05fdfb) ) |
| 3230 | 3260 | ROM_LOAD( "a0501.rom", 0x0400000, 0x400000, CRC(98c931b1) SHA1(9b70d1a7beb4c3a0c1436c25fd1fb76e47539538) ) |
| 3231 | 3261 | ROM_LOAD( "a0502.rom", 0x0800000, 0x400000, CRC(c3fcdf1d) SHA1(107585fd103fcd0af0fb7db283be4f7c7058aef7) ) |
| r4470 | r4471 | |
| 3264 | 3294 | ROM_REGION( 0x010000, "user1", 0 ) /* ASIC25? Protection Data */ |
| 3265 | 3295 | ROM_LOAD( "kd-u6.512", 0x000000, 0x010000, CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) ) |
| 3266 | 3296 | |
| 3267 | ROM_REGION( 0xc00000, "gfx1", | |
| 3297 | ROM_REGION( 0xc00000, "gfx1", 0 | |
| 3268 | 3298 | ROM_LOAD( "pgm_t01s.rom", 0x000000, 0x200000, CRC(1a7123a0) SHA1(cc567f577bfbf45427b54d6695b11b74f2578af3) ) // (BIOS) |
| 3269 | 3299 | ROM_LOAD( "t0500.rom", 0x400000, 0x400000, CRC(d881726c) SHA1(a82517e665996f7b7017c940f1fcf016fccb65c2) ) |
| 3270 | 3300 | ROM_LOAD( "t0501.rom", 0x800000, 0x200000, CRC(d2106864) SHA1(65d827135b87d82196433aea3279608ee263feca) ) |
| 3271 | 3301 | |
| 3272 | ROM_REGION( 0xc00000/5*8, "gfx2", ROMREGION_ | |
| 3302 | ROM_REGION( 0xc00000/5*8, "gfx2", ROMREGION_ | |
| 3273 | 3303 | /* 32x32 Tile Data is put here for easier Decoding */ |
| 3274 | 3304 | |
| 3275 | ROM_REGION( 0x1c00000, "gfx3", | |
| 3305 | ROM_REGION( 0x1c00000, "gfx3", 0 | |
| 3276 | 3306 | ROM_LOAD( "a0500.rom", 0x0000000, 0x400000, CRC(80a59197) SHA1(7d0108e2f0d0347d43ace2d96c0388202c05fdfb) ) |
| 3277 | 3307 | ROM_LOAD( "a0501.rom", 0x0400000, 0x400000, CRC(98c931b1) SHA1(9b70d1a7beb4c3a0c1436c25fd1fb76e47539538) ) |
| 3278 | 3308 | ROM_LOAD( "a0502.rom", 0x0800000, 0x400000, CRC(c3fcdf1d) SHA1(107585fd103fcd0af0fb7db283be4f7c7058aef7) ) |
| r4470 | r4471 | |
| 3308 | 3338 | // used to simulate encrypted DMA protection device for now .. |
| 3309 | 3339 | ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) ) |
| 3310 | 3340 | |
| 3311 | ROM_REGION( 0xc00000, "gfx1", | |
| 3341 | ROM_REGION( 0xc00000, "gfx1", 0 | |
| 3312 | 3342 | ROM_LOAD( "pgm_t01s.rom", 0x000000, 0x200000, CRC(1a7123a0) SHA1(cc567f577bfbf45427b54d6695b11b74f2578af3) ) // (BIOS) |
| 3313 | 3343 | ROM_LOAD( "t0500.rom", 0x400000, 0x400000, CRC(d881726c) SHA1(a82517e665996f7b7017c940f1fcf016fccb65c2) ) |
| 3314 | 3344 | ROM_LOAD( "t0501.rom", 0x800000, 0x200000, CRC(d2106864) SHA1(65d827135b87d82196433aea3279608ee263feca) ) |
| 3315 | 3345 | |
| 3316 | ROM_REGION( 0xc00000/5*8, "gfx2", ROMREGION_ | |
| 3346 | ROM_REGION( 0xc00000/5*8, "gfx2", ROMREGION_ | |
| 3317 | 3347 | /* 32x32 Tile Data is put here for easier Decoding */ |
| 3318 | 3348 | |
| 3319 | ROM_REGION( 0x1c00000, "gfx3", | |
| 3349 | ROM_REGION( 0x1c00000, "gfx3", 0 | |
| 3320 | 3350 | ROM_LOAD( "a0500.rom", 0x0000000, 0x400000, CRC(80a59197) SHA1(7d0108e2f0d0347d43ace2d96c0388202c05fdfb) ) |
| 3321 | 3351 | ROM_LOAD( "a0501.rom", 0x0400000, 0x400000, CRC(98c931b1) SHA1(9b70d1a7beb4c3a0c1436c25fd1fb76e47539538) ) |
| 3322 | 3352 | ROM_LOAD( "a0502.rom", 0x0800000, 0x400000, CRC(c3fcdf1d) SHA1(107585fd103fcd0af0fb7db283be4f7c7058aef7) ) |
| r4470 | r4471 | |
| 3349 | 3379 | ROM_REGION32_LE( 0x400000, "user1", 0 ) /* Protection Data (encrypted external ARM data) */ |
| 3350 | 3380 | ROM_LOAD( "igs_u19.rom", 0x000000, 0x200000, CRC(edd59922) SHA1(09b14f20f685944a93292c83e5830849aade42c9) ) |
| 3351 | 3381 | |
| 3352 | ROM_REGION( 0xc00000, "gfx1", | |
| 3382 | ROM_REGION( 0xc00000, "gfx1", 0 | |
| 3353 | 3383 | ROM_LOAD( "pgm_t01s.rom", 0x000000, 0x200000, CRC(1a7123a0) SHA1(cc567f577bfbf45427b54d6695b11b74f2578af3) ) // (BIOS) |
| 3354 | 3384 | ROM_LOAD( "t1200.rom", 0x400000, 0x800000, CRC(d7e26609) SHA1(bdad810f82fcf1d50a8791bdc495374ec5a309c6) ) |
| 3355 | 3385 | |
| 3356 | ROM_REGION( 0xc00000/5*8, "gfx2", ROMREGION_ | |
| 3386 | ROM_REGION( 0xc00000/5*8, "gfx2", ROMREGION_ | |
| 3357 | 3387 | /* 32x32 Tile Data is put here for easier Decoding */ |
| 3358 | 3388 | |
| 3359 | 3389 | ROM_REGION( 0x2800000, "gfx3", 0 ) /* Sprite Colour Data */ |
| r4470 | r4471 | |
| 3385 | 3415 | ROM_REGION32_LE( 0x400000, "user1", 0 ) /* Protection Data (encrypted external ARM data) */ |
| 3386 | 3416 | ROM_LOAD( "u19.102", 0x000000, 0x200000, CRC(462e2980) SHA1(3da7c3d2c65b59f50c78be1c25922b71d40f6080) ) |
| 3387 | 3417 | |
| 3388 | ROM_REGION( 0xc00000, "gfx1", | |
| 3418 | ROM_REGION( 0xc00000, "gfx1", 0 | |
| 3389 | 3419 | ROM_LOAD( "pgm_t01s.rom", 0x000000, 0x200000, CRC(1a7123a0) SHA1(cc567f577bfbf45427b54d6695b11b74f2578af3) ) // (BIOS) |
| 3390 | 3420 | ROM_LOAD( "t1200.rom", 0x400000, 0x800000, CRC(d7e26609) SHA1(bdad810f82fcf1d50a8791bdc495374ec5a309c6) ) |
| 3391 | 3421 | |
| 3392 | ROM_REGION( 0xc00000/5*8, "gfx2", ROMREGION_ | |
| 3422 | ROM_REGION( 0xc00000/5*8, "gfx2", ROMREGION_ | |
| 3393 | 3423 | /* 32x32 Tile Data is put here for easier Decoding */ |
| 3394 | 3424 | |
| 3395 | 3425 | ROM_REGION( 0x2800000, "gfx3", 0 ) /* Sprite Colour Data */ |
| r4470 | r4471 | |
| 3421 | 3451 | ROM_REGION32_LE( 0x400000, "user1", 0 ) /* Protection Data (encrypted external ARM data) */ |
| 3422 | 3452 | ROM_LOAD( "v200-16.rom", 0x000000, 0x200000, CRC(16a0c11f) SHA1(ce449cef76ebd5657d49b57951e2eb0f132e203e) ) |
| 3423 | 3453 | |
| 3424 | ROM_REGION( 0xc00000, "gfx1", | |
| 3454 | ROM_REGION( 0xc00000, "gfx1", 0 | |
| 3425 | 3455 | ROM_LOAD( "pgm_t01s.rom", 0x000000, 0x200000, CRC(1a7123a0) SHA1(cc567f577bfbf45427b54d6695b11b74f2578af3) ) // (BIOS) |
| 3426 | 3456 | ROM_LOAD( "t1200.rom", 0x400000, 0x800000, CRC(d7e26609) SHA1(bdad810f82fcf1d50a8791bdc495374ec5a309c6) ) |
| 3427 | 3457 | |
| 3428 | ROM_REGION( 0xc00000/5*8, "gfx2", ROMREGION_ | |
| 3458 | ROM_REGION( 0xc00000/5*8, "gfx2", ROMREGION_ | |
| 3429 | 3459 | /* 32x32 Tile Data is put here for easier Decoding */ |
| 3430 | 3460 | |
| 3431 | 3461 | ROM_REGION( 0x2800000, "gfx3", 0 ) /* Sprite Colour Data */ |
| r4470 | r4471 | |
| 3457 | 3487 | ROM_REGION32_LE( 0x400000, "user1", 0 ) /* Protection Data (encrypted external ARM data) */ |
| 3458 | 3488 | ROM_LOAD( "v200-16.rom", 0x000000, 0x200000, CRC(16a0c11f) SHA1(ce449cef76ebd5657d49b57951e2eb0f132e203e) ) |
| 3459 | 3489 | |
| 3460 | ROM_REGION( 0xc00000, "gfx1", | |
| 3490 | ROM_REGION( 0xc00000, "gfx1", 0 | |
| 3461 | 3491 | ROM_LOAD( "pgm_t01s.rom", 0x000000, 0x200000, CRC(1a7123a0) SHA1(cc567f577bfbf45427b54d6695b11b74f2578af3) ) // (BIOS) |
| 3462 | 3492 | ROM_LOAD( "t1200.rom", 0x400000, 0x800000, CRC(d7e26609) SHA1(bdad810f82fcf1d50a8791bdc495374ec5a309c6) ) |
| 3463 | 3493 | |
| 3464 | ROM_REGION( 0xc00000/5*8, "gfx2", ROMREGION_ | |
| 3494 | ROM_REGION( 0xc00000/5*8, "gfx2", ROMREGION_ | |
| 3465 | 3495 | /* 32x32 Tile Data is put here for easier Decoding */ |
| 3466 | 3496 | |
| 3467 | 3497 | ROM_REGION( 0x2800000, "gfx3", 0 ) /* Sprite Colour Data */ |
| r4470 | r4471 | |
| 3508 | 3538 | ROM_REGION32_LE( 0x400000, "user1", 0 ) /* Protection Data (encrypted external ARM data, internal missing) */ |
| 3509 | 3539 | ROM_LOAD( "v100.u23", 0x000000, 0x20000, CRC(06c3dd29) SHA1(20c9479f158467fc2037dcf162b6c6be18c91d46) ) |
| 3510 | 3540 | |
| 3511 | ROM_REGION( 0xc00000, "gfx1", | |
| 3541 | ROM_REGION( 0xc00000, "gfx1", 0 | |
| 3512 | 3542 | ROM_LOAD( "pgm_t01s.rom", 0x000000, 0x200000, CRC(1a7123a0) SHA1(cc567f577bfbf45427b54d6695b11b74f2578af3) ) // (BIOS) |
| 3513 | 3543 | ROM_LOAD( "t1300.u21", 0x400000, 0x800000, CRC(e748f0cb) SHA1(5843bee3a17c33648ce904af2b98c6a90aff7393) ) |
| 3514 | 3544 | |
| 3515 | ROM_REGION( 0xc00000/5*8, "gfx2", ROMREGION_ | |
| 3545 | ROM_REGION( 0xc00000/5*8, "gfx2", ROMREGION_ | |
| 3516 | 3546 | /* 32x32 Tile Data is put here for easier Decoding */ |
| 3517 | 3547 | |
| 3518 | 3548 | ROM_REGION( 0x1000000, "gfx3", 0 ) /* Sprite Colour Data */ |
| r4470 | r4471 | |
| 3540 | 3570 | ROM_REGION32_LE( 0x400000, "user1", 0 ) /* Protection Data (encrypted external ARM data, internal missing) */ |
| 3541 | 3571 | ROM_LOAD( "v100.u23", 0x000000, 0x20000, CRC(06c3dd29) SHA1(20c9479f158467fc2037dcf162b6c6be18c91d46) ) |
| 3542 | 3572 | |
| 3543 | ROM_REGION( 0xc00000, "gfx1", | |
| 3573 | ROM_REGION( 0xc00000, "gfx1", 0 | |
| 3544 | 3574 | ROM_LOAD( "pgm_t01s.rom", 0x000000, 0x200000, CRC(1a7123a0) SHA1(cc567f577bfbf45427b54d6695b11b74f2578af3) ) // (BIOS) |
| 3545 | 3575 | ROM_LOAD( "t1300.u21", 0x400000, 0x800000, CRC(e748f0cb) SHA1(5843bee3a17c33648ce904af2b98c6a90aff7393) ) |
| 3546 | 3576 | |
| 3547 | ROM_REGION( 0xc00000/5*8, "gfx2", ROMREGION_ | |
| 3577 | ROM_REGION( 0xc00000/5*8, "gfx2", ROMREGION_ | |
| 3548 | 3578 | /* 32x32 Tile Data is put here for easier Decoding */ |
| 3549 | 3579 | |
| 3550 | 3580 | ROM_REGION( 0x1000000, "gfx3", 0 ) /* Sprite Colour Data */ |
| r4470 | r4471 | |
| 3627 | 3657 | ROM_REGION32_LE( 0x4000000, "user1", ROMREGION_ERASEFF ) |
| 3628 | 3658 | /* not on this PCB */ |
| 3629 | 3659 | |
| 3630 | ROM_REGION( 0x600000, "gfx1", | |
| 3660 | ROM_REGION( 0x600000, "gfx1", 0 | |
| 3631 | 3661 | ROM_LOAD( "pgm_t01s.rom", 0x000000, 0x200000, CRC(1a7123a0) SHA1(cc567f577bfbf45427b54d6695b11b74f2578af3) ) // (BIOS) |
| 3632 | 3662 | ROM_LOAD( "t0900.u9", 0x400000, 0x200000, CRC(70615611) SHA1(a46d4aa71396947b427f9ba4ba0e636876c09d6b) ) |
| 3633 | 3663 | |
| 3634 | ROM_REGION( 0x600000/5*8, "gfx2", ROMREGION_ | |
| 3664 | ROM_REGION( 0x600000/5*8, "gfx2", ROMREGION_ | |
| 3635 | 3665 | /* 32x32 Tile Data is put here for easier Decoding */ |
| 3636 | 3666 | |
| 3637 | 3667 | ROM_REGION( 0x400000, "gfx3", 0 ) /* Sprite Colour Data */ |
| r4470 | r4471 | |
| 3718 | 3748 | ROM_REGION32_LE( 0x400000, "user1", 0 ) /* Protection Data (encrypted external ARM data) */ |
| 3719 | 3749 | ROM_LOAD( "v102_16m.u10", 0x000000, 0x200000, CRC(18b745e6) SHA1(7bcb58dd3a2d6072f492cf0dd7181cb061c1f49d) ) |
| 3720 | 3750 | |
| 3721 | ROM_REGION( 0xc00000, "gfx1", | |
| 3751 | ROM_REGION( 0xc00000, "gfx1", 0 | |
| 3722 | 3752 | ROM_LOAD( "pgm_t01s.rom", 0x000000, 0x200000, CRC(1a7123a0) SHA1(cc567f577bfbf45427b54d6695b11b74f2578af3) ) // (BIOS) |
| 3723 | 3753 | ROM_LOAD( "t1000.u3", 0x400000, 0x800000, CRC(bbf879b5) SHA1(bd9a6aea34ad4001e89e62ff4b7a2292eb833c00) ) |
| 3724 | 3754 | |
| 3725 | ROM_REGION( 0xc00000/5*8, "gfx2", ROMREGION_ | |
| 3755 | ROM_REGION( 0xc00000/5*8, "gfx2", ROMREGION_ | |
| 3726 | 3756 | /* 32x32 Tile Data is put here for easier Decoding */ |
| 3727 | 3757 | |
| 3728 | 3758 | ROM_REGION( 0x2800000, "gfx3", 0 ) /* Sprite Colour Data */ |
| r4470 | r4471 | |
| 3755 | 3785 | ROM_REGION32_LE( 0x400000, "user1", 0 ) /* Protection Data (encrypted external ARM data) */ |
| 3756 | 3786 | ROM_LOAD( "v102_16m.u10", 0x000000, 0x200000, CRC(18b745e6) SHA1(7bcb58dd3a2d6072f492cf0dd7181cb061c1f49d) ) |
| 3757 | 3787 | |
| 3758 | ROM_REGION( 0xc00000, "gfx1", | |
| 3788 | ROM_REGION( 0xc00000, "gfx1", 0 | |
| 3759 | 3789 | ROM_LOAD( "pgm_t01s.rom", 0x000000, 0x200000, CRC(1a7123a0) SHA1(cc567f577bfbf45427b54d6695b11b74f2578af3) ) // (BIOS) |
| 3760 | 3790 | ROM_LOAD( "t1000.u3", 0x400000, 0x800000, CRC(bbf879b5) SHA1(bd9a6aea34ad4001e89e62ff4b7a2292eb833c00) ) |
| 3761 | 3791 | |
| 3762 | ROM_REGION( 0xc00000/5*8, "gfx2", ROMREGION_ | |
| 3792 | ROM_REGION( 0xc00000/5*8, "gfx2", ROMREGION_ | |
| 3763 | 3793 | /* 32x32 Tile Data is put here for easier Decoding */ |
| 3764 | 3794 | |
| 3765 | 3795 | ROM_REGION( 0x2800000, "gfx3", 0 ) /* Sprite Colour Data */ |
| r4470 | r4471 | |
| 3842 | 3872 | ROM_REGION( 0x800000, "user1", 0 ) /* Protection Data (encrypted external ARM data, internal missing) */ |
| 3843 | 3873 | ROM_LOAD( "v101_32m.u26", 0x000000, 0x400000, CRC(93965281) SHA1(89da198aaa7ca759cb96b5f18859a477e55fd590) ) |
| 3844 | 3874 | |
| 3845 | ROM_REGION( 0xc00000, "gfx1", | |
| 3875 | ROM_REGION( 0xc00000, "gfx1", 0 | |
| 3846 | 3876 | ROM_LOAD( "pgm_t01s.rom", 0x000000, 0x200000, CRC(1a7123a0) SHA1(cc567f577bfbf45427b54d6695b11b74f2578af3) ) // (BIOS) |
| 3847 | 3877 | ROM_LOAD( "t04501.u29", 0x400000, 0x800000, CRC(900eaaac) SHA1(4033cb7b28fcadb92d5af3ea7fdd1c22747618fd) ) |
| 3848 | 3878 | |
| 3849 | ROM_REGION( 0xc00000/5*8, "gfx2", ROMREGION_ | |
| 3879 | ROM_REGION( 0xc00000/5*8, "gfx2", ROMREGION_ | |
| 3850 | 3880 | /* 32x32 Tile Data is put here for easier Decoding */ |
| 3851 | 3881 | |
| 3852 | 3882 | ROM_REGION( 0x1800000, "gfx3", 0 ) /* Sprite Colour Data */ |
| r4470 | r4471 | |
| 3876 | 3906 | ROM_REGION( 0x800000, "user1", 0 ) /* Protection Data (encrypted external ARM data, internal missing) */ |
| 3877 | 3907 | ROM_LOAD( "v105_32m.u26", 0x000000, 0x400000, CRC(d200ee63) SHA1(3128c27c5f5a4361d31e7b4bb006de631b3a228c) ) |
| 3878 | 3908 | |
| 3879 | ROM_REGION( 0xc00000, "gfx1", | |
| 3909 | ROM_REGION( 0xc00000, "gfx1", 0 | |
| 3880 | 3910 | ROM_LOAD( "pgm_t01s.rom", 0x000000, 0x200000, CRC(1a7123a0) SHA1(cc567f577bfbf45427b54d6695b11b74f2578af3) ) // (BIOS) |
| 3881 | 3911 | ROM_LOAD( "t04501.u29", 0x400000, 0x800000, CRC(900eaaac) SHA1(4033cb7b28fcadb92d5af3ea7fdd1c22747618fd) ) |
| 3882 | 3912 | |
| 3883 | ROM_REGION( 0xc00000/5*8, "gfx2", ROMREGION_ | |
| 3913 | ROM_REGION( 0xc00000/5*8, "gfx2", ROMREGION_ | |
| 3884 | 3914 | /* 32x32 Tile Data is put here for easier Decoding */ |
| 3885 | 3915 | |
| 3886 | 3916 | ROM_REGION( 0x1800000, "gfx3", 0 ) /* Sprite Colour Data */ |
| r4470 | r4471 | |
| 3900 | 3930 | ROM_START( theglad ) |
| 3901 | 3931 | ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ |
| 3902 | 3932 | ROM_LOAD16_WORD_SWAP( "pgm_p01s.rom", 0x000000, 0x020000, CRC(e42b166e) SHA1(2a9df9ec746b14b74fae48b1a438da14973702ea) ) // (BIOS) |
| 3903 | // ROM_LOAD16_WORD_SWAP( "u6.rom", 0x100000, 0x080000, CRC(14c85212) SHA1(8d2489708e176a2c460498a13173be01f645b79e) ) | |
| 3904 | ROM_LOAD16_WORD_SWAP( "sjfy_v101.u6", 0x100000, 0x080000, CRC(f799e866) SHA1(dccc3c903357c40c3cf85ac0ae8fc12fb0f853a6) ) | |
| 3933 | ROM_LOAD16_WORD_SWAP( "u6.rom", 0x100000, 0x080000, CRC(14c85212) SHA1(8d2489708e176a2c460498a13173be01f645b79e) ) | |
| 3905 | 3934 | |
| 3906 | 3935 | /* CPU2 = Z80, romless, code uploaded by 68k */ |
| 3907 | 3936 | |
| 3908 | 3937 | ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */ |
| 3909 | ROM_LOAD( " | |
| 3938 | ROM_LOAD( "theglad_igs027a.bin", 0x000000, 0x04000, NO_DUMP ) | |
| 3910 | 3939 | |
| 3911 | 3940 | ROM_REGION( 0x800000, "user1", 0 ) /* Protection Data (encrypted external ARM data, internal missing) */ |
| 3912 | // ROM_LOAD( "u2.rom", 0x000000, 0x200000, CRC(c7bcf2ae) SHA1(10bc012c83987f594d5375a51bc4be2e17568a81) ) | |
| 3913 | ROM_LOAD( "sjfy_v107.u26", 0x000000, 0x200000, CRC(f7c61357) SHA1(52d31c464dfc83c5371b078cb6b73c0d0e0d57e3) ) | |
| 3941 | ROM_LOAD( "u2.rom", 0x000000, 0x200000, CRC(c7bcf2ae) SHA1(10bc012c83987f594d5375a51bc4be2e17568a81) ) | |
| 3914 | 3942 | |
| 3915 | ROM_REGION( 0xc00000, "gfx1", | |
| 3943 | ROM_REGION( 0xc00000, "gfx1", 0 | |
| 3916 | 3944 | ROM_LOAD( "pgm_t01s.rom", 0x000000, 0x200000, CRC(1a7123a0) SHA1(cc567f577bfbf45427b54d6695b11b74f2578af3) ) // (BIOS) |
| 3917 | 3945 | ROM_LOAD( "t04601.u33", 0x400000, 0x800000, CRC(e5dab371) SHA1(2e3c93958eb0326b6b84b95c2168626f26bbac76) ) |
| 3918 | 3946 | |
| 3919 | ROM_REGION( 0xc00000/5*8, "gfx2", ROMREGION_ | |
| 3947 | ROM_REGION( 0xc00000/5*8, "gfx2", ROMREGION_ | |
| 3920 | 3948 | /* 32x32 Tile Data is put here for easier Decoding */ |
| 3921 | 3949 | |
| 3922 | 3950 | ROM_REGION( 0x1800000, "gfx3", 0 ) /* Sprite Colour Data */ |
| r4470 | r4471 | |
| 3933 | 3961 | ROM_LOAD( "w04601.u1", 0x400000, 0x800000, CRC(5f15ddb3) SHA1(c38dcef8e06802a84e42a7fc9fa505475fc3ac65) ) |
| 3934 | 3962 | ROM_END |
| 3935 | 3963 | |
| 3936 | ROM_START( | |
| 3964 | ROM_START( theglada | |
| 3937 | 3965 | ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ |
| 3938 | 3966 | ROM_LOAD16_WORD_SWAP( "pgm_p01s.rom", 0x000000, 0x020000, CRC(e42b166e) SHA1(2a9df9ec746b14b74fae48b1a438da14973702ea) ) // (BIOS) |
| 3967 | ROM_LOAD16_WORD_SWAP( "v101.u6", 0x100000, 0x080000, CRC(f799e866) SHA1(dccc3c903357c40c3cf85ac0ae8fc12fb0f853a6) ) | |
| 3968 | ||
| 3969 | /* CPU2 = Z80, romless, code uploaded by 68k */ | |
| 3970 | ||
| 3971 | ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */ | |
| 3972 | ROM_LOAD( "theglad_igs027a.bin", 0x000000, 0x04000, NO_DUMP ) | |
| 3973 | ||
| 3974 | ROM_REGION( 0x800000, "user1", 0 ) /* Protection Data (encrypted external ARM data, internal missing) */ | |
| 3975 | ROM_LOAD( "v107.u26", 0x000000, 0x200000, CRC(f7c61357) SHA1(52d31c464dfc83c5371b078cb6b73c0d0e0d57e3) ) | |
| 3976 | ||
| 3977 | ROM_REGION( 0xc00000, "gfx1", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ | |
| 3978 | ROM_LOAD( "pgm_t01s.rom", 0x000000, 0x200000, CRC(1a7123a0) SHA1(cc567f577bfbf45427b54d6695b11b74f2578af3) ) // (BIOS) | |
| 3979 | ROM_LOAD( "t04601.u33", 0x400000, 0x800000, CRC(e5dab371) SHA1(2e3c93958eb0326b6b84b95c2168626f26bbac76) ) | |
| 3980 | ||
| 3981 | ROM_REGION( 0xc00000/5*8, "gfx2", ROMREGION_ERASEFF ) /* Region for 32x32 BG Tiles */ | |
| 3982 | /* 32x32 Tile Data is put here for easier Decoding */ | |
| 3983 | ||
| 3984 | ROM_REGION( 0x1800000, "gfx3", 0 ) /* Sprite Colour Data */ | |
| 3985 | ROM_LOAD( "a04601.u2", 0x0000000, 0x0800000, CRC(d9b2e004) SHA1(8e1882b800fe9f12d7d49303e7417ba5b6f8ef85) ) | |
| 3986 | ROM_LOAD( "a04602.u4", 0x0800000, 0x0800000, CRC(14f22308) SHA1(7fad54704e8c97eab723f53dfb50fb3e7bb606d2) ) | |
| 3987 | ROM_LOAD( "a04603.u6", 0x1000000, 0x0800000, CRC(8f621e17) SHA1(b0f87f378e0115d0c95017ca0f1b0d508827a7c6) ) | |
| 3988 | ||
| 3989 | ROM_REGION( 0x1000000, "gfx4", 0 ) /* Sprite Masks + Colour Indexes */ | |
| 3990 | ROM_LOAD( "b04601.u11", 0x0000000, 0x0800000, CRC(ee72bccf) SHA1(73c25fe659f6c903447066e4ef83d2f580449d76) ) | |
| 3991 | ROM_LOAD( "b04602.u12", 0x0800000, 0x0400000, CRC(7dba9c38) SHA1(a03d509274e8f6a500a7ebe2da5aab8bed4e7f2f) ) | |
| 3992 | ||
| 3993 | ROM_REGION( 0x1000000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */ | |
| 3994 | ROM_LOAD( "pgm_m01s.rom", 0x000000, 0x200000, CRC(45ae7159) SHA1(d3ed3ff3464557fd0df6b069b2e431528b0ebfa8) ) // (BIOS) | |
| 3995 | ROM_LOAD( "w04601.u1", 0x400000, 0x800000, CRC(5f15ddb3) SHA1(c38dcef8e06802a84e42a7fc9fa505475fc3ac65) ) | |
| 3996 | ROM_END | |
| 3997 | ||
| 3998 | ROM_START( oldsplus ) | |
| 3999 | ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ | |
| 4000 | ROM_LOAD16_WORD_SWAP( "pgm_p01s.rom", 0x000000, 0x020000, CRC(e42b166e) SHA1(2a9df9ec746b14b74fae48b1a438da14973702ea) ) // (BIOS) | |
| 3939 | 4001 | ROM_LOAD16_WORD_SWAP( "p05301.rom", 0x100000, 0x400000, CRC(923f7246) SHA1(818ade79e9724f5a2b0cc5a647ae5d4ee0374799) ) |
| 3940 | 4002 | |
| 3941 | 4003 | /* CPU2 = Z80, romless, code uploaded by 68k */ |
| 3942 | 4004 | |
| 3943 | 4005 | ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */ |
| 3944 | ROM_LOAD( "oldss_igs027a.bin", 0x000000, 0x04000, NO_DUMP ) | |
| 4006 | ROM_LOAD( "oldsplus_igs027a.bin", 0x000000, 0x04000, NO_DUMP ) | |
| 3945 | 4007 | |
| 3946 | ROM_REGION( 0xc00000, "gfx1", | |
| 4008 | ROM_REGION( 0xc00000, "gfx1", 0 | |
| 3947 | 4009 | ROM_LOAD( "pgm_t01s.rom", 0x000000, 0x200000, CRC(1a7123a0) SHA1(cc567f577bfbf45427b54d6695b11b74f2578af3) ) // (BIOS) |
| 3948 | 4010 | ROM_LOAD( "t05301.rom", 0x400000, 0x800000, CRC(8257bbb0) SHA1(b48067b7e7081a15fddf21739b641d677c2df3d9) ) |
| 3949 | 4011 | |
| 3950 | ROM_REGION( 0xc00000/5*8, "gfx2", ROMREGION_ | |
| 4012 | ROM_REGION( 0xc00000/5*8, "gfx2", ROMREGION_ | |
| 3951 | 4013 | /* 32x32 Tile Data is put here for easier Decoding */ |
| 3952 | 4014 | |
| 3953 | /* all roms below need checking to see if they're the same on this board */ | |
| 3954 | ROM_REGION( 0x2000000, "gfx3", ROMREGION_DISPOSE ) /* Sprite Colour Data */ | |
| 4015 | ROM_REGION( 0x2000000, "gfx3", 0 ) /* Sprite Colour Data */ | |
| 3955 | 4016 | ROM_LOAD( "a05301.rom", 0x0000000, 0x0800000, CRC(57946fd2) SHA1(5d79bc71a1881f3099821a9b255a5f271e0eeff6) ) // FIXED BITS (xxxxxxxx1xxxxxxx) |
| 3956 | 4017 | ROM_LOAD( "a05302.rom", 0x0800000, 0x0800000, CRC(3459a0b8) SHA1(94ab6f980b5582f1db9bb12019d03f0b6e0a06df) ) // FIXED BITS (xxxxxxxx1xxxxxxx) |
| 3957 | 4018 | ROM_LOAD( "a05303.rom", 0x1000000, 0x0800000, CRC(13475d85) SHA1(4683a3bf304fdc15ffb1c61b7957ad68b023fa33) ) // FIXED BITS (xxxxxxxx1xxxxxxx) |
| r4470 | r4471 | |
| 3966 | 4027 | ROM_LOAD( "m05301.rom", 0x400000, 0x400000, CRC(86ec83bc) SHA1(067cb7ec449eacd1f49298f45a364368934db5dd) ) |
| 3967 | 4028 | ROM_END |
| 3968 | 4029 | |
| 3969 | ROM_START( kovh ) | |
| 4030 | ROM_START( kovshp ) | |
| 3970 | 4031 | ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ |
| 3971 | 4032 | ROM_LOAD16_WORD_SWAP( "pgm_p01s.rom", 0x000000, 0x020000, CRC(e42b166e) SHA1(2a9df9ec746b14b74fae48b1a438da14973702ea) ) // (BIOS) |
| 3972 | 4033 | ROM_LOAD16_WORD_SWAP( "p0600h.rom", 0x100000, 0x400000, CRC(e251e8e4) SHA1(af5b7c81632a39e1450d932951bed634c76b84e8) ) |
| r4470 | r4471 | |
| 3974 | 4035 | /* CPU2 = Z80, romless, code uploaded by 68k */ |
| 3975 | 4036 | |
| 3976 | 4037 | ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */ |
| 3977 | ROM_LOAD( "kovh_igs027a.bin", 0x000000, 0x04000, NO_DUMP ) | |
| 4038 | ROM_LOAD( "kovshp_igs027a.bin", 0x000000, 0x04000, NO_DUMP ) | |
| 3978 | 4039 | |
| 3979 | ROM_REGION( 0xc00000, "gfx1", | |
| 4040 | ROM_REGION( 0xc00000, "gfx1", 0 | |
| 3980 | 4041 | ROM_LOAD( "pgm_t01s.rom", 0x000000, 0x200000, CRC(1a7123a0) SHA1(cc567f577bfbf45427b54d6695b11b74f2578af3) ) // (BIOS) |
| 3981 | 4042 | ROM_LOAD( "t0600.rom", 0x400000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) ) |
| 3982 | 4043 | |
| 3983 | ROM_REGION( 0xc00000/5*8, "gfx2", ROMREGION_ | |
| 4044 | ROM_REGION( 0xc00000/5*8, "gfx2", ROMREGION_ | |
| 3984 | 4045 | /* 32x32 Tile Data is put here for easier Decoding */ |
| 3985 | 4046 | |
| 3986 | /* all roms below need checking to see if they're the same on this board */ | |
| 3987 | ROM_REGION( 0x2000000, "gfx3", ROMREGION_DISPOSE ) /* Sprite Colour Data */ | |
| 4047 | ROM_REGION( 0x2000000, "gfx3", 0 ) /* Sprite Colour Data */ | |
| 3988 | 4048 | ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) ) // FIXED BITS (xxxxxxxx1xxxxxxx) |
| 3989 | 4049 | ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) // FIXED BITS (xxxxxxxx1xxxxxxx) |
| 3990 | 4050 | ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) ) // FIXED BITS (xxxxxxxx1xxxxxxx) |
| r4470 | r4471 | |
| 4002 | 4062 | ROM_START( killbldp ) |
| 4003 | 4063 | ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ |
| 4004 | 4064 | ROM_LOAD16_WORD_SWAP( "pgm_p01s.rom", 0x000000, 0x020000, CRC(e42b166e) SHA1(2a9df9ec746b14b74fae48b1a438da14973702ea) ) // (BIOS) |
| 4005 | ROM_LOAD16_WORD_SWAP( " | |
| 4065 | ROM_LOAD16_WORD_SWAP( " | |
| 4006 | 4066 | |
| 4007 | 4067 | /* CPU2 = Z80, romless, code uploaded by 68k */ |
| 4008 | 4068 | |
| 4009 | 4069 | ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */ |
| 4010 | ROM_LOAD( "kbex_027a.rom", 0x000000, 0x04000, NO_DUMP ) | |
| 4070 | /* the first ~0x200 bytes of this are 'execute only' and can't be read directly, even when running code from internal/external ARM romspace */ | |
| 4071 | ROM_LOAD( "killbldp_igs027a.bin", 0x000000, 0x04000, BAD_DUMP CRC(9a73bf7d) SHA1(2ce1311b01e1124ad00af172f0670141bcb7a030) ) | |
| 4011 | 4072 | |
| 4012 | 4073 | ROM_REGION( 0x800000, "user1", 0 ) /* Protection Data (encrypted external ARM data) */ |
| 4013 | ROM_LOAD( " | |
| 4074 | ROM_LOAD( " | |
| 4014 | 4075 | |
| 4015 | ROM_REGION( 0x | |
| 4076 | ROM_REGION( 0x800000, "gfx1", 0 | |
| 4016 | 4077 | ROM_LOAD( "pgm_t01s.rom", 0x000000, 0x200000, CRC(1a7123a0) SHA1(cc567f577bfbf45427b54d6695b11b74f2578af3) ) // (BIOS) |
| 4017 | ROM_LOAD( "t05701w032.bin",0x400000, 0x | |
| 4078 | ROM_LOAD( "t05701w032.bin",0x400000, 0x400000, CRC(567c714f) SHA1(b25b20e1ec9f077d6f7b9d41723a68d0d461bef2) ) | |
| 4018 | 4079 | |
| 4019 | ROM_REGION( 0xc00000/5*8, "gfx2", ROMREGION_ | |
| 4080 | ROM_REGION( 0xc00000/5*8, "gfx2", ROMREGION_ | |
| 4020 | 4081 | /* 32x32 Tile Data is put here for easier Decoding */ |
| 4021 | 4082 | |
| 4022 | ROM_REGION( 0x2000000, "gfx3", 0 ) /* Sprite Colour Data */ | |
| 4023 | ROM_LOAD( "a05701w064.bin", 0x0000000, 0x0800000, CRC(8c0c992c) ) | |
| 4024 | ROM_LOAD( "a05702w064.bin", 0x0800000, 0x0800000, CRC(7e5b0f27) ) | |
| 4025 | ROM_LOAD( "a05703w064.bin", 0x1000000, 0x0800000, CRC(accbdb44) ) | |
| 4083 | ROM_REGION( 0x1800000, "gfx3", 0 ) /* Sprite Colour Data */ | |
| 4084 | ROM_LOAD( "a05701w064.bin", 0x0000000, 0x0800000, CRC(8c0c992c) SHA1(28391e50ca4400060676f1524bd49ede373292da) ) | |
| 4085 | ROM_LOAD( "a05702w064.bin", 0x0800000, 0x0800000, CRC(7e5b0f27) SHA1(9e8d69f34c30216925fcb7af87f8b37f703317e7) ) | |
| 4086 | ROM_LOAD( "a05703w064.bin", 0x1000000, 0x0800000, CRC(accbdb44) SHA1(d59b2452c7a5b4e666473dc973b73a0f2b4edc13) ) | |
| 4026 | 4087 | |
| 4027 | 4088 | ROM_REGION( 0x1000000, "gfx4", 0 ) /* Sprite Masks + Colour Indexes */ |
| 4028 | ROM_LOAD( "b05701w064.bin", 0x0000000, 0x0800000, CRC(a20cdcef) ) | |
| 4029 | ROM_LOAD( "b05702w016.bin", 0x0800000, 0x0800000, CRC(3447be95) ) | |
| 4089 | ROM_LOAD( "b05701w064.bin", 0x0000000, 0x0800000, CRC(a20cdcef) SHA1(029a49971adf1e72ab556a207172bdfbd0b86b03) ) | |
| 4090 | ROM_LOAD( "b05702w016.bin", 0x0800000, 0x0200000, CRC(fe7457df) SHA1(d66b1b31102b0210f9faf40e1473cd1511ccaf1f) ) | |
| 4030 | 4091 | |
| 4031 | ROM_REGION( 0x | |
| 4092 | ROM_REGION( 0x8 | |
| 4032 | 4093 | ROM_LOAD( "pgm_m01s.rom", 0x000000, 0x200000, CRC(45ae7159) SHA1(d3ed3ff3464557fd0df6b069b2e431528b0ebfa8) ) // (BIOS) |
| 4033 | ROM_LOAD( "w05701b032.bin", 0x400000, 0x | |
| 4094 | ROM_LOAD( "w05701b032.bin", 0x400000, 0x400000, CRC(2d | |
| 4034 | 4095 | ROM_END |
| 4035 | 4096 | |
| 4036 | 4097 | ROM_START( svg ) |
| 4037 | 4098 | ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */ |
| 4038 | 4099 | ROM_LOAD16_WORD_SWAP( "pgm_p01s.rom", 0x000000, 0x020000, CRC(e42b166e) SHA1(2a9df9ec746b14b74fae48b1a438da14973702ea) ) // (BIOS) |
| 4039 | ROM_LOAD16_WORD_SWAP( " | |
| 4100 | ROM_LOAD16_WORD_SWAP( " | |
| 4040 | 4101 | |
| 4041 | 4102 | /* CPU2 = Z80, romless, code uploaded by 68k */ |
| 4042 | 4103 | |
| 4043 | 4104 | ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */ |
| 4044 | ROM_LOAD( "svg_027a. | |
| 4105 | ROM_LOAD( "svg_igs027a.bin", 0x000000, 0x04000, NO_DUMP ) | |
| 4045 | 4106 | |
| 4046 | 4107 | ROM_REGION( 0x800000, "user1", 0 ) /* Protection Data (encrypted external ARM data) */ |
| 4047 | ROM_LOAD( "svg.u26.bin", 0x000000, 0x400000, CRC(46826ec8) SHA1(ad1daf6f615fb8d748ce7f98f19dd3bf22f79fba) ) | |
| 4048 | ROM_LOAD( "svg.u29.bin", 0x400000, 0x400000, CRC(fa5f3901) SHA1(8ab7c6763df4f752b50ed2197063f58046b32ddb) ) | |
| 4108 | ROM_LOAD( "u26.bin", 0x000000, 0x400000, CRC(46826ec8) SHA1(ad1daf6f615fb8d748ce7f98f19dd3bf22f79fba) ) | |
| 4109 | ROM_LOAD( "u29.bin", 0x400000, 0x400000, CRC(fa5f3901) SHA1(8ab7c6763df4f752b50ed2197063f58046b32ddb) ) | |
| 4049 | 4110 | |
| 4050 | ROM_REGION( 0xc00000, "gfx1", | |
| 4111 | ROM_REGION( 0xc00000, "gfx1", 0 | |
| 4051 | 4112 | ROM_LOAD( "pgm_t01s.rom", 0x000000, 0x200000, CRC(1a7123a0) SHA1(cc567f577bfbf45427b54d6695b11b74f2578af3) ) // (BIOS) |
| 4052 | 4113 | ROM_LOAD( "t05601w016.bin",0x400000, 0x200000, CRC(03e110dc) SHA1(41c8f286e9303b24ba6235b341371c298226fb6a) ) |
| 4053 | 4114 | |
| 4054 | ROM_REGION( 0xc00000/5*8, "gfx2", ROMREGION_ | |
| 4115 | ROM_REGION( 0xc00000/5*8, "gfx2", ROMREGION_ | |
| 4055 | 4116 | /* 32x32 Tile Data is put here for easier Decoding */ |
| 4056 | 4117 | |
| 4057 | ROM_REGION( 0x1 | |
| 4118 | ROM_REGION( 0x1c00000, "gfx3", 0 ) /* Sprite Colour Data */ | |
| 4058 | 4119 | ROM_LOAD( "a05601w064.bin", 0x0000000, 0x0800000, CRC(ea6453e4) SHA1(b5c82edafa8008ad59b5f2219511947d078d446e) ) |
| 4059 | 4120 | ROM_LOAD( "a05602w064.bin", 0x0800000, 0x0800000, CRC(6d00621b) SHA1(55a4bc357e14b975b0234a9cd49e2224f509dad9) ) |
| 4060 | 4121 | ROM_LOAD( "a05603w064.bin", 0x1000000, 0x0800000, CRC(7b71c64f) SHA1(bec7c7edf0634cf8351a54abb867c56af08ad2c3) ) |
| r4470 | r4471 | |
| 4075 | 4136 | |
| 4076 | 4137 | GAME( 1997, pgm, 0, pgm, pgm, pgm, ROT0, "IGS", "PGM (Polygame Master) System BIOS", GAME_IS_BIOS_ROOT ) |
| 4077 | 4138 | |
| 4078 | GAME( 1997, orlegend, pgm, pgm, pgm, orlegend, ROT0, "IGS", "Oriental Legend / Xi You Ji Shi E Zhuan (ver. 126)", GAME_IMPERFECT_SOUND ) | |
| 4079 | GAME( 1997, orlegnde, orlegend, pgm, pgm, orlegend, ROT0, "IGS", "Oriental Legend / Xi You Ji Shi E Zhuan (ver. 112)", GAME_IMPERFECT_SOUND ) | |
| 4080 | GAME( 1997, orlegndc, orlegend, pgm, pgm, orlegend, ROT0, "IGS", "Oriental Legend / Xi You Ji Shi E Zhuan (ver. 112, Chinese Board)", GAME_IMPERFECT_SOUND ) | |
| 4081 | GAME( 1997, orld111c, orlegend, pgm, pgm, orlegend, ROT0, "IGS", "Oriental Legend / Xi You Ji Shi E Zhuan (ver. 111, Chinese Board)", GAME_IMPERFECT_SOUND ) | |
| 4082 | GAME( 1997, orld105k, orlegend, pgm, orld105k, orlegend, ROT0, "IGS", "Oriental Legend / Xi You Ji Shi E Zhuan (ver. 105, Korean Board)", GAME_IMPERFECT_SOUND ) | |
| 4139 | GAME( 1997, orlegend, pgm, pgm, pgm, orlegend, ROT0, "IGS", "Oriental Legend / Xi You Shi E Zhuan (ver. 126)", GAME_IMPERFECT_SOUND ) | |
| 4140 | GAME( 1997, orlegnde, orlegend, pgm, pgm, orlegend, ROT0, "IGS", "Oriental Legend / Xi You Shi E Zhuan (ver. 112)", GAME_IMPERFECT_SOUND ) | |
| 4141 | GAME( 1997, orlegndc, orlegend, pgm, pgm, orlegend, ROT0, "IGS", "Oriental Legend / Xi You Shi E Zhuan (ver. 112, Chinese Board)", GAME_IMPERFECT_SOUND ) | |
| 4142 | GAME( 1997, orld111c, orlegend, pgm, pgm, orlegend, ROT0, "IGS", "Oriental Legend / Xi You Shi E Zhuan (ver. 111, Chinese Board)", GAME_IMPERFECT_SOUND ) | |
| 4143 | GAME( 1997, orld105k, orlegend, pgm, orld105k, orlegend, ROT0, "IGS", "Oriental Legend / Xi You Shi E Zhuan (ver. 105, Korean Board)", GAME_IMPERFECT_SOUND ) | |
| 4083 | 4144 | GAME( 1997, drgw2c, drgw2, drgw2, pgm, drgw2c, ROT0, "IGS", "Zhong Guo Long II (ver. 100C, China)", GAME_IMPERFECT_SOUND ) |
| 4084 | GAME( 1999, photoy2k, pgm, kov, photoy2k, djlzz, ROT0, "IGS", "Photo Y2K", GAME_IMPERFECT_SOUND ) /* region provided by protection device */ | |
| 4145 | GAME( 1999, photoy2k, pgm, kov, photoy2k, djlzz, ROT0, "IGS", "Photo Y2K (ver. 104)", GAME_IMPERFECT_SOUND ) /* region provided by protection device */ | |
| 4085 | 4146 | GAME( 1999, raf102j, photoy2k, kov, photoy2k, djlzz, ROT0, "IGS", "Real and Fake / Photo Y2K (ver. 102, Japanese Board)", GAME_IMPERFECT_SOUND ) /* region provided by protection device */ |
| 4086 | GAME( 1999, kovsh, kov, kov, sango, kovsh, ROT0, "IGS", "Knights of Valour Superheroes / Sangoku Senki Superheroes (ver. 104)", GAME_IMPERFECT_SOUND ) | |
| 4087 | GAME( 2000, kov2, pgm, kov2, sango, kov2, ROT0, "IGS", "Knights of Valour 2 (ver. 100)", GAME_IMPERFECT_SOUND ) | |
| 4088 | GAME( 2000, kov2106, kov2, kov2, sango, kov2, ROT0, "IGS", "Knights of Valour 2 (ver. 106)", GAME_IMPERFECT_SOUND ) | |
| 4147 | GAME( 1999, kovsh, kov, kov, sango, kovsh, ROT0, "IGS", "Knights of Valour Super Heroes / Sangoku Senki Super Heroes (ver. 104)", GAME_IMPERFECT_SOUND ) | |
| 4148 | GAME( 2000, kov2, pgm, kov2, sango, kov2, ROT0, "IGS", "Knights of Valour 2 / Sangoku Senki 2 (ver. 100)", GAME_IMPERFECT_SOUND ) | |
| 4149 | GAME( 2000, kov2106, kov2, kov2, sango, kov2, ROT0, "IGS", "Knights of Valour 2 / Sangoku Senki 2 (ver. 106)", GAME_IMPERFECT_SOUND ) | |
| 4089 | 4150 | GAME( 2001, martmast, pgm, kov2, sango, martmast, ROT0, "IGS", "Martial Masters (ver. 102)", GAME_IMPERFECT_SOUND ) |
| 4090 | 4151 | GAME( 2001, martmasc, martmast, kov2, sango, martmast, ROT0, "IGS", "Martial Masters (ver. 101, Chinese Board)", GAME_IMPERFECT_SOUND ) |
| 4091 | 4152 | |
| 4092 | 4153 | /* Playable but maybe imperfect protection emulation */ |
| 4093 | 4154 | GAME( 1997, drgw2, pgm, drgw2, pgm, drgw2, ROT0, "IGS", "Dragon World II (ver. 110X, Export)", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING ) |
| 4094 | 4155 | GAME( 1997, drgw2j, drgw2, drgw2, pgm, drgw2j, ROT0, "IGS", "Chuugokuryuu II (ver. 100J, Japan)", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING ) |
| 4095 | GAME( 1998, killbldt, killbld, killbld, killbld, killbld, ROT0, "IGS", "The Killing Blade (Chinese Board)", GAME_IMPERFECT_SOUND ) // it's playable, but there are some things unclear about the protection | |
| 4096 | GAME( 1998, olds, pgm, olds, olds, olds, ROT0, "IGS", "Oriental Legend Special / Xi You Ji Shi E Zhuan Super (ver. 101, Korean Board)", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING ) | |
| 4097 | GAME( 1998, olds100, olds, olds, olds, olds, ROT0, "IGS", "Oriental Legend Special / Xi You Ji Shi E Zhuan Super (ver. 100)", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING ) | |
| 4098 | GAME( 1998, olds100a, olds, olds, olds, olds, ROT0, "IGS", "Oriental Legend Special / Xi You Ji Shi E Zhuan Super (alt ver. 100)", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING ) // grashes on some bosses, high score table etc. | |
| 4156 | GAME( 1998, killbldt, killbld, killbld, killbld, killbld, ROT0, "IGS", "The Killing Blade (ver. 109, Chinese Board)", GAME_IMPERFECT_SOUND ) // it's playable, but there are some things unclear about the protection | |
| 4157 | GAME( 1998, olds, pgm, olds, olds, olds, ROT0, "IGS", "Oriental Legend Special / Xi You Shi E Zhuan Super (ver. 101, Korean Board)", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING ) | |
| 4158 | GAME( 1998, olds100, olds, olds, olds, olds, ROT0, "IGS", "Oriental Legend Special / Xi You Shi E Zhuan Super (ver. 100)", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING ) | |
| 4159 | GAME( 1998, olds100a, olds, olds, olds, olds, ROT0, "IGS", "Oriental Legend Special / Xi You Shi E Zhuan Super (alt ver. 100)", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING ) // grashes on some bosses, high score table etc. | |
| 4099 | 4160 | |
| 4100 | 4161 | /* not working */ |
| 4101 | GAME( 1998, drgw3, pgm, pgm, sango, dw3, ROT0, "IGS", "Dragon World 3", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING ) | |
| 4102 | GAME( 1998, drgw3k, drgw3, pgm, sango, dw3, ROT0, "IGS", "Dragon World 3 (Korean Board)", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING ) | |
| 4103 | GAME( 1998, killbld, pgm, killbld, killbld, killbld, ROT0, "IGS", "The Killing Blade", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING ) | |
| 4162 | GAME( 1998, drgw3, pgm, pgm, sango, dw3, ROT0, "IGS", "Dragon World 3 (ver. 100)", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING ) | |
| 4163 | GAME( 1998, drgw3k, drgw3, pgm, sango, dw3, ROT0, "IGS", "Dragon World 3 (ver. 106, Korean Board)", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING ) | |
| 4164 | GAME( 1998, killbld, pgm, killbld, killbld, killbld, ROT0, "IGS", "The Killing Blade (ver. 104)", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING ) | |
| 4104 | 4165 | GAME( 1999, kov, pgm, kov, sango, kov, ROT0, "IGS", "Knights of Valour / Sangoku Senki (ver. 117)", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING ) /* need internal rom of IGS027A */ |
| 4105 | 4166 | GAME( 1999, kov115, kov, kov, sango, kov, ROT0, "IGS", "Knights of Valour / Sangoku Senki (ver. 115)", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING ) /* need internal rom of IGS027A */ |
| 4106 | 4167 | GAME( 1999, kovj, kov, kov, sango, kov, ROT0, "IGS", "Knights of Valour / Sangoku Senki (ver. 100, Japanese Board)", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING ) /* need internal rom of IGS027A */ |
| 4107 | 4168 | GAME( 1999, kovplus, kov, kov, sango, kov, ROT0, "IGS", "Knights of Valour Plus / Sangoku Senki Plus (ver. 119)", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING ) /* need internal rom of IGS027A */ |
| 4108 | 4169 | GAME( 1999, kovplusa, kov, kov, sango, kov, ROT0, "IGS", "Knights of Valour Plus / Sangoku Senki Plus (alt ver. 119)", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING ) /* need internal rom of IGS027A */ |
| 4109 | GAME( 1999, puzlstar, pgm, kov, sango, pstar, ROT0, "IGS", "Puzzle Star", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING ) /* need internal rom of IGS027A */ | |
| 4110 | GAME( 2001, kov2p, kov2, kov2, sango, kov2p, ROT0, "IGS", "Knights of Valour 2 Plus - Nine Dragons (ver. M204XX)", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING ) /* need internal rom of IGS027A */ | |
| 4111 | GAME( 2001, kov2p205, kov2, kov2, sango, kov2p, ROT0, "IGS", "Knights of Valour 2 Plus - Nine Dragons (ver. M205XX)", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING ) /* need internal rom of IGS027A */ | |
| 4112 | GAME( 2001, ddp2, pgm, kov2, ddp2, ddp2, ROT270, "IGS", "Bee Storm - DoDonPachi II (set 1)", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING ) /* need internal rom of IGS027A */ | |
| 4113 | GAME( 2001, ddp2a, pgm, kov2, ddp2, ddp2, ROT270, "IGS", "Bee Storm - DoDonPachi II (set 2)", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING ) /* need internal rom of IGS027A */ | |
| 4114 | GAME( 2001, puzzli2, pgm, svg, sango, puzzli2, ROT0, "IGS", "Puzzli 2 Super", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING ) | |
| 4115 | GAME( 2001, theglad, pgm, svg, sango, theglad, ROT0, "IGS", "The Gladiator", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING ) | |
| 4116 | GAME( 2002, dmnfrnt, pgm, svg, sango, dmnfrnt, ROT0, "IGS", "Demon Front (ver. 102)", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING ) | |
| 4117 | GAME( 2002, dmnfrnta, dmnfrnt, svg, sango, dmnfrnt, ROT0, "IGS", "Demon Front (ver. 105)", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING ) | |
| 4118 | GAME( 2004, kovh, kov, kov, sango, kovh, ROT0, "IGS", "Knights of Valour Hero (ver. 101)", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING ) /* need internal rom of IGS027A */ | |
| 4119 | GAME( 2004, oldss, pgm, kov, sango, oldss, ROT0, "IGS", "Oriental Legend Super Super", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING ) /* need internal rom of IGS027A */ | |
| 4120 | GAME( 2005, killbldp, pgm, svg, sango, killbldp, ROT0, "IGS", "The Killing Blade Ex / Plus", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING ) | |
| 4121 | GAME( 2005, svg, pgm, svg, sango, svg, ROT0, "IGS", "Spectral VS Generation", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING ) | |
| 4170 | GAME( 1999, puzlstar, pgm, kov, sango, pstar, ROT0, "IGS", "Puzzle Star (ver. 100MG)", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING ) /* need internal rom of IGS027A */ | |
| 4171 | GAME( 2001, kov2p, kov2, kov2, sango, kov2p, ROT0, "IGS", "Knights of Valour 2 Plus - Nine Dragons / Sangoku Senki 2 Plus - Nine Dragons (ver. M204XX)", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING ) /* need internal rom of IGS027A */ | |
| 4172 | GAME( 2001, kov2p205, kov2, kov2, sango, kov2p, ROT0, "IGS", "Knights of Valour 2 Plus - Nine Dragons / Sangoku Senki 2 Plus - Nine Dragons (ver. M205XX)", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING ) /* need internal rom of IGS027A */ | |
| 4173 | GAME( 2001, ddp2, pgm, kov2, ddp2, ddp2, ROT270, "IGS", "Bee Storm - DoDonPachi II (ver. 100)", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING ) /* need internal rom of IGS027A */ | |
| 4174 | GAME( 2001, ddp2a, ddp2, kov2, ddp2, ddp2, ROT270, "IGS", "Bee Storm - DoDonPachi II (ver. 102)", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING ) /* need internal rom of IGS027A */ | |
| 4175 | GAME( 2001, puzzli2, pgm, kov, sango, puzzli2, ROT0, "IGS", "Puzzli 2 Super (ver. 200)", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING ) | |
| 4176 | GAME( 2002, dmnfrnt, pgm, svg, sango, dmnfrnt, ROT0, "IGS", "Demon Front (ver. 102)", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING ) /* need internal rom of IGS027A */ | |
| 4177 | GAME( 2002, dmnfrnta, dmnfrnt, svg, sango, dmnfrnt, ROT0, "IGS", "Demon Front (ver. 105)", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING ) /* need internal rom of IGS027A */ | |
| 4178 | GAME( 2003, theglad, pgm, svg, sango, theglad, ROT0, "IGS", "The Gladiator (ver. 100)", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING ) /* need internal rom of IGS027A */ | |
| 4179 | GAME( 2003, theglada, theglad, svg, sango, theglad, ROT0, "IGS", "The Gladiator (ver. 101)", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING ) /* need internal rom of IGS027A */ | |
| 4180 | GAME( 2004, oldsplus, pgm, kov, olds, oldsplus, ROT0, "IGS", "Oriental Legend Special Plus / Xi You Shi E Zhuan Super Plus", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING ) /* need internal rom of IGS027A */ | |
| 4181 | GAME( 2004, kovshp, kov, kov, sango, kovshp, ROT0, "IGS", "Knights of Valour Super Heroes Plus / Sangoku Senki Super Heroes Plus (ver. 100)", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING ) /* need internal rom of IGS027A */ | |
| 4182 | GAME( 2005, killbldp, pgm, svg, sango, killbldp, ROT0, "IGS", "The Killing Blade Plus (ver. 300)", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING ) /* need internal rom of IGS027A */ | |
| 4183 | GAME( 2005, svg, pgm, svg, sango, svg, ROT0, "IGS", "S.V.G. - Spectral vs Generation (ver. 200)", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING ) /* need internal rom of IGS027A */ |
| r4470 | r4471 | |
|---|---|---|
| 491 | 491 | AM_RANGE(0x8000, 0x8fff) AM_READ(SMH_RAM) |
| 492 | 492 | AM_RANGE(0x9000, 0x9001) AM_DEVREAD("ym1", ym2203_r) |
| 493 | 493 | AM_RANGE(0xa000, 0xa001) AM_DEVREAD("ym2", ym2203_r) |
| 494 | AM_RANGE(0xb000, 0xb000) AM_READ | |
| 494 | AM_RANGE(0xb000, 0xb000) AM_READ | |
| 495 | 495 | AM_RANGE(0xb001, 0xb001) AM_READ(taitosound_slave_comm_r) |
| 496 | 496 | ADDRESS_MAP_END |
| 497 | 497 | |
| r4470 | r4471 | |
| 518 | 518 | ADDRESS_MAP_END |
| 519 | 519 | |
| 520 | 520 | static ADDRESS_MAP_START( darius_sound2_writemem, ADDRESS_SPACE_PROGRAM, 8 ) |
| 521 | AM_RANGE(0x0000, 0xffff) AM_WRITE | |
| 521 | AM_RANGE(0x0000, 0xffff) AM_WRITE | |
| 522 | 522 | /* yes, no RAM */ |
| 523 | 523 | ADDRESS_MAP_END |
| 524 | 524 |
| r4470 | r4471 | |
|---|---|---|
| 342 | 342 | AM_RANGE(0x41000700, 0x41000703) AM_WRITE(watchdog_reset32_w) |
| 343 | 343 | AM_RANGE(0x42000000, 0x4201ffff) AM_RAM_WRITE(beathead_palette_w) AM_BASE(&paletteram32) |
| 344 | 344 | AM_RANGE(0x43000000, 0x43000007) AM_READWRITE(beathead_hsync_ram_r, beathead_hsync_ram_w) |
| 345 | AM_RANGE(0x8df80000, 0x8df80003) AM_READ | |
| 345 | AM_RANGE(0x8df80000, 0x8df80003) AM_READ | |
| 346 | 346 | AM_RANGE(0x8f380000, 0x8f3fffff) AM_WRITE(beathead_vram_latch_w) |
| 347 | 347 | AM_RANGE(0x8f900000, 0x8f97ffff) AM_WRITE(beathead_vram_transparent_w) |
| 348 | 348 | AM_RANGE(0x8f980000, 0x8f9fffff) AM_RAM AM_BASE(&videoram32) |
| r4470 | r4471 | |
|---|---|---|
| 39 | 39 | ***************************************************************************/ |
| 40 | 40 | |
| 41 | 41 | #include "driver.h" |
| 42 | #include "trackfld.h" | |
| 42 | 43 | #include "cpu/z80/z80.h" |
| 43 | 44 | #include "cpu/m6809/m6809.h" |
| 44 | 45 | #include "sound/dac.h" |
| 45 | 46 | #include "sound/sn76496.h" |
| 46 | 47 | #include "sound/vlm5030.h" |
| 47 | 48 | #include "machine/konami1.h" |
| 49 | #include "konamipt.h" | |
| 48 | 50 | |
| 49 | ||
| 50 | 51 | extern UINT8 *sbasketb_scroll; |
| 51 | 52 | extern UINT8 *sbasketb_palettebank; |
| 52 | 53 | extern UINT8 *sbasketb_spriteram_select; |
| r4470 | r4471 | |
| 60 | 61 | VIDEO_START( sbasketb ); |
| 61 | 62 | VIDEO_UPDATE( sbasketb ); |
| 62 | 63 | |
| 63 | WRITE8_HANDLER( konami_SN76496_latch_w ); | |
| 64 | WRITE8_DEVICE_HANDLER( konami_SN76496_w ); | |
| 65 | WRITE8_DEVICE_HANDLER( hyperspt_sound_w ); | |
| 66 | READ8_HANDLER( hyperspt_sh_timer_r ); | |
| 67 | 64 | |
| 68 | ||
| 69 | 65 | static WRITE8_HANDLER( sbasketb_sh_irqtrigger_w ) |
| 70 | 66 | { |
| 71 | 67 | cpu_set_input_line_and_vector(space->machine->cpu[1],0,HOLD_LINE,0xff); |
| r4470 | r4471 | |
| 79 | 75 | |
| 80 | 76 | static ADDRESS_MAP_START( readmem, ADDRESS_SPACE_PROGRAM, 8 ) |
| 81 | 77 | AM_RANGE(0x2000, 0x3bff) AM_READ(SMH_RAM) |
| 82 | AM_RANGE(0x3c10, 0x3c10) AM_READ | |
| 78 | AM_RANGE(0x3c10, 0x3c10) AM_READ | |
| 83 | 79 | AM_RANGE(0x3e00, 0x3e00) AM_READ_PORT("SYSTEM") |
| 84 | 80 | AM_RANGE(0x3e01, 0x3e01) AM_READ_PORT("P1") |
| 85 | 81 | AM_RANGE(0x3e02, 0x3e02) AM_READ_PORT("P2") |
| 86 | AM_RANGE(0x3e03, 0x3e03) AM_READ | |
| 82 | AM_RANGE(0x3e03, 0x3e03) AM_READ | |
| 87 | 83 | AM_RANGE(0x3e80, 0x3e80) AM_READ_PORT("DSW2") |
| 88 | 84 | AM_RANGE(0x3f00, 0x3f00) AM_READ_PORT("DSW1") |
| 89 | 85 | AM_RANGE(0x6000, 0xffff) AM_READ(SMH_ROM) |
| r4470 | r4471 | |
| 126 | 122 | |
| 127 | 123 | static INPUT_PORTS_START( sbasketb ) |
| 128 | 124 | PORT_START("SYSTEM") |
| 129 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) | |
| 130 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) | |
| 131 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 ) | |
| 132 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) | |
| 133 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 ) | |
| 134 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 135 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 136 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 125 | KONAMI8_SYSTEM_UNK | |
| 137 | 126 | |
| 138 | 127 | PORT_START("P1") |
| 139 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY | |
| 140 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY | |
| 141 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY | |
| 142 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY | |
| 143 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) | |
| 144 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) | |
| 145 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) | |
| 146 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 128 | KONAMI8_MONO_B123_UNK | |
| 147 | 129 | |
| 148 | 130 | PORT_START("P2") |
| 149 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL | |
| 150 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL | |
| 151 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL | |
| 152 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL | |
| 153 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL | |
| 154 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL | |
| 155 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_COCKTAIL | |
| 156 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 131 | KONAMI8_COCKTAIL_B123_UNK | |
| 157 | 132 | |
| 133 | PORT_START("DSW1") | |
| 134 | KONAMI_COINAGE_LOC(DEF_STR( Free_Play ), DEF_STR( Free_Play ), SW1) | |
| 135 | ||
| 158 | 136 | PORT_START("DSW2") |
| 159 | 137 | PORT_DIPNAME( 0x03, 0x00, DEF_STR( Game_Time ) ) PORT_DIPLOCATION( "SW2:1,2" ) |
| 160 | 138 | PORT_DIPSETTING( 0x03, "30" ) |
| r4470 | r4471 | |
| 178 | 156 | PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION( "SW2:8" ) |
| 179 | 157 | PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) |
| 180 | 158 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 181 | ||
| 182 | PORT_START("DSW1") | |
| 183 | PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) ) PORT_DIPLOCATION( "SW1:1,2,3,4" ) | |
| 184 | PORT_DIPSETTING( 0x02, DEF_STR( 4C_1C ) ) | |
| 185 | PORT_DIPSETTING( 0x05, DEF_STR( 3C_1C ) ) | |
| 186 | PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) ) | |
| 187 | PORT_DIPSETTING( 0x04, DEF_STR( 3C_2C ) ) | |
| 188 | PORT_DIPSETTING( 0x01, DEF_STR( 4C_3C ) ) | |
| 189 | PORT_DIPSETTING( 0x0f, DEF_STR( 1C_1C ) ) | |
| 190 | PORT_DIPSETTING( 0x03, DEF_STR( 3C_4C ) ) | |
| 191 | PORT_DIPSETTING( 0x07, DEF_STR( 2C_3C ) ) | |
| 192 | PORT_DIPSETTING( 0x0e, DEF_STR( 1C_2C ) ) | |
| 193 | PORT_DIPSETTING( 0x06, DEF_STR( 2C_5C ) ) | |
| 194 | PORT_DIPSETTING( 0x0d, DEF_STR( 1C_3C ) ) | |
| 195 | PORT_DIPSETTING( 0x0c, DEF_STR( 1C_4C ) ) | |
| 196 | PORT_DIPSETTING( 0x0b, DEF_STR( 1C_5C ) ) | |
| 197 | PORT_DIPSETTING( 0x0a, DEF_STR( 1C_6C ) ) | |
| 198 | PORT_DIPSETTING( 0x09, DEF_STR( 1C_7C ) ) | |
| 199 | PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) | |
| 200 | PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) ) PORT_DIPLOCATION( "SW1:5,6,7,8" ) | |
| 201 | PORT_DIPSETTING( 0x20, DEF_STR( 4C_1C ) ) | |
| 202 | PORT_DIPSETTING( 0x50, DEF_STR( 3C_1C ) ) | |
| 203 | PORT_DIPSETTING( 0x80, DEF_STR( 2C_1C ) ) | |
| 204 | PORT_DIPSETTING( 0x40, DEF_STR( 3C_2C ) ) | |
| 205 | PORT_DIPSETTING( 0x10, DEF_STR( 4C_3C ) ) | |
| 206 | PORT_DIPSETTING( 0xf0, DEF_STR( 1C_1C ) ) | |
| 207 | PORT_DIPSETTING( 0x30, DEF_STR( 3C_4C ) ) | |
| 208 | PORT_DIPSETTING( 0x70, DEF_STR( 2C_3C ) ) | |
| 209 | PORT_DIPSETTING( 0xe0, DEF_STR( 1C_2C ) ) | |
| 210 | PORT_DIPSETTING( 0x60, DEF_STR( 2C_5C ) ) | |
| 211 | PORT_DIPSETTING( 0xd0, DEF_STR( 1C_3C ) ) | |
| 212 | PORT_DIPSETTING( 0xc0, DEF_STR( 1C_4C ) ) | |
| 213 | PORT_DIPSETTING( 0xb0, DEF_STR( 1C_5C ) ) | |
| 214 | PORT_DIPSETTING( 0xa0, DEF_STR( 1C_6C ) ) | |
| 215 | PORT_DIPSETTING( 0x90, DEF_STR( 1C_7C ) ) | |
| 216 | PORT_DIPSETTING( 0x00, "Invalid" ) | |
| 217 | 159 | INPUT_PORTS_END |
| 218 | 160 | |
| 219 | 161 |
| r4470 | r4471 | |
|---|---|---|
| 120 | 120 | AM_RANGE(0x140000, 0x143fff) AM_WRITE(SMH_RAM) |
| 121 | 121 | AM_RANGE(0x160000, 0x1607ff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) |
| 122 | 122 | AM_RANGE(0x180000, 0x1807ff) AM_WRITE(deco16_146_funkyjet_prot_w) AM_BASE(&deco16_prot_ram) |
| 123 | AM_RANGE(0x184000, 0x184001) AM_WRITE(SMH_NOP) | |
| 124 | AM_RANGE(0x188000, 0x188001) AM_WRITE(SMH_NOP) | |
| 123 | AM_RANGE(0x184000, 0x184001) AM_WRITENOP | |
| 124 | AM_RANGE(0x188000, 0x188001) AM_WRITENOP | |
| 125 | 125 | AM_RANGE(0x300000, 0x30000f) AM_WRITE(SMH_RAM) AM_BASE(&deco16_pf12_control) |
| 126 | 126 | AM_RANGE(0x320000, 0x321fff) AM_WRITE(deco16_pf1_data_w) AM_BASE(&deco16_pf1_data) |
| 127 | 127 | AM_RANGE(0x322000, 0x323fff) AM_WRITE(deco16_pf2_data_w) AM_BASE(&deco16_pf2_data) |
| r4470 | r4471 | |
| 134 | 134 | /* Physical memory map (21 bits) */ |
| 135 | 135 | static ADDRESS_MAP_START( sound_readmem, ADDRESS_SPACE_PROGRAM, 8 ) |
| 136 | 136 | AM_RANGE(0x000000, 0x00ffff) AM_READ(SMH_ROM) |
| 137 | AM_RANGE(0x100000, 0x100001) AM_READ | |
| 137 | AM_RANGE(0x100000, 0x100001) AM_READ | |
| 138 | 138 | AM_RANGE(0x110000, 0x110001) AM_DEVREAD("ym", ym2151_r) |
| 139 | 139 | AM_RANGE(0x120000, 0x120001) AM_DEVREAD("oki", okim6295_r) |
| 140 | AM_RANGE(0x130000, 0x130001) AM_READ | |
| 140 | AM_RANGE(0x130000, 0x130001) AM_READ | |
| 141 | 141 | AM_RANGE(0x140000, 0x140001) AM_READ(soundlatch_r) |
| 142 | 142 | AM_RANGE(0x1f0000, 0x1f1fff) AM_READ(SMH_BANK8) |
| 143 | 143 | ADDRESS_MAP_END |
| 144 | 144 | |
| 145 | 145 | static ADDRESS_MAP_START( sound_writemem, ADDRESS_SPACE_PROGRAM, 8 ) |
| 146 | 146 | AM_RANGE(0x000000, 0x00ffff) AM_WRITE(SMH_ROM) |
| 147 | AM_RANGE(0x100000, 0x100001) AM_WRITE | |
| 147 | AM_RANGE(0x100000, 0x100001) AM_WRITE | |
| 148 | 148 | AM_RANGE(0x110000, 0x110001) AM_DEVWRITE("ym", ym2151_w) |
| 149 | 149 | AM_RANGE(0x120000, 0x120001) AM_DEVWRITE("oki", okim6295_w) |
| 150 | AM_RANGE(0x130000, 0x130001) AM_WRITE | |
| 150 | AM_RANGE(0x130000, 0x130001) AM_WRITE | |
| 151 | 151 | AM_RANGE(0x1f0000, 0x1f1fff) AM_WRITE(SMH_BANK8) |
| 152 | 152 | AM_RANGE(0x1fec00, 0x1fec01) AM_WRITE(h6280_timer_w) |
| 153 | 153 | AM_RANGE(0x1ff400, 0x1ff403) AM_WRITE(h6280_irq_status_w) |
| r4470 | r4471 | |
|---|---|---|
| 174 | 174 | AM_RANGE(0x9800, 0x983F) AM_WRITE(SMH_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size) /* Sprites */ |
| 175 | 175 | AM_RANGE(0x9840, 0x985F) AM_WRITE(skyarmy_scrollram_w) AM_BASE(&skyarmy_scrollram) /* Sprites */ |
| 176 | 176 | AM_RANGE(0xa004, 0xa004) AM_WRITE(nmi_enable_w) // ??? |
| 177 | AM_RANGE(0xa005, 0xa005) AM_WRITE(SMH_NOP) | |
| 178 | AM_RANGE(0xa006, 0xa006) AM_WRITE(SMH_NOP) | |
| 179 | AM_RANGE(0xa007, 0xa007) AM_WRITE(SMH_NOP) | |
| 177 | AM_RANGE(0xa005, 0xa005) AM_WRITENOP | |
| 178 | AM_RANGE(0xa006, 0xa006) AM_WRITENOP | |
| 179 | AM_RANGE(0xa007, 0xa007) AM_WRITENOP | |
| 180 | 180 | ADDRESS_MAP_END |
| 181 | 181 | |
| 182 | 182 | static INPUT_PORTS_START( skyarmy ) |
| r4470 | r4471 | |
|---|---|---|
| 113 | 113 | AM_RANGE(0xa800, 0xa800) AM_READ_PORT("P1") |
| 114 | 114 | AM_RANGE(0xa801, 0xa801) AM_READ_PORT("P2") |
| 115 | 115 | AM_RANGE(0xa802, 0xa802) AM_READ_PORT("DSW") |
| 116 | AM_RANGE(0xa803, 0xa803) AM_READ | |
| 116 | AM_RANGE(0xa803, 0xa803) AM_READ | |
| 117 | 117 | AM_RANGE(0xa804, 0xa804) AM_WRITE(ksayakyu_videoctrl_w) |
| 118 | 118 | AM_RANGE(0xa805, 0xa805) AM_WRITE(latch_w) |
| 119 | 119 | AM_RANGE(0xa806, 0xa806) AM_READ(sound_status_r) |
| 120 | AM_RANGE(0xa807, 0xa807) AM_READ | |
| 120 | AM_RANGE(0xa807, 0xa807) AM_READ | |
| 121 | 121 | AM_RANGE(0xa808, 0xa808) AM_WRITE(bank_select_w) |
| 122 | 122 | AM_RANGE(0xb000, 0xb7ff) AM_RAM_WRITE(ksayakyu_videoram_w) AM_BASE(&videoram) |
| 123 | 123 | AM_RANGE(0xb800, 0xbfff) AM_RAM_WRITE(SMH_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size) |
| r4470 | r4471 | |
| 129 | 129 | AM_RANGE(0xa001, 0xa001) AM_DEVREAD("ay1", ay8910_r) |
| 130 | 130 | AM_RANGE(0xa002, 0xa003) AM_DEVWRITE("ay1", ay8910_data_address_w) |
| 131 | 131 | AM_RANGE(0xa006, 0xa006) AM_DEVWRITE("ay2", ay8910_data_address_w) |
| 132 | AM_RANGE(0xa008, 0xa008) AM_WRITE | |
| 132 | AM_RANGE(0xa008, 0xa008) AM_WRITE | |
| 133 | 133 | AM_RANGE(0xa00c, 0xa00c) AM_WRITE(tomaincpu_w) |
| 134 | AM_RANGE(0xa010, 0xa010) AM_WRITE | |
| 134 | AM_RANGE(0xa010, 0xa010) AM_WRITE | |
| 135 | 135 | ADDRESS_MAP_END |
| 136 | 136 | |
| 137 | 137 | static INPUT_PORTS_START( ksayakyu ) |
| r4470 | r4471 | |
|---|---|---|
| 240 | 240 | static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 ) |
| 241 | 241 | AM_RANGE(0x8000, 0x83ff) AM_RAM AM_SHARE(1) |
| 242 | 242 | AM_RANGE(0x8400, 0x87ff) AM_RAM |
| 243 | AM_RANGE(0x8800, 0x8bff) AM_READ | |
| 243 | AM_RANGE(0x8800, 0x8bff) AM_READ | |
| 244 | 244 | AM_RANGE(0x8c00, 0x8c00) AM_MIRROR(0x3fe) AM_READWRITE(qix_video_firq_r, qix_video_firq_w) |
| 245 | 245 | AM_RANGE(0x8c01, 0x8c01) AM_MIRROR(0x3fe) AM_READWRITE(qix_data_firq_ack_r, qix_data_firq_ack_w) |
| 246 | 246 | AM_RANGE(0x9000, 0x93ff) AM_DEVREADWRITE("sndpia0", pia6821_r, pia6821_w) |
| r4470 | r4471 | |
| 254 | 254 | static ADDRESS_MAP_START( zoo_main_map, ADDRESS_SPACE_PROGRAM, 8 ) |
| 255 | 255 | AM_RANGE(0x0000, 0x03ff) AM_RAM AM_SHARE(1) |
| 256 | 256 | AM_RANGE(0x0400, 0x07ff) AM_RAM |
| 257 | AM_RANGE(0x0800, 0x0bff) AM_READ | |
| 257 | AM_RANGE(0x0800, 0x0bff) AM_READ | |
| 258 | 258 | AM_RANGE(0x0c00, 0x0c00) AM_MIRROR(0x3fe) AM_READWRITE(qix_video_firq_r, qix_video_firq_w) |
| 259 | 259 | AM_RANGE(0x0c01, 0x0c01) AM_MIRROR(0x3fe) AM_READWRITE(qix_data_firq_ack_r, qix_data_firq_ack_w) |
| 260 | 260 | AM_RANGE(0x1000, 0x13ff) AM_DEVREADWRITE("sndpia0", pia6821_r, pia6821_w) |
| r4470 | r4471 | |
|---|---|---|
| 70 | 70 | #include "sound/k054539.h" |
| 71 | 71 | #include "sound/2151intf.h" |
| 72 | 72 | #include "sound/flt_vol.h" |
| 73 | #include "konamipt.h" | |
| 73 | 74 | |
| 74 | 75 | VIDEO_START( xexex ); |
| 75 | 76 | VIDEO_UPDATE( xexex ); |
| r4470 | r4471 | |
| 406 | 407 | |
| 407 | 408 | static INPUT_PORTS_START( xexex ) |
| 408 | 409 | PORT_START("SYSTEM") |
| 409 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) | |
| 410 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) | |
| 411 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 412 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 413 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE1 ) | |
| 414 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE2 ) | |
| 415 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 416 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 410 | PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 ) | |
| 411 | PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 ) | |
| 412 | PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 413 | PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 414 | PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_SERVICE1 ) | |
| 415 | PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_SERVICE2 ) | |
| 416 | PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 417 | PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 418 | PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 417 | 419 | |
| 420 | PORT_START("P1") | |
| 421 | KONAMI16_LSB(1, IPT_UNKNOWN, IPT_START1 ) | |
| 422 | ||
| 423 | PORT_START("P2") | |
| 424 | KONAMI16_LSB(2, IPT_UNKNOWN, IPT_START2 ) | |
| 425 | ||
| 418 | 426 | PORT_START("EEPROM") |
| 419 | 427 | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(eeprom_bit_r, NULL) /* EEPROM data */ |
| 420 | 428 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SPECIAL ) /* EEPROM ready (always 1) */ |
| 421 | 429 | PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNKNOWN ) |
| 422 | 430 | PORT_SERVICE_NO_TOGGLE( 0x08, IP_ACTIVE_LOW ) |
| 423 | 431 | PORT_BIT( 0xf0, IP_ACTIVE_HIGH, IPT_UNKNOWN ) |
| 424 | ||
| 425 | PORT_START("P1") | |
| 426 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) | |
| 427 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) | |
| 428 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) | |
| 429 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) | |
| 430 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) | |
| 431 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) | |
| 432 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 433 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 ) | |
| 434 | ||
| 435 | PORT_START("P2") | |
| 436 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) | |
| 437 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) | |
| 438 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) | |
| 439 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) | |
| 440 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) | |
| 441 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) | |
| 442 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 443 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 ) | |
| 444 | 432 | INPUT_PORTS_END |
| 445 | 433 | |
| 446 | 434 |
| r4470 | r4471 | |
|---|---|---|
| 126 | 126 | AM_RANGE(0x0000, 0x37ff) AM_WRITE(SMH_ROM) |
| 127 | 127 | AM_RANGE(0x4000, 0x47ff) AM_WRITE(SMH_RAM) |
| 128 | 128 | AM_RANGE(0x4800, 0x4bff) AM_WRITE(tx_tileram_w) AM_BASE(&tx_tileram) |
| 129 | AM_RANGE(0x4c00, 0x4c00) AM_WRITE | |
| 129 | AM_RANGE(0x4c00, 0x4c00) AM_WRITE | |
| 130 | 130 | ADDRESS_MAP_END |
| 131 | 131 | |
| 132 | 132 | static READ8_HANDLER( marinedt_port1_r ) |
| r4470 | r4471 | |
|---|---|---|
| 12 | 12 | #include "cpu/m6809/m6809.h" |
| 13 | 13 | #include "sound/2203intf.h" |
| 14 | 14 | #include "sound/discrete.h" |
| 15 | #include "konamipt.h" | |
| 15 | 16 | |
| 16 | 17 | extern UINT8 *ironhors_scroll; |
| 17 | 18 | static UINT8 *ironhors_interrupt_enable; |
| r4470 | r4471 | |
| 136 | 137 | |
| 137 | 138 | |
| 138 | 139 | |
| 139 | static INPUT_PORTS_START( ir | |
| 140 | static INPUT_PORTS_START( daire | |
| 140 | 141 | PORT_START("SYSTEM") |
| 141 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) | |
| 142 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) | |
| 143 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 ) | |
| 144 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) | |
| 145 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 ) | |
| 146 | PORT_BIT( 0xe0, IP_ACTIVE_LOW, IPT_UNUSED ) | |
| 142 | KONAMI8_SYSTEM_UNK | |
| 147 | 143 | |
| 148 | /* note that button 3 for player 1 and 2 are exchanged */ | |
| 149 | 144 | PORT_START("P1") |
| 150 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY | |
| 151 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY | |
| 152 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY | |
| 153 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY | |
| 154 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) | |
| 155 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) | |
| 156 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_COCKTAIL | |
| 157 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) | |
| 145 | KONAMI8_MONO_4WAY_B123_UNK | |
| 158 | 146 | |
| 159 | 147 | PORT_START("P2") |
| 160 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_COCKTAIL | |
| 161 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_COCKTAIL | |
| 162 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY PORT_COCKTAIL | |
| 163 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_COCKTAIL | |
| 164 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL | |
| 165 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL | |
| 166 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) | |
| 167 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) | |
| 148 | KONAMI8_COCKTAIL_4WAY_B123_UNK | |
| 168 | 149 | |
| 169 | 150 | PORT_START("DSW1") |
| 170 | 151 | PORT_DIPNAME( 0x03, 0x02, DEF_STR( Lives ) ) |
| r4470 | r4471 | |
| 190 | 171 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 191 | 172 | |
| 192 | 173 | PORT_START("DSW2") |
| 193 | PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) ) | |
| 194 | PORT_DIPSETTING( 0x02, DEF_STR( 4C_1C ) ) | |
| 195 | PORT_DIPSETTING( 0x05, DEF_STR( 3C_1C ) ) | |
| 196 | PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) ) | |
| 197 | PORT_DIPSETTING( 0x04, DEF_STR( 3C_2C ) ) | |
| 198 | PORT_DIPSETTING( 0x01, DEF_STR( 4C_3C ) ) | |
| 199 | PORT_DIPSETTING( 0x0f, DEF_STR( 1C_1C ) ) | |
| 200 | PORT_DIPSETTING( 0x03, DEF_STR( 3C_4C ) ) | |
| 201 | PORT_DIPSETTING( 0x07, DEF_STR( 2C_3C ) ) | |
| 202 | PORT_DIPSETTING( 0x0e, DEF_STR( 1C_2C ) ) | |
| 203 | PORT_DIPSETTING( 0x06, DEF_STR( 2C_5C ) ) | |
| 204 | PORT_DIPSETTING( 0x0d, DEF_STR( 1C_3C ) ) | |
| 205 | PORT_DIPSETTING( 0x0c, DEF_STR( 1C_4C ) ) | |
| 206 | PORT_DIPSETTING( 0x0b, DEF_STR( 1C_5C ) ) | |
| 207 | PORT_DIPSETTING( 0x0a, DEF_STR( 1C_6C ) ) | |
| 208 | PORT_DIPSETTING( 0x09, DEF_STR( 1C_7C ) ) | |
| 209 | PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) | |
| 210 | PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) ) | |
| 211 | PORT_DIPSETTING( 0x20, DEF_STR( 4C_1C ) ) | |
| 212 | PORT_DIPSETTING( 0x50, DEF_STR( 3C_1C ) ) | |
| 213 | PORT_DIPSETTING( 0x80, DEF_STR( 2C_1C ) ) | |
| 214 | PORT_DIPSETTING( 0x40, DEF_STR( 3C_2C ) ) | |
| 215 | PORT_DIPSETTING( 0x10, DEF_STR( 4C_3C ) ) | |
| 216 | PORT_DIPSETTING( 0xf0, DEF_STR( 1C_1C ) ) | |
| 217 | PORT_DIPSETTING( 0x30, DEF_STR( 3C_4C ) ) | |
| 218 | PORT_DIPSETTING( 0x70, DEF_STR( 2C_3C ) ) | |
| 219 | PORT_DIPSETTING( 0xe0, DEF_STR( 1C_2C ) ) | |
| 220 | PORT_DIPSETTING( 0x60, DEF_STR( 2C_5C ) ) | |
| 221 | PORT_DIPSETTING( 0xd0, DEF_STR( 1C_3C ) ) | |
| 222 | PORT_DIPSETTING( 0xc0, DEF_STR( 1C_4C ) ) | |
| 223 | PORT_DIPSETTING( 0xb0, DEF_STR( 1C_5C ) ) | |
| 224 | PORT_DIPSETTING( 0xa0, DEF_STR( 1C_6C ) ) | |
| 225 | PORT_DIPSETTING( 0x90, DEF_STR( 1C_7C ) ) | |
| 174 | KONAMI_COINAGE(DEF_STR( Free_Play ), "No Coin B") | |
| 175 | /* "No Coin B" = coins produce sound, but no effect on coin counter */ | |
| 226 | 176 | |
| 227 | 177 | PORT_START("DSW3") |
| 228 | 178 | PORT_DIPNAME( 0x01, 0x00, DEF_STR( Flip_Screen ) ) |
| r4470 | r4471 | |
| 237 | 187 | PORT_BIT( 0xf8, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 238 | 188 | INPUT_PORTS_END |
| 239 | 189 | |
| 240 | static INPUT_PORTS_START( dairesya ) | |
| 241 | PORT_INCLUDE( ironhors ) | |
| 190 | static INPUT_PORTS_START( ironhors ) | |
| 191 | PORT_INCLUDE( dairesya ) | |
| 242 | 192 | |
| 243 | /* here button 3 for player 1 and 2 are | |
| 193 | /* here button 3 for player 1 and 2 are | |
| 244 | 194 | PORT_MODIFY("P1") |
| 245 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) | |
| 195 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_COCKTAIL | |
| 246 | 196 | |
| 247 | 197 | PORT_MODIFY("P2") |
| 248 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) | |
| 198 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) | |
| 249 | 199 | INPUT_PORTS_END |
| 250 | 200 | |
| 251 | 201 |
| r4470 | r4471 | |
|---|---|---|
| 89 | 89 | |
| 90 | 90 | /* 0x30 looks like scroll, but can't be ? changes (increases or decreases) |
| 91 | 91 | depending on the direction your ship is facing on lev 2. at least */ |
| 92 | AM_RANGE(0x30, 0x30) AM_WRITE | |
| 92 | AM_RANGE(0x30, 0x30) AM_WRITE | |
| 93 | 93 | |
| 94 | 94 | AM_RANGE(0x32, 0x32) AM_WRITE(battlex_scroll_x_lsb_w) |
| 95 | 95 | AM_RANGE(0x33, 0x33) AM_WRITE(battlex_scroll_x_msb_w) |
| r4470 | r4471 | |
|---|---|---|
| 400 | 400 | |
| 401 | 401 | AM_RANGE(0x100000, 0x100001) AM_WRITE(sliver_RAMDAC_offset_w) |
| 402 | 402 | AM_RANGE(0x100002, 0x100003) AM_WRITE(sliver_RAMDAC_color_w) |
| 403 | AM_RANGE(0x100004, 0x100005) AM_WRITE | |
| 403 | AM_RANGE(0x100004, 0x100005) AM_WRITE | |
| 404 | 404 | |
| 405 | 405 | AM_RANGE(0x300002, 0x300003) AM_NOP // bit 0 tested, writes 0xe0 and 0xc0 - both r and w at the end of interrupt code |
| 406 | 406 |
| r4470 | r4471 | |
|---|---|---|
| 285 | 285 | AM_RANGE(0x300000, 0x300001) AM_WRITE(tms57002_data_word_w) |
| 286 | 286 | AM_RANGE(0x400000, 0x40000f) AM_WRITE(sndcomm68k_w) |
| 287 | 287 | AM_RANGE(0x500000, 0x500001) AM_WRITE(tms57002_control_word_w) |
| 288 | AM_RANGE(0x580000, 0x580001) AM_WRITE | |
| 288 | AM_RANGE(0x580000, 0x580001) AM_WRITE | |
| 289 | 289 | ADDRESS_MAP_END |
| 290 | 290 | |
| 291 | 291 | static const k054539_interface k054539_config = |
| r4470 | r4471 | |
|---|---|---|
| 339 | 339 | PORT_DIPNAME( 0x02, 0x02, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("SW1:2") |
| 340 | 340 | PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) |
| 341 | 341 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 342 | PORT_DIPUNUSED_DIPLOC( 0x0004, 0x0004, "SW1:4" ) | |
| 343 | PORT_DIPUNUSED_DIPLOC( 0x0008, 0x0008, "SW1:5" ) | |
| 344 | PORT_DIPUNUSED_DIPLOC( 0x0010, 0x0010, "SW1:6" ) | |
| 345 | PORT_DIPUNUSED_DIPLOC( 0x0020, 0x0020, "SW1:7" ) | |
| 342 | PORT_DIPUNUSED_DIPLOC( 0x04, 0x04, "SW1:3" ) | |
| 343 | PORT_DIPUNUSED_DIPLOC( 0x08, 0x08, "SW1:4" ) | |
| 344 | PORT_DIPUNUSED_DIPLOC( 0x10, 0x10, "SW1:5" ) | |
| 345 | PORT_DIPUNUSED_DIPLOC( 0x20, 0x20, "SW1:6" ) | |
| 346 | 346 | PORT_DIPNAME( 0x40, 0x40, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SW1:7") |
| 347 | 347 | PORT_DIPSETTING( 0x40, DEF_STR( Upright ) ) |
| 348 | 348 | PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) ) |
| r4470 | r4471 | |
|---|---|---|
| 169 | 169 | |
| 170 | 170 | static ADDRESS_MAP_START( io_map, ADDRESS_SPACE_IO, 8 ) |
| 171 | 171 | ADDRESS_MAP_GLOBAL_MASK(0xff) |
| 172 | AM_RANGE(0x00, 0x00) AM_WRITE | |
| 172 | AM_RANGE(0x00, 0x00) AM_WRITE | |
| 173 | 173 | AM_RANGE(0x40, 0x40) AM_WRITE(mrflea_io_w) |
| 174 | 174 | AM_RANGE(0x41, 0x41) AM_READ(mrflea_main_r) |
| 175 | 175 | AM_RANGE(0x42, 0x42) AM_READ(mrflea_main_status_r) |
| 176 | AM_RANGE(0x43, 0x43) AM_WRITE | |
| 176 | AM_RANGE(0x43, 0x43) AM_WRITE | |
| 177 | 177 | AM_RANGE(0x60, 0x60) AM_WRITE(mrflea_gfx_bank_w) |
| 178 | 178 | ADDRESS_MAP_END |
| 179 | 179 | |
| r4470 | r4471 | |
| 193 | 193 | |
| 194 | 194 | static ADDRESS_MAP_START( inout_io_map, ADDRESS_SPACE_IO, 8 ) |
| 195 | 195 | ADDRESS_MAP_GLOBAL_MASK(0xff) |
| 196 | AM_RANGE(0x00, 0x00) AM_WRITE | |
| 196 | AM_RANGE(0x00, 0x00) AM_WRITE | |
| 197 | 197 | AM_RANGE(0x10, 0x10) AM_READWRITE(mrflea_interrupt_type_r, SMH_NOP) /* ? / irq ACK */ |
| 198 | AM_RANGE(0x11, 0x11) AM_WRITE | |
| 198 | AM_RANGE(0x11, 0x11) AM_WRITE | |
| 199 | 199 | AM_RANGE(0x20, 0x20) AM_READ(mrflea_io_r) |
| 200 | 200 | AM_RANGE(0x21, 0x21) AM_WRITE(mrflea_main_w) |
| 201 | 201 | AM_RANGE(0x22, 0x22) AM_READ(mrflea_io_status_r) |
| 202 | AM_RANGE(0x23, 0x23) AM_WRITE | |
| 202 | AM_RANGE(0x23, 0x23) AM_WRITE | |
| 203 | 203 | AM_RANGE(0x40, 0x40) AM_DEVREAD("ay1", ay8910_r) |
| 204 | 204 | AM_RANGE(0x40, 0x41) AM_DEVWRITE("ay1", ay8910_data_address_w) |
| 205 | 205 | AM_RANGE(0x42, 0x42) AM_READWRITE(mrflea_input1_r, mrflea_data1_w) |
| r4470 | r4471 | |
|---|---|---|
| 2147 | 2147 | // video registers of some kind probably |
| 2148 | 2148 | AM_RANGE(0x040C0000, 0x040C0003) AM_READ(cps3_40C0000_r)//?? every frame |
| 2149 | 2149 | AM_RANGE(0x040C0004, 0x040C0007) AM_READ(cps3_40C0004_r)//AM_READ(cps3_40C0004_r) // warzard reads this! |
| 2150 | // AM_RANGE(0x040C0008, 0x040C000b) AM_WRITE(SMH_NOP)//?? | |
| 2151 | AM_RANGE(0x040C000c, 0x040C000f) AM_READ(cps3_vbl_r)// AM_WRITE(SMH_NOP)/ | |
| 2150 | // AM_RANGE(0x040C0008, 0x040C000b) AM_WRITENOP//?? | |
| 2151 | AM_RANGE(0x040C000c, 0x040C000f) AM_READ(cps3_vbl_r)// AM_WRITENOP/ | |
| 2152 | 2152 | |
| 2153 | 2153 | AM_RANGE(0x040C0000, 0x040C001f) AM_WRITE(cps3_unk_vidregs_w) |
| 2154 | 2154 | AM_RANGE(0x040C0020, 0x040C002b) AM_WRITE(SMH_RAM) AM_BASE(&tilemap20_regs_base) |
| r4470 | r4471 | |
|---|---|---|
| 181 | 181 | AM_RANGE(0x200000, 0x200005) AM_READ(SMH_RAM) |
| 182 | 182 | AM_RANGE(0x300000, 0x300005) AM_READ(SMH_RAM) |
| 183 | 183 | |
| 184 | // AM_RANGE(0x180018, 0x18001f) AM_READ | |
| 184 | // AM_RANGE(0x180018, 0x18001f) AM_READ | |
| 185 | 185 | |
| 186 | 186 | AM_RANGE(0x400000, 0x401fff) AM_READ(SMH_RAM) // Tilemap 0 |
| 187 | 187 | AM_RANGE(0x500000, 0x501fff) AM_READ(SMH_RAM) // Tilemap 1 |
| r4470 | r4471 | |
|---|---|---|
| 191 | 191 | static ADDRESS_MAP_START( io_map, ADDRESS_SPACE_IO, 8 ) |
| 192 | 192 | ADDRESS_MAP_GLOBAL_MASK(0xff) |
| 193 | 193 | AM_RANGE(0x00, 0x00) AM_READ(keyboard_r) |
| 194 | AM_RANGE(0x01, 0x01) AM_READ | |
| 194 | AM_RANGE(0x01, 0x01) AM_READ | |
| 195 | 195 | AM_RANGE(0x02, 0x02) AM_READ_PORT("IN2") |
| 196 | 196 | AM_RANGE(0x01, 0x02) AM_WRITE(keyboard_select_w) |
| 197 | 197 | AM_RANGE(0x10, 0x10) AM_WRITE(mjkjidai_ctrl_w) // rom bank, coin counter, flip screen etc |
| r4470 | r4471 | |
|---|---|---|
| 35 | 35 | #define MASTER_CLOCK XTAL_18_432MHz |
| 36 | 36 | #define VOICE_CLOCK XTAL_3_579545MHz |
| 37 | 37 | |
| 38 | ||
| 39 | 38 | #include "driver.h" |
| 40 | 39 | #include "machine/konami1.h" |
| 41 | 40 | #include "cpu/m6809/m6809.h" |
| 42 | 41 | #include "sound/sn76496.h" |
| 43 | 42 | #include "sound/vlm5030.h" |
| 43 | #include "konamipt.h" | |
| 44 | 44 | |
| 45 | ||
| 46 | 45 | extern UINT8 *jailbrek_scroll_x; |
| 47 | 46 | extern UINT8 *jailbrek_scroll_dir; |
| 48 | 47 | |
| r4470 | r4471 | |
| 116 | 115 | |
| 117 | 116 | static INPUT_PORTS_START( jailbrek ) |
| 118 | 117 | PORT_START("SYSTEM") /* $3300 */ |
| 119 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) | |
| 120 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) | |
| 121 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 ) | |
| 122 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) | |
| 123 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 ) | |
| 118 | KONAMI8_SYSTEM_10 | |
| 124 | 119 | PORT_BIT( 0xe0, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 125 | 120 | |
| 126 | 121 | PORT_START("P1") /* $3301 */ |
| 127 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY | |
| 128 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY | |
| 129 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY | |
| 130 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY | |
| 131 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) // shoot | |
| 132 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) // select | |
| 133 | PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) | |
| 122 | KONAMI8_B12_UNK(1) // button1 = shoot, button2 = select | |
| 134 | 123 | |
| 135 | 124 | PORT_START("P2") /* $3302 */ |
| 136 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) | |
| 137 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) | |
| 138 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) | |
| 139 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) | |
| 140 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) | |
| 141 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) | |
| 142 | PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) | |
| 125 | KONAMI8_B12_UNK(2) | |
| 143 | 126 | |
| 144 | 127 | PORT_START("DSW1") /* $3303 */ |
| 145 | PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) ) PORT_DIPLOCATION( "SW1:4,3,2,1" ) | |
| 146 | PORT_DIPSETTING( 0x02, DEF_STR( 4C_1C ) ) | |
| 147 | PORT_DIPSETTING( 0x05, DEF_STR( 3C_1C ) ) | |
| 148 | PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) ) | |
| 149 | PORT_DIPSETTING( 0x04, DEF_STR( 3C_2C ) ) | |
| 150 | PORT_DIPSETTING( 0x01, DEF_STR( 4C_3C ) ) | |
| 151 | PORT_DIPSETTING( 0x0f, DEF_STR( 1C_1C ) ) | |
| 152 | PORT_DIPSETTING( 0x03, DEF_STR( 3C_4C ) ) | |
| 153 | PORT_DIPSETTING( 0x07, DEF_STR( 2C_3C ) ) | |
| 154 | PORT_DIPSETTING( 0x0e, DEF_STR( 1C_2C ) ) | |
| 155 | PORT_DIPSETTING( 0x06, DEF_STR( 2C_5C ) ) | |
| 156 | PORT_DIPSETTING( 0x0d, DEF_STR( 1C_3C ) ) | |
| 157 | PORT_DIPSETTING( 0x0c, DEF_STR( 1C_4C ) ) | |
| 158 | PORT_DIPSETTING( 0x0b, DEF_STR( 1C_5C ) ) | |
| 159 | PORT_DIPSETTING( 0x0a, DEF_STR( 1C_6C ) ) | |
| 160 | PORT_DIPSETTING( 0x09, DEF_STR( 1C_7C ) ) | |
| 161 | PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) | |
| 162 | PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) ) PORT_DIPLOCATION( "SW1:8,7,6,5" ) | |
| 163 | PORT_DIPSETTING( 0x20, DEF_STR( 4C_1C ) ) | |
| 164 | PORT_DIPSETTING( 0x50, DEF_STR( 3C_1C ) ) | |
| 165 | PORT_DIPSETTING( 0x80, DEF_STR( 2C_1C ) ) | |
| 166 | PORT_DIPSETTING( 0x40, DEF_STR( 3C_2C ) ) | |
| 167 | PORT_DIPSETTING( 0x10, DEF_STR( 4C_3C ) ) | |
| 168 | PORT_DIPSETTING( 0xf0, DEF_STR( 1C_1C ) ) | |
| 169 | PORT_DIPSETTING( 0x30, DEF_STR( 3C_4C ) ) | |
| 170 | PORT_DIPSETTING( 0x70, DEF_STR( 2C_3C ) ) | |
| 171 | PORT_DIPSETTING( 0xe0, DEF_STR( 1C_2C ) ) | |
| 172 | PORT_DIPSETTING( 0x60, DEF_STR( 2C_5C ) ) | |
| 173 | PORT_DIPSETTING( 0xd0, DEF_STR( 1C_3C ) ) | |
| 174 | PORT_DIPSETTING( 0xc0, DEF_STR( 1C_4C ) ) | |
| 175 | PORT_DIPSETTING( 0xb0, DEF_STR( 1C_5C ) ) | |
| 176 | PORT_DIPSETTING( 0xa0, DEF_STR( 1C_6C ) ) | |
| 177 | PORT_DIPSETTING( 0x90, DEF_STR( 1C_7C ) ) | |
| 178 | PORT_DIPSETTING( 0x00, "Invalid" ) | |
| 128 | KONAMI_COINAGE_LOC(DEF_STR( Free_Play ), "Invalid", SW1) | |
| 129 | /* "Invalid" = both coin slots disabled */ | |
| 179 | 130 | |
| 180 | 131 | PORT_START("DSW2") /* $3100 */ |
| 181 | 132 | PORT_DIPNAME( 0x03, 0x01, DEF_STR( Lives ) ) PORT_DIPLOCATION( "SW2:1,2" ) |
| r4470 | r4471 | |
|---|---|---|
| 121 | 121 | AM_RANGE(0x1d0000, 0x1d0001) AM_WRITENOP |
| 122 | 122 | AM_RANGE(0x1d0002, 0x1d0003) AM_NOP //sound reset ?? |
| 123 | 123 | |
| 124 | AM_RANGE(0x2d0000, 0x2d0001) AM_READ(SMH_NOP) AM_WRITE(taitosound_port16_lsb_w) | |
| 125 | AM_RANGE(0x2d0002, 0x2d0003) AM_READ(taitosound_comm16_msb_r) AM_WRITE(taitosound_comm16_lsb_w) | |
| 124 | AM_RANGE(0x2d0000, 0x2d0001) AM_READNOP AM_WRITE8(taitosound_port_w, 0x00ff) | |
| 125 | AM_RANGE(0x2d0002, 0x2d0003) AM_READ8(taitosound_comm_r, 0xff00) AM_WRITE8(taitosound_comm_w, 0x00ff) | |
| 126 | 126 | |
| 127 | 127 | AM_RANGE(0x200000, 0x20ffff) AM_RAM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE(&paletteram16)//AM_SHARE(2) |
| 128 | 128 | AM_RANGE(0x280000, 0x2807ff) AM_RAM // is it shared with mecha ? tested around $940 |
| r4470 | r4471 | |
|---|---|---|
| 174 | 174 | static ADDRESS_MAP_START( bigkarnk_writemem_snd, ADDRESS_SPACE_PROGRAM, 8 ) |
| 175 | 175 | AM_RANGE(0x0000, 0x07ff) AM_WRITE(SMH_RAM) /* RAM */ |
| 176 | 176 | AM_RANGE(0x0800, 0x0800) AM_DEVWRITE("oki", okim6295_w) /* OKI6295 */ |
| 177 | // AM_RANGE(0x0900, 0x0900) AM_WRITE | |
| 177 | // AM_RANGE(0x0900, 0x0900) AM_WRITE | |
| 178 | 178 | AM_RANGE(0x0a00, 0x0a01) AM_DEVWRITE("ym", ym3812_w) /* YM3812 */ |
| 179 | 179 | AM_RANGE(0x0c00, 0xffff) AM_WRITE(SMH_ROM) /* ROM */ |
| 180 | 180 | ADDRESS_MAP_END |
| r4470 | r4471 | |
|---|---|---|
| 206 | 206 | AM_RANGE(0xe802, 0xe802) AM_READ_PORT("DSW") |
| 207 | 207 | AM_RANGE(0xe801, 0xe802) AM_WRITE(tankbust_xscroll_w) |
| 208 | 208 | AM_RANGE(0xe803, 0xe803) AM_READWRITE(some_changing_input, tankbust_soundlatch_w) /*unknown. Game expects this to change so this is not player input */ |
| 209 | AM_RANGE(0xe804, 0xe804) AM_WRITE | |
| 209 | AM_RANGE(0xe804, 0xe804) AM_WRITE | |
| 210 | 210 | AM_RANGE(0xf000, 0xf7ff) AM_RAM |
| 211 | 211 | //AM_RANGE(0xf800, 0xffff) AM_READ(read_from_unmapped_memory) /* a bug in game code ? */ |
| 212 | 212 | ADDRESS_MAP_END |
| r4470 | r4471 | |
| 223 | 223 | static ADDRESS_MAP_START( map_cpu2, ADDRESS_SPACE_PROGRAM, 8 ) |
| 224 | 224 | AM_RANGE(0x0000, 0x1fff) AM_READ(SMH_ROM) |
| 225 | 225 | AM_RANGE(0x0000, 0x1fff) AM_WRITE(SMH_ROM) |
| 226 | AM_RANGE(0x2000, 0x3fff) AM_WRITE | |
| 226 | AM_RANGE(0x2000, 0x3fff) AM_WRITE | |
| 227 | 227 | //0x4000 and 0x4040-0x4045 seem to be used (referenced in the code) |
| 228 | AM_RANGE(0x4000, 0x7fff) AM_WRITE | |
| 228 | AM_RANGE(0x4000, 0x7fff) AM_WRITE | |
| 229 | 229 | AM_RANGE(0x8000, 0x87ff) AM_READ(SMH_RAM) |
| 230 | 230 | AM_RANGE(0x8000, 0x87ff) AM_WRITE(SMH_RAM) |
| 231 | 231 | ADDRESS_MAP_END |
| r4470 | r4471 | |
|---|---|---|
| 550 | 550 | AM_RANGE(0x140000, 0x140001) AM_WRITE(wecleman_soundlatch_w) // To sound CPU |
| 551 | 551 | AM_RANGE(0x140002, 0x140003) AM_WRITE(selected_ip_w) // Selects accelerator / wheel / .. |
| 552 | 552 | AM_RANGE(0x140004, 0x140005) AM_WRITE(irqctrl_w) // Main CPU controls the other CPUs |
| 553 | AM_RANGE(0x140006, 0x140007) AM_WRITE | |
| 553 | AM_RANGE(0x140006, 0x140007) AM_WRITE | |
| 554 | 554 | AM_RANGE(0x140010, 0x140011) AM_READ_PORT("IN0") // Coins + brake + gear |
| 555 | 555 | AM_RANGE(0x140012, 0x140013) AM_READ_PORT("IN1") // ?? |
| 556 | 556 | AM_RANGE(0x140014, 0x140015) AM_READ_PORT("DSWA") // DSW 2 |
| 557 | 557 | AM_RANGE(0x140016, 0x140017) AM_READ_PORT("DSWB") // DSW 1 |
| 558 | 558 | AM_RANGE(0x140020, 0x140021) AM_WRITE(SMH_RAM) // Paired with writes to $140003 |
| 559 | 559 | AM_RANGE(0x140020, 0x140021) AM_READ(selected_ip_r) // Accelerator or Wheel or .. |
| 560 | AM_RANGE(0x140030, 0x140031) AM_WRITE | |
| 560 | AM_RANGE(0x140030, 0x140031) AM_WRITE | |
| 561 | 561 | ADDRESS_MAP_END |
| 562 | 562 | |
| 563 | 563 | |
| r4470 | r4471 | |
| 612 | 612 | AM_RANGE(0x140000, 0x140001) AM_WRITE(hotchase_soundlatch_w) // To sound CPU |
| 613 | 613 | AM_RANGE(0x140002, 0x140003) AM_WRITE(selected_ip_w) // Selects accelerator / wheel / |
| 614 | 614 | AM_RANGE(0x140004, 0x140005) AM_WRITE(irqctrl_w) // Main CPU controls the other CPUs |
| 615 | AM_RANGE(0x140006, 0x140007) AM_READ | |
| 615 | AM_RANGE(0x140006, 0x140007) AM_READ | |
| 616 | 616 | AM_RANGE(0x140010, 0x140011) AM_READ_PORT("IN0") // Coins + brake + gear |
| 617 | 617 | AM_RANGE(0x140012, 0x140013) AM_READ_PORT("IN1") // ?? bit 4 from sound cpu |
| 618 | 618 | AM_RANGE(0x140014, 0x140015) AM_READ_PORT("DSW2") // DSW 2 |
| 619 | 619 | AM_RANGE(0x140016, 0x140017) AM_READ_PORT("DSW1") // DSW 1 |
| 620 | 620 | AM_RANGE(0x140020, 0x140021) AM_READWRITE(selected_ip_r, SMH_NOP) // Paired with writes to $140003 |
| 621 | AM_RANGE(0x140022, 0x140023) AM_READ(SMH_NOP) // ?? | |
| 622 | AM_RANGE(0x140030, 0x140031) AM_WRITE(SMH_NOP) // signal to cabinet vibration motors? | |
| 621 | AM_RANGE(0x140022, 0x140023) AM_READNOP // ?? | |
| 622 | AM_RANGE(0x140030, 0x140031) AM_WRITENOP // signal to cabinet vibration motors? | |
| 623 | 623 | ADDRESS_MAP_END |
| 624 | 624 | |
| 625 | 625 | |
| r4470 | r4471 | |
| 695 | 695 | static ADDRESS_MAP_START( wecleman_sound_map, ADDRESS_SPACE_PROGRAM, 8 ) |
| 696 | 696 | AM_RANGE(0x0000, 0x7fff) AM_ROM |
| 697 | 697 | AM_RANGE(0x8000, 0x83ff) AM_RAM |
| 698 | AM_RANGE(0x8500, 0x8500) AM_WRITE | |
| 698 | AM_RANGE(0x8500, 0x8500) AM_WRITE | |
| 699 | 699 | AM_RANGE(0x9000, 0x9000) AM_READ(multiply_r) // Protection |
| 700 | 700 | AM_RANGE(0x9000, 0x9001) AM_WRITE(multiply_w) // Protection |
| 701 | AM_RANGE(0x9006, 0x9006) AM_WRITE | |
| 701 | AM_RANGE(0x9006, 0x9006) AM_WRITE | |
| 702 | 702 | AM_RANGE(0xa000, 0xa000) AM_READ(soundlatch_r) // From main CPU |
| 703 | 703 | AM_RANGE(0xb000, 0xb00d) AM_DEVREADWRITE("konami", k007232_r, k007232_w) // K007232 (Reading offset 5/b triggers the sample) |
| 704 | 704 | AM_RANGE(0xc000, 0xc001) AM_DEVREADWRITE("ym", ym2151_r, ym2151_w) |
| r4470 | r4471 | |
| 791 | 791 | AM_RANGE(0x2000, 0x200d) AM_DEVREADWRITE("konami2", hotchase_k007232_r, hotchase_k007232_w) |
| 792 | 792 | AM_RANGE(0x3000, 0x300d) AM_DEVREADWRITE("konami3", hotchase_k007232_r, hotchase_k007232_w) |
| 793 | 793 | AM_RANGE(0x4000, 0x4007) AM_WRITE(hotchase_sound_control_w) // Sound volume, banking, etc. |
| 794 | AM_RANGE(0x5000, 0x5000) AM_WRITE | |
| 794 | AM_RANGE(0x5000, 0x5000) AM_WRITE | |
| 795 | 795 | AM_RANGE(0x6000, 0x6000) AM_READ(soundlatch_r) // From main CPU (Read on IRQ) |
| 796 | AM_RANGE(0x7000, 0x7000) AM_WRITE | |
| 796 | AM_RANGE(0x7000, 0x7000) AM_WRITE | |
| 797 | 797 | AM_RANGE(0x8000, 0xffff) AM_ROM |
| 798 | 798 | ADDRESS_MAP_END |
| 799 | 799 | |
| r4470 | r4471 | |
| 803 | 803 | ***************************************************************************/ |
| 804 | 804 | |
| 805 | 805 | static INPUT_PORTS_START( wecleman ) |
| 806 | PORT_START("IN0") /* | |
| 806 | PORT_START("IN0") /* | |
| 807 | 807 | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) |
| 808 | 808 | PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN2 ) |
| 809 | 809 | PORT_SERVICE_NO_TOGGLE( 0x04, IP_ACTIVE_HIGH ) |
| r4470 | r4471 | |
| 813 | 813 | PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_NAME("Brake") |
| 814 | 814 | PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED ) |
| 815 | 815 | |
| 816 | PORT_START("IN1") /* | |
| 816 | PORT_START("IN1") /* | |
| 817 | 817 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE2 ) // right sw |
| 818 | 818 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SERVICE3 ) // left sw |
| 819 | 819 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE4 ) // thermo |
| 820 | 820 | PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) // from sound cpu ? |
| 821 | 821 | PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNKNOWN ) |
| 822 | 822 | |
| 823 | PORT_START("DSWA") /* | |
| 823 | PORT_START("DSWA") /* | |
| 824 | 824 | PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) ) |
| 825 | 825 | PORT_DIPSETTING( 0x02, DEF_STR( 4C_1C ) ) |
| 826 | 826 | PORT_DIPSETTING( 0x05, DEF_STR( 3C_1C ) ) |
| r4470 | r4471 | |
| 854 | 854 | PORT_DIPSETTING( 0xb0, DEF_STR( 1C_5C ) ) |
| 855 | 855 | PORT_DIPSETTING( 0xa0, DEF_STR( 1C_6C ) ) |
| 856 | 856 | PORT_DIPSETTING( 0x90, DEF_STR( 1C_7C ) ) |
| 857 | PORT_DIPSETTING( 0x00, "No Coin B" ) | |
| 858 | /* "No Coin B" = coins produce sound, but no effect on coin counter */ | |
| 857 | 859 | |
| 858 | PORT_START("DSWB") /* | |
| 860 | PORT_START("DSWB") /* | |
| 859 | 861 | PORT_DIPNAME( 0x01, 0x01, "Speed Unit" ) |
| 860 | 862 | PORT_DIPSETTING( 0x01, "km/h" ) |
| 861 | 863 | PORT_DIPSETTING( 0x00, "mph" ) |
| r4470 | r4471 | |
| 880 | 882 | PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) |
| 881 | 883 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 882 | 884 | |
| 883 | PORT_START("ACCEL") /* | |
| 885 | PORT_START("ACCEL") /* | |
| 884 | 886 | PORT_BIT( 0xff, 0, IPT_PEDAL ) PORT_MINMAX(0,0x80) PORT_SENSITIVITY(30) PORT_KEYDELTA(10) |
| 885 | 887 | |
| 886 | PORT_START("STEER") /* | |
| 888 | PORT_START("STEER") /* | |
| 887 | 889 | PORT_BIT( 0xff, 0x80, IPT_PADDLE ) PORT_SENSITIVITY(50) PORT_KEYDELTA(5) |
| 888 | 890 | INPUT_PORTS_END |
| 889 | 891 | |
| r4470 | r4471 | |
| 893 | 895 | ***************************************************************************/ |
| 894 | 896 | |
| 895 | 897 | static INPUT_PORTS_START( hotchase ) |
| 896 | PORT_START("IN0") /* | |
| 898 | PORT_START("IN0") /* | |
| 897 | 899 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) |
| 898 | 900 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) |
| 899 | 901 | PORT_SERVICE_NO_TOGGLE( 0x04, IP_ACTIVE_LOW ) |
| r4470 | r4471 | |
| 903 | 905 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("Brake") |
| 904 | 906 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 905 | 907 | |
| 906 | PORT_START("IN1") /* | |
| 908 | PORT_START("IN1") /* | |
| 907 | 909 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE2 ) // right sw |
| 908 | 910 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SERVICE3 ) // left sw |
| 909 | 911 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE4 ) // thermo |
| 910 | 912 | PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) // from sound cpu ? |
| 911 | 913 | PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNKNOWN ) |
| 912 | 914 | |
| 913 | PORT_START("DSW2") /* | |
| 915 | PORT_START("DSW2") /* | |
| 914 | 916 | PORT_DIPNAME( 0x01, 0x01, "Speed Unit" ) |
| 915 | 917 | PORT_DIPSETTING( 0x01, "KM" ) |
| 916 | 918 | PORT_DIPSETTING( 0x00, "M.P.H." ) |
| r4470 | r4471 | |
| 936 | 938 | PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) |
| 937 | 939 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 938 | 940 | |
| 939 | PORT_START("DSW1") /* | |
| 941 | PORT_START("DSW1") /* | |
| 940 | 942 | PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) ) |
| 941 | 943 | PORT_DIPSETTING( 0x02, DEF_STR( 5C_1C ) ) |
| 942 | 944 | PORT_DIPSETTING( 0x04, DEF_STR( 4C_1C ) ) |
| r4470 | r4471 | |
| 971 | 973 | PORT_DIPSETTING( 0xb0, DEF_STR( 1C_5C ) ) |
| 972 | 974 | PORT_DIPSETTING( 0x00, "1 Coin/99 Credits" ) |
| 973 | 975 | |
| 974 | PORT_START("ACCEL") /* | |
| 976 | PORT_START("ACCEL") /* | |
| 975 | 977 | PORT_BIT( 0xff, 0, IPT_PEDAL ) PORT_MINMAX(0,0x80) PORT_SENSITIVITY(30) PORT_KEYDELTA(10) |
| 976 | 978 | |
| 977 | PORT_START("STEER") /* | |
| 979 | PORT_START("STEER") /* | |
| 978 | 980 | PORT_BIT( 0xff, 0x80, IPT_PADDLE ) PORT_SENSITIVITY(50) PORT_KEYDELTA(5) |
| 979 | 981 | INPUT_PORTS_END |
| 980 | 982 |
| r4470 | r4471 | |
|---|---|---|
| 221 | 221 | AM_RANGE(0x02, 0x02) AM_MIRROR(0x0c) AM_MASK(0x0c) AM_READ(pc3259_r) |
| 222 | 222 | AM_RANGE(0x03, 0x03) AM_MIRROR(0x0c) AM_READ_PORT("IN1") |
| 223 | 223 | |
| 224 | AM_RANGE(0x00, 0x00) AM_WRITE(SMH_NOP) /* not connected */ | |
| 225 | AM_RANGE(0x01, 0x01) AM_WRITE(SMH_NOP) /* watchdog */ | |
| 224 | AM_RANGE(0x00, 0x00) AM_WRITENOP /* not connected */ | |
| 225 | AM_RANGE(0x01, 0x01) AM_WRITENOP /* watchdog */ | |
| 226 | 226 | AM_RANGE(0x02, 0x04) AM_WRITE(SMH_RAM) AM_BASE(&crbaloon_spriteram) |
| 227 | 227 | AM_RANGE(0x05, 0x05) AM_DEVWRITE("discrete", crbaloon_audio_set_music_freq) |
| 228 | 228 | AM_RANGE(0x06, 0x06) AM_WRITE(port_sound_w) |
| 229 | 229 | AM_RANGE(0x07, 0x0b) AM_WRITE(pc3092_w) AM_BASE(&pc3092_data) |
| 230 | AM_RANGE(0x0c, 0x0c) AM_WRITE(SMH_NOP) /* MSK - to PC3259 */ | |
| 231 | AM_RANGE(0x0d, 0x0d) AM_WRITE(SMH_NOP) /* schematics has it in a box marked "NOT USE" */ | |
| 232 | AM_RANGE(0x0e, 0x0f) AM_WRITE(SMH_NOP) | |
| 230 | AM_RANGE(0x0c, 0x0c) AM_WRITENOP /* MSK - to PC3259 */ | |
| 231 | AM_RANGE(0x0d, 0x0d) AM_WRITENOP /* schematics has it in a box marked "NOT USE" */ | |
| 232 | AM_RANGE(0x0e, 0x0f) AM_WRITENOP | |
| 233 | 233 | ADDRESS_MAP_END |
| 234 | 234 | |
| 235 | 235 |
| r4470 | r4471 | |
|---|---|---|
| 66 | 66 | |
| 67 | 67 | static ADDRESS_MAP_START( pastelg_io_map, ADDRESS_SPACE_IO, 8 ) |
| 68 | 68 | ADDRESS_MAP_GLOBAL_MASK(0xff) |
| 69 | // AM_RANGE(0x00, 0x00) AM_WRITE | |
| 69 | // AM_RANGE(0x00, 0x00) AM_WRITE | |
| 70 | 70 | AM_RANGE(0x00, 0x7f) AM_READ(nb1413m3_sndrom_r) |
| 71 | 71 | AM_RANGE(0x81, 0x81) AM_DEVREAD("ay", ay8910_r) |
| 72 | 72 | AM_RANGE(0x82, 0x83) AM_DEVWRITE("ay", ay8910_data_address_w) |
| r4470 | r4471 | |
| 541 | 541 | |
| 542 | 542 | |
| 543 | 543 | GAME( 1985, pastelg, 0, pastelg, pastelg, pastelg, ROT0, "Nichibutsu", "Pastel Gal (Japan 851224)", 0 ) |
| 544 | GAME( 1985, 3ds, 0, threeds, threeds, pastelg, ROT0, "Nihon Bussan", "Three Ds - Three Dealers Casino House", GAME_IMPERFECT_GRAPHICS ) | |
| 545 | ||
| 544 | GAME( 1985, 3ds, 0, threeds, threeds, pastelg, ROT0, "Nichibutsu", "Three Ds - Three Dealers Casino House", GAME_IMPERFECT_GRAPHICS ) |
| r4470 | r4471 | |
|---|---|---|
| 102 | 102 | AM_RANGE(0x0000, 0x4fff) AM_READ(SMH_ROM) |
| 103 | 103 | AM_RANGE(0x8000, 0x87ff) AM_READ(SMH_RAM) |
| 104 | 104 | AM_RANGE(0xa000, 0xdfff) AM_READ(SMH_RAM) |
| 105 | AM_RANGE(0xf000, 0xf000) AM_READ | |
| 105 | AM_RANGE(0xf000, 0xf000) AM_READ | |
| 106 | 106 | AM_RANGE(0xf800, 0xf800) AM_READ(funkybee_input_port_0_r) |
| 107 | 107 | AM_RANGE(0xf801, 0xf801) AM_READ_PORT("IN1") |
| 108 | 108 | AM_RANGE(0xf802, 0xf802) AM_READ_PORT("IN2") |
| r4470 | r4471 | |
|---|---|---|
| 195 | 195 | AM_RANGE(0x200000, 0x21ffff) AM_WRITE(SMH_RAM) AM_BASE(&galastrm_ram) |
| 196 | 196 | AM_RANGE(0x300000, 0x303fff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram32) AM_SIZE(&spriteram_size) |
| 197 | 197 | AM_RANGE(0x400000, 0x400007) AM_WRITE(galastrm_input_w) /* eerom etc. */ |
| 198 | AM_RANGE(0x40fff0, 0x40fff3) AM_WRITE | |
| 198 | AM_RANGE(0x40fff0, 0x40fff3) AM_WRITE | |
| 199 | 199 | AM_RANGE(0x500000, 0x500007) AM_WRITE(galastrm_adstick_ctrl_w) |
| 200 | 200 | AM_RANGE(0x600000, 0x6007ff) AM_WRITE(SMH_RAM) AM_BASE(&f3_shared_ram) |
| 201 | 201 | AM_RANGE(0x800000, 0x80ffff) AM_WRITE(TC0480SCP_long_w) |
| r4470 | r4471 | |
|---|---|---|
| 198 | 198 | AM_RANGE(0x20000300, 0x2000037f) AM_READWRITE(btoads_paletteram_r, btoads_paletteram_w) |
| 199 | 199 | AM_RANGE(0x20000380, 0x200003ff) AM_READWRITE(main_sound_r, main_sound_w) |
| 200 | 200 | AM_RANGE(0x20000400, 0x2000047f) AM_WRITE(btoads_misc_control_w) |
| 201 | AM_RANGE(0x40000000, 0x4000000f) AM_WRITE | |
| 201 | AM_RANGE(0x40000000, 0x4000000f) AM_WRITE | |
| 202 | 202 | AM_RANGE(0x60000000, 0x6003ffff) AM_RAM AM_BASE(&generic_nvram16) AM_SIZE(&generic_nvram_size) |
| 203 | 203 | AM_RANGE(0xa0000000, 0xa03fffff) AM_READWRITE(btoads_vram_fg_display_r, btoads_vram_fg_display_w) AM_BASE(&btoads_vram_fg0) |
| 204 | 204 | AM_RANGE(0xa4000000, 0xa43fffff) AM_READWRITE(btoads_vram_fg_draw_r, btoads_vram_fg_draw_w) AM_BASE(&btoads_vram_fg1) |
| 205 | 205 | AM_RANGE(0xa8000000, 0xa87fffff) AM_RAM AM_BASE(&btoads_vram_fg_data) |
| 206 | AM_RANGE(0xa8800000, 0xa8ffffff) AM_WRITE | |
| 206 | AM_RANGE(0xa8800000, 0xa8ffffff) AM_WRITE | |
| 207 | 207 | AM_RANGE(0xb0000000, 0xb03fffff) AM_READWRITE(btoads_vram_bg0_r, btoads_vram_bg0_w) AM_BASE(&btoads_vram_bg0) |
| 208 | 208 | AM_RANGE(0xb4000000, 0xb43fffff) AM_READWRITE(btoads_vram_bg1_r, btoads_vram_bg1_w) AM_BASE(&btoads_vram_bg1) |
| 209 | 209 | AM_RANGE(0xc0000000, 0xc00003ff) AM_READWRITE(tms34020_io_register_r, tms34020_io_register_w) |
| r4470 | r4471 | |
|---|---|---|
| 389 | 389 | |
| 390 | 390 | AM_RANGE(0xb40000, 0xb4000b) AM_WRITE(SMH_RAM) AM_BASE(&tetrisp2_scroll_fg ) // Foreground Scrolling |
| 391 | 391 | AM_RANGE(0xb40010, 0xb4001b) AM_WRITE(SMH_RAM) AM_BASE(&tetrisp2_scroll_bg ) // Background Scrolling |
| 392 | AM_RANGE(0xb4003e, 0xb4003f) AM_WRITE | |
| 392 | AM_RANGE(0xb4003e, 0xb4003f) AM_WRITE | |
| 393 | 393 | |
| 394 | 394 | AM_RANGE(0xb60000, 0xb6002f) AM_WRITE(SMH_RAM) AM_BASE(&tetrisp2_rotregs) // Rotation Registers |
| 395 | 395 |
| r4470 | r4471 | |
|---|---|---|
| 65 | 65 | |
| 66 | 66 | static ADDRESS_MAP_START( lastduel_writemem, ADDRESS_SPACE_PROGRAM, 16 ) |
| 67 | 67 | AM_RANGE(0x000000, 0x05ffff) AM_WRITE(SMH_ROM) |
| 68 | AM_RANGE(0xfc0000, 0xfc0003) AM_WRITE | |
| 68 | AM_RANGE(0xfc0000, 0xfc0003) AM_WRITE | |
| 69 | 69 | AM_RANGE(0xfc0800, 0xfc0fff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) |
| 70 | 70 | AM_RANGE(0xfc4000, 0xfc4001) AM_WRITE(lastduel_flip_w) |
| 71 | 71 | AM_RANGE(0xfc4002, 0xfc4003) AM_WRITE(lastduel_sound_w) |
| r4470 | r4471 | |
|---|---|---|
| 717 | 717 | AM_RANGE(0x000000, 0x03ffff) AM_ROM // main program |
| 718 | 718 | AM_RANGE(0x080000, 0x083fff) AM_RAM // work RAM |
| 719 | 719 | AM_RANGE(0x100000, 0x103fff) AM_RAM AM_BASE(&spriteram16) // video RAM |
| 720 | AM_RANGE(0x180000, 0x180001) AM_READ_PORT("IN3") AM_WRITE | |
| 720 | AM_RANGE(0x180000, 0x180001) AM_READ_PORT("IN3") AM_WRITE | |
| 721 | 721 | AM_RANGE(0x180008, 0x180009) AM_READ_PORT("IN4") // LSB: DSW1 |
| 722 | 722 | AM_RANGE(0x300000, 0x300001) AM_READ_PORT("IN0") // joy1, joy2 |
| 723 | 723 | AM_RANGE(0x340000, 0x340001) AM_READ_PORT("IN1") // coin, start, service |
| r4470 | r4471 | |
| 733 | 733 | AM_RANGE(0x0c0000, 0x0c00ff) AM_WRITE(alpha68k_II_video_bank_w) |
| 734 | 734 | AM_RANGE(0x0c8000, 0x0c8001) AM_READ(control_3_r) /* Bottom of CN2 */ |
| 735 | 735 | AM_RANGE(0x0d0000, 0x0d0001) AM_READ(control_4_r) /* Top of CN1 & CN2 */ |
| 736 | AM_RANGE(0x0d8000, 0x0d8001) AM_READ(SMH_NOP) /* IRQ ack? */ | |
| 737 | AM_RANGE(0x0e0000, 0x0e0001) AM_READ(SMH_NOP) /* IRQ ack? */ | |
| 738 | AM_RANGE(0x0e8000, 0x0e8001) AM_READ(SMH_NOP) /* watchdog? */ | |
| 736 | AM_RANGE(0x0d8000, 0x0d8001) AM_READNOP /* IRQ ack? */ | |
| 737 | AM_RANGE(0x0e0000, 0x0e0001) AM_READNOP /* IRQ ack? */ | |
| 738 | AM_RANGE(0x0e8000, 0x0e8001) AM_READNOP /* watchdog? */ | |
| 739 | 739 | AM_RANGE(0x100000, 0x100fff) AM_RAM_WRITE(alpha68k_videoram_w) AM_BASE(&videoram16) |
| 740 | 740 | AM_RANGE(0x200000, 0x207fff) AM_RAM AM_BASE(&spriteram16) |
| 741 | 741 | AM_RANGE(0x300000, 0x3001ff) AM_READWRITE(alpha_II_trigger_r, alpha_microcontroller_w) |
| r4470 | r4471 | |
| 804 | 804 | AM_RANGE(0xe000, 0xe000) AM_READ(soundlatch_r) |
| 805 | 805 | AM_RANGE(0xe002, 0xe002) AM_WRITE(soundlatch_clear_w) |
| 806 | 806 | AM_RANGE(0xe004, 0xe004) AM_DEVWRITE("dac", dac_signed_w) |
| 807 | AM_RANGE(0xe006, 0xe00e) AM_WRITE | |
| 807 | AM_RANGE(0xe006, 0xe00e) AM_WRITE | |
| 808 | 808 | /* reference only |
| 809 | AM_RANGE(0xe006, 0xe006) AM_WRITE(SMH_NOP) // NMI: diminishing saw-tooth | |
| 810 | AM_RANGE(0xe008, 0xe008) AM_WRITE(SMH_NOP) // NMI: 00 | |
| 811 | AM_RANGE(0xe00a, 0xe00a) AM_WRITE(SMH_NOP) // RST38: 20 | |
| 812 | AM_RANGE(0xe00c, 0xe00c) AM_WRITE(SMH_NOP) // RST30: 00 on entry | |
| 813 | AM_RANGE(0xe00e, 0xe00e) AM_WRITE(SMH_NOP) // RST30: 00,02,ff on exit(0x1d88) | |
| 809 | AM_RANGE(0xe006, 0xe006) AM_WRITENOP // NMI: diminishing saw-tooth | |
| 810 | AM_RANGE(0xe008, 0xe008) AM_WRITENOP // NMI: 00 | |
| 811 | AM_RANGE(0xe00a, 0xe00a) AM_WRITENOP // RST38: 20 | |
| 812 | AM_RANGE(0xe00c, 0xe00c) AM_WRITENOP // RST30: 00 on entry | |
| 813 | AM_RANGE(0xe00e, 0xe00e) AM_WRITENOP // RST30: 00,02,ff on exit(0x1d88) | |
| 814 | 814 | */ |
| 815 | 815 | ADDRESS_MAP_END |
| 816 | 816 | |
| r4470 | r4471 | |
| 865 | 865 | AM_RANGE(0x00, 0x00) AM_DEVWRITE("ay", ay8910_address_w) |
| 866 | 866 | AM_RANGE(0x01, 0x01) AM_DEVREADWRITE("ay", ay8910_r, ay8910_data_w) |
| 867 | 867 | AM_RANGE(0x02, 0x02) AM_WRITE(soundlatch_clear_w) |
| 868 | AM_RANGE(0x06, 0x06) AM_WRITE | |
| 868 | AM_RANGE(0x06, 0x06) AM_WRITE | |
| 869 | 869 | ADDRESS_MAP_END |
| 870 | 870 | |
| 871 | 871 | static ADDRESS_MAP_START( tnexspce_sound_portmap, ADDRESS_SPACE_IO, 8 ) |
| r4470 | r4471 | |
|---|---|---|
| 450 | 450 | AM_RANGE( 0x500000, 0x500011 ) AM_WRITE( tmaster_blitter_w ) AM_BASE( &tmaster_regs ) |
| 451 | 451 | AM_RANGE( 0x500010, 0x500011 ) AM_READ ( tmaster_blitter_r ) |
| 452 | 452 | |
| 453 | AM_RANGE( 0x580000, 0x580001 ) AM_WRITE | |
| 453 | AM_RANGE( 0x580000, 0x580001 ) AM_WRITE | |
| 454 | 454 | |
| 455 | 455 | AM_RANGE( 0x600000, 0x600fff ) AM_READWRITE( SMH_RAM, paletteram16_xBBBBBGGGGGRRRRR_word_w ) AM_BASE(&paletteram16) // looks like palettes, maybe |
| 456 | 456 |
| r4470 | r4471 | |
|---|---|---|
| 210 | 210 | AM_RANGE(0xf000, 0xf003) AM_DEVREAD("ppi8255_1", ppi8255_r) |
| 211 | 211 | AM_RANGE(0xf800, 0xf800) AM_READ_PORT("IN0") |
| 212 | 212 | AM_RANGE(0xf801, 0xf801) AM_READ_PORT("IN1") |
| 213 | AM_RANGE(0xf802, 0xf802) AM_READ | |
| 213 | AM_RANGE(0xf802, 0xf802) AM_READ | |
| 214 | 214 | AM_RANGE(0xf803, 0xf803) AM_READ(spinner_r) |
| 215 | 215 | ADDRESS_MAP_END |
| 216 | 216 | |
| r4470 | r4471 | |
| 247 | 247 | AM_RANGE(0xd000, 0xd7ff) AM_WRITE(freek_videoram_w) AM_BASE(&freek_videoram) |
| 248 | 248 | AM_RANGE(0xd800, 0xd8ff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size) |
| 249 | 249 | AM_RANGE(0xd900, 0xdfff) AM_WRITE(SMH_RAM) |
| 250 | AM_RANGE(0xe000, 0xe001) AM_WRITE | |
| 250 | AM_RANGE(0xe000, 0xe001) AM_WRITE | |
| 251 | 251 | AM_RANGE(0xe002, 0xe003) AM_WRITE(coin_w) |
| 252 | 252 | AM_RANGE(0xe004, 0xe004) AM_WRITE(nmi_enable_w) |
| 253 | AM_RANGE(0xe005, 0xe005) AM_WRITE(SMH_NOP) | |
| 254 | AM_RANGE(0xf000, 0xf000) AM_WRITE(SMH_NOP) //bankswitch ? | |
| 253 | AM_RANGE(0xe005, 0xe005) AM_WRITENOP | |
| 254 | AM_RANGE(0xf000, 0xf000) AM_WRITENOP //bankswitch ? | |
| 255 | 255 | AM_RANGE(0xfc00, 0xfc00) AM_DEVWRITE("sn1", sn76496_w) |
| 256 | 256 | AM_RANGE(0xfc01, 0xfc01) AM_DEVWRITE("sn2", sn76496_w) |
| 257 | 257 | AM_RANGE(0xfc02, 0xfc02) AM_DEVWRITE("sn3", sn76496_w) |
| r4470 | r4471 | |
| 261 | 261 | static ADDRESS_MAP_START( gigas_io_map, ADDRESS_SPACE_IO, 8 ) |
| 262 | 262 | ADDRESS_MAP_GLOBAL_MASK(0xff) |
| 263 | 263 | AM_RANGE(0x00, 0x00) AM_READWRITE(spinner_r, spinner_select_w) |
| 264 | AM_RANGE(0x01, 0x01) AM_READ | |
| 264 | AM_RANGE(0x01, 0x01) AM_READ | |
| 265 | 265 | ADDRESS_MAP_END |
| 266 | 266 | |
| 267 | 267 | static ADDRESS_MAP_START( oigas_io_map, ADDRESS_SPACE_IO, 8 ) |
| 268 | 268 | ADDRESS_MAP_GLOBAL_MASK(0xff) |
| 269 | 269 | AM_RANGE(0x00, 0x00) AM_READWRITE(spinner_r, spinner_select_w) |
| 270 | AM_RANGE(0x01, 0x01) AM_READ | |
| 270 | AM_RANGE(0x01, 0x01) AM_READ | |
| 271 | 271 | AM_RANGE(0x02, 0x02) AM_READ(oigas_2_r) |
| 272 | 272 | AM_RANGE(0x03, 0x03) AM_READ(oigas_3_r) |
| 273 | 273 | AM_RANGE(0x05, 0x05) AM_WRITE(oigas_5_w) |
| r4470 | r4471 | |
|---|---|---|
| 1793 | 1793 | AM_RANGE(0x1,0x1) AM_WRITE(point_ram_hiword_w) AM_READ(point_ram_hiword_ir) |
| 1794 | 1794 | AM_RANGE(0x2,0x2) AM_WRITE(dsp_unk2_w) AM_READ(pdp_begin_r) |
| 1795 | 1795 | AM_RANGE(0x3,0x3) AM_WRITE(point_ram_idx_w) AM_READ(dsp_unk_port3_r) |
| 1796 | AM_RANGE(0x4,0x4) AM_WRITE | |
| 1796 | AM_RANGE(0x4,0x4) AM_WRITE | |
| 1797 | 1797 | AM_RANGE(0x7,0x7) AM_WRITE(upload_code_to_slave_dsp_w) |
| 1798 | 1798 | AM_RANGE(0x8,0x8) AM_WRITE(dsp_unk8_w) AM_READ(dsp_unk8_r) /* trigger irq? */ |
| 1799 | AM_RANGE(0x9,0x9) AM_WRITE | |
| 1799 | AM_RANGE(0x9,0x9) AM_WRITE | |
| 1800 | 1800 | AM_RANGE(0xa,0xa) AM_WRITE(dsp_unk_porta_w) |
| 1801 | AM_RANGE(0xb,0xb) AM_WRITE | |
| 1801 | AM_RANGE(0xb,0xb) AM_WRITE | |
| 1802 | 1802 | AM_RANGE(0xc,0xc) AM_WRITE(master_render_device_w) |
| 1803 | 1803 | AM_RANGE(0xd,0xd) AM_WRITE(namcos22_dspram16_bank_w) |
| 1804 | 1804 | AM_RANGE(0xe,0xe) AM_WRITE(dsp_led_w) |
| 1805 | AM_RANGE(0xf,0xf) AM_WRITE | |
| 1805 | AM_RANGE(0xf,0xf) AM_WRITE | |
| 1806 | 1806 | AM_RANGE(TMS32025_HOLD, TMS32025_HOLD) AM_READ(dsp_HOLD_signal_r) |
| 1807 | 1807 | AM_RANGE(TMS32025_HOLDA, TMS32025_HOLDA) AM_WRITE(dsp_HOLD_ACK_w) |
| 1808 | 1808 | AM_RANGE(TMS32025_XF, TMS32025_XF) AM_WRITE(dsp_XF_output_w) |
| r4470 | r4471 | |
| 1885 | 1885 | |
| 1886 | 1886 | AM_RANGE(0x4,0x4) AM_READ(dsp_slave_port4_r) |
| 1887 | 1887 | AM_RANGE(0x5,0x5) AM_READ(dsp_slave_port5_r) |
| 1888 | AM_RANGE(0x6,0x6) AM_WRITE | |
| 1888 | AM_RANGE(0x6,0x6) AM_WRITE | |
| 1889 | 1889 | |
| 1890 | 1890 | /* render device state */ |
| 1891 | AM_RANGE(0x8,0x8) AM_WRITE | |
| 1891 | AM_RANGE(0x8,0x8) AM_WRITE | |
| 1892 | 1892 | |
| 1893 | 1893 | /* render device */ |
| 1894 | 1894 | AM_RANGE(0xb,0xb) AM_WRITE(dsp_slave_portb_w) AM_READ(dsp_slave_portb_r) |
| r4470 | r4471 | |
| 2402 | 2402 | AM_RANGE(0x200000, 0x200003) AM_READ(alpinesa_prot_r) |
| 2403 | 2403 | AM_RANGE(0x300000, 0x300003) AM_WRITE(alpinesa_prot_w) |
| 2404 | 2404 | AM_RANGE(0x000000, 0x3fffff) AM_ROM |
| 2405 | AM_RANGE(0x400000, 0x40001f) AM_READ(namcos22_keycus_r) AM_WRITE | |
| 2405 | AM_RANGE(0x400000, 0x40001f) AM_READ(namcos22_keycus_r) AM_WRITE | |
| 2406 | 2406 | AM_RANGE(0x410000, 0x413fff) AM_RAM /* C139 SCI buffer */ |
| 2407 | AM_RANGE(0x420000, 0x42000f) AM_READ(SMH_NOP) AM_WRITE(SMH_NOP) /* C139 SCI registers */ | |
| 2408 | AM_RANGE(0x430000, 0x43000f) AM_READ(namcos22_gun_r) AM_WRITE(SMH_NOP) /* LEDs? */ | |
| 2407 | AM_RANGE(0x420000, 0x42000f) AM_READNOP AM_WRITENOP /* C139 SCI registers */ | |
| 2408 | AM_RANGE(0x430000, 0x43000f) AM_READ(namcos22_gun_r) AM_WRITENOP /* LEDs? */ | |
| 2409 | 2409 | AM_RANGE(0x440000, 0x440003) AM_READ(namcos22_dipswitch_r) |
| 2410 | 2410 | AM_RANGE(0x450008, 0x45000b) AM_READ(namcos22_portbit_r) AM_WRITE(namcos22_portbit_w) |
| 2411 | 2411 | AM_RANGE(0x460000, 0x463fff) AM_RAM AM_BASE(&namcos22_nvmem) AM_SIZE(&namcos22_nvmem_size) |
| r4470 | r4471 | |
| 2827 | 2827 | * C389? (Cyber Cycles) |
| 2828 | 2828 | * C392? (Ace Driver Victory Lap) |
| 2829 | 2829 | */ |
| 2830 | AM_RANGE(0x20000000, 0x2000000f) AM_READ(namcos22_keycus_r) AM_WRITE | |
| 2830 | AM_RANGE(0x20000000, 0x2000000f) AM_READ(namcos22_keycus_r) AM_WRITE | |
| 2831 | 2831 | |
| 2832 | 2832 | /** |
| 2833 | 2833 | * C139 SCI Buffer |
| r4470 | r4471 | |
| 2923 | 2923 | * zero means not-connected. |
| 2924 | 2924 | * may be related to device at 0x94000000 |
| 2925 | 2925 | */ |
| 2926 | AM_RANGE(0x48000000, 0x4800003f) AM_READ | |
| 2926 | AM_RANGE(0x48000000, 0x4800003f) AM_READ | |
| 2927 | 2927 | |
| 2928 | 2928 | /** |
| 2929 | 2929 | * DIPSW |
| 2930 | 2930 | * 0x50000000 - DIPSW3 |
| 2931 | 2931 | * 0x50000001 - DIPSW2 |
| 2932 | 2932 | */ |
| 2933 | AM_RANGE(0x50000000, 0x50000003) AM_READ(namcos22_dipswitch_r) AM_WRITE | |
| 2933 | AM_RANGE(0x50000000, 0x50000003) AM_READ(namcos22_dipswitch_r) AM_WRITE | |
| 2934 | 2934 | AM_RANGE(0x50000008, 0x5000000b) AM_READ(namcos22_portbit_r) AM_WRITE(namcos22_portbit_w) |
| 2935 | 2935 | |
| 2936 | 2936 | /** |
| r4470 | r4471 | |
| 2979 | 2979 | * +0x0100 - 0x02ff Parameter RAM from Main MPU (for SEs) |
| 2980 | 2980 | * +0x0300 - 0x03ff? Song Title (put messages here from Sound CPU) |
| 2981 | 2981 | */ |
| 2982 | AM_RANGE(0x60000000, 0x60003fff) AM_WRITE | |
| 2982 | AM_RANGE(0x60000000, 0x60003fff) AM_WRITE | |
| 2983 | 2983 | AM_RANGE(0x60004000, 0x6000bfff) AM_READ(namcos22_mcuram_r) AM_WRITE(namcos22_mcuram_w) AM_BASE(&namcos22_shareram) |
| 2984 | 2984 | |
| 2985 | 2985 | /** |
| r4470 | r4471 | |
|---|---|---|
| 73 | 73 | AM_RANGE(0x3000, 0x37ff) AM_WRITE(SMH_RAM) |
| 74 | 74 | AM_RANGE(0x3800, 0x3bff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size) |
| 75 | 75 | AM_RANGE(0x4000, 0x43ff) AM_WRITE(redclash_videoram_w) AM_BASE(&videoram) |
| 76 | AM_RANGE(0x5000, 0x5007) AM_WRITE | |
| 76 | AM_RANGE(0x5000, 0x5007) AM_WRITE | |
| 77 | 77 | AM_RANGE(0x5800, 0x5800) AM_WRITE(redclash_star0_w) |
| 78 | AM_RANGE(0x5801, 0x5804) AM_WRITE | |
| 78 | AM_RANGE(0x5801, 0x5804) AM_WRITE | |
| 79 | 79 | AM_RANGE(0x5805, 0x5805) AM_WRITE(redclash_star1_w) |
| 80 | 80 | AM_RANGE(0x5806, 0x5806) AM_WRITE(redclash_star2_w) |
| 81 | 81 | AM_RANGE(0x5807, 0x5807) AM_WRITE(redclash_flipscreen_w) |
| r4470 | r4471 | |
| 95 | 95 | |
| 96 | 96 | static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 ) |
| 97 | 97 | AM_RANGE(0x0000, 0x2fff) AM_WRITE(SMH_ROM) |
| 98 | // AM_RANGE(0x3000, 0x3000) AM_WRITE(SMH_NOP) | |
| 99 | // AM_RANGE(0x3800, 0x3800) AM_WRITE(SMH_NOP) | |
| 98 | // AM_RANGE(0x3000, 0x3000) AM_WRITENOP | |
| 99 | // AM_RANGE(0x3800, 0x3800) AM_WRITENOP | |
| 100 | 100 | AM_RANGE(0x4000, 0x43ff) AM_WRITE(redclash_videoram_w) AM_BASE(&videoram) |
| 101 | AM_RANGE(0x5000, 0x5007) AM_WRITE | |
| 101 | AM_RANGE(0x5000, 0x5007) AM_WRITE | |
| 102 | 102 | AM_RANGE(0x5800, 0x5800) AM_WRITE(redclash_star0_w) |
| 103 | 103 | AM_RANGE(0x5801, 0x5801) AM_WRITE(redclash_gfxbank_w) |
| 104 | 104 | AM_RANGE(0x5805, 0x5805) AM_WRITE(redclash_star1_w) |
| r4470 | r4471 | |
|---|---|---|
| 527 | 527 | AM_RANGE(0x5040, 0x505f) AM_WRITE(SMH_RAM) AM_BASE(&galaxold_spriteram) AM_SIZE(&galaxold_spriteram_size) |
| 528 | 528 | AM_RANGE(0x5060, 0x507f) AM_WRITE(SMH_RAM) AM_BASE(&galaxold_bulletsram) AM_SIZE(&galaxold_bulletsram_size) |
| 529 | 529 | AM_RANGE(0x5080, 0x50ff) AM_WRITE(SMH_RAM) |
| 530 | AM_RANGE(0x6000, 0x6001) AM_WRITE | |
| 530 | AM_RANGE(0x6000, 0x6001) AM_WRITE | |
| 531 | 531 | AM_RANGE(0x6003, 0x6003) AM_WRITE(galaxold_coin_counter_w) |
| 532 | 532 | AM_RANGE(0x6004, 0x6007) AM_WRITE(galaxian_lfo_freq_w) |
| 533 | 533 | AM_RANGE(0x6800, 0x6802) AM_WRITE(galaxian_background_enable_w) |
| r4470 | r4471 | |
| 575 | 575 | AM_RANGE(0x6804, 0x6804) AM_WRITE(galaxold_stars_enable_w) |
| 576 | 576 | AM_RANGE(0x6806, 0x6806) AM_WRITE(galaxold_flip_screen_x_w) |
| 577 | 577 | AM_RANGE(0x6807, 0x6807) AM_WRITE(galaxold_flip_screen_y_w) |
| 578 | AM_RANGE(0x7006, 0x7006) AM_WRITE(SMH_NOP) | |
| 579 | AM_RANGE(0x7007, 0x7007) AM_WRITE(SMH_NOP) | |
| 578 | AM_RANGE(0x7006, 0x7006) AM_WRITENOP | |
| 579 | AM_RANGE(0x7007, 0x7007) AM_WRITENOP | |
| 580 | 580 | AM_RANGE(0x7800, 0x7800) AM_WRITE(galaxian_pitch_w) |
| 581 | 581 | ADDRESS_MAP_END |
| 582 | 582 | |
| r4470 | r4471 | |
| 703 | 703 | AM_RANGE(0x4c00, 0x4fff) AM_WRITE(galaxold_videoram_w) |
| 704 | 704 | AM_RANGE(0x5000, 0x503f) AM_WRITE(galaxold_attributesram_w) AM_BASE(&galaxold_attributesram) |
| 705 | 705 | AM_RANGE(0x5040, 0x505f) AM_WRITE(SMH_RAM) AM_BASE(&galaxold_spriteram) AM_SIZE(&galaxold_spriteram_size) |
| 706 | AM_RANGE(0x6801, 0x6801) AM_WRITE | |
| 706 | AM_RANGE(0x6801, 0x6801) AM_WRITE | |
| 707 | 707 | AM_RANGE(0x6802, 0x6802) AM_WRITE(galaxold_coin_counter_w) |
| 708 | AM_RANGE(0x6806, 0x6806) AM_WRITE(SMH_NOP) //only one 0 at reset | |
| 709 | AM_RANGE(0x6807, 0x6807) AM_WRITE(SMH_NOP) //only one 0 at reset | |
| 710 | AM_RANGE(0x8103, 0x8103) AM_WRITE(SMH_NOP) //only one 9b at reset | |
| 708 | AM_RANGE(0x6806, 0x6806) AM_WRITENOP //only one 0 at reset | |
| 709 | AM_RANGE(0x6807, 0x6807) AM_WRITENOP //only one 0 at reset | |
| 710 | AM_RANGE(0x8103, 0x8103) AM_WRITENOP //only one 9b at reset | |
| 711 | 711 | ADDRESS_MAP_END |
| 712 | 712 | |
| 713 | 713 | static ADDRESS_MAP_START( ozon1_io_map, ADDRESS_SPACE_IO, 8 ) |
| r4470 | r4471 | |
| 723 | 723 | AM_RANGE(0x1503, 0x1503) AM_MIRROR(0x6000) AM_WRITE(galaxold_coin_counter_w) |
| 724 | 724 | AM_RANGE(0x1580, 0x1580) AM_MIRROR(0x6000) AM_READ_PORT("IN1") |
| 725 | 725 | AM_RANGE(0x1580, 0x1582) AM_MIRROR(0x6000) AM_WRITE(galaxian_background_enable_w) |
| 726 | AM_RANGE(0x1583, 0x1583) AM_MIRROR(0x6000) AM_WRITE(SMH_NOP) | |
| 727 | AM_RANGE(0x1585, 0x1585) AM_MIRROR(0x6000) AM_WRITE(SMH_NOP) | |
| 726 | AM_RANGE(0x1583, 0x1583) AM_MIRROR(0x6000) AM_WRITENOP | |
| 727 | AM_RANGE(0x1585, 0x1585) AM_MIRROR(0x6000) AM_WRITENOP | |
| 728 | 728 | AM_RANGE(0x1586, 0x1587) AM_MIRROR(0x6000) AM_WRITE(galaxian_lfo_freq_w) |
| 729 | 729 | AM_RANGE(0x1600, 0x1600) AM_MIRROR(0x6000) AM_READ_PORT("DSW0") AM_WRITE(galaxian_pitch_w) |
| 730 | 730 | AM_RANGE(0x1700, 0x1700) AM_MIRROR(0x6000) AM_READ_PORT("DSW1") AM_WRITENOP |
| 731 | AM_RANGE(0x1701, 0x1701) AM_MIRROR(0x6000) AM_WRITE | |
| 731 | AM_RANGE(0x1701, 0x1701) AM_MIRROR(0x6000) AM_WRITE | |
| 732 | 732 | AM_RANGE(0x1704, 0x1707) AM_MIRROR(0x6000) AM_WRITE(galaxian_vol_w) |
| 733 | 733 | AM_RANGE(0x1800, 0x1bff) AM_MIRROR(0x6000) AM_WRITE(galaxold_videoram_w) AM_BASE(&galaxold_videoram) |
| 734 | 734 | AM_RANGE(0x1c00, 0x1fff) AM_MIRROR(0x6000) AM_RAM |
| r4470 | r4471 | |
| 745 | 745 | static ADDRESS_MAP_START( bongo, ADDRESS_SPACE_PROGRAM, 8 ) |
| 746 | 746 | AM_RANGE(0x0000, 0x5fff) AM_ROM |
| 747 | 747 | AM_RANGE(0x8000, 0x83ff) AM_RAM |
| 748 | AM_RANGE(0x8400, 0x87ff) AM_WRITE | |
| 748 | AM_RANGE(0x8400, 0x87ff) AM_WRITE | |
| 749 | 749 | AM_RANGE(0x9000, 0x93ff) AM_RAM_WRITE(galaxold_videoram_w) AM_BASE(&galaxold_videoram) |
| 750 | AM_RANGE(0x9400, 0x97ff) AM_WRITE | |
| 750 | AM_RANGE(0x9400, 0x97ff) AM_WRITE | |
| 751 | 751 | AM_RANGE(0x9800, 0x983f) AM_RAM_WRITE(galaxold_attributesram_w) AM_BASE(&galaxold_attributesram) |
| 752 | 752 | AM_RANGE(0x9840, 0x985f) AM_RAM AM_BASE(&galaxold_spriteram) AM_SIZE(&galaxold_spriteram_size) |
| 753 | 753 | AM_RANGE(0x9860, 0x987f) AM_RAM AM_BASE(&galaxold_bulletsram) AM_SIZE(&galaxold_bulletsram_size) |
| r4470 | r4471 | |
| 776 | 776 | AM_RANGE(0x1503, 0x1503) AM_MIRROR(0x6000) AM_WRITE(galaxold_coin_counter_w) |
| 777 | 777 | AM_RANGE(0x1580, 0x1580) AM_MIRROR(0x6000) AM_READ_PORT("IN1") |
| 778 | 778 | AM_RANGE(0x1580, 0x1582) AM_MIRROR(0x6000) AM_WRITE(galaxian_background_enable_w) |
| 779 | AM_RANGE(0x1583, 0x1583) AM_MIRROR(0x6000) AM_WRITE | |
| 779 | AM_RANGE(0x1583, 0x1583) AM_MIRROR(0x6000) AM_WRITE | |
| 780 | 780 | AM_RANGE(0x1584, 0x1587) AM_MIRROR(0x6000) AM_WRITE(galaxian_lfo_freq_w) |
| 781 | 781 | AM_RANGE(0x1600, 0x1600) AM_MIRROR(0x6000) AM_READ_PORT("DSW0") |
| 782 | AM_RANGE(0x1600, 0x1601) AM_MIRROR(0x6000) AM_WRITE(SMH_NOP) | |
| 783 | AM_RANGE(0x1604, 0x1604) AM_MIRROR(0x6000) AM_WRITE(SMH_NOP) | |
| 782 | AM_RANGE(0x1600, 0x1601) AM_MIRROR(0x6000) AM_WRITENOP | |
| 783 | AM_RANGE(0x1604, 0x1604) AM_MIRROR(0x6000) AM_WRITENOP | |
| 784 | 784 | AM_RANGE(0x1606, 0x1606) AM_MIRROR(0x6000) AM_WRITE(galaxold_flip_screen_x_w) |
| 785 | 785 | AM_RANGE(0x1607, 0x1607) AM_MIRROR(0x6000) AM_WRITE(galaxold_flip_screen_y_w) |
| 786 | 786 | AM_RANGE(0x1680, 0x1680) AM_MIRROR(0x6000) AM_READWRITE(SMH_NOP, galaxian_pitch_w) |
| r4470 | r4471 | |
| 792 | 792 | ADDRESS_MAP_END |
| 793 | 793 | |
| 794 | 794 | static ADDRESS_MAP_START( hunchbkg_io, ADDRESS_SPACE_IO, 8 ) |
| 795 | AM_RANGE(S2650_DATA_PORT, S2650_DATA_PORT) AM_READ | |
| 795 | AM_RANGE(S2650_DATA_PORT, S2650_DATA_PORT) AM_READ | |
| 796 | 796 | AM_RANGE(S2650_SENSE_PORT, S2650_SENSE_PORT) AM_READ_PORT("SENSE") |
| 797 | 797 | ADDRESS_MAP_END |
| 798 | 798 | |
| r4470 | r4471 | |
| 910 | 910 | AM_RANGE(0xc405, 0xc405) AM_WRITE(galaxian_shoot_enable_w) |
| 911 | 911 | AM_RANGE(0xc406, 0xc407) AM_WRITE(galaxian_vol_w) |
| 912 | 912 | AM_RANGE(0xc801, 0xc801) AM_WRITE(galaxold_nmi_enable_w) |
| 913 | AM_RANGE(0xc804, 0xc804) AM_WRITE | |
| 913 | AM_RANGE(0xc804, 0xc804) AM_WRITE | |
| 914 | 914 | AM_RANGE(0xc806, 0xc806) AM_WRITE(galaxold_flip_screen_x_w) |
| 915 | 915 | AM_RANGE(0xc807, 0xc807) AM_WRITE(galaxold_flip_screen_y_w) |
| 916 | 916 | AM_RANGE(0xcc00, 0xcc00) AM_WRITE(galaxian_pitch_w) |
| r4470 | r4471 | |
| 928 | 928 | ADDRESS_MAP_END |
| 929 | 929 | |
| 930 | 930 | static ADDRESS_MAP_START( kkgalax_writemem, ADDRESS_SPACE_PROGRAM, 8 ) |
| 931 | AM_RANGE(0x0000, 0x5fff) AM_WRITE | |
| 931 | AM_RANGE(0x0000, 0x5fff) AM_WRITE | |
| 932 | 932 | AM_RANGE(0x6000, 0x6fff) AM_WRITE(SMH_RAM) |
| 933 | 933 | AM_RANGE(0x9000, 0x93ff) AM_WRITE(galaxold_videoram_w) AM_BASE(&galaxold_videoram) |
| 934 | 934 | AM_RANGE(0x9800, 0x983f) AM_WRITE(galaxold_attributesram_w) AM_BASE(&galaxold_attributesram) |
| r4470 | r4471 | |
| 944 | 944 | // AM_RANGE(0xc405, 0xc405) AM_WRITE(galaxian) |
| 945 | 945 | // AM_RANGE(0xc406, 0xc407) AM_WRITE(galaxian_vol_w) |
| 946 | 946 | AM_RANGE(0xb001, 0xb001) AM_WRITE(galaxold_nmi_enable_w) |
| 947 | // AM_RANGE(0xc804, 0xc804) AM_WRITE | |
| 947 | // AM_RANGE(0xc804, 0xc804) AM_WRITE | |
| 948 | 948 | // AM_RANGE(0xc806, 0xc806) AM_WRITE(galaxold_flip_screen_x_w) |
| 949 | 949 | // AM_RANGE(0xc807, 0xc807) AM_WRITE(galaxold_flip_screen_y_w) |
| 950 | 950 | // AM_RANGE(0xcc00, 0xcc00) AM_WRITE(galaxian_pitch_w) |
| r4470 | r4471 | |
|---|---|---|
| 805 | 805 | AM_RANGE(0x2500, 0x2502) AM_WRITE(coin_count_w) |
| 806 | 806 | AM_RANGE(0x2503, 0x2504) AM_WRITE(led_w) |
| 807 | 807 | AM_RANGE(0x2505, 0x2505) AM_WRITE(input_select_w) |
| 808 | // AM_RANGE(0x2506, 0x2507) AM_WRITE | |
| 808 | // AM_RANGE(0x2506, 0x2507) AM_WRITE | |
| 809 | 809 | AM_RANGE(0x2580, 0x2583) AM_WRITE(mazeinv_input_select_w) |
| 810 | 810 | AM_RANGE(0x2600, 0x2600) AM_WRITE(irq_ack_w) |
| 811 | 811 | AM_RANGE(0x2680, 0x2680) AM_WRITE(watchdog_reset_w) |
| r4470 | r4471 | |
|---|---|---|
| 664 | 664 | AM_RANGE(0x320000, 0x32000f) AM_READWRITE(TC0100SCN_ctrl_word_0_r,TC0100SCN_ctrl_word_0_w) |
| 665 | 665 | AM_RANGE(0x400000, 0x40bfff) AM_RAM AM_BASE(&wgp_spritemap) AM_SIZE(&wgp_spritemap_size) /* sprite tilemaps */ |
| 666 | 666 | AM_RANGE(0x40c000, 0x40dfff) AM_RAM AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) /* sprite ram */ |
| 667 | AM_RANGE(0x40fff0, 0x40fff1) AM_WRITE | |
| 667 | AM_RANGE(0x40fff0, 0x40fff1) AM_WRITE | |
| 668 | 668 | AM_RANGE(0x500000, 0x501fff) AM_RAM /* unknown/unused */ |
| 669 | 669 | AM_RANGE(0x502000, 0x517fff) AM_READWRITE(wgp_pivram_word_r,wgp_pivram_word_w) AM_BASE(&wgp_pivram) /* piv tilemaps */ |
| 670 | 670 | AM_RANGE(0x520000, 0x52001f) AM_READWRITE(wgp_piv_ctrl_word_r,wgp_piv_ctrl_word_w) AM_BASE(&wgp_piv_ctrlram) |
| r4470 | r4471 | |
| 694 | 694 | AM_RANGE(0xe000, 0xe003) AM_DEVREADWRITE("ym", ym2610_r, ym2610_w) |
| 695 | 695 | AM_RANGE(0xe200, 0xe200) AM_READWRITE(SMH_NOP,taitosound_slave_port_w) |
| 696 | 696 | AM_RANGE(0xe201, 0xe201) AM_READWRITE(taitosound_slave_comm_r,taitosound_slave_comm_w) |
| 697 | AM_RANGE(0xe400, 0xe403) AM_WRITE(SMH_NOP) /* pan */ | |
| 698 | AM_RANGE(0xea00, 0xea00) AM_READ(SMH_NOP) | |
| 699 | AM_RANGE(0xee00, 0xee00) AM_WRITE(SMH_NOP) /* ? */ | |
| 700 | AM_RANGE(0xf000, 0xf000) AM_WRITE(SMH_NOP) /* ? */ | |
| 697 | AM_RANGE(0xe400, 0xe403) AM_WRITENOP /* pan */ | |
| 698 | AM_RANGE(0xea00, 0xea00) AM_READNOP | |
| 699 | AM_RANGE(0xee00, 0xee00) AM_WRITENOP /* ? */ | |
| 700 | AM_RANGE(0xf000, 0xf000) AM_WRITENOP /* ? */ | |
| 701 | 701 | AM_RANGE(0xf200, 0xf200) AM_WRITE(sound_bankswitch_w) |
| 702 | 702 | ADDRESS_MAP_END |
| 703 | 703 |
| r4470 | r4471 | |
|---|---|---|
| 383 | 383 | AM_RANGE(0xfff008, 0xfff009) AM_WRITE(sound_command_w) |
| 384 | 384 | AM_RANGE(0xfff00a, 0xfff00b) AM_READ_PORT("EXTRA") /* P3+P4 Coin + Start Buttons */ |
| 385 | 385 | AM_RANGE(0xfff00c, 0xfff00d) AM_READ_PORT("DSW1") |
| 386 | AM_RANGE(0xfff00c, 0xfff00d) AM_WRITE | |
| 386 | AM_RANGE(0xfff00c, 0xfff00d) AM_WRITE | |
| 387 | 387 | AM_RANGE(0xfff00e, 0xfff00f) AM_READ_PORT("DSW2") |
| 388 | AM_RANGE(0xfff00e, 0xfff00f) AM_WRITE | |
| 388 | AM_RANGE(0xfff00e, 0xfff00f) AM_WRITE | |
| 389 | 389 | ADDRESS_MAP_END |
| 390 | 390 | |
| 391 | 391 | static ADDRESS_MAP_START( sound_map, ADDRESS_SPACE_PROGRAM, 8 ) |
| r4470 | r4471 | |
|---|---|---|
| 140 | 140 | AM_RANGE(0x1d05, 0x1d05) AM_WRITE(SMH_RAM) AM_BASE(&sprint8_team) |
| 141 | 141 | AM_RANGE(0x1d06, 0x1d06) AM_WRITE(sprint8_attract_w) |
| 142 | 142 | AM_RANGE(0x1e00, 0x1e07) AM_WRITE(sprint8_motor_w) |
| 143 | AM_RANGE(0x1f00, 0x1f00) AM_WRITE | |
| 143 | AM_RANGE(0x1f00, 0x1f00) AM_WRITE | |
| 144 | 144 | AM_RANGE(0x2000, 0x3fff) AM_WRITE(SMH_ROM) |
| 145 | 145 | AM_RANGE(0xf800, 0xffff) AM_WRITE(SMH_ROM) |
| 146 | 146 | ADDRESS_MAP_END |
| r4470 | r4471 | |
|---|---|---|
| 73 | 73 | AM_RANGE(0x2000, 0x23ff) AM_WRITE(SMH_RAM) AM_BASE(&btime_videoram) AM_SIZE(&btime_videoram_size) |
| 74 | 74 | AM_RANGE(0x2400, 0x27ff) AM_WRITE(SMH_RAM) AM_BASE(&btime_colorram) |
| 75 | 75 | AM_RANGE(0x2800, 0x2bff) AM_WRITE(btime_mirrorvideoram_w) |
| 76 | AM_RANGE(0x4000, 0x4000) AM_WRITE | |
| 76 | AM_RANGE(0x4000, 0x4000) AM_WRITE | |
| 77 | 77 | AM_RANGE(0x4001, 0x4001) AM_WRITE(btime_video_control_w) |
| 78 | 78 | AM_RANGE(0x4004, 0x4005) AM_DEVWRITE("ay1", ay8910_address_data_w) |
| 79 | 79 | AM_RANGE(0x4006, 0x4007) AM_DEVWRITE("ay2", ay8910_address_data_w) |
| r4470 | r4471 | |
| 100 | 100 | AM_RANGE(0x1800, 0x1bff) AM_WRITE(btime_mirrorvideoram_w) |
| 101 | 101 | AM_RANGE(0x1c00, 0x1fff) AM_WRITE(btime_mirrorcolorram_w) |
| 102 | 102 | AM_RANGE(0x2000, 0x2000) AM_WRITE(btime_video_control_w) |
| 103 | AM_RANGE(0x2001, 0x2001) AM_WRITE | |
| 103 | AM_RANGE(0x2001, 0x2001) AM_WRITE | |
| 104 | 104 | AM_RANGE(0x2004, 0x2005) AM_DEVWRITE("ay1", ay8910_address_data_w) |
| 105 | 105 | AM_RANGE(0x2006, 0x2007) AM_DEVWRITE("ay2", ay8910_address_data_w) |
| 106 | 106 | AM_RANGE(0x3000, 0x7fff) AM_WRITE(SMH_ROM) |
| r4470 | r4471 | |
| 389 | 389 | } |
| 390 | 390 | |
| 391 | 391 | |
| 392 | GAME( 198?, dommy, 0, dommy, scregg, 0, ROT270, "Technos", "Dommy", 0 ) | |
| 393 | GAME( 1983, scregg, 0, scregg, scregg, 0, ROT270, "Technos", "Scrambled Egg", 0 ) | |
| 394 | GAME( 1983, eggs, scregg, scregg, scregg, 0, ROT270, "[Technos] Universal USA", "Eggs", 0 ) | |
| 392 | GAME( 198?, dommy, 0, dommy, scregg, 0, ROT270, "Technos Japan", "Dommy", 0 ) | |
| 393 | GAME( 1983, scregg, 0, scregg, scregg, 0, ROT270, "Technos Japan", "Scrambled Egg", 0 ) | |
| 394 | GAME( 1983, eggs, scregg, scregg, scregg, 0, ROT270, "[Technos Japan] Universal USA", "Eggs", 0 ) | |
| 395 | 395 | GAME( 1983, rockduck, 0, scregg, rockduck, rockduck, ROT270, "Datel SAS", "Rock Duck (prototype?)", GAME_WRONG_COLORS ) |
| r4470 | r4471 | |
|---|---|---|
| 257 | 257 | AM_RANGE(0x000000, 0x05ffff) AM_WRITE(SMH_ROM) |
| 258 | 258 | |
| 259 | 259 | /* These locations aren't real! They are just there so memory is allocated */ |
| 260 | AM_RANGE(0x232000, 0x23207f) AM_WRITE(SMH_NOP) AM_BASE(&dec0_pf2_colscroll) | |
| 261 | AM_RANGE(0x232400, 0x2327ff) AM_WRITE(SMH_NOP) AM_BASE(&dec0_pf2_rowscroll) | |
| 262 | AM_RANGE(0x23c000, 0x23c07f) AM_WRITE(SMH_NOP) AM_BASE(&dec0_pf1_colscroll) | |
| 263 | AM_RANGE(0x23c400, 0x23c7ff) AM_WRITE(SMH_NOP) AM_BASE(&dec0_pf1_rowscroll) | |
| 264 | AM_RANGE(0x200000, 0x2007ff) AM_WRITE(SMH_NOP) AM_BASE(&dec0_pf2_data) | |
| 265 | AM_RANGE(0x202000, 0x203fff) AM_WRITE(SMH_NOP) AM_BASE(&dec0_pf1_data) | |
| 260 | AM_RANGE(0x232000, 0x23207f) AM_WRITENOP AM_BASE(&dec0_pf2_colscroll) | |
| 261 | AM_RANGE(0x232400, 0x2327ff) AM_WRITENOP AM_BASE(&dec0_pf2_rowscroll) | |
| 262 | AM_RANGE(0x23c000, 0x23c07f) AM_WRITENOP AM_BASE(&dec0_pf1_colscroll) | |
| 263 | AM_RANGE(0x23c400, 0x23c7ff) AM_WRITENOP AM_BASE(&dec0_pf1_rowscroll) | |
| 264 | AM_RANGE(0x200000, 0x2007ff) AM_WRITENOP AM_BASE(&dec0_pf2_data) | |
| 265 | AM_RANGE(0x202000, 0x203fff) AM_WRITENOP AM_BASE(&dec0_pf1_data) | |
| 266 | 266 | |
| 267 | AM_RANGE(0x244000, 0x244001) AM_WRITE | |
| 267 | AM_RANGE(0x244000, 0x244001) AM_WRITE | |
| 268 | 268 | |
| 269 | 269 | /* The location of p1 & pf2 can change between these according to protection */ |
| 270 | 270 | AM_RANGE(0x240000, 0x241fff) AM_WRITE(slyspy_240000_w) |
| r4470 | r4471 | |
| 287 | 287 | AM_RANGE(0x308000, 0x3087ff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) |
| 288 | 288 | AM_RANGE(0x310000, 0x3107ff) AM_WRITE(paletteram16_xxxxBBBBGGGGRRRR_word_w) AM_BASE(&paletteram16) |
| 289 | 289 | AM_RANGE(0x314000, 0x314003) AM_WRITE(slyspy_control_w) |
| 290 | AM_RANGE(0x31c000, 0x31c00f) AM_WRITE | |
| 290 | AM_RANGE(0x31c000, 0x31c00f) AM_WRITE | |
| 291 | 291 | ADDRESS_MAP_END |
| 292 | 292 | |
| 293 | 293 | static ADDRESS_MAP_START( midres_readmem, ADDRESS_SPACE_PROGRAM, 16 ) |
| r4470 | r4471 | |
| 310 | 310 | AM_RANGE(0x120000, 0x1207ff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) |
| 311 | 311 | AM_RANGE(0x140000, 0x1407ff) AM_WRITE(paletteram16_xxxxBBBBGGGGRRRR_word_w) AM_BASE(&paletteram16) |
| 312 | 312 | AM_RANGE(0x160000, 0x160001) AM_WRITE(dec0_priority_w) |
| 313 | AM_RANGE(0x180008, 0x18000f) AM_WRITE | |
| 313 | AM_RANGE(0x180008, 0x18000f) AM_WRITE | |
| 314 | 314 | AM_RANGE(0x1a0000, 0x1a0001) AM_WRITE(midres_sound_w) |
| 315 | 315 | |
| 316 | 316 | AM_RANGE(0x200000, 0x200007) AM_WRITE(dec0_pf2_control_0_w) |
| r4470 | r4471 | |
| 353 | 353 | /* Physical memory map (21 bits) */ |
| 354 | 354 | static ADDRESS_MAP_START( slyspy_s_readmem, ADDRESS_SPACE_PROGRAM, 8 ) |
| 355 | 355 | AM_RANGE(0x000000, 0x00ffff) AM_READ(SMH_ROM) |
| 356 | AM_RANGE(0x0a0000, 0x0a0001) AM_READ | |
| 356 | AM_RANGE(0x0a0000, 0x0a0001) AM_READ | |
| 357 | 357 | AM_RANGE(0x0e0000, 0x0e0001) AM_DEVREAD("oki", okim6295_r) |
| 358 | 358 | AM_RANGE(0x0f0000, 0x0f0001) AM_READ(soundlatch_r) |
| 359 | 359 | AM_RANGE(0x1f0000, 0x1f1fff) AM_READ(SMH_BANK8) |
| r4470 | r4471 | |
|---|---|---|
| 447 | 447 | AM_RANGE(0x160000, 0x17ffff) AM_WRITE(SMH_RAM) \ |
| 448 | 448 | AM_RANGE(0x1c0000, 0x1c007f) AM_WRITE(ssv_scroll_w) AM_BASE(&ssv_scroll ) /*Scroll */ \ |
| 449 | 449 | AM_RANGE(0x21000e, 0x21000f) AM_WRITE(ssv_lockout_w) /*Lockout */ \ |
| 450 | AM_RANGE(0x210010, 0x210011) AM_WRITE | |
| 450 | AM_RANGE(0x210010, 0x210011) AM_WRITE | |
| 451 | 451 | AM_RANGE(0x230000, 0x230071) AM_WRITE(SMH_RAM) AM_BASE(&ssv_irq_vectors) /* IRQ Vectors */ \ |
| 452 | 452 | AM_RANGE(0x240000, 0x240071) AM_WRITE(ssv_irq_ack_w ) /* IRQ Ack */ \ |
| 453 | 453 | AM_RANGE(0x260000, 0x260001) AM_WRITE(ssv_irq_enable_w) /* IRQ Enable */ \ |
| r4470 | r4471 | |
|---|---|---|
| 388 | 388 | AM_RANGE(0xa00000, 0xa00007) AM_READ(stick_input_r) |
| 389 | 389 | AM_RANGE(0xa00100, 0xa00107) AM_READ(stick2_input_r) |
| 390 | 390 | AM_RANGE(0xa00200, 0xa0020f) AM_READWRITE(TC0220IOC_halfword_r, TC0220IOC_halfword_w) /* other I/O */ |
| 391 | AM_RANGE(0xa80000, 0xa80001) AM_READWRITE(SMH_NOP, taitosound_port16_lsb_w) | |
| 392 | AM_RANGE(0xa80002, 0xa80003) AM_READWRITE(taitosound_comm16_lsb_r, taitosound_comm16_lsb_w) | |
| 391 | AM_RANGE(0xa80000, 0xa80001) AM_READNOP AM_WRITE8(taitosound_port_w, 0x00ff) | |
| 392 | AM_RANGE(0xa80002, 0xa80003) AM_READWRITE8(taitosound_comm_r, taitosound_comm_w, 0x00ff) | |
| 393 | 393 | AM_RANGE(0xb00000, 0xb007ff) AM_RAM /* "power common ram" (mecha drive) */ |
| 394 | 394 | ADDRESS_MAP_END |
| 395 | 395 | |
| r4470 | r4471 | |
| 402 | 402 | AM_RANGE(0xe000, 0xe003) AM_DEVREADWRITE("ym", ym2610_r, ym2610_w) |
| 403 | 403 | AM_RANGE(0xe200, 0xe200) AM_READWRITE(SMH_NOP, taitosound_slave_port_w) |
| 404 | 404 | AM_RANGE(0xe201, 0xe201) AM_READWRITE(taitosound_slave_comm_r, taitosound_slave_comm_w) |
| 405 | AM_RANGE(0xe400, 0xe403) AM_WRITE(SMH_NOP) /* pan control */ | |
| 406 | AM_RANGE(0xea00, 0xea00) AM_READ(SMH_NOP) | |
| 407 | AM_RANGE(0xee00, 0xee00) AM_WRITE(SMH_NOP) /* ? */ | |
| 408 | AM_RANGE(0xf000, 0xf000) AM_WRITE(SMH_NOP) /* ? */ | |
| 405 | AM_RANGE(0xe400, 0xe403) AM_WRITENOP /* pan control */ | |
| 406 | AM_RANGE(0xea00, 0xea00) AM_READNOP | |
| 407 | AM_RANGE(0xee00, 0xee00) AM_WRITENOP /* ? */ | |
| 408 | AM_RANGE(0xf000, 0xf000) AM_WRITENOP /* ? */ | |
| 409 | 409 | AM_RANGE(0xf200, 0xf200) AM_WRITE(sound_bankswitch_w) |
| 410 | 410 | ADDRESS_MAP_END |
| 411 | 411 |
| r4470 | r4471 | |
|---|---|---|
| 181 | 181 | AM_RANGE(0x1c00, 0x1fff) AM_RAM_WRITE(tceptor_tile_attr_w) AM_BASE(&tceptor_tile_attr) |
| 182 | 182 | AM_RANGE(0x2000, 0x3fff) AM_RAM_WRITE(tceptor_bg_ram_w) AM_BASE(&tceptor_bg_ram) // background (VIEW RAM) |
| 183 | 183 | AM_RANGE(0x4000, 0x43ff) AM_DEVREADWRITE("namco", namcos1_cus30_r, namcos1_cus30_w) |
| 184 | AM_RANGE(0x4800, 0x4800) AM_WRITE(SMH_NOP) // 3D scope left/right? | |
| 185 | AM_RANGE(0x4f00, 0x4f00) AM_READ(SMH_NOP) // unknown | |
| 184 | AM_RANGE(0x4800, 0x4800) AM_WRITENOP // 3D scope left/right? | |
| 185 | AM_RANGE(0x4f00, 0x4f00) AM_READNOP // unknown | |
| 186 | 186 | AM_RANGE(0x4f01, 0x4f01) AM_READ_PORT("PEDAL") // analog input (accel) |
| 187 | 187 | AM_RANGE(0x4f02, 0x4f02) AM_READ_PORT("STICKX") // analog input (left/right) |
| 188 | 188 | AM_RANGE(0x4f03, 0x4f03) AM_READ_PORT("STICKY") // analog input (up/down) |
| 189 | AM_RANGE(0x4f00, 0x4f03) AM_WRITE | |
| 189 | AM_RANGE(0x4f00, 0x4f03) AM_WRITE | |
| 190 | 190 | AM_RANGE(0x5000, 0x5006) AM_WRITE(tceptor_bg_scroll_w) // bg scroll |
| 191 | 191 | AM_RANGE(0x6000, 0x7fff) AM_RAM AM_SHARE(1) AM_BASE(&m68k_shared_ram) // COM RAM |
| 192 | 192 | AM_RANGE(0x8000, 0x8000) AM_WRITE(m6809_irq_disable_w) |
| r4470 | r4471 | |
|---|---|---|
| 141 | 141 | |
| 142 | 142 | static ADDRESS_MAP_START( sound_readmem, ADDRESS_SPACE_PROGRAM, 8 ) |
| 143 | 143 | AM_RANGE(0x0000, 0x7fff) AM_READ(SMH_ROM) |
| 144 | AM_RANGE(0x8000, 0x8000) AM_READ | |
| 144 | AM_RANGE(0x8000, 0x8000) AM_READ | |
| 145 | 145 | AM_RANGE(0xc000, 0xc7ff) AM_READ(SMH_RAM) |
| 146 | 146 | ADDRESS_MAP_END |
| 147 | 147 | |
| r4470 | r4471 | |
| 165 | 165 | static ADDRESS_MAP_START( mightguy_audio_io_map, ADDRESS_SPACE_IO, 8 ) |
| 166 | 166 | ADDRESS_MAP_GLOBAL_MASK(0xff) |
| 167 | 167 | AM_RANGE(0x00, 0x01) AM_DEVWRITE("ym", ym3526_w) |
| 168 | AM_RANGE(0x02, 0x02) AM_WRITE(SMH_NOP) /* 1412M2? */ | |
| 169 | AM_RANGE(0x03, 0x03) AM_WRITE(SMH_NOP) /* 1412M2? */ | |
| 168 | AM_RANGE(0x02, 0x02) AM_WRITENOP /* 1412M2? */ | |
| 169 | AM_RANGE(0x03, 0x03) AM_WRITENOP /* 1412M2? */ | |
| 170 | 170 | AM_RANGE(0x03, 0x03) AM_READ(kludge) /* 1412M2? */ |
| 171 | 171 | AM_RANGE(0x06, 0x06) AM_READ(cop01_sound_command_r) |
| 172 | 172 | ADDRESS_MAP_END |
| r4470 | r4471 | |
|---|---|---|
| 83 | 83 | AM_RANGE(0x260030, 0x260031) AM_READ(atarigen_sound_r) |
| 84 | 84 | AM_RANGE(0x2e0000, 0x2e0001) AM_WRITE(watchdog_reset16_w) |
| 85 | 85 | AM_RANGE(0x360000, 0x360001) AM_WRITE(atarigen_scanline_int_ack_w) |
| 86 | AM_RANGE(0x360010, 0x360011) AM_WRITE | |
| 86 | AM_RANGE(0x360010, 0x360011) AM_WRITE | |
| 87 | 87 | AM_RANGE(0x360020, 0x360021) AM_WRITE(atarigen_sound_reset_w) |
| 88 | 88 | AM_RANGE(0x360030, 0x360031) AM_WRITE(atarigen_sound_w) |
| 89 | 89 | AM_RANGE(0x3e0000, 0x3e0fff) AM_RAM_WRITE(vindictr_paletteram_w) AM_BASE(&paletteram16) |
| r4470 | r4471 | |
|---|---|---|
| 149 | 149 | AM_RANGE(0xd80014, 0xd8001f) AM_WRITE(SMH_RAM) AM_BASE(&aquarium_scroll) |
| 150 | 150 | AM_RANGE(0xd80068, 0xd80069) AM_WRITENOP /* probably not used */ |
| 151 | 151 | AM_RANGE(0xd80080, 0xd80081) AM_READ_PORT("DSW") |
| 152 | AM_RANGE(0xd80082, 0xd80083) AM_READ | |
| 152 | AM_RANGE(0xd80082, 0xd80083) AM_READ | |
| 153 | 153 | AM_RANGE(0xd80084, 0xd80085) AM_READ_PORT("INPUTS") |
| 154 | 154 | AM_RANGE(0xd80086, 0xd80087) AM_READ(aquarium_coins_r) |
| 155 | 155 | AM_RANGE(0xd80088, 0xd80089) AM_WRITENOP /* ?? video related */ |
| r4470 | r4471 | |
|---|---|---|
| 1971 | 1971 | static ADDRESS_MAP_START( blzntrnd_sound_writeport, ADDRESS_SPACE_IO, 8 ) |
| 1972 | 1972 | ADDRESS_MAP_GLOBAL_MASK(0xff) |
| 1973 | 1973 | AM_RANGE(0x00, 0x00) AM_WRITE(blzntrnd_sh_bankswitch_w) |
| 1974 | AM_RANGE(0x40, 0x40) AM_WRITE | |
| 1974 | AM_RANGE(0x40, 0x40) AM_WRITE | |
| 1975 | 1975 | AM_RANGE(0x80, 0x83) AM_DEVWRITE("ym", ym2610_w) |
| 1976 | 1976 | ADDRESS_MAP_END |
| 1977 | 1977 | |
| r4470 | r4471 | |
| 2015 | 2015 | AM_RANGE(0x400000, 0x43ffff) AM_WRITE(metro_K053936_w) AM_BASE(&metro_K053936_ram ) // 053936 |
| 2016 | 2016 | AM_RANGE(0x500000, 0x500fff) AM_WRITE(SMH_RAM) AM_BASE(&K053936_0_linectrl) // 053936 line control |
| 2017 | 2017 | AM_RANGE(0x600000, 0x60001f) AM_WRITE(SMH_RAM) AM_BASE(&K053936_0_ctrl ) // 053936 control |
| 2018 | AM_RANGE(0xe00000, 0xe00001) AM_WRITE | |
| 2018 | AM_RANGE(0xe00000, 0xe00001) AM_WRITE | |
| 2019 | 2019 | AM_RANGE(0xe00002, 0xe00003) AM_WRITE(blzntrnd_sound_w) |
| 2020 | 2020 | AM_RANGE(0xff0000, 0xffffff) AM_WRITE(SMH_RAM ) // RAM |
| 2021 | 2021 | ADDRESS_MAP_END |
| r4470 | r4471 | |
| 2069 | 2069 | AM_RANGE(0x478836, 0x478837) AM_WRITE(watchdog_reset16_w ) // Watchdog |
| 2070 | 2070 | AM_RANGE(0x478860, 0x47886b) AM_WRITE(metro_window_w) AM_BASE(&metro_window ) // Tilemap Window |
| 2071 | 2071 | AM_RANGE(0x478850, 0x47885b) AM_WRITE(SMH_RAM) AM_BASE(&metro_scroll ) // Scroll Regs |
| 2072 | AM_RANGE(0x478888, 0x478889) AM_WRITE | |
| 2072 | AM_RANGE(0x478888, 0x478889) AM_WRITE | |
| 2073 | 2073 | AM_RANGE(0x479700, 0x479713) AM_WRITE(SMH_RAM) AM_BASE(&metro_videoregs ) // Video Registers |
| 2074 | 2074 | AM_RANGE(0xc00000, 0xc00003) AM_DEVWRITE8("ym", ym2413_w, 0x00ff) |
| 2075 | 2075 | AM_RANGE(0x800000, 0x800001) AM_DEVWRITE("oki", mouja_sound_rombank_w ) |
| r4470 | r4471 | |
|---|---|---|
| 238 | 238 | |
| 239 | 239 | static ADDRESS_MAP_START( main_portmap, ADDRESS_SPACE_IO, 8 ) |
| 240 | 240 | ADDRESS_MAP_GLOBAL_MASK(0xff) |
| 241 | AM_RANGE(0x00, 0x00) AM_WRITE | |
| 241 | AM_RANGE(0x00, 0x00) AM_WRITE | |
| 242 | 242 | AM_RANGE(0x42, 0x42) AM_WRITE(angelkds_cpu_bank_write) |
| 243 | AM_RANGE(0x43, 0x43) AM_WRITE | |
| 243 | AM_RANGE(0x43, 0x43) AM_WRITE | |
| 244 | 244 | AM_RANGE(0x40, 0x40) AM_READ_PORT("I40") /* "Coinage" Dip Switches */ |
| 245 | 245 | AM_RANGE(0x41, 0x41) AM_READ_PORT("I41") /* Other Dip Switches */ |
| 246 | 246 | AM_RANGE(0x42, 0x42) AM_READ_PORT("I42") /* Players inputs (not needed ?) */ |
| 247 | 247 | AM_RANGE(0x80, 0x80) AM_READ_PORT("I80") /* System inputs */ |
| 248 | 248 | AM_RANGE(0x81, 0x82) AM_READ(angelkds_input_r) /* Players inputs */ |
| 249 | AM_RANGE(0x83, 0x83) AM_WRITE | |
| 249 | AM_RANGE(0x83, 0x83) AM_WRITE | |
| 250 | 250 | AM_RANGE(0xc0, 0xc3) AM_READWRITE(angelkds_main_sound_r, angelkds_main_sound_w) // 02 various points |
| 251 | 251 | ADDRESS_MAP_END |
| 252 | 252 |
| r4470 | r4471 | |
|---|---|---|
| 20 | 20 | #include "cpu/z80/z80.h" |
| 21 | 21 | #include "cpu/m6809/m6809.h" |
| 22 | 22 | #include "sound/sn76496.h" |
| 23 | #include "konamipt.h" | |
| 23 | 24 | |
| 24 | 25 | extern WRITE8_HANDLER( mikie_videoram_w ); |
| 25 | 26 | extern WRITE8_HANDLER( mikie_colorram_w ); |
| r4470 | r4471 | |
| 103 | 104 | |
| 104 | 105 | static INPUT_PORTS_START( mikie ) |
| 105 | 106 | PORT_START("SYSTEM") |
| 106 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) | |
| 107 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) | |
| 108 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 ) | |
| 109 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) | |
| 110 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 ) | |
| 111 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 112 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 113 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 107 | KONAMI8_SYSTEM_UNK | |
| 114 | 108 | |
| 115 | 109 | PORT_START("P1") |
| 116 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY | |
| 117 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY | |
| 118 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY | |
| 119 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY | |
| 120 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) | |
| 121 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) | |
| 122 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 123 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 110 | KONAMI8_MONO_4WAY_B12_UNK | |
| 124 | 111 | |
| 125 | 112 | PORT_START("P2") |
| 126 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_COCKTAIL | |
| 127 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_COCKTAIL | |
| 128 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY PORT_COCKTAIL | |
| 129 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_COCKTAIL | |
| 130 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL | |
| 131 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL | |
| 132 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 133 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 113 | KONAMI8_COCKTAIL_4WAY_B12_UNK | |
| 134 | 114 | |
| 135 | 115 | PORT_START("DSW2") |
| 136 | 116 | PORT_DIPNAME( 0x01, 0x00, DEF_STR( Flip_Screen ) ) |
| r4470 | r4471 | |
| 142 | 122 | PORT_BIT( 0xfc, IP_ACTIVE_HIGH, IPT_UNKNOWN ) |
| 143 | 123 | |
| 144 | 124 | PORT_START("DSW0") |
| 145 | PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) ) | |
| 146 | PORT_DIPSETTING( 0x02, DEF_STR( 4C_1C ) ) | |
| 147 | PORT_DIPSETTING( 0x05, DEF_STR( 3C_1C ) ) | |
| 148 | PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) ) | |
| 149 | PORT_DIPSETTING( 0x04, DEF_STR( 3C_2C ) ) | |
| 150 | PORT_DIPSETTING( 0x01, DEF_STR( 4C_3C ) ) | |
| 151 | PORT_DIPSETTING( 0x0f, DEF_STR( 1C_1C ) ) | |
| 152 | PORT_DIPSETTING( 0x03, DEF_STR( 3C_4C ) ) | |
| 153 | PORT_DIPSETTING( 0x07, DEF_STR( 2C_3C ) ) | |
| 154 | PORT_DIPSETTING( 0x0e, DEF_STR( 1C_2C ) ) | |
| 155 | PORT_DIPSETTING( 0x06, DEF_STR( 2C_5C ) ) | |
| 156 | PORT_DIPSETTING( 0x0d, DEF_STR( 1C_3C ) ) | |
| 157 | PORT_DIPSETTING( 0x0c, DEF_STR( 1C_4C ) ) | |
| 158 | PORT_DIPSETTING( 0x0b, DEF_STR( 1C_5C ) ) | |
| 159 | PORT_DIPSETTING( 0x0a, DEF_STR( 1C_6C ) ) | |
| 160 | PORT_DIPSETTING( 0x09, DEF_STR( 1C_7C ) ) | |
| 161 | PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) | |
| 162 | PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) ) | |
| 163 | PORT_DIPSETTING( 0x20, DEF_STR( 4C_1C ) ) | |
| 164 | PORT_DIPSETTING( 0x50, DEF_STR( 3C_1C ) ) | |
| 165 | PORT_DIPSETTING( 0x80, DEF_STR( 2C_1C ) ) | |
| 166 | PORT_DIPSETTING( 0x40, DEF_STR( 3C_2C ) ) | |
| 167 | PORT_DIPSETTING( 0x10, DEF_STR( 4C_3C ) ) | |
| 168 | PORT_DIPSETTING( 0xf0, DEF_STR( 1C_1C ) ) | |
| 169 | PORT_DIPSETTING( 0x30, DEF_STR( 3C_4C ) ) | |
| 170 | PORT_DIPSETTING( 0x70, DEF_STR( 2C_3C ) ) | |
| 171 | PORT_DIPSETTING( 0xe0, DEF_STR( 1C_2C ) ) | |
| 172 | PORT_DIPSETTING( 0x60, DEF_STR( 2C_5C ) ) | |
| 173 | PORT_DIPSETTING( 0xd0, DEF_STR( 1C_3C ) ) | |
| 174 | PORT_DIPSETTING( 0xc0, DEF_STR( 1C_4C ) ) | |
| 175 | PORT_DIPSETTING( 0xb0, DEF_STR( 1C_5C ) ) | |
| 176 | PORT_DIPSETTING( 0xa0, DEF_STR( 1C_6C ) ) | |
| 177 | PORT_DIPSETTING( 0x90, DEF_STR( 1C_7C ) ) | |
| 178 | PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) | |
| 125 | KONAMI_COINAGE(DEF_STR( Free_Play ), "No Coin B") | |
| 126 | /* "No Coin B" = coins produce sound, but no effect on coin counter */ | |
| 179 | 127 | |
| 180 | 128 | PORT_START("DSW1") |
| 181 | 129 | PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) ) |
| r4470 | r4471 | |
|---|---|---|
| 491 | 491 | AM_RANGE(0x980040, 0x980040) AM_READWRITE(midvunit_page_control_r, midvunit_page_control_w) |
| 492 | 492 | AM_RANGE(0x980080, 0x980080) AM_NOP |
| 493 | 493 | AM_RANGE(0x980082, 0x980083) AM_READ(midvunit_dma_trigger_r) |
| 494 | AM_RANGE(0x990000, 0x990000) AM_READ | |
| 494 | AM_RANGE(0x990000, 0x990000) AM_READ | |
| 495 | 495 | AM_RANGE(0x991030, 0x991030) AM_READ_PORT("991030") |
| 496 | 496 | // AM_RANGE(0x991050, 0x991050) AM_READ(SMH_RAM) // seems to be another port |
| 497 | 497 | AM_RANGE(0x991060, 0x991060) AM_READ(port0_r) |
| 498 | 498 | AM_RANGE(0x992000, 0x992000) AM_READ_PORT("992000") |
| 499 | 499 | AM_RANGE(0x993000, 0x993000) AM_READWRITE(midvunit_adc_r, midvunit_adc_w) |
| 500 | 500 | AM_RANGE(0x994000, 0x994000) AM_WRITE(midvunit_control_w) |
| 501 | AM_RANGE(0x995000, 0x995000) AM_WRITE | |
| 501 | AM_RANGE(0x995000, 0x995000) AM_WRITE | |
| 502 | 502 | AM_RANGE(0x995020, 0x995020) AM_WRITE(midvunit_cmos_protect_w) |
| 503 | 503 | AM_RANGE(0x997000, 0x997000) AM_NOP // communications |
| 504 | 504 | AM_RANGE(0x9a0000, 0x9a0000) AM_WRITE(midvunit_sound_w) |
| r4470 | r4471 | |
|---|---|---|
| 209 | 209 | AM_RANGE(0x200000, 0x200fff) AM_READ(SMH_RAM) |
| 210 | 210 | AM_RANGE(0x380000, 0x380003) AM_READ(opwolf_dsw_r) /* dip switches */ |
| 211 | 211 | AM_RANGE(0x3a0000, 0x3a0003) AM_READ(opwolf_lightgun_r) /* lightgun, read at $11e0/6 */ |
| 212 | AM_RANGE(0x3e0000, 0x3e0001) AM_READ(SMH_NOP) | |
| 213 | AM_RANGE(0x3e0002, 0x3e0003) AM_READ(taitosound_comm16_msb_r) | |
| 212 | AM_RANGE(0x3e0000, 0x3e0001) AM_READNOP | |
| 213 | AM_RANGE(0x3e0002, 0x3e0003) AM_READ8(taitosound_comm_r, 0xff00) | |
| 214 | 214 | AM_RANGE(0xc00000, 0xc0ffff) AM_READ(PC080SN_word_0_r) |
| 215 | 215 | AM_RANGE(0xd00000, 0xd03fff) AM_READ(PC090OJ_word_0_r) /* sprite ram */ |
| 216 | 216 | ADDRESS_MAP_END |
| r4470 | r4471 | |
| 223 | 223 | AM_RANGE(0x100000, 0x107fff) AM_WRITE(SMH_RAM) |
| 224 | 224 | AM_RANGE(0x200000, 0x200fff) AM_WRITE(paletteram16_xxxxRRRRGGGGBBBB_word_w) AM_BASE(&paletteram16) |
| 225 | 225 | AM_RANGE(0x380000, 0x380003) AM_WRITE(rainbow_spritectrl_w) // usually 0x4, changes when you fire |
| 226 | AM_RANGE(0x3c0000, 0x3c0001) AM_WRITE(SMH_NOP) /* watchdog ?? */ | |
| 227 | AM_RANGE(0x3e0000, 0x3e0001) AM_WRITE(taitosound_port16_msb_w) | |
| 228 | AM_RANGE(0x3e0002, 0x3e0003) AM_WRITE(taitosound_comm16_msb_w) | |
| 226 | AM_RANGE(0x3c0000, 0x3c0001) AM_WRITENOP /* watchdog ?? */ | |
| 227 | AM_RANGE(0x3e0000, 0x3e0001) AM_WRITE8(taitosound_port_w, 0xff00) | |
| 228 | AM_RANGE(0x3e0002, 0x3e0003) AM_WRITE8(taitosound_comm_w, 0xff00) | |
| 229 | 229 | AM_RANGE(0xc00000, 0xc0ffff) AM_WRITE(PC080SN_word_0_w) |
| 230 | 230 | AM_RANGE(0xc10000, 0xc1ffff) AM_WRITE(SMH_RAM) /* error in init code (?) */ |
| 231 | 231 | AM_RANGE(0xc20000, 0xc20003) AM_WRITE(PC080SN_yscroll_word_0_w) |
| r4470 | r4471 | |
| 243 | 243 | AM_RANGE(0x200000, 0x200fff) AM_READ(SMH_RAM) |
| 244 | 244 | AM_RANGE(0x380000, 0x380003) AM_READ(opwolf_dsw_r) /* dip switches */ |
| 245 | 245 | AM_RANGE(0x3a0000, 0x3a0003) AM_READ(opwolf_lightgun_r) /* lightgun, read at $11e0/6 */ |
| 246 | AM_RANGE(0x3e0000, 0x3e0001) AM_READ(SMH_NOP) | |
| 247 | AM_RANGE(0x3e0002, 0x3e0003) AM_READ(taitosound_comm16_msb_r) | |
| 246 | AM_RANGE(0x3e0000, 0x3e0001) AM_READNOP | |
| 247 | AM_RANGE(0x3e0002, 0x3e0003) AM_READ8(taitosound_comm_r, 0xff00) | |
| 248 | 248 | AM_RANGE(0xc00000, 0xc0ffff) AM_READ(PC080SN_word_0_r) |
| 249 | 249 | AM_RANGE(0xd00000, 0xd03fff) AM_READ(PC090OJ_word_0_r) /* sprite ram */ |
| 250 | 250 | ADDRESS_MAP_END |
| r4470 | r4471 | |
| 255 | 255 | AM_RANGE(0x100000, 0x107fff) AM_WRITE(SMH_RAM) |
| 256 | 256 | AM_RANGE(0x200000, 0x200fff) AM_WRITE(paletteram16_xxxxRRRRGGGGBBBB_word_w) AM_BASE(&paletteram16) |
| 257 | 257 | AM_RANGE(0x380000, 0x380003) AM_WRITE(rainbow_spritectrl_w) // usually 0x4, changes when you fire |
| 258 | AM_RANGE(0x3c0000, 0x3c0001) AM_WRITE(SMH_NOP) /* watchdog ?? */ | |
| 259 | AM_RANGE(0x3e0000, 0x3e0001) AM_WRITE(taitosound_port16_msb_w) | |
| 260 | AM_RANGE(0x3e0002, 0x3e0003) AM_WRITE(taitosound_comm16_msb_w) | |
| 258 | AM_RANGE(0x3c0000, 0x3c0001) AM_WRITENOP /* watchdog ?? */ | |
| 259 | AM_RANGE(0x3e0000, 0x3e0001) AM_WRITE8(taitosound_port_w, 0xff00) | |
| 260 | AM_RANGE(0x3e0002, 0x3e0003) AM_WRITE8(taitosound_comm_w, 0xff00) | |
| 261 | 261 | AM_RANGE(0xc00000, 0xc0ffff) AM_WRITE(PC080SN_word_0_w) |
| 262 | 262 | AM_RANGE(0xc10000, 0xc1ffff) AM_WRITE(SMH_RAM) /* error in init code (?) */ |
| 263 | 263 | AM_RANGE(0xc20000, 0xc20003) AM_WRITE(PC080SN_yscroll_word_0_w) |
| r4470 | r4471 | |
| 279 | 279 | |
| 280 | 280 | static ADDRESS_MAP_START( sub_z80_writemem, ADDRESS_SPACE_PROGRAM, 8 ) |
| 281 | 281 | AM_RANGE(0x0000, 0x7fff) AM_WRITE(SMH_ROM) |
| 282 | AM_RANGE(0x9000, 0x9000) AM_WRITE(SMH_NOP) /* unknown write, 0 then 1 each interrupt */ | |
| 283 | AM_RANGE(0xa000, 0xa000) AM_WRITE(SMH_NOP) /* IRQ acknowledge (unimplemented) */ | |
| 282 | AM_RANGE(0x9000, 0x9000) AM_WRITENOP /* unknown write, 0 then 1 each interrupt */ | |
| 283 | AM_RANGE(0xa000, 0xa000) AM_WRITENOP /* IRQ acknowledge (unimplemented) */ | |
| 284 | 284 | AM_RANGE(0xc000, 0xc7ff) AM_WRITE(SMH_RAM) AM_BASE(&cchip_ram) |
| 285 | 285 | ADDRESS_MAP_END |
| 286 | 286 |
| r4470 | r4471 | |
|---|---|---|
| 12 | 12 | #include "cpu/konami/konami.h" /* for the callback and the firq irq definition */ |
| 13 | 13 | #include "video/konamiic.h" |
| 14 | 14 | #include "sound/2151intf.h" |
| 15 | #include "konamipt.h" | |
| 15 | 16 | |
| 16 | 17 | /* prototypes */ |
| 17 | 18 | static MACHINE_RESET( surpratk ); |
| r4470 | r4471 | |
| 122 | 123 | |
| 123 | 124 | static INPUT_PORTS_START( surpratk ) |
| 124 | 125 | PORT_START("P1") |
| 125 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) | |
| 126 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) | |
| 127 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) | |
| 128 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) | |
| 129 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) | |
| 130 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) | |
| 131 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) | |
| 132 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 126 | KONAMI8_ALT_B12(1) | |
| 133 | 127 | |
| 134 | 128 | PORT_START("P2") |
| 135 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START2 ) | |
| 136 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) | |
| 137 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) | |
| 138 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) | |
| 139 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) | |
| 140 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) | |
| 141 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) | |
| 142 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 129 | KONAMI8_ALT_B12(2) | |
| 143 | 130 | |
| 144 | 131 | PORT_START("DSW1") |
| 145 | PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) ) | |
| 146 | PORT_DIPSETTING( 0x02, DEF_STR( 4C_1C ) ) | |
| 147 | PORT_DIPSETTING( 0x05, DEF_STR( 3C_1C ) ) | |
| 148 | PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) ) | |
| 149 | PORT_DIPSETTING( 0x04, DEF_STR( 3C_2C ) ) | |
| 150 | PORT_DIPSETTING( 0x01, DEF_STR( 4C_3C ) ) | |
| 151 | PORT_DIPSETTING( 0x0f, DEF_STR( 1C_1C ) ) | |
| 152 | PORT_DIPSETTING( 0x03, DEF_STR( 3C_4C ) ) | |
| 153 | PORT_DIPSETTING( 0x07, DEF_STR( 2C_3C ) ) | |
| 154 | PORT_DIPSETTING( 0x0e, DEF_STR( 1C_2C ) ) | |
| 155 | PORT_DIPSETTING( 0x06, DEF_STR( 2C_5C ) ) | |
| 156 | PORT_DIPSETTING( 0x0d, DEF_STR( 1C_3C ) ) | |
| 157 | PORT_DIPSETTING( 0x0c, DEF_STR( 1C_4C ) ) | |
| 158 | PORT_DIPSETTING( 0x0b, DEF_STR( 1C_5C ) ) | |
| 159 | PORT_DIPSETTING( 0x0a, DEF_STR( 1C_6C ) ) | |
| 160 | PORT_DIPSETTING( 0x09, DEF_STR( 1C_7C ) ) | |
| 161 | PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) | |
| 162 | PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) ) | |
| 163 | PORT_DIPSETTING( 0x20, DEF_STR( 4C_1C ) ) | |
| 164 | PORT_DIPSETTING( 0x50, DEF_STR( 3C_1C ) ) | |
| 165 | PORT_DIPSETTING( 0x80, DEF_STR( 2C_1C ) ) | |
| 166 | PORT_DIPSETTING( 0x40, DEF_STR( 3C_2C ) ) | |
| 167 | PORT_DIPSETTING( 0x10, DEF_STR( 4C_3C ) ) | |
| 168 | PORT_DIPSETTING( 0xf0, DEF_STR( 1C_1C ) ) | |
| 169 | PORT_DIPSETTING( 0x30, DEF_STR( 3C_4C ) ) | |
| 170 | PORT_DIPSETTING( 0x70, DEF_STR( 2C_3C ) ) | |
| 171 | PORT_DIPSETTING( 0xe0, DEF_STR( 1C_2C ) ) | |
| 172 | PORT_DIPSETTING( 0x60, DEF_STR( 2C_5C ) ) | |
| 173 | PORT_DIPSETTING( 0xd0, DEF_STR( 1C_3C ) ) | |
| 174 | PORT_DIPSETTING( 0xc0, DEF_STR( 1C_4C ) ) | |
| 175 | PORT_DIPSETTING( 0xb0, DEF_STR( 1C_5C ) ) | |
| 176 | PORT_DIPSETTING( 0xa0, DEF_STR( 1C_6C ) ) | |
| 177 | PORT_DIPSETTING( 0x90, DEF_STR( 1C_7C ) ) | |
| 178 | // PORT_DIPSETTING( 0x00, "No Use" ) | |
| 132 | KONAMI_COINAGE(DEF_STR( Free_Play ), DEF_STR( Free_Play )) | |
| 179 | 133 | |
| 180 | 134 | PORT_START("DSW2") |
| 181 | 135 | PORT_DIPNAME( 0x03, 0x02, DEF_STR( Lives ) ) |
| r4470 | r4471 | |
|---|---|---|
| 342 | 342 | AM_RANGE(0x6881, 0x68bc) AM_RAM AM_BASE(&spriteram_2) AM_SIZE(&spriteram_2_size) |
| 343 | 343 | AM_RANGE(0x6c00, 0x6c00) AM_WRITE(zaccaria_flip_screen_x_w) |
| 344 | 344 | AM_RANGE(0x6c01, 0x6c01) AM_WRITE(zaccaria_flip_screen_y_w) |
| 345 | AM_RANGE(0x6c02, 0x6c02) AM_WRITE | |
| 345 | AM_RANGE(0x6c02, 0x6c02) AM_WRITE | |
| 346 | 346 | AM_RANGE(0x6c06, 0x6c06) AM_WRITE(coin_w) |
| 347 | 347 | AM_RANGE(0x6c07, 0x6c07) AM_WRITE(nmienable_w) |
| 348 | 348 | AM_RANGE(0x6c00, 0x6c07) AM_READ(zaccaria_prot2_r) |
| r4470 | r4471 | |
|---|---|---|
| 197 | 197 | AM_RANGE(0x7e0000, 0x7e0001) AM_READ_PORT("P1") |
| 198 | 198 | AM_RANGE(0x7e0002, 0x7e0003) AM_READ_PORT("P2") |
| 199 | 199 | AM_RANGE(0x700000, 0x700007) AM_READ(littlerb_vdp_r) AM_WRITE(littlerb_vdp_w) |
| 200 | AM_RANGE(0x780000, 0x780001) AM_WRITE | |
| 200 | AM_RANGE(0x780000, 0x780001) AM_WRITE | |
| 201 | 201 | |
| 202 | 202 | /* below are fake.. just to see the data */ |
| 203 | 203 | AM_RANGE(0xc00000, 0xc7ffff) AM_RAM AM_BASE(&littlerb_region1) |
| r4470 | r4471 | |
|---|---|---|
| 209 | 209 | AM_RANGE(0x2000, 0x23ff) AM_RAM |
| 210 | 210 | AM_RANGE(0x4000, 0x47ff) AM_ROM |
| 211 | 211 | AM_RANGE(0x8000, 0x97ff) AM_RAM AM_BASE(&clayshoo_videoram) AM_SIZE(&clayshoo_videoram_size) /* 6k of video ram according to readme */ |
| 212 | AM_RANGE(0x9800, 0xa800) AM_WRITE | |
| 212 | AM_RANGE(0x9800, 0xa800) AM_WRITE | |
| 213 | 213 | AM_RANGE(0xc800, 0xc800) AM_READWRITE(analog_r, analog_reset_w) |
| 214 | 214 | ADDRESS_MAP_END |
| 215 | 215 |
| r4470 | r4471 | |
|---|---|---|
| 57 | 57 | AM_RANGE(0x2001, 0x2001) AM_READ_PORT("P1") AM_WRITE(tagteam_control_w) |
| 58 | 58 | AM_RANGE(0x2002, 0x2002) AM_READ_PORT("DSW1") AM_WRITE(sound_command_w) |
| 59 | 59 | AM_RANGE(0x2003, 0x2003) AM_READ_PORT("DSW2") |
| 60 | // AM_RANGE(0x2003, 0x2003) AM_WRITE | |
| 60 | // AM_RANGE(0x2003, 0x2003) AM_WRITE | |
| 61 | 61 | AM_RANGE(0x4000, 0x43ff) AM_READWRITE(tagteam_mirrorvideoram_r, tagteam_mirrorvideoram_w) |
| 62 | 62 | AM_RANGE(0x4400, 0x47ff) AM_READWRITE(tagteam_mirrorcolorram_r, tagteam_mirrorcolorram_w) |
| 63 | 63 | AM_RANGE(0x4800, 0x4fff) AM_READ(SMH_RAM) |
| r4470 | r4471 | |
| 329 | 329 | |
| 330 | 330 | |
| 331 | 331 | |
| 332 | GAME( 1983, bigprowr, 0, tagteam, bigprowr, 0, ROT270, "Technos", "The Big Pro Wrestling!", 0 ) | |
| 333 | GAME( 1983, tagteam, bigprowr, tagteam, tagteam, 0, ROT270, "Technos (Data East license)", "Tag Team Wrestling", 0 ) | |
| 332 | GAME( 1983, bigprowr, 0, tagteam, bigprowr, 0, ROT270, "Technos Japan", "The Big Pro Wrestling!", 0 ) | |
| 333 | GAME( 1983, tagteam, bigprowr, tagteam, tagteam, 0, ROT270, "Technos Japan (Data East license)", "Tag Team Wrestling", 0 ) |
| r4470 | r4471 | |
|---|---|---|
| 306 | 306 | |
| 307 | 307 | static ADDRESS_MAP_START( bigevglf_portmap, ADDRESS_SPACE_IO, 8 ) |
| 308 | 308 | ADDRESS_MAP_GLOBAL_MASK(0xff) |
| 309 | AM_RANGE(0x00, 0x00) AM_WRITE | |
| 309 | AM_RANGE(0x00, 0x00) AM_WRITE | |
| 310 | 310 | AM_RANGE(0x01, 0x01) AM_WRITE(bigevglf_gfxcontrol_w) /* plane select */ |
| 311 | 311 | AM_RANGE(0x02, 0x02) AM_WRITE(beg_banking_w) |
| 312 | 312 | AM_RANGE(0x03, 0x03) AM_WRITE(beg13A_set_w) |
| r4470 | r4471 | |
| 342 | 342 | static ADDRESS_MAP_START( bigevglf_sub_portmap, ADDRESS_SPACE_IO, 8 ) |
| 343 | 343 | ADDRESS_MAP_GLOBAL_MASK(0xff) |
| 344 | 344 | AM_RANGE(0x00, 0x00) AM_READ_PORT("PORT00") |
| 345 | AM_RANGE(0x01, 0x01) AM_READ | |
| 345 | AM_RANGE(0x01, 0x01) AM_READ | |
| 346 | 346 | AM_RANGE(0x02, 0x02) AM_READ(beg_trackball_x_r) |
| 347 | 347 | AM_RANGE(0x03, 0x03) AM_READ(beg_trackball_y_r) |
| 348 | 348 | AM_RANGE(0x04, 0x04) AM_READ(sub_cpu_mcu_coin_port_r) |
| 349 | 349 | AM_RANGE(0x05, 0x05) AM_READ_PORT("DSW1") |
| 350 | 350 | AM_RANGE(0x06, 0x06) AM_READ_PORT("DSW2") |
| 351 | AM_RANGE(0x07, 0x07) AM_READ | |
| 351 | AM_RANGE(0x07, 0x07) AM_READ | |
| 352 | 352 | AM_RANGE(0x08, 0x08) AM_WRITE(beg_port08_w) /* muxed port select + other unknown stuff */ |
| 353 | 353 | AM_RANGE(0x0b, 0x0b) AM_READ(bigevglf_mcu_r) |
| 354 | 354 | AM_RANGE(0x0c, 0x0c) AM_WRITE(bigevglf_mcu_w) |
| 355 | AM_RANGE(0x0e, 0x0e) AM_WRITE | |
| 355 | AM_RANGE(0x0e, 0x0e) AM_WRITE | |
| 356 | 356 | AM_RANGE(0x10, 0x17) AM_WRITE(beg13A_clr_w) |
| 357 | 357 | AM_RANGE(0x18, 0x1f) AM_WRITE(beg13B_set_w) |
| 358 | 358 | AM_RANGE(0x20, 0x20) AM_READWRITE(beg_fromsound_r, sound_command_w) |
| r4470 | r4471 | |
| 370 | 370 | AM_RANGE(0xc000, 0xc7ff) AM_RAM |
| 371 | 371 | AM_RANGE(0xc800, 0xc801) AM_DEVWRITE("ay", ay8910_address_data_w) |
| 372 | 372 | AM_RANGE(0xca00, 0xca0d) AM_DEVWRITE("msm", msm5232_w) |
| 373 | AM_RANGE(0xcc00, 0xcc00) AM_WRITE(SMH_NOP) | |
| 374 | AM_RANGE(0xce00, 0xce00) AM_WRITE(SMH_NOP) | |
| 373 | AM_RANGE(0xcc00, 0xcc00) AM_WRITENOP | |
| 374 | AM_RANGE(0xce00, 0xce00) AM_WRITENOP | |
| 375 | 375 | AM_RANGE(0xd800, 0xd800) AM_READWRITE(sound_command_r, beg_fromsound_w) /* write to D800 sets bit 1 in status */ |
| 376 | 376 | AM_RANGE(0xda00, 0xda00) AM_READWRITE(soundstate_r, nmi_enable_w) |
| 377 | 377 | AM_RANGE(0xdc00, 0xdc00) AM_WRITE(nmi_disable_w) |
| r4470 | r4471 | |
|---|---|---|
| 192 | 192 | AM_RANGE(0xc000, 0xffff) AM_ROM /* Super Bagman only */ |
| 193 | 193 | |
| 194 | 194 | #if 0 |
| 195 | AM_RANGE(0xa007, 0xa007) AM_WRITE(SMH_NOP) /* ???? */ | |
| 196 | AM_RANGE(0xb000, 0xb000) AM_WRITE(SMH_NOP) /* ???? */ | |
| 197 | AM_RANGE(0xb800, 0xb800) AM_WRITE(SMH_NOP) /* ???? */ | |
| 195 | AM_RANGE(0xa007, 0xa007) AM_WRITENOP /* ???? */ | |
| 196 | AM_RANGE(0xb000, 0xb000) AM_WRITENOP /* ???? */ | |
| 197 | AM_RANGE(0xb800, 0xb800) AM_WRITENOP /* ???? */ | |
| 198 | 198 | #endif |
| 199 | 199 | ADDRESS_MAP_END |
| 200 | 200 | |
| r4470 | r4471 | |
| 208 | 208 | AM_RANGE(0x9800, 0x981f) AM_WRITE(SMH_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size) /* hidden portion of color RAM */ |
| 209 | 209 | /* here only to initialize the pointer, */ |
| 210 | 210 | /* writes are handled by bagman_colorram_w */ |
| 211 | AM_RANGE(0x9c00, 0x9fff) AM_WRITE | |
| 211 | AM_RANGE(0x9c00, 0x9fff) AM_WRITE | |
| 212 | 212 | AM_RANGE(0xa000, 0xa000) AM_WRITE(interrupt_enable_w) |
| 213 | 213 | AM_RANGE(0xa001, 0xa002) AM_WRITE(bagman_flipscreen_w) |
| 214 | 214 | AM_RANGE(0xa003, 0xa003) AM_WRITE(SMH_RAM) AM_BASE(&bagman_video_enable) |
| r4470 | r4471 | |
| 216 | 216 | AM_RANGE(0xa800, 0xa800) AM_READ_PORT("DSW") |
| 217 | 217 | |
| 218 | 218 | |
| 219 | AM_RANGE(0xa005, 0xa005) AM_WRITE(SMH_NOP) /* ???? */ | |
| 220 | AM_RANGE(0xa006, 0xa006) AM_WRITE(SMH_NOP) /* ???? */ | |
| 221 | AM_RANGE(0xa007, 0xa007) AM_WRITE(SMH_NOP) /* ???? */ | |
| 219 | AM_RANGE(0xa005, 0xa005) AM_WRITENOP /* ???? */ | |
| 220 | AM_RANGE(0xa006, 0xa006) AM_WRITENOP /* ???? */ | |
| 221 | AM_RANGE(0xa007, 0xa007) AM_WRITENOP /* ???? */ | |
| 222 | 222 | |
| 223 | 223 | /* guess */ |
| 224 | 224 | AM_RANGE(0xb000, 0xb000) AM_DEVWRITE("ay2", ay8910_address_w) |
| r4470 | r4471 | |
| 229 | 229 | ADDRESS_MAP_GLOBAL_MASK(0xff) |
| 230 | 230 | AM_RANGE(0x08, 0x09) AM_DEVWRITE("ay", ay8910_address_data_w) |
| 231 | 231 | AM_RANGE(0x0c, 0x0c) AM_DEVREAD("ay", ay8910_r) |
| 232 | //AM_RANGE(0x56, 0x56) AM_WRITE | |
| 232 | //AM_RANGE(0x56, 0x56) AM_WRITE | |
| 233 | 233 | ADDRESS_MAP_END |
| 234 | 234 | |
| 235 | 235 |
| r4470 | r4471 | |
|---|---|---|
| 190 | 190 | static ADDRESS_MAP_START( inufuku_writemem, ADDRESS_SPACE_PROGRAM, 16 ) |
| 191 | 191 | AM_RANGE(0x000000, 0x0fffff) AM_WRITE(SMH_ROM) // main rom |
| 192 | 192 | |
| 193 | AM_RANGE(0x100000, 0x100007) AM_WRITE | |
| 193 | AM_RANGE(0x100000, 0x100007) AM_WRITE | |
| 194 | 194 | AM_RANGE(0x200000, 0x200001) AM_WRITE(inufuku_eeprom_w) // eeprom |
| 195 | 195 | AM_RANGE(0x280000, 0x280001) AM_WRITE(inufuku_soundcommand_w) // sound command |
| 196 | 196 | |
| r4470 | r4471 | |
| 203 | 203 | |
| 204 | 204 | AM_RANGE(0x780000, 0x780013) AM_WRITE(inufuku_palettereg_w) // bg & text palettebank register |
| 205 | 205 | AM_RANGE(0x7a0000, 0x7a0023) AM_WRITE(inufuku_scrollreg_w) // bg & text scroll register |
| 206 | AM_RANGE(0x7e0000, 0x7e0001) AM_WRITE | |
| 206 | AM_RANGE(0x7e0000, 0x7e0001) AM_WRITE | |
| 207 | 207 | |
| 208 | 208 | AM_RANGE(0x800000, 0xbfffff) AM_WRITE(SMH_ROM) // data rom |
| 209 | 209 | AM_RANGE(0xfd0000, 0xfdffff) AM_WRITE(SMH_RAM) // work ram |
| r4470 | r4471 | |
|---|---|---|
| 165 | 165 | |
| 166 | 166 | static ADDRESS_MAP_START( mjsister_io_map, ADDRESS_SPACE_IO, 8 ) |
| 167 | 167 | ADDRESS_MAP_GLOBAL_MASK(0xff) |
| 168 | AM_RANGE(0x00, 0x01) AM_WRITE | |
| 168 | AM_RANGE(0x00, 0x01) AM_WRITE | |
| 169 | 169 | AM_RANGE(0x10, 0x10) AM_DEVWRITE("ay", ay8910_address_w) |
| 170 | 170 | AM_RANGE(0x11, 0x11) AM_DEVREAD("ay", ay8910_r) |
| 171 | 171 | AM_RANGE(0x12, 0x12) AM_DEVWRITE("ay", ay8910_data_w) |
| r4470 | r4471 | |
|---|---|---|
| 385 | 385 | AM_RANGE(0x700000, 0x70001f) AM_WRITE(wheelfir_blit_w) // blitter stuff |
| 386 | 386 | AM_RANGE(0x720000, 0x720001) AM_WRITE(pal_reset_pos_w) // always 0? |
| 387 | 387 | AM_RANGE(0x720002, 0x720003) AM_WRITE(pal_data_w) // lots of different values.. also blitter? palette? |
| 388 | // AM_RANGE(0x720004, 0x720005) AM_WRITE | |
| 388 | // AM_RANGE(0x720004, 0x720005) AM_WRITE | |
| 389 | 389 | |
| 390 | // AM_RANGE(0x740000, 0x740001) AM_WRITE(SMH_NOP) | |
| 391 | // AM_RANGE(0x760000, 0x760001) AM_WRITE(SMH_NOP) | |
| 392 | // AM_RANGE(0x740000, 0x740001) AM_WRITE(SMH_NOP) | |
| 393 | // AM_RANGE(0x7a0000, 0x7a0001) AM_WRITE(SMH_NOP) | |
| 394 | // AM_RANGE(0x7c0000, 0x7c0001) AM_WRITE(SMH_NOP) | |
| 390 | // AM_RANGE(0x740000, 0x740001) AM_WRITENOP | |
| 391 | // AM_RANGE(0x760000, 0x760001) AM_WRITENOP | |
| 392 | // AM_RANGE(0x740000, 0x740001) AM_WRITENOP | |
| 393 | // AM_RANGE(0x7a0000, 0x7a0001) AM_WRITENOP | |
| 394 | // AM_RANGE(0x7c0000, 0x7c0001) AM_WRITENOP | |
| 395 | 395 | |
| 396 | 396 | ADDRESS_MAP_END |
| 397 | 397 | |
| r4470 | r4471 | |
| 402 | 402 | AM_RANGE(0x200000, 0x20ffff) AM_RAM |
| 403 | 403 | |
| 404 | 404 | AM_RANGE(0x780000, 0x780001) AM_READ(wheelfir_rand4) |
| 405 | AM_RANGE(0x700000, 0x700001) AM_WRITE(SMH_NOP) | |
| 406 | AM_RANGE(0x740000, 0x740001) AM_WRITE(SMH_NOP) | |
| 405 | AM_RANGE(0x700000, 0x700001) AM_WRITENOP | |
| 406 | AM_RANGE(0x740000, 0x740001) AM_WRITENOP | |
| 407 | 407 | ADDRESS_MAP_END |
| 408 | 408 | |
| 409 | 409 |
| r4470 | r4471 | |
|---|---|---|
| 145 | 145 | AM_RANGE(0x0ae000, 0x0ae7ff) AM_WRITE(SMH_RAM) AM_BASE(&deco16_pf4_rowscroll) |
| 146 | 146 | |
| 147 | 147 | AM_RANGE(0x0b0000, 0x0b07ff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) |
| 148 | AM_RANGE(0x0b4000, 0x0b4001) AM_WRITE | |
| 148 | AM_RANGE(0x0b4000, 0x0b4001) AM_WRITE | |
| 149 | 149 | |
| 150 | 150 | AM_RANGE(0x0b5000, 0x0b500f) AM_WRITE(SMH_RAM) AM_BASE(&deco16_pf12_control) |
| 151 | 151 | AM_RANGE(0x0b6000, 0x0b600f) AM_WRITE(SMH_RAM) AM_BASE(&deco16_pf34_control) |
| r4470 | r4471 | |
|---|---|---|
| 73 | 73 | AM_RANGE(0x3002, 0x3002) AM_READ_PORT("P2") |
| 74 | 74 | AM_RANGE(0x3003, 0x3003) AM_READ_PORT("DSW1") |
| 75 | 75 | AM_RANGE(0x3004, 0x3004) AM_READ_PORT("DSW2") |
| 76 | AM_RANGE(0x3c00, 0x3c00) AM_READ | |
| 76 | AM_RANGE(0x3c00, 0x3c00) AM_READ | |
| 77 | 77 | AM_RANGE(0x4000, 0x5fff) AM_READ(SMH_BANK1) |
| 78 | 78 | AM_RANGE(0x6000, 0xffff) AM_READ(SMH_ROM) |
| 79 | 79 | ADDRESS_MAP_END |
| r4470 | r4471 | |
| 88 | 88 | AM_RANGE(0x3a00, 0x3a00) AM_WRITE(soundlatch_w) |
| 89 | 89 | AM_RANGE(0x3b08, 0x3b09) AM_WRITE(gng_bgscrollx_w) |
| 90 | 90 | AM_RANGE(0x3b0a, 0x3b0b) AM_WRITE(gng_bgscrolly_w) |
| 91 | AM_RANGE(0x3c00, 0x3c00) AM_WRITE | |
| 91 | AM_RANGE(0x3c00, 0x3c00) AM_WRITE | |
| 92 | 92 | AM_RANGE(0x3d00, 0x3d00) AM_WRITE(gng_flipscreen_w) |
| 93 | 93 | // { 0x3d01, 0x3d01, reset sound cpu? |
| 94 | 94 | AM_RANGE(0x3d02, 0x3d03) AM_WRITE(gng_coin_counter_w) |
| r4470 | r4471 | |
|---|---|---|
| 280 | 280 | AM_RANGE(0x05, 0x05) AM_WRITE(ojankohs_msm5205_w) |
| 281 | 281 | AM_RANGE(0x06, 0x06) AM_DEVREAD("ay", ay8910_r) |
| 282 | 282 | AM_RANGE(0x06, 0x07) AM_DEVWRITE("ay", ay8910_data_address_w) |
| 283 | AM_RANGE(0x10, 0x10) AM_WRITE(SMH_NOP) // unknown | |
| 284 | AM_RANGE(0x11, 0x11) AM_WRITE(SMH_NOP) // unknown | |
| 283 | AM_RANGE(0x10, 0x10) AM_WRITENOP // unknown | |
| 284 | AM_RANGE(0x11, 0x11) AM_WRITENOP // unknown | |
| 285 | 285 | ADDRESS_MAP_END |
| 286 | 286 | |
| 287 | 287 | static ADDRESS_MAP_START( ojankoy_io_map, ADDRESS_SPACE_IO, 8 ) |
| r4470 | r4471 | |
| 306 | 306 | AM_RANGE(0x06, 0x06) AM_DEVREAD("ay", ay8910_r) |
| 307 | 307 | AM_RANGE(0x06, 0x07) AM_DEVWRITE("ay", ay8910_data_address_w) |
| 308 | 308 | AM_RANGE(0x08, 0x0f) AM_WRITE(ccasino_palette_w) // 16bit address access |
| 309 | AM_RANGE(0x10, 0x10) AM_WRITE(SMH_NOP) | |
| 310 | AM_RANGE(0x11, 0x11) AM_WRITE(SMH_NOP) | |
| 309 | AM_RANGE(0x10, 0x10) AM_WRITENOP | |
| 310 | AM_RANGE(0x11, 0x11) AM_WRITENOP | |
| 311 | 311 | ADDRESS_MAP_END |
| 312 | 312 | |
| 313 | 313 | static ADDRESS_MAP_START( ojankoc_io_map, ADDRESS_SPACE_IO, 8 ) |
| r4470 | r4471 | |
|---|---|---|
| 477 | 477 | AM_RANGE(0x0000, 0x7fff) AM_READ(SMH_ROM) |
| 478 | 478 | AM_RANGE(0xec00, 0xedff) AM_READ(nbmj8891_palette_type3_r) |
| 479 | 479 | AM_RANGE(0xf800, 0xfeff) AM_READ(SMH_RAM) |
| 480 | AM_RANGE(0xff00, 0xff1f) AM_READ | |
| 480 | AM_RANGE(0xff00, 0xff1f) AM_READ | |
| 481 | 481 | AM_RANGE(0xff20, 0xff20) AM_READ(taiwanmb_unk_r) // MCU or 1413M3 STATUS? (return != 0x00 then loop) |
| 482 | AM_RANGE(0xff21, 0xff2f) AM_READ | |
| 482 | AM_RANGE(0xff21, 0xff2f) AM_READ | |
| 483 | 483 | AM_RANGE(0xff30, 0xffff) AM_READ(SMH_RAM) // |
| 484 | 484 | ADDRESS_MAP_END |
| 485 | 485 | |
| r4470 | r4471 | |
| 487 | 487 | AM_RANGE(0x0000, 0x7fff) AM_WRITE(SMH_ROM) |
| 488 | 488 | AM_RANGE(0xec00, 0xedff) AM_WRITE(nbmj8891_palette_type3_w) |
| 489 | 489 | AM_RANGE(0xf800, 0xfeff) AM_WRITE(SMH_RAM) AM_BASE(&nb1413m3_nvram) AM_SIZE(&nb1413m3_nvram_size) |
| 490 | AM_RANGE(0xff00, 0xff1f) AM_WRITE | |
| 490 | AM_RANGE(0xff00, 0xff1f) AM_WRITE | |
| 491 | 491 | AM_RANGE(0xff20, 0xff20) AM_WRITE(nbmj8891_taiwanmb_mcu_w) // MCU PARAMETER? |
| 492 | AM_RANGE(0xff21, 0xff21) AM_WRITE | |
| 492 | AM_RANGE(0xff21, 0xff21) AM_WRITE | |
| 493 | 493 | AM_RANGE(0xff22, 0xff27) AM_WRITE(nbmj8891_taiwanmb_blitter_w) // blitter parameter |
| 494 | 494 | AM_RANGE(0xff28, 0xff28) AM_WRITE(nbmj8891_romsel_w) // gfx rombank select |
| 495 | 495 | AM_RANGE(0xff29, 0xff29) AM_WRITE(nbmj8891_taiwanmb_gfxflag_w) // screen flip flag? |
| 496 | AM_RANGE(0xff2a, 0xff2a) AM_WRITE | |
| 496 | AM_RANGE(0xff2a, 0xff2a) AM_WRITE | |
| 497 | 497 | AM_RANGE(0xff2b, 0xff2b) AM_WRITE(nbmj8891_clutsel_w) // color look up table select |
| 498 | AM_RANGE(0xff2c, 0xff2c) AM_WRITE(SMH_NOP) // blitter parameter set start (write 0xff only) | |
| 499 | AM_RANGE(0xff2d, 0xff2d) AM_WRITE(SMH_NOP) // not used? | |
| 500 | AM_RANGE(0xff2e, 0xff2e) AM_WRITE(SMH_NOP) // not used? | |
| 501 | AM_RANGE(0xff2f, 0xff2f) AM_WRITE(SMH_NOP) // not used? | |
| 498 | AM_RANGE(0xff2c, 0xff2c) AM_WRITENOP // blitter parameter set start (write 0xff only) | |
| 499 | AM_RANGE(0xff2d, 0xff2d) AM_WRITENOP // not used? | |
| 500 | AM_RANGE(0xff2e, 0xff2e) AM_WRITENOP // not used? | |
| 501 | AM_RANGE(0xff2f, 0xff2f) AM_WRITENOP // not used? | |
| 502 | 502 | AM_RANGE(0xff30, 0xffff) AM_WRITE(SMH_RAM) // RAM? |
| 503 | 503 | ADDRESS_MAP_END |
| 504 | 504 | |
| r4470 | r4471 | |
| 524 | 524 | AM_RANGE(0x80, 0x81) AM_DEVWRITE("fm", ym3812_w) |
| 525 | 525 | AM_RANGE(0xa0, 0xa0) AM_WRITE(nb1413m3_inputportsel_w) |
| 526 | 526 | AM_RANGE(0xb0, 0xb0) AM_WRITE(nb1413m3_sndrombank1_w) |
| 527 | // AM_RANGE(0xc0, 0xc0) AM_WRITE | |
| 527 | // AM_RANGE(0xc0, 0xc0) AM_WRITE | |
| 528 | 528 | AM_RANGE(0xd0, 0xd0) AM_DEVWRITE("dac", DAC_WRITE) |
| 529 | 529 | AM_RANGE(0xe0, 0xe0) AM_WRITE(nbmj8891_vramsel_w) |
| 530 | 530 | AM_RANGE(0xf0, 0xf0) AM_WRITE(nb1413m3_outcoin_w) |
| r4470 | r4471 | |
| 540 | 540 | AM_RANGE(0x80, 0x81) AM_DEVWRITE("fm", ym3812_w) |
| 541 | 541 | AM_RANGE(0xa0, 0xa0) AM_WRITE(nb1413m3_inputportsel_w) |
| 542 | 542 | AM_RANGE(0xb0, 0xb0) AM_WRITE(nb1413m3_sndrombank1_w) |
| 543 | // AM_RANGE(0xc0, 0xc0) AM_WRITE | |
| 543 | // AM_RANGE(0xc0, 0xc0) AM_WRITE | |
| 544 | 544 | AM_RANGE(0xd0, 0xd0) AM_DEVWRITE("dac", DAC_WRITE) |
| 545 | 545 | AM_RANGE(0xe0, 0xe0) AM_WRITE(nbmj8891_vramsel_w) |
| 546 | 546 | AM_RANGE(0xf0, 0xf0) AM_WRITE(nb1413m3_outcoin_w) |
| r4470 | r4471 | |
| 569 | 569 | // AM_RANGE(0x50, 0x50) AM_WRITE(nb1413m3_nmi_clock_w) |
| 570 | 570 | AM_RANGE(0x70, 0x70) AM_WRITE(nbmj8891_scrolly_w) |
| 571 | 571 | AM_RANGE(0x82, 0x83) AM_DEVWRITE("fm", ay8910_data_address_w) |
| 572 | AM_RANGE(0x90, 0x90) AM_WRITE | |
| 572 | AM_RANGE(0x90, 0x90) AM_WRITE | |
| 573 | 573 | AM_RANGE(0xa0, 0xa0) AM_WRITE(nb1413m3_inputportsel_w) |
| 574 | 574 | AM_RANGE(0xb0, 0xb0) AM_WRITE(nb1413m3_sndrombank1_w) |
| 575 | AM_RANGE(0xc0, 0xc0) AM_WRITE | |
| 575 | AM_RANGE(0xc0, 0xc0) AM_WRITE | |
| 576 | 576 | AM_RANGE(0xd0, 0xd0) AM_DEVWRITE("dac", DAC_WRITE) |
| 577 | 577 | AM_RANGE(0xf0, 0xf0) AM_WRITE(nb1413m3_outcoin_w) |
| 578 | 578 | ADDRESS_MAP_END |
| r4470 | r4471 | |
| 587 | 587 | AM_RANGE(0x80, 0x81) AM_DEVWRITE("fm", ym3812_w) |
| 588 | 588 | AM_RANGE(0xa0, 0xa0) AM_WRITE(nb1413m3_inputportsel_w) |
| 589 | 589 | AM_RANGE(0xb0, 0xb0) AM_WRITE(nb1413m3_sndrombank1_w) |
| 590 | // AM_RANGE(0xc0, 0xc0) AM_WRITE | |
| 590 | // AM_RANGE(0xc0, 0xc0) AM_WRITE | |
| 591 | 591 | AM_RANGE(0xd0, 0xd0) AM_DEVWRITE("dac", DAC_WRITE) |
| 592 | // AM_RANGE(0xe0, 0xe0) AM_WRITE(SMH_NOP) | |
| 593 | // AM_RANGE(0xf0, 0xf0) AM_WRITE(SMH_NOP) | |
| 592 | // AM_RANGE(0xe0, 0xe0) AM_WRITENOP | |
| 593 | // AM_RANGE(0xf0, 0xf0) AM_WRITENOP | |
| 594 | 594 | ADDRESS_MAP_END |
| 595 | 595 | |
| 596 | 596 | static ADDRESS_MAP_START( writeport_msjiken, ADDRESS_SPACE_IO, 8 ) |
| r4470 | r4471 | |
| 603 | 603 | AM_RANGE(0x80, 0x81) AM_DEVWRITE("fm", ym3812_w) |
| 604 | 604 | AM_RANGE(0xa0, 0xa0) AM_WRITE(nb1413m3_inputportsel_w) |
| 605 | 605 | AM_RANGE(0xb0, 0xb0) AM_WRITE(nb1413m3_sndrombank1_w) |
| 606 | // AM_RANGE(0xc0, 0xc0) AM_WRITE | |
| 606 | // AM_RANGE(0xc0, 0xc0) AM_WRITE | |
| 607 | 607 | AM_RANGE(0xd0, 0xd0) AM_DEVWRITE("dac", DAC_WRITE) |
| 608 | // AM_RANGE(0xe0, 0xe0) AM_WRITE(SMH_NOP) | |
| 609 | // AM_RANGE(0xf0, 0xf0) AM_WRITE(SMH_NOP) | |
| 608 | // AM_RANGE(0xe0, 0xe0) AM_WRITENOP | |
| 609 | // AM_RANGE(0xf0, 0xf0) AM_WRITENOP | |
| 610 | 610 | ADDRESS_MAP_END |
| 611 | 611 | |
| 612 | 612 | static ADDRESS_MAP_START( writeport_scandal, ADDRESS_SPACE_IO, 8 ) |
| r4470 | r4471 | |
| 621 | 621 | AM_RANGE(0xb0, 0xb0) AM_WRITE(nb1413m3_sndrombank1_w) |
| 622 | 622 | AM_RANGE(0xc0, 0xc0) AM_WRITE(nb1413m3_nmi_clock_w) |
| 623 | 623 | AM_RANGE(0xd0, 0xd0) AM_DEVWRITE("dac", DAC_WRITE) |
| 624 | // AM_RANGE(0xe0, 0xe0) AM_WRITE(SMH_NOP) | |
| 625 | // AM_RANGE(0xf0, 0xf0) AM_WRITE(SMH_NOP) | |
| 624 | // AM_RANGE(0xe0, 0xe0) AM_WRITENOP | |
| 625 | // AM_RANGE(0xf0, 0xf0) AM_WRITENOP | |
| 626 | 626 | ADDRESS_MAP_END |
| 627 | 627 | |
| 628 | 628 | static ADDRESS_MAP_START( readport_scandalm, ADDRESS_SPACE_IO, 8 ) |
| r4470 | r4471 | |
| 649 | 649 | AM_RANGE(0xb0, 0xb0) AM_WRITE(nb1413m3_sndrombank1_w) |
| 650 | 650 | AM_RANGE(0xc0, 0xc0) AM_WRITE(nb1413m3_nmi_clock_w) |
| 651 | 651 | AM_RANGE(0xd0, 0xd0) AM_DEVWRITE("dac", DAC_WRITE) |
| 652 | // AM_RANGE(0xe0, 0xe0) AM_WRITE | |
| 652 | // AM_RANGE(0xe0, 0xe0) AM_WRITE | |
| 653 | 653 | AM_RANGE(0xf0, 0xf0) AM_WRITE(nb1413m3_outcoin_w) |
| 654 | 654 | ADDRESS_MAP_END |
| 655 | 655 | |
| r4470 | r4471 | |
| 666 | 666 | AM_RANGE(0xb0, 0xb0) AM_WRITE(nb1413m3_sndrombank1_w) |
| 667 | 667 | AM_RANGE(0xc0, 0xc0) AM_WRITE(nb1413m3_nmi_clock_w) |
| 668 | 668 | AM_RANGE(0xd0, 0xd0) AM_DEVWRITE("dac", DAC_WRITE) |
| 669 | // AM_RANGE(0xe0, 0xe0) AM_WRITE | |
| 669 | // AM_RANGE(0xe0, 0xe0) AM_WRITE | |
| 670 | 670 | AM_RANGE(0xf0, 0xf0) AM_WRITE(nb1413m3_outcoin_w) |
| 671 | 671 | ADDRESS_MAP_END |
| 672 | 672 | |
| r4470 | r4471 | |
| 689 | 689 | AM_RANGE(0x60, 0x60) AM_WRITE(nbmj8891_romsel_w) |
| 690 | 690 | AM_RANGE(0x70, 0x70) AM_WRITE(nbmj8891_scrolly_w) |
| 691 | 691 | AM_RANGE(0x80, 0x81) AM_DEVWRITE("fm", ym3812_w) |
| 692 | // AM_RANGE(0x90, 0x90) AM_WRITE | |
| 692 | // AM_RANGE(0x90, 0x90) AM_WRITE | |
| 693 | 693 | AM_RANGE(0xa0, 0xa0) AM_WRITE(nb1413m3_inputportsel_w) |
| 694 | 694 | AM_RANGE(0xb0, 0xb0) AM_WRITE(nb1413m3_sndrombank1_w) |
| 695 | 695 | AM_RANGE(0xd0, 0xd0) AM_DEVWRITE("dac", DAC_WRITE) |
| r4470 | r4471 | |
| 718 | 718 | AM_RANGE(0x80, 0x81) AM_DEVWRITE("fm", ym3812_w) |
| 719 | 719 | AM_RANGE(0xa0, 0xa0) AM_WRITE(nb1413m3_inputportsel_w) |
| 720 | 720 | AM_RANGE(0xb0, 0xb0) AM_WRITE(nb1413m3_sndrombank1_w) |
| 721 | // AM_RANGE(0xc0, 0xc0) AM_WRITE | |
| 721 | // AM_RANGE(0xc0, 0xc0) AM_WRITE | |
| 722 | 722 | AM_RANGE(0xd0, 0xd0) AM_DEVWRITE("dac", DAC_WRITE) |
| 723 | 723 | AM_RANGE(0xe0, 0xe0) AM_WRITE(nbmj8891_vramsel_w) |
| 724 | 724 | AM_RANGE(0xf0, 0xf0) AM_WRITE(nb1413m3_outcoin_w) |
| r4470 | r4471 | |
| 741 | 741 | static ADDRESS_MAP_START( writeport_taiwanmb, ADDRESS_SPACE_IO, 8 ) |
| 742 | 742 | ADDRESS_MAP_GLOBAL_MASK(0xff) |
| 743 | 743 | AM_RANGE(0x82, 0x83) AM_DEVWRITE("fm", ay8910_data_address_w) |
| 744 | // AM_RANGE(0x90, 0x90) AM_WRITE | |
| 744 | // AM_RANGE(0x90, 0x90) AM_WRITE | |
| 745 | 745 | AM_RANGE(0xa0, 0xa0) AM_WRITE(nb1413m3_inputportsel_w) |
| 746 | 746 | AM_RANGE(0xb0, 0xb0) AM_WRITE(nb1413m3_sndrombank1_w) |
| 747 | // AM_RANGE(0xc0, 0xc0) AM_WRITE | |
| 747 | // AM_RANGE(0xc0, 0xc0) AM_WRITE | |
| 748 | 748 | AM_RANGE(0xd0, 0xd0) AM_DEVWRITE("dac", DAC_WRITE) |
| 749 | 749 | AM_RANGE(0xe0, 0xe0) AM_WRITE(nbmj8891_taiwanmb_gfxdraw_w) // blitter draw start |
| 750 | 750 | AM_RANGE(0xf0, 0xf0) AM_WRITE(nb1413m3_outcoin_w) |
| r4470 | r4471 | |
|---|---|---|
| 66 | 66 | AM_RANGE(0xd801, 0xd801) AM_WRITE(kncljoe_control_w) |
| 67 | 67 | AM_RANGE(0xd802, 0xd802) AM_DEVWRITE("sn1", sn76496_w) |
| 68 | 68 | AM_RANGE(0xd803, 0xd803) AM_DEVWRITE("sn2", sn76496_w) |
| 69 | AM_RANGE(0xd807, 0xd807) AM_READ(SMH_NOP) /* unknown read */ | |
| 70 | AM_RANGE(0xd817, 0xd817) AM_READ(SMH_NOP) /* unknown read */ | |
| 69 | AM_RANGE(0xd807, 0xd807) AM_READNOP /* unknown read */ | |
| 70 | AM_RANGE(0xd817, 0xd817) AM_READNOP /* unknown read */ | |
| 71 | 71 | AM_RANGE(0xe800, 0xefff) AM_RAM AM_BASE(&spriteram) AM_SIZE(&spriteram_size) |
| 72 | 72 | AM_RANGE(0xf000, 0xffff) AM_RAM |
| 73 | 73 | ADDRESS_MAP_END |
| r4470 | r4471 | |
|---|---|---|
| 615 | 615 | |
| 616 | 616 | |
| 617 | 617 | |
| 618 | GAME( 1987, spdodgeb, 0, spdodgeb, spdodgeb, 0, ROT0, "Technos", "Super Dodge Ball (US)", 0 ) | |
| 619 | GAME( 1987, nkdodge, spdodgeb, spdodgeb, spdodgeb, 0, ROT0, "Technos", "Nekketsu Koukou Dodgeball Bu (Japan)", 0 ) | |
| 620 | GAME( 1987, nkdodgeb, spdodgeb, spdodgeb, spdodgeb, 0, ROT0, "Technos", "Nekketsu Koukou Dodgeball Bu (Japan, bootleg)", 0 ) | |
| 618 | GAME( 1987, spdodgeb, 0, spdodgeb, spdodgeb, 0, ROT0, "Technos Japan", "Super Dodge Ball (US)", 0 ) | |
| 619 | GAME( 1987, nkdodge, spdodgeb, spdodgeb, spdodgeb, 0, ROT0, "Technos Japan", "Nekketsu Koukou Dodgeball Bu (Japan)", 0 ) | |
| 620 | GAME( 1987, nkdodgeb, spdodgeb, spdodgeb, spdodgeb, 0, ROT0, "Technos Japan", "Nekketsu Koukou Dodgeball Bu (Japan, bootleg)", 0 ) |
| r4470 | r4471 | |
|---|---|---|
| 570 | 570 | AM_RANGE(0x1800, 0x1800) AM_READ(soundlatch_r) |
| 571 | 571 | AM_RANGE(0x1840, 0x1840) AM_DEVWRITE("dac1", dac_w) |
| 572 | 572 | AM_RANGE(0x1880, 0x1883) AM_DEVWRITE("dac2", cvs_4_bit_dac_data_w) AM_BASE(&cvs_4_bit_dac_data) |
| 573 | AM_RANGE(0x1884, 0x1887) AM_WRITE | |
| 573 | AM_RANGE(0x1884, 0x1887) AM_WRITE | |
| 574 | 574 | ADDRESS_MAP_END |
| 575 | 575 | |
| 576 | 576 |
| r4470 | r4471 | |
|---|---|---|
| 3067 | 3067 | static ADDRESS_MAP_START( utoukond_sound_io_map, ADDRESS_SPACE_IO, 8 ) |
| 3068 | 3068 | ADDRESS_MAP_GLOBAL_MASK(0xff) |
| 3069 | 3069 | AM_RANGE(0x00, 0x03) AM_DEVREADWRITE("ym", ym3438_r, ym3438_w) |
| 3070 | AM_RANGE(0x80, 0x80) AM_WRITE | |
| 3070 | AM_RANGE(0x80, 0x80) AM_WRITE | |
| 3071 | 3071 | AM_RANGE(0xc0, 0xc0) AM_READ(soundlatch_r) |
| 3072 | 3072 | ADDRESS_MAP_END |
| 3073 | 3073 | |
| r4470 | r4471 | |
| 3192 | 3192 | |
| 3193 | 3193 | AM_RANGE(0x300000, 0x300001) AM_WRITE(watchdog_reset16_w) // Watchdog |
| 3194 | 3194 | |
| 3195 | AM_RANGE(0x300010, 0x300011) AM_WRITE(SMH_NOP) // lev1 ack | |
| 3196 | AM_RANGE(0x300020, 0x300021) AM_WRITE(SMH_NOP) // lev2 ack | |
| 3197 | AM_RANGE(0x300040, 0x300041) AM_WRITE(SMH_NOP) // lev4 ack | |
| 3198 | AM_RANGE(0x300060, 0x300061) AM_WRITE(SMH_NOP) // lev6 ack | |
| 3195 | AM_RANGE(0x300010, 0x300011) AM_WRITENOP // lev1 ack | |
| 3196 | AM_RANGE(0x300020, 0x300021) AM_WRITENOP // lev2 ack | |
| 3197 | AM_RANGE(0x300040, 0x300041) AM_WRITENOP // lev4 ack | |
| 3198 | AM_RANGE(0x300060, 0x300061) AM_WRITENOP // lev6 ack | |
| 3199 | 3199 | |
| 3200 | 3200 | AM_RANGE(0x500000, 0x500003) AM_READ(inttoote_dsw_r) // DSW x 3 |
| 3201 | 3201 |
| r4470 | r4471 | |
|---|---|---|
| 751 | 751 | dac_data_w(device, data); |
| 752 | 752 | } |
| 753 | 753 | |
| 754 | static ADDRESS_MAP_START( readmem, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 755 | AM_RANGE(0x0000, 0x7fff) AM_READ(SMH_ROM) | |
| 756 | AM_RANGE(0x8000, 0xbfff) AM_READ(SMH_BANK1) /* ROM + RAM */ | |
| 757 | AM_RANGE(0xc000, 0xdfff) AM_READ(SMH_RAM) | |
| 758 | AM_RANGE(0xe000, 0xefff) AM_READ(tnzs_sharedram_r) /* WORK RAM (shared by the 2 z80's) */ | |
| 759 | AM_RANGE(0xf000, 0xf1ff) AM_READ(SMH_RAM) /* VDC RAM */ | |
| 760 | AM_RANGE(0xf600, 0xf600) AM_READ(SMH_NOP) /* ? */ | |
| 761 | AM_RANGE(0xf800, 0xfbff) AM_READ(SMH_RAM) /* not in extrmatn and arknoid2 (PROMs instead) */ | |
| 762 | ADDRESS_MAP_END | |
| 763 | ||
| 764 | static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 765 | AM_RANGE(0x0000, 0x7fff) AM_WRITE(SMH_ROM) | |
| 766 | AM_RANGE(0x8000, 0xbfff) AM_WRITE(SMH_BANK1) /* ROM + RAM */ | |
| 767 | AM_RANGE(0xc000, 0xdfff) AM_WRITE(SMH_RAM) AM_BASE(&tnzs_objram) | |
| 768 | AM_RANGE(0xe000, 0xefff) AM_WRITE(tnzs_sharedram_w) AM_BASE(&tnzs_sharedram) | |
| 769 | AM_RANGE(0xf000, 0xf1ff) AM_WRITE(SMH_RAM) AM_BASE(&tnzs_vdcram) | |
| 770 | AM_RANGE(0xf200, 0xf2ff) AM_WRITE(SMH_RAM) AM_BASE(&tnzs_scrollram) /* scrolling info */ | |
| 771 | AM_RANGE(0xf300, 0xf303) AM_MIRROR(0xfc) AM_WRITE(SMH_RAM) AM_BASE(&tnzs_objctrl) /* control registers (0x80 mirror used by Arkanoid 2) */ | |
| 772 | AM_RANGE(0xf400, 0xf400) AM_WRITE(SMH_RAM) AM_BASE(&tnzs_bg_flag) /* enable / disable background transparency */ | |
| 773 | AM_RANGE(0xf600, 0xf600) AM_WRITE(tnzs_bankswitch_w) | |
| 754 | static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 755 | AM_RANGE(0x0000, 0x7fff) AM_ROM | |
| 756 | AM_RANGE(0x8000, 0xbfff) AM_RAMBANK(1) /* ROM + RAM */ | |
| 757 | AM_RANGE(0xc000, 0xdfff) AM_RAM AM_BASE(&tnzs_objram) | |
| 758 | AM_RANGE(0xe000, 0xefff) AM_RAM AM_SHARE(1) | |
| 759 | AM_RANGE(0xf000, 0xf1ff) AM_RAM AM_BASE(&tnzs_vdcram) | |
| 760 | AM_RANGE(0xf200, 0xf2ff) AM_WRITEONLY AM_BASE(&tnzs_scrollram) /* scrolling info */ | |
| 761 | AM_RANGE(0xf300, 0xf303) AM_MIRROR(0xfc) AM_WRITEONLY AM_BASE(&tnzs_objctrl) /* control registers (0x80 mirror used by Arkanoid 2) */ | |
| 762 | AM_RANGE(0xf400, 0xf400) AM_WRITEONLY AM_BASE(&tnzs_bg_flag) /* enable / disable background transparency */ | |
| 763 | AM_RANGE(0xf600, 0xf600) AM_READNOP AM_WRITE(tnzs_bankswitch_w) | |
| 774 | 764 | /* arknoid2, extrmatn, plumppop and drtoppel have PROMs instead of RAM */ |
| 775 | 765 | /* drtoppel writes here anyway! (maybe leftover from tests during development) */ |
| 776 | 766 | /* so the handler is patched out in init_drtopple() */ |
| 777 | AM_RANGE(0xf800, 0xfbff) AM_WRITE(paletteram_xRRRRRGGGGGBBBBB_le_w) AM_BASE(&paletteram) | |
| 767 | AM_RANGE(0xf800, 0xfbff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_le_w) AM_BASE(&paletteram) | |
| 778 | 768 | ADDRESS_MAP_END |
| 779 | 769 | |
| 780 | 770 | static ADDRESS_MAP_START( cpu0_type2, ADDRESS_SPACE_PROGRAM, 8 ) |
| 781 | 771 | AM_RANGE(0x0000, 0x7fff) AM_ROM |
| 782 | 772 | AM_RANGE(0x8000, 0xbfff) AM_RAMBANK(1) /* ROM + RAM */ |
| 783 | 773 | AM_RANGE(0xc000, 0xdfff) AM_RAM AM_BASE(&tnzs_objram) |
| 784 | AM_RANGE(0xe000, 0xefff) AM_R | |
| 774 | AM_RANGE(0xe000, 0xefff) AM_R | |
| 785 | 775 | AM_RANGE(0xf000, 0xf1ff) AM_RAM AM_BASE(&tnzs_vdcram) |
| 786 | AM_RANGE(0xf200, 0xf2ff) AM_WRITE(SMH_RAM) AM_BASE(&tnzs_scrollram) /* scrolling info */ | |
| 787 | AM_RANGE(0xf300, 0xf303) AM_MIRROR(0xfc) AM_WRITE(SMH_RAM) AM_BASE(&tnzs_objctrl) /* control registers (0x80 mirror used by Arkanoid 2) */ | |
| 788 | AM_RANGE(0xf400, 0xf400) AM_WRITE(SMH_RAM) AM_BASE(&tnzs_bg_flag) /* enable / disable background transparency */ | |
| 776 | AM_RANGE(0xf200, 0xf2ff) AM_WRITEONLY AM_BASE(&tnzs_scrollram) /* scrolling info */ | |
| 777 | AM_RANGE(0xf300, 0xf303) AM_MIRROR(0xfc) AM_WRITEONLY AM_BASE(&tnzs_objctrl) /* control registers (0x80 mirror used by Arkanoid 2) */ | |
| 778 | AM_RANGE(0xf400, 0xf400) AM_WRITEONLY AM_BASE(&tnzs_bg_flag) /* enable / disable background transparency */ | |
| 789 | 779 | AM_RANGE(0xf600, 0xf600) AM_WRITE(tnzs_bankswitch_w) |
| 790 | 780 | /* kabukiz still writes here but it's not used (it's paletteram in type1 map) */ |
| 791 | 781 | AM_RANGE(0xf800, 0xfbff) AM_WRITENOP |
| 792 | 782 | ADDRESS_MAP_END |
| 793 | 783 | |
| 794 | static ADDRESS_MAP_START( sub_readmem, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 795 | AM_RANGE(0x0000, 0x7fff) AM_READ(SMH_ROM) | |
| 796 | AM_RANGE(0x8000, 0x9fff) AM_READ(SMH_BANK2) | |
| 797 | AM_RANGE(0xb000, 0xb001) AM_DEVREAD("ym", ym2203_r) | |
| 798 | AM_RANGE(0xc000, 0xc001) AM_READ(tnzs_mcu_r) /* plain input ports in insectx (memory handler */ | |
| 799 | /* changed in insectx_init() ) */ | |
| 800 | AM_RANGE(0xd000, 0xdfff) AM_READ(SMH_RAM) | |
| 801 | AM_RANGE(0xe000, 0xefff) AM_READ(tnzs_sharedram_r) | |
| 784 | static ADDRESS_MAP_START( sub_map, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 785 | AM_RANGE(0x0000, 0x7fff) AM_ROM | |
| 786 | AM_RANGE(0x8000, 0x9fff) AM_ROMBANK(2) | |
| 787 | AM_RANGE(0xa000, 0xa000) AM_WRITE(tnzs_bankswitch1_w) | |
| 788 | AM_RANGE(0xb000, 0xb001) AM_DEVREADWRITE("ym", ym2203_r, ym2203_w) | |
| 789 | AM_RANGE(0xc000, 0xc001) AM_READWRITE(tnzs_mcu_r, tnzs_mcu_w) /* not present in insectx */ | |
| 790 | AM_RANGE(0xd000, 0xdfff) AM_RAM | |
| 791 | AM_RANGE(0xe000, 0xefff) AM_RAM AM_SHARE(1) | |
| 802 | 792 | AM_RANGE(0xf000, 0xf003) AM_READ(arknoid2_sh_f000_r) /* paddles in arkanoid2/plumppop. The ports are */ |
| 803 | 793 | /* read but not used by the other games, and are not read at */ |
| 804 | 794 | /* all by insectx. */ |
| 805 | 795 | ADDRESS_MAP_END |
| 806 | 796 | |
| 807 | static ADDRESS_MAP_START( sub_writemem, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 808 | AM_RANGE(0x0000, 0x9fff) AM_WRITE(SMH_ROM) | |
| 797 | static ADDRESS_MAP_START( kageki_sub_map, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 798 | AM_RANGE(0x0000, 0x7fff) AM_ROM | |
| 799 | AM_RANGE(0x8000, 0x9fff) AM_ROMBANK(2) | |
| 809 | 800 | AM_RANGE(0xa000, 0xa000) AM_WRITE(tnzs_bankswitch1_w) |
| 810 | AM_RANGE(0xb000, 0xb001) AM_DEVWRITE("ym", ym2203_w) | |
| 811 | AM_RANGE(0xc000, 0xc001) AM_WRITE(tnzs_mcu_w) /* not present in insectx */ | |
| 812 | AM_RANGE(0xd000, 0xdfff) AM_WRITE(SMH_RAM) | |
| 813 | AM_RANGE(0xe000, 0xefff) AM_WRITE(tnzs_sharedram_w) | |
| 814 | ADDRESS_MAP_END | |
| 815 | ||
| 816 | static ADDRESS_MAP_START( kageki_sub_readmem, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 817 | AM_RANGE(0x0000, 0x7fff) AM_READ(SMH_ROM) | |
| 818 | AM_RANGE(0x8000, 0x9fff) AM_READ(SMH_BANK2) | |
| 819 | AM_RANGE(0xb000, 0xb001) AM_DEVREAD("ym", ym2203_r) | |
| 801 | AM_RANGE(0xb000, 0xb001) AM_DEVREADWRITE("ym", ym2203_r, ym2203_w) | |
| 820 | 802 | AM_RANGE(0xc000, 0xc000) AM_READ_PORT("IN0") |
| 821 | 803 | AM_RANGE(0xc001, 0xc001) AM_READ_PORT("IN1") |
| 822 | 804 | AM_RANGE(0xc002, 0xc002) AM_READ_PORT("IN2") |
| 823 | AM_RANGE(0xd000, 0xdfff) AM_READ(SMH_RAM) | |
| 824 | AM_RANGE(0xe000, 0xefff) AM_READ(tnzs_sharedram_r) | |
| 805 | AM_RANGE(0xd000, 0xdfff) AM_RAM | |
| 806 | AM_RANGE(0xe000, 0xefff) AM_RAM AM_SHARE(1) | |
| 825 | 807 | ADDRESS_MAP_END |
| 826 | 808 | |
| 827 | static ADDRESS_MAP_START( kageki_sub_writemem, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 828 | AM_RANGE(0x0000, 0x9fff) AM_WRITE(SMH_ROM) | |
| 829 | AM_RANGE(0xa000, 0xa000) AM_WRITE(tnzs_bankswitch1_w) | |
| 830 | AM_RANGE(0xb000, 0xb001) AM_DEVWRITE("ym", ym2203_w) | |
| 831 | AM_RANGE(0xd000, 0xdfff) AM_WRITE(SMH_RAM) | |
| 832 | AM_RANGE(0xe000, 0xefff) AM_WRITE(tnzs_sharedram_w) | |
| 833 | ADDRESS_MAP_END | |
| 834 | ||
| 835 | 809 | /* the later board is different, it has a third CPU (and of course no mcu) */ |
| 836 | 810 | |
| 837 | 811 | static WRITE8_HANDLER( tnzsb_sound_command_w ) |
| r4470 | r4471 | |
| 851 | 825 | AM_RANGE(0xc001, 0xc001) AM_READ_PORT("IN1") |
| 852 | 826 | AM_RANGE(0xc002, 0xc002) AM_READ_PORT("IN2") |
| 853 | 827 | AM_RANGE(0xd000, 0xdfff) AM_RAM |
| 854 | AM_RANGE(0xe000, 0xefff) AM_R | |
| 828 | AM_RANGE(0xe000, 0xefff) AM_R | |
| 855 | 829 | AM_RANGE(0xf000, 0xf003) AM_READ(SMH_RAM) |
| 856 | 830 | AM_RANGE(0xf000, 0xf3ff) AM_WRITE(paletteram_xRRRRRGGGGGBBBBB_le_w) AM_BASE(&paletteram) |
| 857 | 831 | ADDRESS_MAP_END |
| r4470 | r4471 | |
| 867 | 841 | AM_RANGE(0xc001, 0xc001) AM_READ_PORT("IN1") |
| 868 | 842 | AM_RANGE(0xc002, 0xc002) AM_READ_PORT("IN2") |
| 869 | 843 | AM_RANGE(0xd000, 0xdfff) AM_RAM |
| 870 | AM_RANGE(0xe000, 0xefff) AM_R | |
| 844 | AM_RANGE(0xe000, 0xefff) AM_R | |
| 871 | 845 | AM_RANGE(0xf800, 0xfbff) AM_WRITE(paletteram_xRRRRRGGGGGBBBBB_le_w) AM_BASE(&paletteram) |
| 872 | 846 | ADDRESS_MAP_END |
| 873 | 847 | |
| r4470 | r4471 | |
| 1635 | 1609 | |
| 1636 | 1610 | /* basic machine hardware */ |
| 1637 | 1611 | MDRV_CPU_ADD("maincpu", Z80, XTAL_12MHz/2) /* verified on pcb */ |
| 1638 | MDRV_CPU_PROGRAM_MAP( | |
| 1612 | MDRV_CPU_PROGRAM_MAP( | |
| 1639 | 1613 | MDRV_CPU_VBLANK_INT("screen", arknoid2_interrupt) |
| 1640 | 1614 | |
| 1641 | 1615 | MDRV_CPU_ADD("sub", Z80, XTAL_12MHz/2) /* verified on pcb */ |
| 1642 | MDRV_CPU_PROGRAM_MAP(sub_ | |
| 1616 | MDRV_CPU_PROGRAM_MAP(sub_ | |
| 1643 | 1617 | MDRV_CPU_VBLANK_INT("screen", irq0_line_hold) |
| 1644 | 1618 | |
| 1645 | 1619 | MDRV_QUANTUM_PERFECT_CPU("maincpu") |
| r4470 | r4471 | |
| 1674 | 1648 | |
| 1675 | 1649 | /* basic machine hardware */ |
| 1676 | 1650 | MDRV_CPU_ADD("maincpu", Z80,XTAL_12MHz/2) /* 6.0 MHz ??? - Main board Crystal is 12MHz */ |
| 1677 | MDRV_CPU_PROGRAM_MAP( | |
| 1651 | MDRV_CPU_PROGRAM_MAP( | |
| 1678 | 1652 | MDRV_CPU_VBLANK_INT("screen", arknoid2_interrupt) |
| 1679 | 1653 | |
| 1680 | 1654 | MDRV_CPU_ADD("sub", Z80,XTAL_12MHz/2) /* 6.0 MHz ??? - Main board Crystal is 12MHz */ |
| 1681 | MDRV_CPU_PROGRAM_MAP(sub_ | |
| 1655 | MDRV_CPU_PROGRAM_MAP(sub_ | |
| 1682 | 1656 | MDRV_CPU_VBLANK_INT("screen", irq0_line_hold) |
| 1683 | 1657 | |
| 1684 | 1658 | MDRV_QUANTUM_PERFECT_CPU("maincpu") |
| r4470 | r4471 | |
| 1713 | 1687 | |
| 1714 | 1688 | /* basic machine hardware */ |
| 1715 | 1689 | MDRV_CPU_ADD("maincpu", Z80,XTAL_12MHz/2) /* 6.0 MHz ??? - Main board Crystal is 12MHz */ |
| 1716 | MDRV_CPU_PROGRAM_MAP( | |
| 1690 | MDRV_CPU_PROGRAM_MAP( | |
| 1717 | 1691 | MDRV_CPU_VBLANK_INT("screen", irq0_line_hold) |
| 1718 | 1692 | |
| 1719 | 1693 | MDRV_CPU_ADD("sub", Z80,XTAL_12MHz/2) /* 6.0 MHz ??? - Main board Crystal is 12MHz */ |
| 1720 | MDRV_CPU_PROGRAM_MAP(sub_ | |
| 1694 | MDRV_CPU_PROGRAM_MAP(sub_ | |
| 1721 | 1695 | MDRV_CPU_VBLANK_INT("screen", irq0_line_hold) |
| 1722 | 1696 | |
| 1723 | 1697 | MDRV_CPU_ADD("mcu", I8742 ,12000000/2) /* 400KHz ??? - Main board Crystal is 12MHz */ |
| r4470 | r4471 | |
| 1754 | 1728 | |
| 1755 | 1729 | /* basic machine hardware */ |
| 1756 | 1730 | MDRV_CPU_ADD("maincpu", Z80, XTAL_12MHz/2) /* verified on pcb */ |
| 1757 | MDRV_CPU_PROGRAM_MAP( | |
| 1731 | MDRV_CPU_PROGRAM_MAP( | |
| 1758 | 1732 | MDRV_CPU_VBLANK_INT("screen", irq0_line_hold) |
| 1759 | 1733 | |
| 1760 | 1734 | MDRV_CPU_ADD("sub", Z80, XTAL_12MHz/2) /* verified on pcb */ |
| 1761 | MDRV_CPU_PROGRAM_MAP(sub_ | |
| 1735 | MDRV_CPU_PROGRAM_MAP(sub_ | |
| 1762 | 1736 | MDRV_CPU_VBLANK_INT("screen", irq0_line_hold) |
| 1763 | 1737 | |
| 1764 | 1738 | MDRV_QUANTUM_PERFECT_CPU("maincpu") |
| r4470 | r4471 | |
| 1792 | 1766 | |
| 1793 | 1767 | /* basic machine hardware */ |
| 1794 | 1768 | MDRV_CPU_ADD("maincpu", Z80, XTAL_12MHz/2) /* verified on pcb */ |
| 1795 | MDRV_CPU_PROGRAM_MAP( | |
| 1769 | MDRV_CPU_PROGRAM_MAP( | |
| 1796 | 1770 | MDRV_CPU_VBLANK_INT("screen", irq0_line_hold) |
| 1797 | 1771 | |
| 1798 | 1772 | MDRV_CPU_ADD("sub", Z80, XTAL_12MHz/2) /* verified on pcb */ |
| 1799 | MDRV_CPU_PROGRAM_MAP(kageki_sub_ | |
| 1773 | MDRV_CPU_PROGRAM_MAP(kageki_sub_ | |
| 1800 | 1774 | MDRV_CPU_VBLANK_INT("screen", irq0_line_hold) |
| 1801 | 1775 | |
| 1802 | 1776 | MDRV_QUANTUM_PERFECT_CPU("maincpu") |
| r4470 | r4471 | |
|---|---|---|
| 69 | 69 | #include "cpu/m6809/m6809.h" |
| 70 | 70 | #include "sound/sn76496.h" |
| 71 | 71 | #include "sound/flt_rc.h" |
| 72 | #include "konamipt.h" | |
| 72 | 73 | |
| 73 | ||
| 74 | 74 | extern UINT8 *tp84_bg_videoram; |
| 75 | 75 | extern UINT8 *tp84_bg_colorram; |
| 76 | 76 | extern UINT8 *tp84_fg_videoram; |
| r4470 | r4471 | |
| 195 | 195 | AM_RANGE(0x6000, 0x6000) AM_READ(soundlatch_r) |
| 196 | 196 | AM_RANGE(0x8000, 0x8000) AM_READ(tp84_sh_timer_r) |
| 197 | 197 | AM_RANGE(0xa000, 0xa1ff) AM_WRITE(tp84_filter_w) |
| 198 | AM_RANGE(0xc000, 0xc000) AM_WRITE | |
| 198 | AM_RANGE(0xc000, 0xc000) AM_WRITE | |
| 199 | 199 | AM_RANGE(0xc001, 0xc001) AM_DEVWRITE("sn1", sn76496_w) |
| 200 | 200 | AM_RANGE(0xc003, 0xc003) AM_DEVWRITE("sn2", sn76496_w) |
| 201 | 201 | AM_RANGE(0xc004, 0xc004) AM_DEVWRITE("sn3", sn76496_w) |
| r4470 | r4471 | |
| 205 | 205 | |
| 206 | 206 | static INPUT_PORTS_START( tp84 ) |
| 207 | 207 | PORT_START("SYSTEM") |
| 208 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) | |
| 209 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) | |
| 210 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN3 ) | |
| 211 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) | |
| 212 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 ) | |
| 213 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 214 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 215 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 208 | KONAMI8_SYSTEM_UNK | |
| 216 | 209 | |
| 217 | 210 | PORT_START("P1") |
| 218 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY | |
| 219 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY | |
| 220 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY | |
| 221 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY | |
| 222 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) | |
| 223 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) | |
| 224 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 225 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 211 | KONAMI8_MONO_B12_UNK | |
| 226 | 212 | |
| 227 | 213 | PORT_START("P2") |
| 228 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL | |
| 229 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL | |
| 230 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL | |
| 231 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL | |
| 232 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL | |
| 233 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL | |
| 234 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 235 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 214 | KONAMI8_COCKTAIL_B12_UNK | |
| 236 | 215 | |
| 237 | 216 | PORT_START("DSW1") |
| 238 | PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) ) | |
| 239 | PORT_DIPSETTING( 0x02, DEF_STR( 4C_1C ) ) | |
| 240 | PORT_DIPSETTING( 0x05, DEF_STR( 3C_1C ) ) | |
| 241 | PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) ) | |
| 242 | PORT_DIPSETTING( 0x04, DEF_STR( 3C_2C ) ) | |
| 243 | PORT_DIPSETTING( 0x01, DEF_STR( 4C_3C ) ) | |
| 244 | PORT_DIPSETTING( 0x0f, DEF_STR( 1C_1C ) ) | |
| 245 | PORT_DIPSETTING( 0x03, DEF_STR( 3C_4C ) ) | |
| 246 | PORT_DIPSETTING( 0x07, DEF_STR( 2C_3C ) ) | |
| 247 | PORT_DIPSETTING( 0x0e, DEF_STR( 1C_2C ) ) | |
| 248 | PORT_DIPSETTING( 0x06, DEF_STR( 2C_5C ) ) | |
| 249 | PORT_DIPSETTING( 0x0d, DEF_STR( 1C_3C ) ) | |
| 250 | PORT_DIPSETTING( 0x0c, DEF_STR( 1C_4C ) ) | |
| 251 | PORT_DIPSETTING( 0x0b, DEF_STR( 1C_5C ) ) | |
| 252 | PORT_DIPSETTING( 0x0a, DEF_STR( 1C_6C ) ) | |
| 253 | PORT_DIPSETTING( 0x09, DEF_STR( 1C_7C ) ) | |
| 254 | PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) | |
| 255 | PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) ) | |
| 256 | PORT_DIPSETTING( 0x20, DEF_STR( 4C_1C ) ) | |
| 257 | PORT_DIPSETTING( 0x50, DEF_STR( 3C_1C ) ) | |
| 258 | PORT_DIPSETTING( 0x80, DEF_STR( 2C_1C ) ) | |
| 259 | PORT_DIPSETTING( 0x40, DEF_STR( 3C_2C ) ) | |
| 260 | PORT_DIPSETTING( 0x10, DEF_STR( 4C_3C ) ) | |
| 261 | PORT_DIPSETTING( 0xf0, DEF_STR( 1C_1C ) ) | |
| 262 | PORT_DIPSETTING( 0x30, DEF_STR( 3C_4C ) ) | |
| 263 | PORT_DIPSETTING( 0x70, DEF_STR( 2C_3C ) ) | |
| 264 | PORT_DIPSETTING( 0xe0, DEF_STR( 1C_2C ) ) | |
| 265 | PORT_DIPSETTING( 0x60, DEF_STR( 2C_5C ) ) | |
| 266 | PORT_DIPSETTING( 0xd0, DEF_STR( 1C_3C ) ) | |
| 267 | PORT_DIPSETTING( 0xc0, DEF_STR( 1C_4C ) ) | |
| 268 | PORT_DIPSETTING( 0xb0, DEF_STR( 1C_5C ) ) | |
| 269 | PORT_DIPSETTING( 0xa0, DEF_STR( 1C_6C ) ) | |
| 270 | PORT_DIPSETTING( 0x90, DEF_STR( 1C_7C ) ) | |
| 271 | PORT_DIPSETTING( 0x00, "Invalid" ) | |
| 217 | KONAMI_COINAGE(DEF_STR( Free_Play ), "Invalid") | |
| 218 | /* "Invalid" = both coin slots disabled */ | |
| 272 | 219 | |
| 273 | 220 | PORT_START("DSW2") |
| 274 | 221 | PORT_DIPNAME( 0x03, 0x02, DEF_STR( Lives ) ) |
| r4470 | r4471 | |
| 295 | 242 | INPUT_PORTS_END |
| 296 | 243 | |
| 297 | 244 | static INPUT_PORTS_START( tp84a ) |
| 298 | PORT_START("SYSTEM") | |
| 299 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) | |
| 300 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) | |
| 301 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN3 ) | |
| 302 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) | |
| 303 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 ) | |
| 304 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 305 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 306 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 245 | PORT_INCLUDE( tp84 ) | |
| 307 | 246 | |
| 308 | PORT_START("P1") | |
| 309 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY | |
| 310 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY | |
| 311 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY | |
| 312 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY | |
| 313 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) | |
| 314 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) | |
| 315 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 316 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 317 | ||
| 318 | PORT_START("P2") | |
| 319 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL | |
| 320 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL | |
| 321 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL | |
| 322 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL | |
| 323 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL | |
| 324 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL | |
| 325 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 326 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 327 | ||
| 328 | PORT_START("DSW1") | |
| 329 | PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) ) | |
| 330 | PORT_DIPSETTING( 0x02, DEF_STR( 4C_1C ) ) | |
| 331 | PORT_DIPSETTING( 0x05, DEF_STR( 3C_1C ) ) | |
| 332 | PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) ) | |
| 333 | PORT_DIPSETTING( 0x04, DEF_STR( 3C_2C ) ) | |
| 334 | PORT_DIPSETTING( 0x01, DEF_STR( 4C_3C ) ) | |
| 335 | PORT_DIPSETTING( 0x0f, DEF_STR( 1C_1C ) ) | |
| 336 | PORT_DIPSETTING( 0x03, DEF_STR( 3C_4C ) ) | |
| 337 | PORT_DIPSETTING( 0x07, DEF_STR( 2C_3C ) ) | |
| 338 | PORT_DIPSETTING( 0x0e, DEF_STR( 1C_2C ) ) | |
| 339 | PORT_DIPSETTING( 0x06, DEF_STR( 2C_5C ) ) | |
| 340 | PORT_DIPSETTING( 0x0d, DEF_STR( 1C_3C ) ) | |
| 341 | PORT_DIPSETTING( 0x0c, DEF_STR( 1C_4C ) ) | |
| 342 | PORT_DIPSETTING( 0x0b, DEF_STR( 1C_5C ) ) | |
| 343 | PORT_DIPSETTING( 0x0a, DEF_STR( 1C_6C ) ) | |
| 344 | PORT_DIPSETTING( 0x09, DEF_STR( 1C_7C ) ) | |
| 345 | PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) | |
| 346 | PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) ) | |
| 347 | PORT_DIPSETTING( 0x20, DEF_STR( 4C_1C ) ) | |
| 348 | PORT_DIPSETTING( 0x50, DEF_STR( 3C_1C ) ) | |
| 349 | PORT_DIPSETTING( 0x80, DEF_STR( 2C_1C ) ) | |
| 350 | PORT_DIPSETTING( 0x40, DEF_STR( 3C_2C ) ) | |
| 351 | PORT_DIPSETTING( 0x10, DEF_STR( 4C_3C ) ) | |
| 352 | PORT_DIPSETTING( 0xf0, DEF_STR( 1C_1C ) ) | |
| 353 | PORT_DIPSETTING( 0x30, DEF_STR( 3C_4C ) ) | |
| 354 | PORT_DIPSETTING( 0x70, DEF_STR( 2C_3C ) ) | |
| 355 | PORT_DIPSETTING( 0xe0, DEF_STR( 1C_2C ) ) | |
| 356 | PORT_DIPSETTING( 0x60, DEF_STR( 2C_5C ) ) | |
| 357 | PORT_DIPSETTING( 0xd0, DEF_STR( 1C_3C ) ) | |
| 358 | PORT_DIPSETTING( 0xc0, DEF_STR( 1C_4C ) ) | |
| 359 | PORT_DIPSETTING( 0xb0, DEF_STR( 1C_5C ) ) | |
| 360 | PORT_DIPSETTING( 0xa0, DEF_STR( 1C_6C ) ) | |
| 361 | PORT_DIPSETTING( 0x90, DEF_STR( 1C_7C ) ) | |
| 362 | PORT_DIPSETTING( 0x00, "Invalid" ) | |
| 363 | ||
| 364 | PORT_START("DSW2") | |
| 247 | PORT_MODIFY("DSW2") | |
| 365 | 248 | PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) ) |
| 366 | 249 | PORT_DIPSETTING( 0x03, "3" ) |
| 367 | 250 | PORT_DIPSETTING( 0x02, "4" ) |
| 368 | 251 | PORT_DIPSETTING( 0x01, "5" ) |
| 369 | 252 | PORT_DIPSETTING( 0x00, "7" ) |
| 370 | PORT_DIPNAME( 0x04, 0x00, DEF_STR( Cabinet ) ) | |
| 371 | PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) | |
| 372 | PORT_DIPSETTING( 0x04, DEF_STR( Cocktail ) ) | |
| 373 | PORT_DIPNAME( 0x18, 0x10, DEF_STR( Bonus_Life ) ) | |
| 374 | PORT_DIPSETTING( 0x18, "10K 50K+" ) | |
| 375 | PORT_DIPSETTING( 0x10, "20K 60K+" ) | |
| 376 | PORT_DIPSETTING( 0x08, "30K 70K+" ) | |
| 377 | PORT_DIPSETTING( 0x00, "40K 80K+" ) | |
| 378 | PORT_DIPNAME( 0x60, 0x20, DEF_STR( Difficulty ) ) | |
| 379 | PORT_DIPSETTING( 0x60, DEF_STR( Easy ) ) | |
| 380 | PORT_DIPSETTING( 0x40, DEF_STR( Normal ) ) | |
| 381 | PORT_DIPSETTING( 0x20, DEF_STR( Hard ) ) | |
| 382 | PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) | |
| 383 | PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) ) | |
| 384 | PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) | |
| 385 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) | |
| 386 | 253 | INPUT_PORTS_END |
| 387 | 254 | |
| 388 | 255 |
| r4470 | r4471 | |
|---|---|---|
| 131 | 131 | AM_RANGE(0x000000, 0x1fffff) AM_READ(SMH_ROM) |
| 132 | 132 | AM_RANGE(0x280000, 0x2807ff) AM_MIRROR(0x800) AM_READ(deco16_104_rohga_prot_r) /* Protection device */ |
| 133 | 133 | AM_RANGE(0x2c0000, 0x2c0001) AM_READ_PORT("DSW3") |
| 134 | AM_RANGE(0x321100, 0x321101) AM_READ | |
| 134 | AM_RANGE(0x321100, 0x321101) AM_READ | |
| 135 | 135 | AM_RANGE(0x3c0000, 0x3c1fff) AM_READ(SMH_RAM) |
| 136 | 136 | AM_RANGE(0x3c2000, 0x3c2fff) AM_READ(SMH_RAM) |
| 137 | 137 | AM_RANGE(0x3c4000, 0x3c4fff) AM_READ(SMH_RAM) |
| r4470 | r4471 | |
| 152 | 152 | AM_RANGE(0x280000, 0x2807ff) AM_MIRROR(0x800) AM_WRITE(deco16_104_rohga_prot_w) AM_BASE(&deco16_prot_ram) /* Protection writes */ |
| 153 | 153 | |
| 154 | 154 | AM_RANGE(0x300000, 0x300001) AM_WRITE(rohga_buffer_spriteram16_w) /* write 1 for sprite dma */ |
| 155 | AM_RANGE(0x310000, 0x310009) AM_WRITE | |
| 155 | AM_RANGE(0x310000, 0x310009) AM_WRITE | |
| 156 | 156 | AM_RANGE(0x31000a, 0x31000b) AM_WRITE(deco16_palette_dma_w) /* Write 1111 for dma? (Or any value?) */ |
| 157 | AM_RANGE(0x320000, 0x320001) AM_WRITE | |
| 157 | AM_RANGE(0x320000, 0x320001) AM_WRITE | |
| 158 | 158 | AM_RANGE(0x322000, 0x322001) AM_WRITE(deco16_priority_w) |
| 159 | 159 | |
| 160 | 160 | AM_RANGE(0x3c0000, 0x3c1fff) AM_WRITE(deco16_pf1_data_w) AM_BASE(&deco16_pf1_data) |
| r4470 | r4471 | |
| 202 | 202 | AM_RANGE(0x310000, 0x31000f) AM_WRITE(SMH_RAM) AM_BASE(&deco16_pf34_control) |
| 203 | 203 | |
| 204 | 204 | AM_RANGE(0x320000, 0x320001) AM_WRITE(deco16_priority_w) /* Priority */ |
| 205 | AM_RANGE(0x320002, 0x320003) AM_WRITE(SMH_NOP) /* ? */ | |
| 206 | AM_RANGE(0x320004, 0x320005) AM_WRITE(SMH_NOP) /* VBL IRQ ack */ | |
| 205 | AM_RANGE(0x320002, 0x320003) AM_WRITENOP /* ? */ | |
| 206 | AM_RANGE(0x320004, 0x320005) AM_WRITENOP /* VBL IRQ ack */ | |
| 207 | 207 | |
| 208 | 208 | AM_RANGE(0x340000, 0x3407ff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) |
| 209 | 209 | AM_RANGE(0x350000, 0x350001) AM_WRITE(buffer_spriteram16_w) /* Triggers DMA for spriteram */ |
| r4470 | r4471 | |
| 259 | 259 | AM_RANGE(0x310000, 0x31000f) AM_WRITE(SMH_RAM) AM_BASE(&deco16_pf34_control) |
| 260 | 260 | |
| 261 | 261 | AM_RANGE(0x320000, 0x320001) AM_WRITE(deco16_priority_w) /* Priority */ |
| 262 | AM_RANGE(0x320002, 0x320003) AM_WRITE(SMH_NOP) /* ? */ | |
| 263 | AM_RANGE(0x320004, 0x320005) AM_WRITE(SMH_NOP) /* VBL IRQ ack */ | |
| 262 | AM_RANGE(0x320002, 0x320003) AM_WRITENOP /* ? */ | |
| 263 | AM_RANGE(0x320004, 0x320005) AM_WRITENOP /* VBL IRQ ack */ | |
| 264 | 264 | |
| 265 | 265 | AM_RANGE(0x340000, 0x3407ff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) |
| 266 | 266 | AM_RANGE(0x350000, 0x350001) AM_WRITE(buffer_spriteram16_w) /* Triggers DMA for spriteram */ |
| r4470 | r4471 | |
| 281 | 281 | AM_RANGE(0x2c0000, 0x2c0001) AM_READ_PORT("DSW3") |
| 282 | 282 | AM_RANGE(0x300000, 0x300001) AM_READ_PORT("DSW3") |
| 283 | 283 | AM_RANGE(0x310002, 0x310003) AM_READ_PORT("IN1") |
| 284 | AM_RANGE(0x321100, 0x321101) AM_READ | |
| 284 | AM_RANGE(0x321100, 0x321101) AM_READ | |
| 285 | 285 | AM_RANGE(0x3c0000, 0x3c1fff) AM_READ(SMH_RAM) |
| 286 | 286 | AM_RANGE(0x3c2000, 0x3c2fff) AM_READ(SMH_RAM) |
| 287 | 287 | AM_RANGE(0x3c4000, 0x3c4fff) AM_READ(SMH_RAM) |
| r4470 | r4471 | |
| 302 | 302 | AM_RANGE(0x280000, 0x2807ff) AM_MIRROR(0x800) AM_WRITE(deco16_104_rohga_prot_w) AM_BASE(&deco16_prot_ram) /* Protection writes */ |
| 303 | 303 | |
| 304 | 304 | AM_RANGE(0x300000, 0x300001) AM_WRITE(rohga_buffer_spriteram16_w) /* write 1 for sprite dma */ |
| 305 | AM_RANGE(0x310000, 0x310009) AM_WRITE | |
| 305 | AM_RANGE(0x310000, 0x310009) AM_WRITE | |
| 306 | 306 | AM_RANGE(0x31000a, 0x31000b) AM_WRITE(deco16_palette_dma_w) /* Write 1111 for dma? (Or any value?) */ |
| 307 | AM_RANGE(0x320000, 0x320001) AM_WRITE | |
| 307 | AM_RANGE(0x320000, 0x320001) AM_WRITE | |
| 308 | 308 | AM_RANGE(0x322000, 0x322001) AM_WRITE(deco16_priority_w) |
| 309 | 309 | |
| 310 | 310 | AM_RANGE(0x3c0000, 0x3c1fff) AM_WRITE(deco16_pf1_data_w) AM_BASE(&deco16_pf1_data) |
| r4470 | r4471 | |
| 324 | 324 | |
| 325 | 325 | static ADDRESS_MAP_START( sound_readmem, ADDRESS_SPACE_PROGRAM, 8 ) |
| 326 | 326 | AM_RANGE(0x000000, 0x00ffff) AM_READ(SMH_ROM) |
| 327 | AM_RANGE(0x100000, 0x100001) AM_READ | |
| 327 | AM_RANGE(0x100000, 0x100001) AM_READ | |
| 328 | 328 | AM_RANGE(0x110000, 0x110001) AM_DEVREAD("ym", ym2151_r) |
| 329 | 329 | AM_RANGE(0x120000, 0x120001) AM_DEVREAD("oki1", okim6295_r) |
| 330 | 330 | AM_RANGE(0x130000, 0x130001) AM_DEVREAD("oki2", okim6295_r) |
| r4470 | r4471 | |
| 334 | 334 | |
| 335 | 335 | static ADDRESS_MAP_START( sound_writemem, ADDRESS_SPACE_PROGRAM, 8 ) |
| 336 | 336 | AM_RANGE(0x000000, 0x00ffff) AM_WRITE(SMH_ROM) |
| 337 | AM_RANGE(0x100000, 0x100001) AM_WRITE | |
| 337 | AM_RANGE(0x100000, 0x100001) AM_WRITE | |
| 338 | 338 | AM_RANGE(0x110000, 0x110001) AM_DEVWRITE("ym", ym2151_w) |
| 339 | 339 | AM_RANGE(0x120000, 0x120001) AM_DEVWRITE("oki1", okim6295_w) |
| 340 | 340 | AM_RANGE(0x130000, 0x130001) AM_DEVWRITE("oki2", okim6295_w) |
| r4470 | r4471 | |
|---|---|---|
| 204 | 204 | } |
| 205 | 205 | |
| 206 | 206 | |
| 207 | static ADDRESS_MAP_START( readmem, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 208 | AM_RANGE(0x0000, 0x0fff) AM_READ(SMH_RAM) | |
| 207 | //Cheaters note: Scores are stored in ram @ 0x57-0x58 (though the space is used for other things between matches) | |
| 208 | static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 209 | AM_RANGE(0x0000, 0x07ff) AM_RAM | |
| 210 | AM_RANGE(0x0800, 0x08ff) AM_RAM AM_BASE(&spriteram) AM_SIZE(&spriteram_size) | |
| 209 | 211 | AM_RANGE(0x1000, 0x1000) AM_READ_PORT("P1") |
| 210 | 212 | AM_RANGE(0x1001, 0x1001) AM_READ_PORT("P2") |
| 211 | 213 | AM_RANGE(0x1002, 0x1002) AM_READ_PORT("SYSTEM") |
| r4470 | r4471 | |
| 213 | 215 | AM_RANGE(0x1004, 0x1004) AM_READ_PORT("DSW2") |
| 214 | 216 | AM_RANGE(0x1005, 0x1005) AM_READ_PORT("P3") |
| 215 | 217 | AM_RANGE(0x1006, 0x1006) AM_READ_PORT("P4") |
| 216 | AM_RANGE(0x4000, 0x7fff) AM_READ(SMH_BANK1) | |
| 217 | AM_RANGE(0x8000, 0xffff) AM_READ(SMH_ROM) | |
| 218 | ADDRESS_MAP_END | |
| 219 | ||
| 220 | static ADDRESS_MAP_START( vball2pj_readmem, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 221 | AM_RANGE(0x0000, 0x0fff) AM_READ(SMH_RAM) | |
| 222 | AM_RANGE(0x1000, 0x1000) AM_READ_PORT("P1") | |
| 223 | AM_RANGE(0x1001, 0x1001) AM_READ_PORT("P2") | |
| 224 | AM_RANGE(0x1002, 0x1002) AM_READ_PORT("SYSTEM") | |
| 225 | AM_RANGE(0x1003, 0x1003) AM_READ_PORT("DSW1") | |
| 226 | AM_RANGE(0x1004, 0x1004) AM_READ_PORT("DSW2") | |
| 227 | AM_RANGE(0x1005, 0x1005) AM_READ(SMH_RAM) //Strange, that these are read! | |
| 228 | AM_RANGE(0x1006, 0x1006) AM_READ(SMH_RAM) //Strange, that these are read! | |
| 229 | AM_RANGE(0x4000, 0x7fff) AM_READ(SMH_BANK1) | |
| 230 | AM_RANGE(0x8000, 0xffff) AM_READ(SMH_ROM) | |
| 231 | ADDRESS_MAP_END | |
| 232 | ||
| 233 | //Cheaters note: Scores are stored in ram @ 0x57-0x58 (though the space is used for other things between matches) | |
| 234 | static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 235 | AM_RANGE(0x0000, 0x07ff) AM_WRITE(SMH_RAM) | |
| 236 | AM_RANGE(0x0800, 0x08ff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size) | |
| 237 | 218 | AM_RANGE(0x1008, 0x1008) AM_WRITE(vb_scrollx_hi_w) |
| 238 | 219 | AM_RANGE(0x1009, 0x1009) AM_WRITE(vb_bankswitch_w) |
| 239 | 220 | AM_RANGE(0x100a, 0x100b) AM_WRITE(vball_irq_ack_w) /* is there a scanline counter here? */ |
| r4470 | r4471 | |
| 242 | 223 | AM_RANGE(0x100e, 0x100e) AM_WRITE(SMH_RAM) AM_BASE(&vb_scrolly_lo) |
| 243 | 224 | AM_RANGE(0x2000, 0x2fff) AM_WRITE(vb_videoram_w) AM_BASE(&vb_videoram) |
| 244 | 225 | AM_RANGE(0x3000, 0x3fff) AM_WRITE(vb_attrib_w) AM_BASE(&vb_attribram) |
| 245 | AM_RANGE(0x4000, 0xffff) AM_WRITE(SMH_ROM) | |
| 226 | AM_RANGE(0x4000, 0x7fff) AM_ROMBANK(1) | |
| 227 | AM_RANGE(0x8000, 0xffff) AM_ROM | |
| 246 | 228 | ADDRESS_MAP_END |
| 247 | 229 | |
| 248 | static ADDRESS_MAP_START( sound_readmem, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 249 | AM_RANGE(0x0000, 0x7fff) AM_READ(SMH_ROM) | |
| 250 | AM_RANGE(0x8000, 0x87ff) AM_READ(SMH_RAM) | |
| 251 | AM_RANGE(0x8800, 0x8801) AM_DEVREAD("ym", ym2151_r) | |
| 252 | AM_RANGE(0x9800, 0x9800) AM_DEVREAD("oki", okim6295_r) | |
| 230 | static ADDRESS_MAP_START( sound_map, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 231 | AM_RANGE(0x0000, 0x7fff) AM_ROM | |
| 232 | AM_RANGE(0x8000, 0x87ff) AM_RAM | |
| 233 | AM_RANGE(0x8800, 0x8801) AM_DEVREADWRITE("ym", ym2151_r, ym2151_w) | |
| 234 | AM_RANGE(0x9800, 0x9803) AM_DEVREADWRITE("oki", okim6295_r, okim6295_w) | |
| 253 | 235 | AM_RANGE(0xA000, 0xA000) AM_READ(soundlatch_r) |
| 254 | 236 | ADDRESS_MAP_END |
| 255 | 237 | |
| 256 | static ADDRESS_MAP_START( sound_writemem, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 257 | AM_RANGE(0x0000, 0x7fff) AM_WRITE(SMH_ROM) | |
| 258 | AM_RANGE(0x8000, 0x87ff) AM_WRITE(SMH_RAM) | |
| 259 | AM_RANGE(0x8800, 0x8801) AM_DEVWRITE("ym", ym2151_w) | |
| 260 | AM_RANGE(0x9800, 0x9803) AM_DEVWRITE("oki", okim6295_w) | |
| 261 | ADDRESS_MAP_END | |
| 262 | 238 | |
| 263 | ||
| 264 | 239 | static INPUT_PORTS_START( common ) |
| 265 | 240 | PORT_START("P1") |
| 266 | 241 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) |
| r4470 | r4471 | |
| 317 | 292 | PORT_DIPNAME( 0x80, 0x80, DEF_STR( Demo_Sounds ) ) |
| 318 | 293 | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 319 | 294 | PORT_DIPSETTING( 0x80, DEF_STR( On ) ) |
| 295 | ||
| 296 | PORT_START("P3") | |
| 297 | PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) | |
| 298 | ||
| 299 | PORT_START("P4") | |
| 300 | PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) | |
| 320 | 301 | INPUT_PORTS_END |
| 321 | 302 | |
| 322 | 303 | static INPUT_PORTS_START( vball ) |
| r4470 | r4471 | |
| 349 | 330 | PORT_DIPSETTING( 0x80, "2") |
| 350 | 331 | PORT_DIPSETTING( 0x00, "4") |
| 351 | 332 | |
| 352 | PORT_ | |
| 333 | PORT_MODIFY("P3") | |
| 353 | 334 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(3) |
| 354 | 335 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(3) |
| 355 | 336 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(3) |
| r4470 | r4471 | |
| 359 | 340 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) |
| 360 | 341 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START3 ) |
| 361 | 342 | |
| 362 | PORT_ | |
| 343 | PORT_MODIFY("P4") | |
| 363 | 344 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(4) |
| 364 | 345 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(4) |
| 365 | 346 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(4) |
| r4470 | r4471 | |
| 437 | 418 | |
| 438 | 419 | /* basic machine hardware */ |
| 439 | 420 | MDRV_CPU_ADD("maincpu", M6502, CPU_CLOCK) /* 2 MHz - measured by guru but it makes the game far far too slow ?! */ |
| 440 | MDRV_CPU_PROGRAM_MAP( | |
| 421 | MDRV_CPU_PROGRAM_MAP( | |
| 441 | 422 | MDRV_TIMER_ADD_SCANLINE("scantimer", vball_scanline, "screen", 0, 1) |
| 442 | 423 | |
| 443 | 424 | MDRV_CPU_ADD("audiocpu", Z80, 3579545) /* 3.579545 MHz */ |
| 444 | MDRV_CPU_PROGRAM_MAP(sound_ | |
| 425 | MDRV_CPU_PROGRAM_MAP(sound_ | |
| 445 | 426 | |
| 446 | 427 | /* video hardware */ |
| 447 | 428 | MDRV_SCREEN_ADD("screen", RASTER) |
| r4470 | r4471 | |
| 469 | 450 | MDRV_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0) |
| 470 | 451 | MACHINE_DRIVER_END |
| 471 | 452 | |
| 472 | static MACHINE_DRIVER_START( vball2pj ) | |
| 473 | MDRV_IMPORT_FROM(vball) | |
| 474 | 453 | |
| 475 | MDRV_CPU_MODIFY("maincpu") | |
| 476 | MDRV_CPU_PROGRAM_MAP(vball2pj_readmem,writemem) | |
| 477 | MACHINE_DRIVER_END | |
| 478 | ||
| 479 | ||
| 480 | 454 | /*************************************************************************** |
| 481 | 455 | |
| 482 | 456 | Game driver(s) |
| r4470 | r4471 | |
| 572 | 546 | ROM_END |
| 573 | 547 | |
| 574 | 548 | |
| 575 | GAME( 1988, vball, 0, vball, vball, 0, ROT0, "Technos", "U.S. Championship V'ball (US)", 0 ) | |
| 576 | GAME( 1988, vball2pj, vball, vball2pj, vball2pj, 0, ROT0, "Technos", "U.S. Championship V'ball (Japan)", 0 ) | |
| 577 | GAME( 1988, vballb, vball, vball, vball, 0, ROT0, "Technos", "U.S. Championship V'ball (bootleg)", 0 ) | |
| 549 | GAME( 1988, vball, 0, vball, vball, 0, ROT0, "Technos Japan", "U.S. Championship V'ball (US)", 0 ) | |
| 550 | GAME( 1988, vball2pj, vball, vball, vball2pj, 0, ROT0, "Technos Japan", "U.S. Championship V'ball (Japan)", 0 ) | |
| 551 | GAME( 1988, vballb, vball, vball, vball, 0, ROT0, "Technos Japan", "U.S. Championship V'ball (bootleg)", 0 ) |
| r4470 | r4471 | |
|---|---|---|
| 582 | 582 | static ADDRESS_MAP_START( sound_map, ADDRESS_SPACE_PROGRAM, 8 ) |
| 583 | 583 | AM_RANGE(0x0000, 0x7fff) AM_READ(SMH_ROM) |
| 584 | 584 | AM_RANGE(0x8000, 0xbfff) AM_READ(SMH_BANK2) |
| 585 | AM_RANGE(0x0000, 0xbfff) AM_WRITE | |
| 585 | AM_RANGE(0x0000, 0xbfff) AM_WRITE | |
| 586 | 586 | AM_RANGE(0xc000, 0xdfff) AM_RAM |
| 587 | 587 | AM_RANGE(0xe000, 0xe22f) AM_DEVREADWRITE("konami1", k054539_r, k054539_w) |
| 588 | 588 | AM_RANGE(0xe230, 0xe3ff) AM_RAM |
| r4470 | r4471 | |
| 592 | 592 | AM_RANGE(0xf002, 0xf002) AM_READ(soundlatch_r) |
| 593 | 593 | AM_RANGE(0xf003, 0xf003) AM_READ(soundlatch2_r) |
| 594 | 594 | AM_RANGE(0xf800, 0xf800) AM_WRITE(sound_bankswitch_w) |
| 595 | AM_RANGE(0xfff1, 0xfff3) AM_WRITE | |
| 595 | AM_RANGE(0xfff1, 0xfff3) AM_WRITE | |
| 596 | 596 | ADDRESS_MAP_END |
| 597 | 597 | |
| 598 | 598 | static const k054539_interface k054539_config = |
| r4470 | r4471 | |
|---|---|---|
| 12 | 12 | |----------|-------|-----|------|------|------|--------------------------------|-----------------------------------------------------| |
| 13 | 13 | |romname | Pl(s) | Rot | Test | Boot | Game | Control Type | Notes | |
| 14 | 14 | |----------|-------|-----|------|------|------|--------------------------------|-----------------------------------------------------| |
| 15 | |gundmgd | 1 | H | Yes | Yes | Yes | twin-joystick with 4+6 buttons | | | |
| 16 | |sfz3ugd | 2 | H | Yes | Yes | No | joystick with 6 buttons | Spurious irq on ARM7 prg / broken timings | | |
| 15 | |gundmgd | 1 | H | Yes | Yes | Yes | joystick with 4 buttons | | | |
| 16 | |sfz3ugd | 2 | H | Yes | Yes | No | joystick with 6 buttons | Hangs after pressing start | | |
| 17 | 17 | |cvsgd | 2 | H | Yes | Yes | Yes | joystick with 4 buttons | 2 + 2 extra buttons | |
| 18 | |gundmxgd | 1 | H | Yes | Yes | Yes | | |
| 18 | |gundmxgd | 1 | H | Yes | Yes | Yes | | |
| 19 | 19 | |cvs2gd | 2 | H | Yes | Yes | Yes | joystick with 6 buttons | | |
| 20 | |ikaruga | 2 | V | Yes | Yes | | |
| 20 | |ikaruga | 2 | V | Yes | Yes | Yes | |
| 21 | 21 | |ggxx | 2 | H | Yes | Yes | Yes | joystick with 5 buttons | | |
| 22 | 22 | |moeru | 2 | H | No | No | No | joystick with 3 buttons? | Broken i/o, stuck at the "now loading" msg | |
| 23 | |chocomk | 2 | H | | |
| 23 | |chocomk | 2 | H | Yes | Yes | Yes | |
| 24 | 24 | |quizqgd | 2 | V | Yes | Yes | Yes | joystick(?) with 4 buttons | | |
| 25 | 25 | |ggxxrl | 2 | H | Yes | Yes | Yes | joystick with 5 buttons | | |
| 26 | |tetkiwam | 2 | H | No | No | No | joystick with 3 buttons? | | | |
| 27 | |shikgam2 | 2 | V | Yes | Yes | No | joystick with 3 buttons? | Broken i/o | | |
| 26 | |tetkiwam | 2 | H | No | No | No | joystick with 3 buttons? | Black screen, tests the SCIF (UART) regs? | | |
| 27 | |shikgam2 | 2 | V | Yes | Yes | No | joystick with 3 buttons? | Broken i/o, crashes on the proper gameplay | | |
| 28 | 28 | |usagui | 1 | H | Yes | Yes | No | mahjong panel | | |
| 29 | |bdrdown | 2 | H | Yes | Yes | | |
| 29 | |bdrdown | 2 | H | Yes | Yes | Yes | joystick with 3 buttons? | | |
| 30 | 30 | |psyvar2 | 1 | V | No | No | No | joystick with 3 buttons? | | |
| 31 | 31 | |cfield | 1? | H | No? | Yes | No | joystick with 3 buttons? | Broken i/o | |
| 32 | 32 | |trizeal | 2 | V | No | No | No | joystick with 3 buttons? | | |
| 33 | |meltybld | 2 | H | No? | Yes | No? | joystick with 4 buttons? | Crashes in attract with wrong mask | |
| 33 | |meltybld | 2 | H | No? | Yes | No? | joystick with 4 buttons? | Crashes in attract/gameplay with wrong mask | |
| 34 | 34 | |senko | 2 | H | Yes | Yes | No | joystick with 3 buttons? | Broken i/o | |
| 35 | 35 | |senkoo | 2 | H | Yes | Yes | No | joystick with 3 buttons? | Broken i/o | |
| 36 | 36 | |ss2005 | 1 | H | Yes | Yes | No | joystick with 3 buttons? | Broken i/o | |
| r4470 | r4471 | |
| 40 | 40 | |undefeat | 2 | V | No | No | No | joystick with 3 buttons? | Stuck at the "now loading" msg | |
| 41 | 41 | |trgheart | 1 | V | Yes | Yes | No | joystick with 3 buttons? | Broken i/o | |
| 42 | 42 | |jingystm | 2 | H | Yes | Yes | No | joystick with 4 buttons? | Broken i/o | |
| 43 | |meltyb | 2 | H | No? | Yes | No? | joystick with 4 buttons? | Crashes in attract with wrong mask | | |
| 44 | |meltyba | 2 | H | No? | Yes | No? | joystick with 4 buttons? | Crashes in attract with wrong mask | | |
| 43 | |meltyb | 2 | H | No? | Yes | No? | joystick with 4 buttons? | Crashes in attract/gameplay with wrong mask | | |
| 44 | |meltyba | 2 | H | No? | Yes | No? | joystick with 4 buttons? | Crashes in attract/gameplay with wrong mask | | |
| 45 | 45 | |karous | 1 | V | Yes | Yes | No | joystick with 3 buttons? | Broken i/o | |
| 46 | 46 | |takoron | 2 | H | Yes | Yes | Yes | joystick with 3 buttons | | |
| 47 | 47 | -------------------------------------------------------------------------------------------------------------------------------------- |
| 48 | 48 | |confmiss | 2 | H | Yes | Yes | No | lightgun | | |
| 49 | 49 | |sprtjam | 2 | H | Yes | Yes | Yes | joystick with 2 buttons | | |
| 50 | |slashout | 1 | H | Yes | Yes | Yes | joystick with 4 buttons | | |
| 50 | |slashout | 1 | H | Yes | Yes | Yes | joystick with 4 buttons | | |
| 51 | 51 | |spkrbtl | 2 | H | Yes | Yes | No | joystick with 4 buttons | Crashes when loading the gameplay | |
| 52 | 52 | |monkeyba | 1 | H | Yes | Yes | No | ad stick | Crashes when loading the gameplay | |
| 53 | 53 | |dygolf | 2 | H | No | No | No | trackball + 4 buttons | Moans about the jvs settings | |
| r4470 | r4471 | |
| 1057 | 1057 | * Input ports |
| 1058 | 1058 | */ |
| 1059 | 1059 | |
| 1060 | /* for now we hardwire a joystick + 6 buttons for every game.*/ | |
| 1060 | 1061 | static INPUT_PORTS_START( naomi ) |
| 1061 | 1062 | PORT_START("IN0") |
| 1062 | 1063 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_NAME("Service") |
| r4470 | r4471 | |
| 1070 | 1071 | PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON1 ) |
| 1071 | 1072 | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON2 ) |
| 1072 | 1073 | PORT_START("IN2") |
| 1074 | PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON6 ) | |
| 1075 | PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON5 ) | |
| 1076 | PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON4 ) | |
| 1073 | 1077 | PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_BUTTON3 ) |
| 1074 | 1078 | PORT_START("IN3") |
| 1075 | 1079 | PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_START2 ) |
| r4470 | r4471 | |
| 1080 | 1084 | PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2) |
| 1081 | 1085 | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(2) |
| 1082 | 1086 | PORT_START("IN4") |
| 1087 | PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON6 ) PORT_PLAYER(2) | |
| 1088 | PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON5 ) PORT_PLAYER(2) | |
| 1089 | PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_PLAYER(2) | |
| 1083 | 1090 | PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_PLAYER(2) |
| 1084 | 1091 | |
| 1085 | 1092 | PORT_START("COINS") |
| r4470 | r4471 | |
| 2973 | 2980 | /* Incomplete Dumps (just the program rom IC22) */ |
| 2974 | 2981 | GAME( 2000, cspike, naomi, naomi, naomi, 0, ROT0, "Psikyo / Capcom", "Gun Spike (JPN) / Cannon Spike (USA, EXP, KOR, AUS)", GAME_NO_SOUND|GAME_NOT_WORKING ) |
| 2975 | 2982 | GAME( 2000, capsnk, naomi, naomi, naomi, 0, ROT0, "Capcom / SNK", "Capcom Vs. SNK Millennium Fight 2000 (JPN, USA, EXP, KOR, AUS)", GAME_NO_SOUND|GAME_NOT_WORKING ) |
| 2976 | GAME( | |
| 2983 | GAME( 1999, derbyoc, naomi, naomi, naomi, 0, ROT0, "Sega", "Derby Owners Club (JPN, USA, EXP, KOR, AUS)", GAME_NO_SOUND|GAME_NOT_WORKING ) | |
| 2977 | 2984 | GAME( 1998, dybb99, naomi, naomi, naomi, 0, ROT0, "Sega", "Dynamite Baseball '99 (JPN) / World Series '99 (USA, EXP, KOR, AUS)", GAME_NO_SOUND|GAME_NOT_WORKING ) |
| 2978 | 2985 | GAME( 2000, gram2000, naomi, naomi, naomi, 0, ROT0, "Sega", "Giant Gram 2000 (JPN, USA, EXP, KOR, AUS)", GAME_NO_SOUND|GAME_NOT_WORKING ) |
| 2979 | 2986 | GAME( 1999, ggram2, naomi, naomi, naomi, 0, ROT0, "Sega", "Giant Gram (JPN, USA, EXP, KOR, AUS)", GAME_NO_SOUND|GAME_NOT_WORKING ) // strings in rom don't contain '2' |
| r4470 | r4471 | |
| 4009 | 4016 | ROM_LOAD("317-0338-jpn.data", 0x00, 0x50, CRC(eeb2c9e9) SHA1(d30b5914c603219daea9923e1cf8da2be6096742) ) |
| 4010 | 4017 | ROM_END |
| 4011 | 4018 | |
| 4019 | ROM_START( vf4evoa ) | |
| 4020 | NAOMI2_BIOS | |
| 4021 | ||
| 4022 | ROM_REGION( 0x10000000, "user1", ROMREGION_ERASE) // allocate max size in init instead? | |
| 4023 | ||
| 4024 | DISK_REGION( "gdrom" ) | |
| 4025 | DISK_IMAGE_READONLY( "gds-0024a", 0, SHA1(6225e778d73db18be26f882d4f9cd3b3a136d1c9) ) | |
| 4026 | ||
| 4027 | ROM_REGION( 0x50, "picreturn", ROMREGION_ERASE) | |
| 4028 | //PIC16C622A (317-0338-JPN) | |
| 4029 | //(sticker 253-5508-0338J) | |
| 4030 | ROM_LOAD("317-0338-jpn.data", 0x00, 0x50, CRC(eeb2c9e9) SHA1(d30b5914c603219daea9923e1cf8da2be6096742) ) | |
| 4031 | ROM_END | |
| 4032 | ||
| 4012 | 4033 | ROM_START( initdv2j ) |
| 4013 | 4034 | NAOMI2_BIOS |
| 4014 | 4035 | |
| r4470 | r4471 | |
| 4035 | 4056 | ROM_LOAD("317-0387-com.data", 0x00, 0x50, CRC(ab9f3851) SHA1(8b64dc6df176eb7adb48267709a27db221d5e3c3) ) |
| 4036 | 4057 | ROM_END |
| 4037 | 4058 | |
| 4059 | ROM_START( vf4tunedd ) | |
| 4060 | NAOMI2_BIOS | |
| 4061 | ||
| 4062 | ROM_REGION( 0x10000000, "user1", ROMREGION_ERASE) // allocate max size in init instead? | |
| 4063 | ||
| 4064 | DISK_REGION( "gdrom" ) | |
| 4065 | DISK_IMAGE_READONLY( "gds-0036d", 0, SHA1(2f7654307a4c978c5af6c8238c44e70275dd34f9) ) | |
| 4066 | ||
| 4067 | ROM_REGION( 0x50, "picreturn", ROMREGION_ERASE) | |
| 4068 | //PIC16C622A (317-0387-COM) | |
| 4069 | //(sticker 253-5508-0387) | |
| 4070 | ROM_LOAD("317-0387-com.data", 0x00, 0x50, CRC(ab9f3851) SHA1(8b64dc6df176eb7adb48267709a27db221d5e3c3) ) | |
| 4071 | ROM_END | |
| 4072 | ||
| 4073 | ||
| 4074 | ROM_START( vf4tuneda ) | |
| 4075 | NAOMI2_BIOS | |
| 4076 | ||
| 4077 | ROM_REGION( 0x10000000, "user1", ROMREGION_ERASE) // allocate max size in init instead? | |
| 4078 | ||
| 4079 | DISK_REGION( "gdrom" ) | |
| 4080 | DISK_IMAGE_READONLY( "gds-0036a", 0, SHA1(cd630fc4e8f7ed5641b85c609584d7efe0eac137) ) | |
| 4081 | ||
| 4082 | ROM_REGION( 0x50, "picreturn", ROMREGION_ERASE) | |
| 4083 | //PIC16C622A (317-0387-COM) | |
| 4084 | //(sticker 253-5508-0387) | |
| 4085 | ROM_LOAD("317-0387-com.data", 0x00, 0x50, CRC(ab9f3851) SHA1(8b64dc6df176eb7adb48267709a27db221d5e3c3) ) | |
| 4086 | ROM_END | |
| 4087 | ||
| 4088 | ||
| 4038 | 4089 | /* |
| 4039 | 4090 | |
| 4040 | 4091 | Title BEACH SPIKERS |
| r4470 | r4471 | |
| 4098 | 4149 | DISK_REGION( "gdrom" ) |
| 4099 | 4150 | DISK_IMAGE_READONLY( "gds-0025", 0, SHA1(8ea92cf6b493f21b9453832edad7cbc5e5b350c1) ) |
| 4100 | 4151 | |
| 4101 | ROM_REGION( 0x50, "picreturn", ROMREGION_ERASE) | |
| 4152 | ROM_REGION( 0x50, "picreturn", ROMREGION_ERASE) | |
| 4102 | 4153 | ROM_LOAD("317-0343-com.data", 0x00, 0x50, CRC(e9d8fac0) SHA1(85f5bbffbd9d1f7162bae46ddd49e7870fe93662) ) |
| 4103 | 4154 | ROM_END |
| 4104 | 4155 | |
| 4156 | ROM_START( initdv3j ) | |
| 4157 | NAOMI2_BIOS | |
| 4158 | // NAOMIGD_BIOS | |
| 4159 | ||
| 4160 | ROM_REGION( 0x10000000, "user1", ROMREGION_ERASE) // allocate max size in init instead? | |
| 4161 | ||
| 4162 | DISK_REGION( "gdrom" ) | |
| 4163 | DISK_IMAGE_READONLY( "gds-0032b", 0, SHA1(568411aa72ca308a03a6b5b61c79833464b88bc6) ) | |
| 4164 | ||
| 4165 | ROM_REGION( 0x50, "picreturn", ROMREGION_ERASE) | |
| 4166 | ROM_LOAD("gds-0032_pic", 0x00, 0x50, NO_DUMP ) // PIC was missing | |
| 4167 | ROM_END | |
| 4168 | ||
| 4169 | ||
| 4105 | 4170 | GAME( 2001, naomi2, 0, naomi, naomi, 0, ROT0, "Sega", "Naomi 2 Bios", GAME_NO_SOUND|GAME_NOT_WORKING|GAME_IS_BIOS_ROOT ) |
| 4106 | 4171 | |
| 4107 | 4172 | //Naomi 2 Cart Games |
| r4470 | r4471 | |
| 4116 | 4181 | GAME( 2002, beachspi,naomi2, naomigd, naomi, 0, ROT0, "Sega", "Beach Spikers (GDS-0014)", GAME_NO_SOUND|GAME_NOT_WORKING ) |
| 4117 | 4182 | GAME( 2002, initdexp,naomi2, naomigd, naomi, 0, ROT0, "Sega", "Initial D Arcade Stage (Export) (GDS-0025)", GAME_NO_SOUND|GAME_NOT_WORKING ) |
| 4118 | 4183 | GAME( 2002, vf4evo, naomi2, naomigd, naomi, 0, ROT0, "Sega", "Virtua Fighter 4 Evolution (Rev B) (GDS-0024B)", GAME_NO_SOUND|GAME_NOT_WORKING ) |
| 4184 | GAME( 2002, vf4evoa, vf4evo, naomigd, naomi, 0, ROT0, "Sega", "Virtua Fighter 4 Evolution (Rev A) (GDS-0024A)", GAME_NO_SOUND|GAME_NOT_WORKING ) | |
| 4119 | 4185 | GAME( 2002, initdv2j,naomi2, naomigd, naomi, 0, ROT0, "Sega", "Initial D : Arcade Stage Ver. 2 (Japan) (GDS-0026)", GAME_NO_SOUND|GAME_NOT_WORKING ) |
| 4186 | GAME( 2004, initdv3j,naomi2, naomigd, naomi, 0, ROT0, "Sega", "Initial D : Arcade Stage Ver. 3 (Japan) (Rev B) (GDS-0032B)", GAME_NO_SOUND|GAME_NOT_WORKING ) | |
| 4120 | 4187 | GAME( 2004, vf4tuned,naomi2, naomigd, naomi, 0, ROT0, "Sega", "Virtua Fighter 4 Final Tuned (Rev F) (GDS-0036F)", GAME_NO_SOUND|GAME_NOT_WORKING ) |
| 4188 | GAME( 2004, vf4tunedd,vf4tuned,naomigd, naomi, 0, ROT0, "Sega", "Virtua Fighter 4 Final Tuned (Rev D) (GDS-0036D)", GAME_NO_SOUND|GAME_NOT_WORKING ) | |
| 4189 | GAME( 2004, vf4tuneda,vf4tuned,naomigd, naomi, 0, ROT0, "Sega", "Virtua Fighter 4 Final Tuned (Rev A) (GDS-0036A)", GAME_NO_SOUND|GAME_NOT_WORKING ) | |
| 4121 | 4190 | |
| 4122 | 4191 | |
| 4123 | 4192 | /* Atomiswave */ |
| r4470 | r4471 | |
| 4143 | 4212 | ROM_END |
| 4144 | 4213 | |
| 4145 | 4214 | /* |
| 4215 | Title VIRTUA_STRIKER_2002 | |
| 4216 | Media ID 0DD8 | |
| 4217 | Media Config GD-ROM1/1 | |
| 4218 | Regions J | |
| 4219 | Peripheral String 0000000 | |
| 4220 | Product Number GDT-0002 | |
| 4221 | Version V1.005 | |
| 4222 | Release Date 20020730 | |
| 4146 | 4223 | |
| 4224 | ||
| 4225 | PIC | |
| 4226 | ||
| 4227 | 253-5508-337E | |
| 4228 | 317-0337-EXP | |
| 4229 | */ | |
| 4230 | ||
| 4231 | ROM_START( vs2002ex ) | |
| 4232 | TRIFORCE_BIOS | |
| 4233 | //NAOMIGD_BIOS | |
| 4234 | ||
| 4235 | ROM_REGION( 0x20000000, "user1", ROMREGION_ERASE) // allocate max size in init instead? | |
| 4236 | ||
| 4237 | DISK_REGION( "gdrom" ) | |
| 4238 | DISK_IMAGE_READONLY( "gdt-0002", 0, SHA1(471e896d43167c93cc229cfc94ff7ac6de7cf9a4) ) | |
| 4239 | ||
| 4240 | ROM_REGION( 0x50, "picreturn", ROMREGION_ERASE) | |
| 4241 | ROM_LOAD("317-0337-exp.data", 0x00, 0x50, CRC(aa6be604) SHA1(fabc43ecfb7ddf1d5a87f10884852027d6f4773b) ) | |
| 4242 | ROM_END | |
| 4243 | ||
| 4244 | ||
| 4245 | ROM_START( gekpurya ) | |
| 4246 | TRIFORCE_BIOS | |
| 4247 | //NAOMIGD_BIOS | |
| 4248 | ||
| 4249 | ROM_REGION( 0x20000000, "user1", ROMREGION_ERASE) // allocate max size in init instead? | |
| 4250 | ||
| 4251 | DISK_REGION( "gdrom" ) | |
| 4252 | DISK_IMAGE_READONLY( "gdt-0008c", 0, SHA1(2c1bdb8324efc216edd771fe45c680ac726111a0) ) | |
| 4253 | ||
| 4254 | ROM_REGION( 0x50, "picreturn", ROMREGION_ERASE) | |
| 4255 | ROM_LOAD("gdt-0008c.data", 0x00, 0x50, CRC(08434e5e) SHA1(2121999e851f6f62ab845e6de40849d850ac9d1c) ) | |
| 4256 | ROM_END | |
| 4257 | ||
| 4258 | ROM_START( tfupdate ) | |
| 4259 | TRIFORCE_BIOS | |
| 4260 | //NAOMIGD_BIOS | |
| 4261 | ||
| 4262 | ROM_REGION( 0x20000000, "user1", ROMREGION_ERASE) // allocate max size in init instead? | |
| 4263 | ||
| 4264 | DISK_REGION( "gdrom" ) | |
| 4265 | DISK_IMAGE_READONLY( "gdt-0011", 0, SHA1(71bfa8f53d211085c020d54f55eeeabf85212a0b) ) | |
| 4266 | ||
| 4267 | ROM_REGION( 0x50, "picreturn", ROMREGION_ERASE) | |
| 4268 | ROM_LOAD("gdt-0011.data", 0x00, 0x50, CRC(08434e5e) SHA1(2121999e851f6f62ab845e6de40849d850ac9d1c) ) | |
| 4269 | ROM_END | |
| 4270 | ||
| 4271 | ||
| 4272 | /* | |
| 4273 | ||
| 4147 | 4274 | Title VIRTUA STRIKER 4 |
| 4148 | 4275 | Media ID 93B2 |
| 4149 | 4276 | Media Config GD-ROM1/1 |
| r4470 | r4471 | |
| 4179 | 4306 | ROM_LOAD("317-0393-exp.data", 0x00, 0x50, CRC(2dcfecd7) SHA1(d805168e1564051ae5c47876ade2c9843253c6b4) ) |
| 4180 | 4307 | ROM_END |
| 4181 | 4308 | |
| 4309 | ||
| 4182 | 4310 | /* |
| 4183 | Title VIRTUA_STRIKER_2002 | |
| 4184 | Media ID 0DD8 | |
| 4311 | ||
| 4312 | Title TRF GDROM TBA EX SATL | |
| 4313 | Media ID 92C5 | |
| 4185 | 4314 | Media Config GD-ROM1/1 |
| 4186 | 4315 | Regions J |
| 4187 | 4316 | Peripheral String 0000000 |
| 4188 | Product Number GDT-0002 | |
| 4189 | Version V1.005 | |
| 4190 | Release Date 20020730 | |
| 4317 | Product Number GDT-0010C | |
| 4318 | Version V4.000 | |
| 4319 | Release Date 20040608 | |
| 4320 | Manufacturer ID | |
| 4191 | 4321 | |
| 4192 | ||
| 4193 | PIC | |
| 4194 | ||
| 4195 | 253-5508-337E | |
| 4196 | 317-0337-EXP | |
| 4322 | TOC DISC | |
| 4323 | Track Start Sector End Sector Track Size | |
| 4324 | track01.bin 150 599 1058400 | |
| 4325 | track02.raw 750 2101 3179904 | |
| 4326 | track03.bin 45150 549299 1185760800 | |
| 4197 | 4327 | */ |
| 4198 | 4328 | |
| 4199 | ROM_START( v | |
| 4329 | ROM_START( avalon13 | |
| 4200 | 4330 | TRIFORCE_BIOS |
| 4201 | 4331 | //NAOMIGD_BIOS |
| 4202 | 4332 | |
| 4203 | 4333 | ROM_REGION( 0x20000000, "user1", ROMREGION_ERASE) // allocate max size in init instead? |
| 4204 | 4334 | |
| 4205 | 4335 | DISK_REGION( "gdrom" ) |
| 4206 | DISK_IMAGE_READONLY( "gdt-000 | |
| 4336 | DISK_IMAGE_READONLY( "gdt-0010c", 0, SHA1( | |
| 4207 | 4337 | |
| 4208 | 4338 | ROM_REGION( 0x50, "picreturn", ROMREGION_ERASE) |
| 4209 | ROM_LOAD(" | |
| 4339 | ROM_LOAD("gdt-0010c | |
| 4210 | 4340 | ROM_END |
| 4211 | 4341 | |
| 4212 | 4342 | |
| 4213 | ROM_START( gekpurya ) | |
| 4343 | /* | |
| 4344 | ||
| 4345 | Title TRF GDROM TBT SATL | |
| 4346 | Media ID 1348 | |
| 4347 | Media Config GD-ROM1/1 | |
| 4348 | Regions J | |
| 4349 | Peripheral String 0000000 | |
| 4350 | Product Number GDT-0017B | |
| 4351 | Version V3.001 | |
| 4352 | Release Date 20041102 | |
| 4353 | Manufacturer ID | |
| 4354 | ||
| 4355 | TOC DISC | |
| 4356 | Track Start Sector End Sector Track Size | |
| 4357 | track01.bin 150 599 1058400 | |
| 4358 | track02.raw 750 2101 3179904 | |
| 4359 | track03.bin 45150 549299 1185760800 | |
| 4360 | ||
| 4361 | */ | |
| 4362 | ||
| 4363 | ROM_START( avalon20 ) | |
| 4214 | 4364 | TRIFORCE_BIOS |
| 4215 | 4365 | //NAOMIGD_BIOS |
| 4216 | 4366 | |
| 4217 | 4367 | ROM_REGION( 0x20000000, "user1", ROMREGION_ERASE) // allocate max size in init instead? |
| 4218 | 4368 | |
| 4219 | 4369 | DISK_REGION( "gdrom" ) |
| 4220 | DISK_IMAGE_READONLY( "gdt-00 | |
| 4370 | DISK_IMAGE_READONLY( "gdt-0017b", 0, SHA1(e2 | |
| 4221 | 4371 | |
| 4222 | 4372 | ROM_REGION( 0x50, "picreturn", ROMREGION_ERASE) |
| 4223 | ROM_LOAD("gdt-00 | |
| 4373 | ROM_LOAD("gdt-0017b.data", 0x00, 0x50, CRC( | |
| 4224 | 4374 | ROM_END |
| 4225 | 4375 | |
| 4226 | 4376 | |
| 4227 | 4377 | |
| 4228 | GAME( 200 | |
| 4378 | GAME( 2002, triforce, 0, naomigd, naomi, 0, ROT0, "Sega", "Triforce Bios", GAME_NO_SOUND|GAME_NOT_WORKING|GAME_IS_BIOS_ROOT ) | |
| 4229 | 4379 | GAME( 2002, vs2002ex, triforce, naomigd, naomi, 0, ROT0, "Sega", "Virtua Striker 2002 (GDT-0002)", GAME_NO_SOUND|GAME_NOT_WORKING ) |
| 4230 | 4380 | GAME( 2003, gekpurya, triforce, naomigd, naomi, 0, ROT0, "Sega", "Gekitou Pro Yakyuu Mizushima Shinji All Stars vs. Pro Yakyuu (Rev C) (GDT-0008C)", GAME_NO_SOUND|GAME_NOT_WORKING ) |
| 4231 | GAME( 200?, vs4, triforce, naomigd, naomi, 0, ROT0, "Sega", "Virtua Striker 4 (GDT-0015)", GAME_NO_SOUND|GAME_NOT_WORKING ) | |
| 4381 | GAME( 200?, tfupdate, triforce, naomigd, naomi, 0, ROT0, "Sega", "Triforce DIMM Updater (GDT-0011)", GAME_NO_SOUND|GAME_NOT_WORKING ) | |
| 4382 | GAME( 2004, vs4, triforce, naomigd, naomi, 0, ROT0, "Sega", "Virtua Striker 4 (GDT-0015)", GAME_NO_SOUND|GAME_NOT_WORKING ) | |
| 4383 | GAME( 2004, avalon13, triforce, naomigd, naomi, 0, ROT0, "Sega", "The Key Of Avalon 1.3 - Chaotic Sabbat - Client (GDT-0010C) (V4.000)", GAME_NO_SOUND|GAME_NOT_WORKING ) | |
| 4384 | GAME( 2004, avalon20, triforce, naomigd, naomi, 0, ROT0, "Sega", "The Key Of Avalon 2.0 - Eutaxy and Commandment - Client (GDT-0017B) (V3.001)", GAME_NO_SOUND|GAME_NOT_WORKING ) | |
| 4232 | 4385 | |
| 4233 | 4386 | |
| 4234 | 4387 | /********************************************************************************************************************* |
| r4470 | r4471 | |
| 4314 | 4467 | ROM_LOAD("317-0354-com.data", 0x00, 0x50, CRC(df7e3217) SHA1(9f0f4bf6b15f3b6eeea81eaa27b3d25bd94110da) ) |
| 4315 | 4468 | ROM_END |
| 4316 | 4469 | |
| 4470 | ROM_START( mj2 ) | |
| 4471 | CHIHIRO_BIOS | |
| 4472 | ||
| 4473 | ROM_REGION( 0x20000000, "user1", ROMREGION_ERASE) // allocate max size in init instead? | |
| 4474 | ||
| 4475 | DISK_REGION( "gdrom" ) | |
| 4476 | DISK_IMAGE_READONLY( "gdx-0006c", 0, SHA1(505653117a73ed8b256ccf19450e7573a4dc57e9) ) | |
| 4477 | ||
| 4478 | ROM_REGION( 0x50, "picreturn", ROMREGION_ERASE) // key was missing | |
| 4479 | ROM_LOAD("gdx-0006c.pic_data", 0x00, 0x50, NO_DUMP ) | |
| 4480 | ROM_END | |
| 4481 | ||
| 4482 | ||
| 4317 | 4483 | ROM_START( wangmid ) |
| 4318 | 4484 | CHIHIRO_BIOS |
| 4319 | 4485 | |
| r4470 | r4471 | |
| 4326 | 4492 | ROM_LOAD("gdx-0009b.data", 0x00, 0x50, CRC(3af801f3) SHA1(e9a2558930f3f1f55d5b3c2cadad69329d931f26) ) |
| 4327 | 4493 | ROM_END |
| 4328 | 4494 | |
| 4495 | ROM_START( wangmid2 ) | |
| 4496 | CHIHIRO_BIOS | |
| 4329 | 4497 | |
| 4498 | ROM_REGION( 0x20000000, "user1", ROMREGION_ERASE) // allocate max size in init instead? | |
| 4499 | ||
| 4500 | DISK_REGION( "gdrom" ) | |
| 4501 | DISK_IMAGE_READONLY( "gdx-0015", 0, SHA1(259483fd211a70c23205ffd852316d616c5a2740) ) | |
| 4502 | ||
| 4503 | ROM_REGION( 0x50, "picreturn", ROMREGION_ERASE) | |
| 4504 | ROM_LOAD("gdx-0015.data", 0x00, 0x50, CRC(75c716aa) SHA1(5c2bcf3d28a80b336c6882d5aeb010d04327f8c1) ) | |
| 4505 | ROM_END | |
| 4506 | ||
| 4507 | ROM_START( mj3 ) | |
| 4508 | CHIHIRO_BIOS | |
| 4509 | ||
| 4510 | ROM_REGION( 0x20000000, "user1", ROMREGION_ERASE) // allocate max size in init instead? | |
| 4511 | ||
| 4512 | DISK_REGION( "gdrom" ) | |
| 4513 | DISK_IMAGE_READONLY( "gdx-0017d", 0, SHA1(cfbbd452c8f4efe0e99f398f5521fc3574b913bb) ) | |
| 4514 | ||
| 4515 | ROM_REGION( 0x50, "picreturn", ROMREGION_ERASE) // key was missing | |
| 4516 | ROM_LOAD("gdx-0017d.pic_data", 0x00, 0x50, NO_DUMP ) | |
| 4517 | ROM_END | |
| 4518 | ||
| 4519 | ||
| 4330 | 4520 | GAME( 200?, chihiro, 0, naomigd, naomi, 0, ROT0, "Sega", "Chihiro Bios", GAME_NO_SOUND|GAME_NOT_WORKING|GAME_IS_BIOS_ROOT ) |
| 4331 | GAME( 2005, wangmid, chihiro, naomigd, naomi, 0, ROT0, "Sega", "Wangan Midnight Maximum Tune (Ver. B) (Export) (GDX-0009B)", GAME_NO_SOUND|GAME_NOT_WORKING ) | |
| 4521 | GAME( 2005, mj2, chihiro, naomigd, naomi, 0, ROT0, "Sega", "Sega Network Taisen Mahjong MJ 2 (Rev C) [GDX-0006C]", GAME_NO_SOUND|GAME_NOT_WORKING ) | |
| 4522 | GAME( 2005, wangmid, chihiro, naomigd, naomi, 0, ROT0, "Sega", "Wangan Midnight Maximum Tune (Rev. B) (Export) (GDX-0009B)", GAME_NO_SOUND|GAME_NOT_WORKING ) | |
| 4523 | GAME( 2005, wangmid2, chihiro, naomigd, naomi, 0, ROT0, "Sega", "Wangan Midnight Maximum Tune 2 (Japan?) (GDX-0015)", GAME_NO_SOUND|GAME_NOT_WORKING ) | |
| 4332 | 4524 | GAME( 2005, ghostsqu, chihiro, naomigd, naomi, 0, ROT0, "Sega", "Ghost Squad (Ver. A?) (GDX-0012A)", GAME_NO_SOUND|GAME_NOT_WORKING ) |
| 4333 | 4525 | GAME( 2003, vcop3, chihiro, naomigd, naomi, 0, ROT0, "Sega", "Virtua Cop 3 (GDX-0003A)", GAME_NO_SOUND|GAME_NOT_WORKING ) |
| 4526 | GAME( 2005, mj3, chihiro, naomigd, naomi, 0, ROT0, "Sega", "Sega Network Taisen Mahjong MJ 3 (Rev D) [GDX-0017D]", GAME_NO_SOUND|GAME_NOT_WORKING ) | |
| 4334 | 4527 | |
| 4335 | 4528 |
| r4470 | r4471 | |
|---|---|---|
| 50 | 50 | #include "sound/k007232.h" |
| 51 | 51 | #include "sound/k051649.h" |
| 52 | 52 | #include "includes/nemesis.h" |
| 53 | #include "konamipt.h" | |
| 53 | 54 | |
| 54 | ||
| 55 | 55 | int nemesis_irq_on = 0; |
| 56 | 56 | int nemesis_irq2_on = 0; |
| 57 | 57 | static int nemesis_irq1_on = 0; |
| r4470 | r4471 | |
| 407 | 407 | AM_RANGE(0x05e002, 0x05e003) AM_WRITE(&gx400_irq1_enable_word_w) /* ?? */ |
| 408 | 408 | AM_RANGE(0x05e004, 0x05e005) AM_WRITE(nemesis_gfx_flipx_word_w) |
| 409 | 409 | AM_RANGE(0x05e006, 0x05e007) AM_WRITE(nemesis_gfx_flipy_word_w) |
| 410 | AM_RANGE(0x05e008, 0x05e009) AM_WRITE | |
| 410 | AM_RANGE(0x05e008, 0x05e009) AM_WRITE | |
| 411 | 411 | AM_RANGE(0x05e00e, 0x05e00f) AM_WRITE(&gx400_irq4_enable_word_w) /* ?? */ |
| 412 | 412 | AM_RANGE(0x060000, 0x067fff) AM_RAM /* WORK RAM */ |
| 413 | 413 | AM_RANGE(0x070000, 0x070001) AM_READ(konamigt_input_word_r) |
| r4470 | r4471 | |
| 628 | 628 | |
| 629 | 629 | /******************************************************************************/ |
| 630 | 630 | |
| 631 | #define GX400_COINAGE_DIP \ | |
| 632 | PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SWA:1,2,3,4") \ | |
| 633 | PORT_DIPSETTING( 0x02, DEF_STR( 4C_1C ) ) \ | |
| 634 | PORT_DIPSETTING( 0x05, DEF_STR( 3C_1C ) ) \ | |
| 635 | PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) ) \ | |
| 636 | PORT_DIPSETTING( 0x04, DEF_STR( 3C_2C ) ) \ | |
| 637 | PORT_DIPSETTING( 0x01, DEF_STR( 4C_3C ) ) \ | |
| 638 | PORT_DIPSETTING( 0x0f, DEF_STR( 1C_1C ) ) \ | |
| 639 | PORT_DIPSETTING( 0x03, DEF_STR( 3C_4C ) ) \ | |
| 640 | PORT_DIPSETTING( 0x07, DEF_STR( 2C_3C ) ) \ | |
| 641 | PORT_DIPSETTING( 0x0e, DEF_STR( 1C_2C ) ) \ | |
| 642 | PORT_DIPSETTING( 0x06, DEF_STR( 2C_5C ) ) \ | |
| 643 | PORT_DIPSETTING( 0x0d, DEF_STR( 1C_3C ) ) \ | |
| 644 | PORT_DIPSETTING( 0x0c, DEF_STR( 1C_4C ) ) \ | |
| 645 | PORT_DIPSETTING( 0x0b, DEF_STR( 1C_5C ) ) \ | |
| 646 | PORT_DIPSETTING( 0x0a, DEF_STR( 1C_6C ) ) \ | |
| 647 | PORT_DIPSETTING( 0x09, DEF_STR( 1C_7C ) ) \ | |
| 648 | PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) \ | |
| 649 | PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SWA:5,6,7,8") \ | |
| 650 | PORT_DIPSETTING( 0x20, DEF_STR( 4C_1C ) ) \ | |
| 651 | PORT_DIPSETTING( 0x50, DEF_STR( 3C_1C ) ) \ | |
| 652 | PORT_DIPSETTING( 0x80, DEF_STR( 2C_1C ) ) \ | |
| 653 | PORT_DIPSETTING( 0x40, DEF_STR( 3C_2C ) ) \ | |
| 654 | PORT_DIPSETTING( 0x10, DEF_STR( 4C_3C ) ) \ | |
| 655 | PORT_DIPSETTING( 0xf0, DEF_STR( 1C_1C ) ) \ | |
| 656 | PORT_DIPSETTING( 0x30, DEF_STR( 3C_4C ) ) \ | |
| 657 | PORT_DIPSETTING( 0x70, DEF_STR( 2C_3C ) ) \ | |
| 658 | PORT_DIPSETTING( 0xe0, DEF_STR( 1C_2C ) ) \ | |
| 659 | PORT_DIPSETTING( 0x60, DEF_STR( 2C_5C ) ) \ | |
| 660 | PORT_DIPSETTING( 0xd0, DEF_STR( 1C_3C ) ) \ | |
| 661 | PORT_DIPSETTING( 0xc0, DEF_STR( 1C_4C ) ) \ | |
| 662 | PORT_DIPSETTING( 0xb0, DEF_STR( 1C_5C ) ) \ | |
| 663 | PORT_DIPSETTING( 0xa0, DEF_STR( 1C_6C ) ) \ | |
| 664 | PORT_DIPSETTING( 0x90, DEF_STR( 1C_7C ) ) \ | |
| 665 | PORT_DIPSETTING( 0x00, "Disabled" ) | |
| 666 | ||
| 667 | ||
| 668 | 631 | static INPUT_PORTS_START( nemesis ) |
| 669 | 632 | PORT_START("IN0") |
| 670 | 633 | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) |
| r4470 | r4471 | |
| 711 | 674 | PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) |
| 712 | 675 | |
| 713 | 676 | PORT_START("DSW0") |
| 714 | GX400_COINAGE_DIP | |
| 677 | KONAMI_COINAGE_LOC(DEF_STR( Free_Play ), DEF_STR( None ), SWA) | |
| 678 | /* "None" = coin slot B disabled */ | |
| 715 | 679 | |
| 716 | 680 | PORT_START("DSW1") |
| 717 | 681 | PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW1:1,2") |
| r4470 | r4471 | |
| 739 | 703 | |
| 740 | 704 | |
| 741 | 705 | static INPUT_PORTS_START( nemesuk ) |
| 742 | PORT_START("IN0") | |
| 743 | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) | |
| 744 | PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN2 ) | |
| 745 | PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SERVICE1 ) | |
| 746 | PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_START1 ) | |
| 747 | PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_START2 ) | |
| 748 | PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN ) | |
| 749 | PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN ) | |
| 750 | PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) | |
| 706 | PORT_INCLUDE( nemesis ) | |
| 751 | 707 | |
| 752 | PORT_START("IN1") | |
| 753 | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) | |
| 754 | PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) | |
| 755 | PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) | |
| 756 | PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) | |
| 757 | PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(1) // power-up | |
| 758 | PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_PLAYER(1) // shoot | |
| 759 | PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(1) // missile | |
| 760 | PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) | |
| 761 | ||
| 762 | PORT_START("IN2") | |
| 763 | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) | |
| 764 | PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) | |
| 765 | PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) | |
| 766 | PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) | |
| 767 | PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2) | |
| 768 | PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_PLAYER(2) | |
| 769 | PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(2) | |
| 770 | PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) | |
| 771 | ||
| 772 | PORT_START("TEST") | |
| 773 | PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SWT:1") | |
| 774 | PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) | |
| 775 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) | |
| 776 | PORT_DIPNAME( 0x02, 0x02, DEF_STR( Version ) ) PORT_DIPLOCATION("SWT:2") | |
| 777 | PORT_DIPSETTING( 0x02, DEF_STR( Normal ) ) | |
| 778 | PORT_DIPSETTING( 0x00, "Vs" ) | |
| 779 | PORT_SERVICE_DIPLOC( 0x04, IP_ACTIVE_LOW, "SWT:3" ) | |
| 780 | PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNKNOWN ) | |
| 781 | PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNKNOWN ) | |
| 782 | PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN ) | |
| 783 | PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN ) | |
| 784 | PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) | |
| 785 | ||
| 786 | PORT_START("DSW0") | |
| 787 | GX400_COINAGE_DIP | |
| 788 | ||
| 789 | PORT_START("DSW1") | |
| 708 | PORT_MODIFY("DSW1") | |
| 790 | 709 | PORT_DIPNAME( 0x03, 0x02, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW1:1,2") |
| 791 | 710 | PORT_DIPSETTING( 0x03, "2" ) |
| 792 | 711 | PORT_DIPSETTING( 0x02, "3" ) |
| 793 | 712 | PORT_DIPSETTING( 0x01, "5" ) |
| 794 | 713 | PORT_DIPSETTING( 0x00, "7" ) |
| 795 | PORT_DIPNAME( 0x04, 0x00, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SW1:3") | |
| 796 | PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) | |
| 797 | PORT_DIPSETTING( 0x04, DEF_STR( Cocktail ) ) | |
| 798 | 714 | PORT_DIPNAME( 0x18, 0x18, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW1:4,5") |
| 799 | 715 | PORT_DIPSETTING( 0x18, "20k and every 70k" ) |
| 800 | 716 | PORT_DIPSETTING( 0x10, "30k and every 80k" ) |
| 801 | 717 | PORT_DIPSETTING( 0x08, "20k" ) |
| 802 | 718 | PORT_DIPSETTING( 0x00, "30k" ) |
| 803 | PORT_DIPNAME( 0x60, 0x60, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW1:6,7") | |
| 804 | PORT_DIPSETTING( 0x60, DEF_STR( Easy ) ) | |
| 805 | PORT_DIPSETTING( 0x40, DEF_STR( Medium ) ) | |
| 806 | PORT_DIPSETTING( 0x20, DEF_STR( Hard ) ) | |
| 807 | PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) | |
| 808 | PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW1:8") | |
| 809 | PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) | |
| 810 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) | |
| 811 | 719 | INPUT_PORTS_END |
| 812 | 720 | |
| 813 | 721 | |
| r4470 | r4471 | |
| 830 | 738 | PORT_START("IN2") |
| 831 | 739 | PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNKNOWN ) |
| 832 | 740 | |
| 741 | PORT_START("IN3") | |
| 742 | PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON2 ) | |
| 743 | PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON1 ) | |
| 744 | // PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_BUTTON4 ) | |
| 745 | ||
| 833 | 746 | PORT_START("TEST") |
| 834 | 747 | PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SWT:1") |
| 835 | 748 | PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) |
| r4470 | r4471 | |
| 845 | 758 | PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) |
| 846 | 759 | |
| 847 | 760 | PORT_START("DSW0") |
| 848 | GX400_COINAGE_DIP | |
| 761 | KONAMI_COINAGE_LOC(DEF_STR( Free_Play ), "No Coin B", SWA) | |
| 762 | /* "No Coin B" = coins produce sound, but no effect on coin counter */ | |
| 849 | 763 | |
| 850 | 764 | PORT_START("DSW1") |
| 851 | 765 | PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:1") |
| r4470 | r4471 | |
| 874 | 788 | |
| 875 | 789 | PORT_START("PADDLE") |
| 876 | 790 | PORT_BIT( 0x7f, 0x40, IPT_PADDLE ) PORT_SENSITIVITY(25) PORT_KEYDELTA(10) |
| 877 | ||
| 878 | PORT_START("IN3") | |
| 879 | PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON2 ) | |
| 880 | PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON1 ) | |
| 881 | // PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_BUTTON4 ) | |
| 882 | 791 | INPUT_PORTS_END |
| 883 | 792 | |
| 884 | 793 | |
| r4470 | r4471 | |
| 901 | 810 | PORT_START("IN2") |
| 902 | 811 | PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) |
| 903 | 812 | |
| 813 | PORT_START("IN3") | |
| 814 | PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON2 ) | |
| 815 | PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON1 ) | |
| 816 | // PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_BUTTON4 ) | |
| 817 | ||
| 904 | 818 | PORT_START("TEST") |
| 905 | 819 | PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SWT:1") |
| 906 | 820 | PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) |
| r4470 | r4471 | |
| 916 | 830 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) |
| 917 | 831 | |
| 918 | 832 | PORT_START("DSW0") |
| 919 | GX400_COINAGE_DIP | |
| 833 | KONAMI_COINAGE_LOC(DEF_STR( Free_Play ), "No Coin B", SWA) | |
| 834 | /* "No Coin B" = coins produce sound, but no effect on coin counter */ | |
| 920 | 835 | |
| 921 | 836 | PORT_START("DSW1") |
| 922 | 837 | PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:1") |
| r4470 | r4471 | |
| 945 | 860 | |
| 946 | 861 | PORT_START("PADDLE") |
| 947 | 862 | PORT_BIT( 0x7f, 0x40, IPT_PADDLE ) PORT_SENSITIVITY(25) PORT_KEYDELTA(10) |
| 948 | ||
| 949 | PORT_START("IN3") | |
| 950 | PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON2 ) | |
| 951 | PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON1 ) | |
| 952 | // PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_BUTTON4 ) | |
| 953 | 863 | INPUT_PORTS_END |
| 954 | 864 | |
| 955 | 865 | |
| 956 | 866 | static INPUT_PORTS_START( gwarrior ) |
| 957 | 867 | PORT_START("IN0") |
| 958 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) | |
| 959 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) | |
| 960 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 ) | |
| 961 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) | |
| 962 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 ) | |
| 963 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 964 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 965 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 868 | KONAMI8_SYSTEM_UNK | |
| 966 | 869 | |
| 967 | 870 | PORT_START("IN1") |
| 968 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) | |
| 969 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) | |
| 970 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) | |
| 971 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) | |
| 972 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) | |
| 973 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) | |
| 974 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) | |
| 871 | KONAMI8_B321(1) | |
| 975 | 872 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) |
| 976 | 873 | |
| 977 | 874 | PORT_START("IN2") |
| 978 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) | |
| 979 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) | |
| 980 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) | |
| 981 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) | |
| 982 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) | |
| 983 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) | |
| 984 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) | |
| 875 | KONAMI8_B321(2) | |
| 985 | 876 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) |
| 986 | 877 | |
| 987 | 878 | PORT_START("TEST") |
| r4470 | r4471 | |
| 999 | 890 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) |
| 1000 | 891 | |
| 1001 | 892 | PORT_START("DSW0") |
| 1002 | GX400_COINAGE_DIP | |
| 893 | KONAMI_COINAGE_LOC(DEF_STR( Free_Play ), "No Coin B", SWA) | |
| 894 | /* "No Coin B" = coins produce sound, but no effect on coin counter */ | |
| 1003 | 895 | |
| 1004 | 896 | PORT_START("DSW1") |
| 1005 | 897 | PORT_DIPNAME( 0x03, 0x01, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW1:1,2") |
| r4470 | r4471 | |
| 1028 | 920 | |
| 1029 | 921 | static INPUT_PORTS_START( twinbee ) |
| 1030 | 922 | PORT_START("IN0") |
| 1031 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) | |
| 1032 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) | |
| 1033 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 ) | |
| 1034 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) | |
| 1035 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 ) | |
| 1036 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 1037 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 1038 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 923 | KONAMI8_SYSTEM_UNK | |
| 1039 | 924 | |
| 1040 | 925 | PORT_START("IN1") |
| 1041 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) | |
| 1042 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) | |
| 1043 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) | |
| 1044 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) | |
| 1045 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) | |
| 1046 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) | |
| 1047 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 1048 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 926 | KONAMI8_B12_UNK(1) | |
| 1049 | 927 | |
| 1050 | 928 | PORT_START("IN2") |
| 1051 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) | |
| 1052 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) | |
| 1053 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) | |
| 1054 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) | |
| 1055 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) | |
| 1056 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) | |
| 1057 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 1058 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 929 | KONAMI8_B12_UNK(2) | |
| 1059 | 930 | |
| 1060 | 931 | PORT_START("TEST") |
| 1061 | 932 | PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SWT:1") |
| r4470 | r4471 | |
| 1072 | 943 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) |
| 1073 | 944 | |
| 1074 | 945 | PORT_START("DSW0") |
| 1075 | GX400_COINAGE_DIP | |
| 946 | KONAMI_COINAGE_LOC(DEF_STR( Free_Play ), "No Coin B", SWA) | |
| 947 | /* "No Coin B" = coins produce sound, but no effect on coin counter */ | |
| 1076 | 948 | |
| 1077 | 949 | PORT_START("DSW1") |
| 1078 | 950 | PORT_DIPNAME( 0x03, 0x01, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW1:1,2") |
| r4470 | r4471 | |
| 1101 | 973 | |
| 1102 | 974 | static INPUT_PORTS_START( gradius ) |
| 1103 | 975 | PORT_START("IN0") |
| 1104 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) | |
| 1105 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) | |
| 1106 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 ) | |
| 1107 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) | |
| 1108 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 ) | |
| 1109 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 1110 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 1111 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 976 | KONAMI8_SYSTEM_UNK | |
| 1112 | 977 | |
| 1113 | 978 | PORT_START("IN1") |
| 1114 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) | |
| 1115 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) | |
| 1116 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) | |
| 1117 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) | |
| 1118 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) // power-up | |
| 1119 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) // shoot | |
| 1120 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) // missile | |
| 979 | KONAMI8_B132(1) // button1 = power-up, button3 = shoot, button2 = missile | |
| 1121 | 980 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) |
| 1122 | 981 | |
| 1123 | 982 | PORT_START("IN2") |
| 1124 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) | |
| 1125 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) | |
| 1126 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) | |
| 1127 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) | |
| 1128 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) | |
| 1129 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) | |
| 1130 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) | |
| 983 | KONAMI8_B132(2) | |
| 1131 | 984 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) |
| 1132 | 985 | |
| 1133 | 986 | PORT_START("TEST") |
| r4470 | r4471 | |
| 1145 | 998 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) |
| 1146 | 999 | |
| 1147 | 1000 | PORT_START("DSW0") |
| 1148 | GX400_COINAGE_DIP | |
| 1001 | KONAMI_COINAGE_LOC(DEF_STR( Free_Play ), DEF_STR( None ), SWA) | |
| 1002 | /* "None" = coin slot B disabled */ | |
| 1149 | 1003 | |
| 1150 | 1004 | PORT_START("DSW1") |
| 1151 | 1005 | PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW1:1,2") |
| r4470 | r4471 | |
| 1303 | 1157 | PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) |
| 1304 | 1158 | |
| 1305 | 1159 | PORT_START("DSW0") |
| 1306 | PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW0:1,2,3,4") | |
| 1307 | PORT_DIPSETTING( 0x02, DEF_STR( 4C_1C ) ) | |
| 1308 | PORT_DIPSETTING( 0x05, DEF_STR( 3C_1C ) ) | |
| 1309 | PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) ) | |
| 1310 | PORT_DIPSETTING( 0x04, DEF_STR( 3C_2C ) ) | |
| 1311 | PORT_DIPSETTING( 0x01, DEF_STR( 4C_3C ) ) | |
| 1312 | PORT_DIPSETTING( 0x0f, DEF_STR( 1C_1C ) ) | |
| 1313 | PORT_DIPSETTING( 0x03, DEF_STR( 3C_4C ) ) | |
| 1314 | PORT_DIPSETTING( 0x07, DEF_STR( 2C_3C ) ) | |
| 1315 | PORT_DIPSETTING( 0x0e, DEF_STR( 1C_2C ) ) | |
| 1316 | PORT_DIPSETTING( 0x06, DEF_STR( 2C_5C ) ) | |
| 1317 | PORT_DIPSETTING( 0x0d, DEF_STR( 1C_3C ) ) | |
| 1318 | PORT_DIPSETTING( 0x0c, DEF_STR( 1C_4C ) ) | |
| 1319 | PORT_DIPSETTING( 0x0b, DEF_STR( 1C_5C ) ) | |
| 1320 | PORT_DIPSETTING( 0x0a, DEF_STR( 1C_6C ) ) | |
| 1321 | PORT_DIPSETTING( 0x09, DEF_STR( 1C_7C ) ) | |
| 1322 | PORT_DIPSETTING( 0x00, "Disabled" ) | |
| 1323 | PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW0:5,6,7,8") | |
| 1324 | PORT_DIPSETTING( 0x20, DEF_STR( 4C_1C ) ) | |
| 1325 | PORT_DIPSETTING( 0x50, DEF_STR( 3C_1C ) ) | |
| 1326 | PORT_DIPSETTING( 0x80, DEF_STR( 2C_1C ) ) | |
| 1327 | PORT_DIPSETTING( 0x40, DEF_STR( 3C_2C ) ) | |
| 1328 | PORT_DIPSETTING( 0x10, DEF_STR( 4C_3C ) ) | |
| 1329 | PORT_DIPSETTING( 0xf0, DEF_STR( 1C_1C ) ) | |
| 1330 | PORT_DIPSETTING( 0x30, DEF_STR( 3C_4C ) ) | |
| 1331 | PORT_DIPSETTING( 0x70, DEF_STR( 2C_3C ) ) | |
| 1332 | PORT_DIPSETTING( 0xe0, DEF_STR( 1C_2C ) ) | |
| 1333 | PORT_DIPSETTING( 0x60, DEF_STR( 2C_5C ) ) | |
| 1334 | PORT_DIPSETTING( 0xd0, DEF_STR( 1C_3C ) ) | |
| 1335 | PORT_DIPSETTING( 0xc0, DEF_STR( 1C_4C ) ) | |
| 1336 | PORT_DIPSETTING( 0xb0, DEF_STR( 1C_5C ) ) | |
| 1337 | PORT_DIPSETTING( 0xa0, DEF_STR( 1C_6C ) ) | |
| 1338 | PORT_DIPSETTING( 0x90, DEF_STR( 1C_7C ) ) | |
| 1339 | PORT_DIPSETTING( 0x00, "Disabled" ) | |
| 1160 | KONAMI_COINAGE_LOC("Invalid", "Invalid", SW0) | |
| 1161 | /* "Invalid" = both coin slots disabled */ | |
| 1340 | 1162 | |
| 1341 | 1163 | PORT_START("DSW1") |
| 1342 | 1164 | PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW1:1,2") |
| r4470 | r4471 | |
| 1399 | 1221 | PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) |
| 1400 | 1222 | |
| 1401 | 1223 | PORT_START("DSW0") |
| 1402 | PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW0:1,2,3,4") | |
| 1403 | PORT_DIPSETTING( 0x02, DEF_STR( 4C_1C ) ) | |
| 1404 | PORT_DIPSETTING( 0x05, DEF_STR( 3C_1C ) ) | |
| 1405 | PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) ) | |
| 1406 | PORT_DIPSETTING( 0x04, DEF_STR( 3C_2C ) ) | |
| 1407 | PORT_DIPSETTING( 0x01, DEF_STR( 4C_3C ) ) | |
| 1408 | PORT_DIPSETTING( 0x0f, DEF_STR( 1C_1C ) ) | |
| 1409 | PORT_DIPSETTING( 0x03, DEF_STR( 3C_4C ) ) | |
| 1410 | PORT_DIPSETTING( 0x07, DEF_STR( 2C_3C ) ) | |
| 1411 | PORT_DIPSETTING( 0x0e, DEF_STR( 1C_2C ) ) | |
| 1412 | PORT_DIPSETTING( 0x06, DEF_STR( 2C_5C ) ) | |
| 1413 | PORT_DIPSETTING( 0x0d, DEF_STR( 1C_3C ) ) | |
| 1414 | PORT_DIPSETTING( 0x0c, DEF_STR( 1C_4C ) ) | |
| 1415 | PORT_DIPSETTING( 0x0b, DEF_STR( 1C_5C ) ) | |
| 1416 | PORT_DIPSETTING( 0x0a, DEF_STR( 1C_6C ) ) | |
| 1417 | PORT_DIPSETTING( 0x09, DEF_STR( 1C_7C ) ) | |
| 1418 | PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) | |
| 1419 | PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW0:5,6,7,8") | |
| 1420 | PORT_DIPSETTING( 0x20, DEF_STR( 4C_1C ) ) | |
| 1421 | PORT_DIPSETTING( 0x50, DEF_STR( 3C_1C ) ) | |
| 1422 | PORT_DIPSETTING( 0x80, DEF_STR( 2C_1C ) ) | |
| 1423 | PORT_DIPSETTING( 0x40, DEF_STR( 3C_2C ) ) | |
| 1424 | PORT_DIPSETTING( 0x10, DEF_STR( 4C_3C ) ) | |
| 1425 | PORT_DIPSETTING( 0xf0, DEF_STR( 1C_1C ) ) | |
| 1426 | PORT_DIPSETTING( 0x30, DEF_STR( 3C_4C ) ) | |
| 1427 | PORT_DIPSETTING( 0x70, DEF_STR( 2C_3C ) ) | |
| 1428 | PORT_DIPSETTING( 0xe0, DEF_STR( 1C_2C ) ) | |
| 1429 | PORT_DIPSETTING( 0x60, DEF_STR( 2C_5C ) ) | |
| 1430 | PORT_DIPSETTING( 0xd0, DEF_STR( 1C_3C ) ) | |
| 1431 | PORT_DIPSETTING( 0xc0, DEF_STR( 1C_4C ) ) | |
| 1432 | PORT_DIPSETTING( 0xb0, DEF_STR( 1C_5C ) ) | |
| 1433 | PORT_DIPSETTING( 0xa0, DEF_STR( 1C_6C ) ) | |
| 1434 | PORT_DIPSETTING( 0x90, DEF_STR( 1C_7C ) ) | |
| 1435 | PORT_DIPSETTING( 0x00, "Disabled" ) | |
| 1224 | KONAMI_COINAGE_LOC(DEF_STR( Free_Play ), DEF_STR( None ), SW0) | |
| 1225 | /* "None" = coin slot B disabled */ | |
| 1436 | 1226 | |
| 1437 | 1227 | PORT_START("DSW1") |
| 1438 | 1228 | PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW1:1,2") |
| r4470 | r4471 | |
| 1460 | 1250 | |
| 1461 | 1251 | static INPUT_PORTS_START( citybomb ) |
| 1462 | 1252 | PORT_START("IN0") |
| 1463 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) | |
| 1464 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) | |
| 1465 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 ) | |
| 1466 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) | |
| 1467 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 ) | |
| 1253 | KONAMI8_SYSTEM_10 | |
| 1468 | 1254 | PORT_DIPNAME( 0x20, 0x00, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SWT:1") |
| 1469 | 1255 | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 1470 | 1256 | PORT_DIPSETTING( 0x20, DEF_STR( On ) ) |
| r4470 | r4471 | |
| 1474 | 1260 | PORT_SERVICE_DIPLOC( 0x80, IP_ACTIVE_LOW, "SWT:3" ) |
| 1475 | 1261 | |
| 1476 | 1262 | PORT_START("IN1") |
| 1477 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) | |
| 1478 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) | |
| 1479 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) | |
| 1480 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) | |
| 1481 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) | |
| 1482 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) | |
| 1483 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) | |
| 1263 | KONAMI8_B123(1) | |
| 1484 | 1264 | PORT_DIPNAME( 0x80, 0x80, "Device Type" ) PORT_DIPLOCATION("SWT:4") |
| 1485 | 1265 | PORT_DIPSETTING( 0x00, "Handle" ) |
| 1486 | 1266 | PORT_DIPSETTING( 0x80, DEF_STR( Joystick ) ) |
| 1487 | 1267 | |
| 1488 | 1268 | PORT_START("IN2") |
| 1489 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) | |
| 1490 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) | |
| 1491 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) | |
| 1492 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) | |
| 1493 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) | |
| 1494 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) | |
| 1495 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) | |
| 1496 | PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) | |
| 1269 | KONAMI8_B123_UNK(2) | |
| 1497 | 1270 | |
| 1498 | 1271 | PORT_START("DSW0") |
| 1499 | PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW0:1,2,3,4") | |
| 1500 | PORT_DIPSETTING( 0x02, DEF_STR( 4C_1C ) ) | |
| 1501 | PORT_DIPSETTING( 0x05, DEF_STR( 3C_1C ) ) | |
| 1502 | PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) ) | |
| 1503 | PORT_DIPSETTING( 0x04, DEF_STR( 3C_2C ) ) | |
| 1504 | PORT_DIPSETTING( 0x01, DEF_STR( 4C_3C ) ) | |
| 1505 | PORT_DIPSETTING( 0x0f, DEF_STR( 1C_1C ) ) | |
| 1506 | PORT_DIPSETTING( 0x03, DEF_STR( 3C_4C ) ) | |
| 1507 | PORT_DIPSETTING( 0x07, DEF_STR( 2C_3C ) ) | |
| 1508 | PORT_DIPSETTING( 0x0e, DEF_STR( 1C_2C ) ) | |
| 1509 | PORT_DIPSETTING( 0x06, DEF_STR( 2C_5C ) ) | |
| 1510 | PORT_DIPSETTING( 0x0d, DEF_STR( 1C_3C ) ) | |
| 1511 | PORT_DIPSETTING( 0x0c, DEF_STR( 1C_4C ) ) | |
| 1512 | PORT_DIPSETTING( 0x0b, DEF_STR( 1C_5C ) ) | |
| 1513 | PORT_DIPSETTING( 0x0a, DEF_STR( 1C_6C ) ) | |
| 1514 | PORT_DIPSETTING( 0x09, DEF_STR( 1C_7C ) ) | |
| 1515 | PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) | |
| 1516 | PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW0:5,6,7,8") | |
| 1517 | PORT_DIPSETTING( 0x20, DEF_STR( 4C_1C ) ) | |
| 1518 | PORT_DIPSETTING( 0x50, DEF_STR( 3C_1C ) ) | |
| 1519 | PORT_DIPSETTING( 0x80, DEF_STR( 2C_1C ) ) | |
| 1520 | PORT_DIPSETTING( 0x40, DEF_STR( 3C_2C ) ) | |
| 1521 | PORT_DIPSETTING( 0x10, DEF_STR( 4C_3C ) ) | |
| 1522 | PORT_DIPSETTING( 0xf0, DEF_STR( 1C_1C ) ) | |
| 1523 | PORT_DIPSETTING( 0x30, DEF_STR( 3C_4C ) ) | |
| 1524 | PORT_DIPSETTING( 0x70, DEF_STR( 2C_3C ) ) | |
| 1525 | PORT_DIPSETTING( 0xe0, DEF_STR( 1C_2C ) ) | |
| 1526 | PORT_DIPSETTING( 0x60, DEF_STR( 2C_5C ) ) | |
| 1527 | PORT_DIPSETTING( 0xd0, DEF_STR( 1C_3C ) ) | |
| 1528 | PORT_DIPSETTING( 0xc0, DEF_STR( 1C_4C ) ) | |
| 1529 | PORT_DIPSETTING( 0xb0, DEF_STR( 1C_5C ) ) | |
| 1530 | PORT_DIPSETTING( 0xa0, DEF_STR( 1C_6C ) ) | |
| 1531 | PORT_DIPSETTING( 0x90, DEF_STR( 1C_7C ) ) | |
| 1532 | PORT_DIPSETTING( 0x00, "Disabled" ) | |
| 1272 | KONAMI_COINAGE_LOC(DEF_STR( Free_Play ), "Invalid", SW0) | |
| 1273 | /* "Invalid" = both coin slots disabled */ | |
| 1533 | 1274 | |
| 1534 | 1275 | PORT_START("DSW1") |
| 1535 | 1276 | PORT_DIPNAME( 0x04, 0x00, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SW1:1") |
| r4470 | r4471 | |
| 1551 | 1292 | |
| 1552 | 1293 | /* WEC Le Mans 24 specific control? */ |
| 1553 | 1294 | PORT_START("ACCEL") /* Accelerator */ |
| 1554 | PORT_BIT( 0xff, 0, IPT_PEDAL ) PORT_MINMAX(0x00, 0xff) PORT_SENSITIVITY(30) PORT_KEYDELTA(10) | |
| 1295 | PORT_BIT( 0xff, 0x00, IPT_PEDAL ) PORT_MINMAX(0x00, 0xff) PORT_SENSITIVITY(30) PORT_KEYDELTA(10) | |
| 1555 | 1296 | |
| 1556 | 1297 | PORT_START("WHEEL") /* Steering Wheel */ |
| 1557 | 1298 | PORT_BIT( 0xff, 0x80, IPT_PADDLE ) PORT_SENSITIVITY(50) PORT_KEYDELTA(5) |
| r4470 | r4471 | |
| 1559 | 1300 | |
| 1560 | 1301 | static INPUT_PORTS_START( nyanpani ) |
| 1561 | 1302 | PORT_START("IN0") |
| 1562 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(2) | |
| 1563 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_IMPULSE(2) | |
| 1564 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 ) | |
| 1565 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) | |
| 1566 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 ) | |
| 1303 | KONAMI8_SYSTEM_10 | |
| 1567 | 1304 | PORT_DIPNAME( 0x20, 0x20, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SWT:1") |
| 1568 | 1305 | PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) |
| 1569 | 1306 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| r4470 | r4471 | |
| 1571 | 1308 | PORT_SERVICE_DIPLOC( 0x80, IP_ACTIVE_LOW, "SWT:2" ) |
| 1572 | 1309 | |
| 1573 | 1310 | PORT_START("IN1") |
| 1574 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) | |
| 1575 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) | |
| 1576 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) | |
| 1577 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) | |
| 1578 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) | |
| 1579 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) | |
| 1580 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 1581 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 1311 | KONAMI8_B123_UNK(1) | |
| 1582 | 1312 | |
| 1583 | 1313 | PORT_START("IN2") |
| 1584 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) | |
| 1585 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) | |
| 1586 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) | |
| 1587 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) | |
| 1588 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) | |
| 1589 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) | |
| 1590 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 1591 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 1314 | KONAMI8_B123_UNK(2) | |
| 1592 | 1315 | |
| 1593 | 1316 | PORT_START("DSW0") |
| 1594 | PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW0:1,2,3,4") | |
| 1595 | PORT_DIPSETTING( 0x02, DEF_STR( 4C_1C ) ) | |
| 1596 | PORT_DIPSETTING( 0x05, DEF_STR( 3C_1C ) ) | |
| 1597 | PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) ) | |
| 1598 | PORT_DIPSETTING( 0x04, DEF_STR( 3C_2C ) ) | |
| 1599 | PORT_DIPSETTING( 0x01, DEF_STR( 4C_3C ) ) | |
| 1600 | PORT_DIPSETTING( 0x0f, DEF_STR( 1C_1C ) ) | |
| 1601 | PORT_DIPSETTING( 0x03, DEF_STR( 3C_4C ) ) | |
| 1602 | PORT_DIPSETTING( 0x07, DEF_STR( 2C_3C ) ) | |
| 1603 | PORT_DIPSETTING( 0x0e, DEF_STR( 1C_2C ) ) | |
| 1604 | PORT_DIPSETTING( 0x06, DEF_STR( 2C_5C ) ) | |
| 1605 | PORT_DIPSETTING( 0x0d, DEF_STR( 1C_3C ) ) | |
| 1606 | PORT_DIPSETTING( 0x0c, DEF_STR( 1C_4C ) ) | |
| 1607 | PORT_DIPSETTING( 0x0b, DEF_STR( 1C_5C ) ) | |
| 1608 | PORT_DIPSETTING( 0x0a, DEF_STR( 1C_6C ) ) | |
| 1609 | PORT_DIPSETTING( 0x09, DEF_STR( 1C_7C ) ) | |
| 1610 | PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) | |
| 1611 | PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW0:5,6,7,8") | |
| 1612 | PORT_DIPSETTING( 0x20, DEF_STR( 4C_1C ) ) | |
| 1613 | PORT_DIPSETTING( 0x50, DEF_STR( 3C_1C ) ) | |
| 1614 | PORT_DIPSETTING( 0x80, DEF_STR( 2C_1C ) ) | |
| 1615 | PORT_DIPSETTING( 0x40, DEF_STR( 3C_2C ) ) | |
| 1616 | PORT_DIPSETTING( 0x10, DEF_STR( 4C_3C ) ) | |
| 1617 | PORT_DIPSETTING( 0xf0, DEF_STR( 1C_1C ) ) | |
| 1618 | PORT_DIPSETTING( 0x30, DEF_STR( 3C_4C ) ) | |
| 1619 | PORT_DIPSETTING( 0x70, DEF_STR( 2C_3C ) ) | |
| 1620 | PORT_DIPSETTING( 0xe0, DEF_STR( 1C_2C ) ) | |
| 1621 | PORT_DIPSETTING( 0x60, DEF_STR( 2C_5C ) ) | |
| 1622 | PORT_DIPSETTING( 0xd0, DEF_STR( 1C_3C ) ) | |
| 1623 | PORT_DIPSETTING( 0xc0, DEF_STR( 1C_4C ) ) | |
| 1624 | PORT_DIPSETTING( 0xb0, DEF_STR( 1C_5C ) ) | |
| 1625 | PORT_DIPSETTING( 0xa0, DEF_STR( 1C_6C ) ) | |
| 1626 | PORT_DIPSETTING( 0x90, DEF_STR( 1C_7C ) ) | |
| 1627 | PORT_DIPSETTING( 0x00, "Disabled" ) | |
| 1317 | KONAMI_COINAGE_LOC(DEF_STR( Free_Play ), "Invalid", SW0) | |
| 1318 | /* "Invalid" = both coin slots disabled */ | |
| 1628 | 1319 | |
| 1629 | 1320 | PORT_START("DSW1") |
| 1630 | 1321 | PORT_DIPNAME( 0x03, 0x02, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW1:1,2") |
| r4470 | r4471 | |
| 1657 | 1348 | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNKNOWN ) |
| 1658 | 1349 | PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNKNOWN ) |
| 1659 | 1350 | PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNKNOWN ) |
| 1660 | PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_NAME("Brake (WEC Le Mans 24 cabinet)") | |
| 1351 | PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_CONDITION("DSW1", 0x03, PORTCOND_EQUALS, 0x02) // only in WEC Le Mans 24 cabinets | |
| 1352 | PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNKNOWN ) PORT_CONDITION("DSW1", 0x03, PORTCOND_NOTEQUALS, 0x02) | |
| 1661 | 1353 | PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON3 ) |
| 1662 | 1354 | PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_SPECIAL ) // must be 0 otherwise game freezes when using WEC Le Mans 24 cabinet |
| 1663 | 1355 | PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN ) |
| r4470 | r4471 | |
| 1691 | 1383 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 1692 | 1384 | |
| 1693 | 1385 | PORT_START("DSW0") |
| 1694 | GX400_COINAGE_DIP | |
| 1386 | KONAMI_COINAGE_LOC(DEF_STR( Free_Play ), "Invalid", SWA) | |
| 1387 | /* "Invalid" = both coin slots disabled */ | |
| 1695 | 1388 | |
| 1696 | 1389 | PORT_START("DSW1") |
| 1697 | 1390 | PORT_DIPNAME( 0x03, 0x03, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SW1:1,2") |
| r4470 | r4471 | |
| 1722 | 1415 | PORT_BIT( 0x7f, 0x40, IPT_PADDLE ) PORT_SENSITIVITY(25) PORT_KEYDELTA(10) |
| 1723 | 1416 | |
| 1724 | 1417 | PORT_START("IN3") |
| 1725 | PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_NAME("Brake (Konami GT cabinet)") | |
| 1418 | PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_CONDITION("DSW1", 0x03, PORTCOND_EQUALS, 0x01) // only in Konami GT cabinet with brake | |
| 1419 | PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN ) PORT_CONDITION("DSW1", 0x03, PORTCOND_NOTEQUALS, 0x01) | |
| 1726 | 1420 | PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON1 ) |
| 1727 | 1421 | // PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_BUTTON4 ) |
| 1728 | 1422 | |
| 1729 | 1423 | /* WEC Le Mans 24 specific control */ |
| 1730 | 1424 | PORT_START("ACCEL") /* Accelerator */ |
| 1731 | PORT_BIT( 0xff, 0, IPT_PEDAL ) PORT_MINMAX(0,0x80) PORT_SENSITIVITY(30) PORT_KEYDELTA(10) | |
| 1425 | PORT_BIT( 0xff, 0x00, IPT_PEDAL ) PORT_MINMAX(0,0x80) PORT_SENSITIVITY(30) PORT_KEYDELTA(10) | |
| 1732 | 1426 | |
| 1733 | 1427 | PORT_START("WHEEL") /* Steering Wheel */ |
| 1734 | 1428 | PORT_BIT( 0xff, 0x80, IPT_PADDLE ) PORT_SENSITIVITY(50) PORT_KEYDELTA(5) |
| r4470 | r4471 | |
|---|---|---|
| 230 | 230 | AM_RANGE(0x030012, 0x030013) AM_WRITE(SMH_RAM) AM_BASE(&magmax_scroll_x) |
| 231 | 231 | AM_RANGE(0x030014, 0x030015) AM_WRITE(SMH_RAM) AM_BASE(&magmax_scroll_y) |
| 232 | 232 | AM_RANGE(0x03001c, 0x03001d) AM_WRITE(magmax_sound_w) |
| 233 | AM_RANGE(0x03001e, 0x03001f) AM_WRITE | |
| 233 | AM_RANGE(0x03001e, 0x03001f) AM_WRITE | |
| 234 | 234 | ADDRESS_MAP_END |
| 235 | 235 | |
| 236 | 236 | static ADDRESS_MAP_START( magmax_soundreadmem, ADDRESS_SPACE_PROGRAM, 8 ) |
| r4470 | r4471 | |
|---|---|---|
| 55 | 55 | |
| 56 | 56 | /***************************************************************************/ |
| 57 | 57 | |
| 58 | static ADDRESS_MAP_START( readmem, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 59 | AM_RANGE(0x0000, 0x7fff) AM_READ(SMH_ROM) /* rom */ | |
| 60 | AM_RANGE(0x8000, 0x87ff) AM_READ(SMH_RAM) /* ram */ | |
| 61 | AM_RANGE(0x8800, 0x8bff) AM_READ(SMH_RAM) /* video ram */ | |
| 62 | AM_RANGE(0x9000, 0x97ff) AM_READ(SMH_RAM) /* background ram */ | |
| 63 | AM_RANGE(0x9800, 0x98ff) AM_READ(SMH_RAM) /* sprite ram */ | |
| 58 | static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 59 | AM_RANGE(0x0000, 0x7fff) AM_ROM /* rom */ | |
| 60 | AM_RANGE(0x8000, 0x87ff) AM_RAM /* ram */ | |
| 61 | AM_RANGE(0x8800, 0x8bff) AM_RAM_WRITE(timelimt_videoram_w) AM_BASE(&videoram) AM_SIZE(&videoram_size) /* video ram */ | |
| 62 | AM_RANGE(0x9000, 0x97ff) AM_RAM_WRITE(timelimt_bg_videoram_w) AM_BASE(&timelimt_bg_videoram) AM_SIZE(&timelimt_bg_videoram_size)/* background ram */ | |
| 63 | AM_RANGE(0x9800, 0x98ff) AM_RAM AM_BASE(&spriteram) AM_SIZE(&spriteram_size) /* sprite ram */ | |
| 64 | 64 | AM_RANGE(0xa000, 0xa000) AM_READ_PORT("INPUTS") |
| 65 | 65 | AM_RANGE(0xa800, 0xa800) AM_READ_PORT("SYSTEM") |
| 66 | 66 | AM_RANGE(0xb000, 0xb000) AM_READ_PORT("DSW") |
| 67 | AM_RANGE(0xb800, 0xb800) AM_READ(SMH_NOP) /* NMI ack? */ | |
| 68 | ADDRESS_MAP_END | |
| 69 | ||
| 70 | static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 71 | AM_RANGE(0x0000, 0x7fff) AM_WRITE(SMH_ROM) /* rom */ | |
| 72 | AM_RANGE(0x8000, 0x87ff) AM_WRITE(SMH_RAM) /* ram */ | |
| 73 | AM_RANGE(0x8800, 0x8bff) AM_WRITE(timelimt_videoram_w) AM_BASE(&videoram) AM_SIZE(&videoram_size) /* video ram */ | |
| 74 | AM_RANGE(0x9000, 0x97ff) AM_WRITE(timelimt_bg_videoram_w) AM_BASE(&timelimt_bg_videoram) AM_SIZE(&timelimt_bg_videoram_size)/* background ram */ | |
| 75 | AM_RANGE(0x9800, 0x98ff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size) /* sprite ram */ | |
| 76 | 67 | AM_RANGE(0xb000, 0xb000) AM_WRITE(nmi_enable_w) /* nmi enable */ |
| 77 | 68 | AM_RANGE(0xb003, 0xb003) AM_WRITE(sound_reset_w)/* sound reset ? */ |
| 78 | 69 | AM_RANGE(0xb800, 0xb800) AM_WRITE(soundlatch_w) /* sound write */ |
| 70 | AM_RANGE(0xb800, 0xb800) AM_READNOP /* NMI ack? */ | |
| 79 | 71 | AM_RANGE(0xc800, 0xc800) AM_WRITE(timelimt_scroll_x_lsb_w) |
| 80 | 72 | AM_RANGE(0xc801, 0xc801) AM_WRITE(timelimt_scroll_x_msb_w) |
| 81 | 73 | AM_RANGE(0xc802, 0xc802) AM_WRITE(timelimt_scroll_y_w) |
| 82 | AM_RANGE(0xc803, 0xc803) AM_WRITE(SMH_NOP) /* ???? bit 0 used only */ | |
| 83 | AM_RANGE(0xc804, 0xc804) AM_WRITE(SMH_NOP) /* ???? not used */ | |
| 74 | AM_RANGE(0xc803, 0xc803) AM_WRITENOP /* ???? bit 0 used only */ | |
| 75 | AM_RANGE(0xc804, 0xc804) AM_WRITENOP /* ???? not used */ | |
| 84 | 76 | ADDRESS_MAP_END |
| 85 | 77 | |
| 86 | static ADDRESS_MAP_START( io_map, ADDRESS_SPACE_IO, 8 ) | |
| 78 | static ADDRESS_MAP_START( main_io_map, ADDRESS_SPACE_IO, 8 ) | |
| 87 | 79 | ADDRESS_MAP_GLOBAL_MASK(0xff) |
| 88 | 80 | AM_RANGE(0x00, 0x00) AM_READ(watchdog_reset_r) |
| 89 | 81 | ADDRESS_MAP_END |
| 90 | 82 | |
| 91 | static ADDRESS_MAP_START( readmem_sound, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 92 | AM_RANGE(0x0000, 0x1fff) AM_READ(SMH_ROM) | |
| 93 | AM_RANGE(0x3800, 0x3bff) AM_READ(SMH_RAM) | |
| 83 | static ADDRESS_MAP_START( sound_map, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 84 | AM_RANGE(0x0000, 0x1fff) AM_ROM | |
| 85 | AM_RANGE(0x3800, 0x3bff) AM_RAM | |
| 94 | 86 | ADDRESS_MAP_END |
| 95 | 87 | |
| 96 | static ADDRESS_MAP_START( writemem_sound, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 97 | AM_RANGE(0x0000, 0x1fff) AM_WRITE(SMH_ROM) | |
| 98 | AM_RANGE(0x3800, 0x3bff) AM_WRITE(SMH_RAM) | |
| 99 | ADDRESS_MAP_END | |
| 100 | ||
| 101 | 88 | static ADDRESS_MAP_START( sound_io_map, ADDRESS_SPACE_IO, 8 ) |
| 102 | 89 | ADDRESS_MAP_GLOBAL_MASK(0xff) |
| 103 | 90 | AM_RANGE(0x00, 0x00) AM_WRITE(soundlatch_clear_w) |
| r4470 | r4471 | |
| 258 | 245 | |
| 259 | 246 | /* basic machine hardware */ |
| 260 | 247 | MDRV_CPU_ADD("maincpu", Z80, 5000000) /* 5.000 MHz */ |
| 261 | MDRV_CPU_PROGRAM_MAP(readmem,writemem) | |
| 262 | MDRV_CPU_IO_MAP(io_map,0) | |
| 248 | MDRV_CPU_PROGRAM_MAP(main_map,0) | |
| 249 | MDRV_CPU_IO_MAP(main_io_map,0) | |
| 263 | 250 | MDRV_CPU_VBLANK_INT("screen", timelimt_irq) |
| 264 | 251 | |
| 265 | 252 | MDRV_CPU_ADD("audiocpu", Z80,18432000/6) /* 3.072 MHz */ |
| 266 | MDRV_CPU_PROGRAM_MAP( | |
| 253 | MDRV_CPU_PROGRAM_MAP( | |
| 267 | 254 | MDRV_CPU_IO_MAP(sound_io_map,0) |
| 268 | 255 | MDRV_CPU_VBLANK_INT("screen", irq0_line_hold) /* ? */ |
| 269 | 256 |
| r4470 | r4471 | |
|---|---|---|
| 218 | 218 | AM_RANGE(0x000000, 0x0fffff) AM_ROM |
| 219 | 219 | AM_RANGE(0x100000, 0x10ffff) AM_RAM /* main ram */ |
| 220 | 220 | AM_RANGE(0x200000, 0x213fff) AM_READWRITE(TC0100SCN_word_0_r, TC0100SCN_dual_screen_w) /* tilemaps (all screens) */ |
| 221 | AM_RANGE(0x214000, 0x2141ff) AM_WRITE | |
| 221 | AM_RANGE(0x214000, 0x2141ff) AM_WRITE | |
| 222 | 222 | AM_RANGE(0x220000, 0x22000f) AM_READWRITE(TC0100SCN_ctrl_word_0_r, TC0100SCN_ctrl_word_0_w) |
| 223 | 223 | AM_RANGE(0x240000, 0x253fff) AM_READWRITE(TC0100SCN_word_1_r, TC0100SCN_word_1_w) /* tilemaps (2nd screen) */ |
| 224 | 224 | AM_RANGE(0x260000, 0x26000f) AM_READWRITE(TC0100SCN_ctrl_word_1_r, TC0100SCN_ctrl_word_1_w) |
| r4470 | r4471 | |
| 226 | 226 | AM_RANGE(0x420000, 0x420007) AM_READWRITE(TC0110PCR_word_1_r, TC0110PCR_step1_word_1_w) /* palette (2nd screen) */ |
| 227 | 227 | AM_RANGE(0x600000, 0x6013ff) AM_RAM AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) |
| 228 | 228 | AM_RANGE(0x800000, 0x80000f) AM_READWRITE(TC0220IOC_halfword_r, TC0220IOC_halfword_w) |
| 229 | // AM_RANGE(0x820000, 0x820001) AM_WRITE | |
| 229 | // AM_RANGE(0x820000, 0x820001) AM_WRITE | |
| 230 | 230 | AM_RANGE(0x830000, 0x830003) AM_READWRITE(warriorb_sound_r, warriorb_sound_w) |
| 231 | 231 | ADDRESS_MAP_END |
| 232 | 232 | |
| r4470 | r4471 | |
| 241 | 241 | AM_RANGE(0x420000, 0x420007) AM_READWRITE(TC0110PCR_word_1_r, TC0110PCR_step1_word_1_w) /* palette (2nd screen) */ |
| 242 | 242 | AM_RANGE(0x600000, 0x6013ff) AM_RAM AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) |
| 243 | 243 | AM_RANGE(0x800000, 0x80000f) AM_READWRITE(TC0510NIO_halfword_r, TC0510NIO_halfword_w) |
| 244 | // AM_RANGE(0x820000, 0x820001) AM_WRITE | |
| 244 | // AM_RANGE(0x820000, 0x820001) AM_WRITE | |
| 245 | 245 | AM_RANGE(0x830000, 0x830003) AM_READWRITE(warriorb_sound_r, warriorb_sound_w) |
| 246 | 246 | ADDRESS_MAP_END |
| 247 | 247 | |
| r4470 | r4471 | |
| 255 | 255 | AM_RANGE(0xe200, 0xe200) AM_READWRITE(SMH_NOP, taitosound_slave_port_w) |
| 256 | 256 | AM_RANGE(0xe201, 0xe201) AM_READWRITE(taitosound_slave_comm_r, taitosound_slave_comm_w) |
| 257 | 257 | AM_RANGE(0xe400, 0xe403) AM_WRITE(warriorb_pancontrol) /* pan */ |
| 258 | AM_RANGE(0xea00, 0xea00) AM_READ(SMH_NOP) | |
| 259 | AM_RANGE(0xee00, 0xee00) AM_WRITE(SMH_NOP) /* ? */ | |
| 260 | AM_RANGE(0xf000, 0xf000) AM_WRITE(SMH_NOP) /* ? */ | |
| 258 | AM_RANGE(0xea00, 0xea00) AM_READNOP | |
| 259 | AM_RANGE(0xee00, 0xee00) AM_WRITENOP /* ? */ | |
| 260 | AM_RANGE(0xf000, 0xf000) AM_WRITENOP /* ? */ | |
| 261 | 261 | AM_RANGE(0xf200, 0xf200) AM_WRITE(sound_bankswitch_w) |
| 262 | 262 | ADDRESS_MAP_END |
| 263 | 263 |
| r4470 | r4471 | |
|---|---|---|
| 76 | 76 | AM_RANGE(0x103000, 0x103fff) AM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE(&paletteram16) |
| 77 | 77 | AM_RANGE(0x104000, 0x13ffff) AM_WRITE(SMH_RAM) |
| 78 | 78 | AM_RANGE(0x140000, 0x1407ff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) |
| 79 | AM_RANGE(0x140800, 0x140801) AM_WRITE(SMH_NOP) | |
| 80 | AM_RANGE(0x140802, 0x140803) AM_WRITE(SMH_NOP) | |
| 79 | AM_RANGE(0x140800, 0x140801) AM_WRITENOP | |
| 80 | AM_RANGE(0x140802, 0x140803) AM_WRITENOP | |
| 81 | 81 | AM_RANGE(0x180008, 0x180009) AM_WRITE(goal92_sound_command_w) |
| 82 | AM_RANGE(0x18000a, 0x18000b) AM_WRITE | |
| 82 | AM_RANGE(0x18000a, 0x18000b) AM_WRITE | |
| 83 | 83 | AM_RANGE(0x180010, 0x180017) AM_WRITE(SMH_RAM) AM_BASE(&goal92_scrollram16) |
| 84 | 84 | AM_RANGE(0x18001c, 0x18001d) AM_WRITE(goal92_fg_bank_w) |
| 85 | 85 | ADDRESS_MAP_END |
| r4470 | r4471 | |
|---|---|---|
| 170 | 170 | AM_RANGE(0x800006, 0x800007) AM_READ_PORT("SYSTEM") |
| 171 | 171 | AM_RANGE(0x800008, 0x800009) AM_READ_PORT("INPUTS") |
| 172 | 172 | AM_RANGE(0x810000, 0x810003) AM_WRITE(control2_w) // bank switch for K056832 character ROM test |
| 173 | AM_RANGE(0x820000, 0x820001) AM_WRITE | |
| 173 | AM_RANGE(0x820000, 0x820001) AM_WRITE | |
| 174 | 174 | AM_RANGE(0x830000, 0x83003f) AM_WRITE(K056832_word_w) |
| 175 | 175 | AM_RANGE(0x840000, 0x840007) AM_WRITE(K056832_b_word_w) // VSCCS |
| 176 | 176 | AM_RANGE(0x850000, 0x85001f) AM_WRITE(K054338_word_w) // CLTC |
| r4470 | r4471 | |
|---|---|---|
| 94 | 94 | AM_RANGE(0x30, 0x30) AM_READ_PORT("IN0") AM_WRITE(bank_sel_w) |
| 95 | 95 | AM_RANGE(0xc0, 0xc0) AM_WRITE(input_sel_w) |
| 96 | 96 | AM_RANGE(0xc1, 0xc2) AM_READ(key_matrix_r) // 0xc0-c3 8255ppi |
| 97 | AM_RANGE(0xc3, 0xc3) AM_WRITE | |
| 97 | AM_RANGE(0xc3, 0xc3) AM_WRITE | |
| 98 | 98 | AM_RANGE(0xd0, 0xd1) AM_DEVREADWRITE("ym", ym2203_r, ym2203_w) |
| 99 | 99 | ADDRESS_MAP_END |
| 100 | 100 |
| r4470 | r4471 | |
|---|---|---|
| 75 | 75 | AM_RANGE(0x02800, 0x02fff) AM_RAM_WRITE(raiden_foreground_w) AM_BASE(&raiden_fore_data) |
| 76 | 76 | AM_RANGE(0x03000, 0x03fff) AM_RAM_WRITE(paletteram16_xxxxBBBBGGGGRRRR_word_w) AM_BASE(&paletteram16) |
| 77 | 77 | AM_RANGE(0x04000, 0x04fff) AM_RAM AM_SHARE(1) |
| 78 | AM_RANGE(0x07ffe, 0x0afff) AM_WRITE | |
| 78 | AM_RANGE(0x07ffe, 0x0afff) AM_WRITE | |
| 79 | 79 | AM_RANGE(0xc0000, 0xfffff) AM_ROM |
| 80 | 80 | ADDRESS_MAP_END |
| 81 | 81 |
| r4470 | r4471 | |
|---|---|---|
| 262 | 262 | static ADDRESS_MAP_START( fromanc2_readmem_main, ADDRESS_SPACE_PROGRAM, 16 ) |
| 263 | 263 | AM_RANGE(0x000000, 0x07ffff) AM_READ(SMH_ROM) // MAIN ROM |
| 264 | 264 | |
| 265 | AM_RANGE(0x802000, 0x802fff) AM_READ | |
| 265 | AM_RANGE(0x802000, 0x802fff) AM_READ | |
| 266 | 266 | |
| 267 | 267 | AM_RANGE(0xa00000, 0xa00fff) AM_READ(fromanc2_paletteram_0_r)// PALETTE (1P) |
| 268 | 268 | AM_RANGE(0xa80000, 0xa80fff) AM_READ(fromanc2_paletteram_1_r)// PALETTE (2P) |
| r4470 | r4471 | |
| 290 | 290 | AM_RANGE(0xd00200, 0xd00223) AM_WRITE(fromanc2_gfxreg_1_w) // SCROLL REG (1P/2P) |
| 291 | 291 | AM_RANGE(0xd00300, 0xd00323) AM_WRITE(fromanc2_gfxreg_3_w) // SCROLL REG (1P/2P) |
| 292 | 292 | |
| 293 | AM_RANGE(0xd00400, 0xd00413) AM_WRITE(SMH_NOP) // ??? | |
| 294 | AM_RANGE(0xd00500, 0xd00513) AM_WRITE(SMH_NOP) // ??? | |
| 293 | AM_RANGE(0xd00400, 0xd00413) AM_WRITENOP // ??? | |
| 294 | AM_RANGE(0xd00500, 0xd00513) AM_WRITENOP // ??? | |
| 295 | 295 | |
| 296 | 296 | AM_RANGE(0xd01000, 0xd01001) AM_WRITE(fromanc2_sndcmd_w) // SOUND REQ (1P/2P) |
| 297 | 297 | AM_RANGE(0xd01200, 0xd01201) AM_WRITE(fromanc2_subcpu_w) // SUB CPU WRITE |
| r4470 | r4471 | |
| 322 | 322 | AM_RANGE(0x800000, 0x803fff) AM_WRITE(fromancr_videoram_0_w) // VRAM BG (1P/2P) |
| 323 | 323 | AM_RANGE(0x880000, 0x883fff) AM_WRITE(fromancr_videoram_1_w) // VRAM FG (1P/2P) |
| 324 | 324 | AM_RANGE(0x900000, 0x903fff) AM_WRITE(fromancr_videoram_2_w) // VRAM TEXT (1P/2P) |
| 325 | AM_RANGE(0x980000, 0x983fff) AM_WRITE | |
| 325 | AM_RANGE(0x980000, 0x983fff) AM_WRITE | |
| 326 | 326 | |
| 327 | 327 | AM_RANGE(0xa00000, 0xa00fff) AM_WRITE(fromancr_paletteram_0_w)// PALETTE (1P) |
| 328 | 328 | AM_RANGE(0xa80000, 0xa80fff) AM_WRITE(fromancr_paletteram_1_w)// PALETTE (2P) |
| r4470 | r4471 | |
| 330 | 330 | AM_RANGE(0xd00000, 0xd00023) AM_WRITE(fromancr_gfxreg_1_w) // SCROLL REG (1P/2P) |
| 331 | 331 | AM_RANGE(0xd00100, 0xd00123) AM_WRITE(fromancr_gfxreg_0_w) // SCROLL REG (1P/2P) |
| 332 | 332 | |
| 333 | AM_RANGE(0xd00200, 0xd002ff) AM_WRITE | |
| 333 | AM_RANGE(0xd00200, 0xd002ff) AM_WRITE | |
| 334 | 334 | |
| 335 | AM_RANGE(0xd00400, 0xd00413) AM_WRITE(SMH_NOP) // ??? | |
| 336 | AM_RANGE(0xd00500, 0xd00513) AM_WRITE(SMH_NOP) // ??? | |
| 335 | AM_RANGE(0xd00400, 0xd00413) AM_WRITENOP // ??? | |
| 336 | AM_RANGE(0xd00500, 0xd00513) AM_WRITENOP // ??? | |
| 337 | 337 | |
| 338 | 338 | AM_RANGE(0xd01000, 0xd01001) AM_WRITE(fromanc2_sndcmd_w) // SOUND REQ (1P/2P) |
| 339 | 339 | AM_RANGE(0xd01200, 0xd01201) AM_WRITE(fromanc2_subcpu_w) // SUB CPU WRITE |
| 340 | AM_RANGE(0xd01400, 0xd01401) AM_WRITE | |
| 340 | AM_RANGE(0xd01400, 0xd01401) AM_WRITE | |
| 341 | 341 | AM_RANGE(0xd01600, 0xd01601) AM_WRITE(fromancr_eeprom_w) // EEPROM DATA, GFXBANK (1P/2P) |
| 342 | 342 | AM_RANGE(0xd01a00, 0xd01a01) AM_WRITE(fromanc2_portselect_w) // PORT SELECT (1P/2P) |
| 343 | 343 | |
| r4470 | r4471 | |
| 356 | 356 | AM_RANGE(0xd10000, 0xd10001) AM_READ(fromanc2_keymatrix_r) // INPUT KEY MATRIX |
| 357 | 357 | AM_RANGE(0xd20000, 0xd20001) AM_READ_PORT("SYSTEM") |
| 358 | 358 | |
| 359 | AM_RANGE(0xe5000c, 0xe5000d) AM_READ | |
| 359 | AM_RANGE(0xe5000c, 0xe5000d) AM_READ | |
| 360 | 360 | ADDRESS_MAP_END |
| 361 | 361 | |
| 362 | 362 | static ADDRESS_MAP_START( fromanc4_writemem_main, ADDRESS_SPACE_PROGRAM, 16 ) |
| r4470 | r4471 | |
| 367 | 367 | |
| 368 | 368 | AM_RANGE(0xd00000, 0xd00001) AM_WRITE(fromanc2_portselect_w) // PORT SELECT (1P/2P) |
| 369 | 369 | |
| 370 | AM_RANGE(0xd10000, 0xd10001) AM_WRITE(SMH_NOP) // ? | |
| 371 | AM_RANGE(0xd30000, 0xd30001) AM_WRITE(SMH_NOP) // ? | |
| 370 | AM_RANGE(0xd10000, 0xd10001) AM_WRITENOP // ? | |
| 371 | AM_RANGE(0xd30000, 0xd30001) AM_WRITENOP // ? | |
| 372 | 372 | AM_RANGE(0xd50000, 0xd50001) AM_WRITE(fromanc4_eeprom_w) // EEPROM DATA |
| 373 | 373 | |
| 374 | 374 | AM_RANGE(0xd70000, 0xd70001) AM_WRITE(fromanc2_sndcmd_w) // SOUND REQ (1P/2P) |
| r4470 | r4471 | |
| 384 | 384 | AM_RANGE(0xe10000, 0xe1001d) AM_WRITE(fromanc4_gfxreg_1_w) // SCROLL, GFXBANK (1P/2P) |
| 385 | 385 | AM_RANGE(0xe20000, 0xe2001d) AM_WRITE(fromanc4_gfxreg_2_w) // SCROLL, GFXBANK (1P/2P) |
| 386 | 386 | |
| 387 | AM_RANGE(0xe30000, 0xe30013) AM_WRITE(SMH_NOP) // ??? | |
| 388 | AM_RANGE(0xe40000, 0xe40013) AM_WRITE(SMH_NOP) // ??? | |
| 387 | AM_RANGE(0xe30000, 0xe30013) AM_WRITENOP // ??? | |
| 388 | AM_RANGE(0xe40000, 0xe40013) AM_WRITENOP // ??? | |
| 389 | 389 | |
| 390 | AM_RANGE(0xe50000, 0xe50009) AM_WRITE | |
| 390 | AM_RANGE(0xe50000, 0xe50009) AM_WRITE | |
| 391 | 391 | ADDRESS_MAP_END |
| 392 | 392 | |
| 393 | 393 |
| r4470 | r4471 | |
|---|---|---|
| 145 | 145 | AM_RANGE(0x9000, 0x93ff) AM_RAM_WRITE(bombjack_videoram_w) AM_BASE(&videoram) |
| 146 | 146 | AM_RANGE(0x9400, 0x97ff) AM_RAM_WRITE(bombjack_colorram_w) AM_BASE(&colorram) |
| 147 | 147 | AM_RANGE(0x9820, 0x987f) AM_WRITE(SMH_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size) |
| 148 | AM_RANGE(0x9a00, 0x9a00) AM_WRITE | |
| 148 | AM_RANGE(0x9a00, 0x9a00) AM_WRITE | |
| 149 | 149 | AM_RANGE(0x9c00, 0x9cff) AM_WRITE(paletteram_xxxxBBBBGGGGRRRR_le_w) AM_BASE(&paletteram) |
| 150 | 150 | AM_RANGE(0x9e00, 0x9e00) AM_WRITE(bombjack_background_w) |
| 151 | 151 | AM_RANGE(0xb000, 0xb000) AM_READ_PORT("P1") |
| 152 | 152 | AM_RANGE(0xb000, 0xb000) AM_WRITE(interrupt_enable_w) |
| 153 | 153 | AM_RANGE(0xb001, 0xb001) AM_READ_PORT("P2") |
| 154 | 154 | AM_RANGE(0xb002, 0xb002) AM_READ_PORT("SYSTEM") |
| 155 | AM_RANGE(0xb003, 0xb003) AM_READ | |
| 155 | AM_RANGE(0xb003, 0xb003) AM_READ | |
| 156 | 156 | AM_RANGE(0xb004, 0xb004) AM_READ_PORT("DSW1") |
| 157 | 157 | AM_RANGE(0xb004, 0xb004) AM_WRITE(bombjack_flipscreen_w) |
| 158 | 158 | AM_RANGE(0xb005, 0xb005) AM_READ_PORT("DSW2") |
| r4470 | r4471 | |
|---|---|---|
| 334 | 334 | AM_RANGE(0x9070, 0x9070) AM_WRITE(gridlee_cocktail_flip_w) |
| 335 | 335 | AM_RANGE(0x9200, 0x9200) AM_WRITE(gridlee_palette_select_w) |
| 336 | 336 | AM_RANGE(0x9380, 0x9380) AM_WRITE(watchdog_reset_w) |
| 337 | AM_RANGE(0x9700, 0x9700) AM_WRITE | |
| 337 | AM_RANGE(0x9700, 0x9700) AM_WRITE | |
| 338 | 338 | AM_RANGE(0x9828, 0x993f) AM_WRITE(gridlee_sound_w) |
| 339 | 339 | AM_RANGE(0x9c00, 0x9cff) AM_WRITE(SMH_RAM) AM_BASE(&generic_nvram) AM_SIZE(&generic_nvram_size) |
| 340 | 340 | AM_RANGE(0xa000, 0xffff) AM_WRITE(SMH_ROM) |
| r4470 | r4471 | |
|---|---|---|
| 328 | 328 | AM_RANGE(0xa100, 0xa11f) AM_DEVWRITE("namco", pacman_sound_w) AM_BASE(&namco_soundregs) |
| 329 | 329 | AM_RANGE(0xa130, 0xa130) AM_WRITE(rallyx_scrollx_w) |
| 330 | 330 | AM_RANGE(0xa140, 0xa140) AM_WRITE(rallyx_scrolly_w) |
| 331 | AM_RANGE(0xa170, 0xa170) AM_WRITE | |
| 331 | AM_RANGE(0xa170, 0xa170) AM_WRITE | |
| 332 | 332 | AM_RANGE(0xa180, 0xa187) AM_WRITE(rallyx_latch_w) |
| 333 | 333 | ADDRESS_MAP_END |
| 334 | 334 | |
| r4470 | r4471 | |
| 607 | 607 | PORT_DIPSETTING( 0xd0, DEF_STR( 1C_5C ) ) |
| 608 | 608 | PORT_DIPSETTING( 0x50, DEF_STR( 1C_6C ) ) |
| 609 | 609 | PORT_DIPSETTING( 0x90, DEF_STR( 1C_7C ) ) |
| 610 | PORT_DIPSETTING( 0x00, "Disabled" ) | |
| 610 | PORT_DIPSETTING( 0x00, "No Coin B" ) | |
| 611 | /* "No Coin B" = coins produce sound, but no effect on coin counter */ | |
| 611 | 612 | INPUT_PORTS_END |
| 612 | 613 | |
| 613 | 614 |
| r4470 | r4471 | |
|---|---|---|
| 1237 | 1237 | AM_RANGE(0xfcc00008, 0xfcc0000b) AM_READ( bnstars2_r ) |
| 1238 | 1238 | AM_RANGE(0xfcc00010, 0xfcc00013) AM_READ( bnstars3_r ) |
| 1239 | 1239 | |
| 1240 | AM_RANGE(0xfce00034, 0xfce00037) AM_WRITE | |
| 1240 | AM_RANGE(0xfce00034, 0xfce00037) AM_WRITE | |
| 1241 | 1241 | |
| 1242 | AM_RANGE(0xfce00050, 0xfce00053) AM_WRITE(SMH_NOP) | |
| 1243 | AM_RANGE(0xfce00058, 0xfce0005b) AM_WRITE(SMH_NOP) | |
| 1244 | AM_RANGE(0xfce0005c, 0xfce0005f) AM_WRITE(SMH_NOP) | |
| 1242 | AM_RANGE(0xfce00050, 0xfce00053) AM_WRITENOP | |
| 1243 | AM_RANGE(0xfce00058, 0xfce0005b) AM_WRITENOP | |
| 1244 | AM_RANGE(0xfce0005c, 0xfce0005f) AM_WRITENOP | |
| 1245 | 1245 | |
| 1246 | 1246 | AM_RANGE(0xfce00400, 0xfce0045f) AM_WRITE(SMH_RAM) AM_BASE(&ms32_roz_ctrl[0]) |
| 1247 | 1247 | AM_RANGE(0xfce00700, 0xfce0075f) AM_WRITE(SMH_RAM) AM_BASE(&ms32_roz_ctrl[1]) // guess |
| r4470 | r4471 | |
|---|---|---|
| 57 | 57 | } |
| 58 | 58 | } |
| 59 | 59 | |
| 60 | static ADDRESS_MAP_START( readmem_burglarx, ADDRESS_SPACE_PROGRAM, 16 ) | |
| 61 | AM_RANGE(0x000000, 0x0fffff) AM_READ(SMH_ROM ) // ROM | |
| 62 | AM_RANGE(0xff0000, 0xffffff) AM_READ(SMH_RAM ) // RAM | |
| 60 | static ADDRESS_MAP_START( burglarx_map, ADDRESS_SPACE_PROGRAM, 16 ) | |
| 61 | AM_RANGE(0x000000, 0x0fffff) AM_ROM // ROM | |
| 62 | AM_RANGE(0xff0000, 0xffffff) AM_RAM // RAM | |
| 63 | 63 | AM_RANGE(0x800000, 0x800001) AM_READ_PORT("INPUTS") |
| 64 | 64 | AM_RANGE(0x800018, 0x800019) AM_READ_PORT("SYSTEM") |
| 65 | 65 | AM_RANGE(0x80001a, 0x80001b) AM_READ_PORT("DSW1") |
| 66 | 66 | AM_RANGE(0x80001c, 0x80001d) AM_READ_PORT("DSW2") |
| 67 | AM_RANGE(0x800188, 0x800189) AM_DEVREAD8("oki", okim6295_r, 0x00ff ) // Sound | |
| 68 | AM_RANGE(0x80018c, 0x80018d) AM_DEVREAD8("ym", ym3812_r, 0xff00 )// | |
| 69 | /**/AM_RANGE(0x904000, 0x907fff) AM_READ(SMH_RAM ) // Layers | |
| 70 | /**/AM_RANGE(0x908000, 0x90bfff) AM_READ(SMH_RAM ) // | |
| 71 | /**/AM_RANGE(0x90c000, 0x90ffff) AM_READ(SMH_RAM ) // | |
| 72 | /**/AM_RANGE(0x920000, 0x923fff) AM_READ(SMH_RAM ) // ? 0 | |
| 73 | /**/AM_RANGE(0x930000, 0x9307ff) AM_READ(SMH_RAM ) // Sprites | |
| 74 | /**/AM_RANGE(0x940000, 0x947fff) AM_READ(SMH_RAM ) // Palette | |
| 67 | AM_RANGE(0x800030, 0x800031) AM_WRITENOP // ? 0 | |
| 68 | AM_RANGE(0x80010c, 0x80010d) AM_WRITE(SMH_RAM) AM_BASE(&unico_scrollx_0) // Scroll | |
| 69 | AM_RANGE(0x80010e, 0x80010f) AM_WRITE(SMH_RAM) AM_BASE(&unico_scrolly_0) // | |
| 70 | AM_RANGE(0x800110, 0x800111) AM_WRITE(SMH_RAM) AM_BASE(&unico_scrolly_2) // | |
| 71 | AM_RANGE(0x800114, 0x800115) AM_WRITE(SMH_RAM) AM_BASE(&unico_scrollx_2) // | |
| 72 | AM_RANGE(0x800116, 0x800117) AM_WRITE(SMH_RAM) AM_BASE(&unico_scrollx_1) // | |
| 73 | AM_RANGE(0x800120, 0x800121) AM_WRITE(SMH_RAM) AM_BASE(&unico_scrolly_1) // | |
| 74 | AM_RANGE(0x800188, 0x800189) AM_DEVREADWRITE8("oki", okim6295_r, okim6295_w, 0x00ff) // Sound | |
| 75 | AM_RANGE(0x80018a, 0x80018d) AM_DEVREADWRITE8("ym", ym3812_r, ym3812_w, 0xff00) // | |
| 76 | AM_RANGE(0x80018e, 0x80018f) AM_DEVWRITE("oki", burglarx_sound_bank_w) // | |
| 77 | AM_RANGE(0x8001e0, 0x8001e1) AM_WRITENOP // IRQ Ack | |
| 78 | AM_RANGE(0x904000, 0x907fff) AM_RAM_WRITE(unico_vram_1_w) AM_BASE(&unico_vram_1 ) // Layers | |
| 79 | AM_RANGE(0x908000, 0x90bfff) AM_RAM_WRITE(unico_vram_2_w) AM_BASE(&unico_vram_2 ) // | |
| 80 | AM_RANGE(0x90c000, 0x90ffff) AM_RAM_WRITE(unico_vram_0_w) AM_BASE(&unico_vram_0 ) // | |
| 81 | AM_RANGE(0x920000, 0x923fff) AM_RAM // ? 0 | |
| 82 | AM_RANGE(0x930000, 0x9307ff) AM_RAM AM_BASE(&spriteram16) AM_SIZE(&spriteram_size ) // Sprites | |
| 83 | AM_RANGE(0x940000, 0x947fff) AM_RAM_WRITE(unico_palette_w) AM_BASE(&paletteram16 ) // Palette | |
| 75 | 84 | ADDRESS_MAP_END |
| 76 | 85 | |
| 77 | static ADDRESS_MAP_START( writemem_burglarx, ADDRESS_SPACE_PROGRAM, 16 ) | |
| 78 | AM_RANGE(0x000000, 0x0fffff) AM_WRITE(SMH_ROM ) // ROM | |
| 79 | AM_RANGE(0xff0000, 0xffffff) AM_WRITE(SMH_RAM ) // RAM | |
| 80 | AM_RANGE(0x800030, 0x800031) AM_WRITE(SMH_NOP ) // ? 0 | |
| 81 | AM_RANGE(0x80010c, 0x80010d) AM_WRITE(SMH_RAM) AM_BASE(&unico_scrollx_0 ) // Scroll | |
| 82 | AM_RANGE(0x80010e, 0x80010f) AM_WRITE(SMH_RAM) AM_BASE(&unico_scrolly_0 ) // | |
| 83 | AM_RANGE(0x800110, 0x800111) AM_WRITE(SMH_RAM) AM_BASE(&unico_scrolly_2 ) // | |
| 84 | AM_RANGE(0x800114, 0x800115) AM_WRITE(SMH_RAM) AM_BASE(&unico_scrollx_2 ) // | |
| 85 | AM_RANGE(0x800116, 0x800117) AM_WRITE(SMH_RAM) AM_BASE(&unico_scrollx_1 ) // | |
| 86 | AM_RANGE(0x800120, 0x800121) AM_WRITE(SMH_RAM) AM_BASE(&unico_scrolly_1 ) // | |
| 87 | AM_RANGE(0x800188, 0x800189) AM_DEVWRITE8("oki", okim6295_w, 0x00ff ) // Sound | |
| 88 | AM_RANGE(0x80018a, 0x80018d) AM_DEVWRITE8("ym", ym3812_w, 0xff00 ) // | |
| 89 | AM_RANGE(0x80018e, 0x80018f) AM_DEVWRITE("oki", burglarx_sound_bank_w ) // | |
| 90 | AM_RANGE(0x8001e0, 0x8001e1) AM_WRITE(SMH_RAM ) // ? IRQ Ack | |
| 91 | AM_RANGE(0x904000, 0x907fff) AM_WRITE(unico_vram_1_w) AM_BASE(&unico_vram_1 ) // Layers | |
| 92 | AM_RANGE(0x908000, 0x90bfff) AM_WRITE(unico_vram_2_w) AM_BASE(&unico_vram_2 ) // | |
| 93 | AM_RANGE(0x90c000, 0x90ffff) AM_WRITE(unico_vram_0_w) AM_BASE(&unico_vram_0 ) // | |
| 94 | AM_RANGE(0x920000, 0x923fff) AM_WRITE(SMH_RAM ) // ? 0 | |
| 95 | AM_RANGE(0x930000, 0x9307ff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size ) // Sprites | |
| 96 | AM_RANGE(0x940000, 0x947fff) AM_WRITE(unico_palette_w) AM_BASE(&paletteram16 ) // Palette | |
| 97 | ADDRESS_MAP_END | |
| 98 | 86 | |
| 99 | 87 | |
| 100 | ||
| 101 | 88 | /*************************************************************************** |
| 102 | 89 | Zero Point |
| 103 | 90 | ***************************************************************************/ |
| r4470 | r4471 | |
| 161 | 148 | return ((y&0xff) ^ (video_screen_get_frame_number(space->machine->primary_screen)&1))<<8; |
| 162 | 149 | } |
| 163 | 150 | |
| 164 | static ADDRESS_MAP_START( readmem_zeropnt, ADDRESS_SPACE_PROGRAM, 16 ) | |
| 165 | AM_RANGE(0x000000, 0x0fffff) AM_READ(SMH_ROM ) // ROM | |
| 166 | AM_RANGE(0xef0000, 0xefffff) AM_READ(SMH_RAM ) // RAM | |
| 151 | static ADDRESS_MAP_START( zeropnt_map, ADDRESS_SPACE_PROGRAM, 16 ) | |
| 152 | AM_RANGE(0x000000, 0x0fffff) AM_ROM // ROM | |
| 153 | AM_RANGE(0xef0000, 0xefffff) AM_RAM // RAM | |
| 154 | AM_RANGE(0x800030, 0x800031) AM_WRITENOP // ? 0 | |
| 167 | 155 | AM_RANGE(0x800018, 0x800019) AM_READ_PORT("INPUTS") |
| 168 | 156 | AM_RANGE(0x80001a, 0x80001b) AM_READ_PORT("DSW1") |
| 169 | 157 | AM_RANGE(0x80001c, 0x80001d) AM_READ_PORT("DSW2") |
| 170 | AM_RANGE(0x800170, 0x800171) AM_READ(unico_guny_0_msb_r ) // Light Guns | |
| 171 | AM_RANGE(0x800174, 0x800175) AM_READ(unico_gunx_0_msb_r ) // | |
| 172 | AM_RANGE(0x800178, 0x800179) AM_READ(unico_guny_1_msb_r ) // | |
| 173 | AM_RANGE(0x80017c, 0x80017d) AM_READ(unico_gunx_1_msb_r ) // | |
| 174 | AM_RANGE(0x800188, 0x800189) AM_DEVREAD8("oki", okim6295_r, 0x00ff ) // Sound | |
| 175 | AM_RANGE(0x80018c, 0x80018d) AM_DEVREAD8("ym", ym3812_status_port_r, 0xff00 ) // | |
| 176 | /**/AM_RANGE(0x904000, 0x907fff) AM_READ(SMH_RAM ) // Layers | |
| 177 | /**/AM_RANGE(0x908000, 0x90bfff) AM_READ(SMH_RAM ) // | |
| 178 | /**/AM_RANGE(0x90c000, 0x90ffff) AM_READ(SMH_RAM ) // | |
| 179 | /**/AM_RANGE(0x920000, 0x923fff) AM_READ(SMH_RAM ) // ? 0 | |
| 180 | /**/AM_RANGE(0x930000, 0x9307ff) AM_READ(SMH_RAM ) // Sprites | |
| 181 | /**/AM_RANGE(0x940000, 0x947fff) AM_READ(SMH_RAM ) // Palette | |
| 182 | ADDRESS_MAP_END | |
| 183 | ||
| 184 | static ADDRESS_MAP_START( writemem_zeropnt, ADDRESS_SPACE_PROGRAM, 16 ) | |
| 185 | AM_RANGE(0x000000, 0x0fffff) AM_WRITE(SMH_ROM ) // ROM | |
| 186 | AM_RANGE(0xef0000, 0xefffff) AM_WRITE(SMH_RAM ) // RAM | |
| 187 | AM_RANGE(0x800030, 0x800031) AM_WRITE(SMH_NOP ) // ? 0 | |
| 188 | 158 | AM_RANGE(0x80010c, 0x80010d) AM_WRITE(SMH_RAM) AM_BASE(&unico_scrollx_0 ) // Scroll |
| 189 | 159 | AM_RANGE(0x80010e, 0x80010f) AM_WRITE(SMH_RAM) AM_BASE(&unico_scrolly_0 ) // |
| 190 | 160 | AM_RANGE(0x800110, 0x800111) AM_WRITE(SMH_RAM) AM_BASE(&unico_scrolly_2 ) // |
| 191 | 161 | AM_RANGE(0x800114, 0x800115) AM_WRITE(SMH_RAM) AM_BASE(&unico_scrollx_2 ) // |
| 192 | 162 | AM_RANGE(0x800116, 0x800117) AM_WRITE(SMH_RAM) AM_BASE(&unico_scrollx_1 ) // |
| 193 | 163 | AM_RANGE(0x800120, 0x800121) AM_WRITE(SMH_RAM) AM_BASE(&unico_scrolly_1 ) // |
| 194 | AM_RANGE(0x800188, 0x800189) AM_DEVWRITE8("oki", okim6295_w, 0x00ff ) // Sound | |
| 164 | AM_RANGE(0x800170, 0x800171) AM_READ(unico_guny_0_msb_r ) // Light Guns | |
| 165 | AM_RANGE(0x800174, 0x800175) AM_READ(unico_gunx_0_msb_r ) // | |
| 166 | AM_RANGE(0x800178, 0x800179) AM_READ(unico_guny_1_msb_r ) // | |
| 167 | AM_RANGE(0x80017c, 0x80017d) AM_READ(unico_gunx_1_msb_r ) // | |
| 168 | AM_RANGE(0x800188, 0x800189) AM_DEVREADWRITE8("oki", okim6295_r, okim6295_w, 0x00ff ) // Sound | |
| 195 | 169 | AM_RANGE(0x80018a, 0x80018b) AM_DEVWRITE8("ym", ym3812_write_port_w, 0xff00 ) // |
| 196 | AM_RANGE(0x80018c, 0x80018d) AM_DEVWRITE8("ym", ym3812_control_port_w, 0xff00 ) // | |
| 170 | AM_RANGE(0x80018c, 0x80018d) AM_DEVREADWRITE8("ym", ym3812_status_port_r, ym3812_control_port_w, 0xff00 ) // | |
| 197 | 171 | AM_RANGE(0x80018e, 0x80018f) AM_WRITE(zeropnt_sound_bank_w ) // |
| 198 | 172 | AM_RANGE(0x8001e0, 0x8001e1) AM_WRITE(SMH_RAM ) // ? IRQ Ack |
| 199 | AM_RANGE(0x904000, 0x907fff) AM_WRITE(unico_vram_1_w) AM_BASE(&unico_vram_1 ) // Layers | |
| 200 | AM_RANGE(0x908000, 0x90bfff) AM_WRITE(unico_vram_2_w) AM_BASE(&unico_vram_2 ) // | |
| 201 | AM_RANGE(0x90c000, 0x90ffff) AM_WRITE(unico_vram_0_w) AM_BASE(&unico_vram_0 ) // | |
| 202 | AM_RANGE(0x920000, 0x923fff) AM_WRITE(SMH_RAM ) // ? 0 | |
| 203 | AM_RANGE(0x930000, 0x9307ff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size ) // Sprites | |
| 204 | AM_RANGE(0x940000, 0x947fff) AM_WRITE(unico_palette_w) AM_BASE(&paletteram16 ) // Palette | |
| 173 | AM_RANGE(0x904000, 0x907fff) AM_RAM_WRITE(unico_vram_1_w) AM_BASE(&unico_vram_1 ) // Layers | |
| 174 | AM_RANGE(0x908000, 0x90bfff) AM_RAM_WRITE(unico_vram_2_w) AM_BASE(&unico_vram_2 ) // | |
| 175 | AM_RANGE(0x90c000, 0x90ffff) AM_RAM_WRITE(unico_vram_0_w) AM_BASE(&unico_vram_0 ) // | |
| 176 | AM_RANGE(0x920000, 0x923fff) AM_RAM // ? 0 | |
| 177 | AM_RANGE(0x930000, 0x9307ff) AM_RAM AM_BASE(&spriteram16) AM_SIZE(&spriteram_size ) // Sprites | |
| 178 | AM_RANGE(0x940000, 0x947fff) AM_RAM_WRITE(unico_palette_w) AM_BASE(&paletteram16 ) // Palette | |
| 205 | 179 | ADDRESS_MAP_END |
| 206 | 180 | |
| 207 | 181 | |
| r4470 | r4471 | |
| 253 | 227 | } |
| 254 | 228 | } |
| 255 | 229 | |
| 256 | static ADDRESS_MAP_START( readmem_zeropnt2, ADDRESS_SPACE_PROGRAM, 32 ) | |
| 257 | AM_RANGE(0x000000, 0x1fffff) AM_READ(SMH_ROM ) // ROM | |
| 230 | static ADDRESS_MAP_START( zeropnt2_map, ADDRESS_SPACE_PROGRAM, 32 ) | |
| 231 | AM_RANGE(0x000000, 0x1fffff) AM_ROM // ROM | |
| 258 | 232 | AM_RANGE(0x800018, 0x80001b) AM_READ_PORT("SYSTEM") |
| 259 | AM_RANGE(0x800024, 0x800027) AM_DEVREAD8("oki1", okim6295_r, 0x00ff0000 ) // Sound | |
| 260 | AM_RANGE(0x800028, 0x80002f) AM_DEVREAD8("ym", ym2151_r, 0x00ff0000 ) // | |
| 261 | AM_RANGE(0x800030, 0x800033) AM_DEVREAD8("oki2", okim6295_r, 0x00ff0000 ) // | |
| 233 | AM_RANGE(0x800024, 0x800027) AM_DEVREADWRITE8("oki1", okim6295_r, okim6295_w, 0x00ff0000 ) // Sound | |
| 234 | AM_RANGE(0x800028, 0x80002f) AM_DEVREADWRITE8("ym", ym2151_r, ym2151_w, 0x00ff0000) // | |
| 235 | AM_RANGE(0x800030, 0x800033) AM_DEVREADWRITE8("oki2", okim6295_r, okim6295_w, 0x00ff0000 ) // | |
| 236 | AM_RANGE(0x800034, 0x800037) AM_WRITE(zeropnt2_sound_bank_w ) // | |
| 237 | AM_RANGE(0x800038, 0x80003b) AM_WRITE(zeropnt2_leds_w ) // ? | |
| 238 | AM_RANGE(0x80010c, 0x800123) AM_WRITE(SMH_RAM) AM_BASE(&unico_scroll32 ) // Scroll | |
| 262 | 239 | AM_RANGE(0x800140, 0x800143) AM_READ(zeropnt2_guny_0_msb_r ) // Light Guns |
| 263 | 240 | AM_RANGE(0x800144, 0x800147) AM_READ(zeropnt2_gunx_0_msb_r ) // |
| 264 | 241 | AM_RANGE(0x800148, 0x80014b) AM_READ(zeropnt2_guny_1_msb_r ) // |
| r4470 | r4471 | |
| 266 | 243 | AM_RANGE(0x800150, 0x800153) AM_READ_PORT("DSW1") |
| 267 | 244 | AM_RANGE(0x800154, 0x800157) AM_READ_PORT("DSW2") |
| 268 | 245 | AM_RANGE(0x80015c, 0x80015f) AM_READ_PORT("BUTTONS") |
| 269 | /**/AM_RANGE(0x904000, 0x907fff) AM_READ(SMH_RAM ) // Layers | |
| 270 | /**/AM_RANGE(0x908000, 0x90bfff) AM_READ(SMH_RAM ) // | |
| 271 | /**/AM_RANGE(0x90c000, 0x90ffff) AM_READ(SMH_RAM ) // | |
| 272 | /**/AM_RANGE(0x920000, 0x923fff) AM_READ(SMH_RAM ) // ? 0 | |
| 273 | /**/AM_RANGE(0x930000, 0x9307ff) AM_READ(SMH_RAM ) // Sprites | |
| 274 | /**/AM_RANGE(0x940000, 0x947fff) AM_READ(SMH_RAM ) // Palette | |
| 275 | AM_RANGE(0xfe0000, 0xffffff) AM_READ(SMH_RAM ) // RAM | |
| 246 | AM_RANGE(0x8001e0, 0x8001e3) AM_WRITENOP // ? IRQ Ack | |
| 247 | AM_RANGE(0x8001f0, 0x8001f3) AM_WRITE(zeropnt2_eeprom_w) // EEPROM | |
| 248 | AM_RANGE(0x904000, 0x907fff) AM_RAM_WRITE(unico_vram32_1_w) AM_BASE(&unico_vram32_1 ) // Layers | |
| 249 | AM_RANGE(0x908000, 0x90bfff) AM_RAM_WRITE(unico_vram32_2_w) AM_BASE(&unico_vram32_2 ) // | |
| 250 | AM_RANGE(0x90c000, 0x90ffff) AM_RAM_WRITE(unico_vram32_0_w) AM_BASE(&unico_vram32_0 ) // | |
| 251 | AM_RANGE(0x920000, 0x923fff) AM_RAM // ? 0 | |
| 252 | AM_RANGE(0x930000, 0x9307ff) AM_RAM AM_BASE(&spriteram32) AM_SIZE(&spriteram_size ) // Sprites | |
| 253 | AM_RANGE(0x940000, 0x947fff) AM_RAM_WRITE(unico_palette32_w) AM_BASE(&paletteram32 ) // Palette | |
| 254 | AM_RANGE(0xfe0000, 0xffffff) AM_RAM // RAM | |
| 276 | 255 | ADDRESS_MAP_END |
| 277 | 256 | |
| 278 | static ADDRESS_MAP_START( writemem_zeropnt2, ADDRESS_SPACE_PROGRAM, 32 ) | |
| 279 | AM_RANGE(0x000000, 0x1fffff) AM_WRITE(SMH_ROM ) // ROM | |
| 280 | AM_RANGE(0x800024, 0x800027) AM_DEVWRITE8("oki1", okim6295_w, 0x00ff0000 ) // Sound | |
| 281 | AM_RANGE(0x800028, 0x80002f) AM_DEVWRITE8("ym", ym2151_w, 0x00ff0000) // | |
| 282 | AM_RANGE(0x800030, 0x800033) AM_DEVWRITE8("oki2", okim6295_w, 0x00ff0000 ) // | |
| 283 | AM_RANGE(0x800034, 0x800037) AM_WRITE(zeropnt2_sound_bank_w ) // | |
| 284 | AM_RANGE(0x800038, 0x80003b) AM_WRITE(zeropnt2_leds_w ) // ? | |
| 285 | AM_RANGE(0x80010c, 0x800123) AM_WRITE(SMH_RAM) AM_BASE(&unico_scroll32 ) // Scroll | |
| 286 | AM_RANGE(0x8001e0, 0x8001e3) AM_WRITE(SMH_RAM ) // ? IRQ Ack | |
| 287 | AM_RANGE(0x8001f0, 0x8001f3) AM_WRITE(zeropnt2_eeprom_w ) // EEPROM | |
| 288 | AM_RANGE(0x904000, 0x907fff) AM_WRITE(unico_vram32_1_w) AM_BASE(&unico_vram32_1 ) // Layers | |
| 289 | AM_RANGE(0x908000, 0x90bfff) AM_WRITE(unico_vram32_2_w) AM_BASE(&unico_vram32_2 ) // | |
| 290 | AM_RANGE(0x90c000, 0x90ffff) AM_WRITE(unico_vram32_0_w) AM_BASE(&unico_vram32_0 ) // | |
| 291 | AM_RANGE(0x920000, 0x923fff) AM_WRITE(SMH_RAM ) // ? 0 | |
| 292 | AM_RANGE(0x930000, 0x9307ff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram32) AM_SIZE(&spriteram_size ) // Sprites | |
| 293 | AM_RANGE(0x940000, 0x947fff) AM_WRITE(unico_palette32_w) AM_BASE(&paletteram32 ) // Palette | |
| 294 | AM_RANGE(0xfe0000, 0xffffff) AM_WRITE(SMH_RAM ) // RAM | |
| 295 | ADDRESS_MAP_END | |
| 296 | 257 | |
| 297 | ||
| 298 | 258 | /*************************************************************************** |
| 299 | 259 | |
| 300 | 260 | |
| r4470 | r4471 | |
| 655 | 615 | |
| 656 | 616 | /* basic machine hardware */ |
| 657 | 617 | MDRV_CPU_ADD("maincpu", M68000, 16000000) |
| 658 | MDRV_CPU_PROGRAM_MAP( | |
| 618 | MDRV_CPU_PROGRAM_MAP( | |
| 659 | 619 | MDRV_CPU_VBLANK_INT("screen", irq2_line_hold) |
| 660 | 620 | |
| 661 | 621 | MDRV_MACHINE_RESET(unico) |
| r4470 | r4471 | |
| 702 | 662 | |
| 703 | 663 | /* basic machine hardware */ |
| 704 | 664 | MDRV_CPU_ADD("maincpu", M68000, 16000000) |
| 705 | MDRV_CPU_PROGRAM_MAP( | |
| 665 | MDRV_CPU_PROGRAM_MAP( | |
| 706 | 666 | MDRV_CPU_VBLANK_INT("screen", irq2_line_hold) |
| 707 | 667 | |
| 708 | 668 | MDRV_MACHINE_RESET(zeropt) |
| r4470 | r4471 | |
| 744 | 704 | |
| 745 | 705 | /* basic machine hardware */ |
| 746 | 706 | MDRV_CPU_ADD("maincpu", M68EC020, 16000000) |
| 747 | MDRV_CPU_PROGRAM_MAP( | |
| 707 | MDRV_CPU_PROGRAM_MAP( | |
| 748 | 708 | MDRV_CPU_VBLANK_INT("screen", irq2_line_hold) |
| 749 | 709 | |
| 750 | 710 | MDRV_MACHINE_RESET(zeropt) |
| r4470 | r4471 | |
|---|---|---|
| 24 | 24 | #include "cpu/konami/konami.h" /* for the callback and the firq irq definition */ |
| 25 | 25 | #include "video/konamiic.h" |
| 26 | 26 | #include "sound/2151intf.h" |
| 27 | #include "konamipt.h" | |
| 27 | 28 | |
| 28 | 29 | /* prototypes */ |
| 29 | 30 | static MACHINE_RESET( blockhl ); |
| r4470 | r4471 | |
| 87 | 88 | AM_RANGE(0x8000, 0x87ff) AM_RAM |
| 88 | 89 | AM_RANGE(0xa000, 0xa000) AM_READ(soundlatch_r) |
| 89 | 90 | AM_RANGE(0xc000, 0xc001) AM_DEVREADWRITE("ym", ym2151_r, ym2151_w) |
| 90 | AM_RANGE(0xe00c, 0xe00d) AM_WRITE | |
| 91 | AM_RANGE(0xe00c, 0xe00d) AM_WRITE | |
| 91 | 92 | ADDRESS_MAP_END |
| 92 | 93 | |
| 93 | 94 | |
| r4470 | r4471 | |
| 99 | 100 | |
| 100 | 101 | static INPUT_PORTS_START( blockhl ) |
| 101 | 102 | PORT_START("P1") |
| 102 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) | |
| 103 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) | |
| 104 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) | |
| 105 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) | |
| 106 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) | |
| 107 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) | |
| 108 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) | |
| 109 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 ) | |
| 103 | KONAMI8_B123_START(1) | |
| 110 | 104 | |
| 111 | 105 | PORT_START("P2") |
| 112 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) | |
| 113 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) | |
| 114 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) | |
| 115 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) | |
| 116 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) | |
| 117 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) | |
| 118 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) | |
| 119 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 ) | |
| 106 | KONAMI8_B123_START(2) | |
| 120 | 107 | |
| 121 | 108 | PORT_START("DSW1") |
| 122 | PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW1:1,2,3,4") | |
| 123 | PORT_DIPSETTING( 0x02, DEF_STR( 4C_1C ) ) | |
| 124 | PORT_DIPSETTING( 0x05, DEF_STR( 3C_1C ) ) | |
| 125 | PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) ) | |
| 126 | PORT_DIPSETTING( 0x04, DEF_STR( 3C_2C ) ) | |
| 127 | PORT_DIPSETTING( 0x01, DEF_STR( 4C_3C ) ) | |
| 128 | PORT_DIPSETTING( 0x0f, DEF_STR( 1C_1C ) ) | |
| 129 | PORT_DIPSETTING( 0x03, DEF_STR( 3C_4C ) ) | |
| 130 | PORT_DIPSETTING( 0x07, DEF_STR( 2C_3C ) ) | |
| 131 | PORT_DIPSETTING( 0x0e, DEF_STR( 1C_2C ) ) | |
| 132 | PORT_DIPSETTING( 0x06, DEF_STR( 2C_5C ) ) | |
| 133 | PORT_DIPSETTING( 0x0d, DEF_STR( 1C_3C ) ) | |
| 134 | PORT_DIPSETTING( 0x0c, DEF_STR( 1C_4C ) ) | |
| 135 | PORT_DIPSETTING( 0x0b, DEF_STR( 1C_5C ) ) | |
| 136 | PORT_DIPSETTING( 0x0a, DEF_STR( 1C_6C ) ) | |
| 137 | PORT_DIPSETTING( 0x09, DEF_STR( 1C_7C ) ) | |
| 138 | PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) | |
| 139 | PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW1:5,6,7,8") | |
| 140 | PORT_DIPSETTING( 0x20, DEF_STR( 4C_1C ) ) | |
| 141 | PORT_DIPSETTING( 0x50, DEF_STR( 3C_1C ) ) | |
| 142 | PORT_DIPSETTING( 0x80, DEF_STR( 2C_1C ) ) | |
| 143 | PORT_DIPSETTING( 0x40, DEF_STR( 3C_2C ) ) | |
| 144 | PORT_DIPSETTING( 0x10, DEF_STR( 4C_3C ) ) | |
| 145 | PORT_DIPSETTING( 0xf0, DEF_STR( 1C_1C ) ) | |
| 146 | PORT_DIPSETTING( 0x30, DEF_STR( 3C_4C ) ) | |
| 147 | PORT_DIPSETTING( 0x70, DEF_STR( 2C_3C ) ) | |
| 148 | PORT_DIPSETTING( 0xe0, DEF_STR( 1C_2C ) ) | |
| 149 | PORT_DIPSETTING( 0x60, DEF_STR( 2C_5C ) ) | |
| 150 | PORT_DIPSETTING( 0xd0, DEF_STR( 1C_3C ) ) | |
| 151 | PORT_DIPSETTING( 0xc0, DEF_STR( 1C_4C ) ) | |
| 152 | PORT_DIPSETTING( 0xb0, DEF_STR( 1C_5C ) ) | |
| 153 | PORT_DIPSETTING( 0xa0, DEF_STR( 1C_6C ) ) | |
| 154 | PORT_DIPSETTING( 0x90, DEF_STR( 1C_7C ) ) | |
| 155 | // PORT_DIPSETTING( 0x00, "Invalid" ) | |
| 109 | KONAMI_COINAGE_LOC(DEF_STR( Free_Play ), "No Coin B", SW1) | |
| 110 | /* "No Coin B" = coins produce sound, but no effect on coin counter */ | |
| 156 | 111 | |
| 157 | 112 | PORT_START("DSW2") |
| 158 | 113 | PORT_DIPNAME( 0x01, 0x01, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW2:1") |
| r4470 | r4471 | |
| 332 | 287 | } |
| 333 | 288 | |
| 334 | 289 | |
| 335 | ||
| 336 | 290 | GAME( 1989, blockhl, 0, blockhl, blockhl, blockhl, ROT0, "Konami", "Block Hole", 0 ) |
| 337 | 291 | GAME( 1989, quarth, blockhl, blockhl, blockhl, blockhl, ROT0, "Konami", "Quarth (Japan)", 0 ) |
| r4470 | r4471 | |
|---|---|---|
| 84 | 84 | AM_RANGE(0x180000, 0x180001) AM_READ_PORT("P1_P2") |
| 85 | 85 | AM_RANGE(0x180002, 0x180003) AM_READ_PORT("DSW") |
| 86 | 86 | AM_RANGE(0x180008, 0x180009) AM_READ_PORT("COINS") |
| 87 | // AM_RANGE(0x18000a, 0x18000b) AM_READ | |
| 87 | // AM_RANGE(0x18000a, 0x18000b) AM_READ | |
| 88 | 88 | ADDRESS_MAP_END |
| 89 | 89 | |
| 90 | 90 | static ADDRESS_MAP_START( diverboy_writemem, ADDRESS_SPACE_PROGRAM, 16 ) |
| r4470 | r4471 | |
| 93 | 93 | AM_RANGE(0x080000, 0x083fff) AM_WRITE(SMH_RAM) AM_BASE(&diverboy_spriteram) AM_SIZE(&diverboy_spriteram_size) |
| 94 | 94 | AM_RANGE(0x100000, 0x100001) AM_WRITE(soundcmd_w) |
| 95 | 95 | AM_RANGE(0x140000, 0x1407ff) AM_WRITE(paletteram16_xxxxBBBBGGGGRRRR_word_w) AM_BASE(&paletteram16) |
| 96 | // AM_RANGE(0x18000c, 0x18000d) AM_WRITE | |
| 96 | // AM_RANGE(0x18000c, 0x18000d) AM_WRITE | |
| 97 | 97 | AM_RANGE(0x320000, 0x3207ff) AM_WRITE(SMH_RAM) /* ?? */ |
| 98 | 98 | AM_RANGE(0x322000, 0x3227ff) AM_WRITE(SMH_RAM) /* ?? */ |
| 99 | // AM_RANGE(0x340000, 0x340001) AM_WRITE(SMH_NOP) | |
| 100 | // AM_RANGE(0x340002, 0x340003) AM_WRITE(SMH_NOP) | |
| 99 | // AM_RANGE(0x340000, 0x340001) AM_WRITENOP | |
| 100 | // AM_RANGE(0x340002, 0x340003) AM_WRITENOP | |
| 101 | 101 | ADDRESS_MAP_END |
| 102 | 102 | |
| 103 | 103 | static ADDRESS_MAP_START( snd_readmem, ADDRESS_SPACE_PROGRAM, 8 ) |
| r4470 | r4471 | |
|---|---|---|
| 56 | 56 | static ADDRESS_MAP_START( carjmbre_readmem, ADDRESS_SPACE_PROGRAM, 8 ) |
| 57 | 57 | AM_RANGE(0x0000, 0x7fff) AM_READ(SMH_ROM) |
| 58 | 58 | AM_RANGE(0x8000, 0x87ff) AM_READ(SMH_RAM) |
| 59 | AM_RANGE(0x8800, 0x8800) AM_READ | |
| 59 | AM_RANGE(0x8800, 0x8800) AM_READ | |
| 60 | 60 | AM_RANGE(0x9000, 0x97ff) AM_READ(SMH_RAM) |
| 61 | 61 | AM_RANGE(0xa000, 0xa000) AM_READ_PORT("P1") |
| 62 | 62 | AM_RANGE(0xa800, 0xa800) AM_READ_PORT("P2") |
| r4470 | r4471 | |
| 69 | 69 | AM_RANGE(0x8803, 0x8803) AM_WRITE(interrupt_enable_w) |
| 70 | 70 | AM_RANGE(0x8805, 0x8806) AM_WRITE(carjmbre_bgcolor_w) //guess |
| 71 | 71 | AM_RANGE(0x8807, 0x8807) AM_WRITE(carjmbre_flipscreen_w) |
| 72 | AM_RANGE(0x8fc1, 0x8fc1) AM_WRITE(SMH_NOP) //overrun during initial screen clear | |
| 73 | AM_RANGE(0x8fe1, 0x8fe1) AM_WRITE(SMH_NOP) //overrun during initial screen clear | |
| 72 | AM_RANGE(0x8fc1, 0x8fc1) AM_WRITENOP //overrun during initial screen clear | |
| 73 | AM_RANGE(0x8fe1, 0x8fe1) AM_WRITENOP //overrun during initial screen clear | |
| 74 | 74 | AM_RANGE(0x9000, 0x97ff) AM_WRITE(carjmbre_videoram_w) AM_BASE(&videoram) |
| 75 | 75 | AM_RANGE(0x9800, 0x985f) AM_WRITE(SMH_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size) |
| 76 | 76 | AM_RANGE(0x9880, 0x98df) AM_WRITE(SMH_RAM) //spriteram mirror |
| r4470 | r4471 | |
| 79 | 79 | |
| 80 | 80 | static ADDRESS_MAP_START( carjmbre_sound_readmem, ADDRESS_SPACE_PROGRAM, 8 ) |
| 81 | 81 | AM_RANGE(0x0000, 0x0fff) AM_READ(SMH_ROM) |
| 82 | AM_RANGE(0x1000, 0x10ff) AM_READ(SMH_NOP) //look to be stray reads from 10/12/14/16/18xx | |
| 83 | AM_RANGE(0x1200, 0x12ff) AM_READ(SMH_NOP) | |
| 84 | AM_RANGE(0x1400, 0x14ff) AM_READ(SMH_NOP) | |
| 85 | AM_RANGE(0x1600, 0x16ff) AM_READ(SMH_NOP) | |
| 86 | AM_RANGE(0x1800, 0x18ff) AM_READ(SMH_NOP) | |
| 82 | AM_RANGE(0x1000, 0x10ff) AM_READNOP //look to be stray reads from 10/12/14/16/18xx | |
| 83 | AM_RANGE(0x1200, 0x12ff) AM_READNOP | |
| 84 | AM_RANGE(0x1400, 0x14ff) AM_READNOP | |
| 85 | AM_RANGE(0x1600, 0x16ff) AM_READNOP | |
| 86 | AM_RANGE(0x1800, 0x18ff) AM_READNOP | |
| 87 | 87 | AM_RANGE(0x2000, 0x27ff) AM_READ(SMH_RAM) |
| 88 | 88 | ADDRESS_MAP_END |
| 89 | 89 | |
| r4470 | r4471 | |
| 96 | 96 | static ADDRESS_MAP_START( carjmbre_sound_io_map, ADDRESS_SPACE_IO, 8 ) |
| 97 | 97 | ADDRESS_MAP_GLOBAL_MASK(0xff) |
| 98 | 98 | AM_RANGE(0x00, 0x00) AM_READ(soundlatch_r) |
| 99 | AM_RANGE(0x10, 0x10) AM_WRITE | |
| 99 | AM_RANGE(0x10, 0x10) AM_WRITE | |
| 100 | 100 | AM_RANGE(0x20, 0x21) AM_DEVWRITE("ay1", ay8910_address_data_w) |
| 101 | AM_RANGE(0x22, 0x22) AM_WRITE(SMH_NOP) //?? written before and after 0x21 with same value | |
| 102 | AM_RANGE(0x24, 0x24) AM_READ(SMH_NOP) //?? | |
| 101 | AM_RANGE(0x22, 0x22) AM_WRITENOP //?? written before and after 0x21 with same value | |
| 102 | AM_RANGE(0x24, 0x24) AM_READNOP //?? | |
| 103 | 103 | AM_RANGE(0x30, 0x31) AM_DEVWRITE("ay2", ay8910_address_data_w) |
| 104 | AM_RANGE(0x32, 0x32) AM_WRITE | |
| 104 | AM_RANGE(0x32, 0x32) AM_WRITE | |
| 105 | 105 | ADDRESS_MAP_END |
| 106 | 106 | |
| 107 | 107 | static INPUT_PORTS_START( carjmbre ) |
| r4470 | r4471 | |
|---|---|---|
| 18 | 18 | #include "cpu/m6809/m6809.h" |
| 19 | 19 | #include "video/konamiic.h" |
| 20 | 20 | #include "sound/k007232.h" |
| 21 | #include "konamipt.h" | |
| 21 | 22 | |
| 22 | ||
| 23 | 23 | extern int bottom9_video_enable; |
| 24 | 24 | |
| 25 | 25 | VIDEO_START( bottom9 ); |
| r4470 | r4471 | |
| 164 | 164 | |
| 165 | 165 | static INPUT_PORTS_START( bottom9 ) |
| 166 | 166 | PORT_START("P1") |
| 167 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) | |
| 168 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) | |
| 169 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) | |
| 170 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) | |
| 171 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) | |
| 172 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) | |
| 173 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) | |
| 174 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 167 | KONAMI8_ALT_B12(1) | |
| 175 | 168 | |
| 176 | 169 | PORT_START("P2") |
| 177 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START2 ) | |
| 178 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) | |
| 179 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) | |
| 180 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) | |
| 181 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) | |
| 182 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) | |
| 183 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) | |
| 184 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 170 | KONAMI8_ALT_B12(2) | |
| 185 | 171 | |
| 186 | 172 | PORT_START("DSW1") |
| 187 | PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW1:1,2,3,4") | |
| 188 | PORT_DIPSETTING( 0x02, DEF_STR( 4C_1C ) ) | |
| 189 | PORT_DIPSETTING( 0x05, DEF_STR( 3C_1C ) ) | |
| 190 | PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) ) | |
| 191 | PORT_DIPSETTING( 0x04, DEF_STR( 3C_2C ) ) | |
| 192 | PORT_DIPSETTING( 0x01, DEF_STR( 4C_3C ) ) | |
| 193 | PORT_DIPSETTING( 0x0f, DEF_STR( 1C_1C ) ) | |
| 194 | PORT_DIPSETTING( 0x00, DEF_STR( 4C_5C ) ) | |
| 195 | PORT_DIPSETTING( 0x03, DEF_STR( 3C_4C ) ) | |
| 196 | PORT_DIPSETTING( 0x07, DEF_STR( 2C_3C ) ) | |
| 197 | PORT_DIPSETTING( 0x0e, DEF_STR( 1C_2C ) ) | |
| 198 | PORT_DIPSETTING( 0x06, DEF_STR( 2C_5C ) ) | |
| 199 | PORT_DIPSETTING( 0x0d, DEF_STR( 1C_3C ) ) | |
| 200 | PORT_DIPSETTING( 0x0c, DEF_STR( 1C_4C ) ) | |
| 201 | PORT_DIPSETTING( 0x0b, DEF_STR( 1C_5C ) ) | |
| 202 | PORT_DIPSETTING( 0x0a, DEF_STR( 1C_6C ) ) | |
| 203 | PORT_DIPSETTING( 0x09, DEF_STR( 1C_7C ) ) | |
| 204 | PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW1:5,6,7,8") | |
| 205 | PORT_DIPSETTING( 0x20, DEF_STR( 4C_1C ) ) | |
| 206 | PORT_DIPSETTING( 0x50, DEF_STR( 3C_1C ) ) | |
| 207 | PORT_DIPSETTING( 0x80, DEF_STR( 2C_1C ) ) | |
| 208 | PORT_DIPSETTING( 0x40, DEF_STR( 3C_2C ) ) | |
| 209 | PORT_DIPSETTING( 0x10, DEF_STR( 4C_3C ) ) | |
| 210 | PORT_DIPSETTING( 0xf0, DEF_STR( 1C_1C ) ) | |
| 211 | PORT_DIPSETTING( 0x00, DEF_STR( 4C_5C ) ) | |
| 212 | PORT_DIPSETTING( 0x30, DEF_STR( 3C_4C ) ) | |
| 213 | PORT_DIPSETTING( 0x70, DEF_STR( 2C_3C ) ) | |
| 214 | PORT_DIPSETTING( 0xe0, DEF_STR( 1C_2C ) ) | |
| 215 | PORT_DIPSETTING( 0x60, DEF_STR( 2C_5C ) ) | |
| 216 | PORT_DIPSETTING( 0xd0, DEF_STR( 1C_3C ) ) | |
| 217 | PORT_DIPSETTING( 0xc0, DEF_STR( 1C_4C ) ) | |
| 218 | PORT_DIPSETTING( 0xb0, DEF_STR( 1C_5C ) ) | |
| 219 | PORT_DIPSETTING( 0xa0, DEF_STR( 1C_6C ) ) | |
| 220 | PORT_DIPSETTING( 0x90, DEF_STR( 1C_7C ) ) | |
| 173 | KONAMI_COINAGE_ALT_LOC(SW1) | |
| 221 | 174 | |
| 222 | 175 | PORT_START("DSW2") |
| 223 | 176 | PORT_DIPNAME( 0x07, 0x04, "Play Time" ) PORT_DIPLOCATION("SW2:1,2,3") |
| r4470 | r4471 | |
|---|---|---|
| 286 | 286 | } |
| 287 | 287 | |
| 288 | 288 | static ADDRESS_MAP_START( dreamwld_map, ADDRESS_SPACE_PROGRAM, 32 ) |
| 289 | AM_RANGE(0x000000, 0x0fffff) AM_ROM AM_WRITE | |
| 289 | AM_RANGE(0x000000, 0x0fffff) AM_ROM AM_WRITE | |
| 290 | 290 | |
| 291 | 291 | AM_RANGE(0x400000, 0x401fff) AM_RAM AM_BASE( &spriteram32 ) |
| 292 | 292 | AM_RANGE(0x600000, 0x601fff) AM_RAM_WRITE(dreamwld_palette_w) AM_BASE(&paletteram32) // real palette? |
| r4470 | r4471 | |
|---|---|---|
| 306 | 306 | AM_RANGE(0x3a04, 0x3a04) AM_READ(xain_68705_r) /* from the 68705 */ |
| 307 | 307 | AM_RANGE(0x3a04, 0x3a05) AM_WRITE(xain_scrollxP0_w) |
| 308 | 308 | AM_RANGE(0x3a05, 0x3a05) AM_READ_PORT("VBLANK") |
| 309 | // AM_RANGE(0x3a06, 0x3a06) AM_READ | |
| 309 | // AM_RANGE(0x3a06, 0x3a06) AM_READ | |
| 310 | 310 | AM_RANGE(0x3a06, 0x3a07) AM_WRITE(xain_scrollyP0_w) |
| 311 | 311 | AM_RANGE(0x3a08, 0x3a08) AM_WRITE(xain_sound_command_w) |
| 312 | 312 | AM_RANGE(0x3a09, 0x3a0c) AM_WRITE(xain_main_irq_w) |
| r4470 | r4471 | |
| 717 | 717 | } |
| 718 | 718 | |
| 719 | 719 | |
| 720 | GAME( 1986, xsleena, 0, xsleena, xsleena, xsleena, ROT0, "Technos", "Xain'd Sleena", 0 ) | |
| 720 | GAME( 1986, xsleena, 0, xsleena, xsleena, xsleena, ROT0, "Technos Japan", "Xain'd Sleena", 0 ) | |
| 721 | 721 | GAME( 1986, xsleenab, xsleena, xsleena, xsleena, 0, ROT0, "bootleg", "Xain'd Sleena (bootleg)", 0 ) |
| 722 | GAME( 1986, solarwar, xsleena, xsleena, xsleena, solarwar, ROT0, "[Technos] Taito (Memetron license)", "Solar-Warrior", 0 ) | |
| 722 | GAME( 1986, solarwar, xsleena, xsleena, xsleena, solarwar, ROT0, "[Technos Japan] Taito (Memetron license)", "Solar-Warrior", 0 ) |
| r4470 | r4471 | |
|---|---|---|
| 1460 | 1460 | PORT_DIPSETTING( 0xd0, DEF_STR( 1C_5C ) ) |
| 1461 | 1461 | PORT_DIPSETTING( 0x50, DEF_STR( 1C_6C ) ) |
| 1462 | 1462 | PORT_DIPSETTING( 0x90, DEF_STR( 1C_7C ) ) |
| 1463 | PORT_DIPSETTING( 0x00, "Disable All Coins" ) | |
| 1463 | PORT_DIPSETTING( 0x00, "Invalid" ) | |
| 1464 | /* Invalid = both coin slots disabled */ | |
| 1464 | 1465 | INPUT_PORTS_END |
| 1465 | 1466 | |
| 1466 | 1467 |
| r4470 | r4471 | |
|---|---|---|
| 435 | 435 | AM_RANGE(0xe000, 0xefff) AM_WRITE(namcos1_bankswitch_w) |
| 436 | 436 | AM_RANGE(0xf000, 0xf000) AM_WRITE(namcos1_cpu_control_w) |
| 437 | 437 | AM_RANGE(0xf200, 0xf200) AM_WRITE(namcos1_watchdog_w) |
| 438 | // AM_RANGE(0xf400, 0xf400) AM_WRITE | |
| 438 | // AM_RANGE(0xf400, 0xf400) AM_WRITE | |
| 439 | 439 | AM_RANGE(0xf600, 0xf600) AM_WRITE(irq_ack_w) |
| 440 | 440 | AM_RANGE(0xf800, 0xf800) AM_WRITE(firq_ack_w) |
| 441 | 441 | AM_RANGE(0xfa00, 0xfa00) AM_WRITE(namcos1_sub_firq_w) // asserts FIRQ on CPU1 |
| r4470 | r4471 | |
| 453 | 453 | AM_RANGE(0xa000, 0xbfff) AM_RAMBANK(14) |
| 454 | 454 | AM_RANGE(0xc000, 0xdfff) AM_RAMBANK(15) |
| 455 | 455 | AM_RANGE(0xe000, 0xefff) AM_WRITE(namcos1_bankswitch_w) |
| 456 | // AM_RANGE(0xf000, 0xf000) AM_WRITE | |
| 456 | // AM_RANGE(0xf000, 0xf000) AM_WRITE | |
| 457 | 457 | AM_RANGE(0xf200, 0xf200) AM_WRITE(namcos1_watchdog_w) |
| 458 | // AM_RANGE(0xf400, 0xf400) AM_WRITE | |
| 458 | // AM_RANGE(0xf400, 0xf400) AM_WRITE | |
| 459 | 459 | AM_RANGE(0xf600, 0xf600) AM_WRITE(irq_ack_w) |
| 460 | 460 | AM_RANGE(0xf800, 0xf800) AM_WRITE(firq_ack_w) |
| 461 | 461 | AM_RANGE(0xe000, 0xffff) AM_ROMBANK(16) |
| r4470 | r4471 | |
| 499 | 499 | ADDRESS_MAP_END |
| 500 | 500 | |
| 501 | 501 | |
| 502 | // #define PRIORITY_EASINESS_TO_PLAY | |
| 502 | 503 | |
| 503 | 504 | /* Standard Namco System 1 input port definition */ |
| 504 | 505 | static INPUT_PORTS_START( ns1 ) |
| r4470 | r4471 | |
| 523 | 524 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 ) |
| 524 | 525 | |
| 525 | 526 | PORT_START( "DIPSW" ) |
| 526 | PORT_SERVICE( 0x80, IP_ACTIVE_LOW ) | |
| 527 | PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) | |
| 528 | PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) | |
| 529 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) | |
| 530 | PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) | |
| 531 | PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) | |
| 532 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) | |
| 533 | PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) | |
| 534 | PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) | |
| 535 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) | |
| 536 | PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) | |
| 537 | PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) | |
| 538 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) | |
| 539 | PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) | |
| 540 | PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) | |
| 541 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) | |
| 542 | PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) ) | |
| 543 | PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) | |
| 544 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) | |
| 545 | PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) ) | |
| 546 | PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) | |
| 547 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) | |
| 527 | PORT_SERVICE_DIPLOC( 0x80, IP_ACTIVE_LOW, "SW:1" ) | |
| 528 | PORT_DIPUNKNOWN_DIPLOC( 0x40, 0x40, "SW:2" ) | |
| 529 | PORT_DIPUNKNOWN_DIPLOC( 0x20, 0x20, "SW:3" ) | |
| 530 | PORT_DIPUNKNOWN_DIPLOC( 0x10, 0x10, "SW:4" ) | |
| 531 | PORT_DIPUNKNOWN_DIPLOC( 0x08, 0x08, "SW:5" ) | |
| 532 | PORT_DIPUNKNOWN_DIPLOC( 0x04, 0x04, "SW:6" ) | |
| 533 | PORT_DIPUNKNOWN_DIPLOC( 0x02, 0x02, "SW:7" ) | |
| 534 | PORT_DIPUNKNOWN_DIPLOC( 0x01, 0x01, "SW:8" ) | |
| 548 | 535 | |
| 549 | 536 | PORT_START( "COIN" ) |
| 550 | 537 | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* OUT:coin lockout */ |
| r4470 | r4471 | |
| 563 | 550 | PORT_INCLUDE( ns1 ) |
| 564 | 551 | |
| 565 | 552 | PORT_MODIFY( "DIPSW" ) |
| 566 | PORT_DIPNAME( 0x40, 0x40, "Freeze" ) | |
| 553 | PORT_DIPNAME( 0x40, 0x40, "Freeze" ) PORT_DIPLOCATION("SW:2") | |
| 567 | 554 | PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) |
| 568 | 555 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 569 | PORT_DIPNAME( 0x20, 0x20, "Alternate sound effects" ) // e.g. the red bird | |
| 556 | PORT_DIPNAME( 0x20, 0x20, "Alternate sound effects" ) PORT_DIPLOCATION("SW:3") // e.g. the red bird | |
| 570 | 557 | PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) |
| 571 | 558 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 572 | 559 | INPUT_PORTS_END |
| r4470 | r4471 | |
| 576 | 563 | PORT_INCLUDE( ns1 ) |
| 577 | 564 | |
| 578 | 565 | PORT_MODIFY( "DIPSW" ) |
| 579 | PORT_DIPNAME( 0x7f, 0x7f, "Life" ) | |
| 580 | PORT_DIPSETTING( 0x7f, "2" ) | |
| 581 | PORT_DIPSETTING( 0x16, "3" ) | |
| 566 | #ifdef PRIORITY_EASINESS_TO_PLAY | |
| 567 | PORT_DIPNAME( 0x7f, 0x7f, "Life" ) PORT_DIPLOCATION("SW:8,7,6,5,4,3,2") | |
| 568 | PORT_DIPSETTING( 0x7f, "2" ) | |
| 569 | PORT_DIPSETTING( 0x16, "3" ) | |
| 570 | #else | |
| 571 | PORT_DIPNAME( 0x40, 0x40, "Open 3rd Life (step1of7)" ) PORT_DIPLOCATION("SW:2") | |
| 572 | PORT_DIPSETTING( 0x40, "No (off)" ) | |
| 573 | PORT_DIPSETTING( 0x00, "Yes (on)" ) | |
| 574 | PORT_DIPNAME( 0x20, 0x20, "Open 3rd Life (step2of7)" ) PORT_DIPLOCATION("SW:3") | |
| 575 | PORT_DIPSETTING( 0x20, "No (off)" ) | |
| 576 | PORT_DIPSETTING( 0x00, "Yes (on)" ) | |
| 577 | PORT_DIPNAME( 0x10, 0x10, "Open 3rd Life (step3of7)" ) PORT_DIPLOCATION("SW:4") | |
| 578 | PORT_DIPSETTING( 0x10, "Yes (off)" ) | |
| 579 | PORT_DIPSETTING( 0x00, "No (on)" ) | |
| 580 | PORT_DIPNAME( 0x08, 0x08, "Open 3rd Life (step4of7)" ) PORT_DIPLOCATION("SW:5") | |
| 581 | PORT_DIPSETTING( 0x08, "No (off)" ) | |
| 582 | PORT_DIPSETTING( 0x00, "Yes (on)" ) | |
| 583 | PORT_DIPNAME( 0x04, 0x04, "Open 3rd Life (step5of7)" ) PORT_DIPLOCATION("SW:6") | |
| 584 | PORT_DIPSETTING( 0x04, "Yes (off)" ) | |
| 585 | PORT_DIPSETTING( 0x00, "No (on)" ) | |
| 586 | PORT_DIPNAME( 0x02, 0x02, "Open 3rd Life (step6of7)" ) PORT_DIPLOCATION("SW:7") | |
| 587 | PORT_DIPSETTING( 0x02, "Yes (off)" ) | |
| 588 | PORT_DIPSETTING( 0x00, "No (on)" ) | |
| 589 | PORT_DIPNAME( 0x01, 0x01, "Open 3rd Life (step7of7)" ) PORT_DIPLOCATION("SW:8") | |
| 590 | PORT_DIPSETTING( 0x01, "No (off)" ) | |
| 591 | PORT_DIPSETTING( 0x00, "Yes (on)" ) | |
| 592 | // Allow "Open 3rd Life" = _ooxoxxo | |
| 593 | // 12345678 | |
| 594 | #endif | |
| 582 | 595 | INPUT_PORTS_END |
| 583 | 596 | |
| 584 | 597 | |
| r4470 | r4471 | |
| 600 | 613 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 ) |
| 601 | 614 | |
| 602 | 615 | PORT_MODIFY( "DIPSW" ) |
| 603 | PORT_DIPNAME( 0x40, 0x40, "Unk 1" ) // read @ fac7 | |
| 616 | PORT_DIPNAME( 0x40, 0x40, "Unk 1" ) PORT_DIPLOCATION("SW:2") // read @ fac7 | |
| 604 | 617 | PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) |
| 605 | 618 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 606 | PORT_DIPNAME( 0x10, 0x10, "Freeze" ) | |
| 619 | PORT_DIPNAME( 0x10, 0x10, "Freeze" ) PORT_DIPLOCATION("SW:4") | |
| 607 | 620 | PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) |
| 608 | 621 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 609 | PORT_DIPNAME( 0x04, 0x00, "Brightness" ) | |
| 622 | PORT_DIPNAME( 0x04, 0x00, "Brightness" ) PORT_DIPLOCATION("SW:6") | |
| 610 | 623 | PORT_DIPSETTING( 0x04, DEF_STR( Low ) ) |
| 611 | 624 | PORT_DIPSETTING( 0x00, DEF_STR( Normal ) ) |
| 612 | PORT_DIPNAME( 0x01, 0x01, DEF_STR( Level_Select ) ) | |
| 625 | PORT_DIPNAME( 0x01, 0x01, DEF_STR( Level_Select ) ) PORT_DIPLOCATION("SW:8") | |
| 613 | 626 | PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) |
| 614 | 627 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 615 | 628 | |
| r4470 | r4471 | |
| 644 | 657 | PORT_INCLUDE( ns1 ) |
| 645 | 658 | |
| 646 | 659 | PORT_MODIFY( "DIPSW" ) |
| 647 | PORT_DIPNAME( 0x40, 0x40, "Freeze" ) | |
| 660 | PORT_DIPNAME( 0x40, 0x40, "Freeze" ) PORT_DIPLOCATION("SW:2") | |
| 648 | 661 | PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) |
| 649 | 662 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 650 | 663 | /* this doesn't seem to have much use... */ |
| 651 | PORT_DIPNAME( 0x20, 0x20, "Kick Watchdog in IRQ" ) | |
| 664 | PORT_DIPNAME( 0x20, 0x20, "Kick Watchdog in IRQ" ) PORT_DIPLOCATION("SW:3") | |
| 652 | 665 | PORT_DIPSETTING( 0x20, DEF_STR( No ) ) |
| 653 | 666 | PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) |
| 654 | 667 | /* to enter the A.D.S. menu, set the dip switch and reset with service coin pressed */ |
| 655 | PORT_DIPNAME( 0x08, 0x08, "Auto Data Sampling" ) | |
| 668 | PORT_DIPNAME( 0x08, 0x08, "Auto Data Sampling" ) PORT_DIPLOCATION("SW:5") | |
| 656 | 669 | PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) |
| 657 | 670 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 658 | 671 | INPUT_PORTS_END |
| r4470 | r4471 | |
| 662 | 675 | PORT_INCLUDE( ns1 ) |
| 663 | 676 | |
| 664 | 677 | PORT_MODIFY( "DIPSW" ) |
| 665 | PORT_DIPNAME( 0x7f, 0x7f, "Auto Data Sampling" ) | |
| 666 | PORT_DIPSETTING( 0x7f, DEF_STR( Off ) ) | |
| 667 | PORT_DIPSETTING( 0x57, DEF_STR( On ) ) | |
| 678 | #ifdef PRIORITY_EASINESS_TO_PLAY | |
| 679 | PORT_DIPNAME( 0x28, 0x28, "Auto Data Sampling" ) PORT_DIPLOCATION("SW:5,3") | |
| 680 | PORT_DIPSETTING( 0x28, DEF_STR( Off ) ) | |
| 681 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) | |
| 682 | #else | |
| 683 | PORT_DIPNAME( 0x20, 0x20, "Auto Data Sampling (step1of2)" ) PORT_DIPLOCATION("SW:3") | |
| 684 | PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) | |
| 685 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) | |
| 686 | PORT_DIPNAME( 0x08, 0x08, "Auto Data Sampling (step2of2)" ) PORT_DIPLOCATION("SW:5") | |
| 687 | PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) | |
| 688 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) | |
| 689 | // Allow "Auto Data Sampling" = __o_o___ | |
| 690 | // 12345678 | |
| 691 | #endif | |
| 668 | 692 | INPUT_PORTS_END |
| 669 | 693 | |
| 670 | 694 | |
| r4470 | r4471 | |
| 678 | 702 | PORT_BIT( 0x70, IP_ACTIVE_LOW, IPT_SPECIAL ) /* timing from the buttons interface */ |
| 679 | 703 | |
| 680 | 704 | PORT_MODIFY( "DIPSW" ) |
| 681 | PORT_DIPNAME( 0x20, 0x20, "Invulnerability" ) | |
| 705 | PORT_DIPNAME( 0x20, 0x20, "Invulnerability" ) PORT_DIPLOCATION("SW:3") | |
| 682 | 706 | PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) |
| 683 | 707 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 684 | PORT_DIPNAME( 0x01, 0x01, "Freeze" ) | |
| 708 | PORT_DIPNAME( 0x01, 0x01, "Freeze" ) PORT_DIPLOCATION("SW:8") | |
| 685 | 709 | PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) |
| 686 | 710 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 687 | 711 | |
| r4470 | r4471 | |
| 743 | 767 | PORT_INCLUDE( ns1 ) |
| 744 | 768 | |
| 745 | 769 | PORT_MODIFY( "DIPSW" ) |
| 746 | PORT_DIPNAME( 0x10, 0x10, "Freeze" ) | |
| 770 | PORT_DIPNAME( 0x10, 0x10, "Freeze" ) PORT_DIPLOCATION("SW:4") | |
| 747 | 771 | PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) |
| 748 | 772 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 749 | PORT_DIPNAME( 0x01, 0x01, DEF_STR( Level_Select ) ) | |
| 773 | PORT_DIPNAME( 0x01, 0x01, DEF_STR( Level_Select ) ) PORT_DIPLOCATION("SW:8") | |
| 750 | 774 | PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) |
| 751 | 775 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 752 | 776 | INPUT_PORTS_END |
| r4470 | r4471 | |
| 756 | 780 | PORT_INCLUDE( ns1 ) |
| 757 | 781 | |
| 758 | 782 | PORT_MODIFY( "DIPSW" ) |
| 759 | PORT_DIPNAME( 0x20, 0x20, "Show Coordinates" ) | |
| 783 | PORT_DIPNAME( 0x20, 0x20, "Show Coordinates" ) PORT_DIPLOCATION("SW:3") | |
| 760 | 784 | PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) |
| 761 | 785 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 762 | PORT_DIPNAME( 0x08, 0x08, "Sprite Viewer" ) | |
| 786 | PORT_DIPNAME( 0x08, 0x08, "Sprite Viewer" ) PORT_DIPLOCATION("SW:5") | |
| 763 | 787 | PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) |
| 764 | 788 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 765 | PORT_DIPNAME( 0x04, 0x04, "Invincibility (Cheat)") | |
| 789 | PORT_DIPNAME( 0x04, 0x04, "Invincibility (Cheat)") PORT_DIPLOCATION("SW:6") | |
| 766 | 790 | PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) |
| 767 | 791 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 768 | PORT_DIPNAME( 0x01, 0x01, "Freeze" ) | |
| 792 | PORT_DIPNAME( 0x01, 0x01, "Freeze" ) PORT_DIPLOCATION("SW:8") | |
| 769 | 793 | PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) |
| 770 | 794 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 771 | 795 | INPUT_PORTS_END |
| r4470 | r4471 | |
| 775 | 799 | PORT_INCLUDE( ns1 ) |
| 776 | 800 | |
| 777 | 801 | PORT_MODIFY( "DIPSW" ) |
| 778 | /* see code @ e331. The lines this draws can't even be seen because they are erased afterwards */ | |
| 779 | PORT_DIPNAME( 0x7e, 0x7e, "Draw Debug Lines" ) | |
| 780 | PORT_DIPSETTING( 0x7e, DEF_STR( Off ) ) | |
| 781 | PORT_DIPSETTING( 0x5c, DEF_STR( On ) ) | |
| 782 | PORT_DIPNAME( 0x01, 0x01, "Freeze" ) | |
| 802 | #ifdef PRIORITY_EASINESS_TO_PLAY | |
| 803 | /* see code @ e331. The lines this draws can't even be seen because they are erased afterwards */ | |
| 804 | PORT_DIPNAME( 0x7e, 0x7e, "Draw Debug Lines" ) PORT_DIPLOCATION("SW:7,6,5,4,3,2") | |
| 805 | PORT_DIPSETTING( 0x7e, DEF_STR( Off ) ) | |
| 806 | PORT_DIPSETTING( 0x5c, DEF_STR( On ) ) | |
| 807 | #else | |
| 808 | PORT_DIPNAME( 0x40, 0x40, "Draw Debug Lines (step1of6)" ) PORT_DIPLOCATION("SW:2") | |
| 809 | PORT_DIPSETTING( 0x40, "Yes (off)" ) | |
| 810 | PORT_DIPSETTING( 0x00, "No (on)" ) | |
| 811 | PORT_DIPNAME( 0x20, 0x20, "Draw Debug Lines (step2of6)" ) PORT_DIPLOCATION("SW:3") | |
| 812 | PORT_DIPSETTING( 0x20, "No (off)" ) | |
| 813 | PORT_DIPSETTING( 0x00, "Yes (on)" ) | |
| 814 | PORT_DIPNAME( 0x10, 0x10, "Draw Debug Lines (step3of6)" ) PORT_DIPLOCATION("SW:4") | |
| 815 | PORT_DIPSETTING( 0x10, "Yes (off)" ) | |
| 816 | PORT_DIPSETTING( 0x00, "No (on)" ) | |
| 817 | PORT_DIPNAME( 0x08, 0x08, "Draw Debug Lines (step4of6)" ) PORT_DIPLOCATION("SW:5") | |
| 818 | PORT_DIPSETTING( 0x08, "Yes (off)" ) | |
| 819 | PORT_DIPSETTING( 0x00, "No (on)" ) | |
| 820 | PORT_DIPNAME( 0x04, 0x04, "Draw Debug Lines (step5of6)" ) PORT_DIPLOCATION("SW:6") | |
| 821 | PORT_DIPSETTING( 0x04, "Yes (off)" ) | |
| 822 | PORT_DIPSETTING( 0x00, "No (on)" ) | |
| 823 | PORT_DIPNAME( 0x02, 0x02, "Draw Debug Lines (step6of6)" ) PORT_DIPLOCATION("SW:7") | |
| 824 | PORT_DIPSETTING( 0x02, "No (off)" ) | |
| 825 | PORT_DIPSETTING( 0x00, "Yes (on)" ) | |
| 826 | // Allow "Draw Debug Lines" = _xxoxxo_ | |
| 827 | // 12345678 | |
| 828 | #endif | |
| 829 | PORT_DIPNAME( 0x01, 0x01, "Freeze" ) PORT_DIPLOCATION("SW:8") | |
| 783 | 830 | PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) |
| 784 | 831 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 785 | 832 | INPUT_PORTS_END |
| r4470 | r4471 | |
| 790 | 837 | |
| 791 | 838 | PORT_MODIFY( "DIPSW" ) |
| 792 | 839 | /* these two don't seem to have much use... */ |
| 793 | PORT_DIPNAME( 0x11, 0x11, "CPU #0 Kick Watchdog in IRQ" ) | |
| 794 | PORT_DIPSETTING( 0x11, DEF_STR( No ) ) | |
| 795 | PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) | |
| 796 | PORT_DIPNAME( 0x06, 0x06, "CPU #0&1 Kick Watchdog in IRQ" ) | |
| 797 | PORT_DIPSETTING( 0x06, DEF_STR( No ) ) | |
| 798 | PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) | |
| 840 | #ifdef PRIORITY_EASINESS_TO_PLAY | |
| 841 | PORT_DIPNAME( 0x11, 0x11, "CPU #0 Kick Watchdog in IRQ" ) PORT_DIPLOCATION("SW:8,4") | |
| 842 | PORT_DIPSETTING( 0x11, DEF_STR( No ) ) | |
| 843 | PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) | |
| 844 | #else | |
| 845 | PORT_DIPNAME( 0x10, 0x10, "CPU #0 Kick Watchdog in IRQ (step1of2)" ) PORT_DIPLOCATION("SW:4") | |
| 846 | PORT_DIPSETTING( 0x10, DEF_STR( No ) ) | |
| 847 | PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) | |
| 848 | PORT_DIPNAME( 0x01, 0x01, "CPU #0 Kick Watchdog in IRQ (step2of2)" ) PORT_DIPLOCATION("SW:8") | |
| 849 | PORT_DIPSETTING( 0x01, DEF_STR( No ) ) | |
| 850 | PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) | |
| 851 | // Allow "CPU #0 Kick Watchdog in IRQ" = ___o___o | |
| 852 | // 12345678 | |
| 853 | #endif | |
| 854 | #ifdef PRIORITY_EASINESS_TO_PLAY | |
| 855 | PORT_DIPNAME( 0x06, 0x06, "CPU #0&1 Kick Watchdog in IRQ" ) PORT_DIPLOCATION("SW:7,6") | |
| 856 | PORT_DIPSETTING( 0x06, DEF_STR( No ) ) | |
| 857 | PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) | |
| 858 | #else | |
| 859 | PORT_DIPNAME( 0x04, 0x04, "CPU #0&1 Kick Watchdog in IRQ (step1of2)" ) PORT_DIPLOCATION("SW:6") | |
| 860 | PORT_DIPSETTING( 0x04, DEF_STR( No ) ) | |
| 861 | PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) | |
| 862 | PORT_DIPNAME( 0x02, 0x02, "CPU #0&1 Kick Watchdog in IRQ (step2of2)" ) PORT_DIPLOCATION("SW:7") | |
| 863 | PORT_DIPSETTING( 0x02, DEF_STR( No ) ) | |
| 864 | PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) | |
| 865 | // Allow "CPU #0&1 Kick Watchdog in IRQ" = _____oo_ | |
| 866 | // 12345678 | |
| 867 | #endif | |
| 799 | 868 | PORT_DIPNAME( 0x20, 0x20, "Stage Select (ver. SH3 only)" ) |
| 800 | 869 | PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) |
| 801 | 870 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| r4470 | r4471 | |
| 852 | 921 | |
| 853 | 922 | PORT_MODIFY( "DIPSW" ) |
| 854 | 923 | /* see code @ e90c. The lines this draws can't even be seen because they are erased afterwards */ |
| 855 | PORT_DIPNAME( 0x02, 0x02, "Draw Debug Lines" ) | |
| 924 | PORT_DIPNAME( 0x02, 0x02, "Draw Debug Lines" ) PORT_DIPLOCATION("SW:7") | |
| 856 | 925 | PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) |
| 857 | 926 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 858 | PORT_DIPNAME( 0x01, 0x01, "Freeze" ) | |
| 927 | PORT_DIPNAME( 0x01, 0x01, "Freeze" ) PORT_DIPLOCATION("SW:8") | |
| 859 | 928 | PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) |
| 860 | 929 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 861 | 930 | INPUT_PORTS_END |
| r4470 | r4471 | |
| 865 | 934 | PORT_INCLUDE( ns1 ) |
| 866 | 935 | |
| 867 | 936 | PORT_MODIFY( "DIPSW" ) |
| 868 | PORT_DIPNAME( 0x40, 0x40, "Freeze" ) | |
| 937 | PORT_DIPNAME( 0x40, 0x40, "Freeze" ) PORT_DIPLOCATION("SW:2") | |
| 869 | 938 | PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) |
| 870 | 939 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 871 | 940 | /* this doesn't seem to have much use... */ |
| 872 | PORT_DIPNAME( 0x20, 0x20, "Kick Watchdog in IRQ" ) | |
| 941 | PORT_DIPNAME( 0x20, 0x20, "Kick Watchdog in IRQ" ) PORT_DIPLOCATION("SW:3") | |
| 873 | 942 | PORT_DIPSETTING( 0x20, DEF_STR( No ) ) |
| 874 | 943 | PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) |
| 875 | 944 | /* to enter the A.D.S. menu, set the dip switch, keep 1p start pressed and press service coin */ |
| 876 | PORT_DIPNAME( 0x04, 0x04, "Auto Data Sampling" ) | |
| 945 | PORT_DIPNAME( 0x04, 0x04, "Auto Data Sampling" ) PORT_DIPLOCATION("SW:6") | |
| 877 | 946 | PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) |
| 878 | 947 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 879 | 948 | INPUT_PORTS_END |
| r4470 | r4471 | |
| 884 | 953 | |
| 885 | 954 | PORT_MODIFY( "DIPSW" ) |
| 886 | 955 | /* see code @ e8ff. The lines this draws can't even be seen because they are erased afterwards */ |
| 887 | PORT_DIPNAME( 0x02, 0x02, "Draw Debug Lines" ) | |
| 956 | PORT_DIPNAME( 0x02, 0x02, "Draw Debug Lines" ) PORT_DIPLOCATION("SW:7") | |
| 888 | 957 | PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) |
| 889 | 958 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 890 | PORT_DIPNAME( 0x01, 0x01, "Freeze" ) | |
| 959 | PORT_DIPNAME( 0x01, 0x01, "Freeze" ) PORT_DIPLOCATION("SW:8") | |
| 891 | 960 | PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) |
| 892 | 961 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 893 | 962 | INPUT_PORTS_END |
| r4470 | r4471 | |
| 897 | 966 | PORT_INCLUDE( ns1 ) |
| 898 | 967 | |
| 899 | 968 | PORT_MODIFY( "DIPSW" ) |
| 900 | PORT_DIPNAME( 0x40, 0x40, "Freeze" ) | |
| 969 | PORT_DIPNAME( 0x40, 0x40, "Freeze" ) PORT_DIPLOCATION("SW:2") | |
| 901 | 970 | PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) |
| 902 | 971 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 903 | 972 | INPUT_PORTS_END |
| r4470 | r4471 | |
| 907 | 976 | PORT_INCLUDE( ns1 ) |
| 908 | 977 | |
| 909 | 978 | PORT_MODIFY( "DIPSW" ) |
| 910 | PORT_DIPNAME( 0x40, 0x40, "Auto Data Sampling" ) | |
| 979 | PORT_DIPNAME( 0x40, 0x40, "Auto Data Sampling" ) PORT_DIPLOCATION("SW:2") | |
| 911 | 980 | PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) |
| 912 | 981 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 913 | 982 | INPUT_PORTS_END |
| r4470 | r4471 | |
|---|---|---|
| 29 | 29 | #include "sound/2151intf.h" |
| 30 | 30 | #include "sound/k007232.h" |
| 31 | 31 | #include "sound/upd7759.h" |
| 32 | #include "konamipt.h" | |
| 32 | 33 | |
| 33 | ||
| 34 | 34 | VIDEO_UPDATE( mainevt ); |
| 35 | 35 | VIDEO_UPDATE( dv ); |
| 36 | 36 | VIDEO_START( mainevt ); |
| r4470 | r4471 | |
| 161 | 161 | AM_RANGE(0x1f80, 0x1f80) AM_WRITE(mainevt_bankswitch_w) |
| 162 | 162 | AM_RANGE(0x1f84, 0x1f84) AM_WRITE(soundlatch_w) /* probably */ |
| 163 | 163 | AM_RANGE(0x1f88, 0x1f88) AM_WRITE(mainevt_sh_irqtrigger_w) /* probably */ |
| 164 | AM_RANGE(0x1f8c, 0x1f8d) AM_WRITE | |
| 164 | AM_RANGE(0x1f8c, 0x1f8d) AM_WRITE | |
| 165 | 165 | AM_RANGE(0x1f90, 0x1f90) AM_WRITE(mainevt_coin_w) /* coin counters + lamps */ |
| 166 | 166 | |
| 167 | 167 | AM_RANGE(0x0000, 0x3fff) AM_WRITE(K052109_051960_w) |
| r4470 | r4471 | |
| 251 | 251 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SERVICE4 ) |
| 252 | 252 | |
| 253 | 253 | PORT_START("P1") |
| 254 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) | |
| 255 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) | |
| 256 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) | |
| 257 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) | |
| 258 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) | |
| 259 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) | |
| 260 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) | |
| 261 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) | |
| 254 | KONAMI8_B21_UNK(1) | |
| 262 | 255 | |
| 263 | 256 | PORT_START("P2") |
| 264 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) | |
| 265 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) | |
| 266 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) | |
| 267 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) | |
| 268 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) | |
| 269 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) | |
| 270 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) | |
| 271 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) | |
| 257 | KONAMI8_B21_UNK(2) | |
| 272 | 258 | |
| 273 | 259 | PORT_START("P3") |
| 274 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(3) | |
| 275 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(3) | |
| 276 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(3) | |
| 277 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(3) | |
| 278 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3) | |
| 279 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3) | |
| 280 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) | |
| 281 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) | |
| 260 | KONAMI8_B21_UNK(3) | |
| 282 | 261 | |
| 283 | 262 | PORT_START("P4") |
| 284 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(4) | |
| 285 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(4) | |
| 286 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(4) | |
| 287 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(4) | |
| 288 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(4) | |
| 289 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(4) | |
| 290 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) | |
| 291 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) | |
| 263 | KONAMI8_B21_UNK(4) | |
| 292 | 264 | |
| 293 | 265 | PORT_START("DSW1") |
| 294 | 266 | PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coinage ) ) |
| r4470 | r4471 | |
| 383 | 355 | PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 384 | 356 | |
| 385 | 357 | PORT_MODIFY("DSW1") |
| 386 | PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) ) | |
| 387 | PORT_DIPSETTING( 0x20, DEF_STR( 4C_1C ) ) | |
| 388 | PORT_DIPSETTING( 0x50, DEF_STR( 3C_1C ) ) | |
| 389 | PORT_DIPSETTING( 0x80, DEF_STR( 2C_1C ) ) | |
| 390 | PORT_DIPSETTING( 0x40, DEF_STR( 3C_2C ) ) | |
| 391 | PORT_DIPSETTING( 0x10, DEF_STR( 4C_3C ) ) | |
| 392 | PORT_DIPSETTING( 0xf0, DEF_STR( 1C_1C ) ) | |
| 393 | PORT_DIPSETTING( 0x00, DEF_STR( 4C_5C ) ) | |
| 394 | PORT_DIPSETTING( 0x30, DEF_STR( 3C_4C ) ) | |
| 395 | PORT_DIPSETTING( 0x70, DEF_STR( 2C_3C ) ) | |
| 396 | PORT_DIPSETTING( 0xe0, DEF_STR( 1C_2C ) ) | |
| 397 | PORT_DIPSETTING( 0x60, DEF_STR( 2C_5C ) ) | |
| 398 | PORT_DIPSETTING( 0xd0, DEF_STR( 1C_3C ) ) | |
| 399 | PORT_DIPSETTING( 0xc0, DEF_STR( 1C_4C ) ) | |
| 400 | PORT_DIPSETTING( 0xb0, DEF_STR( 1C_5C ) ) | |
| 401 | PORT_DIPSETTING( 0xa0, DEF_STR( 1C_6C ) ) | |
| 402 | PORT_DIPSETTING( 0x90, DEF_STR( 1C_7C ) ) | |
| 358 | KONAMI_COINAGE_ALT | |
| 403 | 359 | INPUT_PORTS_END |
| 404 | 360 | |
| 405 | 361 | static INPUT_PORTS_START( devstors ) |
| r4470 | r4471 | |
| 421 | 377 | PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 422 | 378 | |
| 423 | 379 | PORT_MODIFY("DSW1") /* like mainevt, but different 0x00 settings */ |
| 424 | PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) ) | |
| 425 | PORT_DIPSETTING( 0x02, DEF_STR( 4C_1C ) ) | |
| 426 | PORT_DIPSETTING( 0x05, DEF_STR( 3C_1C ) ) | |
| 427 | PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) ) | |
| 428 | PORT_DIPSETTING( 0x04, DEF_STR( 3C_2C ) ) | |
| 429 | PORT_DIPSETTING( 0x01, DEF_STR( 4C_3C ) ) | |
| 430 | PORT_DIPSETTING( 0x0f, DEF_STR( 1C_1C ) ) | |
| 431 | PORT_DIPSETTING( 0x03, DEF_STR( 3C_4C ) ) | |
| 432 | PORT_DIPSETTING( 0x07, DEF_STR( 2C_3C ) ) | |
| 433 | PORT_DIPSETTING( 0x0e, DEF_STR( 1C_2C ) ) | |
| 434 | PORT_DIPSETTING( 0x06, DEF_STR( 2C_5C ) ) | |
| 435 | PORT_DIPSETTING( 0x0d, DEF_STR( 1C_3C ) ) | |
| 436 | PORT_DIPSETTING( 0x0c, DEF_STR( 1C_4C ) ) | |
| 437 | PORT_DIPSETTING( 0x0b, DEF_STR( 1C_5C ) ) | |
| 438 | PORT_DIPSETTING( 0x0a, DEF_STR( 1C_6C ) ) | |
| 439 | PORT_DIPSETTING( 0x09, DEF_STR( 1C_7C ) ) | |
| 440 | PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) | |
| 441 | PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) ) | |
| 442 | PORT_DIPSETTING( 0x20, DEF_STR( 4C_1C ) ) | |
| 443 | PORT_DIPSETTING( 0x50, DEF_STR( 3C_1C ) ) | |
| 444 | PORT_DIPSETTING( 0x80, DEF_STR( 2C_1C ) ) | |
| 445 | PORT_DIPSETTING( 0x40, DEF_STR( 3C_2C ) ) | |
| 446 | PORT_DIPSETTING( 0x10, DEF_STR( 4C_3C ) ) | |
| 447 | PORT_DIPSETTING( 0xf0, DEF_STR( 1C_1C ) ) | |
| 448 | PORT_DIPSETTING( 0x30, DEF_STR( 3C_4C ) ) | |
| 449 | PORT_DIPSETTING( 0x70, DEF_STR( 2C_3C ) ) | |
| 450 | PORT_DIPSETTING( 0xe0, DEF_STR( 1C_2C ) ) | |
| 451 | PORT_DIPSETTING( 0x60, DEF_STR( 2C_5C ) ) | |
| 452 | PORT_DIPSETTING( 0xd0, DEF_STR( 1C_3C ) ) | |
| 453 | PORT_DIPSETTING( 0xc0, DEF_STR( 1C_4C ) ) | |
| 454 | PORT_DIPSETTING( 0xb0, DEF_STR( 1C_5C ) ) | |
| 455 | PORT_DIPSETTING( 0xa0, DEF_STR( 1C_6C ) ) | |
| 456 | PORT_DIPSETTING( 0x90, DEF_STR( 1C_7C ) ) | |
| 457 | // PORT_DIPSETTING( 0x00, "Invalid" ) | |
| 380 | KONAMI_COINAGE(DEF_STR( Free_Play ), "Invalid") | |
| 381 | /* "Invalid" = both coin slots disabled */ | |
| 458 | 382 | |
| 459 | 383 | PORT_MODIFY("DSW2") |
| 460 | 384 | PORT_DIPNAME( 0x03, 0x02, DEF_STR( Lives ) ) |
| r4470 | r4471 | |
|---|---|---|
| 14 | 14 | #include "sound/ay8910.h" |
| 15 | 15 | #include "sound/dac.h" |
| 16 | 16 | #include "sound/flt_rc.h" |
| 17 | #include "konamipt.h" | |
| 17 | 18 | |
| 18 | ||
| 19 | 19 | extern UINT8 *megazone_scrollx; |
| 20 | 20 | extern UINT8 *megazone_scrolly; |
| 21 | 21 | |
| r4470 | r4471 | |
| 119 | 119 | AM_RANGE(0x6000, 0x6000) AM_READ_PORT("IN0") /* IO Coin */ |
| 120 | 120 | AM_RANGE(0x6001, 0x6001) AM_READ_PORT("IN1") /* P1 IO */ |
| 121 | 121 | AM_RANGE(0x6002, 0x6002) AM_READ_PORT("IN2") /* P2 IO */ |
| 122 | AM_RANGE(0x8000, 0x8000) AM_READ_PORT("DSW1") /* DIP 1 */ | |
| 123 | AM_RANGE(0x8001, 0x8001) AM_READ_PORT("DSW2") /* DIP 2 */ | |
| 122 | AM_RANGE(0x8000, 0x8000) AM_READ_PORT("DSW1") | |
| 123 | AM_RANGE(0x8001, 0x8001) AM_READ_PORT("DSW2") | |
| 124 | 124 | AM_RANGE(0xe000, 0xe7ff) AM_RAM AM_SHARE(1) |
| 125 | 125 | ADDRESS_MAP_END |
| 126 | 126 | |
| r4470 | r4471 | |
| 157 | 157 | static INPUT_PORTS_START( megazone ) |
| 158 | 158 | /* 0x6000 -> 0xe320 (CPU1) = 0x3b20 (CPU0) */ |
| 159 | 159 | PORT_START("IN0") |
| 160 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) | |
| 161 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) | |
| 162 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 ) | |
| 163 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) | |
| 164 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 ) | |
| 165 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 166 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 167 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 160 | KONAMI8_SYSTEM_UNK | |
| 168 | 161 | |
| 169 | 162 | /* 0x6001 -> 0xe31e (CPU1) = 0x3b1e (CPU0) */ |
| 170 | 163 | PORT_START("IN1") |
| 171 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY | |
| 172 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY | |
| 173 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY | |
| 174 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY | |
| 175 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) | |
| 176 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 177 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 178 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 164 | KONAMI8_MONO_B1_UNK | |
| 179 | 165 | |
| 180 | 166 | /* 0x6002 -> 0xe31e (CPU1) = 0x3b1e (CPU0) or 0xe31f (CPU1) = 0x3b1f (CPU0) in "test mode" */ |
| 181 | 167 | PORT_START("IN2") |
| 182 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL | |
| 183 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL | |
| 184 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL | |
| 185 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL | |
| 186 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL | |
| 187 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 188 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 189 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 168 | KONAMI8_COCKTAIL_B1_UNK | |
| 190 | 169 | |
| 191 | 170 | /* 0x8000 -> 0xe020 (CPU1) = 0x3820 (CPU0) */ |
| 192 | 171 | PORT_START("DSW1") |
| r4470 | r4471 | |
| 214 | 193 | |
| 215 | 194 | /* 0x8001 -> 0xe021 (CPU1) = 0x3821 (CPU0) */ |
| 216 | 195 | PORT_START("DSW2") |
| 217 | PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) ) | |
| 218 | PORT_DIPSETTING( 0x02, DEF_STR( 4C_1C ) ) | |
| 219 | PORT_DIPSETTING( 0x05, DEF_STR( 3C_1C ) ) | |
| 220 | PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) ) | |
| 221 | PORT_DIPSETTING( 0x04, DEF_STR( 3C_2C ) ) | |
| 222 | PORT_DIPSETTING( 0x01, DEF_STR( 4C_3C ) ) | |
| 223 | PORT_DIPSETTING( 0x0f, DEF_STR( 1C_1C ) ) | |
| 224 | PORT_DIPSETTING( 0x03, DEF_STR( 3C_4C ) ) | |
| 225 | PORT_DIPSETTING( 0x07, DEF_STR( 2C_3C ) ) | |
| 226 | PORT_DIPSETTING( 0x0e, DEF_STR( 1C_2C ) ) | |
| 227 | PORT_DIPSETTING( 0x06, DEF_STR( 2C_5C ) ) | |
| 228 | PORT_DIPSETTING( 0x0d, DEF_STR( 1C_3C ) ) | |
| 229 | PORT_DIPSETTING( 0x0c, DEF_STR( 1C_4C ) ) | |
| 230 | PORT_DIPSETTING( 0x0b, DEF_STR( 1C_5C ) ) | |
| 231 | PORT_DIPSETTING( 0x0a, DEF_STR( 1C_6C ) ) | |
| 232 | PORT_DIPSETTING( 0x09, DEF_STR( 1C_7C ) ) | |
| 233 | PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) | |
| 234 | PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) ) | |
| 235 | PORT_DIPSETTING( 0x20, DEF_STR( 4C_1C ) ) | |
| 236 | PORT_DIPSETTING( 0x50, DEF_STR( 3C_1C ) ) | |
| 237 | PORT_DIPSETTING( 0x80, DEF_STR( 2C_1C ) ) | |
| 238 | PORT_DIPSETTING( 0x40, DEF_STR( 3C_2C ) ) | |
| 239 | PORT_DIPSETTING( 0x10, DEF_STR( 4C_3C ) ) | |
| 240 | PORT_DIPSETTING( 0xf0, DEF_STR( 1C_1C ) ) | |
| 241 | PORT_DIPSETTING( 0x30, DEF_STR( 3C_4C ) ) | |
| 242 | PORT_DIPSETTING( 0x70, DEF_STR( 2C_3C ) ) | |
| 243 | PORT_DIPSETTING( 0xe0, DEF_STR( 1C_2C ) ) | |
| 244 | PORT_DIPSETTING( 0x60, DEF_STR( 2C_5C ) ) | |
| 245 | PORT_DIPSETTING( 0xd0, DEF_STR( 1C_3C ) ) | |
| 246 | PORT_DIPSETTING( 0xc0, DEF_STR( 1C_4C ) ) | |
| 247 | PORT_DIPSETTING( 0xb0, DEF_STR( 1C_5C ) ) | |
| 248 | PORT_DIPSETTING( 0xa0, DEF_STR( 1C_6C ) ) | |
| 249 | PORT_DIPSETTING( 0x90, DEF_STR( 1C_7C ) ) | |
| 250 | // PORT_DIPSETTING( 0x00, DEF_STR( 1C_0C ) ) "Not use" | |
| 196 | KONAMI_COINAGE(DEF_STR( Free_Play ), "No Coin B") | |
| 197 | /* "No Coin B" = coins produce sound, but no effect on coin counter */ | |
| 251 | 198 | INPUT_PORTS_END |
| 252 | 199 | |
| 253 | 200 | static INPUT_PORTS_START( megazona ) |
| r4470 | r4471 | |
| 593 | 540 | |
| 594 | 541 | /* this displays Konami and Kosuka copyright with a Konami / Interlogic logo */ |
| 595 | 542 | GAME( 1983, megaznik, megazone, megazone, megazone, megazone, ROT90, "Konami / Interlogic + Kosuka", "Mega Zone (Interlogic + Kosuka)", 0 ) |
| 596 |
| r4470 | r4471 | |
|---|---|---|
| 197 | 197 | AM_RANGE(0x000000, 0x0fffff) AM_ROM |
| 198 | 198 | AM_RANGE(0x100000, 0x107fff) AM_RAM |
| 199 | 199 | AM_RANGE(0x120000, 0x120003) AM_READ_PORT("INPUTS") |
| 200 | AM_RANGE(0x120000, 0x120003) AM_WRITE | |
| 200 | AM_RANGE(0x120000, 0x120003) AM_WRITE | |
| 201 | 201 | AM_RANGE(0x120004, 0x120007) AM_WRITE(hvysmsh_eeprom_w) |
| 202 | AM_RANGE(0x120008, 0x12000b) AM_WRITE | |
| 202 | AM_RANGE(0x120008, 0x12000b) AM_WRITE | |
| 203 | 203 | AM_RANGE(0x12000c, 0x12000f) AM_DEVWRITE("oki1", hvysmsh_oki_0_bank_w) |
| 204 | 204 | AM_RANGE(0x140000, 0x140003) AM_DEVREADWRITE8("oki1", okim6295_r, okim6295_w, 0x000000ff) |
| 205 | 205 | AM_RANGE(0x160000, 0x160003) AM_DEVREADWRITE8("oki2", okim6295_r, okim6295_w, 0x000000ff) |
| r4470 | r4471 | |
| 209 | 209 | AM_RANGE(0x1a0000, 0x1a0fff) AM_READWRITE( wcvol95_pf1_rowscroll_r, wcvol95_pf1_rowscroll_w ) |
| 210 | 210 | AM_RANGE(0x1a4000, 0x1a4fff) AM_READWRITE( wcvol95_pf2_rowscroll_r, wcvol95_pf2_rowscroll_w ) |
| 211 | 211 | AM_RANGE(0x1c0000, 0x1c0fff) AM_READ(SMH_RAM) AM_WRITE(deco32_nonbuffered_palette_w) AM_BASE(&paletteram32) |
| 212 | AM_RANGE(0x1d0010, 0x1d002f) AM_READ | |
| 212 | AM_RANGE(0x1d0010, 0x1d002f) AM_READ | |
| 213 | 213 | AM_RANGE(0x1e0000, 0x1e1fff) AM_RAM AM_BASE(&spriteram32) AM_SIZE(&spriteram_size) |
| 214 | 214 | ADDRESS_MAP_END |
| 215 | 215 |
| r4470 | r4471 | |
|---|---|---|
| 129 | 129 | AM_RANGE(0x06e800, 0x06efff) AM_RAM_WRITE(toki_background1_videoram16_w) AM_BASE(&toki_background1_videoram16) |
| 130 | 130 | AM_RANGE(0x06f000, 0x06f7ff) AM_RAM_WRITE(toki_background2_videoram16_w) AM_BASE(&toki_background2_videoram16) |
| 131 | 131 | AM_RANGE(0x06f800, 0x06ffff) AM_RAM_WRITE(toki_foreground_videoram16_w) AM_BASE(&videoram16) |
| 132 | AM_RANGE(0x071000, 0x071001) AM_WRITE | |
| 132 | AM_RANGE(0x071000, 0x071001) AM_WRITE | |
| 133 | 133 | /* gets written the same value as 75000a (bg2 scrollx) */ |
| 134 | AM_RANGE(0x071804, 0x071807) AM_WRITE | |
| 134 | AM_RANGE(0x071804, 0x071807) AM_WRITE | |
| 135 | 135 | AM_RANGE(0x07180e, 0x071e45) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) |
| 136 | 136 | AM_RANGE(0x072000, 0x072001) AM_READ(watchdog_reset16_r) /* probably */ |
| 137 | 137 | AM_RANGE(0x075000, 0x075001) AM_WRITE(tokib_soundcommand16_w) |
| r4470 | r4471 | |
| 843 | 843 | GAME( 1989, tokia, toki, toki, toki, toki, ROT0, "Tad", "Toki (World set 2)", 0 ) |
| 844 | 844 | GAME( 1989, tokiu, toki, toki, toki, toki, ROT0, "Tad (Fabtek license)", "Toki (US)", 0 ) |
| 845 | 845 | GAME( 1989, juju, toki, toki, toki, toki, ROT0, "Tad", "JuJu Densetsu (Japan)", 0 ) |
| 846 | GAME( 19 | |
| 846 | GAME( 19 | |
| 847 | 847 | /* Sound hardware seems to have been slightly modified, the coins are handled ok, but there is no music and bad sfx. Program roms have a slight bitswap, Flipscreen also seems to be ignored */ |
| 848 | 848 | GAME( 1989, jujub, toki, toki, toki, jujub, ROT180, "bootleg", "JuJu Densetsu (Japan, bootleg)", GAME_IMPERFECT_SOUND ) // bootleg of tokia/tokij revison |
| r4470 | r4471 | |
|---|---|---|
| 86 | 86 | #include "sound/ay8910.h" |
| 87 | 87 | #include "sound/dac.h" |
| 88 | 88 | #include "sound/flt_rc.h" |
| 89 | #include "konamipt.h" | |
| 89 | 90 | |
| 90 | ||
| 91 | 91 | static int i8039_status; |
| 92 | 92 | |
| 93 | 93 | static WRITE8_HANDLER( junofrst_bankselect_w ) |
| r4470 | r4471 | |
| 225 | 225 | |
| 226 | 226 | static INPUT_PORTS_START( junofrst ) |
| 227 | 227 | PORT_START("SYSTEM") |
| 228 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) | |
| 229 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) | |
| 230 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN3 ) | |
| 231 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) | |
| 232 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 ) | |
| 233 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 234 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 235 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 228 | KONAMI8_SYSTEM_UNK | |
| 236 | 229 | |
| 237 | 230 | PORT_START("P1") |
| 238 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY | |
| 239 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY | |
| 240 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY | |
| 241 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY | |
| 242 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON2 ) | |
| 243 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) | |
| 244 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) | |
| 245 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 231 | KONAMI8_MONO_B213_UNK | |
| 246 | 232 | |
| 247 | 233 | PORT_START("P2") |
| 248 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL | |
| 249 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL | |
| 250 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL | |
| 251 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL | |
| 252 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL | |
| 253 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL | |
| 254 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_COCKTAIL | |
| 255 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 234 | KONAMI8_COCKTAIL_B213_UNK | |
| 256 | 235 | |
| 257 | 236 | PORT_START("DSW1") |
| 258 | PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) ) | |
| 259 | PORT_DIPSETTING( 0x02, DEF_STR( 4C_1C ) ) | |
| 260 | PORT_DIPSETTING( 0x05, DEF_STR( 3C_1C ) ) | |
| 261 | PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) ) | |
| 262 | PORT_DIPSETTING( 0x04, DEF_STR( 3C_2C ) ) | |
| 263 | PORT_DIPSETTING( 0x01, DEF_STR( 4C_3C ) ) | |
| 264 | PORT_DIPSETTING( 0x0f, DEF_STR( 1C_1C ) ) | |
| 265 | PORT_DIPSETTING( 0x03, DEF_STR( 3C_4C ) ) | |
| 266 | PORT_DIPSETTING( 0x07, DEF_STR( 2C_3C ) ) | |
| 267 | PORT_DIPSETTING( 0x0e, DEF_STR( 1C_2C ) ) | |
| 268 | PORT_DIPSETTING( 0x06, DEF_STR( 2C_5C ) ) | |
| 269 | PORT_DIPSETTING( 0x0d, DEF_STR( 1C_3C ) ) | |
| 270 | PORT_DIPSETTING( 0x0c, DEF_STR( 1C_4C ) ) | |
| 271 | PORT_DIPSETTING( 0x0b, DEF_STR( 1C_5C ) ) | |
| 272 | PORT_DIPSETTING( 0x0a, DEF_STR( 1C_6C ) ) | |
| 273 | PORT_DIPSETTING( 0x09, DEF_STR( 1C_7C ) ) | |
| 274 | PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) | |
| 275 | PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) ) | |
| 276 | PORT_DIPSETTING( 0x20, DEF_STR( 4C_1C ) ) | |
| 277 | PORT_DIPSETTING( 0x50, DEF_STR( 3C_1C ) ) | |
| 278 | PORT_DIPSETTING( 0x80, DEF_STR( 2C_1C ) ) | |
| 279 | PORT_DIPSETTING( 0x40, DEF_STR( 3C_2C ) ) | |
| 280 | PORT_DIPSETTING( 0x10, DEF_STR( 4C_3C ) ) | |
| 281 | PORT_DIPSETTING( 0xf0, DEF_STR( 1C_1C ) ) | |
| 282 | PORT_DIPSETTING( 0x30, DEF_STR( 3C_4C ) ) | |
| 283 | PORT_DIPSETTING( 0x70, DEF_STR( 2C_3C ) ) | |
| 284 | PORT_DIPSETTING( 0xe0, DEF_STR( 1C_2C ) ) | |
| 285 | PORT_DIPSETTING( 0x60, DEF_STR( 2C_5C ) ) | |
| 286 | PORT_DIPSETTING( 0xd0, DEF_STR( 1C_3C ) ) | |
| 287 | PORT_DIPSETTING( 0xc0, DEF_STR( 1C_4C ) ) | |
| 288 | PORT_DIPSETTING( 0xb0, DEF_STR( 1C_5C ) ) | |
| 289 | PORT_DIPSETTING( 0xa0, DEF_STR( 1C_6C ) ) | |
| 290 | PORT_DIPSETTING( 0x90, DEF_STR( 1C_7C ) ) | |
| 291 | PORT_DIPSETTING( 0x00, "Disabled" ) | |
| 292 | /* 0x00 not remmed out since the game makes the usual sound if you insert the coin */ | |
| 237 | KONAMI_COINAGE(DEF_STR( Free_Play ), "No Coin B") | |
| 238 | /* "No Coin B" = coins produce sound, but no effect on coin counter */ | |
| 293 | 239 | |
| 294 | 240 | PORT_START("DSW2") |
| 295 | 241 | PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) ) |
| r4470 | r4471 | |
|---|---|---|
| 560 | 560 | AM_RANGE(0x3803, 0x3803) AM_WRITE(renegade_flipscreen_w) |
| 561 | 561 | AM_RANGE(0x3804, 0x3804) AM_WRITE(mcu_w) |
| 562 | 562 | AM_RANGE(0x3805, 0x3805) AM_WRITE(bankswitch_w) |
| 563 | AM_RANGE(0x3806, 0x3806) AM_WRITE | |
| 563 | AM_RANGE(0x3806, 0x3806) AM_WRITE | |
| 564 | 564 | AM_RANGE(0x3807, 0x3807) AM_WRITE(renegade_coin_counter_w) |
| 565 | 565 | AM_RANGE(0x4000, 0x7fff) AM_WRITE(SMH_ROM) |
| 566 | 566 | AM_RANGE(0x8000, 0xffff) AM_WRITE(SMH_ROM) |
| r4470 | r4471 | |
| 575 | 575 | |
| 576 | 576 | static ADDRESS_MAP_START( sound_writemem, ADDRESS_SPACE_PROGRAM, 8 ) |
| 577 | 577 | AM_RANGE(0x0000, 0x0fff) AM_WRITE(SMH_RAM) |
| 578 | AM_RANGE(0x1800, 0x1800) AM_WRITE | |
| 578 | AM_RANGE(0x1800, 0x1800) AM_WRITE | |
| 579 | 579 | AM_RANGE(0x2000, 0x2000) AM_WRITE(adpcm_play_w) |
| 580 | 580 | AM_RANGE(0x2800, 0x2801) AM_DEVWRITE("ym", ym3526_w) |
| 581 | AM_RANGE(0x3000, 0x3000) AM_WRITE | |
| 581 | AM_RANGE(0x3000, 0x3000) AM_WRITE | |
| 582 | 582 | AM_RANGE(0x8000, 0xffff) AM_WRITE(SMH_ROM) |
| 583 | 583 | ADDRESS_MAP_END |
| 584 | 584 | |
| r4470 | r4471 | |
| 963 | 963 | |
| 964 | 964 | |
| 965 | 965 | |
| 966 | GAME( 1986, renegade, 0, renegade, renegade, renegade, ROT0, "Technos (Taito America license)", "Renegade (US)", 0 ) | |
| 967 | GAME( 1986, kuniokun, renegade, renegade, renegade, kuniokun, ROT0, "Technos", "Nekketsu Kouha Kunio-kun (Japan)", 0 ) | |
| 966 | GAME( 1986, renegade, 0, renegade, renegade, renegade, ROT0, "Technos Japan (Taito America license)", "Renegade (US)", 0 ) | |
| 967 | GAME( 1986, kuniokun, renegade, renegade, renegade, kuniokun, ROT0, "Technos Japan", "Nekketsu Kouha Kunio-kun (Japan)", 0 ) | |
| 968 | 968 | GAME( 1986, kuniokub, renegade, renegade, renegade, 0, ROT0, "bootleg", "Nekketsu Kouha Kunio-kun (Japan bootleg)", 0 ) |
| r4470 | r4471 | |
|---|---|---|
| 204 | 204 | AM_RANGE(0x04, 0x05) AM_DEVWRITE("ay2", ay8910_address_data_w) |
| 205 | 205 | AM_RANGE(0x06, 0x06) AM_DEVREAD("ay2", ay8910_r) |
| 206 | 206 | AM_RANGE(0x08, 0x08) AM_READWRITE(soundlatch_r, SMH_NOP) /* ??? */ |
| 207 | AM_RANGE(0x14, 0x14) AM_WRITE | |
| 207 | AM_RANGE(0x14, 0x14) AM_WRITE | |
| 208 | 208 | ADDRESS_MAP_END |
| 209 | 209 | |
| 210 | 210 |
| r4470 | r4471 | |
|---|---|---|
| 387 | 387 | AM_RANGE(0xc0, 0xcf) AM_WRITE(nbmj8688_clut_w) |
| 388 | 388 | AM_RANGE(0xd0, 0xd0) AM_DEVWRITE("dac", DAC_WRITE) |
| 389 | 389 | AM_RANGE(0xe0, 0xe0) AM_WRITE(crystalg_romsel_w) |
| 390 | // AM_RANGE(0xf0, 0xf0) AM_WRITE | |
| 390 | // AM_RANGE(0xf0, 0xf0) AM_WRITE | |
| 391 | 391 | ADDRESS_MAP_END |
| 392 | 392 | |
| 393 | 393 |
| r4470 | r4471 | |
|---|---|---|
| 264 | 264 | AM_RANGE(0x110000, 0x11ffff) AM_READ(taitoh_mirrorram_r) /* 68000 RAM (Mirror) */ |
| 265 | 265 | AM_RANGE(0x200000, 0x200001) AM_READ(syvalion_input_bypass_r) |
| 266 | 266 | AM_RANGE(0x200002, 0x200003) AM_READ(TC0220IOC_halfword_port_r) |
| 267 | AM_RANGE(0x300000, 0x300001) AM_READ(SMH_NOP) | |
| 268 | AM_RANGE(0x300002, 0x300003) AM_READ(taitosound_comm16_lsb_r) | |
| 267 | AM_RANGE(0x300000, 0x300001) AM_READNOP | |
| 268 | AM_RANGE(0x300002, 0x300003) AM_READ8(taitosound_comm_r, 0x00ff) | |
| 269 | 269 | AM_RANGE(0x400000, 0x420fff) AM_READ(TC0080VCO_word_r) |
| 270 | 270 | AM_RANGE(0x500800, 0x500fff) AM_READ(SMH_RAM) |
| 271 | 271 | ADDRESS_MAP_END |
| r4470 | r4471 | |
| 275 | 275 | AM_RANGE(0x100000, 0x10ffff) AM_WRITE(SMH_RAM) AM_BASE(&taitoh_68000_mainram) |
| 276 | 276 | AM_RANGE(0x200000, 0x200001) AM_WRITE(TC0220IOC_halfword_portreg_w) |
| 277 | 277 | AM_RANGE(0x200002, 0x200003) AM_WRITE(TC0220IOC_halfword_port_w) |
| 278 | AM_RANGE(0x300000, 0x300001) AM_WRITE(taitosound_port16_lsb_w) | |
| 279 | AM_RANGE(0x300002, 0x300003) AM_WRITE(taitosound_comm16_lsb_w) | |
| 278 | AM_RANGE(0x300000, 0x300001) AM_WRITE8(taitosound_port_w, 0x00ff) | |
| 279 | AM_RANGE(0x300002, 0x300003) AM_WRITE8(taitosound_comm_w, 0x00ff) | |
| 280 | 280 | AM_RANGE(0x400000, 0x420fff) AM_WRITE(TC0080VCO_word_w) |
| 281 | 281 | AM_RANGE(0x500800, 0x500fff) AM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE(&paletteram16) |
| 282 | 282 | ADDRESS_MAP_END |
| r4470 | r4471 | |
| 287 | 287 | AM_RANGE(0x110000, 0x11ffff) AM_READ(taitoh_mirrorram_r) /* 68000 RAM (Mirror) */ |
| 288 | 288 | AM_RANGE(0x200000, 0x200001) AM_READ(TC0220IOC_halfword_portreg_r) |
| 289 | 289 | AM_RANGE(0x200002, 0x200003) AM_READ(TC0220IOC_halfword_port_r) |
| 290 | AM_RANGE(0x300000, 0x300001) AM_READ(SMH_NOP) | |
| 291 | AM_RANGE(0x300002, 0x300003) AM_READ(taitosound_comm16_lsb_r) | |
| 290 | AM_RANGE(0x300000, 0x300001) AM_READNOP | |
| 291 | AM_RANGE(0x300002, 0x300003) AM_READ8(taitosound_comm_r, 0x00ff) | |
| 292 | 292 | AM_RANGE(0x400000, 0x420fff) AM_READ(TC0080VCO_word_r) |
| 293 | 293 | AM_RANGE(0x500800, 0x500fff) AM_READ(SMH_RAM) |
| 294 | 294 | ADDRESS_MAP_END |
| r4470 | r4471 | |
| 298 | 298 | AM_RANGE(0x100000, 0x10ffff) AM_WRITE(SMH_RAM) AM_BASE(&taitoh_68000_mainram) |
| 299 | 299 | AM_RANGE(0x200000, 0x200001) AM_WRITE(TC0220IOC_halfword_portreg_w) |
| 300 | 300 | AM_RANGE(0x200002, 0x200003) AM_WRITE(TC0220IOC_halfword_port_w) |
| 301 | AM_RANGE(0x300000, 0x300001) AM_WRITE(taitosound_port16_lsb_w) | |
| 302 | AM_RANGE(0x300002, 0x300003) AM_WRITE(taitosound_comm16_lsb_w) | |
| 301 | AM_RANGE(0x300000, 0x300001) AM_WRITE8(taitosound_port_w, 0x00ff) | |
| 302 | AM_RANGE(0x300002, 0x300003) AM_WRITE8(taitosound_comm_w, 0x00ff) | |
| 303 | 303 | AM_RANGE(0x400000, 0x420fff) AM_WRITE(TC0080VCO_word_w) |
| 304 | 304 | AM_RANGE(0x500800, 0x500fff) AM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE(&paletteram16) |
| 305 | 305 | ADDRESS_MAP_END |
| r4470 | r4471 | |
| 309 | 309 | AM_RANGE(0x100000, 0x10ffff) AM_READ(SMH_RAM) /* 68000 RAM */ |
| 310 | 310 | AM_RANGE(0x110000, 0x11ffff) AM_READ(taitoh_mirrorram_r) /* 68000 RAM (Mirror) */ |
| 311 | 311 | AM_RANGE(0x200000, 0x20000f) AM_READ(TC0220IOC_halfword_r) |
| 312 | AM_RANGE(0x300000, 0x300001) AM_READ(SMH_NOP) | |
| 313 | AM_RANGE(0x300002, 0x300003) AM_READ(taitosound_comm16_lsb_r) | |
| 312 | AM_RANGE(0x300000, 0x300001) AM_READNOP | |
| 313 | AM_RANGE(0x300002, 0x300003) AM_READ8(taitosound_comm_r, 0x00ff) | |
| 314 | 314 | AM_RANGE(0x400000, 0x420fff) AM_READ(TC0080VCO_word_r) |
| 315 | 315 | AM_RANGE(0x500800, 0x500fff) AM_READ(SMH_RAM) |
| 316 | 316 | ADDRESS_MAP_END |
| r4470 | r4471 | |
| 319 | 319 | AM_RANGE(0x000000, 0x05ffff) AM_WRITE(SMH_ROM) |
| 320 | 320 | AM_RANGE(0x100000, 0x10ffff) AM_WRITE(SMH_RAM) AM_BASE(&taitoh_68000_mainram) |
| 321 | 321 | AM_RANGE(0x200000, 0x20000f) AM_WRITE(TC0220IOC_halfword_w) |
| 322 | AM_RANGE(0x300000, 0x300001) AM_WRITE(taitosound_port16_lsb_w) | |
| 323 | AM_RANGE(0x300002, 0x300003) AM_WRITE(taitosound_comm16_lsb_w) | |
| 322 | AM_RANGE(0x300000, 0x300001) AM_WRITE8(taitosound_port_w, 0x00ff) | |
| 323 | AM_RANGE(0x300002, 0x300003) AM_WRITE8(taitosound_comm_w, 0x00ff) | |
| 324 | 324 | AM_RANGE(0x400000, 0x420fff) AM_WRITE(TC0080VCO_word_w) |
| 325 | 325 | AM_RANGE(0x500800, 0x500fff) AM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE(&paletteram16) |
| 326 | AM_RANGE(0x600000, 0x600001) AM_WRITE | |
| 326 | AM_RANGE(0x600000, 0x600001) AM_WRITE | |
| 327 | 327 | ADDRESS_MAP_END |
| 328 | 328 | |
| 329 | 329 | |
| r4470 | r4471 | |
| 332 | 332 | AM_RANGE(0x4000, 0x7fff) AM_READ(SMH_BANK1) |
| 333 | 333 | AM_RANGE(0xc000, 0xdfff) AM_READ(SMH_RAM) |
| 334 | 334 | AM_RANGE(0xe000, 0xe003) AM_DEVREAD("ym", ym2610_r) |
| 335 | AM_RANGE(0xe200, 0xe200) AM_READ | |
| 335 | AM_RANGE(0xe200, 0xe200) AM_READ | |
| 336 | 336 | AM_RANGE(0xe201, 0xe201) AM_READ(taitosound_slave_comm_r) |
| 337 | AM_RANGE(0xea00, 0xea00) AM_READ | |
| 337 | AM_RANGE(0xea00, 0xea00) AM_READ | |
| 338 | 338 | ADDRESS_MAP_END |
| 339 | 339 | |
| 340 | 340 | static ADDRESS_MAP_START( sound_writemem, ADDRESS_SPACE_PROGRAM, 8 ) |
| r4470 | r4471 | |
| 343 | 343 | AM_RANGE(0xe000, 0xe003) AM_DEVWRITE("ym", ym2610_w) |
| 344 | 344 | AM_RANGE(0xe200, 0xe200) AM_WRITE(taitosound_slave_port_w) |
| 345 | 345 | AM_RANGE(0xe201, 0xe201) AM_WRITE(taitosound_slave_comm_w) |
| 346 | AM_RANGE(0xe400, 0xe403) AM_WRITE(SMH_NOP) /* pan control */ | |
| 347 | AM_RANGE(0xee00, 0xee00) AM_WRITE(SMH_NOP) /* ? */ | |
| 348 | AM_RANGE(0xf000, 0xf000) AM_WRITE(SMH_NOP) /* ? */ | |
| 346 | AM_RANGE(0xe400, 0xe403) AM_WRITENOP /* pan control */ | |
| 347 | AM_RANGE(0xee00, 0xee00) AM_WRITENOP /* ? */ | |
| 348 | AM_RANGE(0xf000, 0xf000) AM_WRITENOP /* ? */ | |
| 349 | 349 | AM_RANGE(0xf200, 0xf200) AM_WRITE(sound_bankswitch_w) |
| 350 | 350 | ADDRESS_MAP_END |
| 351 | 351 |
| r4470 | r4471 | |
|---|---|---|
| 396 | 396 | AM_RANGE(0x03, 0x03) AM_WRITE(invadpt2_sh_port_1_w) |
| 397 | 397 | AM_RANGE(0x05, 0x05) AM_WRITE(cosmo_sh_port_2_w) |
| 398 | 398 | AM_RANGE(0x06, 0x06) AM_WRITE(watchdog_reset_w) |
| 399 | AM_RANGE(0x07, 0x07) AM_WRITE | |
| 399 | AM_RANGE(0x07, 0x07) AM_WRITE | |
| 400 | 400 | ADDRESS_MAP_END |
| 401 | 401 | |
| 402 | 402 | |
| r4470 | r4471 | |
| 1006 | 1006 | AM_RANGE(0x800b, 0x800b) AM_READ_PORT("IN0") |
| 1007 | 1007 | AM_RANGE(0x8018, 0x8018) AM_WRITE(mb14241_0_shift_data_w) |
| 1008 | 1008 | AM_RANGE(0x8019, 0x8019) AM_WRITE(mb14241_0_shift_count_w) |
| 1009 | AM_RANGE(0x801a, 0x801a) AM_WRITE(SMH_NOP) | |
| 1010 | AM_RANGE(0x801c, 0x801c) AM_WRITE(SMH_NOP) | |
| 1011 | AM_RANGE(0x801d, 0x801d) AM_WRITE(SMH_NOP) | |
| 1009 | AM_RANGE(0x801a, 0x801a) AM_WRITENOP | |
| 1010 | AM_RANGE(0x801c, 0x801c) AM_WRITENOP | |
| 1011 | AM_RANGE(0x801d, 0x801d) AM_WRITENOP | |
| 1012 | 1012 | AM_RANGE(0xa000, 0xbfff) AM_MIRROR(0x0060) AM_RAM AM_BASE(&c8080bw_colorram) |
| 1013 | 1013 | AM_RANGE(0xd800, 0xffff) AM_ROM |
| 1014 | 1014 | ADDRESS_MAP_END |
| r4470 | r4471 | |
| 1400 | 1400 | AM_RANGE(0x02, 0x02) AM_READ_PORT("IN1") |
| 1401 | 1401 | AM_RANGE(0x03, 0x03) AM_WRITE(yosakdon_sh_port_1_w) |
| 1402 | 1402 | AM_RANGE(0x05, 0x05) AM_WRITE(yosakdon_sh_port_2_w) |
| 1403 | AM_RANGE(0x06, 0x06) AM_WRITE | |
| 1403 | AM_RANGE(0x06, 0x06) AM_WRITE | |
| 1404 | 1404 | ADDRESS_MAP_END |
| 1405 | 1405 | |
| 1406 | 1406 |
| r4470 | r4471 | |
|---|---|---|
| 501 | 501 | AM_RANGE(0x080000, 0x08ffff) AM_RAM |
| 502 | 502 | AM_RANGE(0x090000, 0x09000f) AM_READWRITE(othunder_TC0220IOC_r, othunder_TC0220IOC_w) |
| 503 | 503 | // AM_RANGE(0x090006, 0x090007) AM_WRITE(eeprom_w) |
| 504 | // AM_RANGE(0x09000c, 0x09000d) AM_WRITE | |
| 504 | // AM_RANGE(0x09000c, 0x09000d) AM_WRITE | |
| 505 | 505 | AM_RANGE(0x100000, 0x100007) AM_READWRITE(TC0110PCR_word_r, TC0110PCR_step1_rbswap_word_w) /* palette */ |
| 506 | 506 | AM_RANGE(0x200000, 0x20ffff) AM_READWRITE(TC0100SCN_word_0_r, TC0100SCN_word_0_w) /* tilemaps */ |
| 507 | 507 | AM_RANGE(0x220000, 0x22000f) AM_READWRITE(TC0100SCN_ctrl_word_0_r, TC0100SCN_ctrl_word_0_w) |
| r4470 | r4471 | |
| 522 | 522 | AM_RANGE(0xe200, 0xe200) AM_READWRITE(SMH_NOP, taitosound_slave_port_w) |
| 523 | 523 | AM_RANGE(0xe201, 0xe201) AM_READWRITE(taitosound_slave_comm_r, taitosound_slave_comm_w) |
| 524 | 524 | AM_RANGE(0xe400, 0xe403) AM_WRITE(othunder_TC0310FAM_w) /* pan */ |
| 525 | AM_RANGE(0xe600, 0xe600) AM_WRITE | |
| 525 | AM_RANGE(0xe600, 0xe600) AM_WRITE | |
| 526 | 526 | AM_RANGE(0xea00, 0xea00) AM_READ_PORT(ROTARY_PORT_TAG) /* rotary input */ |
| 527 | AM_RANGE(0xee00, 0xee00) AM_WRITE(SMH_NOP) /* ? */ | |
| 528 | AM_RANGE(0xf000, 0xf000) AM_WRITE(SMH_NOP) /* ? */ | |
| 527 | AM_RANGE(0xee00, 0xee00) AM_WRITENOP /* ? */ | |
| 528 | AM_RANGE(0xf000, 0xf000) AM_WRITENOP /* ? */ | |
| 529 | 529 | AM_RANGE(0xf200, 0xf200) AM_WRITE(sound_bankswitch_w) |
| 530 | 530 | ADDRESS_MAP_END |
| 531 | 531 |
| r4470 | r4471 | |
|---|---|---|
| 40 | 40 | Megatouch IV (c)1996 |
| 41 | 41 | Megatouch IV Tournament Edition (c)1996 |
| 42 | 42 | Super Megatouch IV (c) 1996 (rom labels 9255-41-0x, see below) |
| 43 | Super Megatouch IV Tournament Edition (c) 1996 | |
| 43 | 44 | *Megatouch 5 (c)1997 |
| 44 | 45 | *Megatouch 5 Tournament Edition (c)1997 |
| 45 | 46 | Megatouch 6 (c)1998 |
| r4470 | r4471 | |
| 750 | 751 | * |
| 751 | 752 | *************************************/ |
| 752 | 753 | |
| 753 | static | |
| 754 | static WRITE_LINE_DEVICE_HANDLER( meritm_audio_pio_interrupt | |
| 754 | 755 | { |
| 755 | 756 | //logerror( "PIO(0) interrupt line: %d, V = %d, H = %d\n", state, video_screen_get_vpos(0), video_screen_get_hpos(0) ); |
| 756 | 757 | cpu_set_input_line(device->machine->cpu[0], 0, state); |
| 757 | 758 | } |
| 758 | 759 | |
| 759 | static | |
| 760 | static WRITE_LINE_DEVICE_HANDLER( meritm_io_pio_interrupt | |
| 760 | 761 | { |
| 761 | 762 | //logerror( "PIO(1) interrupt line: %d, V = %d, H = %d\n", state, video_screen_get_vpos(0), video_screen_get_hpos(0) ); |
| 762 | 763 | cpu_set_input_line(device->machine->cpu[0], 0, state); |
| r4470 | r4471 | |
| 784 | 785 | ds1204_w((data & 0x4) >> 2, (data & 0x2) >> 1, data & 0x01); |
| 785 | 786 | }; |
| 786 | 787 | |
| 787 | static READ8_DEVICE_HANDLER(meritm_io_pio_port_a_r) | |
| 788 | { | |
| 789 | return input_port_read(device->machine, "PIO1_PORTA"); | |
| 790 | }; | |
| 791 | ||
| 792 | static READ8_DEVICE_HANDLER(meritm_io_pio_port_b_r) | |
| 793 | { | |
| 794 | return input_port_read(device->machine, "PIO1_PORTB"); | |
| 795 | }; | |
| 796 | ||
| 797 | 788 | static WRITE8_DEVICE_HANDLER(meritm_io_pio_port_a_w) |
| 798 | 789 | { |
| 799 | 790 | }; |
| r4470 | r4471 | |
| 804 | 795 | |
| 805 | 796 | static const z80pio_interface meritm_audio_pio_intf = |
| 806 | 797 | { |
| 807 | meritm_audio_pio_interrupt, | |
| 808 | meritm_audio_pio_port_a_r, | |
| 809 | meritm_audio_pio_port_b_r, | |
| 810 | meritm_audio_pio_port_a_w, | |
| 811 | meritm_audio_pio_port_b_w, | |
| 812 | 0, | |
| 813 | 0 | |
| 798 | DEVCB_LINE(meritm_audio_pio_interrupt), | |
| 799 | DEVCB_HANDLER(meritm_audio_pio_port_a_r), | |
| 800 | DEVCB_HANDLER(meritm_audio_pio_port_b_r), | |
| 801 | DEVCB_HANDLER(meritm_audio_pio_port_a_w), | |
| 802 | DEVCB_HANDLER(meritm_audio_pio_port_b_w), | |
| 803 | DEVCB_NULL, | |
| 804 | DEVCB_NULL | |
| 814 | 805 | }; |
| 815 | 806 | |
| 816 | 807 | static const z80pio_interface meritm_io_pio_intf = |
| 817 | 808 | { |
| 818 | meritm_io_pio_interrupt, | |
| 819 | meritm_io_pio_port_a_r, | |
| 820 | meritm_io_pio_port_b_r, | |
| 821 | meritm_io_pio_port_a_w, | |
| 822 | meritm_io_pio_port_b_w, | |
| 823 | 0, | |
| 824 | 0 | |
| 809 | DEVCB_LINE(meritm_io_pio_interrupt), | |
| 810 | DEVCB_INPUT_PORT("PIO1_PORTA"), | |
| 811 | DEVCB_INPUT_PORT("PIO1_PORTB"), | |
| 812 | DEVCB_HANDLER(meritm_io_pio_port_a_w), | |
| 813 | DEVCB_HANDLER(meritm_io_pio_port_b_w), | |
| 814 | DEVCB_NULL, | |
| 815 | DEVCB_NULL | |
| 825 | 816 | }; |
| 826 | 817 | |
| 827 | 818 | static const z80_daisy_chain meritm_daisy_chain[] = |
| r4470 | r4471 | |
| 1274 | 1265 | ROM_LOAD( "9255-41-07_u38-r0g", 0x300000, 0x80000, CRC(71eac4d4) SHA1(73b9ed876f0af94bbd88503921a2b4f26bcfd397) ) /* Location U38, 02/11/1997 11:59:41 - New Jersey version */ |
| 1275 | 1266 | ROM_RELOAD( 0x380000, 0x80000) |
| 1276 | 1267 | |
| 1277 | ROM_REGION( 0x8000, "user1", 0 ) // nvram | |
| 1278 | ROM_LOAD( "megat4sn.nv", 0x0000, 0x8000, CRC(1ac8de52) SHA1(d4e7e455f581d7c5192209995af1b98d7802e50f) ) | |
| 1268 | ROM_REGION( 0x8000, "user1", 0 ) // DS1225Y nv ram | |
| 1269 | ROM_LOAD( "mt4sn_ds1225y.u31", 0x0000, 0x8000, CRC(8d2a97e7) SHA1(7cb01d9499fed1674da6a04a11ed1cef0a39b3c0) ) /* No actual label, so use a unique name for this set */ | |
| 1279 | 1270 | |
| 1280 | 1271 | ROM_REGION( 0x1000, "user2", 0 ) // PALs |
| 1281 | 1272 | ROM_LOAD( "sc3943.u20", 0x000, 0x117, CRC(5a72fe78) SHA1(4b1a36904eb7048518507fe14bdade5c2589dbd7) ) |
| r4470 | r4471 | |
| 1295 | 1286 | ROM_RELOAD( 0x380000, 0x080000 ) |
| 1296 | 1287 | |
| 1297 | 1288 | ROM_REGION( 0x8000, "user1", 0 ) // DS1644 nv ram |
| 1298 | ROM_LOAD( "ds1644.u31", 0x00000, 0x8000, CRC( | |
| 1289 | ROM_LOAD( "mt4te_ds1644.u31", 0x00000, 0x8000, CRC(d94854 | |
| 1299 | 1290 | |
| 1300 | 1291 | ROM_REGION( 0x1000, "user2", 0 ) // PALs |
| 1301 | 1292 | ROM_LOAD( "sc3943.u20", 0x000, 0x117, CRC(5a72fe78) SHA1(4b1a36904eb7048518507fe14bdade5c2589dbd7) ) |
| r4470 | r4471 | |
| 1304 | 1295 | ROM_LOAD( "sc3981-0a.u51", 0x000, 0x117, CRC(4fc750d0) SHA1(d09ff7a8c66aeb5c49e9fec84bd1521e3f5d8d0a) ) |
| 1305 | 1296 | ROM_END |
| 1306 | 1297 | |
| 1298 | ROM_START( megat4st ) /* Dallas DS1204V security key at U5 labeled 9255-51-01 U5-B-RO1 C1996 MII */ | |
| 1299 | ROM_REGION( 0x400000, "maincpu", 0 ) | |
| 1300 | ROM_LOAD( "9255-41-01_u32-r0", 0x000000, 0x100000, CRC(f51ae565) SHA1(99c58063bfa24b4383c8b37a1eab670fa6e4c62c) ) /* Location U32 */ | |
| 1301 | ROM_LOAD( "qs9255-02_u36-r0", 0x100000, 0x80000, CRC(57322328) SHA1(12bc604c9d34cde431ef7cd2aa33c7b12ac01833) ) /* Location U36 */ | |
| 1302 | ROM_RELOAD( 0x180000, 0x80000) | |
| 1303 | ROM_LOAD( "qs9255-02_u37-r0", 0x200000, 0x80000, CRC(f2e8bb4e) SHA1(5c5475b3c176a6aca9b2c6aa4aee422675d20bd1) ) /* Location U37 */ | |
| 1304 | ROM_RELOAD( 0x280000, 0x80000) | |
| 1305 | ROM_LOAD( "9255-51-01_u38-r0b", 0x300000, 0x080000, CRC(181a83cb) SHA1(b8f92ae76ebba3849db76b084f0ab7d82256d81a) ) /* Location U38, 12/10/1996 16:59:23 - Standard Version */ | |
| 1306 | ROM_RELOAD( 0x380000, 0x080000 ) | |
| 1307 | ||
| 1308 | ROM_REGION( 0x8000, "user1", 0 ) // DS1644 nv ram | |
| 1309 | ROM_LOAD( "mt4st_ds1644.u31", 0x00000, 0x8000, CRC(c6226d91) SHA1(20c9fa7ad135ac229c6bdf85b901629a0ecb8a81) ) /* No actual label, so use a unique name for this set */ | |
| 1310 | ||
| 1311 | ROM_REGION( 0x1000, "user2", 0 ) // PALs | |
| 1312 | ROM_LOAD( "sc3943.u20", 0x000, 0x117, CRC(5a72fe78) SHA1(4b1a36904eb7048518507fe14bdade5c2589dbd7) ) | |
| 1313 | ROM_LOAD( "sc3944-0a.u19", 0x000, 0x2dd, CRC(4cc46c5e) SHA1(0bab970df1539ce905f43603ad13171b05449a01) ) | |
| 1314 | ROM_LOAD( "sc3980.u40", 0x000, 0x117, CRC(ee0cdab5) SHA1(216fef50a8a0f6a33b704d3501a4c5c3cbac2bad) ) | |
| 1315 | ROM_LOAD( "sc3981-0a.u51", 0x000, 0x117, CRC(4fc750d0) SHA1(d09ff7a8c66aeb5c49e9fec84bd1521e3f5d8d0a) ) | |
| 1316 | ROM_END | |
| 1317 | ||
| 1307 | 1318 | ROM_START( megat5 ) /* Dallas DS1204V security key at U5 labeled 9255-60-01 U5-B-RO1 C1998 MII */ |
| 1308 | 1319 | ROM_REGION( 0x400000, "maincpu", 0 ) |
| 1309 | 1320 | ROM_LOAD( "9255-60-01_u32-r0", 0x000000, 0x100000, CRC(f8f7f48e) SHA1(1bebe1f8898c60b795a0f794ca9b79e03d2744e4) ) |
| r4470 | r4471 | |
| 1436 | 1447 | GAME( 1996, megat4a, megat4, meritm_crt260, meritm_crt260, megat4, ROT0, "Merit", "Megatouch IV (9255-40-01 ROD, Standard version)", GAME_IMPERFECT_GRAPHICS ) |
| 1437 | 1448 | GAME( 1996, megat4sn, megat4, meritm_crt260, meritm_crt260, megat4, ROT0, "Merit", "Super Megatouch IV (9255-41-07 ROG, New Jersey version)", GAME_IMPERFECT_GRAPHICS ) |
| 1438 | 1449 | GAME( 1996, megat4te, megat4, meritm_crt260, meritm_crt260, megat4te, ROT0, "Merit", "Megatouch IV Tournament Edition (9255-50-01 ROD, Standard version)", GAME_IMPERFECT_GRAPHICS ) |
| 1450 | GAME( 1996, megat4st, megat4, meritm_crt260, meritm_crt260, megat4te, ROT0, "Merit", "Super Megatouch IV Tournament Edition (9255-51-01 ROB, Standard version)", GAME_IMPERFECT_GRAPHICS ) | |
| 1439 | 1451 | GAME( 1997, megat5, 0, meritm_crt260, meritm_crt260, megat5, ROT0, "Merit", "Megatouch 5 (9255-60-01 ROC, Standard version)", GAME_IMPERFECT_GRAPHICS|GAME_NOT_WORKING ) |
| 1440 | 1452 | GAME( 1998, megat5nj, megat5, meritm_crt260, meritm_crt260, megat5, ROT0, "Merit", "Megatouch 5 (9255-60-07 RON, New Jersey version)", GAME_IMPERFECT_GRAPHICS ) |
| 1441 | 1453 | GAME( 1998, megat6, 0, meritm_crt260, meritm_crt260, megat6, ROT0, "Merit", "Megatouch 6 (9255-80-01 ROA, Standard version)", GAME_IMPERFECT_GRAPHICS ) |
| r4470 | r4471 | |
|---|---|---|
| 316 | 316 | AM_RANGE(0x4000, 0x7fff) AM_READ(SMH_BANK10) |
| 317 | 317 | AM_RANGE(0xc000, 0xdfff) AM_READ(SMH_RAM) |
| 318 | 318 | AM_RANGE(0xe000, 0xe003) AM_DEVREAD("ym", ym2610_r) |
| 319 | AM_RANGE(0xe200, 0xe200) AM_READ | |
| 319 | AM_RANGE(0xe200, 0xe200) AM_READ | |
| 320 | 320 | AM_RANGE(0xe201, 0xe201) AM_READ(taitosound_slave_comm_r) |
| 321 | AM_RANGE(0xea00, 0xea00) AM_READ | |
| 321 | AM_RANGE(0xea00, 0xea00) AM_READ | |
| 322 | 322 | ADDRESS_MAP_END |
| 323 | 323 | |
| 324 | 324 | static ADDRESS_MAP_START( z80_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 ) |
| r4470 | r4471 | |
| 327 | 327 | AM_RANGE(0xe000, 0xe003) AM_DEVWRITE("ym", ym2610_w) |
| 328 | 328 | AM_RANGE(0xe200, 0xe200) AM_WRITE(taitosound_slave_port_w) |
| 329 | 329 | AM_RANGE(0xe201, 0xe201) AM_WRITE(taitosound_slave_comm_w) |
| 330 | AM_RANGE(0xe400, 0xe403) AM_WRITE(SMH_NOP) /* pan */ | |
| 331 | AM_RANGE(0xee00, 0xee00) AM_WRITE(SMH_NOP) /* ? */ | |
| 332 | AM_RANGE(0xf000, 0xf000) AM_WRITE(SMH_NOP) /* ? */ | |
| 330 | AM_RANGE(0xe400, 0xe403) AM_WRITENOP /* pan */ | |
| 331 | AM_RANGE(0xee00, 0xee00) AM_WRITENOP /* ? */ | |
| 332 | AM_RANGE(0xf000, 0xf000) AM_WRITENOP /* ? */ | |
| 333 | 333 | AM_RANGE(0xf200, 0xf200) AM_WRITE(sound_bankswitch_w) |
| 334 | 334 | ADDRESS_MAP_END |
| 335 | 335 |
| r4470 | r4471 | |
|---|---|---|
| 150 | 150 | ADDRESS_MAP_GLOBAL_MASK(0xff) |
| 151 | 151 | AM_RANGE(0x20, 0x20) AM_READNOP AM_DEVWRITE("sn1", sn76496_w) /* SN76496 ready signal */ |
| 152 | 152 | AM_RANGE(0x21, 0x21) AM_READNOP AM_DEVWRITE("sn2", sn76496_w) |
| 153 | AM_RANGE(0x40, 0x40) AM_WRITE | |
| 153 | AM_RANGE(0x40, 0x40) AM_WRITE | |
| 154 | 154 | AM_RANGE(0x50, 0x50) AM_WRITE(xyonix_irqack_w) |
| 155 | AM_RANGE(0x60, 0x61) AM_WRITE | |
| 155 | AM_RANGE(0x60, 0x61) AM_WRITE | |
| 156 | 156 | AM_RANGE(0xe0, 0xe0) AM_READWRITE(xyonix_io_r, xyonix_io_w) |
| 157 | 157 | ADDRESS_MAP_END |
| 158 | 158 |
| r4470 | r4471 | |
|---|---|---|
| 190 | 190 | AM_RANGE(0x1a4000, 0x1a47ff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) |
| 191 | 191 | AM_RANGE(0x1b4000, 0x1b4001) AM_WRITE(buffer_spriteram16_w) /* DMA flag */ |
| 192 | 192 | AM_RANGE(0x1bc000, 0x1bc0ff) AM_WRITE(deco16_104_cninja_prot_w) AM_BASE(&deco16_prot_ram) /* Protection writes */ |
| 193 | AM_RANGE(0x308000, 0x308fff) AM_WRITE | |
| 193 | AM_RANGE(0x308000, 0x308fff) AM_WRITE | |
| 194 | 194 | ADDRESS_MAP_END |
| 195 | 195 | |
| 196 | 196 | static ADDRESS_MAP_START( edrandy_readmem, ADDRESS_SPACE_PROGRAM, 16 ) |
| r4470 | r4471 | |
| 229 | 229 | AM_RANGE(0x188000, 0x189fff) AM_WRITE(deco16_nonbuffered_palette_w) AM_BASE(&paletteram16) |
| 230 | 230 | AM_RANGE(0x194000, 0x197fff) AM_WRITE(SMH_RAM) AM_BASE(&cninja_ram) /* Main ram */ |
| 231 | 231 | AM_RANGE(0x198000, 0x1987ff) AM_WRITE(deco16_60_prot_w) AM_BASE(&deco16_prot_ram) /* Protection writes */ |
| 232 | AM_RANGE(0x199550, 0x199551) AM_WRITE(SMH_NOP) /* Looks like a bug in game code, a protection write is referenced off a5 instead of a6 and ends up here */ | |
| 233 | AM_RANGE(0x199750, 0x199751) AM_WRITE(SMH_NOP) /* Looks like a bug in game code, a protection write is referenced off a5 instead of a6 and ends up here */ | |
| 232 | AM_RANGE(0x199550, 0x199551) AM_WRITENOP /* Looks like a bug in game code, a protection write is referenced off a5 instead of a6 and ends up here */ | |
| 233 | AM_RANGE(0x199750, 0x199751) AM_WRITENOP /* Looks like a bug in game code, a protection write is referenced off a5 instead of a6 and ends up here */ | |
| 234 | 234 | |
| 235 | 235 | AM_RANGE(0x1a4000, 0x1a4007) AM_WRITE(cninja_irq_w) |
| 236 | 236 | AM_RANGE(0x1ac000, 0x1ac001) AM_WRITE(buffer_spriteram16_w) /* DMA flag */ |
| 237 | 237 | AM_RANGE(0x1bc000, 0x1bc7ff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) |
| 238 | AM_RANGE(0x1bc800, 0x1bcfff) AM_WRITE | |
| 238 | AM_RANGE(0x1bc800, 0x1bcfff) AM_WRITE | |
| 239 | 239 | ADDRESS_MAP_END |
| 240 | 240 | |
| 241 | 241 | static ADDRESS_MAP_START( robocop2_readmem, ADDRESS_SPACE_PROGRAM, 16 ) |
| r4470 | r4471 | |
| 297 | 297 | AM_RANGE(0x316000, 0x317fff) AM_READ(SMH_RAM) |
| 298 | 298 | AM_RANGE(0x318000, 0x3187ff) AM_READ(SMH_RAM) |
| 299 | 299 | AM_RANGE(0x31a000, 0x31a7ff) AM_READ(SMH_RAM) |
| 300 | AM_RANGE(0xad00ac, 0xad00ff) AM_READ | |
| 300 | AM_RANGE(0xad00ac, 0xad00ff) AM_READ | |
| 301 | 301 | ADDRESS_MAP_END |
| 302 | 302 | |
| 303 | 303 | static ADDRESS_MAP_START( mutantf_writemem, ADDRESS_SPACE_PROGRAM, 16 ) |
| r4470 | r4471 | |
| 307 | 307 | AM_RANGE(0x140000, 0x1407ff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16_2) AM_SIZE(&spriteram_2_size) |
| 308 | 308 | AM_RANGE(0x160000, 0x161fff) AM_WRITE(deco16_nonbuffered_palette_w) AM_BASE(&paletteram16) |
| 309 | 309 | AM_RANGE(0x180000, 0x180001) AM_WRITE(deco16_priority_w) |
| 310 | AM_RANGE(0x180002, 0x180003) AM_WRITE | |
| 310 | AM_RANGE(0x180002, 0x180003) AM_WRITE | |
| 311 | 311 | AM_RANGE(0x1a0000, 0x1a07ff) AM_WRITE(deco16_66_prot_w) AM_BASE(&deco16_prot_ram) /* Protection writes */ |
| 312 | 312 | AM_RANGE(0x1c0000, 0x1c0001) AM_WRITE(buffer_spriteram16_w) |
| 313 | 313 | AM_RANGE(0x1e0000, 0x1e0001) AM_WRITE(buffer_spriteram16_2_w) |
| r4470 | r4471 | |
| 350 | 350 | |
| 351 | 351 | static ADDRESS_MAP_START( sound_readmem_mutantf, ADDRESS_SPACE_PROGRAM, 8 ) |
| 352 | 352 | AM_RANGE(0x000000, 0x00ffff) AM_READ(SMH_ROM) |
| 353 | AM_RANGE(0x100000, 0x100001) AM_READ | |
| 353 | AM_RANGE(0x100000, 0x100001) AM_READ | |
| 354 | 354 | AM_RANGE(0x110000, 0x110001) AM_DEVREAD("ym", ym2151_r) |
| 355 | 355 | AM_RANGE(0x120000, 0x120001) AM_DEVREAD("oki1", okim6295_r) |
| 356 | 356 | AM_RANGE(0x130000, 0x130001) AM_DEVREAD("oki2", okim6295_r) |
| r4470 | r4471 | |
| 360 | 360 | |
| 361 | 361 | static ADDRESS_MAP_START( sound_writemem_mutantf, ADDRESS_SPACE_PROGRAM, 8 ) |
| 362 | 362 | AM_RANGE(0x000000, 0x00ffff) AM_WRITE(SMH_ROM) |
| 363 | AM_RANGE(0x100000, 0x100001) AM_WRITE | |
| 363 | AM_RANGE(0x100000, 0x100001) AM_WRITE | |
| 364 | 364 | AM_RANGE(0x110000, 0x110001) AM_DEVWRITE("ym", ym2151_w) |
| 365 | 365 | AM_RANGE(0x120000, 0x120001) AM_DEVWRITE("oki1", okim6295_w) |
| 366 | 366 | AM_RANGE(0x130000, 0x130001) AM_DEVWRITE("oki2", okim6295_w) |
| r4470 | r4471 | |
|---|---|---|
| 396 | 396 | AM_RANGE(0x02000000, 0x021fffff) AM_READ(SMH_BANK1) // data ROM |
| 397 | 397 | AM_RANGE(0x03000000, 0x030037ff) AM_READ(SMH_RAM) |
| 398 | 398 | AM_RANGE(0x03003fe0, 0x03003fe3) AM_READ(ps4_eeprom_r) |
| 399 | AM_RANGE(0x03003fe4, 0x03003fe7) AM_READ | |
| 399 | AM_RANGE(0x03003fe4, 0x03003fe7) AM_READ | |
| 400 | 400 | // AM_RANGE(0x03003fe8, 0x03003fef) AM_READ(SMH_RAM) // vid regs? |
| 401 | 401 | AM_RANGE(0x03004000, 0x03005fff) AM_READ(SMH_RAM) |
| 402 | 402 | AM_RANGE(0x05000000, 0x05000003) AM_DEVREAD8("ymf", ymf278b_r, 0xffffffff) // read YMF status |
| r4470 | r4471 | |
| 414 | 414 | AM_RANGE(0x00000000, 0x000fffff) AM_WRITE(SMH_ROM) // program ROM (1 meg) |
| 415 | 415 | AM_RANGE(0x03000000, 0x030037ff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram32) AM_SIZE(&spriteram_size) |
| 416 | 416 | AM_RANGE(0x03003fe0, 0x03003fe3) AM_WRITE(ps4_eeprom_w) |
| 417 | // AM_RANGE(0x03003fe4, 0x03003fe7) AM_WRITE | |
| 417 | // AM_RANGE(0x03003fe4, 0x03003fe7) AM_WRITE | |
| 418 | 418 | AM_RANGE(0x03003fe4, 0x03003fef) AM_WRITE(ps4_vidregs_w) AM_BASE(&psikyo4_vidregs) // vid regs? |
| 419 | 419 | AM_RANGE(0x03003ff0, 0x03003ff3) AM_WRITE(ps4_screen1_brt_w) // screen 1 brightness |
| 420 | 420 | AM_RANGE(0x03003ff4, 0x03003ff7) AM_WRITE(ps4_bgpen_1_dword_w) AM_BASE(&bgpen_1) // screen 1 clear colour |
| r4470 | r4471 | |
|---|---|---|
| 41 | 41 | AM_RANGE(0xd900, 0xd900) AM_READ(ra_fake_d800_r) /* protection ??*/ |
| 42 | 42 | AM_RANGE(0xe000, 0xe3ff) AM_READ(SMH_RAM) |
| 43 | 43 | AM_RANGE(0xe400, 0xe47f) AM_READ(SMH_RAM) |
| 44 | AM_RANGE(0xec00, 0xec0f) AM_READ | |
| 44 | AM_RANGE(0xec00, 0xec0f) AM_READ | |
| 45 | 45 | AM_RANGE(0xf000, 0xf0ff) AM_READ(SMH_RAM) |
| 46 | 46 | AM_RANGE(0xf800, 0xf800) AM_READ_PORT("P1") |
| 47 | 47 | AM_RANGE(0xf801, 0xf801) AM_READ_PORT("P2") |
| 48 | 48 | AM_RANGE(0xf804, 0xf804) AM_READ_PORT("DSW1") |
| 49 | 49 | AM_RANGE(0xf802, 0xf802) AM_READ_PORT("SYSTEM") |
| 50 | 50 | AM_RANGE(0xf805, 0xf805) AM_READ_PORT("DSW2") |
| 51 | AM_RANGE(0xd806, 0xd806) AM_READ | |
| 51 | AM_RANGE(0xd806, 0xd806) AM_READ | |
| 52 | 52 | ADDRESS_MAP_END |
| 53 | 53 | |
| 54 | 54 | static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 ) |
| r4470 | r4471 | |
| 59 | 59 | AM_RANGE(0xe000, 0xe3ff) AM_WRITE(SMH_RAM) AM_BASE(&videoram) AM_SIZE(&videoram_size) |
| 60 | 60 | AM_RANGE(0xe400, 0xe47f) AM_WRITE(SMH_RAM) AM_BASE(&colorram) |
| 61 | 61 | AM_RANGE(0xe800, 0xe800) AM_WRITE(soundlatch_w) |
| 62 | AM_RANGE(0xec00, 0xec0f) AM_WRITE | |
| 62 | AM_RANGE(0xec00, 0xec0f) AM_WRITE | |
| 63 | 63 | AM_RANGE(0xf000, 0xf0ff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size) |
| 64 | 64 | AM_RANGE(0xfc00, 0xfc00) AM_WRITE(rollrace_flipx_w) |
| 65 | 65 | AM_RANGE(0xfc01, 0xfc01) AM_WRITE(interrupt_enable_w) |
| 66 | AM_RANGE(0xfc02, 0xfc03) AM_WRITE | |
| 66 | AM_RANGE(0xfc02, 0xfc03) AM_WRITE | |
| 67 | 67 | AM_RANGE(0xfc04, 0xfc05) AM_WRITE(rollrace_charbank_w) |
| 68 | 68 | AM_RANGE(0xfc06, 0xfc06) AM_WRITE(rollrace_spritebank_w) |
| 69 | 69 | AM_RANGE(0xf400, 0xf400) AM_WRITE(rollrace_backgroundcolor_w) |
| r4470 | r4471 | |
|---|---|---|
| 189 | 189 | |
| 190 | 190 | // AM_RANGE(0x140006, 0x140007) AM_READ(random_readers) |
| 191 | 191 | |
| 192 | // AM_RANGE(0x150006, 0x150007) AM_READ | |
| 192 | // AM_RANGE(0x150006, 0x150007) AM_READ | |
| 193 | 193 | |
| 194 | 194 | AM_RANGE(0x16c006, 0x16c007) AM_READ(mirage_input_r) |
| 195 | 195 | |
| r4470 | r4471 | |
| 215 | 215 | AM_RANGE(0x140000, 0x14000f) AM_DEVREADWRITE8("oki2", okim6295_r, okim6295_w, 0x00ff) |
| 216 | 216 | AM_RANGE(0x150000, 0x15000f) AM_DEVREADWRITE8("oki1", okim6295_r, okim6295_w, 0x00ff) |
| 217 | 217 | |
| 218 | AM_RANGE(0x160000, 0x160001) AM_WRITE | |
| 218 | AM_RANGE(0x160000, 0x160001) AM_WRITE | |
| 219 | 219 | |
| 220 | 220 | AM_RANGE(0x168000, 0x16800f) AM_WRITE(SMH_RAM) AM_BASE(&deco16_pf12_control) |
| 221 | 221 | |
| 222 | AM_RANGE(0x16a000, 0x16a001) AM_WRITE | |
| 222 | AM_RANGE(0x16a000, 0x16a001) AM_WRITE | |
| 223 | 223 | |
| 224 | 224 | AM_RANGE(0x16c000, 0x16c001) AM_WRITE(okim1_rombank_w) |
| 225 | 225 | AM_RANGE(0x16c002, 0x16c003) AM_WRITE(okim0_rombank_w) |
| 226 | 226 | AM_RANGE(0x16c004, 0x16c005) AM_WRITE(mirage_mux_w) |
| 227 | 227 | |
| 228 | AM_RANGE(0x16e000, 0x16e001) AM_WRITE | |
| 228 | AM_RANGE(0x16e000, 0x16e001) AM_WRITE | |
| 229 | 229 | |
| 230 | 230 | AM_RANGE(0x170000, 0x173fff) AM_WRITE(SMH_RAM) |
| 231 | 231 | ADDRESS_MAP_END |
| r4470 | r4471 | |
|---|---|---|
| 14 | 14 | #include "sound/2203intf.h" |
| 15 | 15 | #include "sound/vlm5030.h" |
| 16 | 16 | #include "sound/flt_rc.h" |
| 17 | #include "konamipt.h" | |
| 17 | 18 | |
| 18 | 19 | int ddrible_int_enable_0; |
| 19 | 20 | int ddrible_int_enable_1; |
| r4470 | r4471 | |
| 182 | 183 | |
| 183 | 184 | static INPUT_PORTS_START( ddribble ) |
| 184 | 185 | PORT_START("P1") |
| 185 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY | |
| 186 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY | |
| 187 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY | |
| 188 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY | |
| 189 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) | |
| 190 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON3 ) | |
| 191 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 ) | |
| 186 | KONAMI8_B132(1) | |
| 192 | 187 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 193 | 188 | |
| 194 | 189 | PORT_START("P2") |
| 195 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) | |
| 196 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) | |
| 197 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) | |
| 198 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) | |
| 199 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) | |
| 200 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) | |
| 201 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) | |
| 190 | KONAMI8_B132(2) | |
| 202 | 191 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 203 | 192 | |
| 204 | 193 | PORT_START("SYSTEM") |
| 205 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) | |
| 206 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) | |
| 207 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN3 ) | |
| 208 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) | |
| 209 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 ) | |
| 210 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED ) | |
| 211 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) | |
| 212 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) | |
| 194 | KONAMI8_SYSTEM_UNK | |
| 213 | 195 | |
| 214 | 196 | PORT_START("DSW1") |
| 215 | PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW1:1,2,3,4") | |
| 216 | PORT_DIPSETTING( 0x02, DEF_STR( 4C_1C ) ) | |
| 217 | PORT_DIPSETTING( 0x05, DEF_STR( 3C_1C ) ) | |
| 218 | PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) ) | |
| 219 | PORT_DIPSETTING( 0x04, DEF_STR( 3C_2C ) ) | |
| 220 | PORT_DIPSETTING( 0x01, DEF_STR( 4C_3C ) ) | |
| 221 | PORT_DIPSETTING( 0x0f, DEF_STR( 1C_1C ) ) | |
| 222 | PORT_DIPSETTING( 0x00, DEF_STR( 4C_5C ) ) | |
| 223 | PORT_DIPSETTING( 0x03, DEF_STR( 3C_4C ) ) | |
| 224 | PORT_DIPSETTING( 0x07, DEF_STR( 2C_3C ) ) | |
| 225 | PORT_DIPSETTING( 0x0e, DEF_STR( 1C_2C ) ) | |
| 226 | PORT_DIPSETTING( 0x06, DEF_STR( 2C_5C ) ) | |
| 227 | PORT_DIPSETTING( 0x0d, DEF_STR( 1C_3C ) ) | |
| 228 | PORT_DIPSETTING( 0x0c, DEF_STR( 1C_4C ) ) | |
| 229 | PORT_DIPSETTING( 0x0b, DEF_STR( 1C_5C ) ) | |
| 230 | PORT_DIPSETTING( 0x0a, DEF_STR( 1C_6C ) ) | |
| 231 | PORT_DIPSETTING( 0x09, DEF_STR( 1C_7C ) ) | |
| 232 | PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW1:5,6,7,8") | |
| 233 | PORT_DIPSETTING( 0x20, DEF_STR( 4C_1C ) ) | |
| 234 | PORT_DIPSETTING( 0x50, DEF_STR( 3C_1C ) ) | |
| 235 | PORT_DIPSETTING( 0x80, DEF_STR( 2C_1C ) ) | |
| 236 | PORT_DIPSETTING( 0x40, DEF_STR( 3C_2C ) ) | |
| 237 | PORT_DIPSETTING( 0x10, DEF_STR( 4C_3C ) ) | |
| 238 | PORT_DIPSETTING( 0xf0, DEF_STR( 1C_1C ) ) | |
| 239 | PORT_DIPSETTING( 0x00, DEF_STR( 4C_5C ) ) | |
| 240 | PORT_DIPSETTING( 0x30, DEF_STR( 3C_4C ) ) | |
| 241 | PORT_DIPSETTING( 0x70, DEF_STR( 2C_3C ) ) | |
| 242 | PORT_DIPSETTING( 0xe0, DEF_STR( 1C_2C ) ) | |
| 243 | PORT_DIPSETTING( 0x60, DEF_STR( 2C_5C ) ) | |
| 244 | PORT_DIPSETTING( 0xd0, DEF_STR( 1C_3C ) ) | |
| 245 | PORT_DIPSETTING( 0xc0, DEF_STR( 1C_4C ) ) | |
| 246 | PORT_DIPSETTING( 0xb0, DEF_STR( 1C_5C ) ) | |
| 247 | PORT_DIPSETTING( 0xa0, DEF_STR( 1C_6C ) ) | |
| 248 | PORT_DIPSETTING( 0x90, DEF_STR( 1C_7C ) ) | |
| 197 | KONAMI_COINAGE_ALT_LOC(SW1) | |
| 249 | 198 | |
| 250 | 199 | PORT_START("DSW2") |
| 251 | 200 | PORT_DIPUNKNOWN_DIPLOC( 0x01, 0x00, "SW2:1" ) /* Manual says it's Unused */ |
| r4470 | r4471 | |
| 418 | 367 | ROM_END |
| 419 | 368 | |
| 420 | 369 | |
| 421 | ||
| 422 | 370 | GAME( 1986, ddribble, 0, ddribble, ddribble, 0, ROT0, "Konami", "Double Dribble", 0) |
| r4470 | r4471 | |
|---|---|---|
| 166 | 166 | AM_RANGE(0xd800, 0xdfff) AM_READ(SMH_RAM) //shared with sound cpu |
| 167 | 167 | AM_RANGE(0xe000, 0xe007) AM_READ(popper_input_ports_r) |
| 168 | 168 | AM_RANGE(0xe400, 0xe400) AM_READ(popper_soundcpu_nmi_r) |
| 169 | AM_RANGE(0xf800, 0xf800) AM_READ(SMH_NOP) //?? read once at startup | |
| 170 | AM_RANGE(0xfc00, 0xfc00) AM_READ(SMH_NOP) //?? possibly watchdog | |
| 171 | AM_RANGE(0xffff, 0xffff) AM_READ(SMH_NOP) | |
| 169 | AM_RANGE(0xf800, 0xf800) AM_READNOP //?? read once at startup | |
| 170 | AM_RANGE(0xfc00, 0xfc00) AM_READNOP //?? possibly watchdog | |
| 171 | AM_RANGE(0xffff, 0xffff) AM_READNOP | |
| 172 | 172 | ADDRESS_MAP_END |
| 173 | 173 | |
| 174 | 174 | static ADDRESS_MAP_START( popper_writemem, ADDRESS_SPACE_PROGRAM, 8 ) |
| r4470 | r4471 | |
| 186 | 186 | AM_RANGE(0xe001, 0xe001) AM_WRITE(popper_flipscreen_w) |
| 187 | 187 | AM_RANGE(0xe002, 0xe002) AM_WRITE(popper_e002_w) //?? seems to be graphic related |
| 188 | 188 | AM_RANGE(0xe003, 0xe003) AM_WRITE(popper_gfx_bank_w) |
| 189 | AM_RANGE(0xe004, 0xe007) AM_WRITE | |
| 189 | AM_RANGE(0xe004, 0xe007) AM_WRITE | |
| 190 | 190 | ADDRESS_MAP_END |
| 191 | 191 | |
| 192 | 192 | static ADDRESS_MAP_START( popper_sound_readmem, ADDRESS_SPACE_PROGRAM, 8 ) |
| 193 | 193 | AM_RANGE(0x0000, 0x0fff) AM_READ(SMH_ROM) |
| 194 | AM_RANGE(0x8002, 0x8002) AM_READ(SMH_NOP) //?? all read once at startup and the | |
| 195 | AM_RANGE(0x8003, 0x8003) AM_READ(SMH_NOP) //?? result ignored, looks like part | |
| 196 | AM_RANGE(0xa002, 0xa002) AM_READ(SMH_NOP) //?? of AY8910 initialisation | |
| 194 | AM_RANGE(0x8002, 0x8002) AM_READNOP //?? all read once at startup and the | |
| 195 | AM_RANGE(0x8003, 0x8003) AM_READNOP //?? result ignored, looks like part | |
| 196 | AM_RANGE(0xa002, 0xa002) AM_READNOP //?? of AY8910 initialisation | |
| 197 | 197 | AM_RANGE(0xd800, 0xdfff) AM_READ(popper_sharedram_r) |
| 198 | 198 | ADDRESS_MAP_END |
| 199 | 199 | |
| 200 | 200 | static ADDRESS_MAP_START( popper_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 ) |
| 201 | 201 | AM_RANGE(0x0000, 0x0fff) AM_WRITE(SMH_ROM) |
| 202 | 202 | AM_RANGE(0x8000, 0x8001) AM_DEVWRITE("ay1", ay8910_address_data_w) |
| 203 | AM_RANGE(0x8002, 0x8002) AM_WRITE | |
| 203 | AM_RANGE(0x8002, 0x8002) AM_WRITE | |
| 204 | 204 | AM_RANGE(0xa000, 0xa001) AM_DEVWRITE("ay2", ay8910_address_data_w) |
| 205 | AM_RANGE(0xa002, 0xa002) AM_WRITE | |
| 205 | AM_RANGE(0xa002, 0xa002) AM_WRITE | |
| 206 | 206 | AM_RANGE(0xd800, 0xdfff) AM_WRITE(popper_sharedram_w) |
| 207 | 207 | ADDRESS_MAP_END |
| 208 | 208 |
| r4470 | r4471 | |
|---|---|---|
| 156 | 156 | AM_RANGE(0xdca0, 0xdcbf) AM_READ(ladyfrog_scrlram_r) |
| 157 | 157 | AM_RANGE(0xdcc0, 0xdcff) AM_READ(SMH_RAM) |
| 158 | 158 | AM_RANGE(0xdd00, 0xdeff) AM_READ(ladyfrog_palette_r) |
| 159 | AM_RANGE(0xd0d0, 0xd0d0) AM_READ | |
| 159 | AM_RANGE(0xd0d0, 0xd0d0) AM_READ | |
| 160 | 160 | AM_RANGE(0xe000, 0xffff) AM_READ(SMH_RAM) |
| 161 | 161 | ADDRESS_MAP_END |
| 162 | 162 | |
| r4470 | r4471 | |
| 181 | 181 | AM_RANGE(0x0000, 0xbfff) AM_READ(SMH_ROM) |
| 182 | 182 | AM_RANGE(0xc000, 0xc7ff) AM_READ(SMH_RAM) |
| 183 | 183 | AM_RANGE(0xd000, 0xd000) AM_READ(soundlatch_r) |
| 184 | AM_RANGE(0xd200, 0xd200) AM_READ(SMH_NOP) | |
| 185 | AM_RANGE(0xe000, 0xefff) AM_READ(SMH_NOP) | |
| 184 | AM_RANGE(0xd200, 0xd200) AM_READNOP | |
| 185 | AM_RANGE(0xe000, 0xefff) AM_READNOP | |
| 186 | 186 | ADDRESS_MAP_END |
| 187 | 187 | |
| 188 | 188 | static ADDRESS_MAP_START( sound_writemem, ADDRESS_SPACE_PROGRAM, 8 ) |
| 189 | 189 | AM_RANGE(0x0000, 0xbfff) AM_WRITE(SMH_ROM) |
| 190 | 190 | AM_RANGE(0xc000, 0xc7ff) AM_WRITE(SMH_RAM) |
| 191 | AM_RANGE(0xc800, 0xc801) AM_WRITE | |
| 191 | AM_RANGE(0xc800, 0xc801) AM_WRITE | |
| 192 | 192 | AM_RANGE(0xc802, 0xc803) AM_DEVWRITE("ay", ay8910_address_data_w) |
| 193 | 193 | AM_RANGE(0xc900, 0xc90d) AM_DEVWRITE("msm", msm5232_w) |
| 194 | AM_RANGE(0xca00, 0xca00) AM_WRITE(SMH_NOP) | |
| 195 | AM_RANGE(0xcb00, 0xcb00) AM_WRITE(SMH_NOP) | |
| 196 | AM_RANGE(0xcc00, 0xcc00) AM_WRITE(SMH_NOP) | |
| 194 | AM_RANGE(0xca00, 0xca00) AM_WRITENOP | |
| 195 | AM_RANGE(0xcb00, 0xcb00) AM_WRITENOP | |
| 196 | AM_RANGE(0xcc00, 0xcc00) AM_WRITENOP | |
| 197 | 197 | AM_RANGE(0xd000, 0xd000) AM_WRITE(to_main_w) |
| 198 | 198 | AM_RANGE(0xd200, 0xd200) AM_WRITE(nmi_enable_w) |
| 199 | 199 | AM_RANGE(0xd400, 0xd400) AM_WRITE(nmi_disable_w) |
| 200 | AM_RANGE(0xd600, 0xd600) AM_WRITE(SMH_NOP) | |
| 201 | AM_RANGE(0xe000, 0xefff) AM_WRITE(SMH_NOP) | |
| 200 | AM_RANGE(0xd600, 0xd600) AM_WRITENOP | |
| 201 | AM_RANGE(0xe000, 0xefff) AM_WRITENOP | |
| 202 | 202 | ADDRESS_MAP_END |
| 203 | 203 | |
| 204 | 204 |
| r4470 | r4471 | |
|---|---|---|
| 201 | 201 | AM_RANGE(0xc800, 0xc800) AM_WRITE(soundlatch_w) |
| 202 | 202 | AM_RANGE(0xc801, 0xc801) AM_WRITE(whizz_bankswitch_w) |
| 203 | 203 | AM_RANGE(0xc802, 0xc802) AM_WRITE(watchdog_reset_w) |
| 204 | AM_RANGE(0xc803, 0xc803) AM_WRITE | |
| 204 | AM_RANGE(0xc803, 0xc803) AM_WRITE | |
| 205 | 205 | AM_RANGE(0xc804, 0xc804) AM_WRITE(sidearms_c804_w) |
| 206 | AM_RANGE(0xc805, 0xc805) AM_WRITE | |
| 206 | AM_RANGE(0xc805, 0xc805) AM_WRITE | |
| 207 | 207 | AM_RANGE(0xe805, 0xe805) AM_WRITE(sidearms_star_scrollx_w) |
| 208 | 208 | AM_RANGE(0xe806, 0xe806) AM_WRITE(sidearms_star_scrolly_w) |
| 209 | 209 | AM_RANGE(0xc808, 0xc809) AM_WRITE(SMH_RAM) AM_BASE(&sidearms_bg_scrollx) |
| r4470 | r4471 | |
| 228 | 228 | static ADDRESS_MAP_START( whizz_io_map, ADDRESS_SPACE_IO, 8 ) |
| 229 | 229 | ADDRESS_MAP_GLOBAL_MASK(0xff) |
| 230 | 230 | AM_RANGE(0x00, 0x01) AM_DEVREADWRITE("ym", ym2151_r, ym2151_w) |
| 231 | AM_RANGE(0x40, 0x40) AM_WRITE | |
| 231 | AM_RANGE(0x40, 0x40) AM_WRITE | |
| 232 | 232 | AM_RANGE(0xc0, 0xc0) AM_READ(soundlatch_r) |
| 233 | 233 | ADDRESS_MAP_END |
| 234 | 234 |
| r4470 | r4471 | |
|---|---|---|
| 414 | 414 | static ADDRESS_MAP_START( superman_readmem, ADDRESS_SPACE_PROGRAM, 16 ) |
| 415 | 415 | AM_RANGE(0x000000, 0x07ffff) AM_READ(SMH_ROM) |
| 416 | 416 | AM_RANGE(0x500000, 0x500007) AM_READ(superman_dsw_input_r) |
| 417 | AM_RANGE(0x800000, 0x800001) AM_READ(SMH_NOP) | |
| 418 | AM_RANGE(0x800002, 0x800003) AM_READ(taitosound_comm16_lsb_r) | |
| 417 | AM_RANGE(0x800000, 0x800001) AM_READNOP | |
| 418 | AM_RANGE(0x800002, 0x800003) AM_READ8(taitosound_comm_r, 0x00ff) | |
| 419 | 419 | AM_RANGE(0x900000, 0x9007ff) AM_READ(cchip1_ram_r) |
| 420 | 420 | AM_RANGE(0x900802, 0x900803) AM_READ(cchip1_ctrl_r) |
| 421 | 421 | AM_RANGE(0xb00000, 0xb00fff) AM_READ(SMH_RAM) |
| r4470 | r4471 | |
| 426 | 426 | |
| 427 | 427 | static ADDRESS_MAP_START( superman_writemem, ADDRESS_SPACE_PROGRAM, 16 ) |
| 428 | 428 | AM_RANGE(0x000000, 0x07ffff) AM_WRITE(SMH_ROM) |
| 429 | AM_RANGE(0x300000, 0x300001) AM_WRITE(SMH_NOP) /* written each frame at $3a9c, mostly 0x10 */ | |
| 430 | AM_RANGE(0x400000, 0x400001) AM_WRITE(SMH_NOP) /* written each frame at $3aa2, mostly 0x10 */ | |
| 431 | AM_RANGE(0x600000, 0x600001) AM_WRITE(SMH_NOP) /* written each frame at $3ab0, mostly 0x10 */ | |
| 432 | AM_RANGE(0x800000, 0x800001) AM_WRITE(taitosound_port16_lsb_w) | |
| 433 | AM_RANGE(0x800002, 0x800003) AM_WRITE(taitosound_comm16_lsb_w) | |
| 429 | AM_RANGE(0x300000, 0x300001) AM_WRITENOP /* written each frame at $3a9c, mostly 0x10 */ | |
| 430 | AM_RANGE(0x400000, 0x400001) AM_WRITENOP /* written each frame at $3aa2, mostly 0x10 */ | |
| 431 | AM_RANGE(0x600000, 0x600001) AM_WRITENOP /* written each frame at $3ab0, mostly 0x10 */ | |
| 432 | AM_RANGE(0x800000, 0x800001) AM_WRITE8(taitosound_port_w, 0x00ff) | |
| 433 | AM_RANGE(0x800002, 0x800003) AM_WRITE8(taitosound_comm_w, 0x00ff) | |
| 434 | 434 | AM_RANGE(0x900000, 0x9007ff) AM_WRITE(cchip1_ram_w) |
| 435 | 435 | AM_RANGE(0x900802, 0x900803) AM_WRITE(cchip1_ctrl_w) |
| 436 | 436 | AM_RANGE(0x900c00, 0x900c01) AM_WRITE(cchip1_bank_w) |
| r4470 | r4471 | |
| 443 | 443 | static ADDRESS_MAP_START( daisenpu_readmem, ADDRESS_SPACE_PROGRAM, 16 ) |
| 444 | 444 | AM_RANGE(0x000000, 0x03ffff) AM_READ(SMH_ROM) |
| 445 | 445 | AM_RANGE(0x500000, 0x50000f) AM_READ(superman_dsw_input_r) |
| 446 | AM_RANGE(0x800000, 0x800001) AM_READ(SMH_NOP) | |
| 447 | AM_RANGE(0x800002, 0x800003) AM_READ(taitosound_comm16_lsb_r) | |
| 446 | AM_RANGE(0x800000, 0x800001) AM_READNOP | |
| 447 | AM_RANGE(0x800002, 0x800003) AM_READ8(taitosound_comm_r, 0x00ff) | |
| 448 | 448 | AM_RANGE(0x900000, 0x90000f) AM_READ(daisenpu_input_r) |
| 449 | 449 | AM_RANGE(0xb00000, 0xb00fff) AM_READ(SMH_RAM) |
| 450 | 450 | AM_RANGE(0xd00000, 0xd00fff) AM_READ(SMH_RAM) /* video attribute ram */ |
| r4470 | r4471 | |
| 454 | 454 | |
| 455 | 455 | static ADDRESS_MAP_START( daisenpu_writemem, ADDRESS_SPACE_PROGRAM, 16 ) |
| 456 | 456 | AM_RANGE(0x000000, 0x03ffff) AM_WRITE(SMH_ROM) |
| 457 | // AM_RANGE(0x400000, 0x400001) AM_WRITE(SMH_NOP) /* written each frame at $2ac, values change */ | |
| 458 | // AM_RANGE(0x600000, 0x600001) AM_WRITE(SMH_NOP) /* written each frame at $2a2, values change */ | |
| 459 | AM_RANGE(0x800000, 0x800001) AM_WRITE(taitosound_port16_lsb_w) | |
| 460 | AM_RANGE(0x800002, 0x800003) AM_WRITE(taitosound_comm16_lsb_w) | |
| 457 | // AM_RANGE(0x400000, 0x400001) AM_WRITENOP /* written each frame at $2ac, values change */ | |
| 458 | // AM_RANGE(0x600000, 0x600001) AM_WRITENOP /* written each frame at $2a2, values change */ | |
| 459 | AM_RANGE(0x800000, 0x800001) AM_WRITE8(taitosound_port_w, 0x00ff) | |
| 460 | AM_RANGE(0x800002, 0x800003) AM_WRITE8(taitosound_comm_w, 0x00ff) | |
| 461 | 461 | AM_RANGE(0x900000, 0x90000f) AM_WRITE(daisenpu_input_w) |
| 462 | 462 | AM_RANGE(0xb00000, 0xb00fff) AM_WRITE(paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE(&paletteram16) |
| 463 | 463 | AM_RANGE(0xd00000, 0xd007ff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16 ) // Sprites Y |
| r4470 | r4471 | |
| 468 | 468 | static ADDRESS_MAP_START( gigandes_readmem, ADDRESS_SPACE_PROGRAM, 16 ) |
| 469 | 469 | AM_RANGE(0x000000, 0x07ffff) AM_READ(SMH_ROM) |
| 470 | 470 | AM_RANGE(0x500000, 0x500007) AM_READ(superman_dsw_input_r) |
| 471 | AM_RANGE(0x800000, 0x800001) AM_READ(SMH_NOP) | |
| 472 | AM_RANGE(0x800002, 0x800003) AM_READ(taitosound_comm16_lsb_r) | |
| 471 | AM_RANGE(0x800000, 0x800001) AM_READNOP | |
| 472 | AM_RANGE(0x800002, 0x800003) AM_READ8(taitosound_comm_r, 0x00ff) | |
| 473 | 473 | AM_RANGE(0x900000, 0x90000f) AM_READ(daisenpu_input_r) |
| 474 | 474 | AM_RANGE(0xb00000, 0xb00fff) AM_READ(SMH_RAM) |
| 475 | 475 | AM_RANGE(0xd00000, 0xd007ff) AM_READ(SMH_RAM) /* video attribute ram */ |
| r4470 | r4471 | |
| 479 | 479 | |
| 480 | 480 | static ADDRESS_MAP_START( gigandes_writemem, ADDRESS_SPACE_PROGRAM, 16 ) |
| 481 | 481 | AM_RANGE(0x000000, 0x07ffff) AM_WRITE(SMH_ROM) |
| 482 | AM_RANGE(0x400000, 0x400001) AM_WRITE(SMH_NOP) /* 0x1 written each frame at $d42, watchdog? */ | |
| 483 | AM_RANGE(0x600000, 0x600001) AM_WRITE(SMH_NOP) /* 0x1 written each frame at $d3c, watchdog? */ | |
| 484 | AM_RANGE(0x800000, 0x800001) AM_WRITE(taitosound_port16_lsb_w) | |
| 485 | AM_RANGE(0x800002, 0x800003) AM_WRITE(taitosound_comm16_lsb_w) | |
| 482 | AM_RANGE(0x400000, 0x400001) AM_WRITENOP /* 0x1 written each frame at $d42, watchdog? */ | |
| 483 | AM_RANGE(0x600000, 0x600001) AM_WRITENOP /* 0x1 written each frame at $d3c, watchdog? */ | |
| 484 | AM_RANGE(0x800000, 0x800001) AM_WRITE8(taitosound_port_w, 0x00ff) | |
| 485 | AM_RANGE(0x800002, 0x800003) AM_WRITE8(taitosound_comm_w, 0x00ff) | |
| 486 | 486 | AM_RANGE(0x900000, 0x90000f) AM_WRITE(daisenpu_input_w) |
| 487 | 487 | AM_RANGE(0xb00000, 0xb00fff) AM_WRITE(paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE(&paletteram16) |
| 488 | 488 | AM_RANGE(0xd00000, 0xd007ff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16 ) // Sprites Y |
| r4470 | r4471 | |
| 493 | 493 | static ADDRESS_MAP_START( ballbros_readmem, ADDRESS_SPACE_PROGRAM, 16 ) |
| 494 | 494 | AM_RANGE(0x000000, 0x03ffff) AM_READ(SMH_ROM) |
| 495 | 495 | AM_RANGE(0x500000, 0x50000f) AM_READ(superman_dsw_input_r) |
| 496 | AM_RANGE(0x800000, 0x800001) AM_READ(SMH_NOP) | |
| 497 | AM_RANGE(0x800002, 0x800003) AM_READ(taitosound_comm16_lsb_r) | |
| 496 | AM_RANGE(0x800000, 0x800001) AM_READNOP | |
| 497 | AM_RANGE(0x800002, 0x800003) AM_READ8(taitosound_comm_r, 0x00ff) | |
| 498 | 498 | AM_RANGE(0x900000, 0x90000f) AM_READ(daisenpu_input_r) |
| 499 | 499 | AM_RANGE(0xb00000, 0xb00fff) AM_READ(SMH_RAM) |
| 500 | 500 | AM_RANGE(0xd00000, 0xd007ff) AM_READ(SMH_RAM) /* video attribute ram */ |
| r4470 | r4471 | |
| 504 | 504 | |
| 505 | 505 | static ADDRESS_MAP_START( ballbros_writemem, ADDRESS_SPACE_PROGRAM, 16 ) |
| 506 | 506 | AM_RANGE(0x000000, 0x03ffff) AM_WRITE(SMH_ROM) |
| 507 | AM_RANGE(0x400000, 0x400001) AM_WRITE(SMH_NOP) /* 0x1 written each frame at $c56, watchdog? */ | |
| 508 | AM_RANGE(0x600000, 0x600001) AM_WRITE(SMH_NOP) /* 0x1 written each frame at $c4e, watchdog? */ | |
| 509 | AM_RANGE(0x800000, 0x800001) AM_WRITE(taitosound_port16_lsb_w) | |
| 510 | AM_RANGE(0x800002, 0x800003) AM_WRITE(taitosound_comm16_lsb_w) | |
| 507 | AM_RANGE(0x400000, 0x400001) AM_WRITENOP /* 0x1 written each frame at $c56, watchdog? */ | |
| 508 | AM_RANGE(0x600000, 0x600001) AM_WRITENOP /* 0x1 written each frame at $c4e, watchdog? */ | |
| 509 | AM_RANGE(0x800000, 0x800001) AM_WRITE8(taitosound_port_w, 0x00ff) | |
| 510 | AM_RANGE(0x800002, 0x800003) AM_WRITE8(taitosound_comm_w, 0x00ff) | |
| 511 | 511 | AM_RANGE(0x900000, 0x90000f) AM_WRITE(daisenpu_input_w) |
| 512 | 512 | AM_RANGE(0xb00000, 0xb00fff) AM_WRITE(paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE(&paletteram16) |
| 513 | 513 | AM_RANGE(0xd00000, 0xd007ff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16 ) // Sprites Y |
| r4470 | r4471 | |
| 523 | 523 | AM_RANGE(0x4000, 0x7fff) AM_READ(SMH_BANK2) |
| 524 | 524 | AM_RANGE(0xc000, 0xdfff) AM_READ(SMH_RAM) |
| 525 | 525 | AM_RANGE(0xe000, 0xe003) AM_DEVREAD("ym", ym2610_r) |
| 526 | AM_RANGE(0xe200, 0xe200) AM_READ | |
| 526 | AM_RANGE(0xe200, 0xe200) AM_READ | |
| 527 | 527 | AM_RANGE(0xe201, 0xe201) AM_READ(taitosound_slave_comm_r) |
| 528 | AM_RANGE(0xea00, 0xea00) AM_READ | |
| 528 | AM_RANGE(0xea00, 0xea00) AM_READ | |
| 529 | 529 | ADDRESS_MAP_END |
| 530 | 530 | |
| 531 | 531 | static ADDRESS_MAP_START( sound_writemem, ADDRESS_SPACE_PROGRAM, 8 ) |
| r4470 | r4471 | |
| 534 | 534 | AM_RANGE(0xe000, 0xe003) AM_DEVWRITE("ym", ym2610_w) |
| 535 | 535 | AM_RANGE(0xe200, 0xe200) AM_WRITE(taitosound_slave_port_w) |
| 536 | 536 | AM_RANGE(0xe201, 0xe201) AM_WRITE(taitosound_slave_comm_w) |
| 537 | AM_RANGE(0xe400, 0xe403) AM_WRITE(SMH_NOP) /* pan */ | |
| 538 | AM_RANGE(0xee00, 0xee00) AM_WRITE(SMH_NOP) /* ? */ | |
| 539 | AM_RANGE(0xf000, 0xf000) AM_WRITE(SMH_NOP) /* ? */ | |
| 537 | AM_RANGE(0xe400, 0xe403) AM_WRITENOP /* pan */ | |
| 538 | AM_RANGE(0xee00, 0xee00) AM_WRITENOP /* ? */ | |
| 539 | AM_RANGE(0xf000, 0xf000) AM_WRITENOP /* ? */ | |
| 540 | 540 | AM_RANGE(0xf200, 0xf200) AM_WRITE(sound_bankswitch_w) /* bankswitch ? */ |
| 541 | 541 | ADDRESS_MAP_END |
| 542 | 542 | |
| r4470 | r4471 | |
| 545 | 545 | AM_RANGE(0x4000, 0x7fff) AM_READ(SMH_BANK2) |
| 546 | 546 | AM_RANGE(0xc000, 0xdfff) AM_READ(SMH_RAM) |
| 547 | 547 | AM_RANGE(0xe000, 0xe001) AM_DEVREAD("ym", ym2151_r) |
| 548 | AM_RANGE(0xe200, 0xe200) AM_READ | |
| 548 | AM_RANGE(0xe200, 0xe200) AM_READ | |
| 549 | 549 | AM_RANGE(0xe201, 0xe201) AM_READ(taitosound_slave_comm_r) |
| 550 | AM_RANGE(0xea00, 0xea00) AM_READ | |
| 550 | AM_RANGE(0xea00, 0xea00) AM_READ | |
| 551 | 551 | ADDRESS_MAP_END |
| 552 | 552 | |
| 553 | 553 | static ADDRESS_MAP_START( daisenpu_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 ) |
| r4470 | r4471 | |
| 556 | 556 | AM_RANGE(0xe000, 0xe001) AM_DEVWRITE("ym", ym2151_w) |
| 557 | 557 | AM_RANGE(0xe200, 0xe200) AM_WRITE(taitosound_slave_port_w) |
| 558 | 558 | AM_RANGE(0xe201, 0xe201) AM_WRITE(taitosound_slave_comm_w) |
| 559 | AM_RANGE(0xe400, 0xe403) AM_WRITE(SMH_NOP) /* pan */ | |
| 560 | AM_RANGE(0xee00, 0xee00) AM_WRITE(SMH_NOP) /* ? */ | |
| 561 | AM_RANGE(0xf000, 0xf000) AM_WRITE(SMH_NOP) | |
| 559 | AM_RANGE(0xe400, 0xe403) AM_WRITENOP /* pan */ | |
| 560 | AM_RANGE(0xee00, 0xee00) AM_WRITENOP /* ? */ | |
| 561 | AM_RANGE(0xf000, 0xf000) AM_WRITENOP | |
| 562 | 562 | AM_RANGE(0xf200, 0xf200) AM_WRITE(sound_bankswitch_w) |
| 563 | 563 | ADDRESS_MAP_END |
| 564 | 564 | |
| r4470 | r4471 | |
| 567 | 567 | AM_RANGE(0x4000, 0x7fff) AM_READ(SMH_BANK2) |
| 568 | 568 | AM_RANGE(0xc000, 0xdfff) AM_READ(SMH_RAM) |
| 569 | 569 | AM_RANGE(0xe000, 0xe003) AM_DEVREAD("ym", ym2610_r) |
| 570 | AM_RANGE(0xe200, 0xe200) AM_READ(SMH_NOP) | |
| 571 | AM_RANGE(0xe200, 0xe200) AM_READ(SMH_NOP) | |
| 570 | AM_RANGE(0xe200, 0xe200) AM_READNOP | |
| 571 | AM_RANGE(0xe200, 0xe200) AM_READNOP | |
| 572 | 572 | AM_RANGE(0xe201, 0xe201) AM_READ(taitosound_slave_comm_r) |
| 573 | AM_RANGE(0xea00, 0xea00) AM_READ | |
| 573 | AM_RANGE(0xea00, 0xea00) AM_READ | |
| 574 | 574 | ADDRESS_MAP_END |
| 575 | 575 | |
| 576 | 576 | static ADDRESS_MAP_START( ballbros_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 ) |
| r4470 | r4471 | |
| 579 | 579 | AM_RANGE(0xe000, 0xe003) AM_DEVWRITE("ym", ym2610_w) |
| 580 | 580 | AM_RANGE(0xe200, 0xe200) AM_WRITE(taitosound_slave_port_w) |
| 581 | 581 | AM_RANGE(0xe201, 0xe201) AM_WRITE(taitosound_slave_comm_w) |
| 582 | AM_RANGE(0xe400, 0xe403) AM_WRITE(SMH_NOP) /* pan */ | |
| 583 | AM_RANGE(0xee00, 0xee00) AM_WRITE(SMH_NOP) /* ? */ | |
| 584 | AM_RANGE(0xf000, 0xf000) AM_WRITE(SMH_NOP) /* ? */ | |
| 582 | AM_RANGE(0xe400, 0xe403) AM_WRITENOP /* pan */ | |
| 583 | AM_RANGE(0xee00, 0xee00) AM_WRITENOP /* ? */ | |
| 584 | AM_RANGE(0xf000, 0xf000) AM_WRITENOP /* ? */ | |
| 585 | 585 | AM_RANGE(0xf200, 0xf200) AM_WRITE(sound_bankswitch_w) /* bankswitch ? */ |
| 586 | 586 | ADDRESS_MAP_END |
| 587 | 587 |
| r4470 | r4471 | |
|---|---|---|
| 190 | 190 | static ADDRESS_MAP_START( sound_writemem, ADDRESS_SPACE_PROGRAM, 8 ) |
| 191 | 191 | AM_RANGE(0x0000, 0x1fff) AM_WRITE(SMH_ROM) |
| 192 | 192 | AM_RANGE(0x4000, 0x43ff) AM_WRITE(SMH_RAM) |
| 193 | AM_RANGE(0x6000, 0x6fff) AM_WRITE | |
| 193 | AM_RANGE(0x6000, 0x6fff) AM_WRITE | |
| 194 | 194 | ADDRESS_MAP_END |
| 195 | 195 | |
| 196 | 196 | static ADDRESS_MAP_START( sound_io_map, ADDRESS_SPACE_IO, 8 ) |
| r4470 | r4471 | |
|---|---|---|
| 117 | 117 | AM_RANGE(0x120000, 0x123fff) AM_RAM |
| 118 | 118 | AM_RANGE(0x140000, 0x1407ff) AM_RAM_WRITE(paletteram16_xxxxBBBBGGGGRRRR_word_w) AM_BASE(&paletteram16) |
| 119 | 119 | AM_RANGE(0x180000, 0x18000f) AM_READ(tumblepop_controls_r) |
| 120 | AM_RANGE(0x18000c, 0x18000d) AM_WRITE | |
| 120 | AM_RANGE(0x18000c, 0x18000d) AM_WRITE | |
| 121 | 121 | AM_RANGE(0x1a0000, 0x1a07ff) AM_RAM AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) |
| 122 | 122 | AM_RANGE(0x300000, 0x30000f) AM_WRITE(SMH_RAM) AM_BASE(&deco16_pf12_control) |
| 123 | 123 | AM_RANGE(0x320000, 0x320fff) AM_RAM_WRITE(deco16_pf1_data_w) AM_BASE(&deco16_pf1_data) |
| r4470 | r4471 | |
|---|---|---|
| 337 | 337 | |
| 338 | 338 | |
| 339 | 339 | |
| 340 | GAME( 1984, dogfgt, 0, dogfgt, dogfgt, 0, ROT0, "Technos", "Acrobatic Dog-Fight", 0 ) | |
| 341 | GAME( 1984, dogfgtj, dogfgt, dogfgt, dogfgt, 0, ROT0, "Technos", "Dog-Fight (Japan)", 0 ) | |
| 340 | GAME( 1984, dogfgt, 0, dogfgt, dogfgt, 0, ROT0, "Technos Japan", "Acrobatic Dog-Fight", 0 ) | |
| 341 | GAME( 1984, dogfgtj, dogfgt, dogfgt, dogfgt, 0, ROT0, "Technos Japan", "Dog-Fight (Japan)", 0 ) |
| r4470 | r4471 | |
|---|---|---|
| 34 | 34 | /* Physical memory map (21 bits) */ |
| 35 | 35 | static ADDRESS_MAP_START( sound_readmem, ADDRESS_SPACE_PROGRAM, 8 ) |
| 36 | 36 | AM_RANGE(0x000000, 0x00ffff) AM_READ(SMH_ROM) |
| 37 | AM_RANGE(0x100000, 0x100001) AM_READ | |
| 37 | AM_RANGE(0x100000, 0x100001) AM_READ | |
| 38 | 38 | AM_RANGE(0x110000, 0x110001) AM_DEVREAD("ym", ym2151_r) |
| 39 | 39 | AM_RANGE(0x120000, 0x120001) AM_DEVREAD("oki", okim6295_r) |
| 40 | AM_RANGE(0x130000, 0x130001) AM_READ | |
| 40 | AM_RANGE(0x130000, 0x130001) AM_READ | |
| 41 | 41 | AM_RANGE(0x140000, 0x140001) AM_READ(soundlatch_r) |
| 42 | 42 | AM_RANGE(0x1f0000, 0x1f1fff) AM_READ(SMH_BANK8) |
| 43 | 43 | ADDRESS_MAP_END |
| 44 | 44 | |
| 45 | 45 | static ADDRESS_MAP_START( sound_writemem, ADDRESS_SPACE_PROGRAM, 8 ) |
| 46 | 46 | AM_RANGE(0x000000, 0x00ffff) AM_WRITE(SMH_ROM) |
| 47 | AM_RANGE(0x100000, 0x100001) AM_WRITE | |
| 47 | AM_RANGE(0x100000, 0x100001) AM_WRITE | |
| 48 | 48 | AM_RANGE(0x110000, 0x110001) AM_DEVWRITE("ym", ym2151_w) |
| 49 | 49 | AM_RANGE(0x120000, 0x120001) AM_DEVWRITE("oki", okim6295_w) |
| 50 | AM_RANGE(0x130000, 0x130001) AM_WRITE | |
| 50 | AM_RANGE(0x130000, 0x130001) AM_WRITE | |
| 51 | 51 | AM_RANGE(0x1f0000, 0x1f1fff) AM_WRITE(SMH_BANK8) |
| 52 | 52 | AM_RANGE(0x1fec00, 0x1fec01) AM_WRITE(h6280_timer_w) |
| 53 | 53 | AM_RANGE(0x1ff400, 0x1ff403) AM_WRITE(h6280_irq_status_w) |
| r4470 | r4471 | |
|---|---|---|
| 229 | 229 | AM_RANGE(0xd50b, 0xd50b) AM_MIRROR(0x00f0) AM_WRITE(taitosj_soundcommand_w) |
| 230 | 230 | AM_RANGE(0xd50d, 0xd50d) AM_MIRROR(0x00f0) AM_WRITE(SMH_RAM) /*watchdog_reset_w*/ /* Bio Attack sometimes resets after you die */ |
| 231 | 231 | AM_RANGE(0xd50e, 0xd50e) AM_MIRROR(0x00f0) AM_WRITE(taitosj_bankswitch_w) |
| 232 | AM_RANGE(0xd50f, 0xd50f) AM_MIRROR(0x00f0) AM_WRITE | |
| 232 | AM_RANGE(0xd50f, 0xd50f) AM_MIRROR(0x00f0) AM_WRITE | |
| 233 | 233 | AM_RANGE(0xd600, 0xd600) AM_MIRROR(0x00ff) AM_WRITE(SMH_RAM) AM_BASE(&taitosj_video_mode) |
| 234 | 234 | AM_RANGE(0xd700, 0xdfff) AM_NOP |
| 235 | 235 | AM_RANGE(0xe000, 0xffff) AM_ROM |
| r4470 | r4471 | |
| 269 | 269 | AM_RANGE(0xd50b, 0xd50b) AM_MIRROR(0x00f0) AM_WRITE(taitosj_soundcommand_w) |
| 270 | 270 | AM_RANGE(0xd50d, 0xd50d) AM_MIRROR(0x00f0) AM_WRITE(SMH_RAM) /*watchdog_reset_w*/ /* Bio Attack sometimes resets after you die */ |
| 271 | 271 | AM_RANGE(0xd50e, 0xd50e) AM_MIRROR(0x00f0) AM_WRITE(taitosj_bankswitch_w) |
| 272 | AM_RANGE(0xd50f, 0xd50f) AM_MIRROR(0x00f0) AM_WRITE | |
| 272 | AM_RANGE(0xd50f, 0xd50f) AM_MIRROR(0x00f0) AM_WRITE | |
| 273 | 273 | AM_RANGE(0xd600, 0xd600) AM_MIRROR(0x00ff) AM_WRITE(SMH_RAM) AM_BASE(&taitosj_video_mode) |
| 274 | 274 | AM_RANGE(0xd700, 0xdfff) AM_NOP |
| 275 | 275 | AM_RANGE(0xe000, 0xffff) AM_ROM |
| r4470 | r4471 | |
|---|---|---|
| 110 | 110 | AM_RANGE(0x03, 0x03) AM_READ_PORT("IN1") |
| 111 | 111 | AM_RANGE(0x04, 0x04) AM_READ_PORT("IN2") AM_WRITE(vigilant_bank_select_w) |
| 112 | 112 | AM_RANGE(0x06, 0x06) AM_WRITE(m72_sound_command_byte_w) |
| 113 | // AM_RANGE(0x07, 0x07) AM_WRITE | |
| 113 | // AM_RANGE(0x07, 0x07) AM_WRITE | |
| 114 | 114 | ADDRESS_MAP_END |
| 115 | 115 | |
| 116 | 116 | static ADDRESS_MAP_START( sound_map, ADDRESS_SPACE_PROGRAM, 8 ) |
| r4470 | r4471 | |
|---|---|---|
| 100 | 100 | AM_RANGE(0xe800, 0xefff) AM_WRITE(video_shared_w) /* shared with video cpu */ |
| 101 | 101 | AM_RANGE(0xf000, 0xf7ff) AM_WRITE(SMH_RAM) /* ???? */ |
| 102 | 102 | AM_RANGE(0xf800, 0xf800) AM_WRITE(kingofb_f800_w) /* NMI enable, palette bank */ |
| 103 | AM_RANGE(0xf801, 0xf801) AM_WRITE | |
| 103 | AM_RANGE(0xf801, 0xf801) AM_WRITE | |
| 104 | 104 | AM_RANGE(0xf802, 0xf802) AM_WRITE(SMH_RAM) AM_BASE(&kingofb_scroll_y) |
| 105 | 105 | AM_RANGE(0xf803, 0xf803) AM_WRITE(scroll_interrupt_w) |
| 106 | 106 | AM_RANGE(0xf804, 0xf804) AM_WRITE(video_interrupt_w) |
| r4470 | r4471 | |
| 149 | 149 | ADDRESS_MAP_END |
| 150 | 150 | |
| 151 | 151 | static ADDRESS_MAP_START( sound_writemem, ADDRESS_SPACE_PROGRAM, 8 ) |
| 152 | AM_RANGE(0x8000, 0x8000) AM_WRITE | |
| 152 | AM_RANGE(0x8000, 0x8000) AM_WRITE | |
| 153 | 153 | AM_RANGE(0x0000, 0xbfff) AM_WRITE(SMH_ROM) |
| 154 | 154 | AM_RANGE(0xc000, 0xc3ff) AM_WRITE(SMH_RAM) /* work ram */ |
| 155 | 155 | ADDRESS_MAP_END |
| r4470 | r4471 | |
|---|---|---|
| 136 | 136 | AM_RANGE(0x41, 0x42) AM_WRITE(galivan_scrollx_w) |
| 137 | 137 | AM_RANGE(0x43, 0x44) AM_WRITE(galivan_scrolly_w) |
| 138 | 138 | AM_RANGE(0x45, 0x45) AM_WRITE(galivan_sound_command_w) |
| 139 | /* AM_RANGE(0x46, 0x46) AM_WRITE(SMH_NOP) */ | |
| 140 | /* AM_RANGE(0x47, 0x47) AM_WRITE(SMH_NOP) */ | |
| 139 | /* AM_RANGE(0x46, 0x46) AM_WRITENOP */ | |
| 140 | /* AM_RANGE(0x47, 0x47) AM_WRITENOP */ | |
| 141 | 141 | AM_RANGE(0xc0, 0xc0) AM_READ(IO_port_c0_r) /* dangar needs to return 0x58 */ |
| 142 | 142 | ADDRESS_MAP_END |
| 143 | 143 | |
| r4470 | r4471 | |
| 149 | 149 | AM_RANGE(0x83, 0x83) AM_READ_PORT("SERVICE") |
| 150 | 150 | AM_RANGE(0x84, 0x84) AM_READ_PORT("DSW1") |
| 151 | 151 | AM_RANGE(0x85, 0x85) AM_READ_PORT("DSW2") AM_WRITE(galivan_sound_command_w) |
| 152 | // AM_RANGE(0x86, 0x86) AM_WRITE(SMH_NOP) // ?? | |
| 153 | // AM_RANGE(0x87, 0x87) AM_WRITE(SMH_NOP) // ?? | |
| 152 | // AM_RANGE(0x86, 0x86) AM_WRITENOP // ?? | |
| 153 | // AM_RANGE(0x87, 0x87) AM_WRITENOP // ?? | |
| 154 | 154 | ADDRESS_MAP_END |
| 155 | 155 | |
| 156 | 156 | static ADDRESS_MAP_START( sound_readmem, ADDRESS_SPACE_PROGRAM, 8 ) |
| r4470 | r4471 | |
| 168 | 168 | AM_RANGE(0x00, 0x01) AM_DEVWRITE("ym", ym3526_w) |
| 169 | 169 | AM_RANGE(0x02, 0x02) AM_DEVWRITE("dac1", dac_w) |
| 170 | 170 | AM_RANGE(0x03, 0x03) AM_DEVWRITE("dac2", dac_w) |
| 171 | /* AM_RANGE(0x04, 0x04) AM_READ | |
| 171 | /* AM_RANGE(0x04, 0x04) AM_READ | |
| 172 | 172 | AM_RANGE(0x06, 0x06) AM_READ(galivan_sound_command_r) |
| 173 | 173 | ADDRESS_MAP_END |
| 174 | 174 |
| r4470 | r4471 | |
|---|---|---|
| 335 | 335 | AM_RANGE(0xb0, 0xb0) AM_WRITE(nb1413m3_sndrombank1_w) |
| 336 | 336 | AM_RANGE(0xc0, 0xc0) AM_WRITE(nb1413m3_nmi_clock_w) |
| 337 | 337 | AM_RANGE(0xd0, 0xd0) AM_DEVWRITE("dac", DAC_WRITE) |
| 338 | // AM_RANGE(0xe0, 0xe0) AM_WRITE | |
| 338 | // AM_RANGE(0xe0, 0xe0) AM_WRITE | |
| 339 | 339 | AM_RANGE(0xf0, 0xf0) AM_WRITE(nb1413m3_outcoin_w) |
| 340 | 340 | ADDRESS_MAP_END |
| 341 | 341 | |
| r4470 | r4471 | |
| 359 | 359 | AM_RANGE(0xb0, 0xb0) AM_WRITE(nb1413m3_sndrombank1_w) |
| 360 | 360 | AM_RANGE(0xc0, 0xc0) AM_WRITE(nb1413m3_nmi_clock_w) |
| 361 | 361 | AM_RANGE(0xd0, 0xd0) AM_DEVWRITE("dac", DAC_WRITE) |
| 362 | // AM_RANGE(0xe0, 0xe0) AM_WRITE | |
| 362 | // AM_RANGE(0xe0, 0xe0) AM_WRITE | |
| 363 | 363 | AM_RANGE(0xf0, 0xf0) AM_WRITE(nb1413m3_outcoin_w) |
| 364 | 364 | ADDRESS_MAP_END |
| 365 | 365 | |
| r4470 | r4471 | |
| 379 | 379 | AM_RANGE(0x00, 0x7f) AM_WRITE(nbmj8991_blitter_w) |
| 380 | 380 | AM_RANGE(0x80, 0x80) AM_WRITE(nbmj8991_sound_w) |
| 381 | 381 | AM_RANGE(0xa0, 0xa0) AM_WRITE(nb1413m3_inputportsel_w) |
| 382 | // AM_RANGE(0xb0, 0xb0) AM_WRITE(SMH_NOP) | |
| 383 | // AM_RANGE(0xd0, 0xd0) AM_WRITE(SMH_NOP) | |
| 382 | // AM_RANGE(0xb0, 0xb0) AM_WRITENOP | |
| 383 | // AM_RANGE(0xd0, 0xd0) AM_WRITENOP | |
| 384 | 384 | AM_RANGE(0xf0, 0xf0) AM_WRITE(nb1413m3_outcoin_w) |
| 385 | 385 | ADDRESS_MAP_END |
| 386 | 386 | |
| r4470 | r4471 | |
| 391 | 391 | AM_RANGE(0x80, 0x80) AM_WRITE(nbmj8991_sound_w) |
| 392 | 392 | AM_RANGE(0xa0, 0xa0) AM_WRITE(nb1413m3_inputportsel_w) |
| 393 | 393 | AM_RANGE(0xb0, 0xb0) AM_WRITE(nb1413m3_vcrctrl_w) |
| 394 | // AM_RANGE(0xd0, 0xd0) AM_WRITE(SMH_NOP) | |
| 395 | // AM_RANGE(0xf0, 0xf0) AM_WRITE(SMH_NOP) | |
| 394 | // AM_RANGE(0xd0, 0xd0) AM_WRITENOP | |
| 395 | // AM_RANGE(0xf0, 0xf0) AM_WRITENOP | |
| 396 | 396 | ADDRESS_MAP_END |
| 397 | 397 | |
| 398 | 398 | |
| r4470 | r4471 | |
| 419 | 419 | AM_RANGE(0x00, 0x00) AM_DEVWRITE("dac1", DAC_WRITE) |
| 420 | 420 | AM_RANGE(0x02, 0x02) AM_DEVWRITE("dac2", DAC_WRITE) |
| 421 | 421 | AM_RANGE(0x04, 0x04) AM_WRITE(nbmj8991_soundbank_w) |
| 422 | AM_RANGE(0x06, 0x06) AM_WRITE | |
| 422 | AM_RANGE(0x06, 0x06) AM_WRITE | |
| 423 | 423 | AM_RANGE(0x80, 0x81) AM_DEVWRITE("fm", ym3812_w) |
| 424 | 424 | ADDRESS_MAP_END |
| 425 | 425 |
| r4470 | r4471 | |
|---|---|---|
| 54 | 54 | AM_RANGE(0x100006, 0x100007) AM_READ_PORT("DSW1") |
| 55 | 55 | AM_RANGE(0x100008, 0x100009) AM_READ_PORT("DSW2") |
| 56 | 56 | AM_RANGE(0x100014, 0x100015) AM_WRITE(blockout_sound_command_w) |
| 57 | AM_RANGE(0x100016, 0x100017) AM_WRITE | |
| 57 | AM_RANGE(0x100016, 0x100017) AM_WRITE | |
| 58 | 58 | AM_RANGE(0x180000, 0x1bffff) AM_RAM_WRITE(blockout_videoram_w) AM_BASE(&blockout_videoram) |
| 59 | 59 | AM_RANGE(0x1d4000, 0x1dffff) AM_RAM /* work RAM */ |
| 60 | 60 | AM_RANGE(0x1f4000, 0x1fffff) AM_RAM /* work RAM */ |
| r4470 | r4471 | |
| 357 | 357 | ROM_END |
| 358 | 358 | |
| 359 | 359 | |
| 360 | GAME( 1989, blockout, 0, blockout, blockout, 0, ROT0, "Technos + California Dreams", "Block Out (set 1)", 0 ) | |
| 361 | GAME( 1989, blckout2, blockout, blockout, blockout, 0, ROT0, "Technos + California Dreams", "Block Out (set 2)", 0 ) | |
| 362 | GAME( 1989, blckoutj, blockout, blockout, blckoutj, 0, ROT0, "Technos + California Dreams", "Block Out (Japan)", 0 ) | |
| 360 | GAME( 1989, blockout, 0, blockout, blockout, 0, ROT0, "Technos Japan + California Dreams", "Block Out (set 1)", 0 ) | |
| 361 | GAME( 1989, blckout2, blockout, blockout, blockout, 0, ROT0, "Technos Japan + California Dreams", "Block Out (set 2)", 0 ) | |
| 362 | GAME( 1989, blckoutj, blockout, blockout, blckoutj, 0, ROT0, "Technos Japan + California Dreams", "Block Out (Japan)", 0 ) | |
| 363 | 363 | GAME( 1991, agress, 0, blockout, agress, 0, ROT0, "Palco", "Agress", 0 ) |
| 364 | 364 | GAME( 2003, agressb, agress, blockout, agress, 0, ROT0, "Palco", "Agress (English bootleg)", 0 ) |
| r4470 | r4471 | |
|---|---|---|
| 130 | 130 | } |
| 131 | 131 | |
| 132 | 132 | |
| 133 | static ADDRESS_MAP_START( readmem, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 134 | AM_RANGE(0x0000, 0xbfff) AM_READ(SMH_ROM) | |
| 135 | AM_RANGE(0xc000, 0xcfff) AM_READ(SMH_RAM) | |
| 133 | static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 134 | AM_RANGE(0x0000, 0xbfff) AM_ROM | |
| 135 | AM_RANGE(0xc000, 0xcfff) AM_RAM | |
| 136 | 136 | |
| 137 | 137 | /* protection? - there are writes as well...*/ |
| 138 | 138 | AM_RANGE(0xd803, 0xd803) AM_READ(unknown_d803_r) |
| r4470 | r4471 | |
| 140 | 140 | AM_RANGE(0xd900, 0xd900) AM_READ(unknown_d900_r) |
| 141 | 141 | AM_RANGE(0xd938, 0xd938) AM_READ(unknown_d938_r) |
| 142 | 142 | |
| 143 | AM_RANGE(0xe000, 0xe3ff) AM_READ(SMH_RAM) | |
| 144 | AM_RANGE(0xe400, 0xe7ff) AM_READ(SMH_RAM) | |
| 145 | AM_RANGE(0xe800, 0xefff) AM_READ(SMH_RAM) | |
| 146 | AM_RANGE(0xf000, 0xf3ff) AM_READ(SMH_RAM) | |
| 143 | AM_RANGE(0xe000, 0xe3ff) AM_RAM_WRITE(tsamurai_fg_videoram_w) AM_BASE(&videoram) | |
| 144 | AM_RANGE(0xe400, 0xe43f) AM_RAM_WRITE(tsamurai_fg_colorram_w) AM_BASE(&colorram) | |
| 145 | AM_RANGE(0xe440, 0xe7ff) AM_RAM | |
| 146 | AM_RANGE(0xe800, 0xefff) AM_RAM_WRITE(tsamurai_bg_videoram_w) AM_BASE(&tsamurai_videoram) | |
| 147 | AM_RANGE(0xf000, 0xf3ff) AM_RAM AM_BASE(&spriteram) | |
| 147 | 148 | |
| 148 | AM_RANGE(0xf800, 0xf800) AM_READ_PORT("P1") | |
| 149 | AM_RANGE(0xf801, 0xf801) AM_READ_PORT("P2") | |
| 150 | AM_RANGE(0xf802, 0xf802) AM_READ_PORT("SYSTEM") | |
| 151 | AM_RANGE(0xf804, 0xf804) AM_READ_PORT("DSW1") | |
| 152 | AM_RANGE(0xf805, 0xf805) AM_READ_PORT("DSW2") | |
| 153 | ADDRESS_MAP_END | |
| 154 | ||
| 155 | static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 156 | AM_RANGE(0x0000, 0xbfff) AM_WRITE(SMH_ROM) | |
| 157 | AM_RANGE(0xc000, 0xcfff) AM_WRITE(SMH_RAM) | |
| 158 | ||
| 159 | AM_RANGE(0xe000, 0xe3ff) AM_WRITE(tsamurai_fg_videoram_w) AM_BASE(&videoram) | |
| 160 | AM_RANGE(0xe400, 0xe43f) AM_WRITE(tsamurai_fg_colorram_w) AM_BASE(&colorram) | |
| 161 | AM_RANGE(0xe440, 0xe7ff) AM_WRITE(SMH_RAM) | |
| 162 | AM_RANGE(0xe800, 0xefff) AM_WRITE(tsamurai_bg_videoram_w) AM_BASE(&tsamurai_videoram) | |
| 163 | AM_RANGE(0xf000, 0xf3ff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram) | |
| 164 | ||
| 165 | AM_RANGE(0xf400, 0xf400) AM_WRITE(SMH_NOP) | |
| 149 | AM_RANGE(0xf400, 0xf400) AM_WRITENOP | |
| 166 | 150 | AM_RANGE(0xf401, 0xf401) AM_WRITE(sound_command1_w) |
| 167 | 151 | AM_RANGE(0xf402, 0xf402) AM_WRITE(sound_command2_w) |
| 168 | 152 | |
| 169 | AM_RANGE(0xf801, 0xf801) AM_WRITE(tsamurai_bgcolor_w) | |
| 170 | AM_RANGE(0xf802, 0xf802) AM_WRITE(tsamurai_scrolly_w) | |
| 153 | AM_RANGE(0xf800, 0xf800) AM_READ_PORT("P1") | |
| 154 | AM_RANGE(0xf801, 0xf801) AM_READ_PORT("P2") AM_WRITE(tsamurai_bgcolor_w) | |
| 155 | AM_RANGE(0xf802, 0xf802) AM_READ_PORT("SYSTEM") AM_WRITE(tsamurai_scrolly_w) | |
| 171 | 156 | AM_RANGE(0xf803, 0xf803) AM_WRITE(tsamurai_scrollx_w) |
| 157 | AM_RANGE(0xf804, 0xf804) AM_READ_PORT("DSW1") | |
| 158 | AM_RANGE(0xf805, 0xf805) AM_READ_PORT("DSW2") | |
| 172 | 159 | |
| 173 | 160 | AM_RANGE(0xfc00, 0xfc00) AM_WRITE(flip_screen_w) |
| 174 | 161 | AM_RANGE(0xfc01, 0xfc01) AM_WRITE(nmi_enable_w) |
| r4470 | r4471 | |
| 176 | 163 | AM_RANGE(0xfc03, 0xfc04) AM_WRITE(tsamurai_coin_counter_w) |
| 177 | 164 | ADDRESS_MAP_END |
| 178 | 165 | |
| 179 | static ADDRESS_MAP_START( readmem_m660, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 180 | AM_RANGE(0x0000, 0xbfff) AM_READ(SMH_ROM) | |
| 181 | AM_RANGE(0xc000, 0xcfff) AM_READ(SMH_RAM) | |
| 166 | static ADDRESS_MAP_START( m660_map, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 167 | AM_RANGE(0x0000, 0xbfff) AM_ROM | |
| 168 | AM_RANGE(0xc000, 0xcfff) AM_RAM | |
| 182 | 169 | |
| 183 | 170 | /* protection? - there are writes as well...*/ |
| 184 | 171 | AM_RANGE(0xd803, 0xd803) AM_READ(unknown_d803_m660_r) |
| r4470 | r4471 | |
| 186 | 173 | AM_RANGE(0xd900, 0xd900) AM_READ(unknown_d900_r) |
| 187 | 174 | AM_RANGE(0xd938, 0xd938) AM_READ(unknown_d938_r) |
| 188 | 175 | |
| 189 | AM_RANGE(0xe000, 0xe3ff) AM_READ(SMH_RAM) | |
| 190 | AM_RANGE(0xe400, 0xe7ff) AM_READ(SMH_RAM) | |
| 191 | AM_RANGE(0xe800, 0xefff) AM_READ(SMH_RAM) | |
| 192 | AM_RANGE(0xf000, 0xf3ff) AM_READ(SMH_RAM) | |
| 176 | AM_RANGE(0xe000, 0xe3ff) AM_RAM_WRITE(tsamurai_fg_videoram_w) AM_BASE(&videoram) | |
| 177 | AM_RANGE(0xe400, 0xe43f) AM_RAM_WRITE(tsamurai_fg_colorram_w) AM_BASE(&colorram) | |
| 178 | AM_RANGE(0xe440, 0xe7ff) AM_RAM | |
| 179 | AM_RANGE(0xe800, 0xefff) AM_RAM_WRITE(tsamurai_bg_videoram_w) AM_BASE(&tsamurai_videoram) | |
| 180 | AM_RANGE(0xf000, 0xf3ff) AM_RAM AM_BASE(&spriteram) | |
| 193 | 181 | |
| 194 | AM_RANGE(0xf800, 0xf800) AM_READ_PORT("P1") | |
| 195 | AM_RANGE(0xf801, 0xf801) AM_READ_PORT("P2") | |
| 196 | AM_RANGE(0xf802, 0xf802) AM_READ_PORT("SYSTEM") | |
| 197 | AM_RANGE(0xf804, 0xf804) AM_READ_PORT("DSW1") | |
| 198 | AM_RANGE(0xf805, 0xf805) AM_READ_PORT("DSW2") | |
| 199 | ADDRESS_MAP_END | |
| 200 | ||
| 201 | static ADDRESS_MAP_START( writemem_m660, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 202 | AM_RANGE(0x0000, 0xbfff) AM_WRITE(SMH_ROM) | |
| 203 | AM_RANGE(0xc000, 0xcfff) AM_WRITE(SMH_RAM) | |
| 204 | ||
| 205 | AM_RANGE(0xe000, 0xe3ff) AM_WRITE(tsamurai_fg_videoram_w) AM_BASE(&videoram) | |
| 206 | AM_RANGE(0xe400, 0xe43f) AM_WRITE(tsamurai_fg_colorram_w) AM_BASE(&colorram) | |
| 207 | AM_RANGE(0xe440, 0xe7ff) AM_WRITE(SMH_RAM) | |
| 208 | AM_RANGE(0xe800, 0xefff) AM_WRITE(tsamurai_bg_videoram_w) AM_BASE(&tsamurai_videoram) | |
| 209 | AM_RANGE(0xf000, 0xf3ff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram) | |
| 210 | ||
| 211 | AM_RANGE(0xf400, 0xf400) AM_WRITE(SMH_NOP)/* This is always written with F401, F402 & F403 data */ | |
| 182 | AM_RANGE(0xf400, 0xf400) AM_WRITENOP/* This is always written with F401, F402 & F403 data */ | |
| 212 | 183 | AM_RANGE(0xf401, 0xf401) AM_WRITE(sound_command3_w) |
| 213 | 184 | AM_RANGE(0xf402, 0xf402) AM_WRITE(sound_command2_w) |
| 214 | 185 | AM_RANGE(0xf403, 0xf403) AM_WRITE(sound_command1_w) |
| 215 | 186 | |
| 216 | ||
| 217 | AM_RANGE(0xf801, 0xf801) AM_WRITE(tsamurai_bgcolor_w) | |
| 218 | AM_RANGE(0xf802, 0xf802) AM_WRITE(tsamurai_scrolly_w) | |
| 187 | AM_RANGE(0xf800, 0xf800) AM_READ_PORT("P1") | |
| 188 | AM_RANGE(0xf801, 0xf801) AM_READ_PORT("P2") AM_WRITE(tsamurai_bgcolor_w) | |
| 189 | AM_RANGE(0xf802, 0xf802) AM_READ_PORT("SYSTEM") AM_WRITE(tsamurai_scrolly_w) | |
| 219 | 190 | AM_RANGE(0xf803, 0xf803) AM_WRITE(tsamurai_scrollx_w) |
| 191 | AM_RANGE(0xf804, 0xf804) AM_READ_PORT("DSW1") | |
| 192 | AM_RANGE(0xf805, 0xf805) AM_READ_PORT("DSW2") | |
| 220 | 193 | |
| 221 | 194 | AM_RANGE(0xfc00, 0xfc00) AM_WRITE(flip_screen_w) |
| 222 | 195 | AM_RANGE(0xfc01, 0xfc01) AM_WRITE(nmi_enable_w) |
| r4470 | r4471 | |
| 232 | 205 | |
| 233 | 206 | static ADDRESS_MAP_START( z80_m660_io_map, ADDRESS_SPACE_IO, 8 ) |
| 234 | 207 | ADDRESS_MAP_GLOBAL_MASK(0xff) |
| 235 | AM_RANGE(0x00, 0x00) AM_WRITE(SMH_NOP) /* ? */ | |
| 236 | AM_RANGE(0x01, 0x01) AM_WRITE(SMH_NOP) /* Written continuously. Increments with level. */ | |
| 237 | AM_RANGE(0x02, 0x02) AM_WRITE(SMH_NOP) /* Always follows above with 0x01 data */ | |
| 208 | AM_RANGE(0x00, 0x00) AM_WRITENOP /* ? */ | |
| 209 | AM_RANGE(0x01, 0x01) AM_WRITENOP /* Written continuously. Increments with level. */ | |
| 210 | AM_RANGE(0x02, 0x02) AM_WRITENOP /* Always follows above with 0x01 data */ | |
| 238 | 211 | ADDRESS_MAP_END |
| 239 | 212 | |
| 240 | 213 | static ADDRESS_MAP_START( vsgongf_audio_io_map, ADDRESS_SPACE_IO, 8 ) |
| r4470 | r4471 | |
| 256 | 229 | } |
| 257 | 230 | |
| 258 | 231 | /*******************************************************************************/ |
| 259 | static ADDRESS_MAP_START( readmem_sound1, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 260 | AM_RANGE(0x0000, 0x3fff) AM_READ(SMH_ROM) | |
| 232 | static ADDRESS_MAP_START( sound1_map, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 233 | AM_RANGE(0x0000, 0x3fff) AM_ROM | |
| 261 | 234 | AM_RANGE(0x6000, 0x6000) AM_READ(sound_command1_r) |
| 262 | AM_RANGE(0x7f00, 0x7fff) AM_READ(SMH_RAM) | |
| 263 | ADDRESS_MAP_END | |
| 264 | ||
| 265 | static ADDRESS_MAP_START( writemem_sound1, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 266 | AM_RANGE(0x0000, 0x3fff) AM_WRITE(SMH_ROM) | |
| 267 | AM_RANGE(0x6001, 0x6001) AM_WRITE(SMH_NOP) /* ? - probably clear IRQ */ | |
| 235 | AM_RANGE(0x6001, 0x6001) AM_WRITENOP /* ? - probably clear IRQ */ | |
| 268 | 236 | AM_RANGE(0x6002, 0x6002) AM_DEVWRITE("dac1", dac_w) |
| 269 | AM_RANGE(0x7f00, 0x7fff) AM_ | |
| 237 | AM_RANGE(0x7f00, 0x7fff) AM_ | |
| 270 | 238 | ADDRESS_MAP_END |
| 271 | 239 | |
| 272 | 240 | /*******************************************************************************/ |
| 273 | 241 | |
| 274 | static ADDRESS_MAP_START( readmem_sound2, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 275 | AM_RANGE(0x0000, 0x3fff) AM_READ(SMH_ROM) | |
| 242 | static ADDRESS_MAP_START( sound2_map, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 243 | AM_RANGE(0x0000, 0x3fff) AM_ROM | |
| 276 | 244 | AM_RANGE(0x6000, 0x6000) AM_READ(sound_command2_r) |
| 277 | AM_RANGE(0x7f00, 0x7fff) AM_READ(SMH_RAM) | |
| 278 | ADDRESS_MAP_END | |
| 279 | ||
| 280 | static ADDRESS_MAP_START( writemem_sound2, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 281 | AM_RANGE(0x0000, 0x3fff) AM_WRITE(SMH_ROM) | |
| 282 | AM_RANGE(0x6001, 0x6001) AM_WRITE(SMH_NOP) /* ? - probably clear IRQ */ | |
| 245 | AM_RANGE(0x6001, 0x6001) AM_WRITENOP /* ? - probably clear IRQ */ | |
| 283 | 246 | AM_RANGE(0x6002, 0x6002) AM_DEVWRITE("dac2", dac_w) |
| 284 | AM_RANGE(0x7f00, 0x7fff) AM_ | |
| 247 | AM_RANGE(0x7f00, 0x7fff) AM_ | |
| 285 | 248 | ADDRESS_MAP_END |
| 286 | 249 | |
| 287 | 250 | /*******************************************************************************/ |
| 288 | 251 | |
| 289 | static ADDRESS_MAP_START( readmem_sound1_m660, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 290 | AM_RANGE(0x0000, 0x3fff) AM_READ(SMH_ROM) | |
| 252 | static ADDRESS_MAP_START( sound1_m660_map, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 253 | AM_RANGE(0x0000, 0x3fff) AM_ROM | |
| 291 | 254 | AM_RANGE(0xc000, 0xc000) AM_READ(sound_command1_r) |
| 292 | AM_RANGE(0x8000, 0x87ff) AM_READ(SMH_RAM) | |
| 293 | ADDRESS_MAP_END | |
| 294 | ||
| 295 | static ADDRESS_MAP_START( writemem_sound1_m660, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 296 | AM_RANGE(0x0000, 0x3fff) AM_WRITE(SMH_ROM) | |
| 297 | AM_RANGE(0xc001, 0xc001) AM_WRITE(SMH_NOP) /* ? - probably clear IRQ */ | |
| 255 | AM_RANGE(0xc001, 0xc001) AM_WRITENOP /* ? - probably clear IRQ */ | |
| 298 | 256 | AM_RANGE(0xc002, 0xc002) AM_DEVWRITE("dac1", dac_w) |
| 299 | AM_RANGE(0x8000, 0x87ff) AM_ | |
| 257 | AM_RANGE(0x8000, 0x87ff) AM_ | |
| 300 | 258 | ADDRESS_MAP_END |
| 301 | 259 | |
| 302 | 260 | /*******************************************************************************/ |
| 303 | 261 | |
| 304 | static ADDRESS_MAP_START( readmem_sound2_m660, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 305 | AM_RANGE(0x0000, 0x3fff) AM_READ(SMH_ROM) | |
| 262 | static ADDRESS_MAP_START( sound2_m660_map, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 263 | AM_RANGE(0x0000, 0x3fff) AM_ROM | |
| 306 | 264 | AM_RANGE(0xc000, 0xc000) AM_READ(sound_command2_r) |
| 307 | AM_RANGE(0x8000, 0x87ff) AM_READ(SMH_RAM) | |
| 308 | ADDRESS_MAP_END | |
| 309 | ||
| 310 | static ADDRESS_MAP_START( writemem_sound2_m660, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 311 | AM_RANGE(0x0000, 0x3fff) AM_WRITE(SMH_ROM) | |
| 312 | AM_RANGE(0xc001, 0xc001) AM_WRITE(SMH_NOP) /* ? - probably clear IRQ */ | |
| 265 | AM_RANGE(0xc001, 0xc001) AM_WRITENOP /* ? - probably clear IRQ */ | |
| 313 | 266 | AM_RANGE(0xc002, 0xc002) AM_DEVWRITE("dac2", dac_w) |
| 314 | AM_RANGE(0x8000, 0x87ff) AM_ | |
| 267 | AM_RANGE(0x8000, 0x87ff) AM_ | |
| 315 | 268 | ADDRESS_MAP_END |
| 316 | 269 | |
| 317 | 270 | /*******************************************************************************/ |
| 318 | 271 | |
| 272 | static ADDRESS_MAP_START( sound3_m660_map, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 273 | AM_RANGE(0x0000, 0x3fff) AM_ROM | |
| 274 | AM_RANGE(0xc000, 0xc000) AM_READ(sound_command3_r) | |
| 275 | AM_RANGE(0xc001, 0xc001) AM_WRITENOP /* ? - probably clear IRQ */ | |
| 276 | AM_RANGE(0x8000, 0x87ff) AM_RAM | |
| 277 | AM_RANGE(0xfffc, 0xffff) AM_RAM /* CPU writes here - music data */ | |
| 278 | ADDRESS_MAP_END | |
| 279 | ||
| 319 | 280 | static ADDRESS_MAP_START( sound3_m660_io_map, ADDRESS_SPACE_IO, 8 ) |
| 320 | 281 | ADDRESS_MAP_GLOBAL_MASK(0xff) |
| 321 | 282 | AM_RANGE(0x00, 0x01) AM_DEVWRITE("ay", ay8910_address_data_w) |
| 322 | 283 | ADDRESS_MAP_END |
| 323 | 284 | |
| 324 | static ADDRESS_MAP_START( readmem_sound3_m660, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 325 | AM_RANGE(0x0000, 0x3fff) AM_READ(SMH_ROM) | |
| 326 | AM_RANGE(0xc000, 0xc000) AM_READ(sound_command3_r) | |
| 327 | AM_RANGE(0x8000, 0x87ff) AM_READ(SMH_RAM) | |
| 328 | AM_RANGE(0xfffc, 0xffff) AM_READ(SMH_RAM) /* CPU reads here - music data */ | |
| 329 | ADDRESS_MAP_END | |
| 330 | ||
| 331 | static ADDRESS_MAP_START( writemem_sound3_m660, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 332 | AM_RANGE(0x0000, 0x3fff) AM_WRITE(SMH_ROM) | |
| 333 | AM_RANGE(0xc001, 0xc001) AM_WRITE(SMH_NOP) /* ? - probably clear IRQ */ | |
| 334 | AM_RANGE(0x8000, 0x87ff) AM_WRITE(SMH_RAM) | |
| 335 | AM_RANGE(0xfffc, 0xffff) AM_WRITE(SMH_RAM) /* CPU writes here - music data */ | |
| 336 | ADDRESS_MAP_END | |
| 337 | ||
| 338 | 285 | /*******************************************************************************/ |
| 339 | 286 | |
| 340 | 287 | static int vsgongf_sound_nmi_enabled; |
| r4470 | r4471 | |
| 373 | 320 | cpu_set_input_line(space->machine->cpu[1], INPUT_LINE_NMI, PULSE_LINE ); |
| 374 | 321 | } |
| 375 | 322 | |
| 376 | static ADDRESS_MAP_START( readmem_vsgongf, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 377 | AM_RANGE(0x0000, 0x7fff) AM_READ(SMH_ROM) | |
| 323 | static ADDRESS_MAP_START( vsgongf_map, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 324 | AM_RANGE(0x0000, 0x7fff) AM_ROM | |
| 378 | 325 | AM_RANGE(0xa003, 0xa003) AM_READ(SMH_RAM) |
| 379 | 326 | AM_RANGE(0xa006, 0xa006) AM_READ(vsgongf_a006_r) /* protection */ |
| 380 | 327 | AM_RANGE(0xa100, 0xa100) AM_READ(vsgongf_a100_r) /* protection */ |
| 381 | AM_RANGE(0xc000, 0xc7ff) AM_READ(SMH_RAM) /* work ram */ | |
| 382 | AM_RANGE(0xe000, 0xe7ff) AM_READ(SMH_RAM) | |
| 328 | AM_RANGE(0xc000, 0xc7ff) AM_RAM /* work ram */ | |
| 329 | AM_RANGE(0xe000, 0xe3ff) AM_RAM_WRITE(tsamurai_fg_videoram_w) AM_BASE(&videoram) | |
| 330 | AM_RANGE(0xe400, 0xe43f) AM_RAM AM_BASE(&spriteram) | |
| 331 | AM_RANGE(0xe440, 0xe47b) AM_RAM | |
| 332 | AM_RANGE(0xe800, 0xe800) AM_WRITE(vsgongf_sound_command_w) | |
| 333 | AM_RANGE(0xec00, 0xec06) AM_WRITE(SMH_RAM) | |
| 334 | AM_RANGE(0xf000, 0xf000) AM_WRITE(vsgongf_color_w) | |
| 335 | AM_RANGE(0xf400, 0xf400) AM_WRITE(SMH_RAM) /* vreg? always 0 */ | |
| 383 | 336 | AM_RANGE(0xf800, 0xf800) AM_READ_PORT("P1") |
| 384 | 337 | AM_RANGE(0xf801, 0xf801) AM_READ_PORT("P2") |
| 385 | 338 | AM_RANGE(0xf802, 0xf802) AM_READ_PORT("SYSTEM") |
| 386 | 339 | AM_RANGE(0xf804, 0xf804) AM_READ_PORT("DSW1") |
| 387 | 340 | AM_RANGE(0xf805, 0xf805) AM_READ_PORT("DSW2") |
| 388 | AM_RANGE(0xfc00, 0xffff) AM_READ(SMH_RAM) | |
| 341 | AM_RANGE(0xf800, 0xf800) AM_WRITENOP | |
| 342 | AM_RANGE(0xf801, 0xf801) AM_WRITENOP /* vreg? always 0 */ | |
| 343 | AM_RANGE(0xf803, 0xf803) AM_WRITENOP /* vreg? always 0 */ | |
| 344 | AM_RANGE(0xfc00, 0xfc00) AM_RAM /* vreg? always 0 */ | |
| 345 | AM_RANGE(0xfc01, 0xfc01) AM_RAM_WRITE(nmi_enable_w) | |
| 346 | AM_RANGE(0xfc02, 0xfc03) AM_RAM_WRITE(tsamurai_coin_counter_w) | |
| 347 | AM_RANGE(0xfc04, 0xfc04) AM_RAM_WRITE(tsamurai_textbank1_w) | |
| 389 | 348 | ADDRESS_MAP_END |
| 390 | 349 | |
| 391 | static ADDRESS_MAP_START( writemem_vsgongf, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 392 | AM_RANGE(0x0000, 0x7fff) AM_WRITE(SMH_ROM) | |
| 393 | AM_RANGE(0xc000, 0xc7ff) AM_WRITE(SMH_RAM) /* work ram */ | |
| 394 | AM_RANGE(0xe000, 0xe3ff) AM_WRITE(tsamurai_fg_videoram_w) AM_BASE(&videoram) | |
| 395 | AM_RANGE(0xe400, 0xe43f) AM_WRITE(SMH_RAM) AM_BASE(&spriteram) | |
| 396 | AM_RANGE(0xe440, 0xe47b) AM_WRITE(SMH_RAM) | |
| 397 | AM_RANGE(0xe800, 0xe800) AM_WRITE(vsgongf_sound_command_w) | |
| 398 | AM_RANGE(0xec00, 0xec06) AM_WRITE(SMH_RAM) | |
| 399 | AM_RANGE(0xf000, 0xf000) AM_WRITE(vsgongf_color_w) | |
| 400 | AM_RANGE(0xf400, 0xf400) AM_WRITE(SMH_RAM) /* vreg? always 0 */ | |
| 401 | AM_RANGE(0xf800, 0xf800) AM_WRITE(SMH_RAM) | |
| 402 | AM_RANGE(0xf801, 0xf801) AM_WRITE(SMH_RAM) /* vreg? always 0 */ | |
| 403 | AM_RANGE(0xf803, 0xf803) AM_WRITE(SMH_RAM) /* vreg? always 0 */ | |
| 404 | AM_RANGE(0xfc00, 0xfc00) AM_WRITE(SMH_RAM) /* vreg? always 0 */ | |
| 405 | AM_RANGE(0xfc01, 0xfc01) AM_WRITE(nmi_enable_w) | |
| 406 | AM_RANGE(0xfc02, 0xfc03) AM_WRITE(tsamurai_coin_counter_w) | |
| 407 | AM_RANGE(0xfc04, 0xfc04) AM_WRITE(tsamurai_textbank1_w) | |
| 408 | ADDRESS_MAP_END | |
| 409 | ||
| 410 | static ADDRESS_MAP_START( readmem_sound_vsgongf, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 411 | AM_RANGE(0x0000, 0x3fff) AM_READ(SMH_ROM) | |
| 412 | AM_RANGE(0x6000, 0x63ff) AM_READ(SMH_RAM) /* work RAM */ | |
| 413 | AM_RANGE(0x8000, 0x8000) AM_READ(soundlatch_r) | |
| 414 | ADDRESS_MAP_END | |
| 415 | ||
| 416 | static ADDRESS_MAP_START( writemem_sound_vsgongf, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 417 | AM_RANGE(0x0000, 0x3fff) AM_WRITE(SMH_ROM) | |
| 418 | AM_RANGE(0x6000, 0x63ff) AM_WRITE(SMH_RAM) /* work RAM */ | |
| 419 | AM_RANGE(0x8000, 0x8000) AM_WRITE(vsgongf_sound_nmi_enable_w) /* NMI enable */ | |
| 350 | static ADDRESS_MAP_START( sound_vsgongf_map, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 351 | AM_RANGE(0x0000, 0x3fff) AM_ROM | |
| 352 | AM_RANGE(0x6000, 0x63ff) AM_RAM /* work RAM */ | |
| 353 | AM_RANGE(0x8000, 0x8000) AM_READWRITE(soundlatch_r, vsgongf_sound_nmi_enable_w) /* NMI enable */ | |
| 420 | 354 | AM_RANGE(0xa000, 0xa000) AM_DEVWRITE("dac", dac_w) |
| 421 | 355 | ADDRESS_MAP_END |
| 422 | 356 | |
| r4470 | r4471 | |
| 719 | 653 | |
| 720 | 654 | /* basic machine hardware */ |
| 721 | 655 | MDRV_CPU_ADD("maincpu", Z80, 4000000) |
| 722 | MDRV_CPU_PROGRAM_MAP( | |
| 656 | MDRV_CPU_PROGRAM_MAP( | |
| 723 | 657 | MDRV_CPU_IO_MAP(z80_io_map,0) |
| 724 | 658 | MDRV_CPU_VBLANK_INT("screen", samurai_interrupt) |
| 725 | 659 | |
| 726 | 660 | MDRV_CPU_ADD("audiocpu", Z80, 2000000) |
| 727 | MDRV_CPU_PROGRAM_MAP( | |
| 661 | MDRV_CPU_PROGRAM_MAP( | |
| 728 | 662 | |
| 729 | 663 | MDRV_CPU_ADD("audio2", Z80, 2000000) |
| 730 | MDRV_CPU_PROGRAM_MAP( | |
| 664 | MDRV_CPU_PROGRAM_MAP( | |
| 731 | 665 | |
| 732 | 666 | /* video hardware */ |
| 733 | 667 | MDRV_SCREEN_ADD("screen", RASTER) |
| r4470 | r4471 | |
| 762 | 696 | |
| 763 | 697 | /* basic machine hardware */ |
| 764 | 698 | MDRV_CPU_ADD("maincpu", Z80, 4000000) |
| 765 | MDRV_CPU_PROGRAM_MAP( | |
| 699 | MDRV_CPU_PROGRAM_MAP( | |
| 766 | 700 | MDRV_CPU_IO_MAP(z80_m660_io_map,0) |
| 767 | 701 | MDRV_CPU_VBLANK_INT("screen", samurai_interrupt) |
| 768 | 702 | |
| 769 | 703 | MDRV_CPU_ADD("audiocpu", Z80, 2000000) |
| 770 | MDRV_CPU_PROGRAM_MAP( | |
| 704 | MDRV_CPU_PROGRAM_MAP( | |
| 771 | 705 | |
| 772 | 706 | MDRV_CPU_ADD("audio2", Z80, 2000000) |
| 773 | MDRV_CPU_PROGRAM_MAP( | |
| 707 | MDRV_CPU_PROGRAM_MAP( | |
| 774 | 708 | |
| 775 | 709 | MDRV_CPU_ADD("audio3", Z80, 2000000) |
| 776 | MDRV_CPU_PROGRAM_MAP( | |
| 710 | MDRV_CPU_PROGRAM_MAP( | |
| 777 | 711 | MDRV_CPU_IO_MAP(sound3_m660_io_map,0) |
| 778 | 712 | MDRV_CPU_VBLANK_INT("screen", nmi_line_pulse) |
| 779 | 713 | |
| r4470 | r4471 | |
| 810 | 744 | |
| 811 | 745 | /* basic machine hardware */ |
| 812 | 746 | MDRV_CPU_ADD("maincpu", Z80, 4000000) |
| 813 | MDRV_CPU_PROGRAM_MAP( | |
| 747 | MDRV_CPU_PROGRAM_MAP( | |
| 814 | 748 | MDRV_CPU_VBLANK_INT("screen", samurai_interrupt) |
| 815 | 749 | |
| 816 | 750 | MDRV_CPU_ADD("audiocpu", Z80, 4000000) |
| 817 | MDRV_CPU_PROGRAM_MAP( | |
| 751 | MDRV_CPU_PROGRAM_MAP( | |
| 818 | 752 | MDRV_CPU_IO_MAP(vsgongf_audio_io_map,0) |
| 819 | 753 | MDRV_CPU_VBLANK_INT_HACK(vsgongf_sound_interrupt,3) |
| 820 | 754 | |
| r4470 | r4471 | |
| 879 | 813 | ROM_LOAD( "a35-18.2m", 0x200, 0x0100, CRC(918e4732) SHA1(a38686b32d5ac0ebcba59fdba3201fe35c83d4d0) ) |
| 880 | 814 | ROM_END |
| 881 | 815 | |
| 882 | ROM_START( tsamura2 ) | |
| 816 | ROM_START( tsamurai2 ) | |
| 883 | 817 | ROM_REGION( 0x10000, "maincpu", 0 ) /* Z80 code - main CPU */ |
| 884 | 818 | ROM_LOAD( "a35-01.3r", 0x0000, 0x4000, CRC(282d96ad) SHA1(c9d7a9b7acbe6431c061a9b50c05fab3ae664094) ) |
| 885 | 819 | ROM_LOAD( "a35-02.3t", 0x4000, 0x4000, CRC(e3fa0cfa) SHA1(3ed8a67789f666fe12d7597014d39deea3c12506) ) |
| r4470 | r4471 | |
| 1249 | 1183 | GAME( 1984, ringfgt, vsgongf, vsgongf, vsgongf, 0, ROT90, "Taito", "Ring Fighter (set 1)", 0 ) |
| 1250 | 1184 | GAME( 1984, ringfgt2, vsgongf, vsgongf, vsgongf, 0, ROT90, "Taito", "Ring Fighter (set 2)", 0 ) |
| 1251 | 1185 | GAME( 1985, tsamurai, 0, tsamurai, tsamurai, 0, ROT90, "Taito", "Samurai Nihon-ichi (set 1)", 0 ) |
| 1252 | GAME( 1985, tsamura2, | |
| 1186 | GAME( 1985, tsamurai2, | |
| 1253 | 1187 | GAME( 1985, ladymstr, 0, tsamurai, tsamurai, 0, ROT90, "Taito", "Lady Master of Kungfu", 0 ) |
| 1254 | 1188 | GAME( 1985, nunchaku, 0, tsamurai, nunchaku, 0, ROT90, "Taito", "Nunchackun", GAME_IMPERFECT_COLORS ) |
| 1255 | 1189 | GAME( 1985, yamagchi, 0, tsamurai, yamagchi, 0, ROT90, "Taito", "Go Go Mr. Yamaguchi / Yuke Yuke Yamaguchi-kun", GAME_IMPERFECT_COLORS ) |
| r4470 | r4471 | |
| 1258 | 1192 | GAME( 1986, m660j, m660, m660, m660, 0, ROT90, "[Woodplace Inc.] Taito Corporation", "Mission 660 (Japan)", 0 ) |
| 1259 | 1193 | GAME( 1986, m660b, m660, m660, m660, 0, ROT90, "bootleg", "Mission 660 (bootleg)", 0 ) |
| 1260 | 1194 | GAME( 1986, alphaxz, m660, m660, m660, 0, ROT90, "Ed / Woodplace Inc.", "The Alphax Z (Japan)", 0 ) |
| 1261 | ||
| 1262 |
| r4470 | r4471 | |
|---|---|---|
| 153 | 153 | static ADDRESS_MAP_START( splash_writemem_sound, ADDRESS_SPACE_PROGRAM, 8 ) |
| 154 | 154 | AM_RANGE(0x0000, 0xd7ff) AM_WRITE(SMH_ROM) /* ROM */ |
| 155 | 155 | AM_RANGE(0xd800, 0xd800) AM_WRITE(splash_adpcm_data_w) /* ADPCM data for the MSM5205 chip */ |
| 156 | // AM_RANGE(0xe000, 0xe000) AM_WRITE | |
| 156 | // AM_RANGE(0xe000, 0xe000) AM_WRITE | |
| 157 | 157 | AM_RANGE(0xf000, 0xf001) AM_DEVWRITE("ym", ym3812_w) /* YM3812 */ |
| 158 | 158 | AM_RANGE(0xf800, 0xffff) AM_WRITE(SMH_RAM) /* RAM */ |
| 159 | 159 | ADDRESS_MAP_END |
| r4470 | r4471 | |
|---|---|---|
| 3 | 3 | MJ-8956 HW games (c) 1989 Jaleco / NMK / UPL |
| 4 | 4 | |
| 5 | 5 | driver by Angelo Salese, based on early work by David Haywood |
| 6 | Special thanks to Uki and Yasu for the priority system explaination. | |
| 6 | 7 | |
| 7 | Similar to the NMK16 board but without sprites. | |
| 8 | Similar to the NMK16 / Jaleco Mega System 1 boards but without sprites. | |
| 8 | 9 | |
| 9 | 10 | Notes(general): |
| 10 | 11 | -I think that the 0xf0000-0xfffff area is shared with the MCU because: |
| r4470 | r4471 | |
| 18 | 19 | adding a value to these RAM areas according to what button is pressed. |
| 19 | 20 | |
| 20 | 21 | TODO: |
| 21 | -Fully understand priorities,chances are that it just uses a mix between the priority | |
| 22 | number,1+ prom(s) and the color number inside the video ram.Might need a test with the proper hardware; | |
| 23 | -In all the games there are square gaps during gameplay,caused by the imperfect priority system (see above); | |
| 22 | -Back layer pens looks ugly in some circumstances (i.e. suchipi when you win, mjzoomin when coined up), | |
| 23 | static or controlled by something else? | |
| 24 | -daireika: the ranking screen on the original pcb shows some hearts instead of the "0". | |
| 25 | Some investigation indicates that the game reads area "fe100" onwards for these to be filled. | |
| 26 | These are likely to be provided by one of the mcu snippets... | |
| 24 | 27 | -Check if urashima has a "mode 3" for the layer 0 tilemap; |
| 25 | -Complete the dip-switches | |
| 28 | -Complete the dip-switches | |
| 26 | 29 | -There could be timing issues caused by MCU simulation at $80004; |
| 27 | -Fix the sound banking in the first version of the MCU.Protection-related (should be somewhere on the work ram/shared ram) | |
| 28 | -Fix kakumei2 GFX3 rom region,maybe it's a bad dump (half length)? | |
| 30 | -Fix the sound banking, protection-related for the first version of the MCU | |
| 31 | (should be somewhere on the work ram/shared ram) | |
| 29 | 32 | -urashima: might use three/four layers instead of two.It can be checked when you win |
| 30 | 33 | a match in particular circumstances because there's a write in the 94000-9bfff region; |
| 31 | -kakumei: inserting two credits will give an "informaion" with A-E button choices and nothing appears | |
| 32 | to work,protection? | |
| 33 | -Fix the sound banking in urashima/mjzoomin/daireika; | |
| 34 | -Massive clean-ups needed for the MCU snippet programs and the input-ports; | |
| 34 | -Massive clean-ups needed for the MCU snippet programs and the input-ports, also check if | |
| 35 | the programs are actually into the m68k program itself (like hachamf/tdragon/ddealer); | |
| 35 | 36 | |
| 36 | 37 | Notes (1st MCU ver.): |
| 37 | 38 | -$f000e is bogus,maybe the program snippets can modify this value,or the MCU itself can |
| r4470 | r4471 | |
| 62 | 63 | $f06c6-$f06e0: COM tiles |
| 63 | 64 | ---- ---- --xx ----: Defines kind |
| 64 | 65 | ---- ---- ---- xxxx: Defines number |
| 66 | * | |
| 67 | $f0434: priority number | |
| 65 | 68 | |
| 66 | 69 | ============================================================================================ |
| 67 | 70 | daireika 68k irq table vectors |
| r4470 | r4471 | |
| 259 | 262 | |
| 260 | 263 | static UINT8 sc0_prin,sc1_prin,sc2_prin,sc3_prin; |
| 261 | 264 | |
| 262 | static void jalmah_priority_system(void) | |
| 265 | /*************************************************************************************** | |
| 266 | The priority system is a combination between one prom and the priority number. | |
| 267 | The priority number is a pointer to an array of 16 bytes of the prom ( addresses bits 4-7 | |
| 268 | 0x*0-0x*f). These 16 bytes are read and added and every number is directly hooked up | |
| 269 | to the equivalent layer (i.e. read 0 == +1 for the layer 0, read 1 == +1 for the layer 1 | |
| 270 | etc.) | |
| 271 | In the end the final results always are one bit assigned to each priority (i.e. most | |
| 272 | priority = 8, then 4, 2 and finally 1). | |
| 273 | ***************************************************************************************/ | |
| 274 | static void jalmah_priority_system(running_machine *machine) | |
| 263 | 275 | { |
| 264 | // UINT8 *pri_rom = memory_region(Machine, "user1"); | |
| 265 | /* | |
| 266 | Case by case priorities: | |
| 267 | kakumei: title screen = 0/23 (0-1 unused) | |
| 268 | attract mode = 0/0123 (?) | |
| 269 | card table = 0/013 (2 unused) | |
| 270 | gameplay = 0/0123 | |
| 271 | kakumei2:title screen = 0/0123 | |
| 272 | attract mode = 4/013 (2 unused) also 4/0213 | |
| 273 | card table = 9/013 (2 unused) | |
| 274 | character screen = 9/013 (2 unused) | |
| 275 | gameplay = 2/03 (1-2 unused) also 2/013 (2 unused) | |
| 276 | continue screen = 9/013 (2 unused) | |
| 277 | suchipi: title screen = 0/03 (1-2 unused) | |
| 278 | attract mode = 6/103 (2 unused) also 6/1023 | |
| 279 | card table = 1/013 (2 unused) | |
| 280 | character screen = 4/0213 | |
| 281 | victory screen = 6/0123 also 6/1023 | |
| 282 | gameplay = d/0123 | |
| 283 | mjzoomin doesn't seem to use the priority number (0/0123) | |
| 284 | daireika/urashima uses priority number with the protection device | |
| 285 | daireika: gameplay = x/103 (2 unused),might be 6 | |
| 286 | good results: | |
| 287 | 0/0123 | |
| 288 | 4/0213 | |
| 289 | 6/1023 | |
| 290 | */ | |
| 291 | static const UINT16 pri_scheme[0x10] = { 0x0123, 0x0123, 0x0123, 0x0123, 0x0213, 0x0123, 0x1023, 0x0123, | |
| 292 | 0x0123, 0x1203, 0x0123, 0x0123, 0x0123, 0x0123, 0x0123, 0x0123 }; | |
| 293 | // UINT8 prinum[0x10]; | |
| 276 | UINT8 *pri_rom = memory_region(machine, "user1"); | |
| 277 | UINT8 i; | |
| 278 | UINT8 prinum[0x10]; | |
| 294 | 279 | |
| 295 | // for(i=0;i<0x10;i++) | |
| 296 | // prinum[i] = pri_rom[i+pri*0x10]; | |
| 297 | sc0_prin = (pri_scheme[pri] & 0xf000) >> 12; | |
| 298 | sc1_prin = (pri_scheme[pri] & 0x0f00) >> 8; | |
| 299 | sc2_prin = (pri_scheme[pri] & 0x00f0) >> 4; | |
| 300 | sc3_prin = (pri_scheme[pri] & 0x000f) >> 0; | |
| 280 | sc0_prin = 0; | |
| 281 | sc1_prin = 0; | |
| 282 | sc2_prin = 0; | |
| 283 | sc3_prin = 0; | |
| 301 | 284 | |
| 302 | // popmessage("%04x",pri); | |
| 303 | /* | |
| 304 | popmessage("%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x %02x" | |
| 305 | ,prinum[0x00],prinum[0x01],prinum[0x02],prinum[0x03] | |
| 306 | ,prinum[0x04],prinum[0x05],prinum[0x06],prinum[0x07] | |
| 307 | ,prinum[0x08],prinum[0x09],prinum[0x0a],prinum[0x0b] | |
| 308 | ,prinum[0x0c],prinum[0x0d],prinum[0x0e],prinum[0x0f],pri); | |
| 309 | */ | |
| 285 | for(i=0;i<0x10;i++) | |
| 286 | { | |
| 287 | prinum[i] = pri_rom[i+pri*0x10]; | |
| 288 | ||
| 289 | if(prinum[i] == 0) { sc0_prin++; } | |
| 290 | if(prinum[i] == 1) { sc1_prin++; } | |
| 291 | if(prinum[i] == 2) { sc2_prin++; } | |
| 292 | if(prinum[i] == 3) { sc3_prin++; } | |
| 293 | } | |
| 294 | ||
| 295 | //popmessage("%02x %02x %02x %02x",sc0_prin,sc1_prin,sc2_prin,sc3_prin); | |
| 310 | 296 | } |
| 311 | 297 | |
| 312 | static void draw_sc0_layer(bitmap_t *bitmap, const rectangle *cliprect | |
| 298 | static void draw_sc0_layer(bitmap_t *bitmap, const rectangle *cliprect | |
| 313 | 299 | { |
| 314 | 300 | switch(jm_vregs[0] & 3) |
| 315 | 301 | { |
| 316 | case 0: tilemap_draw(bitmap,cliprect,sc0_tilemap_0,(trans > 0) ? 0 : TILEMAP_DRAW_OPAQUE,0); break; | |
| 317 | case 1: tilemap_draw(bitmap,cliprect,sc0_tilemap_1,(trans > 0) ? 0 : TILEMAP_DRAW_OPAQUE,0); break; | |
| 318 | case 2: tilemap_draw(bitmap,cliprect,sc0_tilemap_2,(trans > 0) ? 0 : TILEMAP_DRAW_OPAQUE,0); break; | |
| 319 | case 3: tilemap_draw(bitmap,cliprect,sc0_tilemap_3,(trans > 0) ? 0 : TILEMAP_DRAW_OPAQUE,0); break; | |
| 302 | case 0: tilemap_draw(bitmap,cliprect,sc0_tilemap_0,0,0); break; | |
| 303 | case 1: tilemap_draw(bitmap,cliprect,sc0_tilemap_1,0,0); break; | |
| 304 | case 2: tilemap_draw(bitmap,cliprect,sc0_tilemap_2,0,0); break; | |
| 305 | case 3: tilemap_draw(bitmap,cliprect,sc0_tilemap_3,0,0); break; | |
| 320 | 306 | } |
| 321 | 307 | } |
| 322 | 308 | |
| 323 | static void draw_sc1_layer(bitmap_t *bitmap, const rectangle *cliprect | |
| 309 | static void draw_sc1_layer(bitmap_t *bitmap, const rectangle *cliprect | |
| 324 | 310 | { |
| 325 | 311 | switch(jm_vregs[1] & 3) |
| 326 | 312 | { |
| 327 | case 0: tilemap_draw(bitmap,cliprect,sc1_tilemap_0,(trans > 0) ? 0 : TILEMAP_DRAW_OPAQUE,0); break; | |
| 328 | case 1: tilemap_draw(bitmap,cliprect,sc1_tilemap_1,(trans > 0) ? 0 : TILEMAP_DRAW_OPAQUE,0); break; | |
| 329 | case 2: tilemap_draw(bitmap,cliprect,sc1_tilemap_2,(trans > 0) ? 0 : TILEMAP_DRAW_OPAQUE,0); break; | |
| 330 | case 3: tilemap_draw(bitmap,cliprect,sc1_tilemap_3,(trans > 0) ? 0 : TILEMAP_DRAW_OPAQUE,0); break; | |
| 313 | case 0: tilemap_draw(bitmap,cliprect,sc1_tilemap_0,0,0); break; | |
| 314 | case 1: tilemap_draw(bitmap,cliprect,sc1_tilemap_1,0,0); break; | |
| 315 | case 2: tilemap_draw(bitmap,cliprect,sc1_tilemap_2,0,0); break; | |
| 316 | case 3: tilemap_draw(bitmap,cliprect,sc1_tilemap_3,0,0); break; | |
| 331 | 317 | } |
| 332 | 318 | } |
| 333 | 319 | |
| 334 | static void draw_sc2_layer(bitmap_t *bitmap, const rectangle *cliprect | |
| 320 | static void draw_sc2_layer(bitmap_t *bitmap, const rectangle *cliprect | |
| 335 | 321 | { |
| 336 | 322 | switch(jm_vregs[2] & 3) |
| 337 | 323 | { |
| 338 | case 0: tilemap_draw(bitmap,cliprect,sc2_tilemap_0,(trans > 0) ? 0 : TILEMAP_DRAW_OPAQUE,0); break; | |
| 339 | case 1: tilemap_draw(bitmap,cliprect,sc2_tilemap_1,(trans > 0) ? 0 : TILEMAP_DRAW_OPAQUE,0); break; | |
| 340 | case 2: tilemap_draw(bitmap,cliprect,sc2_tilemap_2,(trans > 0) ? 0 : TILEMAP_DRAW_OPAQUE,0); break; | |
| 341 | case 3: tilemap_draw(bitmap,cliprect,sc2_tilemap_3,(trans > 0) ? 0 : TILEMAP_DRAW_OPAQUE,0); break; | |
| 324 | case 0: tilemap_draw(bitmap,cliprect,sc2_tilemap_0,0,0); break; | |
| 325 | case 1: tilemap_draw(bitmap,cliprect,sc2_tilemap_1,0,0); break; | |
| 326 | case 2: tilemap_draw(bitmap,cliprect,sc2_tilemap_2,0,0); break; | |
| 327 | case 3: tilemap_draw(bitmap,cliprect,sc2_tilemap_3,0,0); break; | |
| 342 | 328 | } |
| 343 | 329 | } |
| 344 | 330 | |
| 345 | static void draw_sc3_layer(bitmap_t *bitmap, const rectangle *cliprect | |
| 331 | static void draw_sc3_layer(bitmap_t *bitmap, const rectangle *cliprect | |
| 346 | 332 | { |
| 347 | 333 | switch(jm_vregs[3] & 3) |
| 348 | 334 | { |
| 349 | 335 | case 0: |
| 350 | case 1: tilemap_draw(bitmap,cliprect,sc3_tilemap_0,(trans > 0) ? 0 : TILEMAP_DRAW_OPAQUE,0); break; | |
| 351 | case 2: tilemap_draw(bitmap,cliprect,sc3_tilemap_2,(trans > 0) ? 0 : TILEMAP_DRAW_OPAQUE,0); break; | |
| 352 | case 3: tilemap_draw(bitmap,cliprect,sc3_tilemap_3,(trans > 0) ? 0 : TILEMAP_DRAW_OPAQUE,0); break; | |
| 336 | case 1: tilemap_draw(bitmap,cliprect,sc3_tilemap_0,0,0); break; | |
| 337 | case 2: tilemap_draw(bitmap,cliprect,sc3_tilemap_2,0,0); break; | |
| 338 | case 3: tilemap_draw(bitmap,cliprect,sc3_tilemap_3,0,0); break; | |
| 353 | 339 | } |
| 354 | 340 | } |
| 355 | 341 | |
| 356 | 342 | static VIDEO_UPDATE( jalmah ) |
| 357 | 343 | { |
| 358 | 344 | static UINT8 cur_prin; |
| 359 | jalmah_priority_system(); | |
| 345 | jalmah_priority_system(screen->machine); | |
| 360 | 346 | |
| 361 | 347 | tilemap_set_scrollx( sc0_tilemap_0, 0, jm_scrollram[0] & 0xfff); |
| 362 | 348 | tilemap_set_scrollx( sc0_tilemap_1, 0, jm_scrollram[0] & 0x7ff); |
| r4470 | r4471 | |
| 399 | 385 | tilemap_set_scrolly( sc3_tilemap_2, 0, jm_scrollram[7] & 0x1ff); |
| 400 | 386 | tilemap_set_scrolly( sc3_tilemap_3, 0, jm_scrollram[7] & 0x3ff); |
| 401 | 387 | |
| 402 | bitmap_fill(bitmap, cliprect, screen->machine->pens[0x | |
| 388 | bitmap_fill(bitmap, cliprect, screen->machine->pens[0x | |
| 403 | 389 | |
| 404 | for(cur_prin= | |
| 390 | for(cur_prin=1;cur_prin<=0x8;cur_prin<<=1) | |
| 405 | 391 | { |
| 406 | if(cur_prin==sc0_prin) { draw_sc0_layer(bitmap,cliprect,sc0_prin); } | |
| 407 | if(cur_prin==sc1_prin) { draw_sc1_layer(bitmap,cliprect,sc1_prin); } | |
| 408 | if(cur_prin==sc2_prin) { draw_sc2_layer(bitmap,cliprect,sc2_prin); } | |
| 409 | if(cur_prin==sc3_prin) { draw_sc3_layer(bitmap,cliprect,sc3_prin); } | |
| 392 | if(cur_prin==sc0_prin) { draw_sc0_layer(bitmap,cliprect); } | |
| 393 | if(cur_prin==sc1_prin) { draw_sc1_layer(bitmap,cliprect); } | |
| 394 | if(cur_prin==sc2_prin) { draw_sc2_layer(bitmap,cliprect); } | |
| 395 | if(cur_prin==sc3_prin) { draw_sc3_layer(bitmap,cliprect); } | |
| 410 | 396 | } |
| 411 | 397 | |
| 412 | 398 | return 0; |
| r4470 | r4471 | |
| 505 | 491 | { |
| 506 | 492 | /*These 4 are just video regs,see mjzoomin test*/ |
| 507 | 493 | /* |
| 508 | ---x ---- Always on,8x8 tiles switch? | |
| 494 | ---x ---- Always on with layer 3, 8x8 tiles switch? | |
| 509 | 495 | ---- --xx RANGE registers |
| 510 | 496 | */ |
| 511 | 497 | case (0x24/2): jm_vregs[0] = data; break; |
| r4470 | r4471 | |
| 905 | 891 | AM_RANGE(0x080010, 0x080011) AM_WRITE(jalmah_flip_screen_w) |
| 906 | 892 | // 0x080012, 0x080013 MCU write related,same for each game |
| 907 | 893 | // 0x080014, 0x080015 MCU write related,same for each game |
| 908 | /**/AM_RANGE(0x080016, 0x080017) AM_R | |
| 894 | /**/AM_RANGE(0x080016, 0x080017) AM_R | |
| 909 | 895 | AM_RANGE(0x080018, 0x080019) AM_WRITE(jalmah_okibank_w) |
| 910 | 896 | AM_RANGE(0x08001a, 0x08001b) AM_WRITE(jalmah_okirom_w) |
| 911 | /**/AM_RANGE(0x080020, 0x08003f) AM_R | |
| 897 | /**/AM_RANGE(0x080020, 0x08003f) AM_R | |
| 912 | 898 | AM_RANGE(0x080040, 0x080041) AM_DEVREADWRITE8("oki", okim6295_r, okim6295_w, 0x00ff) |
| 913 | 899 | // 0x084000, 0x084001 ? |
| 914 | 900 | AM_RANGE(0x088000, 0x0887ff) AM_RAM_WRITE(paletteram16_RRRRGGGGBBBBRGBx_word_w) AM_BASE(&paletteram16) /* Palette RAM */ |
| r4470 | r4471 | |
| 1458 | 1444 | ROM_LOAD( "mj-8956.13", 0x00000, 0x20000, CRC(afe93cf4) SHA1(1973dc5821c6df68e20f8a84b5c9ae281dd3f85f) ) |
| 1459 | 1445 | |
| 1460 | 1446 | ROM_REGION( 0x40000, "gfx3", 0 ) /* BG2 */ |
| 1461 | ROM_LOAD( "mj-8956.12", 0x00000, 0x20000, BAD_DUMP CRC(43f7853d) SHA1(54fb523b27e79aa295900c478f09cc080fea0adf) ) | |
| 1462 | /*0x20000-0x40000 used,above rom is likely to be bad (half length) */ | |
| 1463 | ROM_COPY( "gfx3", 0x00000, 0x20000, 0x08000 )/*mj-8956.12*/ | |
| 1464 | ROM_COPY( "gfx3", 0x08000, 0x28000, 0x08000 )/*mj-8956.12*/ | |
| 1465 | ROM_COPY( "gfx3", 0x10000, 0x30000, 0x08000 )/*mj-8956.12*/ | |
| 1466 | ROM_COPY( "gfx3", 0x18000, 0x38000, 0x08000 )/*mj-8956.12*/ | |
| 1447 | ROM_LOAD( "mj-8956.12", 0x00000, 0x40000, CRC(4a088f69) SHA1(468c446d1f345dfd628cdd66ca71cf82e02abe6f) ) | |
| 1467 | 1448 | |
| 1468 | 1449 | ROM_REGION( 0x80000, "gfx4", 0 ) /* BG3 */ |
| 1469 | 1450 | ROM_LOAD( "92000-02.10", 0x00000, 0x80000, CRC(338fa9b2) SHA1(05ba4b3c44249cf92be238bf53d6345dc49b0881) ) |
| r4470 | r4471 | |
| 1549 | 1530 | ROM_REGION( 0x220, "user1", 0 ) /* Proms */ |
| 1550 | 1531 | ROM_LOAD( "mj15.bpr", 0x000, 0x100, CRC(ebac41f9) SHA1(9d1629d977849663392cbf03a3ddf76665f88608) ) |
| 1551 | 1532 | ROM_LOAD( "mj16.bpr", 0x100, 0x100, CRC(8d5dc1f6) SHA1(9f723e7cd44f8c09ec30b04725644346484ec753) ) |
| 1552 | ROM_LOAD( " | |
| 1533 | ROM_LOAD( " | |
| 1553 | 1534 | ROM_END |
| 1554 | 1535 | |
| 1555 | 1536 | |
| r4470 | r4471 | |
| 1806 | 1787 | static WRITE16_HANDLER( daireika_mcu_w ) |
| 1807 | 1788 | { |
| 1808 | 1789 | static UINT16 i; |
| 1790 | ||
| 1809 | 1791 | if(ACCESSING_BITS_0_7 && data) |
| 1810 | 1792 | { |
| 1811 | 1793 | /******************************************************* |
| r4470 | r4471 | |
| 1884 | 1866 | jm_mcu_code[0x8806/2] = 0x323c; |
| 1885 | 1867 | jm_mcu_code[0x8808/2] = 0x1fff; //move.w #$1fff,D1 |
| 1886 | 1868 | jm_mcu_code[0x880a/2] = 0x3cbc; |
| 1887 | jm_mcu_code[0x880c/2] = 0x00 | |
| 1869 | jm_mcu_code[0x880c/2] = 0x00ff; //move.w #$0000,(A6) | |
| 1888 | 1870 | jm_mcu_code[0x880e/2] = 0xdcfc; |
| 1889 | 1871 | jm_mcu_code[0x8810/2] = 0x0002; //adda.w #$0002,A6 |
| 1890 | 1872 | jm_mcu_code[0x8812/2] = 0x51c9; |
| r4470 | r4471 | |
| 1907 | 1889 | jm_mcu_code[0x8886/2] = 0x323c; |
| 1908 | 1890 | jm_mcu_code[0x8888/2] = 0x1fff; //move.w #$1fff,D1 |
| 1909 | 1891 | jm_mcu_code[0x888a/2] = 0x3cbc; |
| 1910 | jm_mcu_code[0x888c/2] = 0x00 | |
| 1892 | jm_mcu_code[0x888c/2] = 0x00ff; //move.w #$0000,(A6) | |
| 1911 | 1893 | jm_mcu_code[0x888e/2] = 0xdcfc; |
| 1912 | 1894 | jm_mcu_code[0x8890/2] = 0x0002; //adda.w #$0002,A6 |
| 1913 | 1895 | jm_mcu_code[0x8892/2] = 0x51c9; |
| r4470 | r4471 | |
| 2280 | 2262 | /*Second version of the MCU*/ |
| 2281 | 2263 | GAME( 1990, kakumei, 0, jalmah, jalmah2, kakumei, ROT0, "Jaleco", "Mahjong Kakumei", GAME_IMPERFECT_GRAPHICS ) |
| 2282 | 2264 | GAME( 1992, kakumei2, 0, jalmah, jalmah2a, kakumei2, ROT0, "Jaleco", "Mahjong Kakumei 2 - Princess League", GAME_IMPERFECT_GRAPHICS ) |
| 2283 | GAME( 1993, suchipi, 0, jalmah, jalmah2a, suchipi, ROT0, "Jaleco", "Idol Janshi Su | |
| 2265 | GAME( 1993, suchipi, 0, jalmah, jalmah2a, suchipi, ROT0, "Jaleco", "Idol Janshi Suc |
| r4470 | r4471 | |
|---|---|---|
| 616 | 616 | AM_RANGE(0x800000, 0x80ffff) AM_READ(namcos2_sprite_ram_r) AM_WRITE(namcos2_sprite_ram_w) AM_BASE(&namcos2_sprite_ram) |
| 617 | 617 | AM_RANGE(0x840000, 0x840001) AM_READ(namcos2_gfx_ctrl_r) AM_WRITE(namcos2_gfx_ctrl_w) |
| 618 | 618 | AM_RANGE(0x880000, 0x89ffff) AM_READ(namco_road16_r) AM_WRITE(namco_road16_w) |
| 619 | AM_RANGE(0x8c0000, 0x8c0001) AM_WRITE | |
| 619 | AM_RANGE(0x8c0000, 0x8c0001) AM_WRITE | |
| 620 | 620 | ADDRESS_MAP_END |
| 621 | 621 | |
| 622 | 622 | static ADDRESS_MAP_START( master_finallap_am, ADDRESS_SPACE_PROGRAM, 16 ) |
| r4470 | r4471 | |
| 637 | 637 | static ADDRESS_MAP_START( common_sgunner_am, ADDRESS_SPACE_PROGRAM, 16 ) |
| 638 | 638 | NAMCOS2_68K_DEFAULT_CPU_BOARD_AM |
| 639 | 639 | AM_RANGE(0x800000, 0x8141ff) AM_READ(namco_obj16_r) AM_WRITE(namco_obj16_w) |
| 640 | AM_RANGE(0x818000, 0x818001) AM_WRITE | |
| 640 | AM_RANGE(0x818000, 0x818001) AM_WRITE | |
| 641 | 641 | AM_RANGE(0xa00000, 0xa0000f) AM_READ(namcos2_68k_key_r) AM_WRITE(namcos2_68k_key_w) |
| 642 | 642 | ADDRESS_MAP_END |
| 643 | 643 | |
| r4470 | r4471 | |
| 682 | 682 | static ADDRESS_MAP_START( common_luckywld_am, ADDRESS_SPACE_PROGRAM, 16 ) |
| 683 | 683 | NAMCOS2_68K_DEFAULT_CPU_BOARD_AM |
| 684 | 684 | AM_RANGE(0x800000, 0x8141ff) AM_READ(namco_obj16_r) AM_WRITE(namco_obj16_w) |
| 685 | AM_RANGE(0x818000, 0x818001) AM_READ(SMH_RAM) AM_WRITE(SMH_NOP) /* enable? */ | |
| 686 | AM_RANGE(0x81a000, 0x81a001) AM_WRITE(SMH_NOP) /* enable? */ | |
| 685 | AM_RANGE(0x818000, 0x818001) AM_READ(SMH_RAM) AM_WRITENOP /* enable? */ | |
| 686 | AM_RANGE(0x81a000, 0x81a001) AM_WRITENOP /* enable? */ | |
| 687 | 687 | AM_RANGE(0x840000, 0x840001) AM_READ(SMH_RAM) |
| 688 | 688 | AM_RANGE(0x900000, 0x900007) AM_READ(namco_spritepos16_r) AM_WRITE(namco_spritepos16_w) |
| 689 | 689 | AM_RANGE(0xa00000, 0xa1ffff) AM_READ(namco_road16_r) AM_WRITE(namco_road16_w) |
| r4470 | r4471 | |
| 726 | 726 | AM_RANGE(0x7000, 0x77ff) AM_WRITE(namcos2_dpram_byte_w) AM_BASE(&namcos2_dpram) |
| 727 | 727 | AM_RANGE(0x7800, 0x7fff) AM_WRITE(namcos2_dpram_byte_w) /* mirror */ |
| 728 | 728 | AM_RANGE(0x8000, 0x9fff) AM_WRITE(SMH_RAM) |
| 729 | AM_RANGE(0xa000, 0xbfff) AM_WRITE | |
| 729 | AM_RANGE(0xa000, 0xbfff) AM_WRITE | |
| 730 | 730 | AM_RANGE(0xc000, 0xc001) AM_WRITE(namcos2_sound_bankselect_w) |
| 731 | AM_RANGE(0xd001, 0xd001) AM_WRITE(SMH_NOP) /* Watchdog */ | |
| 732 | AM_RANGE(0xe000, 0xe000) AM_WRITE(SMH_NOP) | |
| 731 | AM_RANGE(0xd001, 0xd001) AM_WRITENOP /* Watchdog */ | |
| 732 | AM_RANGE(0xe000, 0xe000) AM_WRITENOP | |
| 733 | 733 | AM_RANGE(0xc000, 0xffff) AM_WRITE(SMH_ROM) |
| 734 | 734 | ADDRESS_MAP_END |
| 735 | 735 | |
| r4470 | r4471 | |
| 739 | 739 | |
| 740 | 740 | static ADDRESS_MAP_START( readmem_mcu, ADDRESS_SPACE_PROGRAM, 8 ) |
| 741 | 741 | /* input ports and dips are mapped here */ |
| 742 | AM_RANGE(0x0000, 0x0000) AM_READ | |
| 742 | AM_RANGE(0x0000, 0x0000) AM_READ | |
| 743 | 743 | AM_RANGE(0x0001, 0x0001) AM_READ(namcos2_input_port_0_r) |
| 744 | 744 | AM_RANGE(0x0002, 0x0002) AM_READ_PORT("MCUC") |
| 745 | 745 | AM_RANGE(0x0003, 0x0003) AM_READ(namcos2_mcu_port_d_r) |
| r4470 | r4471 | |
| 755 | 755 | AM_RANGE(0x3002, 0x3002) AM_READ_PORT("MCUDI2") |
| 756 | 756 | AM_RANGE(0x3003, 0x3003) AM_READ_PORT("MCUDI3") |
| 757 | 757 | AM_RANGE(0x5000, 0x57ff) AM_READ(namcos2_dpram_byte_r) |
| 758 | AM_RANGE(0x6000, 0x6fff) AM_READ | |
| 758 | AM_RANGE(0x6000, 0x6fff) AM_READ | |
| 759 | 759 | AM_RANGE(0x8000, 0xffff) AM_READ(SMH_ROM) |
| 760 | 760 | ADDRESS_MAP_END |
| 761 | 761 |
| r4470 | r4471 | |
|---|---|---|
| 367 | 367 | } |
| 368 | 368 | |
| 369 | 369 | |
| 370 | static ADDRESS_MAP_START( readmem, ADDRESS_SPACE_PROGRAM, 16 ) | |
| 371 | AM_RANGE(0x000000, 0x0fffff) AM_READ(SMH_ROM) | |
| 372 | AM_RANGE(0x200000, 0x20ffff) AM_READ(SMH_RAM) // work ram | |
| 373 | AM_RANGE(0x210000, 0x210001) AM_READ(SMH_NOP) // single byte overflow on stack defined as 0x210000 | |
| 374 | AM_RANGE(0x300000, 0x3013ff) AM_READ(SMH_RAM) // bg0 ram | |
| 375 | AM_RANGE(0x400000, 0x4013ff) AM_READ(SMH_RAM) // bg1 ram | |
| 376 | AM_RANGE(0x500000, 0x5013ff) AM_READ(SMH_RAM) // bg2 ram | |
| 377 | AM_RANGE(0x700000, 0x703fff) AM_READ(SMH_RAM) // fix ram (all these names from test screen) | |
| 378 | AM_RANGE(0x800000, 0x80ffff) AM_READ(SMH_RAM) // obj ram | |
| 379 | AM_RANGE(0x880000, 0x88000b) AM_READ(unk880000_r) | |
| 380 | AM_RANGE(0x900000, 0x907fff) AM_READ(SMH_RAM) // obj pal | |
| 381 | AM_RANGE(0x980000, 0x9807ff) AM_READ(SMH_RAM) // bg pal | |
| 382 | AM_RANGE(0x980800, 0x980fff) AM_READ(SMH_RAM) // fix pal | |
| 383 | AM_RANGE(0xb80000, 0xb80001) AM_READ(prot_status_r) | |
| 384 | AM_RANGE(0xd00000, 0xd00001) AM_READ_PORT("P1") | |
| 385 | AM_RANGE(0xd00002, 0xd00003) AM_READ_PORT("P2") | |
| 386 | AM_RANGE(0xd80000, 0xd80001) AM_READ(eeprom_r) | |
| 387 | AM_RANGE(0xf00000, 0xf00001) AM_READ(sound_r) | |
| 388 | AM_RANGE(0xf80000, 0xf80001) AM_READ(prot_data_r) | |
| 389 | ADDRESS_MAP_END | |
| 390 | ||
| 391 | 370 | static WRITE16_HANDLER( eeprom_w ) |
| 392 | 371 | { |
| 393 | 372 | if ( ACCESSING_BITS_8_15 ) |
| r4470 | r4471 | |
| 430 | 409 | } |
| 431 | 410 | |
| 432 | 411 | |
| 433 | static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 16 ) | |
| 434 | AM_RANGE(0x000000, 0x0fffff) AM_WRITE(SMH_ROM) | |
| 435 | AM_RANGE(0x200000, 0x20ffff) AM_WRITE(SMH_RAM) // work ram | |
| 436 | AM_RANGE(0x300000, 0x300fff) AM_WRITE(bg0_tilemap_w) AM_BASE(&bg0tilemap_ram) // bg0 ram | |
| 437 | AM_RANGE(0x301000, 0x3013ff) AM_WRITE(bg0_tilemap_lineram_w) AM_BASE(&bg0tilemap_lineram)// bg0 linescroll? (guess) | |
| 412 | static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 16 ) | |
| 413 | AM_RANGE(0x000000, 0x0fffff) AM_ROM | |
| 414 | AM_RANGE(0x200000, 0x20ffff) AM_RAM // work ram | |
| 415 | AM_RANGE(0x210000, 0x210001) AM_READNOP // single byte overflow on stack defined as 0x210000 | |
| 416 | AM_RANGE(0x300000, 0x300fff) AM_RAM_WRITE(bg0_tilemap_w) AM_BASE(&bg0tilemap_ram) // bg0 ram | |
| 417 | AM_RANGE(0x301000, 0x3013ff) AM_RAM_WRITE(bg0_tilemap_lineram_w) AM_BASE(&bg0tilemap_lineram)// bg0 linescroll? (guess) | |
| 438 | 418 | |
| 439 | AM_RANGE(0x400000, 0x400fff) AM_WRITE(bg1_tilemap_w) AM_BASE(&bg1tilemap_ram) // bg1 ram | |
| 440 | AM_RANGE(0x401000, 0x4013ff) AM_WRITE(bg1_tilemap_lineram_w) AM_BASE(&bg1tilemap_lineram)// bg1 linescroll? (guess) | |
| 419 | AM_RANGE(0x400000, 0x400fff) AM_RAM_WRITE(bg1_tilemap_w) AM_BASE(&bg1tilemap_ram) // bg1 ram | |
| 420 | AM_RANGE(0x401000, 0x4013ff) AM_RAM_WRITE(bg1_tilemap_lineram_w) AM_BASE(&bg1tilemap_lineram)// bg1 linescroll? (guess) | |
| 441 | 421 | |
| 442 | AM_RANGE(0x500000, 0x500fff) AM_WRITE(bg2_tilemap_w) AM_BASE(&bg2tilemap_ram) // bg2 ram | |
| 443 | AM_RANGE(0x501000, 0x5013ff) AM_WRITE(bg2_tilemap_lineram_w) AM_BASE(&bg2tilemap_lineram) // bg2 linescroll? (guess) | |
| 422 | AM_RANGE(0x500000, 0x500fff) AM_RAM_WRITE(bg2_tilemap_w) AM_BASE(&bg2tilemap_ram) // bg2 ram | |
| 423 | AM_RANGE(0x501000, 0x5013ff) AM_RAM_WRITE(bg2_tilemap_lineram_w) AM_BASE(&bg2tilemap_lineram) // bg2 linescroll? (guess) | |
| 444 | 424 | |
| 445 | AM_RANGE(0x700000, 0x703fff) AM_WRITE(fg_tilemap_w) AM_BASE(&fgtilemap_ram) // fix ram | |
| 446 | AM_RANGE(0x800000, 0x80ffff) AM_WRITE(SMH_RAM) AM_BASE(&tecmosys_spriteram) // obj ram | |
| 447 | AM_RANGE(0x900000, 0x907fff) AM_WRITE(paletteram16_xGGGGGRRRRRBBBBB_word_w) AM_BASE(&paletteram16) // AM_WRITE(SMH_RAM) // obj pal | |
| 425 | AM_RANGE(0x700000, 0x703fff) AM_RAM_WRITE(fg_tilemap_w) AM_BASE(&fgtilemap_ram) // fix ram | |
| 426 | AM_RANGE(0x800000, 0x80ffff) AM_RAM AM_BASE(&tecmosys_spriteram) // obj ram | |
| 427 | AM_RANGE(0x880000, 0x88000b) AM_READ(unk880000_r) | |
| 428 | AM_RANGE(0x900000, 0x907fff) AM_RAM_WRITE(paletteram16_xGGGGGRRRRRBBBBB_word_w) AM_BASE(&paletteram16) // AM_WRITE(SMH_RAM) // obj pal | |
| 448 | 429 | |
| 449 | 430 | //AM_RANGE(0x980000, 0x9807ff) AM_WRITE(SMH_RAM) // bg pal |
| 450 | 431 | //AM_RANGE(0x980800, 0x980fff) AM_WRITE(paletteram16_xGGGGGRRRRRBBBBB_word_w) AM_BASE(&paletteram16) // fix pal |
| 451 | 432 | // the two above are as tested by the game code, I've only rolled them into one below to get colours to show right. |
| 452 | AM_RANGE(0x980000, 0x980fff) AM_WRITE(tilemap_paletteram16_xGGGGGRRRRRBBBBB_word_w) AM_BASE(&tilemap_paletteram16) | |
| 433 | AM_RANGE(0x980000, 0x980fff) AM_RAM_WRITE(tilemap_paletteram16_xGGGGGRRRRRBBBBB_word_w) AM_BASE(&tilemap_paletteram16) | |
| 453 | 434 | |
| 454 | 435 | AM_RANGE(0x880000, 0x88002f) AM_WRITE( unk880000_w ) AM_BASE(&tecmosys_880000regs) // 10 byte dta@88000c, 880022=watchdog? |
| 455 | 436 | AM_RANGE(0xa00000, 0xa00001) AM_WRITE(eeprom_w ) |
| 456 | 437 | AM_RANGE(0xa80000, 0xa80005) AM_WRITE(SMH_RAM ) AM_BASE(&tecmosys_a80000regs) // a80000-3 scroll? a80004 inverted ? 3 : 0 |
| 457 | 438 | AM_RANGE(0xb00000, 0xb00005) AM_WRITE(SMH_RAM ) AM_BASE(&tecmosys_b00000regs) // b00000-3 scrool?, b00004 inverted ? 3 : 0 |
| 458 | AM_RANGE(0xb80000, 0xb80001) AM_WRITE(prot_status_w) | |
| 439 | AM_RANGE(0xb80000, 0xb80001) AM_READWRITE(prot_status_r, prot_status_w) | |
| 459 | 440 | AM_RANGE(0xc00000, 0xc00005) AM_WRITE(SMH_RAM ) AM_BASE(&tecmosys_c00000regs) // c00000-3 scroll? c00004 inverted ? 13 : 10 |
| 460 | 441 | AM_RANGE(0xc80000, 0xc80005) AM_WRITE(SMH_RAM ) AM_BASE(&tecmosys_c80000regs) // c80000-3 scrool? c80004 inverted ? 3 : 0 |
| 442 | AM_RANGE(0xd00000, 0xd00001) AM_READ_PORT("P1") | |
| 443 | AM_RANGE(0xd00002, 0xd00003) AM_READ_PORT("P2") | |
| 444 | AM_RANGE(0xd80000, 0xd80001) AM_READ(eeprom_r) | |
| 461 | 445 | AM_RANGE(0xe00000, 0xe00001) AM_WRITE( sound_w ) |
| 462 | 446 | AM_RANGE(0xe80000, 0xe80001) AM_WRITE(prot_data_w) |
| 447 | AM_RANGE(0xf00000, 0xf00001) AM_READ(sound_r) | |
| 448 | AM_RANGE(0xf80000, 0xf80001) AM_READ(prot_data_r) | |
| 463 | 449 | ADDRESS_MAP_END |
| 464 | 450 | |
| 465 | 451 | |
| r4470 | r4471 | |
| 553 | 539 | memcpy( region+0x20000, region+0x80000 + upperbank * 0x20000, 0x20000 ); |
| 554 | 540 | } |
| 555 | 541 | |
| 556 | static ADDRESS_MAP_START( sound_readmem, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 557 | AM_RANGE(0x0000, 0x7fff) AM_READ(SMH_ROM) | |
| 558 | AM_RANGE(0x8000, 0xbfff) AM_READ(SMH_BANK1) | |
| 559 | AM_RANGE(0xe000, 0xf7ff) AM_READ(SMH_RAM) | |
| 542 | static ADDRESS_MAP_START( sound_map, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 543 | AM_RANGE(0x0000, 0x7fff) AM_ROM | |
| 544 | AM_RANGE(0x8000, 0xbfff) AM_ROMBANK(1) | |
| 545 | AM_RANGE(0xe000, 0xf7ff) AM_RAM | |
| 560 | 546 | ADDRESS_MAP_END |
| 561 | 547 | |
| 562 | static ADDRESS_MAP_START( sound_writemem, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 563 | AM_RANGE(0x0000, 0xbfff) AM_WRITE(SMH_ROM) | |
| 564 | AM_RANGE(0xe000, 0xf7ff) AM_WRITE(SMH_RAM) | |
| 565 | ADDRESS_MAP_END | |
| 566 | ||
| 567 | 548 | static ADDRESS_MAP_START( io_map, ADDRESS_SPACE_IO, 8 ) |
| 568 | 549 | ADDRESS_MAP_GLOBAL_MASK(0xff) |
| 569 | 550 | AM_RANGE(0x00, 0x03) AM_DEVREADWRITE("ymf", ymf262_r, ymf262_w) |
| r4470 | r4471 | |
| 899 | 880 | |
| 900 | 881 | static MACHINE_DRIVER_START( deroon ) |
| 901 | 882 | MDRV_CPU_ADD("maincpu", M68000, 16000000) |
| 902 | MDRV_CPU_PROGRAM_MAP( | |
| 883 | MDRV_CPU_PROGRAM_MAP( | |
| 903 | 884 | MDRV_CPU_VBLANK_INT("screen", irq1_line_hold) |
| 904 | 885 | MDRV_WATCHDOG_VBLANK_INIT(400) // guess |
| 905 | 886 | |
| 906 | 887 | MDRV_CPU_ADD("audiocpu", Z80, 16000000/2 ) /* 8 MHz ??? */ |
| 907 | MDRV_CPU_PROGRAM_MAP(sound_ | |
| 888 | MDRV_CPU_PROGRAM_MAP(sound_ | |
| 908 | 889 | MDRV_CPU_IO_MAP(io_map,0) |
| 909 | 890 | |
| 910 | 891 | MDRV_GFXDECODE(tecmosys) |
| r4470 | r4471 | |
|---|---|---|
| 182 | 182 | AM_RANGE(0xc000, 0xc5ff) AM_READ(exzisus_objectram_0_r) |
| 183 | 183 | AM_RANGE(0xc600, 0xdfff) AM_READ(exzisus_videoram_0_r) |
| 184 | 184 | AM_RANGE(0xe000, 0xefff) AM_READ(SMH_RAM) |
| 185 | AM_RANGE(0xf000, 0xf000) AM_READ | |
| 185 | AM_RANGE(0xf000, 0xf000) AM_READ | |
| 186 | 186 | AM_RANGE(0xf001, 0xf001) AM_READ(taitosound_comm_r) |
| 187 | 187 | AM_RANGE(0xf400, 0xf400) AM_READ_PORT("P1") |
| 188 | 188 | AM_RANGE(0xf401, 0xf401) AM_READ_PORT("P2") |
| r4470 | r4471 | |
| 201 | 201 | AM_RANGE(0xf001, 0xf001) AM_WRITE(taitosound_comm_w) |
| 202 | 202 | AM_RANGE(0xf400, 0xf400) AM_WRITE(exzisus_cpub_bankswitch_w) |
| 203 | 203 | AM_RANGE(0xf402, 0xf402) AM_WRITE(exzisus_coincounter_w) |
| 204 | AM_RANGE(0xf404, 0xf404) AM_WRITE | |
| 204 | AM_RANGE(0xf404, 0xf404) AM_WRITE | |
| 205 | 205 | AM_RANGE(0xf800, 0xffff) AM_WRITE(exzisus_sharedram_ab_w) |
| 206 | 206 | ADDRESS_MAP_END |
| 207 | 207 | |
| r4470 | r4471 | |
| 225 | 225 | AM_RANGE(0x0000, 0x7fff) AM_READ(SMH_ROM) |
| 226 | 226 | AM_RANGE(0x8000, 0x8fff) AM_READ(SMH_RAM) |
| 227 | 227 | AM_RANGE(0x9000, 0x9001) AM_DEVREAD("ym", ym2151_r) |
| 228 | AM_RANGE(0xa000, 0xa000) AM_READ | |
| 228 | AM_RANGE(0xa000, 0xa000) AM_READ | |
| 229 | 229 | AM_RANGE(0xa001, 0xa001) AM_READ(taitosound_slave_comm_r) |
| 230 | 230 | ADDRESS_MAP_END |
| 231 | 231 |
| r4470 | r4471 | |
|---|---|---|
| 191 | 191 | PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) |
| 192 | 192 | INPUT_PORTS_END |
| 193 | 193 | |
| 194 | static ADDRESS_MAP_START( topshoot_readmem, ADDRESS_SPACE_PROGRAM, 16 ) | |
| 195 | AM_RANGE(0x000000, 0x0fffff) AM_READ(SMH_ROM) /* Cartridge Program Rom */ | |
| 196 | // AM_RANGE(0x200000, 0x20007f) AM_READ(SMH_RAM) | |
| 197 | // AM_RANGE(0x200040, 0x200041) AM_READ_PORT("IN0") // ?? | |
| 198 | // AM_RANGE(0x200050, 0x200051) AM_READ_PORT("IN0") // ?? | |
| 199 | AM_RANGE(0x202000, 0x2023ff) AM_READ(SMH_RAM) | |
| 194 | static ADDRESS_MAP_START( topshoot_map, ADDRESS_SPACE_PROGRAM, 16 ) | |
| 195 | AM_RANGE(0x000000, 0x0fffff) AM_ROM /* Cartridge Program Rom */ | |
| 196 | // AM_RANGE(0x200000, 0x20007f) AM_RAM | |
| 197 | AM_RANGE(0x200000, 0x2023ff) AM_RAM // tested | |
| 200 | 198 | AM_RANGE(0x400004, 0x400005) AM_READ_PORT("IN0") // ?? |
| 199 | AM_RANGE(0xa10000, 0xa1001f) AM_WRITE(genesis_io_w) AM_BASE(&genesis_io_ram) /* Genesis Input */ | |
| 200 | AM_RANGE(0xa11000, 0xa11203) AM_WRITE(genesis_ctrl_w) | |
| 201 | 201 | AM_RANGE(0xa10000, 0xa1001f) AM_READ_PORT("IN0") |
| 202 | 202 | AM_RANGE(0xa11100, 0xa11101) AM_READ_PORT("IN0") // ?? |
| 203 | ||
| 204 | ||
| 205 | AM_RANGE(0xa00000, 0xa0ffff) AM_READ(genesis_68k_to_z80_r) | |
| 206 | AM_RANGE(0xc00000, 0xc0001f) AM_READ(genesis_vdp_r) /* VDP Access */ | |
| 207 | AM_RANGE(0xe00000, 0xe1ffff) AM_READ(SMH_BANK3) | |
| 208 | AM_RANGE(0xfe0000, 0xfeffff) AM_READ(SMH_BANK4) | |
| 209 | AM_RANGE(0xff0000, 0xffffff) AM_READ(SMH_RAM) /* Main Ram */ | |
| 203 | AM_RANGE(0xa00000, 0xa0ffff) AM_READWRITE(genesis_68k_to_z80_r, genesis_68k_to_z80_w) | |
| 204 | AM_RANGE(0xc00000, 0xc0001f) AM_READWRITE(genesis_vdp_r, genesis_vdp_w) /* VDP Access */ | |
| 205 | AM_RANGE(0xe00000, 0xe1ffff) AM_ROMBANK(3) | |
| 206 | AM_RANGE(0xfe0000, 0xfeffff) AM_RAMBANK(4) | |
| 207 | AM_RANGE(0xff0000, 0xffffff) AM_RAM AM_BASE(&genesis_68k_ram)/* Main Ram */ | |
| 210 | 208 | ADDRESS_MAP_END |
| 211 | 209 | |
| 212 | ||
| 213 | static ADDRESS_MAP_START( topshoot_writemem, ADDRESS_SPACE_PROGRAM, 16 ) | |
| 214 | AM_RANGE(0x000000, 0x0fffff) AM_WRITE(SMH_ROM) /* Cartridge Program Rom */ | |
| 215 | // AM_RANGE(0x200000, 0x20007f) AM_WRITE(SMH_RAM) | |
| 216 | AM_RANGE(0x200000, 0x2023ff) AM_WRITE(SMH_RAM) // tested | |
| 217 | AM_RANGE(0xa10000, 0xa1001f) AM_WRITE(genesis_io_w) AM_BASE(&genesis_io_ram) /* Genesis Input */ | |
| 218 | AM_RANGE(0xa11000, 0xa11203) AM_WRITE(genesis_ctrl_w) | |
| 219 | AM_RANGE(0xa00000, 0xa0ffff) AM_WRITE(genesis_68k_to_z80_w) | |
| 220 | AM_RANGE(0xc00000, 0xc0001f) AM_WRITE(genesis_vdp_w) /* VDP Access */ | |
| 221 | AM_RANGE(0xfe0000, 0xfeffff) AM_WRITE(SMH_BANK4) | |
| 222 | AM_RANGE(0xff0000, 0xffffff) AM_WRITE(SMH_RAM) AM_BASE(&genesis_68k_ram)/* Main Ram */ | |
| 210 | static ADDRESS_MAP_START( genesis_z80_map, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 211 | AM_RANGE(0x0000, 0x1fff) AM_RAMBANK(1) AM_BASE(&genesis_z80_ram) | |
| 212 | AM_RANGE(0x2000, 0x3fff) AM_RAMBANK(2) /* mirror */ | |
| 213 | AM_RANGE(0x4000, 0x7fff) AM_READWRITE(genesis_z80_r, genesis_z80_w) | |
| 214 | AM_RANGE(0x8000, 0xffff) AM_READ(genesis_z80_bank_r) //AM_WRITE(genesis_z80_bank_w) | |
| 223 | 215 | ADDRESS_MAP_END |
| 224 | 216 | |
| 225 | static ADDRESS_MAP_START( genesis_z80_readmem, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 226 | AM_RANGE(0x0000, 0x1fff) AM_READ(SMH_BANK1) | |
| 227 | AM_RANGE(0x2000, 0x3fff) AM_READ(SMH_BANK2) /* mirror */ | |
| 228 | AM_RANGE(0x4000, 0x7fff) AM_READ(genesis_z80_r) | |
| 229 | AM_RANGE(0x8000, 0xffff) AM_READ(genesis_z80_bank_r) | |
| 230 | ADDRESS_MAP_END | |
| 231 | 217 | |
| 232 | static ADDRESS_MAP_START( genesis_z80_writemem, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 233 | AM_RANGE(0x0000, 0x1fff) AM_WRITE(SMH_BANK1) AM_BASE(&genesis_z80_ram) | |
| 234 | AM_RANGE(0x2000, 0x3fff) AM_WRITE(SMH_BANK2) /* mirror */ | |
| 235 | AM_RANGE(0x4000, 0x7fff) AM_WRITE(genesis_z80_w) | |
| 236 | // AM_RANGE(0x8000, 0xffff) AM_WRITE(genesis_z80_bank_w) | |
| 237 | ADDRESS_MAP_END | |
| 238 | ||
| 239 | ||
| 240 | 218 | static MACHINE_DRIVER_START( genesis_base ) |
| 241 | 219 | /*basic machine hardware */ |
| 242 | 220 | MDRV_CPU_ADD("maincpu", M68000, MASTER_CLOCK / 7) |
| 243 | 221 | MDRV_CPU_VBLANK_INT("screen", genesis_vblank_interrupt) |
| 244 | 222 | |
| 245 | 223 | MDRV_CPU_ADD("soundcpu", Z80, MASTER_CLOCK / 15) |
| 246 | MDRV_CPU_PROGRAM_MAP(genesis_z80_ | |
| 224 | MDRV_CPU_PROGRAM_MAP(genesis_z80_ | |
| 247 | 225 | MDRV_CPU_VBLANK_INT("screen", irq0_line_hold) /* from vdp at scanline 0xe0 */ |
| 248 | 226 | |
| 249 | 227 | MDRV_QUANTUM_TIME(HZ(6000)) |
| r4470 | r4471 | |
| 278 | 256 | /* basic machine hardware */ |
| 279 | 257 | MDRV_IMPORT_FROM( genesis_base ) |
| 280 | 258 | MDRV_CPU_MODIFY("maincpu") |
| 281 | MDRV_CPU_PROGRAM_MAP(topshoot_ | |
| 259 | MDRV_CPU_PROGRAM_MAP(topshoot_ | |
| 282 | 260 | |
| 283 | 261 | /* video hardware */ |
| 284 | 262 | MDRV_VIDEO_START(genesis) |
| r4470 | r4471 | |
|---|---|---|
| 226 | 226 | static ADDRESS_MAP_START( dassault_writemem, ADDRESS_SPACE_PROGRAM, 16 ) |
| 227 | 227 | AM_RANGE(0x000000, 0x07ffff) AM_WRITE(SMH_ROM) |
| 228 | 228 | AM_RANGE(0x100000, 0x103fff) AM_WRITE(deco16_nonbuffered_palette_w) AM_BASE(&paletteram16) |
| 229 | AM_RANGE(0x140004, 0x140007) AM_WRITE | |
| 229 | AM_RANGE(0x140004, 0x140007) AM_WRITE | |
| 230 | 230 | AM_RANGE(0x180000, 0x180001) AM_WRITE(dassault_sound_w) |
| 231 | 231 | AM_RANGE(0x1c000a, 0x1c000b) AM_WRITE(deco16_priority_w) |
| 232 | 232 | AM_RANGE(0x1c000c, 0x1c000d) AM_WRITE(buffer_spriteram16_2_w) |
| r4470 | r4471 | |
| 260 | 260 | static ADDRESS_MAP_START( dassault_sub_writemem, ADDRESS_SPACE_PROGRAM, 16 ) |
| 261 | 261 | AM_RANGE(0x000000, 0x07ffff) AM_WRITE(SMH_ROM) |
| 262 | 262 | AM_RANGE(0x100000, 0x100001) AM_WRITE(buffer_spriteram16_w) |
| 263 | AM_RANGE(0x100002, 0x100007) AM_WRITE | |
| 263 | AM_RANGE(0x100002, 0x100007) AM_WRITE | |
| 264 | 264 | AM_RANGE(0x3f8000, 0x3fbfff) AM_WRITE(SMH_RAM) AM_BASE(&dassault_ram2) |
| 265 | 265 | AM_RANGE(0x3fc000, 0x3fcfff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) |
| 266 | 266 | AM_RANGE(0x3feffc, 0x3fefff) AM_WRITE(dassault_irq_w) |
| r4470 | r4471 | |
|---|---|---|
| 103 | 103 | AM_RANGE(0x9003, 0x9052) AM_WRITE(SMH_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size) |
| 104 | 104 | AM_RANGE(0x9053, 0x97ff) AM_WRITE(SMH_RAM) |
| 105 | 105 | AM_RANGE(0xa000, 0xa000) AM_WRITE(coin_w) /* coin counters + irq enables */ |
| 106 | AM_RANGE(0xa200, 0xa200) AM_WRITE | |
| 106 | AM_RANGE(0xa200, 0xa200) AM_WRITE | |
| 107 | 107 | AM_RANGE(0xa400, 0xa400) AM_DEVWRITE("sn", sn76496_w) /* trigger read */ |
| 108 | 108 | AM_RANGE(0xa600, 0xa600) AM_WRITE(watchdog_reset_w) |
| 109 | 109 | ADDRESS_MAP_END |
| r4470 | r4471 | |
| 124 | 124 | AM_RANGE(0xa080, 0xa080) AM_READ_PORT("IN1") |
| 125 | 125 | AM_RANGE(0xa100, 0xa100) AM_READ_PORT("IN2") |
| 126 | 126 | AM_RANGE(0xa180, 0xa180) AM_READ_PORT("IN3") |
| 127 | AM_RANGE(0xa200, 0xa200) AM_WRITE | |
| 127 | AM_RANGE(0xa200, 0xa200) AM_WRITE | |
| 128 | 128 | AM_RANGE(0xa400, 0xa400) AM_DEVWRITE("sn", sn76496_w) /* trigger read */ |
| 129 | 129 | AM_RANGE(0xa600, 0xa600) AM_WRITE(watchdog_reset_w) |
| 130 | 130 | ADDRESS_MAP_END |
| r4470 | r4471 | |
|---|---|---|
| 85 | 85 | AM_RANGE(0xd800, 0xdfff) AM_WRITE(ssrj_vram4_w) AM_BASE(&ssrj_vram4) |
| 86 | 86 | AM_RANGE(0xe000, 0xe7ff) AM_WRITE(SMH_RAM) |
| 87 | 87 | AM_RANGE(0xe800, 0xefff) AM_WRITE(SMH_RAM) AM_BASE(&ssrj_scrollram) |
| 88 | AM_RANGE(0xf003, 0xf003) AM_WRITE | |
| 88 | AM_RANGE(0xf003, 0xf003) AM_WRITE | |
| 89 | 89 | AM_RANGE(0xf400, 0xf401) AM_DEVWRITE("ay", ay8910_address_data_w) |
| 90 | AM_RANGE(0xfc00, 0xfc00) AM_WRITE(SMH_NOP) /* unknown */ | |
| 91 | AM_RANGE(0xf800, 0xf800) AM_WRITE(SMH_NOP) /* wheel ? */ | |
| 90 | AM_RANGE(0xfc00, 0xfc00) AM_WRITENOP /* unknown */ | |
| 91 | AM_RANGE(0xf800, 0xf800) AM_WRITENOP /* wheel ? */ | |
| 92 | 92 | ADDRESS_MAP_END |
| 93 | 93 | |
| 94 | 94 | static INPUT_PORTS_START( ssrj ) |
| r4470 | r4471 | |
|---|---|---|
| 198 | 198 | AM_RANGE(0x04000, 0x07fff) AM_RAM AM_BASE(&generic_nvram16) AM_SIZE(&generic_nvram_size) |
| 199 | 199 | AM_RANGE(0x08000, 0x08fff) AM_RAM_WRITE(apache3_palette_w) AM_BASE(&paletteram16) |
| 200 | 200 | AM_RANGE(0x0c000, 0x0dfff) AM_RAM_WRITE(roundup5_text_w) AM_BASE(&videoram16) |
| 201 | AM_RANGE(0x0e800, 0x0e803) AM_WRITE | |
| 201 | AM_RANGE(0x0e800, 0x0e803) AM_WRITE | |
| 202 | 202 | AM_RANGE(0x0f000, 0x0f001) AM_READ_PORT("DSW") |
| 203 | AM_RANGE(0x0f000, 0x0f001) AM_WRITE | |
| 203 | AM_RANGE(0x0f000, 0x0f001) AM_WRITE | |
| 204 | 204 | AM_RANGE(0x0f800, 0x0f801) AM_READWRITE(apache3_bank_r, apache3_bank_w) |
| 205 | 205 | AM_RANGE(0x10000, 0x1ffff) AM_READWRITE(apache3_v30_v20_r, apache3_v30_v20_w) |
| 206 | 206 | AM_RANGE(0x20000, 0x2ffff) AM_READWRITE(tatsumi_v30_68000_r, tatsumi_v30_68000_w) |
| r4470 | r4471 | |
| 272 | 272 | AM_RANGE(0xfff8, 0xfff8) AM_READ_PORT("IN0") |
| 273 | 273 | AM_RANGE(0xfff9, 0xfff9) AM_READ_PORT("IN1") |
| 274 | 274 | AM_RANGE(0xfffc, 0xfffc) AM_READ_PORT("STICKX") |
| 275 | AM_RANGE(0xfff9, 0xfff9) AM_WRITE(SMH_NOP) //irq ack? | |
| 276 | AM_RANGE(0xfffa, 0xfffa) AM_WRITE(SMH_NOP) //irq ack? | |
| 275 | AM_RANGE(0xfff9, 0xfff9) AM_WRITENOP //irq ack? | |
| 276 | AM_RANGE(0xfffa, 0xfffa) AM_WRITENOP //irq ack? | |
| 277 | 277 | ADDRESS_MAP_END |
| 278 | 278 | |
| 279 | 279 | /******************************************************************************/ |
| r4470 | r4471 | |
| 327 | 327 | AM_RANGE(0xfff0, 0xfff1) AM_DEVREADWRITE("ym", tatsumi_hack_ym2151_r, ym2151_w) |
| 328 | 328 | AM_RANGE(0xfff4, 0xfff4) AM_DEVREADWRITE("oki", tatsumi_hack_oki_r, okim6295_w) |
| 329 | 329 | AM_RANGE(0xfffc, 0xfffc) AM_READ(soundlatch_r) |
| 330 | AM_RANGE(0xfffe, 0xfffe) AM_WRITE | |
| 330 | AM_RANGE(0xfffe, 0xfffe) AM_WRITE | |
| 331 | 331 | ADDRESS_MAP_END |
| 332 | 332 | |
| 333 | 333 | /******************************************************************************/ |
| r4470 | r4471 | |
|---|---|---|
| 74 | 74 | static ADDRESS_MAP_START( supbtime_writemem, ADDRESS_SPACE_PROGRAM, 16 ) |
| 75 | 75 | AM_RANGE(0x000000, 0x03ffff) AM_WRITE(SMH_ROM) |
| 76 | 76 | AM_RANGE(0x100000, 0x103fff) AM_WRITE(SMH_RAM) |
| 77 | AM_RANGE(0x104000, 0x11ffff) AM_WRITE | |
| 77 | AM_RANGE(0x104000, 0x11ffff) AM_WRITE | |
| 78 | 78 | AM_RANGE(0x120000, 0x1207ff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) |
| 79 | AM_RANGE(0x120800, 0x13ffff) AM_WRITE | |
| 79 | AM_RANGE(0x120800, 0x13ffff) AM_WRITE | |
| 80 | 80 | AM_RANGE(0x140000, 0x1407ff) AM_WRITE(paletteram16_xxxxBBBBGGGGRRRR_word_w) AM_BASE(&paletteram16) |
| 81 | AM_RANGE(0x18000a, 0x18000d) AM_WRITE | |
| 81 | AM_RANGE(0x18000a, 0x18000d) AM_WRITE | |
| 82 | 82 | AM_RANGE(0x1a0000, 0x1a0001) AM_WRITE(sound_w) |
| 83 | 83 | |
| 84 | 84 | AM_RANGE(0x300000, 0x30000f) AM_WRITE(SMH_RAM) AM_BASE(&deco16_pf12_control) |
| r4470 | r4471 | |
| 105 | 105 | AM_RANGE(0x100000, 0x100001) AM_WRITE(sound_w) |
| 106 | 106 | AM_RANGE(0x120000, 0x1207ff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) |
| 107 | 107 | AM_RANGE(0x140000, 0x1407ff) AM_WRITE(paletteram16_xxxxBBBBGGGGRRRR_word_w) AM_BASE(&paletteram16) |
| 108 | AM_RANGE(0x18000a, 0x18000d) AM_WRITE | |
| 108 | AM_RANGE(0x18000a, 0x18000d) AM_WRITE | |
| 109 | 109 | AM_RANGE(0x1a0000, 0x1a3fff) AM_WRITE(SMH_RAM) |
| 110 | 110 | |
| 111 | 111 | AM_RANGE(0x300000, 0x30000f) AM_WRITE(SMH_RAM) AM_BASE(&deco16_pf12_control) |
| r4470 | r4471 | |
| 120 | 120 | /* Physical memory map (21 bits) */ |
| 121 | 121 | static ADDRESS_MAP_START( sound_readmem, ADDRESS_SPACE_PROGRAM, 8 ) |
| 122 | 122 | AM_RANGE(0x000000, 0x00ffff) AM_READ(SMH_ROM) |
| 123 | AM_RANGE(0x100000, 0x100001) AM_READ | |
| 123 | AM_RANGE(0x100000, 0x100001) AM_READ | |
| 124 | 124 | AM_RANGE(0x110000, 0x110001) AM_DEVREAD("ym", ym2151_r) |
| 125 | 125 | AM_RANGE(0x120000, 0x120001) AM_DEVREAD("oki", okim6295_r) |
| 126 | AM_RANGE(0x130000, 0x130001) AM_READ | |
| 126 | AM_RANGE(0x130000, 0x130001) AM_READ | |
| 127 | 127 | AM_RANGE(0x140000, 0x140001) AM_READ(soundlatch_r) |
| 128 | 128 | AM_RANGE(0x1f0000, 0x1f1fff) AM_READ(SMH_BANK8) |
| 129 | 129 | ADDRESS_MAP_END |
| 130 | 130 | |
| 131 | 131 | static ADDRESS_MAP_START( sound_writemem, ADDRESS_SPACE_PROGRAM, 8 ) |
| 132 | 132 | AM_RANGE(0x000000, 0x00ffff) AM_WRITE(SMH_ROM) |
| 133 | AM_RANGE(0x100000, 0x100001) AM_WRITE | |
| 133 | AM_RANGE(0x100000, 0x100001) AM_WRITE | |
| 134 | 134 | AM_RANGE(0x110000, 0x110001) AM_DEVWRITE("ym", ym2151_w) |
| 135 | 135 | AM_RANGE(0x120000, 0x120001) AM_DEVWRITE("oki", okim6295_w) |
| 136 | AM_RANGE(0x130000, 0x130001) AM_WRITE | |
| 136 | AM_RANGE(0x130000, 0x130001) AM_WRITE | |
| 137 | 137 | AM_RANGE(0x1f0000, 0x1f1fff) AM_WRITE(SMH_BANK8) |
| 138 | 138 | AM_RANGE(0x1fec00, 0x1fec01) AM_WRITE(h6280_timer_w) |
| 139 | 139 | AM_RANGE(0x1ff400, 0x1ff403) AM_WRITE(h6280_irq_status_w) |
| r4470 | r4471 | |
|---|---|---|
| 111 | 111 | AM_RANGE(0xb800, 0xb802) AM_WRITE(retofinv_gfx_ctrl_w) |
| 112 | 112 | AM_RANGE(0xc000, 0xc000) AM_READ_PORT("P1") |
| 113 | 113 | AM_RANGE(0xc001, 0xc001) AM_READ_PORT("P2") |
| 114 | AM_RANGE(0xc002, 0xc002) AM_READ | |
| 114 | AM_RANGE(0xc002, 0xc002) AM_READ | |
| 115 | 115 | AM_RANGE(0xc003, 0xc003) AM_READ(retofinv_mcu_status_r) |
| 116 | 116 | AM_RANGE(0xc004, 0xc004) AM_READ_PORT("SYSTEM") |
| 117 | 117 | AM_RANGE(0xc005, 0xc005) AM_READ_PORT("DSW1") |
| r4470 | r4471 | |
|---|---|---|
| 13 | 13 | #include "video/konamiic.h" |
| 14 | 14 | #include "sound/2151intf.h" |
| 15 | 15 | #include "sound/k007232.h" |
| 16 | #include "konamipt.h" | |
| 16 | 17 | |
| 17 | 18 | /* prototypes */ |
| 18 | 19 | static MACHINE_RESET( gbusters ); |
| r4470 | r4471 | |
| 173 | 174 | |
| 174 | 175 | static INPUT_PORTS_START( gbusters ) |
| 175 | 176 | PORT_START("DSW1") |
| 176 | PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) ) | |
| 177 | PORT_DIPSETTING( 0x02, DEF_STR( 4C_1C ) ) | |
| 178 | PORT_DIPSETTING( 0x05, DEF_STR( 3C_1C ) ) | |
| 179 | PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) ) | |
| 180 | PORT_DIPSETTING( 0x04, DEF_STR( 3C_2C ) ) | |
| 181 | PORT_DIPSETTING( 0x01, DEF_STR( 4C_3C ) ) | |
| 182 | PORT_DIPSETTING( 0x0f, DEF_STR( 1C_1C ) ) | |
| 183 | PORT_DIPSETTING( 0x03, DEF_STR( 3C_4C ) ) | |
| 184 | PORT_DIPSETTING( 0x07, DEF_STR( 2C_3C ) ) | |
| 185 | PORT_DIPSETTING( 0x0e, DEF_STR( 1C_2C ) ) | |
| 186 | PORT_DIPSETTING( 0x06, DEF_STR( 2C_5C ) ) | |
| 187 | PORT_DIPSETTING( 0x0d, DEF_STR( 1C_3C ) ) | |
| 188 | PORT_DIPSETTING( 0x0c, DEF_STR( 1C_4C ) ) | |
| 189 | PORT_DIPSETTING( 0x0b, DEF_STR( 1C_5C ) ) | |
| 190 | PORT_DIPSETTING( 0x0a, DEF_STR( 1C_6C ) ) | |
| 191 | PORT_DIPSETTING( 0x09, DEF_STR( 1C_7C ) ) | |
| 192 | PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) | |
| 193 | PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) ) | |
| 194 | PORT_DIPSETTING( 0x20, DEF_STR( 4C_1C ) ) | |
| 195 | PORT_DIPSETTING( 0x50, DEF_STR( 3C_1C ) ) | |
| 196 | PORT_DIPSETTING( 0x80, DEF_STR( 2C_1C ) ) | |
| 197 | PORT_DIPSETTING( 0x40, DEF_STR( 3C_2C ) ) | |
| 198 | PORT_DIPSETTING( 0x10, DEF_STR( 4C_3C ) ) | |
| 199 | PORT_DIPSETTING( 0xf0, DEF_STR( 1C_1C ) ) | |
| 200 | PORT_DIPSETTING( 0x30, DEF_STR( 3C_4C ) ) | |
| 201 | PORT_DIPSETTING( 0x70, DEF_STR( 2C_3C ) ) | |
| 202 | PORT_DIPSETTING( 0xe0, DEF_STR( 1C_2C ) ) | |
| 203 | PORT_DIPSETTING( 0x60, DEF_STR( 2C_5C ) ) | |
| 204 | PORT_DIPSETTING( 0xd0, DEF_STR( 1C_3C ) ) | |
| 205 | PORT_DIPSETTING( 0xc0, DEF_STR( 1C_4C ) ) | |
| 206 | PORT_DIPSETTING( 0xb0, DEF_STR( 1C_5C ) ) | |
| 207 | PORT_DIPSETTING( 0xa0, DEF_STR( 1C_6C ) ) | |
| 208 | PORT_DIPSETTING( 0x90, DEF_STR( 1C_7C ) ) | |
| 209 | // PORT_DIPSETTING( 0x00, "Invalid" ) | |
| 177 | KONAMI_COINAGE(DEF_STR( Free_Play ), "No Coin B") | |
| 178 | /* "No Coin B" = coins produce sound, but no effect on coin counter */ | |
| 210 | 179 | |
| 211 | 180 | PORT_START("DSW2") |
| 212 | 181 | PORT_DIPNAME( 0x03, 0x02, DEF_STR( Lives ) ) |
| r4470 | r4471 | |
| 245 | 214 | PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 246 | 215 | |
| 247 | 216 | PORT_START("SYSTEM") |
| 248 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) | |
| 249 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) | |
| 250 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN3 ) | |
| 251 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) | |
| 252 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 ) | |
| 253 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 254 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) | |
| 255 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) | |
| 217 | KONAMI8_SYSTEM_UNK | |
| 256 | 218 | |
| 257 | 219 | PORT_START("P1") |
| 258 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) | |
| 259 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) | |
| 260 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) | |
| 261 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) | |
| 262 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) | |
| 263 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) | |
| 264 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) | |
| 265 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) | |
| 220 | KONAMI8_B12_UNK(1) | |
| 266 | 221 | |
| 267 | 222 | PORT_START("P2") |
| 268 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) | |
| 269 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) | |
| 270 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) | |
| 271 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) | |
| 272 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) | |
| 273 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) | |
| 274 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) | |
| 275 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) | |
| 223 | KONAMI8_B12_UNK(2) | |
| 276 | 224 | INPUT_PORTS_END |
| 277 | 225 | |
| 278 | 226 |
| r4470 | r4471 | |
|---|---|---|
| 404 | 404 | AM_RANGE(0x0c0000, 0x0c3fff) AM_WRITE(SMH_RAM) AM_BASE(&generic_nvram16) AM_SIZE(&generic_nvram_size) |
| 405 | 405 | AM_RANGE(0x140000, 0x143fff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16_2) /* Sprites Code + X + Attr */ |
| 406 | 406 | AM_RANGE(0x180000, 0x180609) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) /* Sprites Y */ |
| 407 | AM_RANGE(0x1c0000, 0x1c0001) AM_WRITE | |
| 407 | AM_RANGE(0x1c0000, 0x1c0001) AM_WRITE | |
| 408 | 408 | AM_RANGE(0x800000, 0x800001) AM_WRITE(srmp2_flags_w) /* ADPCM bank, Color bank, etc. */ |
| 409 | AM_RANGE(0x900000, 0x900001) AM_WRITE | |
| 409 | AM_RANGE(0x900000, 0x900001) AM_WRITE | |
| 410 | 410 | AM_RANGE(0xa00000, 0xa00001) AM_WRITE(srmp2_input_1_w) /* I/O ??? */ |
| 411 | 411 | AM_RANGE(0xa00002, 0xa00003) AM_WRITE(srmp2_input_2_w) /* I/O ??? */ |
| 412 | 412 | AM_RANGE(0xb00000, 0xb00001) AM_DEVWRITE("msm", srmp2_adpcm_code_w) /* ADPCM number */ |
| 413 | AM_RANGE(0xc00000, 0xc00001) AM_WRITE(SMH_NOP) /* ??? */ | |
| 414 | AM_RANGE(0xd00000, 0xd00001) AM_WRITE(SMH_NOP) /* ??? */ | |
| 415 | AM_RANGE(0xe00000, 0xe00001) AM_WRITE(SMH_NOP) /* ??? */ | |
| 413 | AM_RANGE(0xc00000, 0xc00001) AM_WRITENOP /* ??? */ | |
| 414 | AM_RANGE(0xd00000, 0xd00001) AM_WRITENOP /* ??? */ | |
| 415 | AM_RANGE(0xe00000, 0xe00001) AM_WRITENOP /* ??? */ | |
| 416 | 416 | AM_RANGE(0xf00000, 0xf00003) AM_DEVWRITE8("ay", ay8910_address_data_w, 0x00ff) |
| 417 | 417 | ADDRESS_MAP_END |
| 418 | 418 | |
| r4470 | r4471 | |
| 420 | 420 | static ADDRESS_MAP_START( mjyuugi_readmem, ADDRESS_SPACE_PROGRAM, 16 ) |
| 421 | 421 | AM_RANGE(0x000000, 0x07ffff) AM_READ(SMH_ROM) |
| 422 | 422 | AM_RANGE(0x100000, 0x100001) AM_READ_PORT("SYSTEM") /* Coinage */ |
| 423 | AM_RANGE(0x100010, 0x100011) AM_READ(SMH_NOP) /* ??? */ | |
| 424 | AM_RANGE(0x200000, 0x200001) AM_READ(SMH_NOP) /* ??? */ | |
| 425 | AM_RANGE(0x300000, 0x300001) AM_READ(SMH_NOP) /* ??? */ | |
| 423 | AM_RANGE(0x100010, 0x100011) AM_READNOP /* ??? */ | |
| 424 | AM_RANGE(0x200000, 0x200001) AM_READNOP /* ??? */ | |
| 425 | AM_RANGE(0x300000, 0x300001) AM_READNOP /* ??? */ | |
| 426 | 426 | AM_RANGE(0x500000, 0x500001) AM_READ_PORT("DSW3-1") /* DSW 3-1 */ |
| 427 | 427 | AM_RANGE(0x500010, 0x500011) AM_READ_PORT("DSW3-2") /* DSW 3-2 */ |
| 428 | 428 | AM_RANGE(0x700000, 0x7003ff) AM_READ(SMH_RAM) |
| 429 | AM_RANGE(0x800000, 0x800001) AM_READ | |
| 429 | AM_RANGE(0x800000, 0x800001) AM_READ | |
| 430 | 430 | AM_RANGE(0x900000, 0x900001) AM_READ(srmp2_input_1_r) /* I/O port 1 */ |
| 431 | 431 | AM_RANGE(0x900002, 0x900003) AM_READ(srmp2_input_2_r) /* I/O port 2 */ |
| 432 | 432 | AM_RANGE(0xa00000, 0xa00001) AM_READ(srmp2_cchip_status_0_r) /* custom chip status ??? */ |
| r4470 | r4471 | |
| 447 | 447 | AM_RANGE(0x900002, 0x900003) AM_WRITE(srmp2_input_2_w) /* I/O ??? */ |
| 448 | 448 | AM_RANGE(0xa00000, 0xa00001) AM_DEVWRITE("msm", srmp2_adpcm_code_w) /* ADPCM number */ |
| 449 | 449 | AM_RANGE(0xb00000, 0xb00003) AM_DEVWRITE8("ay", ay8910_address_data_w, 0x00ff) |
| 450 | AM_RANGE(0xc00000, 0xc00001) AM_WRITE | |
| 450 | AM_RANGE(0xc00000, 0xc00001) AM_WRITE | |
| 451 | 451 | AM_RANGE(0xd00000, 0xd00609) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) /* Sprites Y */ |
| 452 | 452 | AM_RANGE(0xd02000, 0xd023ff) AM_WRITE(SMH_RAM) /* ??? only writes $00fa */ |
| 453 | 453 | AM_RANGE(0xe00000, 0xe03fff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16_2) /* Sprites Code + X + Attr */ |
| r4470 | r4471 | |
| 575 | 575 | AM_RANGE(0x0000, 0x7fff) AM_WRITE(SMH_ROM) |
| 576 | 576 | AM_RANGE(0x8000, 0x9fff) AM_WRITE(SMH_ROM) /* rom bank */ |
| 577 | 577 | AM_RANGE(0xa000, 0xa7ff) AM_WRITE(SMH_RAM) AM_BASE(&generic_nvram) AM_SIZE(&generic_nvram_size) /* work ram */ |
| 578 | AM_RANGE(0xa800, 0xa800) AM_WRITE | |
| 578 | AM_RANGE(0xa800, 0xa800) AM_WRITE | |
| 579 | 579 | AM_RANGE(0xb000, 0xb303) AM_WRITE(SMH_RAM) AM_BASE(&spriteram) /* Sprites Y */ |
| 580 | AM_RANGE(0xb800, 0xb800) AM_WRITE | |
| 580 | AM_RANGE(0xb800, 0xb800) AM_WRITE | |
| 581 | 581 | AM_RANGE(0xc000, 0xdfff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram_2) /* Sprites Code + X + Attr */ |
| 582 | 582 | AM_RANGE(0xe000, 0xffff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram_3) |
| 583 | 583 | ADDRESS_MAP_END |
| 584 | 584 | |
| 585 | 585 | static ADDRESS_MAP_START( srmp3_io_map, ADDRESS_SPACE_IO, 8 ) |
| 586 | 586 | ADDRESS_MAP_GLOBAL_MASK(0xff) |
| 587 | AM_RANGE(0x20, 0x20) AM_WRITE | |
| 587 | AM_RANGE(0x20, 0x20) AM_WRITE | |
| 588 | 588 | AM_RANGE(0x40, 0x40) AM_READ_PORT("SYSTEM") AM_WRITE(srmp3_flags_w) /* coin, service | GFX bank, counter, lockout */ |
| 589 | 589 | AM_RANGE(0x60, 0x60) AM_WRITE(srmp3_rombank_w) /* ROM bank select */ |
| 590 | 590 | AM_RANGE(0xa0, 0xa0) AM_DEVWRITE("msm", srmp3_adpcm_code_w) /* ADPCM number */ |
| r4470 | r4471 | |
|---|---|---|
| 928 | 928 | AM_RANGE(0xa0000, 0xa0bff) AM_READWRITE(m72_palette1_r, m72_palette1_w) AM_BASE(&paletteram16) |
| 929 | 929 | AM_RANGE(0xa8000, 0xa8bff) AM_READWRITE(m72_palette2_r, m72_palette2_w) AM_BASE(&paletteram16_2) |
| 930 | 930 | AM_RANGE(0xb0000, 0xb0001) AM_WRITE(m72_irq_line_w) |
| 931 | AM_RANGE(0xb4000, 0xb4001) AM_WRITE | |
| 931 | AM_RANGE(0xb4000, 0xb4001) AM_WRITE | |
| 932 | 932 | AM_RANGE(0xbc000, 0xbc001) AM_WRITE(m72_dmaon_w) |
| 933 | 933 | AM_RANGE(0xc0000, 0xc03ff) AM_RAM AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) |
| 934 | 934 | AM_RANGE(0x80000, 0x83fff) AM_RAM_WRITE(m72_videoram1_w) AM_BASE(&m72_videoram1) |
| r4470 | r4471 | |
| 945 | 945 | AM_RANGE(0x02, 0x03) AM_WRITE(m72_port02_w) /* coin counters, reset sound cpu, other stuff? */ |
| 946 | 946 | AM_RANGE(0x04, 0x05) AM_WRITE(m72_dmaon_w) |
| 947 | 947 | AM_RANGE(0x06, 0x07) AM_WRITE(m72_irq_line_w) |
| 948 | //AM_RANGE(0x40, 0x43) AM_WRITE | |
| 948 | //AM_RANGE(0x40, 0x43) AM_WRITE | |
| 949 | 949 | AM_RANGE(0x80, 0x81) AM_WRITE(m72_scrolly1_w) |
| 950 | 950 | AM_RANGE(0x82, 0x83) AM_WRITE(m72_scrollx1_w) |
| 951 | 951 | AM_RANGE(0x84, 0x85) AM_WRITE(m72_scrolly2_w) |
| r4470 | r4471 | |
| 959 | 959 | AM_RANGE(0x04, 0x05) AM_READ_PORT("DSW") |
| 960 | 960 | AM_RANGE(0x00, 0x01) AM_WRITE(m72_sound_command_w) |
| 961 | 961 | AM_RANGE(0x02, 0x03) AM_WRITE(rtype2_port02_w) |
| 962 | AM_RANGE(0x40, 0x43) AM_WRITE | |
| 962 | AM_RANGE(0x40, 0x43) AM_WRITE | |
| 963 | 963 | AM_RANGE(0x80, 0x81) AM_WRITE(m72_scrolly1_w) |
| 964 | 964 | AM_RANGE(0x82, 0x83) AM_WRITE(m72_scrollx1_w) |
| 965 | 965 | AM_RANGE(0x84, 0x85) AM_WRITE(m72_scrolly2_w) |
| r4470 | r4471 | |
| 972 | 972 | AM_RANGE(0x08, 0x0f) AM_READ(poundfor_trackball_r) |
| 973 | 973 | AM_RANGE(0x00, 0x01) AM_WRITE(m72_sound_command_w) |
| 974 | 974 | AM_RANGE(0x02, 0x03) AM_WRITE(rtype2_port02_w) |
| 975 | AM_RANGE(0x40, 0x43) AM_WRITE | |
| 975 | AM_RANGE(0x40, 0x43) AM_WRITE | |
| 976 | 976 | AM_RANGE(0x80, 0x81) AM_WRITE(m72_scrolly1_w) |
| 977 | 977 | AM_RANGE(0x82, 0x83) AM_WRITE(m72_scrollx1_w) |
| 978 | 978 | AM_RANGE(0x84, 0x85) AM_WRITE(m72_scrolly2_w) |
| r4470 | r4471 | |
| 985 | 985 | AM_RANGE(0x04, 0x05) AM_READ_PORT("DSW") |
| 986 | 986 | AM_RANGE(0x00, 0x01) AM_WRITE(m72_sound_command_w) |
| 987 | 987 | AM_RANGE(0x02, 0x03) AM_WRITE(rtype2_port02_w) |
| 988 | AM_RANGE(0x40, 0x43) AM_WRITE | |
| 988 | AM_RANGE(0x40, 0x43) AM_WRITE | |
| 989 | 989 | AM_RANGE(0x80, 0x81) AM_WRITE(m72_scrolly1_w) |
| 990 | 990 | AM_RANGE(0x82, 0x83) AM_WRITE(m72_scrollx1_w) |
| 991 | 991 | AM_RANGE(0x84, 0x85) AM_WRITE(m72_scrolly2_w) |
| r4470 | r4471 | |
| 1001 | 1001 | AM_RANGE(0x02, 0x03) AM_WRITE(rtype2_port02_w) /* coin counters, reset sound cpu, other stuff? */ |
| 1002 | 1002 | AM_RANGE(0x04, 0x05) AM_WRITE(m72_dmaon_w) |
| 1003 | 1003 | AM_RANGE(0x06, 0x07) AM_WRITE(m72_irq_line_w) |
| 1004 | AM_RANGE(0x40, 0x43) AM_WRITE | |
| 1004 | AM_RANGE(0x40, 0x43) AM_WRITE | |
| 1005 | 1005 | AM_RANGE(0x80, 0x81) AM_WRITE(m72_scrolly1_w) |
| 1006 | 1006 | AM_RANGE(0x82, 0x83) AM_WRITE(m72_scrollx1_w) |
| 1007 | 1007 | AM_RANGE(0x84, 0x85) AM_WRITE(m72_scrolly2_w) |
| r4470 | r4471 | |
| 1018 | 1018 | AM_RANGE(0x82, 0x83) AM_WRITE(m72_scrollx1_w) |
| 1019 | 1019 | AM_RANGE(0x84, 0x85) AM_WRITE(m72_scrolly2_w) |
| 1020 | 1020 | AM_RANGE(0x86, 0x87) AM_WRITE(m72_scrollx2_w) |
| 1021 | //AM_RANGE(0x8c, 0x8f) AM_WRITE | |
| 1021 | //AM_RANGE(0x8c, 0x8f) AM_WRITE | |
| 1022 | 1022 | ADDRESS_MAP_END |
| 1023 | 1023 | |
| 1024 | 1024 |
| r4470 | r4471 | |
|---|---|---|
| 130 | 130 | AM_RANGE(0x0800, 0x0fff) AM_WRITE(pokechmp_videoram_w) AM_BASE(&videoram) |
| 131 | 131 | AM_RANGE(0x1000, 0x11ff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size) |
| 132 | 132 | AM_RANGE(0x1801, 0x1801) AM_WRITE(pokechmp_flipscreen_w) |
| 133 | AM_RANGE(0x1802, 0x181f) AM_WRITE | |
| 133 | AM_RANGE(0x1802, 0x181f) AM_WRITE | |
| 134 | 134 | /* 1800 - 0x181f are unused BAC-06 registers, see video/dec0.c */ |
| 135 | 135 | AM_RANGE(0x1a00, 0x1a00) AM_WRITE(pokechmp_sound_w) |
| 136 | 136 | AM_RANGE(0x1c00, 0x1c00) AM_WRITE(pokechmp_bank_w) |
| r4470 | r4471 | |
| 156 | 156 | AM_RANGE(0x0000, 0x07ff) AM_WRITE(SMH_RAM) |
| 157 | 157 | AM_RANGE(0x0800, 0x0801) AM_DEVWRITE("ym1", ym2203_w) |
| 158 | 158 | AM_RANGE(0x1000, 0x1001) AM_DEVWRITE("ym2", ym3812_w) |
| 159 | AM_RANGE(0x1800, 0x1800) AM_WRITE | |
| 159 | AM_RANGE(0x1800, 0x1800) AM_WRITE | |
| 160 | 160 | // AM_RANGE(0x2000, 0x2000) AM_WRITE(pokechmp_sound_bank_w)/ * might still be sound bank */ |
| 161 | 161 | AM_RANGE(0x2800, 0x2800) AM_DEVWRITE("oki", okim6295_w) // extra |
| 162 | 162 | AM_RANGE(0x4000, 0xffff) AM_WRITE(SMH_ROM) |
| r4470 | r4471 | |
|---|---|---|
| 82 | 82 | AM_RANGE(0x1000, 0x17ff) AM_RAM_WRITE(aeroboto_videoram_w) AM_BASE(&aeroboto_videoram) // tile RAM |
| 83 | 83 | AM_RANGE(0x1800, 0x183f) AM_RAM AM_BASE(&aeroboto_hscroll) // horizontal scroll regs |
| 84 | 84 | AM_RANGE(0x2000, 0x20ff) AM_RAM_WRITE(aeroboto_tilecolor_w) AM_BASE(&aeroboto_tilecolor) // tile color RAM |
| 85 | AM_RANGE(0x1840, 0x27ff) AM_WRITE | |
| 85 | AM_RANGE(0x1840, 0x27ff) AM_WRITE | |
| 86 | 86 | AM_RANGE(0x2800, 0x28ff) AM_RAM AM_BASE(&spriteram) AM_SIZE(&spriteram_size) // sprite RAM |
| 87 | AM_RANGE(0x2900, 0x2fff) AM_WRITE | |
| 87 | AM_RANGE(0x2900, 0x2fff) AM_WRITE | |
| 88 | 88 | AM_RANGE(0x2973, 0x2973) AM_READ(aeroboto_2973_r) // protection read |
| 89 | 89 | AM_RANGE(0x3000, 0x3000) AM_READWRITE(aeroboto_in0_r, aeroboto_3000_w) |
| 90 | 90 | AM_RANGE(0x3001, 0x3001) AM_READ_PORT("DSW1") AM_WRITE(soundlatch_w) |
| r4470 | r4471 | |
|---|---|---|
| 263 | 263 | AM_RANGE(0xd800, 0xdfff) AM_WRITE(firetrap_bg2videoram_w) AM_BASE(&firetrap_bg2videoram) |
| 264 | 264 | AM_RANGE(0xe000, 0xe7ff) AM_WRITE(firetrap_fgvideoram_w) AM_BASE(&firetrap_fgvideoram) |
| 265 | 265 | AM_RANGE(0xe800, 0xe97f) AM_WRITE(SMH_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size) |
| 266 | AM_RANGE(0xf000, 0xf000) AM_WRITE | |
| 266 | AM_RANGE(0xf000, 0xf000) AM_WRITE | |
| 267 | 267 | AM_RANGE(0xf001, 0xf001) AM_WRITE(firetrap_sound_command_w) |
| 268 | 268 | AM_RANGE(0xf002, 0xf002) AM_WRITE(firetrap_bankselect_w) |
| 269 | 269 | AM_RANGE(0xf003, 0xf003) AM_WRITE(flip_screen_w) |
| r4470 | r4471 | |
| 295 | 295 | AM_RANGE(0xd800, 0xdfff) AM_WRITE(firetrap_bg2videoram_w) AM_BASE(&firetrap_bg2videoram) |
| 296 | 296 | AM_RANGE(0xe000, 0xe7ff) AM_WRITE(firetrap_fgvideoram_w) AM_BASE(&firetrap_fgvideoram) |
| 297 | 297 | AM_RANGE(0xe800, 0xe97f) AM_WRITE(SMH_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size) |
| 298 | AM_RANGE(0xf000, 0xf000) AM_WRITE | |
| 298 | AM_RANGE(0xf000, 0xf000) AM_WRITE | |
| 299 | 299 | AM_RANGE(0xf001, 0xf001) AM_WRITE(firetrap_sound_command_w) |
| 300 | 300 | AM_RANGE(0xf002, 0xf002) AM_WRITE(firetrap_bankselect_w) |
| 301 | 301 | AM_RANGE(0xf003, 0xf003) AM_WRITE(flip_screen_w) |
| 302 | 302 | AM_RANGE(0xf004, 0xf004) AM_WRITE(firetrap_nmi_disable_w) |
| 303 | AM_RANGE(0xf005, 0xf005) AM_WRITE | |
| 303 | AM_RANGE(0xf005, 0xf005) AM_WRITE | |
| 304 | 304 | AM_RANGE(0xf008, 0xf009) AM_WRITE(firetrap_bg1_scrollx_w) |
| 305 | 305 | AM_RANGE(0xf00a, 0xf00b) AM_WRITE(firetrap_bg1_scrolly_w) |
| 306 | 306 | AM_RANGE(0xf00c, 0xf00d) AM_WRITE(firetrap_bg2_scrollx_w) |
| r4470 | r4471 | |
|---|---|---|
| 259 | 259 | AM_RANGE(0x0000, 0x7fff) AM_ROM |
| 260 | 260 | AM_RANGE(0x8000, 0x87ff) AM_RAM |
| 261 | 261 | AM_RANGE(0xc000, 0xc001) AM_DEVWRITE("ay", ay8910_address_data_w) |
| 262 | AM_RANGE(0xc002, 0xc002) AM_WRITE | |
| 262 | AM_RANGE(0xc002, 0xc002) AM_WRITE | |
| 263 | 263 | AM_RANGE(0xe000, 0xe000) AM_READWRITE(switch_input_r, switch_input_select_w) |
| 264 | 264 | AM_RANGE(0xe001, 0xe001) AM_READWRITE(analog_input_r, unknown_w) |
| 265 | 265 | AM_RANGE(0xe003, 0xe003) AM_READWRITE(main_to_sound_r, sound_to_main_w) |
| r4470 | r4471 | |
|---|---|---|
| 193 | 193 | AM_RANGE(0xa000, 0xa7ff) AM_WRITE(SMH_RAM) |
| 194 | 194 | AM_RANGE(0xa800, 0xafff) AM_WRITE(rmhaihai_colorram_w) AM_BASE(&colorram) |
| 195 | 195 | AM_RANGE(0xb000, 0xb7ff) AM_WRITE(rmhaihai_videoram_w) AM_BASE(&videoram) |
| 196 | AM_RANGE(0xb83c, 0xb83c) AM_WRITE(SMH_NOP) // ?? | |
| 197 | AM_RANGE(0xbc00, 0xbc00) AM_WRITE(SMH_NOP) // ?? | |
| 196 | AM_RANGE(0xb83c, 0xb83c) AM_WRITENOP // ?? | |
| 197 | AM_RANGE(0xbc00, 0xbc00) AM_WRITENOP // ?? | |
| 198 | 198 | AM_RANGE(0xc000, 0xdfff) AM_WRITE(SMH_ROM) |
| 199 | 199 | AM_RANGE(0xe000, 0xffff) AM_WRITE(SMH_ROM) /* rmhaisei only */ |
| 200 | 200 | ADDRESS_MAP_END |
| r4470 | r4471 | |
| 207 | 207 | AM_RANGE(0x8020, 0x8021) AM_DEVWRITE("ay", ay8910_address_data_w) |
| 208 | 208 | AM_RANGE(0x8040, 0x8040) AM_DEVWRITE("msm", adpcm_w) |
| 209 | 209 | AM_RANGE(0x8060, 0x8060) AM_WRITE(ctrl_w) |
| 210 | AM_RANGE(0x8080, 0x8080) AM_WRITE(SMH_NOP) // ?? | |
| 211 | AM_RANGE(0xbc04, 0xbc04) AM_WRITE(SMH_NOP) // ?? | |
| 212 | AM_RANGE(0xbc0c, 0xbc0c) AM_WRITE(SMH_NOP) // ?? | |
| 210 | AM_RANGE(0x8080, 0x8080) AM_WRITENOP // ?? | |
| 211 | AM_RANGE(0xbc04, 0xbc04) AM_WRITENOP // ?? | |
| 212 | AM_RANGE(0xbc0c, 0xbc0c) AM_WRITENOP // ?? | |
| 213 | 213 | ADDRESS_MAP_END |
| 214 | 214 | |
| 215 | 215 | static ADDRESS_MAP_START( themj_io_map, ADDRESS_SPACE_IO, 8 ) |
| r4470 | r4471 | |
| 220 | 220 | AM_RANGE(0x8020, 0x8021) AM_DEVWRITE("ay", ay8910_address_data_w) |
| 221 | 221 | AM_RANGE(0x8040, 0x8040) AM_DEVWRITE("msm", adpcm_w) |
| 222 | 222 | AM_RANGE(0x8060, 0x8060) AM_WRITE(ctrl_w) |
| 223 | AM_RANGE(0x8080, 0x8080) AM_WRITE | |
| 223 | AM_RANGE(0x8080, 0x8080) AM_WRITE | |
| 224 | 224 | AM_RANGE(0x80a0, 0x80a0) AM_WRITE(themj_rombank_w) |
| 225 | AM_RANGE(0xbc04, 0xbc04) AM_WRITE(SMH_NOP) // ?? | |
| 226 | AM_RANGE(0xbc0c, 0xbc0c) AM_WRITE(SMH_NOP) // ?? | |
| 225 | AM_RANGE(0xbc04, 0xbc04) AM_WRITENOP // ?? | |
| 226 | AM_RANGE(0xbc0c, 0xbc0c) AM_WRITENOP // ?? | |
| 227 | 227 | ADDRESS_MAP_END |
| 228 | 228 | |
| 229 | 229 | static INPUT_PORTS_START( mjctrl ) |
| r4470 | r4471 | |
|---|---|---|
| 451 | 451 | ***********************************************************/ |
| 452 | 452 | |
| 453 | 453 | |
| 454 | static ADDRESS_MAP_START( topspeed_readmem, ADDRESS_SPACE_PROGRAM, 16 ) | |
| 455 | AM_RANGE(0x000000, 0x0fffff) AM_READ(SMH_ROM) | |
| 456 | AM_RANGE(0x400000, 0x40ffff) AM_READ(sharedram_r) // all shared ?? | |
| 457 | AM_RANGE(0x500000, 0x503fff) AM_READ(SMH_RAM) | |
| 458 | AM_RANGE(0x7e0000, 0x7e0001) AM_READ(SMH_NOP) | |
| 459 | AM_RANGE(0x7e0002, 0x7e0003) AM_READ(taitosound_comm16_lsb_r) | |
| 460 | AM_RANGE(0x800000, 0x8003ff) AM_READ(SMH_RAM) /* raster line color control */ | |
| 461 | AM_RANGE(0x800400, 0x80ffff) AM_READ(SMH_RAM) /* unknown or unused */ | |
| 462 | AM_RANGE(0xa00000, 0xa0ffff) AM_READ(PC080SN_word_0_r) /* tilemaps */ | |
| 463 | AM_RANGE(0xb00000, 0xb0ffff) AM_READ(PC080SN_word_1_r) /* tilemaps */ | |
| 464 | AM_RANGE(0xd00000, 0xd00fff) AM_READ(SMH_RAM) /* sprite ram */ | |
| 465 | AM_RANGE(0xe00000, 0xe0ffff) AM_READ(SMH_RAM) /* sprite map */ | |
| 466 | ADDRESS_MAP_END | |
| 467 | ||
| 468 | static ADDRESS_MAP_START( topspeed_writemem, ADDRESS_SPACE_PROGRAM, 16 ) | |
| 469 | AM_RANGE(0x000000, 0x0fffff) AM_WRITE(SMH_ROM) | |
| 470 | AM_RANGE(0x400000, 0x40ffff) AM_WRITE(sharedram_w) AM_BASE(&sharedram) AM_SIZE(&sharedram_size) | |
| 471 | AM_RANGE(0x500000, 0x503fff) AM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE(&paletteram16) | |
| 454 | static ADDRESS_MAP_START( topspeed_map, ADDRESS_SPACE_PROGRAM, 16 ) | |
| 455 | AM_RANGE(0x000000, 0x0fffff) AM_ROM | |
| 456 | AM_RANGE(0x400000, 0x40ffff) AM_READWRITE(sharedram_r, sharedram_w) AM_BASE(&sharedram) AM_SIZE(&sharedram_size) | |
| 457 | AM_RANGE(0x500000, 0x503fff) AM_RAM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE(&paletteram16) | |
| 472 | 458 | AM_RANGE(0x600002, 0x600003) AM_WRITE(cpua_ctrl_w) |
| 473 | AM_RANGE(0x7e0000, 0x7e0001) AM_WRITE(taitosound_port16_lsb_w) | |
| 474 | AM_RANGE(0x7e0002, 0x7e0003) AM_WRITE(taitosound_comm16_lsb_w) | |
| 475 | AM_RANGE(0x800000, 0x8003ff) AM_WRITE(SMH_RAM) AM_BASE(&topspeed_raster_ctrl) | |
| 476 | AM_RANGE(0x800400, 0x80ffff) AM_WRITE(SMH_RAM) | |
| 477 | AM_RANGE(0xa00000, 0xa0ffff) AM_WRITE(PC080SN_word_0_w) | |
| 459 | AM_RANGE(0x7e0000, 0x7e0001) AM_READNOP AM_WRITE8(taitosound_port_w, 0x00ff) | |
| 460 | AM_RANGE(0x7e0002, 0x7e0003) AM_READWRITE8(taitosound_comm_r, taitosound_comm_w, 0x00ff) | |
| 461 | AM_RANGE(0x800000, 0x8003ff) AM_RAM AM_BASE(&topspeed_raster_ctrl) | |
| 462 | AM_RANGE(0x800400, 0x80ffff) AM_RAM | |
| 463 | AM_RANGE(0xa00000, 0xa0ffff) AM_READWRITE(PC080SN_word_0_r, PC080SN_word_0_w) | |
| 478 | 464 | AM_RANGE(0xa20000, 0xa20003) AM_WRITE(PC080SN_yscroll_word_0_w) |
| 479 | 465 | AM_RANGE(0xa40000, 0xa40003) AM_WRITE(PC080SN_xscroll_word_0_w) |
| 480 | 466 | AM_RANGE(0xa50000, 0xa50003) AM_WRITE(PC080SN_ctrl_word_0_w) |
| 481 | AM_RANGE(0xb00000, 0xb0ffff) AM_WRITE(PC080SN_word_1_w) | |
| 467 | AM_RANGE(0xb00000, 0xb0ffff) AM_READWRITE(PC080SN_word_1_r, PC080SN_word_1_w) | |
| 482 | 468 | AM_RANGE(0xb20000, 0xb20003) AM_WRITE(PC080SN_yscroll_word_1_w) |
| 483 | 469 | AM_RANGE(0xb40000, 0xb40003) AM_WRITE(PC080SN_xscroll_word_1_w) |
| 484 | 470 | AM_RANGE(0xb50000, 0xb50003) AM_WRITE(PC080SN_ctrl_word_1_w) |
| 485 | AM_RANGE(0xd00000, 0xd00fff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) | |
| 486 | ||
| 487 | AM_RANGE(0xe00000, 0xe0ffff) AM_WRITE(SMH_RAM) AM_BASE(&topspeed_spritemap) | |
| 471 | AM_RANGE(0xd00000, 0xd00fff) AM_RAM AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) | |
| 472 | AM_RANGE(0xe00000, 0xe0ffff) AM_RAM AM_BASE(&topspeed_spritemap) | |
| 488 | 473 | ADDRESS_MAP_END |
| 489 | 474 | |
| 490 | static ADDRESS_MAP_START( topspeed_cpub_readmem, ADDRESS_SPACE_PROGRAM, 16 ) | |
| 491 | AM_RANGE(0x000000, 0x01ffff) AM_READ(SMH_ROM) | |
| 492 | AM_RANGE(0x400000, 0x40ffff) AM_READ(sharedram_r) | |
| 493 | AM_RANGE(0x880000, 0x880001) AM_READ(topspeed_input_bypass_r) | |
| 494 | AM_RANGE(0x880002, 0x880003) AM_READ(TC0220IOC_halfword_port_r) | |
| 495 | AM_RANGE(0x900000, 0x9003ff) AM_READ(topspeed_motor_r) /* motor CPU */ | |
| 475 | static ADDRESS_MAP_START( topspeed_cpub_map, ADDRESS_SPACE_PROGRAM, 16 ) | |
| 476 | AM_RANGE(0x000000, 0x01ffff) AM_ROM | |
| 477 | AM_RANGE(0x400000, 0X40ffff) AM_READWRITE(sharedram_r, sharedram_w) AM_BASE(&sharedram) | |
| 478 | AM_RANGE(0x880000, 0x880001) AM_READWRITE(topspeed_input_bypass_r, TC0220IOC_halfword_portreg_w) | |
| 479 | AM_RANGE(0x880002, 0x880003) AM_READWRITE(TC0220IOC_halfword_port_r, TC0220IOC_halfword_port_w) | |
| 480 | AM_RANGE(0x900000, 0x9003ff) AM_READWRITE(topspeed_motor_r, topspeed_motor_w) /* motor CPU */ | |
| 496 | 481 | ADDRESS_MAP_END |
| 497 | 482 | |
| 498 | static ADDRESS_MAP_START( topspeed_cpub_writemem, ADDRESS_SPACE_PROGRAM, 16 ) | |
| 499 | AM_RANGE(0x000000, 0x01ffff) AM_WRITE(SMH_ROM) | |
| 500 | AM_RANGE(0x400000, 0X40ffff) AM_WRITE(sharedram_w) AM_BASE(&sharedram) | |
| 501 | AM_RANGE(0x880000, 0x880001) AM_WRITE(TC0220IOC_halfword_portreg_w) | |
| 502 | AM_RANGE(0x880002, 0x880003) AM_WRITE(TC0220IOC_halfword_port_w) | |
| 503 | AM_RANGE(0x900000, 0x9003ff) AM_WRITE(topspeed_motor_w) /* motor CPU */ | |
| 504 | ADDRESS_MAP_END | |
| 505 | 483 | |
| 506 | ||
| 507 | 484 | /***************************************************************************/ |
| 508 | 485 | |
| 509 | static ADDRESS_MAP_START( z80_readmem, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 510 | AM_RANGE(0x0000, 0x3fff) AM_READ(SMH_ROM) | |
| 511 | AM_RANGE(0x4000, 0x7fff) AM_READ(SMH_BANK10) | |
| 512 | AM_RANGE(0x8000, 0x8fff) AM_READ(SMH_RAM) | |
| 513 | AM_RANGE(0x9000, 0x9001) AM_DEVREAD("ym", ym2151_r) | |
| 514 | AM_RANGE(0xa001, 0xa001) AM_READ(taitosound_slave_comm_r) | |
| 515 | ADDRESS_MAP_END | |
| 516 | ||
| 517 | static ADDRESS_MAP_START( z80_writemem, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 518 | AM_RANGE(0x0000, 0x7fff) AM_WRITE(SMH_ROM) | |
| 519 | AM_RANGE(0x8000, 0x8fff) AM_WRITE(SMH_RAM) | |
| 520 | AM_RANGE(0x9000, 0x9001) AM_DEVWRITE("ym", ym2151_w) | |
| 486 | static ADDRESS_MAP_START( z80_map, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 487 | AM_RANGE(0x0000, 0x3fff) AM_ROM | |
| 488 | AM_RANGE(0x4000, 0x7fff) AM_ROMBANK(10) | |
| 489 | AM_RANGE(0x8000, 0x8fff) AM_RAM | |
| 490 | AM_RANGE(0x9000, 0x9001) AM_DEVREADWRITE("ym", ym2151_r, ym2151_w) | |
| 521 | 491 | AM_RANGE(0xa000, 0xa000) AM_WRITE(taitosound_slave_port_w) |
| 522 | AM_RANGE(0xa001, 0xa001) AM_WRITE(taitosound_slave_comm_w) | |
| 492 | AM_RANGE(0xa001, 0xa001) AM_READWRITE(taitosound_slave_comm_r, taitosound_slave_comm_w) | |
| 523 | 493 | AM_RANGE(0xb000, 0xb000) AM_DEVWRITE("msm", topspeed_msm5205_address_w) |
| 524 | 494 | // AM_RANGE(0xb400, 0xb400) // msm5205 start? doesn't seem to work right |
| 525 | 495 | AM_RANGE(0xb800, 0xb800) AM_DEVWRITE("msm", topspeed_msm5205_stop_w) |
| r4470 | r4471 | |
| 705 | 675 | |
| 706 | 676 | /* basic machine hardware */ |
| 707 | 677 | MDRV_CPU_ADD("maincpu", M68000, 12000000) /* 12 MHz ??? */ |
| 708 | MDRV_CPU_PROGRAM_MAP(topspeed_ | |
| 678 | MDRV_CPU_PROGRAM_MAP(topspeed_ | |
| 709 | 679 | MDRV_CPU_VBLANK_INT("screen", topspeed_interrupt) |
| 710 | 680 | |
| 711 | 681 | MDRV_CPU_ADD("audiocpu", Z80,16000000/4) /* 4 MHz ??? */ |
| 712 | MDRV_CPU_PROGRAM_MAP(z80_ | |
| 682 | MDRV_CPU_PROGRAM_MAP(z80_ | |
| 713 | 683 | |
| 714 | 684 | MDRV_CPU_ADD("sub", M68000, 12000000) /* 12 MHz ??? */ |
| 715 | MDRV_CPU_PROGRAM_MAP(topspeed_cpub_ | |
| 685 | MDRV_CPU_PROGRAM_MAP(topspeed_cpub_ | |
| 716 | 686 | MDRV_CPU_VBLANK_INT("screen", topspeed_cpub_interrupt) |
| 717 | 687 | |
| 718 | 688 | MDRV_MACHINE_START(topspeed) |
| r4470 | r4471 | |
|---|---|---|
| 580 | 580 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_NAME("Service Button") PORT_CODE(KEYCODE_8) |
| 581 | 581 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN1 ) |
| 582 | 582 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN2 ) |
| 583 | PORT_DIPNAME( 0x0c, 0x00, "Network ID" ) | |
| 583 | PORT_DIPNAME( 0x0c, 0x00, "Network ID" ) PORT_DIPLOCATION("SW:2,1") | |
| 584 | 584 | PORT_DIPSETTING( 0x0c, "1" ) |
| 585 | 585 | PORT_DIPSETTING( 0x08, "2" ) |
| 586 | 586 | PORT_DIPSETTING( 0x04, "3" ) |
| 587 | 587 | PORT_DIPSETTING( 0x00, "4" ) |
| 588 | PORT_DIPNAME( 0x02, 0x02, "Transmission Type" ) | |
| 588 | PORT_DIPNAME( 0x02, 0x02, "Transmission Type" ) PORT_DIPLOCATION("SW:3") | |
| 589 | 589 | PORT_DIPSETTING( 0x02, "Button" ) |
| 590 | 590 | PORT_DIPSETTING( 0x00, "'T'Gate" ) |
| 591 | PORT_DIPNAME( 0x01, 0x01, "CG Board Type" ) | |
| 591 | PORT_DIPNAME( 0x01, 0x01, "CG Board Type" ) PORT_DIPLOCATION("SW:4") | |
| 592 | 592 | PORT_DIPSETTING( 0x01, DEF_STR( Single ) ) |
| 593 | 593 | PORT_DIPSETTING( 0x00, "Twin" ) |
| 594 | 594 | |
| r4470 | r4471 | |
| 624 | 624 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_NAME("Service Button") PORT_CODE(KEYCODE_8) |
| 625 | 625 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN1 ) |
| 626 | 626 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN2 ) |
| 627 | PORT_DIPNAME( 0x0c, 0x00, "Network ID" ) | |
| 627 | PORT_DIPNAME( 0x0c, 0x00, "Network ID" ) PORT_DIPLOCATION("SW:2,1") | |
| 628 | 628 | PORT_DIPSETTING( 0x0c, "1" ) |
| 629 | 629 | PORT_DIPSETTING( 0x08, "2" ) |
| 630 | 630 | PORT_DIPSETTING( 0x04, "3" ) |
| 631 | 631 | PORT_DIPSETTING( 0x00, "4" ) |
| 632 | PORT_DIPNAME( 0x02, 0x02, "Transmission Type" ) | |
| 632 | PORT_DIPNAME( 0x02, 0x02, "Transmission Type" ) PORT_DIPLOCATION("SW:3") | |
| 633 | 633 | PORT_DIPSETTING( 0x02, "Button" ) |
| 634 | 634 | PORT_DIPSETTING( 0x00, "'T'Gate" ) |
| 635 | PORT_DIPNAME( 0x01, 0x01, "CG Board Type" ) | |
| 635 | PORT_DIPNAME( 0x01, 0x01, "CG Board Type" ) PORT_DIPLOCATION("SW:4") | |
| 636 | 636 | PORT_DIPSETTING( 0x01, DEF_STR( Single ) ) |
| 637 | 637 | PORT_DIPSETTING( 0x00, "Twin" ) |
| 638 | 638 | |
| r4470 | r4471 | |
| 668 | 668 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_NAME("Service Button") PORT_CODE(KEYCODE_8) |
| 669 | 669 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN1 ) |
| 670 | 670 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN2 ) |
| 671 | PORT_DIPNAME( 0x08, 0x00, "DIP 1" ) | |
| 671 | PORT_DIPNAME( 0x08, 0x00, "DIP 1" ) PORT_DIPLOCATION("SW:1") | |
| 672 | 672 | PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) |
| 673 | 673 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 674 | PORT_DIPNAME( 0x04, 0x04, "DIP 2" ) | |
| 674 | PORT_DIPNAME( 0x04, 0x04, "DIP 2" ) PORT_DIPLOCATION("SW:2") | |
| 675 | 675 | PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) |
| 676 | 676 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 677 | PORT_DIPNAME( 0x02, 0x02, "DIP 3" ) | |
| 677 | PORT_DIPNAME( 0x02, 0x02, "DIP 3" ) PORT_DIPLOCATION("SW:3") | |
| 678 | 678 | PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) |
| 679 | 679 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 680 | PORT_DIPNAME( 0x01, 0x00, "DIP 4" ) | |
| 680 | PORT_DIPNAME( 0x01, 0x00, "DIP 4" ) PORT_DIPLOCATION("SW:4") | |
| 681 | 681 | PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) |
| 682 | 682 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 683 | 683 |
| r4470 | r4471 | |
|---|---|---|
| 130 | 130 | AM_RANGE(0xd001, 0xd001) AM_DEVREAD("ay", ay8910_r) |
| 131 | 131 | AM_RANGE(0xd008, 0xd008) AM_WRITE(dominob_d008_w) |
| 132 | 132 | AM_RANGE(0xd00c, 0xd00c) AM_READ_PORT("IN0") |
| 133 | AM_RANGE(0xd010, 0xd010) AM_READ_PORT("IN1") AM_WRITE | |
| 133 | AM_RANGE(0xd010, 0xd010) AM_READ_PORT("IN1") AM_WRITE | |
| 134 | 134 | AM_RANGE(0xd018, 0xd018) AM_READ_PORT("IN2") AM_WRITENOP |
| 135 | 135 | |
| 136 | 136 | AM_RANGE(0xe000, 0xe7ff) AM_RAM AM_BASE(&videoram) |
| r4470 | r4471 | |
|---|---|---|
| 628 | 628 | ROM_END |
| 629 | 629 | |
| 630 | 630 | |
| 631 | /* | |
| 632 | This (rev 7) is the most recent Pit Fighter pcb that we have documented. | |
| 633 | It has printed Atari stickers that show the following: | |
| 634 | ||
| 635 | 2 main board stickers: | |
| 636 | ||
| 637 | PIT FIGHTER | |
| 638 | A0478936-03 | |
| 639 | ||
| 640 | WO#-PITPCB07 | |
| 641 | G1 REV.D BD. | |
| 642 | ||
| 643 | 2 stickers on JSA Audio II board: | |
| 644 | ||
| 645 | JSA II REV.B BD. | |
| 646 | PIT | |
| 647 | FIGHTER | |
| 648 | A047184-05 | |
| 649 | ||
| 650 | PIT | |
| 651 | JSA | |
| 652 | 007 | |
| 653 | ||
| 654 | The card stuck into location 10P has 1 sticker: | |
| 655 | ||
| 656 | OOPSPCB01 | |
| 657 | G1 OOPS | |
| 658 | PCB | |
| 659 | A048490-01 | |
| 660 | ||
| 661 | The chip on the 10P card is labeled 136079-2053. | |
| 662 | */ | |
| 663 | ||
| 631 | 664 | ROM_START( pitfight ) |
| 632 | 665 | ROM_REGION( 0x80000, "maincpu", 0 ) /* 8*64k for 68000 code */ |
| 666 | ROM_LOAD16_BYTE( "136081-7028.05d", 0x00000, 0x10000, CRC(7391dc8b) SHA1(2140b21e71871c2cb81cccd92f536763d955ec97) ) | |
| 667 | ROM_LOAD16_BYTE( "136081-7029.05b", 0x00001, 0x10000, CRC(b3b88382) SHA1(0a0de330d7261c7eaa5aa705328d6c0c28d27536) ) | |
| 668 | ROM_LOAD16_BYTE( "136081-7030.15d", 0x20000, 0x10000, CRC(5fd5a0b1) SHA1(5d4711e8d10176b6989c4db012dbb4e29860590c) ) | |
| 669 | ROM_LOAD16_BYTE( "136081-7031.15b", 0x20001, 0x10000, CRC(e14a1d0c) SHA1(734fa1cd5ad835fa77c686006993ea9358e3b072) ) | |
| 670 | ||
| 671 | ROM_REGION( 0x14000, "jsa", 0 ) /* 64k for 6502 code */ | |
| 672 | ROM_LOAD( "136081-1060.1b", 0x10000, 0x4000, CRC(231d71d7) SHA1(24622eee5fe873ef81e1df2691bd7a1d3ea7ef6b) ) | |
| 673 | ROM_CONTINUE( 0x04000, 0xc000 ) | |
| 674 | ||
| 675 | ROM_REGION( 0x0a0000, "gfx1", ROMREGION_DISPOSE ) | |
| 676 | ROM_LOAD( "136081-1017.130m", 0x000000, 0x10000, CRC(ad3cfea5) SHA1(7b6fec131230e84ab87b7fc95f08989916f30e02) ) /* playfield, planes 0-3 odd */ | |
| 677 | ROM_LOAD( "136081-1018.120m", 0x010000, 0x10000, CRC(1a0f8bcf) SHA1(b965e73246db9507d2ad42dfcb033692b43b9b7a) ) | |
| 678 | ROM_LOAD( "136081-1021.90m", 0x040000, 0x10000, CRC(777efee3) SHA1(07591f11685c4c75c24c55fd242878253d32481b) ) /* playfield, planes 0-3 even */ | |
| 679 | ROM_LOAD( "136081-1022.75m", 0x050000, 0x10000, CRC(524319d0) SHA1(6f47a69d7d4e2a8f79b7470138e8b4edd6d0b2bb) ) | |
| 680 | ROM_LOAD( "136081-1025.45m", 0x080000, 0x10000, CRC(fc41691a) SHA1(4ef2f9093f20d27e1ba7d218b90ff6abb1f33646) ) /* playfield plane 4 */ | |
| 681 | ||
| 682 | ROM_REGION( 0x020000, "gfx2", ROMREGION_DISPOSE ) | |
| 683 | ROM_LOAD( "136081-1027.15l", 0x000000, 0x10000, CRC(a59f381d) SHA1(b14e878340ad2adbf4f6d4fc331c58f62037c7c7) ) /* alphanumerics */ | |
| 684 | ||
| 685 | ROM_REGION16_BE( 0x200000, "gfx3", 0 ) | |
| 686 | ROM_LOAD16_BYTE( "136081-1001.65r", 0x000001, 0x20000, CRC(3af31444) SHA1(91fc02786b82abdf12ebdbaacdd1f158f8ce6d06) ) | |
| 687 | ROM_LOAD16_BYTE( "136081-1002.65n", 0x000000, 0x20000, CRC(f1d76a4c) SHA1(ca769d2cdd096f4a54f7bcaa4840fc9ffaabf499) ) | |
| 688 | ROM_LOAD16_BYTE( "136081-1003.70r", 0x040001, 0x20000, CRC(28c41c2a) SHA1(75cd527f98c8475e3b880f53c5a355d6c3bd8766) ) | |
| 689 | ROM_LOAD16_BYTE( "136081-1004.70n", 0x040000, 0x20000, CRC(977744da) SHA1(10f388eef999f702863e2b1a02a188df9a0a6086) ) | |
| 690 | ROM_LOAD16_BYTE( "136081-1005.75r", 0x080001, 0x20000, CRC(ae59aef2) SHA1(44eda8a01016f6911b47df973b9427ff9f2ecef0) ) | |
| 691 | ROM_LOAD16_BYTE( "136081-1006.75n", 0x080000, 0x20000, CRC(b6ccd77e) SHA1(f09a829143abd972699f3e671d4a1362fd362b19) ) | |
| 692 | ROM_LOAD16_BYTE( "136081-1007.90r", 0x0c0001, 0x20000, CRC(ba33b0c0) SHA1(be09ba8796d3db2a859a2776336c1e9acbdaee95) ) | |
| 693 | ROM_LOAD16_BYTE( "136081-1008.90n", 0x0c0000, 0x20000, CRC(09bd047c) SHA1(c283d526c7b08ce06e3981d1fc69433ea0dae657) ) | |
| 694 | ROM_LOAD16_BYTE( "136081-1009.100r", 0x100001, 0x20000, CRC(ab85b00b) SHA1(6c60b9b58ff93ffdd1cffc49c3ea67400d56bf61) ) | |
| 695 | ROM_LOAD16_BYTE( "136081-1010.100n", 0x100000, 0x20000, CRC(eca94bdc) SHA1(c474dfc9dc4460cd2f40cc6012214e760b133c0d) ) | |
| 696 | ROM_LOAD16_BYTE( "136081-1011.115r", 0x140001, 0x20000, CRC(a86582fd) SHA1(8b557622c53c8ff388248ea54d3cc85b0d77cafb) ) | |
| 697 | ROM_LOAD16_BYTE( "136081-1012.115n", 0x140000, 0x20000, CRC(efd1152d) SHA1(77d1752b76b079c9e834a8b73e8601873d3afdbe) ) | |
| 698 | ROM_LOAD16_BYTE( "136081-1013.120r", 0x180001, 0x20000, CRC(a141379e) SHA1(d4c98b364495e19e2e7bee5431834f38ba20a514) ) | |
| 699 | ROM_LOAD16_BYTE( "136081-1014.120n", 0x180000, 0x20000, CRC(93bfcc15) SHA1(4d8f6c8c279533b2fc35f87c3eb5ed614cb03248) ) | |
| 700 | ROM_LOAD16_BYTE( "136081-1015.130r", 0x1c0001, 0x20000, CRC(9378ad0b) SHA1(909f9879f5b8fc3ed0622fd27d903ccb1f7a90c6) ) | |
| 701 | ROM_LOAD16_BYTE( "136081-1016.130n", 0x1c0000, 0x20000, CRC(19c3fbe0) SHA1(ba28f71edb04387f009afe39bfe0ffeff8fbf5e9) ) | |
| 702 | ||
| 703 | ROM_REGION( 0x40000, "adpcm", 0 ) /* 256k for ADPCM samples */ | |
| 704 | ROM_LOAD( "136081-1061.7k", 0x00000, 0x10000, CRC(5b0468c6) SHA1(c910344622386e6be336fe04bc0be758ac6c59db) ) | |
| 705 | ROM_LOAD( "136081-1062.7j", 0x10000, 0x10000, CRC(f73fe3cb) SHA1(547b5c4add617237c4c851751a27cda091fb7933) ) | |
| 706 | ROM_LOAD( "136081-1063.7e", 0x20000, 0x10000, CRC(aa93421d) SHA1(f319057dadcb77a489d0bcffb24e0afe88adc769) ) | |
| 707 | ROM_LOAD( "136081-1064.7d", 0x30000, 0x10000, CRC(33f045d5) SHA1(1fc7bedafeb3c1ffa0f115538cc300959c8d4601) ) | |
| 708 | ||
| 709 | ROM_REGION( 0x0600, "proms", ROMREGION_DISPOSE ) /* microcode for growth renderer */ | |
| 710 | ROM_LOAD( "136081-1040.30s", 0x0000, 0x0200, CRC(9b0f8b95) SHA1(d03987fe2d50a9f7769c600885bd1c7e1dee0789) ) | |
| 711 | ROM_LOAD( "136081-1041.25s", 0x0200, 0x0200, CRC(f7ba6153) SHA1(d58792c9e9ea72d8f53f41ac1b420a86db6da3a3) ) | |
| 712 | ROM_LOAD( "136081-1042.20s", 0x0400, 0x0200, CRC(3572fe68) SHA1(ab34ff337c16cd4d568cd2bd6a5063f5ed97368f) ) | |
| 713 | ||
| 714 | ROM_REGION( 0x1200, "plds", ROMREGION_DISPOSE ) | |
| 715 | ROM_LOAD( "gal16v8a-136081-1043.15e", 0x0000, 0x0117, CRC(649d9c0d) SHA1(bba2f3cf4607946340de27157c799f6b84c48584) ) | |
| 716 | ROM_LOAD( "gal16v8a-136079-1045.40p", 0x0200, 0x0117, CRC(535c4d2e) SHA1(a428eef81723546566216e6af0db3baebda9a1f2) ) | |
| 717 | ROM_LOAD( "gal16v8a-136079-1046.65d", 0x0400, 0x0117, CRC(38b22b2c) SHA1(cf9051129a790f3427e1c6d74a5c66f16acbd4be) ) | |
| 718 | ROM_LOAD( "gal16v8a-136079-1047.40s", 0x0600, 0x0117, CRC(20839904) SHA1(134d1b379b7708ce33fbbf75e5c879dad971cd22) ) | |
| 719 | ROM_LOAD( "gal16v8a-136079-1048.125f", 0x0800, 0x0117, CRC(d16e8d6e) SHA1(61cc270d80cb34f63fc407e41b55f95d59717757) ) | |
| 720 | ROM_LOAD( "gal16v8a-136079-1049.120f", 0x0a00, 0x0117, CRC(68440ab1) SHA1(2f4eabac27d9a5778fcba0d9aa47460bcb153378) ) | |
| 721 | ROM_LOAD( "gal16v8a-136079-1050.115f", 0x0c00, 0x0117, CRC(20dc296a) SHA1(9179fca2efcdd0782bb15cbf1923670806755bc8) ) | |
| 722 | ROM_LOAD( "gal16v8a-136079-1051.105f", 0x0e00, 0x0117, CRC(45f0cb5f) SHA1(a7043231f68374871253da50cfd905519f283d9e) ) | |
| 723 | ROM_LOAD( "gal16v8a-136079-1052.30n", 0x1000, 0x0117, CRC(6b3d2669) SHA1(143178d9c36a87aa58034faea2e4d4038ae565e7) ) | |
| 724 | ROM_END | |
| 725 | ||
| 726 | ||
| 727 | ROM_START( pitfigh6 ) | |
| 728 | ROM_REGION( 0x80000, "maincpu", 0 ) /* 8*64k for 68000 code */ | |
| 633 | 729 | ROM_LOAD16_BYTE( "136081-6028.05d", 0x00000, 0x10000, CRC(dae1d895) SHA1(d3852b932e318e3f6ab034aba8210d896f9f08da) ) |
| 634 | 730 | ROM_LOAD16_BYTE( "136081-6029.05b", 0x00001, 0x10000, CRC(4df13418) SHA1(e5469fbdd7263ca651d5cb7518576e4f9c4892e7) ) |
| 635 | 731 | ROM_LOAD16_BYTE( "136081-6030.15d", 0x20000, 0x10000, CRC(72b4b249) SHA1(295c707783ca40d6b68eb36b4511774e889bf447) ) |
| r4470 | r4471 | |
| 965 | 1061 | static DRIVER_INIT( hydra ) { init_g1_common(machine, 0x078000, 116, 0); } |
| 966 | 1062 | static DRIVER_INIT( hydrap ) { init_g1_common(machine, 0x000000, 0, 0); } |
| 967 | 1063 | |
| 1064 | static DRIVER_INIT( pitfigh7 ) { init_g1_common(machine, 0x038000, 112, 2); } | |
| 968 | 1065 | static DRIVER_INIT( pitfight ) { init_g1_common(machine, 0x038000, 111, 1); } |
| 969 | 1066 | static DRIVER_INIT( pitfighj ) { init_g1_common(machine, 0x038000, 113, 1); } |
| 970 | 1067 | static DRIVER_INIT( pitfighb ) { init_g1_common(machine, 0x038000, -1, 1); } |
| 971 | 1068 | |
| 972 | 1069 | |
| 973 | ||
| 974 | 1070 | /************************************* |
| 975 | 1071 | * |
| 976 | 1072 | * Game driver(s) |
| r4470 | r4471 | |
| 981 | 1077 | GAME( 1990, hydrap, hydra, atarig1, hydra, hydrap, ROT0, "Atari Games", "Hydra (prototype 5/14/90)", GAME_SUPPORTS_SAVE ) |
| 982 | 1078 | GAME( 1990, hydrap2, hydra, atarig1, hydra, hydrap, ROT0, "Atari Games", "Hydra (prototype 5/25/90)", GAME_SUPPORTS_SAVE ) |
| 983 | 1079 | |
| 984 | GAME( 1990, pitfight, 0, atarig1, pitfight, pitfighj, ROT0, "Atari Games", "Pit Fighter (rev 5)", GAME_SUPPORTS_SAVE ) | |
| 1080 | GAME( 1990, pitfight, 0, atarig1, pitfight, pitfigh7, ROT0, "Atari Games", "Pit Fighter (rev 7)", GAME_SUPPORTS_SAVE ) | |
| 1081 | GAME( 1990, pitfigh6, pitfight, atarig1, pitfight, pitfighj, ROT0, "Atari Games", "Pit Fighter (rev 6)", GAME_SUPPORTS_SAVE ) | |
| 985 | 1082 | GAME( 1990, pitfigh4, pitfight, atarig1, pitfight, pitfight, ROT0, "Atari Games", "Pit Fighter (rev 4)", GAME_SUPPORTS_SAVE ) |
| 986 | 1083 | GAME( 1990, pitfigh3, pitfight, atarig1, pitfight, pitfight, ROT0, "Atari Games", "Pit Fighter (rev 3)", GAME_SUPPORTS_SAVE ) |
| 987 | 1084 | GAME( 1990, pitfighj, pitfight, atarig1, pitfighj, pitfighj, ROT0, "Atari Games", "Pit Fighter (Japan, 2 players)", GAME_SUPPORTS_SAVE ) |
| r4470 | r4471 | |
|---|---|---|
| 32 | 32 | #include "video/konamiic.h" |
| 33 | 33 | #include "sound/2203intf.h" |
| 34 | 34 | #include "sound/upd7759.h" |
| 35 | #include "konamipt.h" | |
| 35 | 36 | |
| 36 | 37 | /* from video */ |
| 37 | 38 | int bladestl_spritebank; |
| r4470 | r4471 | |
| 124 | 125 | AM_RANGE(0x2f00, 0x2f03) AM_READ(trackball_r) /* Trackballs */ |
| 125 | 126 | AM_RANGE(0x2f40, 0x2f40) AM_WRITE(bladestl_bankswitch_w) /* bankswitch control */ |
| 126 | 127 | AM_RANGE(0x2f80, 0x2f9f) AM_READWRITE(K051733_r, K051733_w) /* Protection: 051733 */ |
| 127 | AM_RANGE(0x2fc0, 0x2fc0) AM_WRITE | |
| 128 | AM_RANGE(0x2fc0, 0x2fc0) AM_WRITE | |
| 128 | 129 | AM_RANGE(0x4000, 0x5fff) AM_RAM /* Work RAM */ |
| 129 | 130 | AM_RANGE(0x6000, 0x7fff) AM_READWRITE(SMH_BANK1, SMH_RAM) /* banked ROM */ |
| 130 | 131 | AM_RANGE(0x8000, 0xffff) AM_ROM |
| r4470 | r4471 | |
| 135 | 136 | AM_RANGE(0x1000, 0x1001) AM_DEVREADWRITE("ym", ym2203_r, ym2203_w) /* YM2203 */ |
| 136 | 137 | AM_RANGE(0x3000, 0x3000) AM_DEVWRITE("upd", bladestl_speech_ctrl_w) /* UPD7759 */ |
| 137 | 138 | AM_RANGE(0x4000, 0x4000) AM_DEVREAD("upd", bladestl_speech_busy_r) /* UPD7759 */ |
| 138 | AM_RANGE(0x5000, 0x5000) AM_WRITE | |
| 139 | AM_RANGE(0x5000, 0x5000) AM_WRITE | |
| 139 | 140 | AM_RANGE(0x6000, 0x6000) AM_READ(soundlatch_r) /* soundlatch_r */ |
| 140 | 141 | AM_RANGE(0x8000, 0xffff) AM_ROM |
| 141 | 142 | ADDRESS_MAP_END |
| r4470 | r4471 | |
| 148 | 149 | |
| 149 | 150 | static INPUT_PORTS_START( bladestl ) |
| 150 | 151 | PORT_START("DSW1") |
| 151 | PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW1:1,2,3,4") | |
| 152 | PORT_DIPSETTING( 0x02, DEF_STR( 4C_1C ) ) | |
| 153 | PORT_DIPSETTING( 0x05, DEF_STR( 3C_1C ) ) | |
| 154 | PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) ) | |
| 155 | PORT_DIPSETTING( 0x04, DEF_STR( 3C_2C ) ) | |
| 156 | PORT_DIPSETTING( 0x01, DEF_STR( 4C_3C ) ) | |
| 157 | PORT_DIPSETTING( 0x0f, DEF_STR( 1C_1C ) ) | |
| 158 | PORT_DIPSETTING( 0x00, DEF_STR( 4C_5C ) ) | |
| 159 | PORT_DIPSETTING( 0x03, DEF_STR( 3C_4C ) ) | |
| 160 | PORT_DIPSETTING( 0x07, DEF_STR( 2C_3C ) ) | |
| 161 | PORT_DIPSETTING( 0x0e, DEF_STR( 1C_2C ) ) | |
| 162 | PORT_DIPSETTING( 0x06, DEF_STR( 2C_5C ) ) | |
| 163 | PORT_DIPSETTING( 0x0d, DEF_STR( 1C_3C ) ) | |
| 164 | PORT_DIPSETTING( 0x0c, DEF_STR( 1C_4C ) ) | |
| 165 | PORT_DIPSETTING( 0x0b, DEF_STR( 1C_5C ) ) | |
| 166 | PORT_DIPSETTING( 0x0a, DEF_STR( 1C_6C ) ) | |
| 167 | PORT_DIPSETTING( 0x09, DEF_STR( 1C_7C ) ) | |
| 168 | PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW1:5,6,7,8") | |
| 169 | PORT_DIPSETTING( 0x20, DEF_STR( 4C_1C ) ) | |
| 170 | PORT_DIPSETTING( 0x50, DEF_STR( 3C_1C ) ) | |
| 171 | PORT_DIPSETTING( 0x80, DEF_STR( 2C_1C ) ) | |
| 172 | PORT_DIPSETTING( 0x40, DEF_STR( 3C_2C ) ) | |
| 173 | PORT_DIPSETTING( 0x10, DEF_STR( 4C_3C ) ) | |
| 174 | PORT_DIPSETTING( 0xf0, DEF_STR( 1C_1C ) ) | |
| 175 | PORT_DIPSETTING( 0x00, DEF_STR( 4C_5C ) ) | |
| 176 | PORT_DIPSETTING( 0x30, DEF_STR( 3C_4C ) ) | |
| 177 | PORT_DIPSETTING( 0x70, DEF_STR( 2C_3C ) ) | |
| 178 | PORT_DIPSETTING( 0xe0, DEF_STR( 1C_2C ) ) | |
| 179 | PORT_DIPSETTING( 0x60, DEF_STR( 2C_5C ) ) | |
| 180 | PORT_DIPSETTING( 0xd0, DEF_STR( 1C_3C ) ) | |
| 181 | PORT_DIPSETTING( 0xc0, DEF_STR( 1C_4C ) ) | |
| 182 | PORT_DIPSETTING( 0xb0, DEF_STR( 1C_5C ) ) | |
| 183 | PORT_DIPSETTING( 0xa0, DEF_STR( 1C_6C ) ) | |
| 184 | PORT_DIPSETTING( 0x90, DEF_STR( 1C_7C ) ) | |
| 152 | KONAMI_COINAGE_ALT_LOC(SW1) | |
| 185 | 153 | |
| 186 | 154 | PORT_START("DSW2") |
| 187 | 155 | PORT_DIPUNUSED_DIPLOC( 0x01, 0x01, "SW2:1" ) |
| r4470 | r4471 | |
| 216 | 184 | PORT_SERVICE_DIPLOC( 0x80, IP_ACTIVE_LOW, "SW3:3" ) |
| 217 | 185 | |
| 218 | 186 | PORT_START("P1") |
| 219 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) | |
| 220 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) | |
| 221 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) | |
| 222 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) | |
| 223 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) | |
| 224 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) | |
| 225 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) | |
| 187 | KONAMI8_B123(1) | |
| 226 | 188 | PORT_DIPNAME( 0x80, 0x80, "Period time set" ) PORT_DIPLOCATION("SW3:4") |
| 227 | 189 | PORT_DIPSETTING( 0x80, "4" ) |
| 228 | 190 | PORT_DIPSETTING( 0x00, "7" ) |
| 229 | 191 | |
| 230 | 192 | PORT_START("P2") |
| 231 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) | |
| 232 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) | |
| 233 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) | |
| 234 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) | |
| 235 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) | |
| 236 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) | |
| 237 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) | |
| 238 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) | |
| 193 | KONAMI8_B123_UNK(2) | |
| 239 | 194 | |
| 240 | 195 | PORT_START("TRACKBALL_P1_1") |
| 241 | 196 | PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_Y ) PORT_SENSITIVITY(100) PORT_KEYDELTA(63) PORT_REVERSE PORT_PLAYER(1) |
| r4470 | r4471 | |
| 402 | 357 | ROM_END |
| 403 | 358 | |
| 404 | 359 | |
| 405 | ||
| 406 | 360 | GAME( 1987, bladestl, 0, bladestl, bladestl, 0, ROT90, "Konami", "Blades of Steel (version T)", 0 ) |
| 407 | 361 | GAME( 1987, bladstle, bladestl, bladestl, bladstle, 0, ROT90, "Konami", "Blades of Steel (version E)", 0 ) |
| r4470 | r4471 | |
|---|---|---|
| 112 | 112 | AM_RANGE(0xc08000, 0xc097ff) AM_MIRROR(0x046000) AM_RAM_WRITE(atarigen_alpha_w) AM_BASE(&atarigen_alpha) |
| 113 | 113 | AM_RANGE(0xc09800, 0xc09fff) AM_MIRROR(0x046000) AM_RAM_WRITE(atarimo_0_spriteram_w) AM_BASE(&atarimo_0_spriteram) |
| 114 | 114 | AM_RANGE(0xc10000, 0xc107ff) AM_MIRROR(0x047800) AM_RAM_WRITE(toobin_paletteram_w) AM_BASE(&paletteram16) |
| 115 | AM_RANGE(0xff6000, 0xff6001) AM_READ | |
| 115 | AM_RANGE(0xff6000, 0xff6001) AM_READ | |
| 116 | 116 | AM_RANGE(0xff8000, 0xff8001) AM_MIRROR(0x4500fe) AM_WRITE(watchdog_reset16_w) |
| 117 | 117 | AM_RANGE(0xff8100, 0xff8101) AM_MIRROR(0x4500fe) AM_WRITE(atarigen_sound_w) |
| 118 | 118 | AM_RANGE(0xff8300, 0xff8301) AM_MIRROR(0x45003e) AM_WRITE(toobin_intensity_w) |
| r4470 | r4471 | |
|---|---|---|
| 367 | 367 | AM_RANGE(0x88c0, 0x88c0) AM_WRITE(irq_ack_w) /* interrupt acknowledge */ |
| 368 | 368 | AM_RANGE(0x8900, 0x8900) AM_DEVWRITE("earom", atari_vg_earom_ctrl_w) |
| 369 | 369 | AM_RANGE(0x8940, 0x897f) AM_DEVWRITE("earom", atari_vg_earom_w) |
| 370 | AM_RANGE(0x8980, 0x89ed) AM_WRITE | |
| 370 | AM_RANGE(0x8980, 0x89ed) AM_WRITE | |
| 371 | 371 | AM_RANGE(0x9000, 0xffff) AM_ROM |
| 372 | 372 | ADDRESS_MAP_END |
| 373 | 373 | |
| r4470 | r4471 | |
| 376 | 376 | AM_RANGE(0x0000, 0x03ff) AM_RAM |
| 377 | 377 | AM_RANGE(0x0800, 0x0800) AM_READ_PORT("IN0") |
| 378 | 378 | AM_RANGE(0x0900, 0x0907) AM_READ(spacduel_IN3_r) /* IN1 */ |
| 379 | AM_RANGE(0x0905, 0x0906) AM_WRITE | |
| 379 | AM_RANGE(0x0905, 0x0906) AM_WRITE | |
| 380 | 380 | AM_RANGE(0x0a00, 0x0a00) AM_DEVREAD("earom", atari_vg_earom_r) |
| 381 | 381 | // AM_RANGE(0x0c00, 0x0c00) AM_WRITE(coin_counter_w) /* coin out */ |
| 382 | 382 | AM_RANGE(0x0c80, 0x0c80) AM_WRITE(avgdvg_go_w) |
| 383 | AM_RANGE(0x0d00, 0x0d00) AM_WRITE | |
| 383 | AM_RANGE(0x0d00, 0x0d00) AM_WRITE | |
| 384 | 384 | AM_RANGE(0x0d80, 0x0d80) AM_WRITE(avgdvg_reset_w) |
| 385 | 385 | AM_RANGE(0x0e00, 0x0e00) AM_WRITE(irq_ack_w) /* interrupt acknowledge */ |
| 386 | 386 | AM_RANGE(0x0e80, 0x0e80) AM_DEVWRITE("earom", atari_vg_earom_ctrl_w) |
| r4470 | r4471 | |
|---|---|---|
| 104 | 104 | AM_RANGE(0xe602, 0xe602) AM_READ_PORT("SYSTEM") |
| 105 | 105 | AM_RANGE(0xe604, 0xe604) AM_READ_PORT("DSW1") |
| 106 | 106 | AM_RANGE(0xe605, 0xe605) AM_READ_PORT("DSW2") |
| 107 | AM_RANGE(0xe606, 0xe606) AM_READ | |
| 107 | AM_RANGE(0xe606, 0xe606) AM_READ | |
| 108 | 108 | ADDRESS_MAP_END |
| 109 | 109 | |
| 110 | 110 | static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 ) |
| r4470 | r4471 | |
| 132 | 132 | static ADDRESS_MAP_START( sound_writemem, ADDRESS_SPACE_PROGRAM, 8 ) |
| 133 | 133 | AM_RANGE(0x0000, 0x1fff) AM_WRITE(SMH_ROM) |
| 134 | 134 | AM_RANGE(0x4000, 0x47ff) AM_WRITE(SMH_RAM) |
| 135 | AM_RANGE(0xffff, 0xffff) AM_WRITE | |
| 135 | AM_RANGE(0xffff, 0xffff) AM_WRITE | |
| 136 | 136 | ADDRESS_MAP_END |
| 137 | 137 | |
| 138 | 138 |
| r4470 | r4471 | |
|---|---|---|
| 260 | 260 | AM_RANGE(0x000000, 0x03ffff) AM_WRITE(SMH_ROM) |
| 261 | 261 | AM_RANGE(0x040000, 0x043fff) AM_WRITE(SMH_RAM) /* work RAM */ |
| 262 | 262 | AM_RANGE(0x080000, 0x080fff) AM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE(&paletteram16) |
| 263 | AM_RANGE(0x0e0000, 0x0e0001) AM_WRITE(SMH_NOP) /* unknown (always 0x30) */ | |
| 264 | AM_RANGE(0x100000, 0x10001f) AM_WRITE(SMH_NOP) /* 053252? (LSB) */ | |
| 263 | AM_RANGE(0x0e0000, 0x0e0001) AM_WRITENOP /* unknown (always 0x30) */ | |
| 264 | AM_RANGE(0x100000, 0x10001f) AM_WRITENOP /* 053252? (LSB) */ | |
| 265 | 265 | AM_RANGE(0x140000, 0x140001) AM_WRITE(watchdog_reset16_w) |
| 266 | 266 | AM_RANGE(0x1c0000, 0x1c001f) AM_WRITE(K051316_ctrl_0_msb_w) |
| 267 | 267 | AM_RANGE(0x1c8000, 0x1c801f) AM_WRITE(K051316_ctrl_1_msb_w) |
| r4470 | r4471 | |
| 283 | 283 | AM_RANGE(0x000000, 0x03ffff) AM_READ(SMH_ROM) |
| 284 | 284 | AM_RANGE(0x080000, 0x083fff) AM_READ(SMH_RAM) |
| 285 | 285 | AM_RANGE(0x0c0000, 0x0c1fff) AM_READ(SMH_RAM) |
| 286 | AM_RANGE(0x100000, 0x10000f) AM_READ(SMH_NOP) // K053250 #0 | |
| 287 | AM_RANGE(0x108000, 0x10800f) AM_READ(SMH_NOP) // K053250 #1 | |
| 286 | AM_RANGE(0x100000, 0x10000f) AM_READNOP // K053250 #0 | |
| 287 | AM_RANGE(0x108000, 0x10800f) AM_READNOP // K053250 #1 | |
| 288 | 288 | AM_RANGE(0x118000, 0x118fff) AM_READ(K053247_word_r) |
| 289 | 289 | AM_RANGE(0x120000, 0x120001) AM_READ(K053246_word_r) |
| 290 | 290 | AM_RANGE(0x128000, 0x128001) AM_READ(cpuB_ctrl_r) |
| 291 | 291 | AM_RANGE(0x200000, 0x203fff) AM_READ(sharedram_r) |
| 292 | 292 | AM_RANGE(0x208000, 0x20bfff) AM_READ(SMH_RAM) |
| 293 | 293 | |
| 294 | AM_RANGE(0x218000, 0x219fff) AM_READ(SMH_NOP) // K053250 #0 gfx ROM read (LSB) | |
| 295 | AM_RANGE(0x220000, 0x221fff) AM_READ(SMH_NOP) // K053250 #1 gfx ROM read (LSB) | |
| 294 | AM_RANGE(0x218000, 0x219fff) AM_READNOP // K053250 #0 gfx ROM read (LSB) | |
| 295 | AM_RANGE(0x220000, 0x221fff) AM_READNOP // K053250 #1 gfx ROM read (LSB) | |
| 296 | 296 | ADDRESS_MAP_END |
| 297 | 297 | |
| 298 | 298 | static ADDRESS_MAP_START( overdriv_writemem2, ADDRESS_SPACE_PROGRAM, 16 ) |
| 299 | 299 | AM_RANGE(0x000000, 0x03ffff) AM_WRITE(SMH_ROM) |
| 300 | 300 | AM_RANGE(0x080000, 0x083fff) AM_WRITE(SMH_RAM) /* work RAM */ |
| 301 | 301 | AM_RANGE(0x0c0000, 0x0c1fff) AM_WRITE(SMH_RAM) |
| 302 | AM_RANGE(0x100000, 0x10000f) AM_WRITE(SMH_NOP) // K053250 #0 | |
| 303 | AM_RANGE(0x108000, 0x10800f) AM_WRITE(SMH_NOP) // K053250 #1 | |
| 302 | AM_RANGE(0x100000, 0x10000f) AM_WRITENOP // K053250 #0 | |
| 303 | AM_RANGE(0x108000, 0x10800f) AM_WRITENOP // K053250 #1 | |
| 304 | 304 | AM_RANGE(0x118000, 0x118fff) AM_WRITE(K053247_word_w) |
| 305 | 305 | AM_RANGE(0x128000, 0x128001) AM_WRITE(cpuB_ctrl_w) /* enable K053247 ROM reading, plus something else */ |
| 306 | 306 | AM_RANGE(0x130000, 0x130007) AM_WRITE(K053246_word_w) |
| r4470 | r4471 | |
|---|---|---|
| 14 | 14 | #include "video/konamiic.h" |
| 15 | 15 | #include "sound/2151intf.h" |
| 16 | 16 | #include "sound/k007232.h" |
| 17 | #include "konamipt.h" | |
| 17 | 18 | |
| 18 | 19 | static MACHINE_RESET( scontra ); |
| 19 | 20 | static MACHINE_RESET( thunderx ); |
| r4470 | r4471 | |
| 370 | 371 | |
| 371 | 372 | /***************************************************************************/ |
| 372 | 373 | |
| 373 | static ADDRESS_MAP_START( scontra_readmem, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 374 | static ADDRESS_MAP_START( scontra_map, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 375 | AM_RANGE(0x1f80, 0x1f80) AM_WRITE(scontra_bankswitch_w) /* bankswitch control + coin counters */ | |
| 376 | AM_RANGE(0x1f84, 0x1f84) AM_WRITE(soundlatch_w) | |
| 377 | AM_RANGE(0x1f88, 0x1f88) AM_WRITE(thunderx_sh_irqtrigger_w) /* cause interrupt on audio CPU */ | |
| 378 | AM_RANGE(0x1f8c, 0x1f8c) AM_WRITE(watchdog_reset_w) | |
| 374 | 379 | AM_RANGE(0x1f90, 0x1f90) AM_READ_PORT("SYSTEM") |
| 375 | 380 | AM_RANGE(0x1f91, 0x1f91) AM_READ_PORT("P1") |
| 376 | 381 | AM_RANGE(0x1f92, 0x1f92) AM_READ_PORT("P2") |
| 377 | 382 | AM_RANGE(0x1f93, 0x1f93) AM_READ_PORT("DSW3") |
| 378 | 383 | AM_RANGE(0x1f94, 0x1f94) AM_READ_PORT("DSW1") |
| 379 | 384 | AM_RANGE(0x1f95, 0x1f95) AM_READ_PORT("DSW2") |
| 385 | AM_RANGE(0x1f98, 0x1f98) AM_WRITE(thunderx_1f98_w) | |
| 386 | AM_RANGE(0x0000, 0x3fff) AM_READWRITE(K052109_051960_r, K052109_051960_w) /* video RAM + sprite RAM */ | |
| 380 | 387 | |
| 381 | AM_RANGE(0x0000, 0x3fff) AM_READ(K052109_051960_r) | |
| 382 | AM_RANGE(0x4000, 0x57ff) AM_READ(SMH_RAM) | |
| 383 | AM_RANGE(0x5800, 0x5fff) AM_READ(scontra_bankedram_r) /* palette + work RAM */ | |
| 384 | AM_RANGE(0x6000, 0x7fff) AM_READ(SMH_BANK1) | |
| 385 | AM_RANGE(0x8000, 0xffff) AM_READ(SMH_ROM) | |
| 388 | AM_RANGE(0x4000, 0x57ff) AM_RAM | |
| 389 | AM_RANGE(0x5800, 0x5fff) AM_READWRITE(scontra_bankedram_r, scontra_bankedram_w) AM_BASE(&ram) /* palette + work RAM */ | |
| 390 | AM_RANGE(0x6000, 0x7fff) AM_ROMBANK(1) | |
| 391 | AM_RANGE(0x8000, 0xffff) AM_ROM | |
| 386 | 392 | ADDRESS_MAP_END |
| 387 | 393 | |
| 388 | static ADDRESS_MAP_START( thunderx_readmem, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 394 | static ADDRESS_MAP_START( thunderx_map, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 395 | AM_RANGE(0x1f80, 0x1f80) AM_WRITE(thunderx_videobank_w) | |
| 396 | AM_RANGE(0x1f84, 0x1f84) AM_WRITE(soundlatch_w) | |
| 397 | AM_RANGE(0x1f88, 0x1f88) AM_WRITE(thunderx_sh_irqtrigger_w) /* cause interrupt on audio CPU */ | |
| 398 | AM_RANGE(0x1f8c, 0x1f8c) AM_WRITE(watchdog_reset_w) | |
| 389 | 399 | AM_RANGE(0x1f90, 0x1f90) AM_READ_PORT("SYSTEM") |
| 390 | 400 | AM_RANGE(0x1f91, 0x1f91) AM_READ_PORT("P1") |
| 391 | 401 | AM_RANGE(0x1f92, 0x1f92) AM_READ_PORT("P2") |
| 392 | 402 | AM_RANGE(0x1f93, 0x1f93) AM_READ_PORT("DSW3") |
| 393 | 403 | AM_RANGE(0x1f94, 0x1f94) AM_READ_PORT("DSW1") |
| 394 | 404 | AM_RANGE(0x1f95, 0x1f95) AM_READ_PORT("DSW2") |
| 395 | AM_RANGE(0x1f98, 0x1f98) AM_READ(thunderx_1f98_r) /* registers */ | |
| 405 | AM_RANGE(0x1f98, 0x1f98) AM_READWRITE(thunderx_1f98_r, thunderx_1f98_w) /* registers */ | |
| 406 | AM_RANGE(0x0000, 0x3fff) AM_READWRITE(K052109_051960_r, K052109_051960_w) | |
| 396 | 407 | |
| 397 | AM_RANGE(0x0000, 0x3fff) AM_READ(K052109_051960_r) | |
| 398 | AM_RANGE(0x4000, 0x57ff) AM_READ(SMH_RAM) | |
| 399 | AM_RANGE(0x5800, 0x5fff) AM_READ(thunderx_bankedram_r) /* palette + work RAM + unknown RAM */ | |
| 400 | AM_RANGE(0x6000, 0x7fff) AM_READ(SMH_BANK1) | |
| 401 | AM_RANGE(0x8000, 0xffff) AM_READ(SMH_ROM) | |
| 408 | AM_RANGE(0x4000, 0x57ff) AM_RAM | |
| 409 | AM_RANGE(0x5800, 0x5fff) AM_READWRITE(thunderx_bankedram_r, thunderx_bankedram_w) AM_BASE(&ram) /* palette + work RAM + unknown RAM */ | |
| 410 | AM_RANGE(0x6000, 0x7fff) AM_ROMBANK(1) | |
| 411 | AM_RANGE(0x8000, 0xffff) AM_ROM | |
| 402 | 412 | ADDRESS_MAP_END |
| 403 | 413 | |
| 404 | static ADDRESS_MAP_START( scontra_writemem, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 405 | AM_RANGE(0x1f80, 0x1f80) AM_WRITE(scontra_bankswitch_w) /* bankswitch control + coin counters */ | |
| 406 | AM_RANGE(0x1f84, 0x1f84) AM_WRITE(soundlatch_w) | |
| 407 | AM_RANGE(0x1f88, 0x1f88) AM_WRITE(thunderx_sh_irqtrigger_w) /* cause interrupt on audio CPU */ | |
| 408 | AM_RANGE(0x1f8c, 0x1f8c) AM_WRITE(watchdog_reset_w) | |
| 409 | AM_RANGE(0x1f98, 0x1f98) AM_WRITE(thunderx_1f98_w) | |
| 410 | ||
| 411 | AM_RANGE(0x0000, 0x3fff) AM_WRITE(K052109_051960_w) /* video RAM + sprite RAM */ | |
| 412 | AM_RANGE(0x4000, 0x57ff) AM_WRITE(SMH_RAM) | |
| 413 | AM_RANGE(0x5800, 0x5fff) AM_WRITE(scontra_bankedram_w) AM_BASE(&ram) /* palette + work RAM */ | |
| 414 | AM_RANGE(0x6000, 0xffff) AM_WRITE(SMH_ROM) | |
| 415 | ADDRESS_MAP_END | |
| 416 | ||
| 417 | static ADDRESS_MAP_START( thunderx_writemem, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 418 | AM_RANGE(0x1f80, 0x1f80) AM_WRITE(thunderx_videobank_w) | |
| 419 | AM_RANGE(0x1f84, 0x1f84) AM_WRITE(soundlatch_w) | |
| 420 | AM_RANGE(0x1f88, 0x1f88) AM_WRITE(thunderx_sh_irqtrigger_w) /* cause interrupt on audio CPU */ | |
| 421 | AM_RANGE(0x1f8c, 0x1f8c) AM_WRITE(watchdog_reset_w) | |
| 422 | AM_RANGE(0x1f98, 0x1f98) AM_WRITE(thunderx_1f98_w) | |
| 423 | ||
| 424 | AM_RANGE(0x0000, 0x3fff) AM_WRITE(K052109_051960_w) | |
| 425 | AM_RANGE(0x4000, 0x57ff) AM_WRITE(SMH_RAM) | |
| 426 | AM_RANGE(0x5800, 0x5fff) AM_WRITE(thunderx_bankedram_w) AM_BASE(&ram) /* palette + work RAM + unknown RAM */ | |
| 427 | AM_RANGE(0x6000, 0xffff) AM_WRITE(SMH_ROM) | |
| 428 | ADDRESS_MAP_END | |
| 429 | ||
| 430 | static ADDRESS_MAP_START( scontra_readmem_sound, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 431 | AM_RANGE(0x0000, 0x7fff) AM_READ(SMH_ROM) /* ROM */ | |
| 432 | AM_RANGE(0x8000, 0x87ff) AM_READ(SMH_RAM) /* RAM */ | |
| 414 | static ADDRESS_MAP_START( scontra_sound_map, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 415 | AM_RANGE(0x0000, 0x7fff) AM_ROM /* ROM */ | |
| 416 | AM_RANGE(0x8000, 0x87ff) AM_RAM /* RAM */ | |
| 433 | 417 | AM_RANGE(0xa000, 0xa000) AM_READ(soundlatch_r) /* soundlatch_r */ |
| 434 | AM_RANGE(0xb000, 0xb00d) AM_DEVREAD("konami", k007232_r) /* 007232 registers */ | |
| 435 | AM_RANGE(0xc000, 0xc001) AM_DEVREAD("ym", ym2151_r) /* YM2151 */ | |
| 436 | ADDRESS_MAP_END | |
| 437 | ||
| 438 | static ADDRESS_MAP_START( scontra_writemem_sound, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 439 | AM_RANGE(0x0000, 0x7fff) AM_WRITE(SMH_ROM) /* ROM */ | |
| 440 | AM_RANGE(0x8000, 0x87ff) AM_WRITE(SMH_RAM) /* RAM */ | |
| 441 | AM_RANGE(0xb000, 0xb00d) AM_DEVWRITE("konami", k007232_w) /* 007232 registers */ | |
| 442 | AM_RANGE(0xc000, 0xc001) AM_DEVWRITE("ym", ym2151_w) /* YM2151 */ | |
| 418 | AM_RANGE(0xb000, 0xb00d) AM_DEVREADWRITE("konami", k007232_r, k007232_w) /* 007232 registers */ | |
| 419 | AM_RANGE(0xc000, 0xc001) AM_DEVREADWRITE("ym", ym2151_r, ym2151_w) /* YM2151 */ | |
| 443 | 420 | AM_RANGE(0xf000, 0xf000) AM_DEVWRITE("konami", scontra_snd_bankswitch_w) /* 007232 bank select */ |
| 444 | 421 | ADDRESS_MAP_END |
| 445 | 422 | |
| 446 | static ADDRESS_MAP_START( thunderx_readmem_sound, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 447 | AM_RANGE(0x0000, 0x7fff) AM_READ(SMH_ROM) | |
| 448 | AM_RANGE(0x8000, 0x87ff) AM_READ(SMH_RAM) | |
| 423 | static ADDRESS_MAP_START( thunderx_sound_map, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 424 | AM_RANGE(0x0000, 0x7fff) AM_ROM | |
| 425 | AM_RANGE(0x8000, 0x87ff) AM_RAM | |
| 449 | 426 | AM_RANGE(0xa000, 0xa000) AM_READ(soundlatch_r) |
| 450 | AM_RANGE(0xc000, 0xc001) AM_DEVREAD("ym", ym2151_r) | |
| 427 | AM_RANGE(0xc000, 0xc001) AM_DEVREADWRITE("ym", ym2151_r, ym2151_w) | |
| 451 | 428 | ADDRESS_MAP_END |
| 452 | 429 | |
| 453 | static ADDRESS_MAP_START( thunderx_writemem_sound, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 454 | AM_RANGE(0x0000, 0x7fff) AM_WRITE(SMH_ROM) | |
| 455 | AM_RANGE(0x8000, 0x87ff) AM_WRITE(SMH_RAM) | |
| 456 | AM_RANGE(0xc000, 0xc001) AM_DEVWRITE("ym", ym2151_w) | |
| 457 | ADDRESS_MAP_END | |
| 458 | ||
| 459 | 430 | /*************************************************************************** |
| 460 | 431 | |
| 461 | 432 | Input Ports |
| r4470 | r4471 | |
| 464 | 435 | |
| 465 | 436 | static INPUT_PORTS_START( scontra ) |
| 466 | 437 | PORT_START("SYSTEM") |
| 467 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) | |
| 468 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) | |
| 469 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 ) | |
| 470 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) | |
| 471 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 ) | |
| 472 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 473 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) | |
| 474 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) | |
| 438 | KONAMI8_SYSTEM_UNK | |
| 475 | 439 | |
| 476 | 440 | PORT_START("P1") |
| 477 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) | |
| 478 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) | |
| 479 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) | |
| 480 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) | |
| 481 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) | |
| 482 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) | |
| 483 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) | |
| 484 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) | |
| 441 | KONAMI8_B12_UNK(1) | |
| 485 | 442 | |
| 486 | 443 | PORT_START("P2") |
| 487 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) | |
| 488 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) | |
| 489 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) | |
| 490 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) | |
| 491 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) | |
| 492 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) | |
| 493 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) | |
| 494 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) | |
| 444 | KONAMI8_B12_UNK(2) | |
| 495 | 445 | |
| 496 | 446 | PORT_START("DSW1") |
| 497 | PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) ) | |
| 498 | PORT_DIPSETTING( 0x02, DEF_STR( 4C_1C ) ) | |
| 499 | PORT_DIPSETTING( 0x05, DEF_STR( 3C_1C ) ) | |
| 500 | PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) ) | |
| 501 | PORT_DIPSETTING( 0x04, DEF_STR( 3C_2C ) ) | |
| 502 | PORT_DIPSETTING( 0x01, DEF_STR( 4C_3C ) ) | |
| 503 | PORT_DIPSETTING( 0x0f, DEF_STR( 1C_1C ) ) | |
| 504 | PORT_DIPSETTING( 0x03, DEF_STR( 3C_4C ) ) | |
| 505 | PORT_DIPSETTING( 0x07, DEF_STR( 2C_3C ) ) | |
| 506 | PORT_DIPSETTING( 0x0e, DEF_STR( 1C_2C ) ) | |
| 507 | PORT_DIPSETTING( 0x06, DEF_STR( 2C_5C ) ) | |
| 508 | PORT_DIPSETTING( 0x0d, DEF_STR( 1C_3C ) ) | |
| 509 | PORT_DIPSETTING( 0x0c, DEF_STR( 1C_4C ) ) | |
| 510 | PORT_DIPSETTING( 0x0b, DEF_STR( 1C_5C ) ) | |
| 511 | PORT_DIPSETTING( 0x0a, DEF_STR( 1C_6C ) ) | |
| 512 | PORT_DIPSETTING( 0x09, DEF_STR( 1C_7C ) ) | |
| 513 | PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) | |
| 514 | PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) ) | |
| 515 | PORT_DIPSETTING( 0x20, DEF_STR( 4C_1C ) ) | |
| 516 | PORT_DIPSETTING( 0x50, DEF_STR( 3C_1C ) ) | |
| 517 | PORT_DIPSETTING( 0x80, DEF_STR( 2C_1C ) ) | |
| 518 | PORT_DIPSETTING( 0x40, DEF_STR( 3C_2C ) ) | |
| 519 | PORT_DIPSETTING( 0x10, DEF_STR( 4C_3C ) ) | |
| 520 | PORT_DIPSETTING( 0xf0, DEF_STR( 1C_1C ) ) | |
| 521 | PORT_DIPSETTING( 0x30, DEF_STR( 3C_4C ) ) | |
| 522 | PORT_DIPSETTING( 0x70, DEF_STR( 2C_3C ) ) | |
| 523 | PORT_DIPSETTING( 0xe0, DEF_STR( 1C_2C ) ) | |
| 524 | PORT_DIPSETTING( 0x60, DEF_STR( 2C_5C ) ) | |
| 525 | PORT_DIPSETTING( 0xd0, DEF_STR( 1C_3C ) ) | |
| 526 | PORT_DIPSETTING( 0xc0, DEF_STR( 1C_4C ) ) | |
| 527 | PORT_DIPSETTING( 0xb0, DEF_STR( 1C_5C ) ) | |
| 528 | PORT_DIPSETTING( 0xa0, DEF_STR( 1C_6C ) ) | |
| 529 | PORT_DIPSETTING( 0x90, DEF_STR( 1C_7C ) ) | |
| 530 | // PORT_DIPSETTING( 0x00, "Invalid" ) | |
| 447 | KONAMI_COINAGE(DEF_STR( Free_Play ), "No Coin B") | |
| 448 | /* "No Coin B" = coins produce sound, but no effect on coin counter */ | |
| 531 | 449 | |
| 532 | 450 | PORT_START("DSW2") |
| 533 | 451 | PORT_DIPNAME( 0x03, 0x02, DEF_STR( Lives ) ) |
| r4470 | r4471 | |
| 568 | 486 | |
| 569 | 487 | static INPUT_PORTS_START( thunderx ) |
| 570 | 488 | PORT_START("SYSTEM") |
| 571 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) | |
| 572 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) | |
| 573 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 ) | |
| 574 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) | |
| 575 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 ) | |
| 489 | KONAMI8_SYSTEM_10 | |
| 576 | 490 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) |
| 577 | 491 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 578 | 492 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 579 | 493 | |
| 580 | 494 | PORT_START("P1") |
| 581 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) | |
| 582 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) | |
| 583 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) | |
| 584 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) | |
| 585 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) | |
| 586 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) | |
| 587 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) | |
| 588 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) | |
| 495 | KONAMI8_B12_UNK(1) | |
| 589 | 496 | |
| 590 | 497 | PORT_START("P2") |
| 591 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) | |
| 592 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) | |
| 593 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) | |
| 594 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) | |
| 595 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) | |
| 596 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) | |
| 597 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) | |
| 598 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) | |
| 498 | KONAMI8_B12_UNK(2) | |
| 599 | 499 | |
| 600 | 500 | PORT_START("DSW1") |
| 601 | PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) ) | |
| 602 | PORT_DIPSETTING( 0x02, DEF_STR( 4C_1C ) ) | |
| 603 | PORT_DIPSETTING( 0x05, DEF_STR( 3C_1C ) ) | |
| 604 | PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) ) | |
| 605 | PORT_DIPSETTING( 0x04, DEF_STR( 3C_2C ) ) | |
| 606 | PORT_DIPSETTING( 0x01, DEF_STR( 4C_3C ) ) | |
| 607 | PORT_DIPSETTING( 0x0f, DEF_STR( 1C_1C ) ) | |
| 608 | PORT_DIPSETTING( 0x03, DEF_STR( 3C_4C ) ) | |
| 609 | PORT_DIPSETTING( 0x07, DEF_STR( 2C_3C ) ) | |
| 610 | PORT_DIPSETTING( 0x0e, DEF_STR( 1C_2C ) ) | |
| 611 | PORT_DIPSETTING( 0x06, DEF_STR( 2C_5C ) ) | |
| 612 | PORT_DIPSETTING( 0x0d, DEF_STR( 1C_3C ) ) | |
| 613 | PORT_DIPSETTING( 0x0c, DEF_STR( 1C_4C ) ) | |
| 614 | PORT_DIPSETTING( 0x0b, DEF_STR( 1C_5C ) ) | |
| 615 | PORT_DIPSETTING( 0x0a, DEF_STR( 1C_6C ) ) | |
| 616 | PORT_DIPSETTING( 0x09, DEF_STR( 1C_7C ) ) | |
| 617 | PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) | |
| 618 | PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) ) | |
| 619 | PORT_DIPSETTING( 0x20, DEF_STR( 4C_1C ) ) | |
| 620 | PORT_DIPSETTING( 0x50, DEF_STR( 3C_1C ) ) | |
| 621 | PORT_DIPSETTING( 0x80, DEF_STR( 2C_1C ) ) | |
| 622 | PORT_DIPSETTING( 0x40, DEF_STR( 3C_2C ) ) | |
| 623 | PORT_DIPSETTING( 0x10, DEF_STR( 4C_3C ) ) | |
| 624 | PORT_DIPSETTING( 0xf0, DEF_STR( 1C_1C ) ) | |
| 625 | PORT_DIPSETTING( 0x30, DEF_STR( 3C_4C ) ) | |
| 626 | PORT_DIPSETTING( 0x70, DEF_STR( 2C_3C ) ) | |
| 627 | PORT_DIPSETTING( 0xe0, DEF_STR( 1C_2C ) ) | |
| 628 | PORT_DIPSETTING( 0x60, DEF_STR( 2C_5C ) ) | |
| 629 | PORT_DIPSETTING( 0xd0, DEF_STR( 1C_3C ) ) | |
| 630 | PORT_DIPSETTING( 0xc0, DEF_STR( 1C_4C ) ) | |
| 631 | PORT_DIPSETTING( 0xb0, DEF_STR( 1C_5C ) ) | |
| 632 | PORT_DIPSETTING( 0xa0, DEF_STR( 1C_6C ) ) | |
| 633 | PORT_DIPSETTING( 0x90, DEF_STR( 1C_7C ) ) | |
| 634 | // PORT_DIPSETTING( 0x00, "Invalid" ) | |
| 501 | KONAMI_COINAGE(DEF_STR( Free_Play ), "No Coin B") | |
| 502 | /* "No Coin B" = coins produce sound, but no effect on coin counter */ | |
| 635 | 503 | |
| 636 | 504 | PORT_START("DSW2") |
| 637 | 505 | PORT_DIPNAME( 0x03, 0x02, DEF_STR( Lives ) ) |
| r4470 | r4471 | |
| 695 | 563 | |
| 696 | 564 | /* basic machine hardware */ |
| 697 | 565 | MDRV_CPU_ADD("maincpu", KONAMI, 3000000) /* 052001 */ |
| 698 | MDRV_CPU_PROGRAM_MAP(scontra_ | |
| 566 | MDRV_CPU_PROGRAM_MAP(scontra_ | |
| 699 | 567 | MDRV_CPU_VBLANK_INT("screen", scontra_interrupt) |
| 700 | 568 | |
| 701 | 569 | MDRV_CPU_ADD("audiocpu", Z80, 3579545) /* ? */ |
| 702 | MDRV_CPU_PROGRAM_MAP(scontra_ | |
| 570 | MDRV_CPU_PROGRAM_MAP(scontra_ | |
| 703 | 571 | |
| 704 | 572 | MDRV_MACHINE_RESET(scontra) |
| 705 | 573 | |
| r4470 | r4471 | |
| 736 | 604 | |
| 737 | 605 | /* basic machine hardware */ |
| 738 | 606 | MDRV_CPU_ADD("maincpu", KONAMI, 3000000) /* ? */ |
| 739 | MDRV_CPU_PROGRAM_MAP(thunderx_ | |
| 607 | MDRV_CPU_PROGRAM_MAP(thunderx_ | |
| 740 | 608 | MDRV_CPU_VBLANK_INT("screen", scontra_interrupt) |
| 741 | 609 | |
| 742 | 610 | MDRV_CPU_ADD("audiocpu", Z80, 3579545) /* ? */ |
| 743 | MDRV_CPU_PROGRAM_MAP(thunderx_ | |
| 611 | MDRV_CPU_PROGRAM_MAP(thunderx_ | |
| 744 | 612 | |
| 745 | 613 | MDRV_MACHINE_RESET(thunderx) |
| 746 | 614 |
| r4470 | r4471 | |
|---|---|---|
| 96 | 96 | AM_RANGE(0x7001, 0x7001) AM_WRITE(spcforce_soundtrigger_w) |
| 97 | 97 | AM_RANGE(0x700b, 0x700b) AM_WRITE(spcforce_flip_screen_w) |
| 98 | 98 | AM_RANGE(0x700e, 0x700e) AM_WRITE(interrupt_enable_w) |
| 99 | AM_RANGE(0x700f, 0x700f) AM_WRITE | |
| 99 | AM_RANGE(0x700f, 0x700f) AM_WRITE | |
| 100 | 100 | AM_RANGE(0x8000, 0x83ff) AM_WRITE(SMH_RAM) AM_BASE(&videoram) AM_SIZE(&videoram_size) |
| 101 | 101 | AM_RANGE(0x9000, 0x93ff) AM_WRITE(SMH_RAM) AM_BASE(&colorram) |
| 102 | 102 | AM_RANGE(0xa000, 0xa3ff) AM_WRITE(SMH_RAM) AM_BASE(&spcforce_scrollram) |
| r4470 | r4471 | |
|---|---|---|
| 404 | 404 | AM_RANGE(0x80, 0x80) AM_DEVREADWRITE("ay2", gsword_fake_1_r, gsword_AY8910_control_port_1_w) |
| 405 | 405 | AM_RANGE(0x81, 0x81) AM_DEVREADWRITE("ay2", ay8910_r, ay8910_data_w) |
| 406 | 406 | // |
| 407 | AM_RANGE(0xe0, 0xe0) AM_READ(SMH_NOP) /* ?? */ | |
| 408 | AM_RANGE(0xa0, 0xa0) AM_WRITE(SMH_NOP) /* ?? */ | |
| 409 | AM_RANGE(0xe0, 0xe0) AM_WRITE(SMH_NOP) /* watch dog ?*/ | |
| 407 | AM_RANGE(0xe0, 0xe0) AM_READNOP /* ?? */ | |
| 408 | AM_RANGE(0xa0, 0xa0) AM_WRITENOP /* ?? */ | |
| 409 | AM_RANGE(0xe0, 0xe0) AM_WRITENOP /* watch dog ?*/ | |
| 410 | 410 | ADDRESS_MAP_END |
| 411 | 411 | |
| 412 | 412 | // |
| r4470 | r4471 | |
|---|---|---|
| 23 | 23 | #include "sound/k054539.h" |
| 24 | 24 | #include "rendlay.h" |
| 25 | 25 | #include "includes/xmen.h" |
| 26 | #include "konamipt.h" | |
| 26 | 27 | |
| 27 | 28 | UINT16 xmen_current_frame; |
| 28 | 29 | |
| r4470 | r4471 | |
| 248 | 249 | |
| 249 | 250 | |
| 250 | 251 | static INPUT_PORTS_START( xmen ) |
| 251 | PORT_START("P2_P4") | |
| 252 | PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) | |
| 253 | PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) | |
| 254 | PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) | |
| 255 | PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) | |
| 256 | PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) | |
| 257 | PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) | |
| 258 | PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) | |
| 259 | PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_COIN2 ) | |
| 260 | PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(4) | |
| 261 | PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(4) | |
| 262 | PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(4) | |
| 263 | PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(4) | |
| 264 | PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(4) | |
| 265 | PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(4) | |
| 266 | PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(4) | |
| 267 | PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_COIN4 ) | |
| 268 | ||
| 269 | 252 | PORT_START("P1_P3") |
| 270 | PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) | |
| 271 | PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) | |
| 272 | PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) | |
| 273 | PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) | |
| 274 | PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) | |
| 275 | PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) | |
| 276 | PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) | |
| 277 | PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_COIN1 ) | |
| 278 | PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(3) | |
| 279 | PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(3) | |
| 280 | PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(3) | |
| 281 | PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(3) | |
| 282 | PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3) | |
| 283 | PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3) | |
| 284 | PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(3) | |
| 285 | PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_COIN3 ) | |
| 253 | KONAMI16_LSB(1, IPT_BUTTON3, IPT_COIN1 ) | |
| 254 | KONAMI16_MSB(3, IPT_BUTTON3, IPT_COIN3 ) | |
| 286 | 255 | |
| 256 | PORT_START("P2_P4") | |
| 257 | KONAMI16_LSB(2, IPT_BUTTON3, IPT_COIN2 ) | |
| 258 | KONAMI16_MSB(4, IPT_BUTTON3, IPT_COIN4 ) | |
| 259 | ||
| 287 | 260 | PORT_START("EEPROM") |
| 288 | 261 | PORT_BIT( 0x003f, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* unused? */ |
| 289 | 262 | PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(eeprom_bit_r, NULL) /* EEPROM data */ |
| r4470 | r4471 | |
| 297 | 270 | PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* unused? */ |
| 298 | 271 | INPUT_PORTS_END |
| 299 | 272 | |
| 273 | static INPUT_PORTS_START( xmen2p ) | |
| 274 | PORT_START("P1_P3") | |
| 275 | KONAMI16_LSB(1, IPT_BUTTON3, IPT_COIN1 ) | |
| 276 | PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNUSED ) | |
| 300 | 277 | |
| 278 | PORT_START("P2_P4") | |
| 279 | KONAMI16_LSB(2, IPT_BUTTON3, IPT_COIN2 ) | |
| 280 | PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNUSED ) | |
| 281 | ||
| 282 | PORT_START("EEPROM") | |
| 283 | PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_SERVICE1 ) | |
| 284 | PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_SERVICE2 ) | |
| 285 | PORT_BIT( 0x003c, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* unused? */ | |
| 286 | PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(eeprom_bit_r, NULL) /* EEPROM data */ | |
| 287 | PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* EEPROM status - always 1 */ | |
| 288 | PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_START1 ) | |
| 289 | PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_START2 ) | |
| 290 | PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 291 | PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 292 | PORT_BIT( 0x3000, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* unused? */ | |
| 293 | PORT_SERVICE_NO_TOGGLE( 0x4000, IP_ACTIVE_LOW ) | |
| 294 | PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* unused? */ | |
| 295 | INPUT_PORTS_END | |
| 296 | ||
| 301 | 297 | static CUSTOM_INPUT( xmen_frame_r ) |
| 302 | 298 | { |
| 303 | 299 | return xmen_current_frame; |
| 304 | 300 | } |
| 305 | 301 | |
| 306 | 302 | static INPUT_PORTS_START( xmen6p ) |
| 303 | PORT_START("P1_P3") | |
| 304 | KONAMI16_LSB(1, IPT_BUTTON3, IPT_COIN1 ) | |
| 305 | KONAMI16_MSB(3, IPT_BUTTON3, IPT_COIN3 ) | |
| 306 | ||
| 307 | 307 | PORT_START("P2_P4") |
| 308 | PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) | |
| 309 | PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) | |
| 310 | PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) | |
| 311 | PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) | |
| 312 | PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) | |
| 313 | PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) | |
| 314 | PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) | |
| 315 | PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_COIN2 ) | |
| 316 | PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(4) | |
| 317 | PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(4) | |
| 318 | PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(4) | |
| 319 | PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(4) | |
| 320 | PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(4) | |
| 321 | PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(4) | |
| 322 | PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(4) | |
| 323 | PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_COIN4 ) | |
| 308 | KONAMI16_LSB(2, IPT_BUTTON3, IPT_COIN2 ) | |
| 309 | KONAMI16_MSB(4, IPT_BUTTON3, IPT_COIN4 ) | |
| 324 | 310 | |
| 325 | PORT_START("P1_P3") | |
| 326 | PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) | |
| 327 | PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) | |
| 328 | PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) | |
| 329 | PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) | |
| 330 | PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) | |
| 331 | PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) | |
| 332 | PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) | |
| 333 | PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_COIN1 ) | |
| 334 | PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(3) | |
| 335 | PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(3) | |
| 336 | PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(3) | |
| 337 | PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(3) | |
| 338 | PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3) | |
| 339 | PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3) | |
| 340 | PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(3) | |
| 341 | PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_COIN3 ) | |
| 311 | PORT_START("P5_P6") | |
| 312 | KONAMI16_LSB(5, IPT_BUTTON3, IPT_COIN5 ) | |
| 313 | KONAMI16_MSB(6, IPT_BUTTON3, IPT_COIN6 ) | |
| 342 | 314 | |
| 343 | 315 | PORT_START("EEPROM") |
| 344 | 316 | PORT_BIT( 0x003f, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* unused? */ |
| r4470 | r4471 | |
| 352 | 324 | PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_START6 ) /* not verified */ |
| 353 | 325 | PORT_SERVICE_NO_TOGGLE( 0x4000, IP_ACTIVE_LOW ) |
| 354 | 326 | PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(xmen_frame_r, NULL) /* screen indicator? */ |
| 355 | ||
| 356 | PORT_START("P5_P6") | |
| 357 | PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(5) | |
| 358 | PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(5) | |
| 359 | PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(5) | |
| 360 | PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(5) | |
| 361 | PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(5) | |
| 362 | PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(5) | |
| 363 | PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(5) | |
| 364 | PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_COIN5 ) | |
| 365 | PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(6) | |
| 366 | PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(6) | |
| 367 | PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(6) | |
| 368 | PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(6) | |
| 369 | PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(6) | |
| 370 | PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(6) | |
| 371 | PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(6) | |
| 372 | PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_COIN6 ) | |
| 373 | 327 | INPUT_PORTS_END |
| 374 | 328 | |
| 375 | static INPUT_PORTS_START( xmen2p ) | |
| 376 | PORT_START("P2_P4") | |
| 377 | PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) | |
| 378 | PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) | |
| 379 | PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) | |
| 380 | PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) | |
| 381 | PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) | |
| 382 | PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) | |
| 383 | PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) | |
| 384 | PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_COIN2 ) | |
| 385 | PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNUSED ) | |
| 386 | 329 | |
| 387 | PORT_START("P1_P3") | |
| 388 | PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) | |
| 389 | PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) | |
| 390 | PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) | |
| 391 | PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) | |
| 392 | PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) | |
| 393 | PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) | |
| 394 | PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) | |
| 395 | PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_COIN1 ) | |
| 396 | PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNUSED ) | |
| 397 | 330 | |
| 398 | PORT_START("EEPROM") | |
| 399 | PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_SERVICE1 ) | |
| 400 | PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_SERVICE2 ) | |
| 401 | PORT_BIT( 0x003c, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* unused? */ | |
| 402 | PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(eeprom_bit_r, NULL) /* EEPROM data */ | |
| 403 | PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* EEPROM status - always 1 */ | |
| 404 | PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_START1 ) | |
| 405 | PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_START2 ) | |
| 406 | PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 407 | PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 408 | PORT_BIT( 0x3000, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* unused? */ | |
| 409 | PORT_SERVICE_NO_TOGGLE( 0x4000, IP_ACTIVE_LOW ) | |
| 410 | PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* unused? */ | |
| 411 | INPUT_PORTS_END | |
| 412 | ||
| 413 | ||
| 414 | ||
| 415 | 331 | static INTERRUPT_GEN( xmen_interrupt ) |
| 416 | 332 | { |
| 417 | 333 | if (cpu_getiloops(device) == 0) irq5_line_hold(device); |
| r4470 | r4471 | |
|---|---|---|
| 162 | 162 | AM_RANGE(0x2002, 0x2002) AM_WRITE(atarifb_out2_w) /* OUT 2 */ |
| 163 | 163 | AM_RANGE(0x2003, 0x2003) AM_WRITE(atarifb_out3_w) /* OUT 3 */ |
| 164 | 164 | AM_RANGE(0x3000, 0x3000) AM_READ(SMH_RAM) |
| 165 | AM_RANGE(0x3000, 0x3000) AM_WRITE | |
| 165 | AM_RANGE(0x3000, 0x3000) AM_WRITE | |
| 166 | 166 | AM_RANGE(0x4000, 0x4000) AM_READ(atarifb_in0_r) |
| 167 | 167 | AM_RANGE(0x4002, 0x4002) AM_READ(atarifb_in2_r) |
| 168 | 168 | AM_RANGE(0x5000, 0x5000) AM_WRITE(watchdog_reset_w) |
| r4470 | r4471 | |
| 183 | 183 | AM_RANGE(0x2002, 0x2002) AM_WRITE(atarifb_out2_w) /* OUT 2 */ |
| 184 | 184 | AM_RANGE(0x2003, 0x2003) AM_WRITE(atarifb_out3_w) /* OUT 3 */ |
| 185 | 185 | AM_RANGE(0x3000, 0x3000) AM_READ(SMH_RAM) |
| 186 | AM_RANGE(0x3000, 0x3000) AM_WRITE | |
| 186 | AM_RANGE(0x3000, 0x3000) AM_WRITE | |
| 187 | 187 | AM_RANGE(0x4000, 0x4000) AM_READ(atarifb4_in0_r) |
| 188 | 188 | AM_RANGE(0x4001, 0x4001) AM_READ_PORT("EXTRA") |
| 189 | 189 | AM_RANGE(0x4002, 0x4002) AM_READ(atarifb4_in2_r) |
| r4470 | r4471 | |
| 205 | 205 | AM_RANGE(0x2002, 0x2002) AM_WRITE(atarifb_out2_w) /* OUT 2 */ |
| 206 | 206 | AM_RANGE(0x2003, 0x2003) AM_WRITE(atarifb_out3_w) /* OUT 3 */ |
| 207 | 207 | AM_RANGE(0x3000, 0x3000) AM_READ(SMH_RAM) |
| 208 | AM_RANGE(0x3000, 0x3000) AM_WRITE | |
| 208 | AM_RANGE(0x3000, 0x3000) AM_WRITE | |
| 209 | 209 | AM_RANGE(0x4000, 0x4000) AM_READ(atarifb_in0_r) |
| 210 | 210 | AM_RANGE(0x4002, 0x4002) AM_READ(atarifb_in2_r) |
| 211 | 211 | AM_RANGE(0x5000, 0x5000) AM_WRITE(watchdog_reset_w) |
| r4470 | r4471 | |
| 224 | 224 | AM_RANGE(0x1000, 0x1000) AM_WRITE(SMH_RAM) AM_BASE(&atarifb_scroll_register) /* OUT 0 */ |
| 225 | 225 | AM_RANGE(0x1001, 0x1001) AM_WRITE(soccer_out1_w) /* OUT 1 */ |
| 226 | 226 | AM_RANGE(0x1002, 0x1002) AM_WRITE(soccer_out2_w) /* OUT 2 */ |
| 227 | AM_RANGE(0x1004, 0x1004) AM_WRITE | |
| 227 | AM_RANGE(0x1004, 0x1004) AM_WRITE | |
| 228 | 228 | AM_RANGE(0x1005, 0x1005) AM_WRITE(watchdog_reset_w) |
| 229 | 229 | AM_RANGE(0x1800, 0x1800) AM_READ(atarifb4_in0_r) |
| 230 | 230 | AM_RANGE(0x1801, 0x1801) AM_READ_PORT("EXTRA") |
| r4470 | r4471 | |
|---|---|---|
| 485 | 485 | AM_RANGE(0x2000, 0x3fff) AM_RAM // work RAM |
| 486 | 486 | AM_RANGE(0x4000, 0x403f) AM_WRITE(K056832_w) |
| 487 | 487 | AM_RANGE(0x4040, 0x404f) AM_WRITE(K056832_b_w) |
| 488 | AM_RANGE(0x4080, 0x4080) AM_READ | |
| 488 | AM_RANGE(0x4080, 0x4080) AM_READ | |
| 489 | 489 | AM_RANGE(0x4090, 0x4090) AM_READNOP |
| 490 | 490 | AM_RANGE(0x40a0, 0x40a0) AM_READNOP |
| 491 | 491 | AM_RANGE(0x40c4, 0x40c4) AM_WRITE(control2_w) |
| r4470 | r4471 | |
|---|---|---|
| 68 | 68 | |
| 69 | 69 | /******************************************************************************/ |
| 70 | 70 | |
| 71 | static ADDRESS_MAP_START( fstarfrc_readmem, ADDRESS_SPACE_PROGRAM, 16 ) | |
| 72 | AM_RANGE(0x000000, 0x07ffff) AM_READ(SMH_ROM) | |
| 73 | AM_RANGE(0x100000, 0x103fff) AM_READ(SMH_RAM) | |
| 74 | AM_RANGE(0x110000, 0x110fff) AM_READ(SMH_RAM) | |
| 75 | AM_RANGE(0x120000, 0x1207ff) AM_READ(SMH_RAM) | |
| 76 | AM_RANGE(0x120800, 0x120fff) AM_READ(SMH_RAM) | |
| 77 | AM_RANGE(0x121000, 0x1217ff) AM_READ(SMH_RAM) | |
| 78 | AM_RANGE(0x121800, 0x121fff) AM_READ(SMH_RAM) | |
| 79 | AM_RANGE(0x122000, 0x127fff) AM_READ(SMH_RAM) | |
| 80 | AM_RANGE(0x130000, 0x130fff) AM_READ(SMH_RAM) | |
| 81 | AM_RANGE(0x140000, 0x141fff) AM_READ(SMH_RAM) | |
| 82 | AM_RANGE(0x150030, 0x150031) AM_READ_PORT("DSW2") | |
| 83 | AM_RANGE(0x150040, 0x150041) AM_READ_PORT("DSW1") | |
| 84 | AM_RANGE(0x150050, 0x150051) AM_READ_PORT("P1_P2") | |
| 85 | ADDRESS_MAP_END | |
| 86 | ||
| 87 | static ADDRESS_MAP_START( fstarfrc_writemem, ADDRESS_SPACE_PROGRAM, 16 ) | |
| 88 | AM_RANGE(0x000000, 0x07ffff) AM_WRITE(SMH_ROM) | |
| 89 | AM_RANGE(0x100000, 0x103fff) AM_WRITE(SMH_RAM) /* Main RAM */ | |
| 90 | AM_RANGE(0x110000, 0x110fff) AM_WRITE(tecmo16_charram_w) AM_BASE(&tecmo16_charram) | |
| 91 | AM_RANGE(0x120000, 0x1207ff) AM_WRITE(tecmo16_videoram_w) AM_BASE(&tecmo16_videoram) | |
| 92 | AM_RANGE(0x120800, 0x120fff) AM_WRITE(tecmo16_colorram_w) AM_BASE(&tecmo16_colorram) | |
| 93 | AM_RANGE(0x121000, 0x1217ff) AM_WRITE(tecmo16_videoram2_w) AM_BASE(&tecmo16_videoram2) | |
| 94 | AM_RANGE(0x121800, 0x121fff) AM_WRITE(tecmo16_colorram2_w) AM_BASE(&tecmo16_colorram2) | |
| 95 | AM_RANGE(0x122000, 0x127fff) AM_WRITE(SMH_RAM) /* work area */ | |
| 96 | AM_RANGE(0x130000, 0x130fff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) | |
| 97 | AM_RANGE(0x140000, 0x141fff) AM_WRITE(paletteram16_xxxxBBBBGGGGRRRR_word_w) AM_BASE(&paletteram16) | |
| 71 | static ADDRESS_MAP_START( fstarfrc_map, ADDRESS_SPACE_PROGRAM, 16 ) | |
| 72 | AM_RANGE(0x000000, 0x07ffff) AM_ROM | |
| 73 | AM_RANGE(0x100000, 0x103fff) AM_RAM /* Main RAM */ | |
| 74 | AM_RANGE(0x110000, 0x110fff) AM_RAM_WRITE(tecmo16_charram_w) AM_BASE(&tecmo16_charram) | |
| 75 | AM_RANGE(0x120000, 0x1207ff) AM_RAM_WRITE(tecmo16_videoram_w) AM_BASE(&tecmo16_videoram) | |
| 76 | AM_RANGE(0x120800, 0x120fff) AM_RAM_WRITE(tecmo16_colorram_w) AM_BASE(&tecmo16_colorram) | |
| 77 | AM_RANGE(0x121000, 0x1217ff) AM_RAM_WRITE(tecmo16_videoram2_w) AM_BASE(&tecmo16_videoram2) | |
| 78 | AM_RANGE(0x121800, 0x121fff) AM_RAM_WRITE(tecmo16_colorram2_w) AM_BASE(&tecmo16_colorram2) | |
| 79 | AM_RANGE(0x122000, 0x127fff) AM_RAM /* work area */ | |
| 80 | AM_RANGE(0x130000, 0x130fff) AM_RAM AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) | |
| 81 | AM_RANGE(0x140000, 0x141fff) AM_RAM_WRITE(paletteram16_xxxxBBBBGGGGRRRR_word_w) AM_BASE(&paletteram16) | |
| 98 | 82 | AM_RANGE(0x150000, 0x150001) AM_WRITE(tecmo16_flipscreen_w) |
| 99 | 83 | AM_RANGE(0x150010, 0x150011) AM_WRITE(tecmo16_sound_command_w) |
| 100 | AM_RANGE(0x150030, 0x150031) AM_WRITE(SMH_NOP) /* ??? */ | |
| 84 | AM_RANGE(0x150030, 0x150031) AM_READ_PORT("DSW2") AM_WRITENOP /* ??? */ | |
| 85 | AM_RANGE(0x150040, 0x150041) AM_READ_PORT("DSW1") | |
| 86 | AM_RANGE(0x150050, 0x150051) AM_READ_PORT("P1_P2") | |
| 101 | 87 | AM_RANGE(0x160000, 0x160001) AM_WRITE(tecmo16_scroll_char_x_w) |
| 102 | 88 | AM_RANGE(0x16000c, 0x16000d) AM_WRITE(tecmo16_scroll_x_w) |
| 103 | 89 | AM_RANGE(0x160012, 0x160013) AM_WRITE(tecmo16_scroll_y_w) |
| r4470 | r4471 | |
| 105 | 91 | AM_RANGE(0x16001e, 0x16001f) AM_WRITE(tecmo16_scroll2_y_w) |
| 106 | 92 | ADDRESS_MAP_END |
| 107 | 93 | |
| 108 | static ADDRESS_MAP_START( ginkun_readmem, ADDRESS_SPACE_PROGRAM, 16 ) | |
| 109 | AM_RANGE(0x000000, 0x07ffff) AM_READ(SMH_ROM) | |
| 110 | AM_RANGE(0x100000, 0x103fff) AM_READ(SMH_RAM) | |
| 111 | AM_RANGE(0x110000, 0x110fff) AM_READ(SMH_RAM) | |
| 112 | AM_RANGE(0x120000, 0x120fff) AM_READ(SMH_RAM) | |
| 113 | AM_RANGE(0x121000, 0x121fff) AM_READ(SMH_RAM) | |
| 114 | AM_RANGE(0x122000, 0x122fff) AM_READ(SMH_RAM) | |
| 115 | AM_RANGE(0x123000, 0x123fff) AM_READ(SMH_RAM) | |
| 116 | AM_RANGE(0x124000, 0x124fff) AM_READ(SMH_RAM) | |
| 117 | AM_RANGE(0x130000, 0x130fff) AM_READ(SMH_RAM) | |
| 118 | AM_RANGE(0x140000, 0x141fff) AM_READ(SMH_RAM) | |
| 119 | AM_RANGE(0x150020, 0x150021) AM_READ_PORT("EXTRA") | |
| 120 | AM_RANGE(0x150030, 0x150031) AM_READ_PORT("DSW2") | |
| 121 | AM_RANGE(0x150040, 0x150041) AM_READ_PORT("DSW1") | |
| 122 | AM_RANGE(0x150050, 0x150051) AM_READ_PORT("P1_P2") | |
| 123 | ADDRESS_MAP_END | |
| 124 | ||
| 125 | static ADDRESS_MAP_START( ginkun_writemem, ADDRESS_SPACE_PROGRAM, 16 ) | |
| 126 | AM_RANGE(0x000000, 0x07ffff) AM_WRITE(SMH_ROM) | |
| 127 | AM_RANGE(0x100000, 0x103fff) AM_WRITE(SMH_RAM) /* Main RAM */ | |
| 128 | AM_RANGE(0x110000, 0x110fff) AM_WRITE(tecmo16_charram_w) AM_BASE(&tecmo16_charram) | |
| 129 | AM_RANGE(0x120000, 0x120fff) AM_WRITE(tecmo16_videoram_w) AM_BASE(&tecmo16_videoram) | |
| 130 | AM_RANGE(0x121000, 0x121fff) AM_WRITE(tecmo16_colorram_w) AM_BASE(&tecmo16_colorram) | |
| 131 | AM_RANGE(0x122000, 0x122fff) AM_WRITE(tecmo16_videoram2_w) AM_BASE(&tecmo16_videoram2) | |
| 132 | AM_RANGE(0x123000, 0x123fff) AM_WRITE(tecmo16_colorram2_w) AM_BASE(&tecmo16_colorram2) | |
| 133 | AM_RANGE(0x124000, 0x124fff) AM_WRITE(SMH_RAM) /* extra RAM for Riot */ | |
| 134 | AM_RANGE(0x130000, 0x130fff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) | |
| 135 | AM_RANGE(0x140000, 0x141fff) AM_WRITE(paletteram16_xxxxBBBBGGGGRRRR_word_w) AM_BASE(&paletteram16) | |
| 94 | static ADDRESS_MAP_START( ginkun_map, ADDRESS_SPACE_PROGRAM, 16 ) | |
| 95 | AM_RANGE(0x000000, 0x07ffff) AM_ROM | |
| 96 | AM_RANGE(0x100000, 0x103fff) AM_RAM /* Main RAM */ | |
| 97 | AM_RANGE(0x110000, 0x110fff) AM_RAM_WRITE(tecmo16_charram_w) AM_BASE(&tecmo16_charram) | |
| 98 | AM_RANGE(0x120000, 0x120fff) AM_RAM_WRITE(tecmo16_videoram_w) AM_BASE(&tecmo16_videoram) | |
| 99 | AM_RANGE(0x121000, 0x121fff) AM_RAM_WRITE(tecmo16_colorram_w) AM_BASE(&tecmo16_colorram) | |
| 100 | AM_RANGE(0x122000, 0x122fff) AM_RAM_WRITE(tecmo16_videoram2_w) AM_BASE(&tecmo16_videoram2) | |
| 101 | AM_RANGE(0x123000, 0x123fff) AM_RAM_WRITE(tecmo16_colorram2_w) AM_BASE(&tecmo16_colorram2) | |
| 102 | AM_RANGE(0x124000, 0x124fff) AM_RAM /* extra RAM for Riot */ | |
| 103 | AM_RANGE(0x130000, 0x130fff) AM_RAM AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) | |
| 104 | AM_RANGE(0x140000, 0x141fff) AM_RAM_WRITE(paletteram16_xxxxBBBBGGGGRRRR_word_w) AM_BASE(&paletteram16) | |
| 136 | 105 | AM_RANGE(0x150000, 0x150001) AM_WRITE(tecmo16_flipscreen_w) |
| 137 | 106 | AM_RANGE(0x150010, 0x150011) AM_WRITE(tecmo16_sound_command_w) |
| 138 | AM_RANGE(0x150020, 0x150021) AM_WRITE(SMH_NOP) /* ??? */ | |
| 139 | AM_RANGE(0x150030, 0x150031) AM_WRITE(SMH_NOP) /* ??? */ | |
| 107 | AM_RANGE(0x150020, 0x150021) AM_READ_PORT("EXTRA") AM_WRITENOP /* ??? */ | |
| 108 | AM_RANGE(0x150030, 0x150031) AM_READ_PORT("DSW2") AM_WRITENOP /* ??? */ | |
| 109 | AM_RANGE(0x150040, 0x150041) AM_READ_PORT("DSW1") | |
| 110 | AM_RANGE(0x150050, 0x150051) AM_READ_PORT("P1_P2") | |
| 140 | 111 | AM_RANGE(0x160000, 0x160001) AM_WRITE(tecmo16_scroll_char_x_w) |
| 141 | 112 | AM_RANGE(0x160006, 0x160007) AM_WRITE(tecmo16_scroll_char_y_w) |
| 142 | 113 | AM_RANGE(0x16000c, 0x16000d) AM_WRITE(tecmo16_scroll_x_w) |
| r4470 | r4471 | |
| 145 | 116 | AM_RANGE(0x16001e, 0x16001f) AM_WRITE(tecmo16_scroll2_y_w) |
| 146 | 117 | ADDRESS_MAP_END |
| 147 | 118 | |
| 148 | static ADDRESS_MAP_START( sound_readmem, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 149 | AM_RANGE(0x0000, 0xefff) AM_READ(SMH_ROM) | |
| 150 | AM_RANGE(0xf000, 0xfbff) AM_READ(SMH_RAM) /* Sound RAM */ | |
| 151 | AM_RANGE(0xfc00, 0xfc00) AM_DEVREAD("oki", okim6295_r) | |
| 152 | AM_RANGE(0xfc04, 0xfc05) AM_DEVREAD("ym", ym2151_r) | |
| 119 | static ADDRESS_MAP_START( sound_map, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 120 | AM_RANGE(0x0000, 0xefff) AM_ROM | |
| 121 | AM_RANGE(0xf000, 0xfbff) AM_RAM /* Sound RAM */ | |
| 122 | AM_RANGE(0xfc00, 0xfc00) AM_DEVREADWRITE("oki", okim6295_r, okim6295_w) | |
| 123 | AM_RANGE(0xfc04, 0xfc05) AM_DEVREADWRITE("ym", ym2151_r, ym2151_w) | |
| 153 | 124 | AM_RANGE(0xfc08, 0xfc08) AM_READ(soundlatch_r) |
| 154 | AM_RANGE(0xfc0c, 0xfc0c) AM_READ(SMH_NOP) | |
| 155 | AM_RANGE(0xfffe, 0xffff) AM_READ(SMH_RAM) | |
| 125 | AM_RANGE(0xfc0c, 0xfc0c) AM_NOP | |
| 126 | AM_RANGE(0xfffe, 0xffff) AM_RAM | |
| 156 | 127 | ADDRESS_MAP_END |
| 157 | 128 | |
| 158 | static ADDRESS_MAP_START( sound_writemem, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 159 | AM_RANGE(0x0000, 0xefff) AM_WRITE(SMH_ROM) | |
| 160 | AM_RANGE(0xf000, 0xfbff) AM_WRITE(SMH_RAM) /* Sound RAM */ | |
| 161 | AM_RANGE(0xfc00, 0xfc00) AM_DEVWRITE("oki", okim6295_w) | |
| 162 | AM_RANGE(0xfc04, 0xfc05) AM_DEVWRITE("ym", ym2151_w) | |
| 163 | AM_RANGE(0xfc0c, 0xfc0c) AM_WRITE(SMH_NOP) | |
| 164 | AM_RANGE(0xfffe, 0xffff) AM_WRITE(SMH_RAM) | |
| 165 | ADDRESS_MAP_END | |
| 166 | ||
| 167 | 129 | /******************************************************************************/ |
| 168 | 130 | |
| 169 | 131 | static INPUT_PORTS_START( fstarfrc ) |
| r4470 | r4471 | |
| 440 | 402 | |
| 441 | 403 | /* basic machine hardware */ |
| 442 | 404 | MDRV_CPU_ADD("maincpu", M68000,24000000/2) /* 12MHz */ |
| 443 | MDRV_CPU_PROGRAM_MAP(fstarfrc_ | |
| 405 | MDRV_CPU_PROGRAM_MAP(fstarfrc_ | |
| 444 | 406 | MDRV_CPU_VBLANK_INT("screen", irq5_line_hold) |
| 445 | 407 | |
| 446 | 408 | MDRV_CPU_ADD("audiocpu", Z80,8000000/2) /* 4MHz */ |
| 447 | MDRV_CPU_PROGRAM_MAP(sound_ | |
| 409 | MDRV_CPU_PROGRAM_MAP(sound_ | |
| 448 | 410 | /* NMIs are triggered by the main CPU */ |
| 449 | 411 | MDRV_QUANTUM_TIME(HZ(600)) |
| 450 | 412 | |
| r4470 | r4471 | |
| 477 | 439 | MACHINE_DRIVER_END |
| 478 | 440 | |
| 479 | 441 | static MACHINE_DRIVER_START( ginkun ) |
| 442 | MDRV_IMPORT_FROM(fstarfrc) | |
| 480 | 443 | |
| 481 | /* basic machine hardware */ | |
| 482 | MDRV_CPU_ADD("maincpu", M68000,24000000/2) /* 12MHz */ | |
| 483 | MDRV_CPU_PROGRAM_MAP(ginkun_readmem,ginkun_writemem) | |
| 484 | MDRV_CPU_VBLANK_INT("screen", irq5_line_hold) | |
| 444 | MDRV_CPU_MODIFY("maincpu") | |
| 445 | MDRV_CPU_PROGRAM_MAP(ginkun_map,0) | |
| 485 | 446 | |
| 486 | MDRV_CPU_ADD("audiocpu", Z80,8000000/2) /* 4MHz */ | |
| 487 | MDRV_CPU_PROGRAM_MAP(sound_readmem,sound_writemem) | |
| 488 | /* NMIs are triggered by the main CPU */ | |
| 489 | MDRV_QUANTUM_TIME(HZ(600)) | |
| 490 | ||
| 491 | /* video hardware */ | |
| 492 | MDRV_SCREEN_ADD("screen", RASTER) | |
| 493 | MDRV_SCREEN_REFRESH_RATE(60) | |
| 494 | MDRV_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) | |
| 495 | MDRV_SCREEN_FORMAT(BITMAP_FORMAT_RGB32) | |
| 496 | MDRV_SCREEN_SIZE(32*8, 32*8) | |
| 497 | MDRV_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) | |
| 498 | ||
| 499 | MDRV_GFXDECODE(tecmo16) | |
| 500 | MDRV_PALETTE_LENGTH(4096) | |
| 501 | ||
| 502 | 447 | MDRV_VIDEO_START(ginkun) |
| 503 | MDRV_VIDEO_UPDATE(tecmo16) | |
| 504 | ||
| 505 | /* sound hardware */ | |
| 506 | MDRV_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") | |
| 507 | ||
| 508 | MDRV_SOUND_ADD("ym", YM2151, 8000000/2) | |
| 509 | MDRV_SOUND_CONFIG(ym2151_config) | |
| 510 | MDRV_SOUND_ROUTE(0, "lspeaker", 0.60) | |
| 511 | MDRV_SOUND_ROUTE(1, "rspeaker", 0.60) | |
| 512 | ||
| 513 | MDRV_SOUND_ADD("oki", OKIM6295, 999900) | |
| 514 | MDRV_SOUND_CONFIG(okim6295_interface_pin7high) // clock frequency & pin 7 not verified | |
| 515 | MDRV_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.40) | |
| 516 | MDRV_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.40) | |
| 517 | 448 | MACHINE_DRIVER_END |
| 518 | 449 | |
| 519 | 450 | static MACHINE_DRIVER_START( riot ) |
| r0 | r4471 | |
|---|---|---|
| 1 | /* Unknown - Poker (morugem | |
| 2 | ||
| 3 | driver by Roberto Zandona' | |
| 4 | thanks to Angelo Salese for some precious advice | |
| 5 | ||
| 6 | TO DO: | |
| 7 | - check sound | |
| 8 | ||
| 9 | Anno: 1982 | |
| 10 | Produttore: | |
| 11 | N.revisione: | |
| 12 | ||
| 13 | CPU: | |
| 14 | 1x unknown DIP40 (1ef)(missing) | |
| 15 | 1x TBA820 (14e)(sound) | |
| 16 | 1x oscillator 12.000 (2f) | |
| 17 | ||
| 18 | ROMs: | |
| 19 | 2x TMS2532 (5b,5e) | |
| 20 | 1x TMS2516 (8b) | |
| 21 | 1x PROM SN74S288N (8a) | |
| 22 | 1x RAM MWS5101AEL2 (11e) | |
| 23 | 4x RAM AM9114EPC (2b,3b,8e,9e) | |
| 24 | ||
| 25 | Note: | |
| 26 | 1x 22x2 edge connector | |
| 27 | 1x trimmer (volume) | |
| 28 | 1x 8x2 switches dip | |
| 29 | 1x empty DIP14 socket (close to sound) | |
| 30 | ||
| 31 | Funzionamento: Non Funzionante | |
| 32 | ||
| 33 | Dumped: 06/04/2009 f205v | |
| 34 | */ | |
| 35 | ||
| 36 | #include "driver.h" | |
| 37 | #include "cpu/z80/z80.h" | |
| 38 | #include "sound/dac.h" | |
| 39 | ||
| 40 | static UINT8* murogmbl_video; | |
| 41 | ||
| 42 | static PALETTE_INIT( murogmbl ) | |
| 43 | { | |
| 44 | int bit0, bit1, bit2 , r, g, b; | |
| 45 | int i; | |
| 46 | ||
| 47 | for (i = 0; i < 0x20; ++i) | |
| 48 | { | |
| 49 | bit0 = (color_prom[0] >> 0) & 0x01; | |
| 50 | bit1 = (color_prom[0] >> 1) & 0x01; | |
| 51 | bit2 = (color_prom[0] >> 2) & 0x01; | |
| 52 | r = 0x21 * bit0 + 0x47 * bit1 + 0x97 * bit2; | |
| 53 | bit0 = (color_prom[0] >> 3) & 0x01; | |
| 54 | bit1 = (color_prom[0] >> 4) & 0x01; | |
| 55 | bit2 = (color_prom[0] >> 5) & 0x01; | |
| 56 | g = 0x21 * bit0 + 0x47 * bit1 + 0x97 * bit2; | |
| 57 | bit0 = 0; | |
| 58 | bit1 = (color_prom[0] >> 6) & 0x01; | |
| 59 | bit2 = (color_prom[0] >> 7) & 0x01; | |
| 60 | b = 0x21 * bit0 + 0x47 * bit1 + 0x97 * bit2; | |
| 61 | ||
| 62 | palette_set_color(machine, i, MAKE_RGB(r, g, b)); | |
| 63 | color_prom++; | |
| 64 | } | |
| 65 | } | |
| 66 | ||
| 67 | static ADDRESS_MAP_START( murogmbl_map, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 68 | AM_RANGE(0x0000, 0x1fFf) AM_ROM | |
| 69 | AM_RANGE(0x4000, 0x43ff) AM_RAM | |
| 70 | AM_RANGE(0x4800, 0x4bff) AM_RAM | |
| 71 | AM_RANGE(0x5800, 0x5bff) AM_RAM AM_BASE(&murogmbl_video) | |
| 72 | AM_RANGE(0x5c00, 0x5fff) AM_RAM | |
| 73 | AM_RANGE(0x6000, 0x6000) AM_READ_PORT("IN0") | |
| 74 | AM_RANGE(0x6800, 0x6800) AM_READ_PORT("DSW") | |
| 75 | AM_RANGE(0x7000, 0x7000) AM_READ_PORT("IN1") | |
| 76 | AM_RANGE(0x7800, 0x7800) AM_READNOP AM_DEVWRITE("dac1", dac_w) /* read is always discarded */ | |
| 77 | ADDRESS_MAP_END | |
| 78 | ||
| 79 | static VIDEO_START(murogmbl) | |
| 80 | { | |
| 81 | ||
| 82 | } | |
| 83 | ||
| 84 | static VIDEO_UPDATE(murogmbl) | |
| 85 | { | |
| 86 | const gfx_element *gfx = screen->machine->gfx[0]; | |
| 87 | int count = 0; | |
| 88 | ||
| 89 | int y, x; | |
| 90 | ||
| 91 | for (y = 0; y < 32; y++) | |
| 92 | { | |
| 93 | for (x = 0; x < 32; x++) | |
| 94 | { | |
| 95 | int tile = murogmbl_video[count]; | |
| 96 | drawgfx(bitmap, gfx, tile, 0, 0, 0, x * 8, y * 8, cliprect, TRANSPARENCY_NONE, 0); | |
| 97 | ||
| 98 | count++; | |
| 99 | } | |
| 100 | } | |
| 101 | return 0; | |
| 102 | } | |
| 103 | ||
| 104 | static INPUT_PORTS_START( murogmbl ) | |
| 105 | PORT_START("IN0") | |
| 106 | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON6 ) PORT_NAME("Clear") PORT_CODE(KEYCODE_A) | |
| 107 | PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON7 ) PORT_NAME("Replay") PORT_CODE(KEYCODE_2) | |
| 108 | PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START1 ) PORT_NAME("Deal") | |
| 109 | PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON5 ) PORT_NAME("Hold 5") PORT_CODE(KEYCODE_B) | |
| 110 | PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON8 ) PORT_NAME("Coin clear") PORT_CODE(KEYCODE_S) | |
| 111 | PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN ) | |
| 112 | PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_COIN1 ) PORT_NAME("Coin 1") | |
| 113 | PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_COIN2 ) PORT_NAME("Coin 2") | |
| 114 | ||
| 115 | PORT_START("IN1") | |
| 116 | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME("Hold 1") PORT_CODE(KEYCODE_Z) | |
| 117 | PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_NAME("Hold 2") PORT_CODE(KEYCODE_X) | |
| 118 | PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_NAME("Hold 3") PORT_CODE(KEYCODE_C) | |
| 119 | PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_NAME("Hold 4") PORT_CODE(KEYCODE_V) | |
| 120 | PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNKNOWN ) | |
| 121 | PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN ) | |
| 122 | PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN ) | |
| 123 | PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) | |
| 124 | ||
| 125 | PORT_START("DSW") | |
| 126 | PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) ) | |
| 127 | PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) | |
| 128 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) | |
| 129 | PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) ) | |
| 130 | PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) | |
| 131 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) | |
| 132 | PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) | |
| 133 | PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) | |
| 134 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) | |
| 135 | PORT_DIPNAME( 0x08, 0x08, "Coin 2" ) | |
| 136 | PORT_DIPSETTING( 0x08, "10 credits" ) | |
| 137 | PORT_DIPSETTING( 0x00, "5 credits" ) | |
| 138 | PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) | |
| 139 | PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) | |
| 140 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) | |
| 141 | PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) | |
| 142 | PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) | |
| 143 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) | |
| 144 | PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) | |
| 145 | PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) | |
| 146 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) | |
| 147 | PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) | |
| 148 | PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) | |
| 149 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) | |
| 150 | INPUT_PORTS_END | |
| 151 | ||
| 152 | static const gfx_layout layout8x8x2 = | |
| 153 | { | |
| 154 | 8,8, | |
| 155 | RGN_FRAC(1,2), | |
| 156 | 2, | |
| 157 | { | |
| 158 | RGN_FRAC(0,2),RGN_FRAC(1,2) | |
| 159 | }, | |
| 160 | { STEP8(0,1) }, | |
| 161 | { STEP8(0,8) }, | |
| 162 | 8*8 | |
| 163 | }; | |
| 164 | ||
| 165 | static GFXDECODE_START( murogmbl ) | |
| 166 | GFXDECODE_ENTRY( "gfx1", 0, layout8x8x2, 0x0, 1 ) | |
| 167 | GFXDECODE_END | |
| 168 | ||
| 169 | static MACHINE_DRIVER_START( murogmbl ) | |
| 170 | /* basic machine hardware */ | |
| 171 | MDRV_CPU_ADD("maincpu", Z80, 1000000) /* Z80? */ | |
| 172 | MDRV_CPU_PROGRAM_MAP(murogmbl_map, 0) | |
| 173 | ||
| 174 | MDRV_GFXDECODE(murogmbl) | |
| 175 | ||
| 176 | MDRV_PALETTE_INIT(murogmbl) | |
| 177 | ||
| 178 | /* video hardware */ | |
| 179 | MDRV_SCREEN_ADD("screen", RASTER) | |
| 180 | MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) | |
| 181 | MDRV_SCREEN_REFRESH_RATE(60) | |
| 182 | MDRV_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) | |
| 183 | MDRV_SCREEN_SIZE(64*8, 32*8) | |
| 184 | MDRV_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1) | |
| 185 | ||
| 186 | MDRV_PALETTE_LENGTH(0x100) | |
| 187 | ||
| 188 | MDRV_VIDEO_START(murogmbl) | |
| 189 | MDRV_VIDEO_UPDATE(murogmbl) | |
| 190 | ||
| 191 | MDRV_SPEAKER_STANDARD_MONO("mono") | |
| 192 | MDRV_SOUND_ADD("dac1", DAC, 0) | |
| 193 | MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) | |
| 194 | MACHINE_DRIVER_END | |
| 195 | ||
| 196 | ||
| 197 | ||
| 198 | ROM_START(murogmbl) | |
| 199 | ROM_REGION( 0x10000, "maincpu", 0 ) | |
| 200 | ROM_LOAD("2532.5e", 0x0000, 0x1000, CRC(093d4560) SHA1(d5401b5f7a2ebe5099fefc5b09f8710886e243b2) ) | |
| 201 | ||
| 202 | ROM_REGION( 0x1000, "gfx1", 0 ) | |
| 203 | ROM_LOAD("2532.8b", 0x0000, 0x0800, CRC(4427ffc0) SHA1(45f5fd0ae967cdb6abbf2e6c6d12d787556488ef) ) | |
| 204 | ROM_CONTINUE(0x0000, 0x0800) | |
| 205 | ROM_LOAD("2516.5b", 0x0800, 0x0800, CRC(496ad48c) SHA1(28380c9d02b64e7d5ef2763de92cd2ca8861eceb) ) | |
| 206 | ||
| 207 | ROM_REGION( 0x0020, "proms", 0 ) | |
| 208 | ROM_LOAD( "74s288.a8", 0x0000, 0x0020, CRC(fc35201c) SHA1(4549e228c48992e0d10957f029b89a547392e72b) ) | |
| 209 | ROM_END | |
| 210 | ||
| 211 | GAME( 1982, murogmbl, murogem, murogmbl, murogmbl, 0, ROT0, "bootleg", "Murogem Monaco (bootleg)?", GAME_NO_SOUND ) |
| r4470 | r4471 | |
|---|---|---|
| 106 | 106 | AM_RANGE(0x1400, 0x143F) AM_DEVWRITE("earom", atari_vg_earom_w) |
| 107 | 107 | AM_RANGE(0x1800, 0x1800) AM_DEVWRITE("earom", atari_vg_earom_ctrl_w) |
| 108 | 108 | AM_RANGE(0x1c00, 0x1c0f) AM_WRITE(runaway_paletteram_w) |
| 109 | AM_RANGE(0x2000, 0x2000) AM_WRITE(SMH_NOP) /* coin counter? */ | |
| 110 | AM_RANGE(0x2001, 0x2001) AM_WRITE(SMH_NOP) /* coin counter? */ | |
| 109 | AM_RANGE(0x2000, 0x2000) AM_WRITENOP /* coin counter? */ | |
| 110 | AM_RANGE(0x2001, 0x2001) AM_WRITENOP /* coin counter? */ | |
| 111 | 111 | AM_RANGE(0x2003, 0x2004) AM_WRITE(runaway_led_w) |
| 112 | 112 | AM_RANGE(0x2005, 0x2005) AM_WRITE(runaway_tile_bank_w) |
| 113 | 113 | AM_RANGE(0x6000, 0x600f) AM_DEVWRITE("pokey1", pokey_w) |
| r4470 | r4471 | |
|---|---|---|
| 130 | 130 | static UINT8 *toypop_m68000_sharedram; |
| 131 | 131 | |
| 132 | 132 | |
| 133 | static READ8_HANDLER( toypop_sound_sharedram_r ) | |
| 133 | static READ8_DEVICE_HANDLER( toypop_sound_sharedram_r ) | |
| 134 | 134 | { |
| 135 | 135 | return namco_soundregs[offset]; |
| 136 | 136 | } |
| r4470 | r4471 | |
| 252 | 252 | * |
| 253 | 253 | *************************************/ |
| 254 | 254 | |
| 255 | static ADDRESS_MAP_START( readmem_mainCPU_liblrabl, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 256 | AM_RANGE(0x0000, 0x2fff) AM_READ(SMH_RAM) /* RAM everywhere else */ | |
| 257 | AM_RANGE(0x6000, 0x63ff) AM_READ(toypop_sound_sharedram_r) /* shared RAM with sound CPU */ | |
| 258 | AM_RANGE(0x6800, 0x683f) AM_READ(namcoio_r) /* custom I/O */ | |
| 259 | AM_RANGE(0x7800, 0x7800) AM_READ(watchdog_reset_r) /* not sure; this is NOT irq enable (game crashes otherwise) */ | |
| 260 | AM_RANGE(0x8000, 0xffff) AM_READ(SMH_ROM) /* ROM code */ | |
| 261 | ADDRESS_MAP_END | |
| 262 | ||
| 263 | static ADDRESS_MAP_START( readmem_mainCPU_toypop, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 264 | AM_RANGE(0x0000, 0x2fff) AM_READ(SMH_RAM) /* RAM everywhere else */ | |
| 265 | AM_RANGE(0x6000, 0x603f) AM_READ(namcoio_r) /* custom I/O */ | |
| 266 | AM_RANGE(0x6800, 0x6bff) AM_READ(toypop_sound_sharedram_r) /* shared RAM with sound CPU */ | |
| 267 | AM_RANGE(0x7000, 0x7000) AM_READ(toypop_main_interrupt_enable_r) /* enable interrupt?? */ | |
| 268 | AM_RANGE(0x8000, 0xffff) AM_READ(SMH_ROM) /* ROM code */ | |
| 269 | ADDRESS_MAP_END | |
| 270 | ||
| 271 | static ADDRESS_MAP_START( writemem_mainCPU_liblrabl, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 272 | AM_RANGE(0x0000, 0x07ff) AM_WRITE(toypop_videoram_w) AM_BASE(&toypop_videoram) /* video RAM */ | |
| 273 | AM_RANGE(0x0800, 0x0f7f) AM_WRITE(SMH_RAM) /* general RAM, area 1 */ | |
| 274 | AM_RANGE(0x0f80, 0x0fff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram) /* sprite RAM, area 1 */ | |
| 275 | AM_RANGE(0x1000, 0x177f) AM_WRITE(SMH_RAM) /* general RAM, area 2 */ | |
| 276 | AM_RANGE(0x1780, 0x17ff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram_2) /* sprite RAM, area 2 */ | |
| 277 | AM_RANGE(0x1800, 0x1f7f) AM_WRITE(SMH_RAM) /* general RAM, area 3 */ | |
| 278 | AM_RANGE(0x1f80, 0x1fff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram_3) /* sprite RAM, area 3 */ | |
| 279 | AM_RANGE(0x2800, 0x2fff) AM_WRITE(SMH_RAM) AM_BASE(&toypop_m68000_sharedram) /* shared RAM with the 68000 CPU */ | |
| 280 | AM_RANGE(0x6000, 0x63ff) AM_DEVWRITE("namco", toypop_sound_sharedram_w) /* shared RAM with sound CPU */ | |
| 281 | AM_RANGE(0x6800, 0x683f) AM_WRITE(namcoio_w) /* custom I/O */ | |
| 282 | AM_RANGE(0x7000, 0x7000) AM_WRITE(toypop_main_interrupt_enable_w) /* enable interrupt */ | |
| 283 | AM_RANGE(0x7800, 0x7800) AM_WRITE(toypop_main_interrupt_disable_w) /* disable interrupt */ | |
| 284 | AM_RANGE(0x8000, 0x8000) AM_WRITE(toypop_m68000_clear_w) /* reset 68000 */ | |
| 285 | AM_RANGE(0x8800, 0x8800) AM_WRITE(toypop_m68000_assert_w) /* reset 68000 */ | |
| 255 | static ADDRESS_MAP_START( liblrabl_map, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 256 | AM_RANGE(0x0000, 0x07ff) AM_RAM_WRITE(toypop_videoram_w) AM_BASE(&toypop_videoram) /* video RAM */ | |
| 257 | AM_RANGE(0x0800, 0x0f7f) AM_RAM /* general RAM, area 1 */ | |
| 258 | AM_RANGE(0x0f80, 0x0fff) AM_RAM AM_BASE(&spriteram) /* sprite RAM, area 1 */ | |
| 259 | AM_RANGE(0x1000, 0x177f) AM_RAM /* general RAM, area 2 */ | |
| 260 | AM_RANGE(0x1780, 0x17ff) AM_RAM AM_BASE(&spriteram_2) /* sprite RAM, area 2 */ | |
| 261 | AM_RANGE(0x1800, 0x1f7f) AM_RAM /* general RAM, area 3 */ | |
| 262 | AM_RANGE(0x1f80, 0x1fff) AM_RAM AM_BASE(&spriteram_3) /* sprite RAM, area 3 */ | |
| 263 | AM_RANGE(0x2800, 0x2fff) AM_RAM AM_BASE(&toypop_m68000_sharedram) /* shared RAM with the 68000 CPU */ | |
| 264 | AM_RANGE(0x6000, 0x63ff) AM_DEVREADWRITE("namco", toypop_sound_sharedram_r, toypop_sound_sharedram_w) /* shared RAM with sound CPU */ | |
| 265 | AM_RANGE(0x6800, 0x683f) AM_READWRITE(namcoio_r, namcoio_w) /* custom I/O */ | |
| 266 | AM_RANGE(0x7000, 0x7000) AM_WRITE(toypop_main_interrupt_enable_w) /* enable interrupt */ | |
| 267 | AM_RANGE(0x7800, 0x7800) AM_READWRITE(watchdog_reset_r, toypop_main_interrupt_disable_w) /* disable interrupt */ | |
| 268 | AM_RANGE(0x8000, 0x8000) AM_WRITE(toypop_m68000_clear_w) /* reset 68000 */ | |
| 269 | AM_RANGE(0x8800, 0x8800) AM_WRITE(toypop_m68000_assert_w) /* reset 68000 */ | |
| 286 | 270 | AM_RANGE(0x9000, 0x9000) AM_WRITE(toypop_sound_clear_w) /* sound CPU reset */ |
| 287 | AM_RANGE(0x9800, 0x9800) AM_WRITE(toypop_sound_assert_w) | |
| 271 | AM_RANGE(0x9800, 0x9800) AM_WRITE(toypop_sound_assert_w) | |
| 288 | 272 | AM_RANGE(0xa000, 0xa001) AM_WRITE(toypop_palettebank_w) /* background image palette */ |
| 289 | AM_RANGE(0x8000, 0xffff) AM_ | |
| 273 | AM_RANGE(0x8000, 0xffff) AM_ | |
| 290 | 274 | ADDRESS_MAP_END |
| 291 | 275 | |
| 292 | static ADDRESS_MAP_START( writemem_mainCPU_toypop, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 293 | AM_RANGE(0x0000, 0x07ff) AM_WRITE(toypop_videoram_w) AM_BASE(&toypop_videoram) /* video RAM */ | |
| 294 | AM_RANGE(0x0800, 0x0f7f) AM_WRITE(SMH_RAM) /* general RAM, area 1 */ | |
| 295 | AM_RANGE(0x0f80, 0x0fff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram) /* sprite RAM, area 1 */ | |
| 296 | AM_RANGE(0x1000, 0x177f) AM_WRITE(SMH_RAM) /* general RAM, area 2 */ | |
| 297 | AM_RANGE(0x1780, 0x17ff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram_2) /* sprite RAM, area 2 */ | |
| 298 | AM_RANGE(0x1800, 0x1f7f) AM_WRITE(SMH_RAM) /* general RAM, area 3 */ | |
| 299 | AM_RANGE(0x1f80, 0x1fff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram_3) /* sprite RAM, area 3 */ | |
| 300 | AM_RANGE(0x2800, 0x2fff) AM_WRITE(SMH_RAM) AM_BASE(&toypop_m68000_sharedram) /* shared RAM with the 68000 CPU */ | |
| 301 | AM_RANGE(0x6000, 0x603f) AM_WRITE(namcoio_w) /* custom I/O */ | |
| 302 | AM_RANGE(0x6800, 0x6bff) AM_DEVWRITE("namco", toypop_sound_sharedram_w) /* shared RAM with sound CPU */ | |
| 303 | AM_RANGE(0x7000, 0x7000) AM_WRITE(toypop_main_interrupt_disable_w) /* disable interrupt */ | |
| 304 | AM_RANGE(0x8000, 0x8000) AM_WRITE(toypop_m68000_clear_w) /* reset 68000 */ | |
| 305 | AM_RANGE(0x8800, 0x8800) AM_WRITE(toypop_m68000_assert_w) /* reset 68000 */ | |
| 276 | static ADDRESS_MAP_START( toypop_map, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 277 | AM_RANGE(0x0000, 0x07ff) AM_RAM_WRITE(toypop_videoram_w) AM_BASE(&toypop_videoram) /* video RAM */ | |
| 278 | AM_RANGE(0x0800, 0x0f7f) AM_RAM /* general RAM, area 1 */ | |
| 279 | AM_RANGE(0x0f80, 0x0fff) AM_RAM AM_BASE(&spriteram) /* sprite RAM, area 1 */ | |
| 280 | AM_RANGE(0x1000, 0x177f) AM_RAM /* general RAM, area 2 */ | |
| 281 | AM_RANGE(0x1780, 0x17ff) AM_RAM AM_BASE(&spriteram_2) /* sprite RAM, area 2 */ | |
| 282 | AM_RANGE(0x1800, 0x1f7f) AM_RAM /* general RAM, area 3 */ | |
| 283 | AM_RANGE(0x1f80, 0x1fff) AM_RAM AM_BASE(&spriteram_3) /* sprite RAM, area 3 */ | |
| 284 | AM_RANGE(0x2800, 0x2fff) AM_RAM AM_BASE(&toypop_m68000_sharedram) /* shared RAM with the 68000 CPU */ | |
| 285 | AM_RANGE(0x6000, 0x603f) AM_READWRITE(namcoio_r, namcoio_w) /* custom I/O */ | |
| 286 | AM_RANGE(0x6800, 0x6bff) AM_DEVREADWRITE("namco", toypop_sound_sharedram_r, toypop_sound_sharedram_w) /* shared RAM with sound CPU */ | |
| 287 | AM_RANGE(0x7000, 0x7000) AM_READWRITE(toypop_main_interrupt_enable_r, toypop_main_interrupt_disable_w) /* disable interrupt */ | |
| 288 | AM_RANGE(0x8000, 0x8000) AM_WRITE(toypop_m68000_clear_w) /* reset 68000 */ | |
| 289 | AM_RANGE(0x8800, 0x8800) AM_WRITE(toypop_m68000_assert_w) /* reset 68000 */ | |
| 306 | 290 | AM_RANGE(0x9000, 0x9000) AM_WRITE(toypop_sound_clear_w) /* sound CPU reset */ |
| 307 | AM_RANGE(0x9800, 0x9800) AM_WRITE(toypop_sound_assert_w) | |
| 291 | AM_RANGE(0x9800, 0x9800) AM_WRITE(toypop_sound_assert_w) | |
| 308 | 292 | AM_RANGE(0xa000, 0xa001) AM_WRITE(toypop_palettebank_w) /* background image palette */ |
| 309 | AM_RANGE(0x8000, 0xffff) AM_ | |
| 293 | AM_RANGE(0x8000, 0xffff) AM_ | |
| 310 | 294 | ADDRESS_MAP_END |
| 311 | 295 | |
| 312 | 296 | |
| r4470 | r4471 | |
| 316 | 300 | * |
| 317 | 301 | *************************************/ |
| 318 | 302 | |
| 319 | static ADDRESS_MAP_START( readmem_soundCPU, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 320 | AM_RANGE(0x0000, 0x03ff) AM_READ(toypop_sound_sharedram_r) | |
| 321 | AM_RANGE(0xe000, 0xffff) AM_READ(SMH_ROM) | |
| 322 | ADDRESS_MAP_END | |
| 323 | ||
| 324 | static ADDRESS_MAP_START( writemem_soundCPU, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 325 | AM_RANGE(0x0000, 0x03ff) AM_DEVWRITE("namco", toypop_sound_sharedram_w) AM_BASE(&namco_soundregs) /* shared RAM with the main CPU + sound registers */ | |
| 303 | static ADDRESS_MAP_START( sound_map, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 304 | AM_RANGE(0x0000, 0x03ff) AM_DEVREADWRITE("namco", toypop_sound_sharedram_r, toypop_sound_sharedram_w) AM_BASE(&namco_soundregs) /* shared RAM with the main CPU + sound registers */ | |
| 326 | 305 | AM_RANGE(0x2000, 0x2000) AM_WRITE(toypop_sound_interrupt_disable_w) /* ??? toypop doesn't write here */ |
| 327 | 306 | AM_RANGE(0x4000, 0x4000) AM_WRITE(toypop_sound_interrupt_enable_acknowledge_w) |
| 328 | 307 | AM_RANGE(0x6000, 0x6000) AM_WRITE(watchdog_reset_w) |
| 329 | AM_RANGE(0xe000, 0xffff) AM_ | |
| 308 | AM_RANGE(0xe000, 0xffff) AM_ | |
| 330 | 309 | ADDRESS_MAP_END |
| 331 | 310 | |
| 332 | 311 | |
| r4470 | r4471 | |
| 337 | 316 | * |
| 338 | 317 | *************************************/ |
| 339 | 318 | |
| 340 | static ADDRESS_MAP_START( readmem_68k, ADDRESS_SPACE_PROGRAM, 16 ) | |
| 341 | AM_RANGE(0x000000, 0x007fff) AM_READ(SMH_ROM) // ROM code | |
| 342 | AM_RANGE(0x080000, 0x0bffff) AM_READ(SMH_RAM) // RAM | |
| 343 | AM_RANGE(0x100000, 0x100fff) AM_READ(toypop_m68000_sharedram_r) // shared RAM with the main CPU | |
| 344 | AM_RANGE(0x180000, 0x187fff) AM_READ(toypop_merged_background_r) // RAM merged with the background image | |
| 345 | AM_RANGE(0x190000, 0x1dffff) AM_READ(SMH_RAM) // RAM containing the background image | |
| 319 | static ADDRESS_MAP_START( m68k_map, ADDRESS_SPACE_PROGRAM, 16 ) | |
| 320 | AM_RANGE(0x000000, 0x007fff) AM_ROM /* ROM code */ | |
| 321 | AM_RANGE(0x080000, 0x0bffff) AM_RAM /* RAM */ | |
| 322 | AM_RANGE(0x100000, 0x100fff) AM_READWRITE(toypop_m68000_sharedram_r, toypop_m68000_sharedram_w) /* shared RAM with the main CPU */ | |
| 323 | AM_RANGE(0x180000, 0x187fff) AM_READWRITE(toypop_merged_background_r, toypop_merged_background_w) /* RAM that has to be merged with the background image */ | |
| 324 | AM_RANGE(0x18fffc, 0x18ffff) AM_WRITE(toypop_flipscreen_w) /* flip mode */ | |
| 325 | AM_RANGE(0x190000, 0x1dffff) AM_RAM AM_BASE(&toypop_bg_image) /* RAM containing the background image */ | |
| 326 | AM_RANGE(0x300000, 0x300001) AM_WRITE(toypop_m68000_interrupt_enable_w) /* interrupt enable */ | |
| 327 | AM_RANGE(0x380000, 0x380001) AM_WRITE(toypop_m68000_interrupt_disable_w)/* interrupt disable */ | |
| 346 | 328 | ADDRESS_MAP_END |
| 347 | 329 | |
| 348 | static ADDRESS_MAP_START( writemem_68k, ADDRESS_SPACE_PROGRAM, 16 ) | |
| 349 | AM_RANGE(0x000000, 0x007fff) AM_WRITE(SMH_ROM) /* ROM code */ | |
| 350 | AM_RANGE(0x080000, 0x0bffff) AM_WRITE(SMH_RAM) /* RAM */ | |
| 351 | AM_RANGE(0x100000, 0x100fff) AM_WRITE(toypop_m68000_sharedram_w) /* shared RAM with the main CPU */ | |
| 352 | AM_RANGE(0x180000, 0x187fff) AM_WRITE(toypop_merged_background_w) /* RAM that has to be merged with the background image */ | |
| 353 | AM_RANGE(0x18fffc, 0x18ffff) AM_WRITE(toypop_flipscreen_w) /* flip mode */ | |
| 354 | AM_RANGE(0x190000, 0x1dffff) AM_WRITE(SMH_RAM) AM_BASE(&toypop_bg_image) /* RAM containing the background image */ | |
| 355 | AM_RANGE(0x300000, 0x300001) AM_WRITE(toypop_m68000_interrupt_enable_w) /* interrupt enable */ | |
| 356 | AM_RANGE(0x380000, 0x380001) AM_WRITE(toypop_m68000_interrupt_disable_w) /* interrupt disable */ | |
| 357 | ADDRESS_MAP_END | |
| 358 | 330 | |
| 359 | 331 | |
| 360 | ||
| 361 | 332 | static INPUT_PORTS_START( liblrabl ) |
| 362 | 333 | /* The inputs are not memory mapped, they are handled by three I/O chips. */ |
| 363 | 334 | PORT_START("INPUT_RIGHT") /* 58XX #0 pins 22-29 */ |
| r4470 | r4471 | |
| 571 | 542 | |
| 572 | 543 | /* basic machine hardware */ |
| 573 | 544 | MDRV_CPU_ADD("maincpu", M6809, 1536000) /* 1.536 MHz (measured on Libble Rabble board) */ |
| 574 | MDRV_CPU_PROGRAM_MAP( | |
| 545 | MDRV_CPU_PROGRAM_MAP( | |
| 575 | 546 | MDRV_CPU_VBLANK_INT("screen", toypop_main_interrupt) |
| 576 | 547 | |
| 577 | 548 | MDRV_CPU_ADD("audiocpu", M6809, 1536000) |
| 578 | MDRV_CPU_PROGRAM_MAP( | |
| 549 | MDRV_CPU_PROGRAM_MAP( | |
| 579 | 550 | MDRV_CPU_VBLANK_INT("screen", irq0_line_assert) |
| 580 | 551 | |
| 581 | 552 | MDRV_CPU_ADD("sub", M68000, 6144000) /* 6.144 MHz (measured on Libble Rabble board) */ |
| 582 | MDRV_CPU_PROGRAM_MAP( | |
| 553 | MDRV_CPU_PROGRAM_MAP( | |
| 583 | 554 | MDRV_CPU_VBLANK_INT("screen", toypop_m68000_interrupt) |
| 584 | 555 | |
| 585 | 556 | MDRV_QUANTUM_TIME(HZ(6000)) /* 100 CPU slices per frame - an high value to ensure proper */ |
| r4470 | r4471 | |
| 614 | 585 | /* basic machine hardware */ |
| 615 | 586 | MDRV_IMPORT_FROM(liblrabl) |
| 616 | 587 | MDRV_CPU_MODIFY("maincpu") |
| 617 | MDRV_CPU_PROGRAM_MAP( | |
| 588 | MDRV_CPU_PROGRAM_MAP( | |
| 618 | 589 | MACHINE_DRIVER_END |
| 619 | 590 | |
| 620 | 591 |
| r4470 | r4471 | |
|---|---|---|
| 673 | 673 | AM_RANGE(0x160000, 0x1607ff) AM_RAM AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) /* Bootleg sprite buffer */ |
| 674 | 674 | AM_RANGE(0x160800, 0x160807) AM_WRITE(SMH_RAM) /* writes past the end of spriteram */ |
| 675 | 675 | AM_RANGE(0x180000, 0x18000f) AM_READ(tumblepopb_controls_r) |
| 676 | AM_RANGE(0x18000c, 0x18000d) AM_WRITE | |
| 676 | AM_RANGE(0x18000c, 0x18000d) AM_WRITE | |
| 677 | 677 | AM_RANGE(0x1a0000, 0x1a07ff) AM_RAM |
| 678 | 678 | AM_RANGE(0x300000, 0x30000f) AM_WRITE(tumblepb_control_0_w) |
| 679 | 679 | AM_RANGE(0x320000, 0x320fff) AM_WRITE(tumblepb_pf1_data_w) AM_BASE(&tumblepb_pf1_data) |
| 680 | 680 | AM_RANGE(0x322000, 0x322fff) AM_WRITE(tumblepb_pf2_data_w) AM_BASE(&tumblepb_pf2_data) |
| 681 | AM_RANGE(0x340000, 0x3401ff) AM_WRITE(SMH_NOP) /* Unused row scroll */ | |
| 682 | AM_RANGE(0x340400, 0x34047f) AM_WRITE(SMH_NOP) /* Unused col scroll */ | |
| 683 | AM_RANGE(0x342000, 0x3421ff) AM_WRITE(SMH_NOP) | |
| 684 | AM_RANGE(0x342400, 0x34247f) AM_WRITE(SMH_NOP) | |
| 681 | AM_RANGE(0x340000, 0x3401ff) AM_WRITENOP /* Unused row scroll */ | |
| 682 | AM_RANGE(0x340400, 0x34047f) AM_WRITENOP /* Unused col scroll */ | |
| 683 | AM_RANGE(0x342000, 0x3421ff) AM_WRITENOP | |
| 684 | AM_RANGE(0x342400, 0x34247f) AM_WRITENOP | |
| 685 | 685 | ADDRESS_MAP_END |
| 686 | 686 | |
| 687 | 687 | static ADDRESS_MAP_START( fncywld_main_map, ADDRESS_SPACE_PROGRAM, 16 ) |
| r4470 | r4471 | |
| 697 | 697 | AM_RANGE(0x160000, 0x1607ff) AM_RAM AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) /* sprites */ |
| 698 | 698 | AM_RANGE(0x160800, 0x16080f) AM_WRITE(SMH_RAM) /* goes slightly past the end of spriteram? */ |
| 699 | 699 | AM_RANGE(0x180000, 0x18000f) AM_READ(tumblepopb_controls_r) |
| 700 | AM_RANGE(0x18000c, 0x18000d) AM_WRITE | |
| 700 | AM_RANGE(0x18000c, 0x18000d) AM_WRITE | |
| 701 | 701 | AM_RANGE(0x1a0000, 0x1a07ff) AM_RAM |
| 702 | 702 | AM_RANGE(0x300000, 0x30000f) AM_WRITE(tumblepb_control_0_w) |
| 703 | 703 | AM_RANGE(0x320000, 0x321fff) AM_RAM_WRITE(fncywld_pf1_data_w) AM_BASE(&tumblepb_pf1_data) |
| 704 | 704 | AM_RANGE(0x322000, 0x323fff) AM_RAM_WRITE(fncywld_pf2_data_w) AM_BASE(&tumblepb_pf2_data) |
| 705 | AM_RANGE(0x340000, 0x3401ff) AM_WRITE(SMH_NOP) /* Unused row scroll */ | |
| 706 | AM_RANGE(0x340400, 0x34047f) AM_WRITE(SMH_NOP) /* Unused col scroll */ | |
| 707 | AM_RANGE(0x342000, 0x3421ff) AM_WRITE(SMH_NOP) | |
| 708 | AM_RANGE(0x342400, 0x34247f) AM_WRITE(SMH_NOP) | |
| 705 | AM_RANGE(0x340000, 0x3401ff) AM_WRITENOP /* Unused row scroll */ | |
| 706 | AM_RANGE(0x340400, 0x34047f) AM_WRITENOP /* Unused col scroll */ | |
| 707 | AM_RANGE(0x342000, 0x3421ff) AM_WRITENOP | |
| 708 | AM_RANGE(0x342400, 0x34247f) AM_WRITENOP | |
| 709 | 709 | AM_RANGE(0xff0000, 0xffffff) AM_RAM |
| 710 | 710 | ADDRESS_MAP_END |
| 711 | 711 | |
| r4470 | r4471 | |
| 723 | 723 | AM_RANGE(0x140000, 0x1407ff) AM_RAM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE(&paletteram16) |
| 724 | 724 | AM_RANGE(0x160000, 0x160fff) AM_RAM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) /* Bootleg sprite buffer */ |
| 725 | 725 | AM_RANGE(0x180000, 0x18000f) AM_READ(tumblepopb_controls_r) |
| 726 | AM_RANGE(0x18000c, 0x18000d) AM_WRITE | |
| 726 | AM_RANGE(0x18000c, 0x18000d) AM_WRITE | |
| 727 | 727 | AM_RANGE(0x1a0000, 0x1a0fff) AM_RAM |
| 728 | 728 | AM_RANGE(0x300000, 0x30000f) AM_WRITE(tumblepb_control_0_w) |
| 729 | 729 | AM_RANGE(0x320000, 0x321fff) AM_WRITE(tumblepb_pf1_data_w) AM_BASE(&tumblepb_pf1_data) |
| r4470 | r4471 | |
| 859 | 859 | AM_RANGE(0x160000, 0x1607ff) AM_RAM AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) /* Bootleg sprite buffer */ |
| 860 | 860 | AM_RANGE(0x160800, 0x160807) AM_WRITE(SMH_RAM) /* writes past the end of spriteram */ |
| 861 | 861 | AM_RANGE(0x180000, 0x18000f) AM_READ(tumblepopb_controls_r) |
| 862 | AM_RANGE(0x18000c, 0x18000d) AM_WRITE | |
| 862 | AM_RANGE(0x18000c, 0x18000d) AM_WRITE | |
| 863 | 863 | AM_RANGE(0x1a0000, 0x1a07ff) AM_RAM |
| 864 | 864 | AM_RANGE(0x300000, 0x30000f) AM_WRITE(tumblepb_control_0_w) |
| 865 | 865 | AM_RANGE(0x320000, 0x320fff) AM_WRITE(tumblepb_pf1_data_w) AM_BASE(&tumblepb_pf1_data) |
| 866 | 866 | AM_RANGE(0x322000, 0x322fff) AM_WRITE(tumblepb_pf2_data_w) AM_BASE(&tumblepb_pf2_data) |
| 867 | AM_RANGE(0x340000, 0x3401ff) AM_WRITE(SMH_NOP) /* Unused row scroll */ | |
| 868 | AM_RANGE(0x340400, 0x34047f) AM_WRITE(SMH_NOP) /* Unused col scroll */ | |
| 869 | AM_RANGE(0x342000, 0x3421ff) AM_WRITE(SMH_NOP) | |
| 870 | AM_RANGE(0x342400, 0x34247f) AM_WRITE(SMH_NOP) | |
| 867 | AM_RANGE(0x340000, 0x3401ff) AM_WRITENOP /* Unused row scroll */ | |
| 868 | AM_RANGE(0x340400, 0x34047f) AM_WRITENOP /* Unused col scroll */ | |
| 869 | AM_RANGE(0x342000, 0x3421ff) AM_WRITENOP | |
| 870 | AM_RANGE(0x342400, 0x34247f) AM_WRITENOP | |
| 871 | 871 | ADDRESS_MAP_END |
| 872 | 872 | |
| 873 | 873 | static WRITE8_HANDLER( jumpkids_oki_bank_w ) |
| r4470 | r4471 | |
|---|---|---|
| 93 | 93 | |
| 94 | 94 | AM_RANGE(0xd064, 0xd0ff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size) |
| 95 | 95 | |
| 96 | AM_RANGE(0xd400, 0xd400) AM_WRITE | |
| 96 | AM_RANGE(0xd400, 0xd400) AM_WRITE | |
| 97 | 97 | AM_RANGE(0xd402, 0xd402) AM_WRITE(momoko_flipscreen_w) |
| 98 | 98 | AM_RANGE(0xd404, 0xd404) AM_WRITE(watchdog_reset_w) |
| 99 | 99 | AM_RANGE(0xd406, 0xd406) AM_WRITE(soundlatch_w) |
| r4470 | r4471 | |
| 126 | 126 | static ADDRESS_MAP_START( writemem_sound, ADDRESS_SPACE_PROGRAM, 8 ) |
| 127 | 127 | AM_RANGE(0x0000, 0x7fff) AM_WRITE(SMH_ROM) |
| 128 | 128 | AM_RANGE(0x8000, 0x87ff) AM_WRITE(SMH_RAM) |
| 129 | AM_RANGE(0x9000, 0x9000) AM_WRITE | |
| 129 | AM_RANGE(0x9000, 0x9000) AM_WRITE | |
| 130 | 130 | AM_RANGE(0xa000, 0xa001) AM_DEVWRITE("ym1", ym2203_w) |
| 131 | AM_RANGE(0xb000, 0xb000) AM_WRITE | |
| 131 | AM_RANGE(0xb000, 0xb000) AM_WRITE | |
| 132 | 132 | AM_RANGE(0xc000, 0xc001) AM_DEVWRITE("ym2", ym2203_w) |
| 133 | 133 | ADDRESS_MAP_END |
| 134 | 134 |
| r4470 | r4471 | |
|---|---|---|
| 736 | 736 | |
| 737 | 737 | MDRV_SOUND_ADD("ym", YM2151, XTAL_3_579545MHz) /* verified on pcb */ |
| 738 | 738 | MDRV_SOUND_CONFIG(ym2151_config) |
| 739 | MDRV_SOUND_ROUTE(0, "mono", 0.90) | |
| 740 | MDRV_SOUND_ROUTE(1, "mono", 0.90) | |
| 739 | MDRV_SOUND_ROUTE(0, "mono", 0.15) | |
| 740 | MDRV_SOUND_ROUTE(1, "mono", 0.15) | |
| 741 | 741 | |
| 742 | 742 | MDRV_SOUND_ADD("dac", DAC, 0) |
| 743 | MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0. | |
| 743 | MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.10) | |
| 744 | 744 | MACHINE_DRIVER_END |
| 745 | 745 | |
| 746 | 746 | |
| r4470 | r4471 | |
| 817 | 817 | |
| 818 | 818 | MDRV_SOUND_ADD("ym", YM2151, XTAL_3_579545MHz) /* verified on pcb */ |
| 819 | 819 | MDRV_SOUND_CONFIG(ym2151_config) |
| 820 | MDRV_SOUND_ROUTE(0, "mono", 0.90) | |
| 821 | MDRV_SOUND_ROUTE(1, "mono", 0.90) | |
| 820 | MDRV_SOUND_ROUTE(0, "mono", 0.15) | |
| 821 | MDRV_SOUND_ROUTE(1, "mono", 0.15) | |
| 822 | 822 | |
| 823 | 823 | MDRV_SOUND_ADD("dac", DAC, 0) |
| 824 | MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0. | |
| 824 | MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.10) | |
| 825 | 825 | MACHINE_DRIVER_END |
| 826 | 826 | |
| 827 | 827 | static const nec_config dynablaster_config ={ dynablaster_decryption_table, }; |
| r4470 | r4471 | |
| 862 | 862 | |
| 863 | 863 | MDRV_SOUND_ADD("ym", YM2151, XTAL_3_579545MHz) /* verified on pcb */ |
| 864 | 864 | MDRV_SOUND_CONFIG(ym2151_config) |
| 865 | MDRV_SOUND_ROUTE(0, "mono", 0.90) | |
| 866 | MDRV_SOUND_ROUTE(1, "mono", 0.90) | |
| 865 | MDRV_SOUND_ROUTE(0, "mono", 0.15) | |
| 866 | MDRV_SOUND_ROUTE(1, "mono", 0.15) | |
| 867 | 867 | |
| 868 | 868 | MDRV_SOUND_ADD("dac", DAC, 0) |
| 869 | MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0. | |
| 869 | MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.10) | |
| 870 | 870 | MACHINE_DRIVER_END |
| 871 | 871 | |
| 872 | 872 | static const nec_config no_table ={ NULL, }; |
| r4470 | r4471 | |
| 931 | 931 | |
| 932 | 932 | MDRV_SOUND_ADD("ym", YM2151, XTAL_3_579545MHz) |
| 933 | 933 | MDRV_SOUND_CONFIG(ym2151_config) |
| 934 | MDRV_SOUND_ROUTE(0, "mono", 0.90) | |
| 935 | MDRV_SOUND_ROUTE(1, "mono", 0.90) | |
| 934 | MDRV_SOUND_ROUTE(0, "mono", 0.15) | |
| 935 | MDRV_SOUND_ROUTE(1, "mono", 0.15) | |
| 936 | 936 | |
| 937 | 937 | MDRV_SOUND_ADD("dac", DAC, 0) |
| 938 | MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0. | |
| 938 | MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.10) | |
| 939 | 939 | MACHINE_DRIVER_END |
| 940 | 940 | |
| 941 | 941 | /***************************************************************************/ |
| r4470 | r4471 | |
| 1300 | 1300 | GAME( 1992, bbmanwj, bbmanw, bbmanwj, bbmanwj, 0, ROT0, "Irem", "Bomber Man World (Japan)", GAME_IMPERFECT_SOUND | GAME_NO_COCKTAIL ) |
| 1301 | 1301 | GAME( 1992, newapunk, bbmanw, bbmanw, bbmanwj, 0, ROT0, "Irem America", "New Atomic Punk - Global Quest (US)", GAME_IMPERFECT_SOUND | GAME_NO_COCKTAIL ) |
| 1302 | 1302 | GAME( 1992, bomblord, bbmanw, bomblord, bbmanw, bomblord, ROT0, "bootleg", "Bomber Lord (bootleg)", GAME_IMPERFECT_SOUND | GAME_NO_COCKTAIL ) |
| 1303 | GAME( 1992, quizf1, 0, quizf1, quizf1, quizf1, ROT0, "Irem", "Quiz F-1 1,2finish", GAME_NO_COCKTAIL ) | |
| 1304 | GAME( 1993, riskchal, 0, riskchal, riskchal, 0, ROT0, "Irem", "Risky Challenge", GAME_IMPERFECT_GRAPHICS ) | |
| 1305 | GAME( 1993, gussun, riskchal, riskchal, riskchal, 0, ROT0, "Irem", "Gussun Oyoyo (Japan)", GAME_IMPERFECT_GRAPHICS ) | |
| 1303 | GAME( 1992, quizf1, 0, quizf1, quizf1, quizf1, ROT0, "Irem", "Quiz F-1 1,2finish", GAME_IMPERFECT_GRAPHICS | GAME_NO_COCKTAIL ) | |
| 1304 | GAME( 1993, riskchal, 0, riskchal, riskchal, 0, ROT0, "Irem", "Risky Challenge", GAME_NO_COCKTAIL ) | |
| 1305 | GAME( 1993, gussun, riskchal, riskchal, riskchal, 0, ROT0, "Irem", "Gussun Oyoyo (Japan)", GAME_NO_COCKTAIL ) | |
| 1306 | 1306 | GAME( 1993, matchit2, 0, matchit2, matchit2, 0, ROT0, "Tamtex", "Match It II", GAME_NO_COCKTAIL ) |
| 1307 | 1307 | GAME( 1993, shisen2, matchit2, matchit2, shisen2, 0, ROT0, "Tamtex", "Shisensho II", GAME_NO_COCKTAIL ) |
| 1308 | 1308 |
| r4470 | r4471 | |
|---|---|---|
| 36 | 36 | #include "cpu/z80/z80.h" |
| 37 | 37 | #include "cpu/m6809/m6809.h" |
| 38 | 38 | #include "sound/2203intf.h" |
| 39 | #include "konamipt.h" | |
| 39 | 40 | |
| 40 | 41 | extern UINT8 *scotrsht_scroll; |
| 41 | 42 | |
| r4470 | r4471 | |
| 74 | 75 | AM_RANGE(0x1000, 0x10bf) AM_RAM AM_BASE(&spriteram) AM_SIZE(&spriteram_size) /* sprites */ |
| 75 | 76 | AM_RANGE(0x10c0, 0x1fff) AM_RAM /* work ram */ |
| 76 | 77 | AM_RANGE(0x2000, 0x201f) AM_RAM AM_BASE(&scotrsht_scroll) /* scroll registers */ |
| 77 | AM_RANGE(0x2040, 0x2040) AM_WRITE(SMH_NOP) | |
| 78 | AM_RANGE(0x2041, 0x2041) AM_WRITE(SMH_NOP) | |
| 79 | AM_RANGE(0x2042, 0x2042) AM_WRITE(SMH_NOP) /* it should be -> bit 2 = scroll direction like in jailbrek, but it's not used */ | |
| 78 | AM_RANGE(0x2040, 0x2040) AM_WRITENOP | |
| 79 | AM_RANGE(0x2041, 0x2041) AM_WRITENOP | |
| 80 | AM_RANGE(0x2042, 0x2042) AM_WRITENOP /* it should be -> bit 2 = scroll direction like in jailbrek, but it's not used */ | |
| 80 | 81 | AM_RANGE(0x2043, 0x2043) AM_WRITE(scotrsht_charbank_w) |
| 81 | 82 | AM_RANGE(0x2044, 0x2044) AM_WRITE(ctrl_w) |
| 82 | 83 | AM_RANGE(0x3000, 0x3000) AM_WRITE(scotrsht_palettebank_w) |
| 83 | 84 | AM_RANGE(0x3100, 0x3100) AM_WRITE(scotrsht_soundlatch_w) |
| 84 | AM_RANGE(0x3200, 0x3200) AM_WRITE | |
| 85 | AM_RANGE(0x3200, 0x3200) AM_WRITE | |
| 85 | 86 | AM_RANGE(0x3100, 0x3100) AM_READ_PORT("DSW2") |
| 86 | 87 | AM_RANGE(0x3200, 0x3200) AM_READ_PORT("DSW3") |
| 87 | 88 | AM_RANGE(0x3300, 0x3300) AM_READ_PORT("SYSTEM") |
| r4470 | r4471 | |
| 116 | 117 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 117 | 118 | |
| 118 | 119 | PORT_START("P1") /* $3301 */ |
| 119 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) | |
| 120 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) | |
| 121 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) | |
| 122 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) | |
| 123 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) | |
| 124 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED ) | |
| 125 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) | |
| 126 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) | |
| 120 | KONAMI8_B1_UNK(1) | |
| 127 | 121 | |
| 128 | 122 | PORT_START("P2") /* $3302 */ |
| 129 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) | |
| 130 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) | |
| 131 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) | |
| 132 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) | |
| 133 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) | |
| 134 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED ) | |
| 135 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) | |
| 136 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) | |
| 123 | KONAMI8_B1_UNK(2) | |
| 137 | 124 | |
| 138 | 125 | PORT_START("DSW1") /* $3303 -> $196e */ |
| 139 | PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) ) | |
| 140 | PORT_DIPSETTING( 0x02, DEF_STR( 4C_1C ) ) | |
| 141 | PORT_DIPSETTING( 0x05, DEF_STR( 3C_1C ) ) | |
| 142 | PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) ) | |
| 143 | PORT_DIPSETTING( 0x04, DEF_STR( 3C_2C ) ) | |
| 144 | PORT_DIPSETTING( 0x01, DEF_STR( 4C_3C ) ) | |
| 145 | PORT_DIPSETTING( 0x0f, DEF_STR( 1C_1C ) ) | |
| 146 | PORT_DIPSETTING( 0x03, DEF_STR( 3C_4C ) ) | |
| 147 | PORT_DIPSETTING( 0x07, DEF_STR( 2C_3C ) ) | |
| 148 | PORT_DIPSETTING( 0x0e, DEF_STR( 1C_2C ) ) | |
| 149 | PORT_DIPSETTING( 0x06, DEF_STR( 2C_5C ) ) | |
| 150 | PORT_DIPSETTING( 0x0d, DEF_STR( 1C_3C ) ) | |
| 151 | PORT_DIPSETTING( 0x0c, DEF_STR( 1C_4C ) ) | |
| 152 | PORT_DIPSETTING( 0x0b, DEF_STR( 1C_5C ) ) | |
| 153 | PORT_DIPSETTING( 0x0a, DEF_STR( 1C_6C ) ) | |
| 154 | PORT_DIPSETTING( 0x09, DEF_STR( 1C_7C ) ) | |
| 155 | PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) /* see notes */ | |
| 156 | PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) ) | |
| 157 | PORT_DIPSETTING( 0x20, DEF_STR( 4C_1C ) ) | |
| 158 | PORT_DIPSETTING( 0x50, DEF_STR( 3C_1C ) ) | |
| 159 | PORT_DIPSETTING( 0x80, DEF_STR( 2C_1C ) ) | |
| 160 | PORT_DIPSETTING( 0x40, DEF_STR( 3C_2C ) ) | |
| 161 | PORT_DIPSETTING( 0x10, DEF_STR( 4C_3C ) ) | |
| 162 | PORT_DIPSETTING( 0xf0, DEF_STR( 1C_1C ) ) | |
| 163 | PORT_DIPSETTING( 0x30, DEF_STR( 3C_4C ) ) | |
| 164 | PORT_DIPSETTING( 0x70, DEF_STR( 2C_3C ) ) | |
| 165 | PORT_DIPSETTING( 0xe0, DEF_STR( 1C_2C ) ) | |
| 166 | PORT_DIPSETTING( 0x60, DEF_STR( 2C_5C ) ) | |
| 167 | PORT_DIPSETTING( 0xd0, DEF_STR( 1C_3C ) ) | |
| 168 | PORT_DIPSETTING( 0xc0, DEF_STR( 1C_4C ) ) | |
| 169 | PORT_DIPSETTING( 0xb0, DEF_STR( 1C_5C ) ) | |
| 170 | PORT_DIPSETTING( 0xa0, DEF_STR( 1C_6C ) ) | |
| 171 | PORT_DIPSETTING( 0x90, DEF_STR( 1C_7C ) ) | |
| 172 | // PORT_DIPSETTING( 0x00, "Disable All Coin Slots" ) | |
| 126 | KONAMI_COINAGE(DEF_STR( Free_Play ), "Invalid") | |
| 127 | /* "Invalid" = both coin slots disabled */ | |
| 173 | 128 | |
| 174 | 129 | PORT_START("DSW2") /* $3100 -> $196f */ |
| 175 | 130 | PORT_DIPNAME( 0x03, 0x02, DEF_STR( Lives ) ) |
| r4470 | r4471 | |
|---|---|---|
| 898 | 898 | //static UINT16 *taitoz_ram; |
| 899 | 899 | //static UINT16 *motor_ram; |
| 900 | 900 | |
| 901 | static size_t taitoz_sharedram_size; | |
| 902 | static UINT16 *taitoz_sharedram; /* read externally to draw Spacegun crosshair */ | |
| 903 | ||
| 904 | static READ16_HANDLER( sharedram_r ) | |
| 905 | { | |
| 906 | return taitoz_sharedram[offset]; | |
| 907 | } | |
| 908 | ||
| 909 | static WRITE16_HANDLER( sharedram_w ) | |
| 910 | { | |
| 911 | COMBINE_DATA(&taitoz_sharedram[offset]); | |
| 912 | } | |
| 913 | ||
| 914 | 901 | static void parse_control(running_machine *machine) |
| 915 | 902 | { |
| 916 | 903 | /* bit 0 enables cpu B */ |
| r4470 | r4471 | |
| 1541 | 1528 | ***********************************************************/ |
| 1542 | 1529 | |
| 1543 | 1530 | |
| 1544 | static ADDRESS_MAP_START( contcirc_readmem, ADDRESS_SPACE_PROGRAM, 16 ) | |
| 1545 | AM_RANGE(0x000000, 0x03ffff) AM_READ(SMH_ROM) | |
| 1546 | AM_RANGE(0x080000, 0x083fff) AM_READ(SMH_RAM) /* main CPUA ram */ | |
| 1547 | AM_RANGE(0x084000, 0x087fff) AM_READ(sharedram_r) | |
| 1548 | AM_RANGE(0x100000, 0x100007) AM_READ(TC0110PCR_word_r) /* palette */ | |
| 1549 | AM_RANGE(0x200000, 0x20ffff) AM_READ(TC0100SCN_word_0_r) /* tilemaps */ | |
| 1550 | AM_RANGE(0x220000, 0x22000f) AM_READ(TC0100SCN_ctrl_word_0_r) | |
| 1551 | AM_RANGE(0x300000, 0x301fff) AM_READ(TC0150ROD_word_r) /* "root ram" */ | |
| 1552 | AM_RANGE(0x400000, 0x4006ff) AM_READ(SMH_RAM) /* spriteram */ | |
| 1553 | ADDRESS_MAP_END | |
| 1554 | ||
| 1555 | static ADDRESS_MAP_START( contcirc_writemem, ADDRESS_SPACE_PROGRAM, 16 ) | |
| 1556 | AM_RANGE(0x000000, 0x03ffff) AM_WRITE(SMH_ROM) | |
| 1557 | AM_RANGE(0x080000, 0x083fff) AM_WRITE(SMH_RAM) | |
| 1558 | AM_RANGE(0x084000, 0x087fff) AM_WRITE(sharedram_w) AM_BASE(&taitoz_sharedram) AM_SIZE(&taitoz_sharedram_size) | |
| 1531 | static ADDRESS_MAP_START( contcirc_map, ADDRESS_SPACE_PROGRAM, 16 ) | |
| 1532 | AM_RANGE(0x000000, 0x03ffff) AM_ROM | |
| 1533 | AM_RANGE(0x080000, 0x083fff) AM_RAM | |
| 1534 | AM_RANGE(0x084000, 0x087fff) AM_RAM AM_SHARE(1) | |
| 1559 | 1535 | AM_RANGE(0x090000, 0x090001) AM_WRITE(contcirc_out_w) /* road palette bank, sub CPU reset, 3d glasses control */ |
| 1560 | AM_RANGE(0x100000, 0x100007) AM_WRITE(TC0110PCR_step1_rbswap_word_w) /* palette */ | |
| 1561 | AM_RANGE(0x200000, 0x20ffff) AM_WRITE(TC0100SCN_word_0_w) /* tilemaps */ | |
| 1562 | AM_RANGE(0x220000, 0x22000f) AM_WRITE(TC0100SCN_ctrl_word_0_w) | |
| 1563 | AM_RANGE(0x300000, 0x301fff) AM_WRITE(TC0150ROD_word_w) /* "root ram" */ | |
| 1564 | AM_RANGE(0x400000, 0x4006ff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) | |
| 1536 | AM_RANGE(0x100000, 0x100007) AM_READWRITE(TC0110PCR_word_r, TC0110PCR_step1_rbswap_word_w) /* palette */ | |
| 1537 | AM_RANGE(0x200000, 0x20ffff) AM_READWRITE(TC0100SCN_word_0_r, TC0100SCN_word_0_w) /* tilemaps */ | |
| 1538 | AM_RANGE(0x220000, 0x22000f) AM_READWRITE(TC0100SCN_ctrl_word_0_r, TC0100SCN_ctrl_word_0_w) | |
| 1539 | AM_RANGE(0x300000, 0x301fff) AM_READWRITE(TC0150ROD_word_r, TC0150ROD_word_w) /* "root ram" */ | |
| 1540 | AM_RANGE(0x400000, 0x4006ff) AM_RAM AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) | |
| 1565 | 1541 | ADDRESS_MAP_END |
| 1566 | 1542 | |
| 1567 | static ADDRESS_MAP_START( contcirc_cpub_readmem, ADDRESS_SPACE_PROGRAM, 16 ) | |
| 1568 | AM_RANGE(0x000000, 0x03ffff) AM_READ(SMH_ROM) | |
| 1569 | AM_RANGE(0x080000, 0x083fff) AM_READ(SMH_RAM) | |
| 1570 | AM_RANGE(0x084000, 0x087fff) AM_READ(sharedram_r) | |
| 1571 | AM_RANGE(0x100000, 0x100001) AM_READ(contcirc_input_bypass_r) | |
| 1572 | AM_RANGE(0x100002, 0x100003) AM_READ(TC0220IOC_halfword_port_r) /* (actually game uses TC040IOC) */ | |
| 1573 | AM_RANGE(0x200000, 0x200003) AM_READ(taitoz_sound_r) | |
| 1543 | static ADDRESS_MAP_START( contcirc_cpub_map, ADDRESS_SPACE_PROGRAM, 16 ) | |
| 1544 | AM_RANGE(0x000000, 0x03ffff) AM_ROM | |
| 1545 | AM_RANGE(0x080000, 0x083fff) AM_RAM | |
| 1546 | AM_RANGE(0x084000, 0x087fff) AM_RAM AM_SHARE(1) | |
| 1547 | AM_RANGE(0x100000, 0x100001) AM_READWRITE(contcirc_input_bypass_r, TC0220IOC_halfword_portreg_w) | |
| 1548 | AM_RANGE(0x100002, 0x100003) AM_READWRITE(TC0220IOC_halfword_port_r, TC0220IOC_halfword_port_w) /* (actually game uses TC040IOC) */ | |
| 1549 | AM_RANGE(0x200000, 0x200003) AM_READWRITE(taitoz_sound_r, taitoz_sound_w) | |
| 1574 | 1550 | ADDRESS_MAP_END |
| 1575 | 1551 | |
| 1576 | static ADDRESS_MAP_START( contcirc_cpub_writemem, ADDRESS_SPACE_PROGRAM, 16 ) | |
| 1577 | AM_RANGE(0x000000, 0x03ffff) AM_WRITE(SMH_ROM) | |
| 1578 | AM_RANGE(0x080000, 0x083fff) AM_WRITE(SMH_RAM) | |
| 1579 | AM_RANGE(0x084000, 0x087fff) AM_WRITE(sharedram_w) AM_BASE(&taitoz_sharedram) | |
| 1580 | AM_RANGE(0x100000, 0x100001) AM_WRITE(TC0220IOC_halfword_portreg_w) | |
| 1581 | AM_RANGE(0x100002, 0x100003) AM_WRITE(TC0220IOC_halfword_port_w) | |
| 1582 | AM_RANGE(0x200000, 0x200003) AM_WRITE(taitoz_sound_w) | |
| 1583 | ADDRESS_MAP_END | |
| 1584 | 1552 | |
| 1585 | ||
| 1586 | static ADDRESS_MAP_START( chasehq_readmem, ADDRESS_SPACE_PROGRAM, 16 ) | |
| 1587 | AM_RANGE(0x000000, 0x07ffff) AM_READ(SMH_ROM) | |
| 1588 | AM_RANGE(0x100000, 0x107fff) AM_READ(SMH_RAM) /* main CPUA ram */ | |
| 1589 | AM_RANGE(0x108000, 0x10bfff) AM_READ(sharedram_r) | |
| 1590 | AM_RANGE(0x10c000, 0x10ffff) AM_READ(SMH_RAM) /* extra CPUA ram */ | |
| 1591 | AM_RANGE(0x400000, 0x400001) AM_READ(chasehq_input_bypass_r) | |
| 1592 | AM_RANGE(0x400002, 0x400003) AM_READ(TC0220IOC_halfword_port_r) | |
| 1593 | AM_RANGE(0x820000, 0x820003) AM_READ(taitoz_sound_r) | |
| 1594 | AM_RANGE(0xa00000, 0xa00007) AM_READ(TC0110PCR_word_r) /* palette */ | |
| 1595 | AM_RANGE(0xc00000, 0xc0ffff) AM_READ(TC0100SCN_word_0_r) /* tilemaps */ | |
| 1596 | AM_RANGE(0xc20000, 0xc2000f) AM_READ(TC0100SCN_ctrl_word_0_r) | |
| 1597 | AM_RANGE(0xd00000, 0xd007ff) AM_READ(SMH_RAM) /* spriteram */ | |
| 1598 | AM_RANGE(0xe00000, 0xe003ff) AM_READ(chasehq_motor_r) /* motor cpu */ | |
| 1599 | ADDRESS_MAP_END | |
| 1600 | ||
| 1601 | static ADDRESS_MAP_START( chasehq_writemem, ADDRESS_SPACE_PROGRAM, 16 ) | |
| 1602 | AM_RANGE(0x000000, 0x07ffff) AM_WRITE(SMH_ROM) | |
| 1603 | AM_RANGE(0x100000, 0x107fff) AM_WRITE(SMH_RAM) | |
| 1604 | AM_RANGE(0x108000, 0x10bfff) AM_WRITE(sharedram_w) AM_BASE(&taitoz_sharedram) AM_SIZE(&taitoz_sharedram_size) | |
| 1605 | AM_RANGE(0x10c000, 0x10ffff) AM_WRITE(SMH_RAM) | |
| 1606 | AM_RANGE(0x400000, 0x400001) AM_WRITE(TC0220IOC_halfword_portreg_w) | |
| 1607 | AM_RANGE(0x400002, 0x400003) AM_WRITE(TC0220IOC_halfword_port_w) | |
| 1553 | static ADDRESS_MAP_START( chasehq_map, ADDRESS_SPACE_PROGRAM, 16 ) | |
| 1554 | AM_RANGE(0x000000, 0x07ffff) AM_ROM | |
| 1555 | AM_RANGE(0x100000, 0x107fff) AM_RAM | |
| 1556 | AM_RANGE(0x108000, 0x10bfff) AM_RAM AM_SHARE(1) | |
| 1557 | AM_RANGE(0x10c000, 0x10ffff) AM_RAM | |
| 1558 | AM_RANGE(0x400000, 0x400001) AM_READWRITE(chasehq_input_bypass_r, TC0220IOC_halfword_portreg_w) | |
| 1559 | AM_RANGE(0x400002, 0x400003) AM_READWRITE(TC0220IOC_halfword_port_r, TC0220IOC_halfword_port_w) | |
| 1608 | 1560 | AM_RANGE(0x800000, 0x800001) AM_WRITE(cpua_ctrl_w) |
| 1609 | AM_RANGE(0x820000, 0x820003) AM_WRITE(taitoz_sound_w) | |
| 1610 | AM_RANGE(0xa00000, 0xa00007) AM_WRITE(TC0110PCR_step1_word_w) /* palette */ | |
| 1611 | AM_RANGE(0xc00000, 0xc0ffff) AM_WRITE(TC0100SCN_word_0_w) /* tilemaps */ | |
| 1612 | AM_RANGE(0xc20000, 0xc2000f) AM_WRITE(TC0100SCN_ctrl_word_0_w) | |
| 1613 | AM_RANGE(0xd00000, 0xd007ff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) | |
| 1614 | AM_RANGE(0xe00000, 0xe003ff) AM_WRITE(chasehq_motor_w) /* motor cpu */ | |
| 1561 | AM_RANGE(0x820000, 0x820003) AM_READWRITE(taitoz_sound_r, taitoz_sound_w) | |
| 1562 | AM_RANGE(0xa00000, 0xa00007) AM_READWRITE(TC0110PCR_word_r, TC0110PCR_step1_word_w) /* palette */ | |
| 1563 | AM_RANGE(0xc00000, 0xc0ffff) AM_READWRITE(TC0100SCN_word_0_r, TC0100SCN_word_0_w) /* tilemaps */ | |
| 1564 | AM_RANGE(0xc20000, 0xc2000f) AM_READWRITE(TC0100SCN_ctrl_word_0_r, TC0100SCN_ctrl_word_0_w) | |
| 1565 | AM_RANGE(0xd00000, 0xd007ff) AM_RAM AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) | |
| 1566 | AM_RANGE(0xe00000, 0xe003ff) AM_READWRITE(chasehq_motor_r, chasehq_motor_w) /* motor cpu */ | |
| 1615 | 1567 | ADDRESS_MAP_END |
| 1616 | 1568 | |
| 1617 | static ADDRESS_MAP_START( chq_cpub_readmem, ADDRESS_SPACE_PROGRAM, 16 ) | |
| 1618 | AM_RANGE(0x000000, 0x01ffff) AM_READ(SMH_ROM) | |
| 1619 | AM_RANGE(0x100000, 0x103fff) AM_READ(SMH_RAM) | |
| 1620 | AM_RANGE(0x108000, 0x10bfff) AM_READ(sharedram_r) | |
| 1621 | AM_RANGE(0x800000, 0x801fff) AM_READ(TC0150ROD_word_r) | |
| 1569 | static ADDRESS_MAP_START( chq_cpub_map, ADDRESS_SPACE_PROGRAM, 16 ) | |
| 1570 | AM_RANGE(0x000000, 0x01ffff) AM_ROM | |
| 1571 | AM_RANGE(0x100000, 0x103fff) AM_RAM | |
| 1572 | AM_RANGE(0x108000, 0x10bfff) AM_RAM AM_SHARE(1) | |
| 1573 | AM_RANGE(0x800000, 0x801fff) AM_READWRITE(TC0150ROD_word_r, TC0150ROD_word_w) | |
| 1622 | 1574 | ADDRESS_MAP_END |
| 1623 | 1575 | |
| 1624 | static ADDRESS_MAP_START( chq_cpub_writemem, ADDRESS_SPACE_PROGRAM, 16 ) | |
| 1625 | AM_RANGE(0x000000, 0x01ffff) AM_WRITE(SMH_ROM) | |
| 1626 | AM_RANGE(0x100000, 0x103fff) AM_WRITE(SMH_RAM) | |
| 1627 | AM_RANGE(0x108000, 0x10bfff) AM_WRITE(sharedram_w) AM_BASE(&taitoz_sharedram) | |
| 1628 | AM_RANGE(0x800000, 0x801fff) AM_WRITE(TC0150ROD_word_w) | |
| 1629 | ADDRESS_MAP_END | |
| 1630 | 1576 | |
| 1631 | ||
| 1632 | static ADDRESS_MAP_START( enforce_readmem, ADDRESS_SPACE_PROGRAM, 16 ) | |
| 1633 | AM_RANGE(0x000000, 0x03ffff) AM_READ(SMH_ROM) | |
| 1634 | AM_RANGE(0x100000, 0x103fff) AM_READ(SMH_RAM) /* main CPUA ram */ | |
| 1635 | AM_RANGE(0x104000, 0x107fff) AM_READ(sharedram_r) | |
| 1636 | AM_RANGE(0x300000, 0x3006ff) AM_READ(SMH_RAM) /* spriteram */ | |
| 1637 | AM_RANGE(0x400000, 0x401fff) AM_READ(TC0150ROD_word_r) /* "root ram" ??? */ | |
| 1638 | AM_RANGE(0x500000, 0x500007) AM_READ(TC0110PCR_word_r) /* palette */ | |
| 1639 | AM_RANGE(0x600000, 0x60ffff) AM_READ(TC0100SCN_word_0_r) /* tilemaps */ | |
| 1640 | AM_RANGE(0x620000, 0x62000f) AM_READ(TC0100SCN_ctrl_word_0_r) | |
| 1641 | ADDRESS_MAP_END | |
| 1642 | ||
| 1643 | static ADDRESS_MAP_START( enforce_writemem, ADDRESS_SPACE_PROGRAM, 16 ) | |
| 1644 | AM_RANGE(0x000000, 0x03ffff) AM_WRITE(SMH_ROM) | |
| 1645 | AM_RANGE(0x100000, 0x103fff) AM_WRITE(SMH_RAM) | |
| 1646 | AM_RANGE(0x104000, 0x107fff) AM_WRITE(sharedram_w) AM_BASE(&taitoz_sharedram) AM_SIZE(&taitoz_sharedram_size) | |
| 1577 | static ADDRESS_MAP_START( enforce_map, ADDRESS_SPACE_PROGRAM, 16 ) | |
| 1578 | AM_RANGE(0x000000, 0x03ffff) AM_ROM | |
| 1579 | AM_RANGE(0x100000, 0x103fff) AM_RAM | |
| 1580 | AM_RANGE(0x104000, 0x107fff) AM_RAM AM_SHARE(1) | |
| 1647 | 1581 | AM_RANGE(0x200000, 0x200001) AM_WRITE(cpua_ctrl_w) // works without? |
| 1648 | AM_RANGE(0x300000, 0x3006ff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) | |
| 1649 | AM_RANGE(0x400000, 0x401fff) AM_WRITE(TC0150ROD_word_w) /* "root ram" ??? */ | |
| 1650 | AM_RANGE(0x500000, 0x500007) AM_WRITE(TC0110PCR_step1_rbswap_word_w) /* palette */ | |
| 1651 | AM_RANGE(0x600000, 0x60ffff) AM_WRITE(TC0100SCN_word_0_w) /* tilemaps */ | |
| 1652 | AM_RANGE(0x620000, 0x62000f) AM_WRITE(TC0100SCN_ctrl_word_0_w) | |
| 1582 | AM_RANGE(0x300000, 0x3006ff) AM_RAM AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) | |
| 1583 | AM_RANGE(0x400000, 0x401fff) AM_READWRITE(TC0150ROD_word_r, TC0150ROD_word_w) /* "root ram" ??? */ | |
| 1584 | AM_RANGE(0x500000, 0x500007) AM_READWRITE(TC0110PCR_word_r, TC0110PCR_step1_rbswap_word_w) /* palette */ | |
| 1585 | AM_RANGE(0x600000, 0x60ffff) AM_READWRITE(TC0100SCN_word_0_r, TC0100SCN_word_0_w) /* tilemaps */ | |
| 1586 | AM_RANGE(0x620000, 0x62000f) AM_READWRITE(TC0100SCN_ctrl_word_0_r, TC0100SCN_ctrl_word_0_w) | |
| 1653 | 1587 | ADDRESS_MAP_END |
| 1654 | 1588 | |
| 1655 | static ADDRESS_MAP_START( enforce_cpub_readmem, ADDRESS_SPACE_PROGRAM, 16 ) | |
| 1656 | AM_RANGE(0x000000, 0x03ffff) AM_READ(SMH_ROM) | |
| 1657 | AM_RANGE(0x100000, 0x103fff) AM_READ(SMH_RAM) | |
| 1658 | AM_RANGE(0x104000, 0x107fff) AM_READ(sharedram_r) | |
| 1659 | AM_RANGE(0x200000, 0x200003) AM_READ(taitoz_sound_r) | |
| 1660 | AM_RANGE(0x300000, 0x300001) AM_READ(TC0220IOC_halfword_portreg_r) | |
| 1661 | AM_RANGE(0x300002, 0x300003) AM_READ(TC0220IOC_halfword_port_r) /* (actually game uses TC040IOC ?) */ | |
| 1589 | static ADDRESS_MAP_START( enforce_cpub_map, ADDRESS_SPACE_PROGRAM, 16 ) | |
| 1590 | AM_RANGE(0x000000, 0x03ffff) AM_ROM | |
| 1591 | AM_RANGE(0x100000, 0x103fff) AM_RAM | |
| 1592 | AM_RANGE(0x104000, 0x107fff) AM_RAM AM_SHARE(1) | |
| 1593 | AM_RANGE(0x200000, 0x200003) AM_READWRITE(taitoz_sound_r, taitoz_sound_w) | |
| 1594 | AM_RANGE(0x300000, 0x300001) AM_READWRITE(TC0220IOC_halfword_portreg_r, TC0220IOC_halfword_portreg_w) | |
| 1595 | AM_RANGE(0x300002, 0x300003) AM_READWRITE(TC0220IOC_halfword_port_r, TC0220IOC_halfword_port_w) | |
| 1662 | 1596 | ADDRESS_MAP_END |
| 1663 | 1597 | |
| 1664 | static ADDRESS_MAP_START( enforce_cpub_writemem, ADDRESS_SPACE_PROGRAM, 16 ) | |
| 1665 | AM_RANGE(0x000000, 0x03ffff) AM_WRITE(SMH_ROM) | |
| 1666 | AM_RANGE(0x100000, 0x103fff) AM_WRITE(SMH_RAM) | |
| 1667 | AM_RANGE(0x104000, 0x107fff) AM_WRITE(sharedram_w) AM_BASE(&taitoz_sharedram) | |
| 1668 | AM_RANGE(0x200000, 0x200003) AM_WRITE(taitoz_sound_w) | |
| 1669 | AM_RANGE(0x300000, 0x300001) AM_WRITE(TC0220IOC_halfword_portreg_w) | |
| 1670 | AM_RANGE(0x300002, 0x300003) AM_WRITE(TC0220IOC_halfword_port_w) | |
| 1671 | ADDRESS_MAP_END | |
| 1672 | 1598 | |
| 1673 | ||
| 1674 | static ADDRESS_MAP_START( bshark_readmem, ADDRESS_SPACE_PROGRAM, 16 ) | |
| 1675 | AM_RANGE(0x000000, 0x07ffff) AM_READ(SMH_ROM) | |
| 1676 | AM_RANGE(0x100000, 0x10ffff) AM_READ(SMH_RAM) /* main CPUA ram */ | |
| 1677 | AM_RANGE(0x110000, 0x113fff) AM_READ(sharedram_r) | |
| 1678 | AM_RANGE(0x400000, 0x40000f) AM_READ(TC0220IOC_halfword_r) | |
| 1679 | AM_RANGE(0x800000, 0x800007) AM_READ(bshark_stick_r) | |
| 1680 | AM_RANGE(0xa00000, 0xa01fff) AM_READ(SMH_RAM) /* palette */ | |
| 1681 | AM_RANGE(0xc00000, 0xc00fff) AM_READ(SMH_RAM) /* spriteram */ | |
| 1682 | AM_RANGE(0xd00000, 0xd0ffff) AM_READ(TC0100SCN_word_0_r) /* tilemaps */ | |
| 1683 | AM_RANGE(0xd20000, 0xd2000f) AM_READ(TC0100SCN_ctrl_word_0_r) | |
| 1684 | ADDRESS_MAP_END | |
| 1685 | ||
| 1686 | static ADDRESS_MAP_START( bshark_writemem, ADDRESS_SPACE_PROGRAM, 16 ) | |
| 1687 | AM_RANGE(0x000000, 0x07ffff) AM_WRITE(SMH_ROM) | |
| 1688 | AM_RANGE(0x100000, 0x10ffff) AM_WRITE(SMH_RAM) | |
| 1689 | AM_RANGE(0x110000, 0x113fff) AM_WRITE(sharedram_w) AM_BASE(&taitoz_sharedram) AM_SIZE(&taitoz_sharedram_size) | |
| 1690 | AM_RANGE(0x400000, 0x40000f) AM_WRITE(TC0220IOC_halfword_w) | |
| 1599 | static ADDRESS_MAP_START( bshark_map, ADDRESS_SPACE_PROGRAM, 16 ) | |
| 1600 | AM_RANGE(0x000000, 0x07ffff) AM_ROM | |
| 1601 | AM_RANGE(0x100000, 0x10ffff) AM_RAM | |
| 1602 | AM_RANGE(0x110000, 0x113fff) AM_RAM AM_SHARE(1) | |
| 1603 | AM_RANGE(0x400000, 0x40000f) AM_READWRITE(TC0220IOC_halfword_r, TC0220IOC_halfword_w) | |
| 1691 | 1604 | AM_RANGE(0x600000, 0x600001) AM_WRITE(cpua_noz80_ctrl_w) |
| 1692 | AM_RANGE(0x800000, 0x800007) AM_WRITE(bshark_stick_w) | |
| 1693 | AM_RANGE(0xa00000, 0xa01fff) AM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE(&paletteram16) | |
| 1694 | AM_RANGE(0xc00000, 0xc00fff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) | |
| 1695 | AM_RANGE(0xd00000, 0xd0ffff) AM_WRITE(TC0100SCN_word_0_w) /* tilemaps */ | |
| 1696 | AM_RANGE(0xd20000, 0xd2000f) AM_WRITE(TC0100SCN_ctrl_word_0_w) | |
| 1605 | AM_RANGE(0x800000, 0x800007) AM_READWRITE(bshark_stick_r, bshark_stick_w) | |
| 1606 | AM_RANGE(0xa00000, 0xa01fff) AM_RAM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE(&paletteram16) | |
| 1607 | AM_RANGE(0xc00000, 0xc00fff) AM_RAM AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) | |
| 1608 | AM_RANGE(0xd00000, 0xd0ffff) AM_READWRITE(TC0100SCN_word_0_r, TC0100SCN_word_0_w) /* tilemaps */ | |
| 1609 | AM_RANGE(0xd20000, 0xd2000f) AM_READWRITE(TC0100SCN_ctrl_word_0_r, TC0100SCN_ctrl_word_0_w) | |
| 1697 | 1610 | ADDRESS_MAP_END |
| 1698 | 1611 | |
| 1699 | static ADDRESS_MAP_START( bshark_cpub_readmem, ADDRESS_SPACE_PROGRAM, 16 ) | |
| 1700 | AM_RANGE(0x000000, 0x07ffff) AM_READ(SMH_ROM) | |
| 1701 | AM_RANGE(0x108000, 0x10bfff) AM_READ(SMH_RAM) | |
| 1702 | AM_RANGE(0x110000, 0x113fff) AM_READ(sharedram_r) | |
| 1612 | static ADDRESS_MAP_START( bshark_cpub_map, ADDRESS_SPACE_PROGRAM, 16 ) | |
| 1613 | AM_RANGE(0x000000, 0x07ffff) AM_ROM | |
| 1614 | AM_RANGE(0x108000, 0x10bfff) AM_RAM | |
| 1615 | AM_RANGE(0x110000, 0x113fff) AM_RAM AM_SHARE(1) | |
| 1616 | AM_RANGE(0x400000, 0x400007) AM_WRITE(spacegun_pancontrol) /* pan */ | |
| 1703 | 1617 | // AM_RANGE(0x40000a, 0x40000b) AM_READ(taitoz_unknown_r) // ??? |
| 1704 | AM_RANGE(0x600000, 0x600007) AM_DEVREAD8("ym", ym2610_r, 0x00ff) | |
| 1705 | AM_RANGE(0x60000c, 0x60000d) AM_READ(SMH_NOP) | |
| 1706 | AM_RANGE(0x60000e, 0x60000f) AM_READ(SMH_NOP) | |
| 1707 | AM_RANGE(0x800000, 0x801fff) AM_READ(TC0150ROD_word_r) /* "root ram" */ | |
| 1618 | AM_RANGE(0x600000, 0x600007) AM_DEVREADWRITE8("ym", ym2610_r, ym2610_w, 0x00ff) | |
| 1619 | AM_RANGE(0x60000c, 0x60000d) AM_NOP // interrupt controller? | |
| 1620 | AM_RANGE(0x60000e, 0x60000f) AM_NOP | |
| 1621 | AM_RANGE(0x800000, 0x801fff) AM_READWRITE(TC0150ROD_word_r, TC0150ROD_word_w) /* "root ram" */ | |
| 1708 | 1622 | ADDRESS_MAP_END |
| 1709 | 1623 | |
| 1710 | static ADDRESS_MAP_START( bshark_cpub_writemem, ADDRESS_SPACE_PROGRAM, 16 ) | |
| 1711 | AM_RANGE(0x000000, 0x07ffff) AM_WRITE(SMH_ROM) | |
| 1712 | AM_RANGE(0x108000, 0x10bfff) AM_WRITE(SMH_RAM) | |
| 1713 | AM_RANGE(0x110000, 0x113fff) AM_WRITE(sharedram_w) | |
| 1714 | AM_RANGE(0x400000, 0x400007) AM_WRITE(spacegun_pancontrol) /* pan */ | |
| 1715 | AM_RANGE(0x600000, 0x600007) AM_DEVWRITE8("ym", ym2610_w, 0x00ff) | |
| 1716 | AM_RANGE(0x60000c, 0x60000d) AM_WRITE(SMH_NOP) // interrupt controller? | |
| 1717 | AM_RANGE(0x60000e, 0x60000f) AM_WRITE(SMH_NOP) | |
| 1718 | AM_RANGE(0x800000, 0x801fff) AM_WRITE(TC0150ROD_word_w) /* "root ram" */ | |
| 1719 | ADDRESS_MAP_END | |
| 1720 | 1624 | |
| 1721 | ||
| 1722 | static ADDRESS_MAP_START( sci_readmem, ADDRESS_SPACE_PROGRAM, 16 ) | |
| 1723 | AM_RANGE(0x000000, 0x07ffff) AM_READ(SMH_ROM) | |
| 1724 | AM_RANGE(0x100000, 0x107fff) AM_READ(SMH_RAM) /* main CPUA ram */ | |
| 1725 | AM_RANGE(0x108000, 0x10bfff) AM_READ(sharedram_r) /* extent ?? */ | |
| 1726 | AM_RANGE(0x10c000, 0x10ffff) AM_READ(SMH_RAM) /* extra CPUA ram */ | |
| 1727 | AM_RANGE(0x200000, 0x20000f) AM_READ(TC0220IOC_halfword_r) | |
| 1625 | static ADDRESS_MAP_START( sci_map, ADDRESS_SPACE_PROGRAM, 16 ) | |
| 1626 | AM_RANGE(0x000000, 0x07ffff) AM_ROM | |
| 1627 | AM_RANGE(0x100000, 0x107fff) AM_RAM | |
| 1628 | AM_RANGE(0x108000, 0x10bfff) AM_RAM AM_SHARE(1) | |
| 1629 | AM_RANGE(0x10c000, 0x10ffff) AM_RAM | |
| 1630 | AM_RANGE(0x200000, 0x20000f) AM_READWRITE(TC0220IOC_halfword_r, TC0220IOC_halfword_w) | |
| 1728 | 1631 | AM_RANGE(0x200010, 0x20001f) AM_READ(sci_steer_input_r) |
| 1729 | AM_RANGE(0x420000, 0x420003) AM_READ(taitoz_sound_r) | |
| 1730 | AM_RANGE(0x800000, 0x801fff) AM_READ(SMH_RAM) | |
| 1731 | AM_RANGE(0xa00000, 0xa0ffff) AM_READ(TC0100SCN_word_0_r) /* tilemaps */ | |
| 1732 | AM_RANGE(0xa20000, 0xa2000f) AM_READ(TC0100SCN_ctrl_word_0_r) | |
| 1733 | AM_RANGE(0xc00000, 0xc03fff) AM_READ(SMH_RAM) /* spriteram */ // Raine draws only 0x1000 | |
| 1734 | AM_RANGE(0xc08000, 0xc08001) AM_READ(sci_spriteframe_r) // debugging | |
| 1735 | ADDRESS_MAP_END | |
| 1736 | ||
| 1737 | static ADDRESS_MAP_START( sci_writemem, ADDRESS_SPACE_PROGRAM, 16 ) | |
| 1738 | AM_RANGE(0x000000, 0x07ffff) AM_WRITE(SMH_ROM) | |
| 1739 | AM_RANGE(0x100000, 0x107fff) AM_WRITE(SMH_RAM) | |
| 1740 | AM_RANGE(0x108000, 0x10bfff) AM_WRITE(sharedram_w) AM_BASE(&taitoz_sharedram) AM_SIZE(&taitoz_sharedram_size) | |
| 1741 | AM_RANGE(0x10c000, 0x10ffff) AM_WRITE(SMH_RAM) | |
| 1742 | AM_RANGE(0x200000, 0x20000f) AM_WRITE(TC0220IOC_halfword_w) | |
| 1743 | 1632 | // AM_RANGE(0x400000, 0x400001) AM_WRITE(cpua_ctrl_w) // ?? doesn't seem to fit what's written |
| 1744 | AM_RANGE(0x420000, 0x420003) AM_WRITE(taitoz_sound_w) | |
| 1745 | AM_RANGE(0x800000, 0x801fff) AM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE(&paletteram16) | |
| 1746 | AM_RANGE(0xa00000, 0xa0ffff) AM_WRITE(TC0100SCN_word_0_w) /* tilemaps */ | |
| 1747 | AM_RANGE(0xa20000, 0xa2000f) AM_WRITE(TC0100SCN_ctrl_word_0_w) | |
| 1748 | AM_RANGE(0xc00000, 0xc03fff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) | |
| 1749 | AM_RANGE(0xc08000, 0xc08001) AM_WRITE(sci_spriteframe_w) | |
| 1633 | AM_RANGE(0x420000, 0x420003) AM_READWRITE(taitoz_sound_r, taitoz_sound_w) | |
| 1634 | AM_RANGE(0x800000, 0x801fff) AM_RAM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE(&paletteram16) | |
| 1635 | AM_RANGE(0xa00000, 0xa0ffff) AM_READWRITE(TC0100SCN_word_0_r, TC0100SCN_word_0_w) /* tilemaps */ | |
| 1636 | AM_RANGE(0xa20000, 0xa2000f) AM_READWRITE(TC0100SCN_ctrl_word_0_r, TC0100SCN_ctrl_word_0_w) | |
| 1637 | AM_RANGE(0xc00000, 0xc03fff) AM_RAM AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) | |
| 1638 | AM_RANGE(0xc08000, 0xc08001) AM_READWRITE(sci_spriteframe_r, sci_spriteframe_w) | |
| 1750 | 1639 | ADDRESS_MAP_END |
| 1751 | 1640 | |
| 1752 | static ADDRESS_MAP_START( sci_cpub_readmem, ADDRESS_SPACE_PROGRAM, 16 ) | |
| 1753 | AM_RANGE(0x000000, 0x01ffff) AM_READ(SMH_ROM) | |
| 1754 | AM_RANGE(0x200000, 0x203fff) AM_READ(SMH_RAM) | |
| 1755 | AM_RANGE(0x208000, 0x20bfff) AM_READ(sharedram_r) | |
| 1756 | AM_RANGE(0xa00000, 0xa01fff) AM_READ(TC0150ROD_word_r) | |
| 1641 | static ADDRESS_MAP_START( sci_cpub_map, ADDRESS_SPACE_PROGRAM, 16 ) | |
| 1642 | AM_RANGE(0x000000, 0x01ffff) AM_ROM | |
| 1643 | AM_RANGE(0x200000, 0x203fff) AM_RAM | |
| 1644 | AM_RANGE(0x208000, 0x20bfff) AM_RAM AM_SHARE(1) | |
| 1645 | AM_RANGE(0xa00000, 0xa01fff) AM_READWRITE(TC0150ROD_word_r, TC0150ROD_word_w) | |
| 1757 | 1646 | ADDRESS_MAP_END |
| 1758 | 1647 | |
| 1759 | static ADDRESS_MAP_START( sci_cpub_writemem, ADDRESS_SPACE_PROGRAM, 16 ) | |
| 1760 | AM_RANGE(0x000000, 0x01ffff) AM_WRITE(SMH_ROM) | |
| 1761 | AM_RANGE(0x200000, 0x203fff) AM_WRITE(SMH_RAM) | |
| 1762 | AM_RANGE(0x208000, 0x20bfff) AM_WRITE(sharedram_w) AM_BASE(&taitoz_sharedram) | |
| 1763 | AM_RANGE(0xa00000, 0xa01fff) AM_WRITE(TC0150ROD_word_w) | |
| 1764 | ADDRESS_MAP_END | |
| 1765 | 1648 | |
| 1766 | ||
| 1767 | static ADDRESS_MAP_START( nightstr_readmem, ADDRESS_SPACE_PROGRAM, 16 ) | |
| 1768 | AM_RANGE(0x000000, 0x07ffff) AM_READ(SMH_ROM) | |
| 1769 | AM_RANGE(0x100000, 0x10ffff) AM_READ(SMH_RAM) /* main CPUA ram */ | |
| 1770 | AM_RANGE(0x110000, 0x113fff) AM_READ(sharedram_r) | |
| 1771 | AM_RANGE(0x400000, 0x40000f) AM_READ(TC0220IOC_halfword_r) | |
| 1772 | AM_RANGE(0x820000, 0x820003) AM_READ(taitoz_sound_r) | |
| 1773 | AM_RANGE(0xa00000, 0xa00007) AM_READ(TC0110PCR_word_r) /* palette */ | |
| 1774 | AM_RANGE(0xc00000, 0xc0ffff) AM_READ(TC0100SCN_word_0_r) /* tilemaps */ | |
| 1775 | AM_RANGE(0xc20000, 0xc2000f) AM_READ(TC0100SCN_ctrl_word_0_r) | |
| 1776 | AM_RANGE(0xd00000, 0xd007ff) AM_READ(SMH_RAM) /* spriteram */ | |
| 1777 | AM_RANGE(0xe40000, 0xe40007) AM_READ(nightstr_stick_r) | |
| 1778 | ADDRESS_MAP_END | |
| 1779 | ||
| 1780 | static ADDRESS_MAP_START( nightstr_writemem, ADDRESS_SPACE_PROGRAM, 16 ) | |
| 1781 | AM_RANGE(0x000000, 0x07ffff) AM_WRITE(SMH_ROM) | |
| 1782 | AM_RANGE(0x100000, 0x10ffff) AM_WRITE(SMH_RAM) | |
| 1783 | AM_RANGE(0x110000, 0x113fff) AM_WRITE(sharedram_w) AM_BASE(&taitoz_sharedram) AM_SIZE(&taitoz_sharedram_size) | |
| 1784 | AM_RANGE(0x400000, 0x40000f) AM_WRITE(TC0220IOC_halfword_w) | |
| 1649 | static ADDRESS_MAP_START( nightstr_map, ADDRESS_SPACE_PROGRAM, 16 ) | |
| 1650 | AM_RANGE(0x000000, 0x07ffff) AM_ROM | |
| 1651 | AM_RANGE(0x100000, 0x10ffff) AM_RAM | |
| 1652 | AM_RANGE(0x110000, 0x113fff) AM_RAM AM_SHARE(1) | |
| 1653 | AM_RANGE(0x400000, 0x40000f) AM_READWRITE(TC0220IOC_halfword_r, TC0220IOC_halfword_w) | |
| 1785 | 1654 | AM_RANGE(0x800000, 0x800001) AM_WRITE(cpua_ctrl_w) |
| 1786 | AM_RANGE(0x820000, 0x820003) AM_WRITE(taitoz_sound_w) | |
| 1787 | AM_RANGE(0xa00000, 0xa00007) AM_WRITE(TC0110PCR_step1_word_w) /* palette */ | |
| 1788 | AM_RANGE(0xc00000, 0xc0ffff) AM_WRITE(TC0100SCN_word_0_w) /* tilemaps */ | |
| 1789 | AM_RANGE(0xc20000, 0xc2000f) AM_WRITE(TC0100SCN_ctrl_word_0_w) | |
| 1790 | AM_RANGE(0xd00000, 0xd007ff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) | |
| 1791 | // AM_RANGE(0xe00000, 0xe00001) AM_WRITE(SMH_NOP) /* ??? */ | |
| 1792 | // AM_RANGE(0xe00008, 0xe00009) AM_WRITE(SMH_NOP) /* ??? */ | |
| 1793 | // AM_RANGE(0xe00010, 0xe00011) AM_WRITE(SMH_NOP) /* ??? */ | |
| 1794 | AM_RANGE(0xe40000, 0xe40007) AM_WRITE(bshark_stick_w) | |
| 1655 | AM_RANGE(0x820000, 0x820003) AM_READWRITE(taitoz_sound_r, taitoz_sound_w) | |
| 1656 | AM_RANGE(0xa00000, 0xa00007) AM_READWRITE(TC0110PCR_word_r, TC0110PCR_step1_word_w) /* palette */ | |
| 1657 | AM_RANGE(0xc00000, 0xc0ffff) AM_READWRITE(TC0100SCN_word_0_r, TC0100SCN_word_0_w) /* tilemaps */ | |
| 1658 | AM_RANGE(0xc20000, 0xc2000f) AM_READWRITE(TC0100SCN_ctrl_word_0_r, TC0100SCN_ctrl_word_0_w) | |
| 1659 | AM_RANGE(0xd00000, 0xd007ff) AM_RAM AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) | |
| 1660 | // AM_RANGE(0xe00000, 0xe00001) AM_WRITENOP /* ??? */ | |
| 1661 | // AM_RANGE(0xe00008, 0xe00009) AM_WRITENOP /* ??? */ | |
| 1662 | // AM_RANGE(0xe00010, 0xe00011) AM_WRITENOP /* ??? */ | |
| 1663 | AM_RANGE(0xe40000, 0xe40007) AM_READWRITE(nightstr_stick_r, bshark_stick_w) | |
| 1795 | 1664 | ADDRESS_MAP_END |
| 1796 | 1665 | |
| 1797 | static ADDRESS_MAP_START( nightstr_cpub_readmem, ADDRESS_SPACE_PROGRAM, 16 ) | |
| 1798 | AM_RANGE(0x000000, 0x03ffff) AM_READ(SMH_ROM) | |
| 1799 | AM_RANGE(0x100000, 0x103fff) AM_READ(SMH_RAM) | |
| 1800 | AM_RANGE(0x104000, 0x107fff) AM_READ(sharedram_r) | |
| 1801 | AM_RANGE(0x800000, 0x801fff) AM_READ(TC0150ROD_word_r) /* "root ram" */ | |
| 1666 | static ADDRESS_MAP_START( nightstr_cpub_map, ADDRESS_SPACE_PROGRAM, 16 ) | |
| 1667 | AM_RANGE(0x000000, 0x03ffff) AM_ROM | |
| 1668 | AM_RANGE(0x100000, 0x103fff) AM_RAM | |
| 1669 | AM_RANGE(0x104000, 0x107fff) AM_RAM AM_SHARE(1) | |
| 1670 | AM_RANGE(0x800000, 0x801fff) AM_READWRITE(TC0150ROD_word_r, TC0150ROD_word_w) /* "root ram" */ | |
| 1802 | 1671 | ADDRESS_MAP_END |
| 1803 | 1672 | |
| 1804 | static ADDRESS_MAP_START( nightstr_cpub_writemem, ADDRESS_SPACE_PROGRAM, 16 ) | |
| 1805 | AM_RANGE(0x000000, 0x03ffff) AM_WRITE(SMH_ROM) | |
| 1806 | AM_RANGE(0x100000, 0x103fff) AM_WRITE(SMH_RAM) | |
| 1807 | AM_RANGE(0x104000, 0x107fff) AM_WRITE(sharedram_w) AM_BASE(&taitoz_sharedram) | |
| 1808 | AM_RANGE(0x800000, 0x801fff) AM_WRITE(TC0150ROD_word_w) /* "root ram" */ | |
| 1809 | ADDRESS_MAP_END | |
| 1810 | 1673 | |
| 1811 | ||
| 1812 | static ADDRESS_MAP_START( aquajack_readmem, ADDRESS_SPACE_PROGRAM, 16 ) | |
| 1813 | AM_RANGE(0x000000, 0x03ffff) AM_READ(SMH_ROM) | |
| 1814 | AM_RANGE(0x100000, 0x103fff) AM_READ(SMH_RAM) /* main CPUA ram */ | |
| 1815 | AM_RANGE(0x104000, 0x107fff) AM_READ(sharedram_r) | |
| 1816 | AM_RANGE(0x300000, 0x300007) AM_READ(TC0110PCR_word_r) /* palette */ | |
| 1817 | AM_RANGE(0x800000, 0x801fff) AM_READ(TC0150ROD_word_r) /* (like Contcirc, uses CPUA for road) */ | |
| 1818 | AM_RANGE(0xa00000, 0xa0ffff) AM_READ(TC0100SCN_word_0_r) /* tilemaps */ | |
| 1819 | AM_RANGE(0xa20000, 0xa2000f) AM_READ(TC0100SCN_ctrl_word_0_r) | |
| 1820 | AM_RANGE(0xc40000, 0xc403ff) AM_READ(SMH_RAM) /* spriteram */ | |
| 1821 | ADDRESS_MAP_END | |
| 1822 | ||
| 1823 | static ADDRESS_MAP_START( aquajack_writemem, ADDRESS_SPACE_PROGRAM, 16 ) | |
| 1824 | AM_RANGE(0x000000, 0x03ffff) AM_WRITE(SMH_ROM) | |
| 1825 | AM_RANGE(0x100000, 0x103fff) AM_WRITE(SMH_RAM) | |
| 1826 | AM_RANGE(0x104000, 0x107fff) AM_WRITE(sharedram_w) AM_BASE(&taitoz_sharedram) AM_SIZE(&taitoz_sharedram_size) | |
| 1674 | static ADDRESS_MAP_START( aquajack_map, ADDRESS_SPACE_PROGRAM, 16 ) | |
| 1675 | AM_RANGE(0x000000, 0x03ffff) AM_ROM | |
| 1676 | AM_RANGE(0x100000, 0x103fff) AM_RAM | |
| 1677 | AM_RANGE(0x104000, 0x107fff) AM_RAM AM_SHARE(1) | |
| 1827 | 1678 | AM_RANGE(0x200000, 0x200001) AM_WRITE(cpua_ctrl_w) // not needed, but it's probably like the others |
| 1828 | AM_RANGE(0x300000, 0x300007) AM_WRITE(TC0110PCR_step1_word_w) /* palette */ | |
| 1829 | AM_RANGE(0x800000, 0x801fff) AM_WRITE(TC0150ROD_word_w) | |
| 1830 | AM_RANGE(0xa00000, 0xa0ffff) AM_WRITE(TC0100SCN_word_0_w) /* tilemaps */ | |
| 1831 | AM_RANGE(0xa20000, 0xa2000f) AM_WRITE(TC0100SCN_ctrl_word_0_w) | |
| 1832 | AM_RANGE(0xc40000, 0xc403ff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) | |
| 1679 | AM_RANGE(0x300000, 0x300007) AM_READWRITE(TC0110PCR_word_r, TC0110PCR_step1_word_w) /* palette */ | |
| 1680 | AM_RANGE(0x800000, 0x801fff) AM_READWRITE(TC0150ROD_word_r, TC0150ROD_word_w) | |
| 1681 | AM_RANGE(0xa00000, 0xa0ffff) AM_READWRITE(TC0100SCN_word_0_r, TC0100SCN_word_0_w) /* tilemaps */ | |
| 1682 | AM_RANGE(0xa20000, 0xa2000f) AM_READWRITE(TC0100SCN_ctrl_word_0_r, TC0100SCN_ctrl_word_0_w) | |
| 1683 | AM_RANGE(0xc40000, 0xc403ff) AM_RAM AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) | |
| 1833 | 1684 | ADDRESS_MAP_END |
| 1834 | 1685 | |
| 1835 | static ADDRESS_MAP_START( aquajack_cpub_readmem, ADDRESS_SPACE_PROGRAM, 16 ) | |
| 1836 | AM_RANGE(0x000000, 0x03ffff) AM_READ(SMH_ROM) | |
| 1837 | AM_RANGE(0x100000, 0x103fff) AM_READ(SMH_RAM) | |
| 1838 | AM_RANGE(0x104000, 0x107fff) AM_READ(sharedram_r) | |
| 1839 | AM_RANGE(0x200000, 0x20000f) AM_READ(TC0220IOC_halfword_r) | |
| 1840 | AM_RANGE(0x300000, 0x300003) AM_READ(taitoz_sound_r) | |
| 1686 | static ADDRESS_MAP_START( aquajack_cpub_map, ADDRESS_SPACE_PROGRAM, 16 ) | |
| 1687 | AM_RANGE(0x000000, 0x03ffff) AM_ROM | |
| 1688 | AM_RANGE(0x100000, 0x103fff) AM_RAM | |
| 1689 | AM_RANGE(0x104000, 0x107fff) AM_RAM AM_SHARE(1) | |
| 1690 | AM_RANGE(0x200000, 0x20000f) AM_READWRITE(TC0220IOC_halfword_r, TC0220IOC_halfword_w) | |
| 1691 | AM_RANGE(0x300000, 0x300003) AM_READWRITE(taitoz_sound_r, taitoz_sound_w) | |
| 1841 | 1692 | AM_RANGE(0x800800, 0x80083f) AM_READ(aquajack_unknown_r) // Read regularly after write to 800800... |
| 1842 | // AM_RANGE(0x900000, 0x900007) AM_READ(taitoz_unknown_r) | |
| 1843 | ADDRESS_MAP_END | |
| 1844 | ||
| 1845 | static ADDRESS_MAP_START( aquajack_cpub_writemem, ADDRESS_SPACE_PROGRAM, 16 ) | |
| 1846 | AM_RANGE(0x000000, 0x03ffff) AM_WRITE(SMH_ROM) | |
| 1847 | AM_RANGE(0x100000, 0x103fff) AM_WRITE(SMH_RAM) | |
| 1848 | AM_RANGE(0x104000, 0x107fff) AM_WRITE(sharedram_w) AM_BASE(&taitoz_sharedram) | |
| 1849 | AM_RANGE(0x200000, 0x20000f) AM_WRITE(TC0220IOC_halfword_w) | |
| 1850 | AM_RANGE(0x300000, 0x300003) AM_WRITE(taitoz_sound_w) | |
| 1851 | 1693 | // AM_RANGE(0x800800, 0x800801) AM_WRITE(taitoz_unknown_w) |
| 1852 | // AM_RANGE(0x900000, 0x900007) AM_WRITE(taitoz_unknown_w) | |
| 1694 | // AM_RANGE(0x900000, 0x900007) AM_READWRITE(taitoz_unknown_r, taitoz_unknown_w) | |
| 1853 | 1695 | ADDRESS_MAP_END |
| 1854 | 1696 | |
| 1855 | 1697 | |
| 1856 | static ADDRESS_MAP_START( spacegun_readmem, ADDRESS_SPACE_PROGRAM, 16 ) | |
| 1857 | AM_RANGE(0x000000, 0x07ffff) AM_READ(SMH_ROM) | |
| 1858 | AM_RANGE(0x30c000, 0x30ffff) AM_READ(SMH_RAM) /* local CPUA ram */ | |
| 1859 | AM_RANGE(0x310000, 0x31ffff) AM_READ(sharedram_r) /* extent correct acc. to CPUB inits */ | |
| 1860 | AM_RANGE(0x500000, 0x5005ff) AM_READ(SMH_RAM) /* spriteram */ | |
| 1861 | AM_RANGE(0x900000, 0x90ffff) AM_READ(TC0100SCN_word_0_r) /* tilemaps */ | |
| 1862 | AM_RANGE(0x920000, 0x92000f) AM_READ(TC0100SCN_ctrl_word_0_r) | |
| 1863 | AM_RANGE(0xb00000, 0xb00007) AM_READ(TC0110PCR_word_r) /* palette */ | |
| 1698 | static ADDRESS_MAP_START( spacegun_map, ADDRESS_SPACE_PROGRAM, 16 ) | |
| 1699 | AM_RANGE(0x000000, 0x07ffff) AM_ROM | |
| 1700 | AM_RANGE(0x30c000, 0x30ffff) AM_RAM | |
| 1701 | AM_RANGE(0x310000, 0x31ffff) AM_RAM AM_SHARE(1) | |
| 1702 | AM_RANGE(0x500000, 0x5005ff) AM_RAM AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) | |
| 1703 | AM_RANGE(0x900000, 0x90ffff) AM_READWRITE(TC0100SCN_word_0_r, TC0100SCN_word_0_w) /* tilemaps */ | |
| 1704 | AM_RANGE(0x920000, 0x92000f) AM_READWRITE(TC0100SCN_ctrl_word_0_r, TC0100SCN_ctrl_word_0_w) | |
| 1705 | AM_RANGE(0xb00000, 0xb00007) AM_READWRITE(TC0110PCR_word_r, TC0110PCR_step1_rbswap_word_w) /* palette */ | |
| 1864 | 1706 | ADDRESS_MAP_END |
| 1865 | 1707 | |
| 1866 | static ADDRESS_MAP_START( spacegun_writemem, ADDRESS_SPACE_PROGRAM, 16 ) | |
| 1867 | AM_RANGE(0x000000, 0x07ffff) AM_WRITE(SMH_ROM) | |
| 1868 | AM_RANGE(0x30c000, 0x30ffff) AM_WRITE(SMH_RAM) | |
| 1869 | AM_RANGE(0x310000, 0x31ffff) AM_WRITE(sharedram_w) AM_BASE(&taitoz_sharedram) AM_SIZE(&taitoz_sharedram_size) | |
| 1870 | AM_RANGE(0x500000, 0x5005ff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) | |
| 1871 | AM_RANGE(0x900000, 0x90ffff) AM_WRITE(TC0100SCN_word_0_w) /* tilemaps */ | |
| 1872 | AM_RANGE(0x920000, 0x92000f) AM_WRITE(TC0100SCN_ctrl_word_0_w) | |
| 1873 | AM_RANGE(0xb00000, 0xb00007) AM_WRITE(TC0110PCR_step1_rbswap_word_w) /* palette */ | |
| 1874 | ADDRESS_MAP_END | |
| 1875 | ||
| 1876 | static ADDRESS_MAP_START( spacegun_cpub_readmem, ADDRESS_SPACE_PROGRAM, 16 ) | |
| 1877 | AM_RANGE(0x000000, 0x03ffff) AM_READ(SMH_ROM) | |
| 1878 | AM_RANGE(0x20c000, 0x20ffff) AM_READ(SMH_RAM) /* local CPUB ram */ | |
| 1879 | AM_RANGE(0x210000, 0x21ffff) AM_READ(sharedram_r) | |
| 1880 | AM_RANGE(0x800000, 0x80000f) AM_READ(spacegun_input_bypass_r) | |
| 1881 | AM_RANGE(0xc00000, 0xc00007) AM_DEVREAD8("ym", ym2610_r, 0x00ff) | |
| 1882 | AM_RANGE(0xc0000c, 0xc0000d) AM_READ(SMH_NOP) | |
| 1883 | AM_RANGE(0xc0000e, 0xc0000f) AM_READ(SMH_NOP) | |
| 1884 | AM_RANGE(0xf00000, 0xf00007) AM_READ(spacegun_lightgun_r) | |
| 1885 | ADDRESS_MAP_END | |
| 1886 | ||
| 1887 | static ADDRESS_MAP_START( spacegun_cpub_writemem, ADDRESS_SPACE_PROGRAM, 16 ) | |
| 1888 | AM_RANGE(0x000000, 0x03ffff) AM_WRITE(SMH_ROM) | |
| 1889 | AM_RANGE(0x20c000, 0x20ffff) AM_WRITE(SMH_RAM) | |
| 1890 | AM_RANGE(0x210000, 0x21ffff) AM_WRITE(sharedram_w) | |
| 1891 | AM_RANGE(0x800000, 0x80000f) AM_WRITE(spacegun_output_bypass_w) | |
| 1892 | AM_RANGE(0xc00000, 0xc00007) AM_DEVWRITE8("ym", ym2610_w, 0x00ff) | |
| 1893 | AM_RANGE(0xc0000c, 0xc0000d) AM_WRITE(SMH_NOP) // interrupt controller? | |
| 1894 | AM_RANGE(0xc0000e, 0xc0000f) AM_WRITE(SMH_NOP) | |
| 1708 | static ADDRESS_MAP_START( spacegun_cpub_map, ADDRESS_SPACE_PROGRAM, 16 ) | |
| 1709 | AM_RANGE(0x000000, 0x03ffff) AM_ROM | |
| 1710 | AM_RANGE(0x20c000, 0x20ffff) AM_RAM | |
| 1711 | AM_RANGE(0x210000, 0x21ffff) AM_RAM AM_SHARE(1) | |
| 1712 | AM_RANGE(0x800000, 0x80000f) AM_READWRITE(spacegun_input_bypass_r, spacegun_output_bypass_w) | |
| 1713 | AM_RANGE(0xc00000, 0xc00007) AM_DEVREADWRITE8("ym", ym2610_r, ym2610_w, 0x00ff) | |
| 1714 | AM_RANGE(0xc0000c, 0xc0000d) AM_NOP // interrupt controller? | |
| 1715 | AM_RANGE(0xc0000e, 0xc0000f) AM_NOP | |
| 1895 | 1716 | AM_RANGE(0xc20000, 0xc20007) AM_WRITE(spacegun_pancontrol) /* pan */ |
| 1896 | // AM_RANGE(0xe00000, 0xe00001) AM_WRITE(SMH_NOP) /* ??? */ | |
| 1897 | AM_RANGE(0xf00000, 0xf00007) AM_WRITE(spacegun_lightgun_w) | |
| 1717 | // AM_RANGE(0xe00000, 0xe00001) AM_WRITENOP /* ??? */ | |
| 1718 | AM_RANGE(0xf00000, 0xf00007) AM_READWRITE(spacegun_lightgun_r, spacegun_lightgun_w) | |
| 1898 | 1719 | ADDRESS_MAP_END |
| 1899 | 1720 | |
| 1900 | 1721 | |
| 1901 | static ADDRESS_MAP_START( dblaxle_readmem, ADDRESS_SPACE_PROGRAM, 16 ) | |
| 1902 | AM_RANGE(0x000000, 0x07ffff) AM_READ(SMH_ROM) | |
| 1903 | AM_RANGE(0x200000, 0x203fff) AM_READ(SMH_RAM) /* main CPUA ram */ | |
| 1904 | AM_RANGE(0x210000, 0x21ffff) AM_READ(sharedram_r) | |
| 1905 | AM_RANGE(0x400000, 0x40000f) AM_READ(TC0510NIO_halfword_wordswap_r) | |
| 1722 | static ADDRESS_MAP_START( dblaxle_map, ADDRESS_SPACE_PROGRAM, 16 ) | |
| 1723 | AM_RANGE(0x000000, 0x07ffff) AM_ROM | |
| 1724 | AM_RANGE(0x200000, 0x203fff) AM_RAM | |
| 1725 | AM_RANGE(0x210000, 0x21ffff) AM_RAM AM_SHARE(1) | |
| 1726 | AM_RANGE(0x400000, 0x40000f) AM_READWRITE(TC0510NIO_halfword_wordswap_r, TC0510NIO_halfword_wordswap_w) | |
| 1906 | 1727 | AM_RANGE(0x400010, 0x40001f) AM_READ(dblaxle_steer_input_r) |
| 1907 | AM_RANGE(0x620000, 0x620003) AM_READ(taitoz_sound_r) | |
| 1908 | AM_RANGE(0x800000, 0x801fff) AM_READ(SMH_RAM) /* palette */ | |
| 1909 | AM_RANGE(0xa00000, 0xa0ffff) AM_READ(TC0480SCP_word_r) /* tilemaps */ | |
| 1910 | AM_RANGE(0xa30000, 0xa3002f) AM_READ(TC0480SCP_ctrl_word_r) | |
| 1911 | AM_RANGE(0xc00000, 0xc03fff) AM_READ(SMH_RAM) /* spriteram */ | |
| 1912 | AM_RANGE(0xc08000, 0xc08001) AM_READ(sci_spriteframe_r) // debugging | |
| 1913 | ADDRESS_MAP_END | |
| 1914 | ||
| 1915 | static ADDRESS_MAP_START( dblaxle_writemem, ADDRESS_SPACE_PROGRAM, 16 ) | |
| 1916 | AM_RANGE(0x000000, 0x07ffff) AM_WRITE(SMH_ROM) | |
| 1917 | AM_RANGE(0x200000, 0x203fff) AM_WRITE(SMH_RAM) | |
| 1918 | AM_RANGE(0x210000, 0x21ffff) AM_WRITE(sharedram_w) AM_BASE(&taitoz_sharedram) AM_SIZE(&taitoz_sharedram_size) | |
| 1919 | AM_RANGE(0x400000, 0x40000f) AM_WRITE(TC0510NIO_halfword_wordswap_w) | |
| 1920 | 1728 | AM_RANGE(0x600000, 0x600001) AM_WRITE(cpua_ctrl_w) /* could this be causing int6 ? */ |
| 1921 | AM_RANGE(0x620000, 0x620003) AM_WRITE(taitoz_sound_w) | |
| 1922 | AM_RANGE(0x800000, 0x801fff) AM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE(&paletteram16) | |
| 1923 | AM_RANGE(0x900000, 0x90ffff) AM_WRITE(TC0480SCP_word_w) /* tilemap mirror */ | |
| 1924 | AM_RANGE(0xa00000, 0xa0ffff) AM_WRITE(TC0480SCP_word_w) /* tilemaps */ | |
| 1925 | AM_RANGE(0xa30000, 0xa3002f) AM_WRITE(TC0480SCP_ctrl_word_w) | |
| 1926 | AM_RANGE(0xc00000, 0xc03fff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) /* mostly unused ? */ | |
| 1927 | AM_RANGE(0xc08000, 0xc08001) AM_WRITE(sci_spriteframe_w) /* set in int6, seems to stay zero */ | |
| 1729 | AM_RANGE(0x620000, 0x620003) AM_READWRITE(taitoz_sound_r, taitoz_sound_w) | |
| 1730 | AM_RANGE(0x800000, 0x801fff) AM_RAM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE(&paletteram16) | |
| 1731 | AM_RANGE(0x900000, 0x90ffff) AM_READWRITE(TC0480SCP_word_r, TC0480SCP_word_w) /* tilemap mirror */ | |
| 1732 | AM_RANGE(0xa00000, 0xa0ffff) AM_READWRITE(TC0480SCP_word_r, TC0480SCP_word_w) /* tilemaps */ | |
| 1733 | AM_RANGE(0xa30000, 0xa3002f) AM_READWRITE(TC0480SCP_ctrl_word_r, TC0480SCP_ctrl_word_w) | |
| 1734 | AM_RANGE(0xc00000, 0xc03fff) AM_RAM AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) /* mostly unused ? */ | |
| 1735 | AM_RANGE(0xc08000, 0xc08001) AM_READWRITE(sci_spriteframe_r, sci_spriteframe_w) /* set in int6, seems to stay zero */ | |
| 1928 | 1736 | ADDRESS_MAP_END |
| 1929 | 1737 | |
| 1930 | static ADDRESS_MAP_START( dblaxle_cpub_readmem, ADDRESS_SPACE_PROGRAM, 16 ) | |
| 1931 | AM_RANGE(0x000000, 0x03ffff) AM_READ(SMH_ROM) | |
| 1932 | AM_RANGE(0x100000, 0x103fff) AM_READ(SMH_RAM) | |
| 1933 | AM_RANGE(0x110000, 0x11ffff) AM_READ(sharedram_r) | |
| 1934 | AM_RANGE(0x300000, 0x301fff) AM_READ(TC0150ROD_word_r) | |
| 1935 | AM_RANGE(0x500000, 0x503fff) AM_READ(SMH_RAM) /* network ram ? (see Gunbustr) */ | |
| 1738 | static ADDRESS_MAP_START( dblaxle_cpub_map, ADDRESS_SPACE_PROGRAM, 16 ) | |
| 1739 | AM_RANGE(0x000000, 0x03ffff) AM_ROM | |
| 1740 | AM_RANGE(0x100000, 0x103fff) AM_RAM | |
| 1741 | AM_RANGE(0x110000, 0x11ffff) AM_RAM AM_SHARE(1) | |
| 1742 | AM_RANGE(0x300000, 0x301fff) AM_READWRITE(TC0150ROD_word_r, TC0150ROD_word_w) | |
| 1743 | AM_RANGE(0x500000, 0x503fff) AM_RAM /* network ram ? (see Gunbustr) */ | |
| 1936 | 1744 | ADDRESS_MAP_END |
| 1937 | 1745 | |
| 1938 | static ADDRESS_MAP_START( dblaxle_cpub_writemem, ADDRESS_SPACE_PROGRAM, 16 ) | |
| 1939 | AM_RANGE(0x000000, 0x03ffff) AM_WRITE(SMH_ROM) | |
| 1940 | AM_RANGE(0x100000, 0x103fff) AM_WRITE(SMH_RAM) | |
| 1941 | AM_RANGE(0x110000, 0x11ffff) AM_WRITE(sharedram_w) AM_BASE(&taitoz_sharedram) | |
| 1942 | AM_RANGE(0x300000, 0x301fff) AM_WRITE(TC0150ROD_word_w) | |
| 1943 | AM_RANGE(0x500000, 0x503fff) AM_WRITE(SMH_RAM) /* network ram ? (see Gunbustr) */ | |
| 1944 | ADDRESS_MAP_END | |
| 1945 | 1746 | |
| 1946 | ||
| 1947 | static ADDRESS_MAP_START( racingb_readmem, ADDRESS_SPACE_PROGRAM, 16 ) | |
| 1948 | AM_RANGE(0x000000, 0x07ffff) AM_READ(SMH_ROM) | |
| 1949 | AM_RANGE(0x100000, 0x103fff) AM_READ(SMH_RAM) /* main CPUA ram */ | |
| 1950 | AM_RANGE(0x110000, 0x11ffff) AM_READ(sharedram_r) | |
| 1951 | AM_RANGE(0x300000, 0x30000f) AM_READ(TC0510NIO_halfword_wordswap_r) | |
| 1747 | static ADDRESS_MAP_START( racingb_map, ADDRESS_SPACE_PROGRAM, 16 ) | |
| 1748 | AM_RANGE(0x000000, 0x07ffff) AM_ROM | |
| 1749 | AM_RANGE(0x100000, 0x103fff) AM_RAM | |
| 1750 | AM_RANGE(0x110000, 0x11ffff) AM_RAM AM_SHARE(1) | |
| 1751 | AM_RANGE(0x300000, 0x30000f) AM_READWRITE(TC0510NIO_halfword_wordswap_r, TC0510NIO_halfword_wordswap_w) | |
| 1952 | 1752 | AM_RANGE(0x300010, 0x30001f) AM_READ(dblaxle_steer_input_r) |
| 1953 | AM_RANGE(0x520000, 0x520003) AM_READ(taitoz_sound_r) | |
| 1954 | AM_RANGE(0x700000, 0x701fff) AM_READ(SMH_RAM) /* palette */ | |
| 1955 | AM_RANGE(0x900000, 0x90ffff) AM_READ(TC0480SCP_word_r) /* tilemaps */ | |
| 1956 | AM_RANGE(0x930000, 0x93002f) AM_READ(TC0480SCP_ctrl_word_r) | |
| 1957 | AM_RANGE(0xb00000, 0xb03fff) AM_READ(SMH_RAM) /* spriteram */ | |
| 1958 | AM_RANGE(0xb08000, 0xb08001) AM_READ(sci_spriteframe_r) // debugging | |
| 1959 | ADDRESS_MAP_END | |
| 1960 | ||
| 1961 | static ADDRESS_MAP_START( racingb_writemem, ADDRESS_SPACE_PROGRAM, 16 ) | |
| 1962 | AM_RANGE(0x000000, 0x07ffff) AM_WRITE(SMH_ROM) | |
| 1963 | AM_RANGE(0x100000, 0x103fff) AM_WRITE(SMH_RAM) | |
| 1964 | AM_RANGE(0x110000, 0x11ffff) AM_WRITE(sharedram_w) AM_BASE(&taitoz_sharedram) AM_SIZE(&taitoz_sharedram_size) | |
| 1965 | AM_RANGE(0x300000, 0x30000f) AM_WRITE(TC0510NIO_halfword_wordswap_w) | |
| 1966 | 1753 | AM_RANGE(0x500002, 0x500003) AM_WRITE(cpua_ctrl_w) |
| 1967 | AM_RANGE(0x520000, 0x520003) AM_WRITE(taitoz_sound_w) | |
| 1968 | AM_RANGE(0x700000, 0x701fff) AM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE(&paletteram16) | |
| 1969 | AM_RANGE(0x900000, 0x90ffff) AM_WRITE(TC0480SCP_word_w) /* tilemaps */ | |
| 1970 | AM_RANGE(0x930000, 0x93002f) AM_WRITE(TC0480SCP_ctrl_word_w) | |
| 1971 | AM_RANGE(0xb00000, 0xb03fff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) /* mostly unused ? */ | |
| 1972 | AM_RANGE(0xb08000, 0xb08001) AM_WRITE(sci_spriteframe_w) /* alternates 0/0x100 */ | |
| 1754 | AM_RANGE(0x520000, 0x520003) AM_READWRITE(taitoz_sound_r, taitoz_sound_w) | |
| 1755 | AM_RANGE(0x700000, 0x701fff) AM_RAM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE(&paletteram16) | |
| 1756 | AM_RANGE(0x900000, 0x90ffff) AM_READWRITE(TC0480SCP_word_r, TC0480SCP_word_w) /* tilemaps */ | |
| 1757 | AM_RANGE(0x930000, 0x93002f) AM_READWRITE(TC0480SCP_ctrl_word_r, TC0480SCP_ctrl_word_w) | |
| 1758 | AM_RANGE(0xb00000, 0xb03fff) AM_RAM AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) /* mostly unused ? */ | |
| 1759 | AM_RANGE(0xb08000, 0xb08001) AM_READWRITE(sci_spriteframe_r, sci_spriteframe_w) /* alternates 0/0x100 */ | |
| 1973 | 1760 | ADDRESS_MAP_END |
| 1974 | 1761 | |
| 1975 | static ADDRESS_MAP_START( racingb_cpub_readmem, ADDRESS_SPACE_PROGRAM, 16 ) | |
| 1976 | AM_RANGE(0x000000, 0x03ffff) AM_READ(SMH_ROM) | |
| 1977 | AM_RANGE(0x400000, 0x403fff) AM_READ(SMH_RAM) | |
| 1978 | AM_RANGE(0x410000, 0x41ffff) AM_READ(sharedram_r) | |
| 1979 | AM_RANGE(0xa00000, 0xa01fff) AM_READ(TC0150ROD_word_r) | |
| 1980 | AM_RANGE(0xd00000, 0xd03fff) AM_READ(SMH_RAM) /* network ram ? */ | |
| 1762 | static ADDRESS_MAP_START( racingb_cpub_map, ADDRESS_SPACE_PROGRAM, 16 ) | |
| 1763 | AM_RANGE(0x000000, 0x03ffff) AM_ROM | |
| 1764 | AM_RANGE(0x400000, 0x403fff) AM_RAM | |
| 1765 | AM_RANGE(0x410000, 0x41ffff) AM_RAM AM_SHARE(1) | |
| 1766 | AM_RANGE(0xa00000, 0xa01fff) AM_READWRITE(TC0150ROD_word_r, TC0150ROD_word_w) | |
| 1767 | AM_RANGE(0xd00000, 0xd03fff) AM_RAM /* network ram ? */ | |
| 1981 | 1768 | ADDRESS_MAP_END |
| 1982 | 1769 | |
| 1983 | static ADDRESS_MAP_START( racingb_cpub_writemem, ADDRESS_SPACE_PROGRAM, 16 ) | |
| 1984 | AM_RANGE(0x000000, 0x03ffff) AM_WRITE(SMH_ROM) | |
| 1985 | AM_RANGE(0x400000, 0x403fff) AM_WRITE(SMH_RAM) | |
| 1986 | AM_RANGE(0x410000, 0x41ffff) AM_WRITE(sharedram_w) AM_BASE(&taitoz_sharedram) | |
| 1987 | AM_RANGE(0xa00000, 0xa01fff) AM_WRITE(TC0150ROD_word_w) | |
| 1988 | AM_RANGE(0xd00000, 0xd03fff) AM_WRITE(SMH_RAM) /* network ram ? */ | |
| 1989 | ADDRESS_MAP_END | |
| 1990 | 1770 | |
| 1991 | ||
| 1992 | 1771 | /***************************************************************************/ |
| 1993 | 1772 | |
| 1994 | static ADDRESS_MAP_START( z80_sound_readmem, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 1995 | AM_RANGE(0x0000, 0x3fff) AM_READ(SMH_ROM) | |
| 1996 | AM_RANGE(0x4000, 0x7fff) AM_READ(SMH_BANK10) | |
| 1997 | AM_RANGE(0xc000, 0xdfff) AM_READ(SMH_RAM) | |
| 1998 | AM_RANGE(0xe000, 0xe003) AM_DEVREAD("ym", ym2610_r) | |
| 1999 | AM_RANGE(0xe200, 0xe200) AM_READ(SMH_NOP) | |
| 2000 | AM_RANGE(0xe201, 0xe201) AM_READ(taitosound_slave_comm_r) | |
| 2001 | AM_RANGE(0xea00, 0xea00) AM_READ(SMH_NOP) | |
| 2002 | ADDRESS_MAP_END | |
| 2003 | ||
| 2004 | static ADDRESS_MAP_START( z80_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 2005 | AM_RANGE(0x0000, 0x7fff) AM_WRITE(SMH_ROM) | |
| 2006 | AM_RANGE(0xc000, 0xdfff) AM_WRITE(SMH_RAM) | |
| 2007 | AM_RANGE(0xe000, 0xe003) AM_DEVWRITE("ym", ym2610_w) | |
| 2008 | AM_RANGE(0xe200, 0xe200) AM_WRITE(taitosound_slave_port_w) | |
| 2009 | AM_RANGE(0xe201, 0xe201) AM_WRITE(taitosound_slave_comm_w) | |
| 1773 | static ADDRESS_MAP_START( z80_sound_map, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 1774 | AM_RANGE(0x0000, 0x3fff) AM_ROM | |
| 1775 | AM_RANGE(0x4000, 0x7fff) AM_ROMBANK(10) | |
| 1776 | AM_RANGE(0xc000, 0xdfff) AM_RAM | |
| 1777 | AM_RANGE(0xe000, 0xe003) AM_DEVREADWRITE("ym", ym2610_r, ym2610_w) | |
| 1778 | AM_RANGE(0xe200, 0xe200) AM_READNOP AM_WRITE(taitosound_slave_port_w) | |
| 1779 | AM_RANGE(0xe201, 0xe201) AM_READWRITE(taitosound_slave_comm_r, taitosound_slave_comm_w) | |
| 2010 | 1780 | AM_RANGE(0xe400, 0xe403) AM_WRITE(taitoz_pancontrol) /* pan */ |
| 2011 | AM_RANGE(0xee00, 0xee00) AM_WRITE(SMH_NOP) /* ? */ | |
| 2012 | AM_RANGE(0xf000, 0xf000) AM_WRITE(SMH_NOP) /* ? */ | |
| 1781 | AM_RANGE(0xea00, 0xea00) AM_READNOP | |
| 1782 | AM_RANGE(0xee00, 0xee00) AM_WRITENOP /* ? */ | |
| 1783 | AM_RANGE(0xf000, 0xf000) AM_WRITENOP /* ? */ | |
| 2013 | 1784 | AM_RANGE(0xf200, 0xf200) AM_WRITE(sound_bankswitch_w) |
| 2014 | 1785 | ADDRESS_MAP_END |
| 2015 | 1786 | |
| r4470 | r4471 | |
| 3128 | 2899 | |
| 3129 | 2900 | /* basic machine hardware */ |
| 3130 | 2901 | MDRV_CPU_ADD("maincpu", M68000, 12000000) /* 12 MHz ??? */ |
| 3131 | MDRV_CPU_PROGRAM_MAP(contcirc_ | |
| 2902 | MDRV_CPU_PROGRAM_MAP(contcirc_ | |
| 3132 | 2903 | MDRV_CPU_VBLANK_INT("screen", irq6_line_hold) |
| 3133 | 2904 | |
| 3134 | 2905 | MDRV_CPU_ADD("audiocpu", Z80,16000000/4) /* 4 MHz ??? */ |
| 3135 | MDRV_CPU_PROGRAM_MAP(z80_sound_ | |
| 2906 | MDRV_CPU_PROGRAM_MAP(z80_sound_ | |
| 3136 | 2907 | |
| 3137 | 2908 | MDRV_CPU_ADD("sub", M68000, 12000000) /* 12 MHz ??? */ |
| 3138 | MDRV_CPU_PROGRAM_MAP(contcirc_cpub_ | |
| 2909 | MDRV_CPU_PROGRAM_MAP(contcirc_cpub_ | |
| 3139 | 2910 | MDRV_CPU_VBLANK_INT("screen", irq6_line_hold) |
| 3140 | 2911 | |
| 3141 | 2912 | MDRV_MACHINE_START(taitoz) |
| r4470 | r4471 | |
| 3184 | 2955 | |
| 3185 | 2956 | /* basic machine hardware */ |
| 3186 | 2957 | MDRV_CPU_ADD("maincpu", M68000, 12000000) /* 12 MHz ??? */ |
| 3187 | MDRV_CPU_PROGRAM_MAP(chasehq_ | |
| 2958 | MDRV_CPU_PROGRAM_MAP(chasehq_ | |
| 3188 | 2959 | MDRV_CPU_VBLANK_INT("screen", irq4_line_hold) |
| 3189 | 2960 | |
| 3190 | 2961 | MDRV_CPU_ADD("audiocpu", Z80,16000000/4) /* 4 MHz ??? */ |
| 3191 | MDRV_CPU_PROGRAM_MAP(z80_sound_ | |
| 2962 | MDRV_CPU_PROGRAM_MAP(z80_sound_ | |
| 3192 | 2963 | |
| 3193 | 2964 | MDRV_CPU_ADD("sub", M68000, 12000000) /* 12 MHz ??? */ |
| 3194 | MDRV_CPU_PROGRAM_MAP(chq_cpub_ | |
| 2965 | MDRV_CPU_PROGRAM_MAP(chq_cpub_ | |
| 3195 | 2966 | MDRV_CPU_VBLANK_INT("screen", irq4_line_hold) |
| 3196 | 2967 | |
| 3197 | 2968 | MDRV_MACHINE_START(taitoz) |
| r4470 | r4471 | |
| 3238 | 3009 | |
| 3239 | 3010 | /* basic machine hardware */ |
| 3240 | 3011 | MDRV_CPU_ADD("maincpu", M68000, 12000000) /* 12 MHz ??? */ |
| 3241 | MDRV_CPU_PROGRAM_MAP(enforce_ | |
| 3012 | MDRV_CPU_PROGRAM_MAP(enforce_ | |
| 3242 | 3013 | MDRV_CPU_VBLANK_INT("screen", irq6_line_hold) |
| 3243 | 3014 | |
| 3244 | 3015 | MDRV_CPU_ADD("audiocpu", Z80,16000000/4) /* 4 MHz ??? */ |
| 3245 | MDRV_CPU_PROGRAM_MAP(z80_sound_ | |
| 3016 | MDRV_CPU_PROGRAM_MAP(z80_sound_ | |
| 3246 | 3017 | |
| 3247 | 3018 | MDRV_CPU_ADD("sub", M68000, 12000000) /* 12 MHz ??? */ |
| 3248 | MDRV_CPU_PROGRAM_MAP(enforce_cpub_ | |
| 3019 | MDRV_CPU_PROGRAM_MAP(enforce_cpub_ | |
| 3249 | 3020 | MDRV_CPU_VBLANK_INT("screen", irq6_line_hold) |
| 3250 | 3021 | |
| 3251 | 3022 | MDRV_MACHINE_START(taitoz) |
| r4470 | r4471 | |
| 3295 | 3066 | |
| 3296 | 3067 | /* basic machine hardware */ |
| 3297 | 3068 | MDRV_CPU_ADD("maincpu", M68000, 12000000) /* 12 MHz ??? */ |
| 3298 | MDRV_CPU_PROGRAM_MAP(bshark_ | |
| 3069 | MDRV_CPU_PROGRAM_MAP(bshark_ | |
| 3299 | 3070 | MDRV_CPU_VBLANK_INT("screen", irq4_line_hold) |
| 3300 | 3071 | |
| 3301 | 3072 | MDRV_CPU_ADD("sub", M68000, 12000000) /* 12 MHz ??? */ |
| 3302 | MDRV_CPU_PROGRAM_MAP(bshark_cpub_ | |
| 3073 | MDRV_CPU_PROGRAM_MAP(bshark_cpub_ | |
| 3303 | 3074 | MDRV_CPU_VBLANK_INT("screen", irq4_line_hold) |
| 3304 | 3075 | |
| 3305 | 3076 | MDRV_MACHINE_START(taitoz) |
| r4470 | r4471 | |
| 3347 | 3118 | |
| 3348 | 3119 | /* basic machine hardware */ |
| 3349 | 3120 | MDRV_CPU_ADD("maincpu", M68000, 12000000) /* 12 MHz ??? */ |
| 3350 | MDRV_CPU_PROGRAM_MAP(sci_ | |
| 3121 | MDRV_CPU_PROGRAM_MAP(sci_ | |
| 3351 | 3122 | MDRV_CPU_VBLANK_INT("screen", sci_interrupt) |
| 3352 | 3123 | |
| 3353 | 3124 | MDRV_CPU_ADD("audiocpu", Z80,16000000/4) /* 4 MHz ??? */ |
| 3354 | MDRV_CPU_PROGRAM_MAP(z80_sound_ | |
| 3125 | MDRV_CPU_PROGRAM_MAP(z80_sound_ | |
| 3355 | 3126 | |
| 3356 | 3127 | MDRV_CPU_ADD("sub", M68000, 12000000) /* 12 MHz ??? */ |
| 3357 | MDRV_CPU_PROGRAM_MAP(sci_cpub_ | |
| 3128 | MDRV_CPU_PROGRAM_MAP(sci_cpub_ | |
| 3358 | 3129 | MDRV_CPU_VBLANK_INT("screen", irq4_line_hold) |
| 3359 | 3130 | |
| 3360 | 3131 | MDRV_MACHINE_START(taitoz) |
| r4470 | r4471 | |
| 3402 | 3173 | |
| 3403 | 3174 | /* basic machine hardware */ |
| 3404 | 3175 | MDRV_CPU_ADD("maincpu", M68000, 12000000) /* 12 MHz ??? */ |
| 3405 | MDRV_CPU_PROGRAM_MAP(nightstr_ | |
| 3176 | MDRV_CPU_PROGRAM_MAP(nightstr_ | |
| 3406 | 3177 | MDRV_CPU_VBLANK_INT("screen", irq4_line_hold) |
| 3407 | 3178 | |
| 3408 | 3179 | MDRV_CPU_ADD("audiocpu", Z80,16000000/4) /* 4 MHz ??? */ |
| 3409 | MDRV_CPU_PROGRAM_MAP(z80_sound_ | |
| 3180 | MDRV_CPU_PROGRAM_MAP(z80_sound_ | |
| 3410 | 3181 | |
| 3411 | 3182 | MDRV_CPU_ADD("sub", M68000, 12000000) /* 12 MHz ??? */ |
| 3412 | MDRV_CPU_PROGRAM_MAP(nightstr_cpub_ | |
| 3183 | MDRV_CPU_PROGRAM_MAP(nightstr_cpub_ | |
| 3413 | 3184 | MDRV_CPU_VBLANK_INT("screen", irq4_line_hold) |
| 3414 | 3185 | |
| 3415 | 3186 | MDRV_MACHINE_START(taitoz) |
| r4470 | r4471 | |
| 3458 | 3229 | |
| 3459 | 3230 | /* basic machine hardware */ |
| 3460 | 3231 | MDRV_CPU_ADD("maincpu", M68000, 12000000) /* 12 MHz ??? */ |
| 3461 | MDRV_CPU_PROGRAM_MAP(aquajack_ | |
| 3232 | MDRV_CPU_PROGRAM_MAP(aquajack_ | |
| 3462 | 3233 | MDRV_CPU_VBLANK_INT("screen", irq4_line_hold) |
| 3463 | 3234 | |
| 3464 | 3235 | MDRV_CPU_ADD("audiocpu", Z80,16000000/4) /* 4 MHz ??? */ |
| 3465 | MDRV_CPU_PROGRAM_MAP(z80_sound_ | |
| 3236 | MDRV_CPU_PROGRAM_MAP(z80_sound_ | |
| 3466 | 3237 | |
| 3467 | 3238 | MDRV_CPU_ADD("sub", M68000, 12000000) /* 12 MHz ??? */ |
| 3468 | MDRV_CPU_PROGRAM_MAP(aquajack_cpub_ | |
| 3239 | MDRV_CPU_PROGRAM_MAP(aquajack_cpub_ | |
| 3469 | 3240 | MDRV_CPU_VBLANK_INT("screen", irq4_line_hold) |
| 3470 | 3241 | |
| 3471 | 3242 | MDRV_MACHINE_START(taitoz) |
| r4470 | r4471 | |
| 3513 | 3284 | |
| 3514 | 3285 | /* basic machine hardware */ |
| 3515 | 3286 | MDRV_CPU_ADD("maincpu", M68000, 16000000) /* 16 MHz ??? */ |
| 3516 | MDRV_CPU_PROGRAM_MAP(spacegun_ | |
| 3287 | MDRV_CPU_PROGRAM_MAP(spacegun_ | |
| 3517 | 3288 | MDRV_CPU_VBLANK_INT("screen", irq4_line_hold) |
| 3518 | 3289 | |
| 3519 | 3290 | MDRV_CPU_ADD("sub", M68000, 16000000) /* 16 MHz ??? */ |
| 3520 | MDRV_CPU_PROGRAM_MAP(spacegun_cpub_ | |
| 3291 | MDRV_CPU_PROGRAM_MAP(spacegun_cpub_ | |
| 3521 | 3292 | MDRV_CPU_VBLANK_INT("screen", irq4_line_hold) |
| 3522 | 3293 | |
| 3523 | 3294 | MDRV_MACHINE_START(taitoz) |
| r4470 | r4471 | |
| 3565 | 3336 | |
| 3566 | 3337 | /* basic machine hardware */ |
| 3567 | 3338 | MDRV_CPU_ADD("maincpu", M68000, 16000000) /* 16 MHz ??? */ |
| 3568 | MDRV_CPU_PROGRAM_MAP(dblaxle_ | |
| 3339 | MDRV_CPU_PROGRAM_MAP(dblaxle_ | |
| 3569 | 3340 | MDRV_CPU_VBLANK_INT("screen", dblaxle_interrupt) |
| 3570 | 3341 | |
| 3571 | 3342 | MDRV_CPU_ADD("audiocpu", Z80,16000000/4) /* 4 MHz ??? */ |
| 3572 | MDRV_CPU_PROGRAM_MAP(z80_sound_ | |
| 3343 | MDRV_CPU_PROGRAM_MAP(z80_sound_ | |
| 3573 | 3344 | |
| 3574 | 3345 | MDRV_CPU_ADD("sub", M68000, 16000000) /* 16 MHz ??? */ |
| 3575 | MDRV_CPU_PROGRAM_MAP(dblaxle_cpub_ | |
| 3346 | MDRV_CPU_PROGRAM_MAP(dblaxle_cpub_ | |
| 3576 | 3347 | MDRV_CPU_VBLANK_INT("screen", dblaxle_cpub_interrupt) |
| 3577 | 3348 | |
| 3578 | 3349 | MDRV_MACHINE_START(taitoz) |
| r4470 | r4471 | |
| 3620 | 3391 | |
| 3621 | 3392 | /* basic machine hardware */ |
| 3622 | 3393 | MDRV_CPU_ADD("maincpu", M68000, 16000000) /* 16 MHz ??? */ |
| 3623 | MDRV_CPU_PROGRAM_MAP(racingb_ | |
| 3394 | MDRV_CPU_PROGRAM_MAP(racingb_ | |
| 3624 | 3395 | MDRV_CPU_VBLANK_INT("screen", dblaxle_interrupt) |
| 3625 | 3396 | |
| 3626 | 3397 | MDRV_CPU_ADD("audiocpu", Z80,16000000/4) /* 4 MHz ??? */ |
| 3627 | MDRV_CPU_PROGRAM_MAP(z80_sound_ | |
| 3398 | MDRV_CPU_PROGRAM_MAP(z80_sound_ | |
| 3628 | 3399 | |
| 3629 | 3400 | MDRV_CPU_ADD("sub", M68000, 16000000) /* 16 MHz ??? */ |
| 3630 | MDRV_CPU_PROGRAM_MAP(racingb_cpub_ | |
| 3401 | MDRV_CPU_PROGRAM_MAP(racingb_cpub_ | |
| 3631 | 3402 | MDRV_CPU_VBLANK_INT("screen", dblaxle_cpub_interrupt) |
| 3632 | 3403 | |
| 3633 | 3404 | MDRV_MACHINE_START(taitoz) |
| r4470 | r4471 | |
| 3966 | 3737 | ROM_LOAD( "pal16l8b-b52-125.ic112", 0x2800, 0x0104, CRC(7628c557) SHA1(11bf628e091dc02e0c2e17ae726061ac04705a54) ) |
| 3967 | 3738 | ROM_END |
| 3968 | 3739 | |
| 3740 | ROM_START( chasehqu ) | |
| 3741 | ROM_REGION( 0x80000, "maincpu", 0 ) /* 512K for 68000 code (CPU A) */ | |
| 3742 | ROM_LOAD16_BYTE( "b52-138.36", 0x00000, 0x20000, CRC(8b71fe51) SHA1(6f2352aa2112dd18d328acddacf412b54c896ec0) ) | |
| 3743 | ROM_LOAD16_BYTE( "b52-135.29", 0x00001, 0x20000, CRC(5ba56a7c) SHA1(3af6f1008181d5a5951fbd6a48dd7592a9e38f96) ) | |
| 3744 | ROM_LOAD16_BYTE( "b52-131.37", 0x40000, 0x20000, CRC(aa945d83) SHA1(9d8a8186a199cacc0e24cf1ee75d81ab8b056406) ) | |
| 3745 | ROM_LOAD16_BYTE( "b52-129.30", 0x40001, 0x20000, CRC(0eaebc08) SHA1(1dde3304b251ddeb52f1378ef3845269c3667169) ) | |
| 3969 | 3746 | |
| 3747 | ROM_REGION( 0x20000, "sub", 0 ) /* 128K for 68000 code (CPU B) */ | |
| 3748 | ROM_LOAD16_BYTE( "b52-132.39", 0x00000, 0x10000, CRC(a2f54789) SHA1(941a6470e3a5ae35d079657260a8d7d6a9fca122) ) | |
| 3749 | ROM_LOAD16_BYTE( "b52-133.55", 0x00001, 0x10000, CRC(12232f95) SHA1(2894b95fc1d0a6e5b323bf3e7f1968f02b30a845) ) | |
| 3750 | ||
| 3751 | ROM_REGION( 0x1c000, "audiocpu", 0 ) /* Z80 sound cpu */ | |
| 3752 | ROM_LOAD( "b52-137.51", 0x00000, 0x04000, CRC(37abb74a) SHA1(1feb1e49102c13a90e02c150472545cd9f6334da) ) | |
| 3753 | ROM_CONTINUE( 0x10000, 0x0c000 ) /* banked stuff */ | |
| 3754 | ||
| 3755 | ROM_REGION( 0x80000, "gfx1", ROMREGION_DISPOSE ) | |
| 3756 | ROM_LOAD( "b52-29.27", 0x00000, 0x80000, CRC(8366d27c) SHA1(d7c5f588b39742927228ce73e5d69bda1e903df6) ) /* SCR 8x8*/ | |
| 3757 | ||
| 3758 | ROM_REGION( 0x200000, "gfx2", ROMREGION_DISPOSE ) | |
| 3759 | ROM_LOAD32_BYTE( "b52-34.5", 0x000000, 0x080000, CRC(7d8dce36) SHA1(ca082e647d10378144c05a70a8e4fe352d95eeaf) ) | |
| 3760 | ROM_LOAD32_BYTE( "b52-35.7", 0x000001, 0x080000, CRC(78eeec0d) SHA1(2e82186ca17c579816865ef21c52aef9e133fbf5) ) /* OBJ A 16x16 */ | |
| 3761 | ROM_LOAD32_BYTE( "b52-36.9", 0x000002, 0x080000, CRC(61e89e91) SHA1(f655b3caa37a8835c2eb11f4d72e985636ac5379) ) | |
| 3762 | ROM_LOAD32_BYTE( "b52-37.11", 0x000003, 0x080000, CRC(f02e47b9) SHA1(093864bd18bd58dafa57990e999f394ca3124452) ) | |
| 3763 | ||
| 3764 | ROM_REGION( 0x80000, "gfx3", 0 ) /* don't dispose */ | |
| 3765 | ROM_LOAD( "b52-28.4", 0x00000, 0x80000, CRC(963bc82b) SHA1(e3558aecd1b82ddbf10ab2b71843a3664705f1f1) ) /* ROD, road lines */ | |
| 3766 | ||
| 3767 | ROM_REGION( 0x200000, "gfx4", ROMREGION_DISPOSE ) | |
| 3768 | ROM_LOAD32_BYTE( "b52-30.4", 0x000000, 0x080000, CRC(1b8cc647) SHA1(8807fe01b6804507564fc179adf995bf86521fda) ) | |
| 3769 | ROM_LOAD32_BYTE( "b52-31.6", 0x000001, 0x080000, CRC(f1998e20) SHA1(b03d4e373e88933391f3533b885817edfca4cfdf) ) /* OBJ B 16x16 */ | |
| 3770 | ROM_LOAD32_BYTE( "b52-32.8", 0x000002, 0x080000, CRC(8620780c) SHA1(2545fd8fb03dcddc3da86d5ea06a6dc915acd1a1) ) | |
| 3771 | ROM_LOAD32_BYTE( "b52-33.10", 0x000003, 0x080000, CRC(e6f4b8c4) SHA1(8d15c75a16953aa56fb3dc6fd3b691e227bef622) ) | |
| 3772 | ||
| 3773 | ROM_REGION16_LE( 0x80000, "user1", 0 ) | |
| 3774 | ROM_LOAD16_WORD( "b52-38.34", 0x00000, 0x80000, CRC(5b5bf7f6) SHA1(71dd5b40b83870d351c9ecaccc4fb98c3a6740ae) ) /* STY spritemap */ | |
| 3775 | ||
| 3776 | ROM_REGION( 0x180000, "ym", 0 ) /* ADPCM samples */ | |
| 3777 | ROM_LOAD( "b52-115.71", 0x000000, 0x080000, CRC(4e117e93) SHA1(51d893fa21793335878c76f6d5987d99da60be04) ) | |
| 3778 | ROM_LOAD( "b52-114.72", 0x080000, 0x080000, CRC(3a73d6b1) SHA1(419f02a875b30913331db207e344d0eaa275297e) ) | |
| 3779 | ROM_LOAD( "b52-113.73", 0x100000, 0x080000, CRC(2c6a3a05) SHA1(f2f0dfbbbb6930bf53025064ebae9c07a95c6deb) ) | |
| 3780 | ||
| 3781 | ROM_REGION( 0x80000, "ym.deltat", 0 ) /* Delta-T samples */ | |
| 3782 | ROM_LOAD( "b52-116.70", 0x00000, 0x80000, CRC(ad46983c) SHA1(6fcad67456fbd8c967cd4786815f70b57a24a969) ) | |
| 3783 | ||
| 3784 | ROM_REGION( 0x10000, "user2", 0 ) /* unused ROMs */ | |
| 3785 | ROM_LOAD( "b52-01.7", 0x00000, 0x00100, CRC(89719d17) SHA1(50181b8172b0fc08b149db18caf10659be9c517f) ) // road/sprite priority and palette select | |
| 3786 | ROM_LOAD( "b52-03.135", 0x00000, 0x00400, CRC(a3f8490d) SHA1(349b8c9ba914603f72f800a3fc8e8277d756deb1) ) | |
| 3787 | ROM_LOAD( "b52-06.24", 0x00000, 0x00100, CRC(fbf81f30) SHA1(c868452c334792345dcced075f6df69cff9e31ca) ) // road A/B internal priority | |
| 3788 | ROM_LOAD( "b52-18.93", 0x00000, 0x00100, CRC(60bdaf1a) SHA1(0cb9c6b821de9ccc1f38336608dd7ead46cb8d24) ) // identical to b52-18b | |
| 3789 | ROM_LOAD( "b52-18a", 0x00000, 0x00100, CRC(6271be0d) SHA1(84282af98fc0de10e88282f7187cd865133ed6ce) ) | |
| 3790 | ROM_LOAD( "b52-49.68", 0x00000, 0x02000, CRC(60dd2ed1) SHA1(8673b6b3355975fb91cd1491e0ac7c0f590e3824) ) | |
| 3791 | ROM_LOAD( "b52-50.66", 0x00000, 0x10000, CRC(c189781c) SHA1(af3904ce51f715970965d110313491dbacf188b8) ) | |
| 3792 | ROM_LOAD( "b52-51.65", 0x00000, 0x10000, CRC(30cc1f79) SHA1(3b0e3e6e8bce7a7d04a5b0103e2ce4e18e52a68e) ) | |
| 3793 | ROM_LOAD( "b52-126.136", 0x00000, 0x00400, CRC(fa2f840e) SHA1(dd61ee6833bd43bbf619d36ec46f2bfa00880f40) ) | |
| 3794 | ROM_LOAD( "b52-127.156", 0x00000, 0x00400, CRC(77682a4f) SHA1(da2b3143f1c8688a22d8ec47bbb73b2f2e578480) ) | |
| 3795 | ||
| 3796 | ROM_REGION( 0x02a00, "plds", ROMREGION_DISPOSE ) | |
| 3797 | ROM_LOAD( "pal20l8b-b52-17.ic18", 0x0000, 0x0144, CRC(4851316d) SHA1(c58537b4b1ded471b7edcb94518757916a207bc0) ) | |
| 3798 | ROM_LOAD( "pal20l8b-b52-17.ic16", 0x0200, 0x0144, CRC(4851316d) SHA1(c58537b4b1ded471b7edcb94518757916a207bc0) ) | |
| 3799 | ROM_LOAD( "pal20l8b-b52-17.ic53", 0x0400, 0x0144, CRC(4851316d) SHA1(c58537b4b1ded471b7edcb94518757916a207bc0) ) | |
| 3800 | ROM_LOAD( "pal20l8b-b52-17.ic55", 0x0600, 0x0144, CRC(4851316d) SHA1(c58537b4b1ded471b7edcb94518757916a207bc0) ) | |
| 3801 | ROM_LOAD( "pal16l8b-b52-19.ic33", 0x0800, 0x0104, CRC(3ba292dc) SHA1(ce904e92e9c0d73802e6f53dc747204c194281c5) ) | |
| 3802 | ROM_LOAD( "pal16l8b-b52-20.ic35", 0x0a00, 0x0104, CRC(bd39ad73) SHA1(03120f3d7d0b9b9105990e226388f9cdd53e5789) ) | |
| 3803 | ROM_LOAD( "pal16l8b-b52-21.ic51", 0x0c00, 0x0104, CRC(2fe76aa4) SHA1(9ea187cff3e0edb58b019400cfc4bf342d4304c3) ) | |
| 3804 | ROM_LOAD( "pal20l8b-b52-25.ic123", 0x0e00, 0x0144, CRC(372b632d) SHA1(84631489c9f56907a97d686c35b15284fab09e8d) ) | |
| 3805 | ROM_LOAD( "pal20l8b-b52-26.ic15", 0x1000, 0x0144, CRC(d94f2bc2) SHA1(5ef92f824549add1a115ec25a10567bd4fe65c41) ) | |
| 3806 | ROM_LOAD( "pal20l8b-b52-26.ic18", 0x1200, 0x0144, CRC(d94f2bc2) SHA1(5ef92f824549add1a115ec25a10567bd4fe65c41) ) | |
| 3807 | ROM_LOAD( "pal20l8b-b52-26.ic52", 0x1400, 0x0144, CRC(d94f2bc2) SHA1(5ef92f824549add1a115ec25a10567bd4fe65c41) ) | |
| 3808 | ROM_LOAD( "pal20l8b-b52-26.ic54", 0x1600, 0x0144, CRC(d94f2bc2) SHA1(5ef92f824549add1a115ec25a10567bd4fe65c41) ) | |
| 3809 | ROM_LOAD( "pal20l8b-b52-27.ic64", 0x1800, 0x0144, CRC(61c2ab26) SHA1(8540d452a21581739b1ab08708b0c799dd2d2393) ) | |
| 3810 | ROM_LOAD( "pal20l8b-b52-118.ic20", 0x1a00, 0x0144, CRC(9c5fe4af) SHA1(1fbc6461f067eeac9679ca32c126563951a99c09) ) | |
| 3811 | ROM_LOAD( "pal20l8b-b52-119.ic21", 0x1c00, 0x0144, CRC(8b8e2106) SHA1(be59baae5cada9901c2ea8891f99731f010364db) ) | |
| 3812 | ROM_LOAD( "pal16l8b-b52-120.ic56", 0x1e00, 0x0104, CRC(3e7effa0) SHA1(0e8c09613b6a9311261aa8fa8bafab0f27081741) ) | |
| 3813 | ROM_LOAD( "pal20l8b-b52-121.ic57", 0x2000, 0x0144, CRC(7056fd1d) SHA1(fc032f24b95ff7a8bf5a7badddef51c5447c445d) ) | |
| 3814 | ROM_LOAD( "pal16l8b-b52-122.ic124", 0x2200, 0x0104, CRC(04c0fb04) SHA1(53dfeb747e213c67a78c1407e43cdad4cec2cb7e) ) | |
| 3815 | ROM_LOAD( "pal16l8b-b52-123.ic125", 0x2400, 0x0104, CRC(3865d1c8) SHA1(2d77326be4fb047243c3d5c33c442b009bf6fc04) ) | |
| 3816 | ROM_LOAD( "pal16l8b-b52-124.ic180", 0x2600, 0x0104, NO_DUMP ) /* read protected */ | |
| 3817 | ROM_LOAD( "pal16l8b-b52-125.ic112", 0x2800, 0x0104, CRC(7628c557) SHA1(11bf628e091dc02e0c2e17ae726061ac04705a54) ) | |
| 3818 | ROM_END | |
| 3819 | ||
| 3820 | ||
| 3970 | 3821 | /* |
| 3971 | 3822 | Enforce |
| 3972 | 3823 | Taito, 198?/199? |
| r4470 | r4471 | |
| 4788 | 4639 | GAMEL(1987, contcrua, contcirc, contcirc, contcrcu, taitoz, ROT0, "Taito America Corporation", "Continental Circus (US set 2)", GAME_IMPERFECT_GRAPHICS, layout_contcirc ) |
| 4789 | 4640 | GAMEL(1988, chasehq, 0, chasehq, chasehq, taitoz, ROT0, "Taito Corporation Japan", "Chase H.Q. (World)", GAME_IMPERFECT_GRAPHICS, layout_contcirc ) |
| 4790 | 4641 | GAMEL(1988, chasehqj, chasehq, chasehq, chasehqj, taitoz, ROT0, "Taito Corporation", "Chase H.Q. (Japan)", GAME_IMPERFECT_GRAPHICS, layout_contcirc ) |
| 4642 | GAMEL(1988, chasehqu, chasehq, chasehq, chasehq, taitoz, ROT0, "Taito America Corporation", "Chase H.Q. (US)", GAME_IMPERFECT_GRAPHICS, layout_contcirc ) | |
| 4791 | 4643 | GAME( 1988, enforce, 0, enforce, enforce, taitoz, ROT0, "Taito Corporation", "Enforce (Japan)", GAME_IMPERFECT_GRAPHICS ) |
| 4792 | 4644 | GAME( 1989, bshark, 0, bshark, bshark, bshark, ORIENTATION_FLIP_X, "Taito America Corporation", "Battle Shark (US)", GAME_IMPERFECT_GRAPHICS ) |
| 4793 | 4645 | GAME( 1989, bsharkj, bshark, bshark, bsharkj, bshark, ORIENTATION_FLIP_X, "Taito Corporation", "Battle Shark (Japan)", GAME_IMPERFECT_GRAPHICS ) |
| r4470 | r4471 | |
|---|---|---|
| 170 | 170 | static ADDRESS_MAP_START( main_io_map, ADDRESS_SPACE_IO, 8 ) |
| 171 | 171 | AM_RANGE(0x01, 0x01) AM_READ_PORT("IN0") AM_WRITE(port_1_w) |
| 172 | 172 | AM_RANGE(0x02, 0x02) AM_READWRITE(dial_r, port_2_w) |
| 173 | AM_RANGE(0x03, 0x03) AM_WRITE | |
| 173 | AM_RANGE(0x03, 0x03) AM_WRITE | |
| 174 | 174 | AM_RANGE(S2650_DATA_PORT, S2650_DATA_PORT) AM_READ_PORT("IN2") |
| 175 | 175 | AM_RANGE(S2650_CTRL_PORT, S2650_CTRL_PORT) AM_READWRITE(input_port_bit_r, input_select_w) |
| 176 | 176 | ADDRESS_MAP_END |
| r4470 | r4471 | |
|---|---|---|
| 56 | 56 | AM_RANGE(0xd000, 0xd7ff) AM_WRITE(markham_videoram_w) AM_BASE(&videoram) |
| 57 | 57 | AM_RANGE(0xd800, 0xdfff) AM_WRITE(SMH_RAM) AM_SHARE(1) |
| 58 | 58 | |
| 59 | AM_RANGE(0xe008, 0xe008) AM_WRITE | |
| 59 | AM_RANGE(0xe008, 0xe008) AM_WRITE | |
| 60 | 60 | |
| 61 | AM_RANGE(0xe009, 0xe009) AM_WRITE | |
| 61 | AM_RANGE(0xe009, 0xe009) AM_WRITE | |
| 62 | 62 | |
| 63 | 63 | AM_RANGE(0xe00c, 0xe00d) AM_WRITE(SMH_RAM) AM_BASE(&markham_xscroll) |
| 64 | 64 | AM_RANGE(0xe00e, 0xe00e) AM_WRITE(markham_flipscreen_w) |
| r4470 | r4471 | |
| 76 | 76 | AM_RANGE(0xc000, 0xc000) AM_DEVWRITE("sn1", sn76496_w) |
| 77 | 77 | AM_RANGE(0xc001, 0xc001) AM_DEVWRITE("sn2", sn76496_w) |
| 78 | 78 | |
| 79 | AM_RANGE(0xc002, 0xc002) AM_WRITE(SMH_NOP) /* unknown */ | |
| 80 | AM_RANGE(0xc003, 0xc003) AM_WRITE(SMH_NOP) /* unknown */ | |
| 79 | AM_RANGE(0xc002, 0xc002) AM_WRITENOP /* unknown */ | |
| 80 | AM_RANGE(0xc003, 0xc003) AM_WRITENOP /* unknown */ | |
| 81 | 81 | ADDRESS_MAP_END |
| 82 | 82 | |
| 83 | 83 |
| r4470 | r4471 | |
|---|---|---|
| 224 | 224 | AM_RANGE(0xf0a3, 0xf0a3) AM_WRITE(ms_unknown_w) //???? written in interrupt routine |
| 225 | 225 | |
| 226 | 226 | AM_RANGE(0xf060, 0xf060) AM_WRITE(sound_command_w) //sound command |
| 227 | AM_RANGE(0xf061, 0xf061) AM_WRITE | |
| 227 | AM_RANGE(0xf061, 0xf061) AM_WRITE | |
| 228 | 228 | |
| 229 | 229 | AM_RANGE(0xf000, 0xf000) AM_WRITE(msisaac_bg2_textbank_w) |
| 230 | 230 | AM_RANGE(0xf001, 0xf001) AM_WRITE(SMH_RAM) //??? |
| r4470 | r4471 | |
| 255 | 255 | AM_RANGE(0x0000, 0x3fff) AM_READ(SMH_ROM) |
| 256 | 256 | AM_RANGE(0x4000, 0x47ff) AM_READ(SMH_RAM) |
| 257 | 257 | AM_RANGE(0xc000, 0xc000) AM_READ(soundlatch_r) |
| 258 | AM_RANGE(0xe000, 0xffff) AM_READ | |
| 258 | AM_RANGE(0xe000, 0xffff) AM_READ | |
| 259 | 259 | ADDRESS_MAP_END |
| 260 | 260 | |
| 261 | 261 | |
| r4470 | r4471 | |
| 323 | 323 | |
| 324 | 324 | AM_RANGE(0xc001, 0xc001) AM_WRITE(nmi_enable_w) |
| 325 | 325 | AM_RANGE(0xc002, 0xc002) AM_WRITE(nmi_disable_w) |
| 326 | AM_RANGE(0xc003, 0xc003) AM_WRITE | |
| 326 | AM_RANGE(0xc003, 0xc003) AM_WRITE | |
| 327 | 327 | |
| 328 | 328 | ADDRESS_MAP_END |
| 329 | 329 |
| r4470 | r4471 | |
|---|---|---|
| 544 | 544 | AM_RANGE(0x0408, 0x0408) AM_READ(pbillian_from_mcu_r) |
| 545 | 545 | AM_RANGE(0x0408, 0x0408) AM_WRITE(pbillian_z80_mcu_w) |
| 546 | 546 | AM_RANGE(0x0410, 0x0410) AM_WRITE(pbillian_0410_w) |
| 547 | AM_RANGE(0x0418, 0x0418) AM_READ(SMH_NOP) //? | |
| 548 | AM_RANGE(0x0419, 0x0419) AM_WRITE(SMH_NOP) //? watchdog ? | |
| 547 | AM_RANGE(0x0418, 0x0418) AM_READNOP //? | |
| 548 | AM_RANGE(0x0419, 0x0419) AM_WRITENOP //? watchdog ? | |
| 549 | 549 | AM_RANGE(0x041a, 0x041a) AM_WRITE(pbillian_sample_trigger_w) |
| 550 | AM_RANGE(0x041b, 0x041b) AM_READ | |
| 550 | AM_RANGE(0x041b, 0x041b) AM_READ | |
| 551 | 551 | ADDRESS_MAP_END |
| 552 | 552 | |
| 553 | 553 | static ADDRESS_MAP_START( hotsmash_port_map, ADDRESS_SPACE_IO, 8 ) |
| r4470 | r4471 | |
| 557 | 557 | AM_RANGE(0x0408, 0x0408) AM_READ(hotsmash_from_mcu_r) |
| 558 | 558 | AM_RANGE(0x0408, 0x0408) AM_WRITE(hotsmash_z80_mcu_w) |
| 559 | 559 | AM_RANGE(0x0410, 0x0410) AM_WRITE(pbillian_0410_w) |
| 560 | AM_RANGE(0x0418, 0x0418) AM_READ(SMH_NOP) //? | |
| 561 | AM_RANGE(0x0419, 0x0419) AM_WRITE(SMH_NOP) //? watchdog ? | |
| 560 | AM_RANGE(0x0418, 0x0418) AM_READNOP //? | |
| 561 | AM_RANGE(0x0419, 0x0419) AM_WRITENOP //? watchdog ? | |
| 562 | 562 | AM_RANGE(0x041a, 0x041a) AM_WRITE(pbillian_sample_trigger_w) |
| 563 | AM_RANGE(0x041b, 0x041b) AM_READ | |
| 563 | AM_RANGE(0x041b, 0x041b) AM_READ | |
| 564 | 564 | ADDRESS_MAP_END |
| 565 | 565 | |
| 566 | 566 | static ADDRESS_MAP_START( sqix_port_map, ADDRESS_SPACE_IO, 8 ) |
| r4470 | r4471 | |
|---|---|---|
| 1659 | 1659 | GAME( 1986, pc_goons, playch10, playch10, playch10, pccboard, ROT0, "Konami", "The Goonies (PlayChoice-10)", 0 ) |
| 1660 | 1660 | |
| 1661 | 1661 | /* D-Board Games */ |
| 1662 | GAME( 1986, pc_mtoid, playch10, playch10, playch10, pcdboard_2, ROT0, "Nintendo", | |
| 1662 | GAME( 1986, pc_mtoid, playch10, playch10, playch10, pcdboard_2, ROT0, "Nintendo", | |
| 1663 | 1663 | GAME( 1987, pc_radrc, playch10, playch10, playch10, pcdboard, ROT0, "Square", "Rad Racer (PlayChoice-10)", 0 ) |
| 1664 | 1664 | |
| 1665 | 1665 | /* E-Board Games */ |
| r4470 | r4471 | |
| 1668 | 1668 | /* F-Board Games */ |
| 1669 | 1669 | GAME( 1987, pc_rcpam, playch10, playch10, playch10, pcfboard, ROT0, "Rare", "R.C. Pro-Am (PlayChoice-10)", 0 ) |
| 1670 | 1670 | GAME( 1987, pc_rrngr, playch10, playch10, playch10, pcfboard, ROT0, "Capcom USA (Nintendo of America license)", "Chip'n Dale: Rescue Rangers (PlayChoice-10)", 0 ) |
| 1671 | GAME( 1988, pc_ddrgn, playch10, playch10, playch10, pcfboard, ROT0, "Technos", | |
| 1671 | GAME( 1988, pc_ddrgn, playch10, playch10, playch10, pcfboard, ROT0, "Technos Japan", | |
| 1672 | 1672 | GAME( 1989, pc_ngaid, playch10, playch10, playch10, pcfboard, ROT0, "Tecmo (Nintendo of America license)", "Ninja Gaiden (PlayChoice-10)", 0 ) |
| 1673 | 1673 | GAME( 1989, pc_tmnt, playch10, playch10, playch10, pcfboard, ROT0, "Konami (Nintendo of America license)", "Teenage Mutant Ninja Turtles (PlayChoice-10)", 0 ) |
| 1674 | 1674 | GAME( 1989, pc_ftqst, playch10, playch10, playch10, pcfboard, ROT0, "Sunsoft (Nintendo of America license)", "Uncle Fester's Quest: The Addams Family (PlayChoice-10)", 0 ) |
| r4470 | r4471 | |
| 1683 | 1683 | GAME( 1990, pc_mman3, playch10, playch10, playch10, pcgboard, ROT0, "Capcom USA (Nintendo of America license)", "Mega Man III (PlayChoice-10)", 0 ) |
| 1684 | 1684 | GAME( 1990, pc_suprc, playch10, playch10, playch10, pcgboard, ROT0, "Konami (Nintendo of America license)", "Super C (PlayChoice-10)", 0 ) |
| 1685 | 1685 | GAME( 1990, pc_tmnt2, playch10, playch10, playch10, pcgboard, ROT0, "Konami (Nintendo of America license)", "Teenage Mutant Ninja Turtles II: The Arcade Game (PlayChoice-10)", 0 ) |
| 1686 | GAME( 1990, pc_wcup, playch10, playch10, playch10, pcgboard, ROT0, "Technos (Nintendo license)", | |
| 1686 | GAME( 1990, pc_wcup, playch10, playch10, playch10, pcgboard, ROT0, "Technos Japan (Nintendo license)", | |
| 1687 | 1687 | GAME( 1990, pc_ngai2, playch10, playch10, playch10, pcgboard, ROT0, "Tecmo (Nintendo of America license)", "Ninja Gaiden Episode II: The Dark Sword of Chaos (PlayChoice-10)", 0 ) |
| 1688 | 1688 | GAME( 1991, pc_ngai3, playch10, playch10, playch10, pcgboard, ROT0, "Tecmo (Nintendo of America license)", "Ninja Gaiden Episode III: The Ancient Ship of Doom (PlayChoice-10)", 0 ) |
| 1689 | 1689 | GAME( 1991, pc_pwbld, playch10, playch10, playch10, pcgboard, ROT0, "Taito (Nintendo of America license)", "Power Blade (PlayChoice-10)", 0 ) |
| r4470 | r4471 | |
|---|---|---|
| 225 | 225 | AM_RANGE(0x000000, 0x05ffff) AM_ROM |
| 226 | 226 | AM_RANGE(0x10c000, 0x10ffff) AM_RAM |
| 227 | 227 | AM_RANGE(0x200000, 0x200fff) AM_RAM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE(&paletteram16) |
| 228 | AM_RANGE(0x350008, 0x350009) AM_WRITE | |
| 228 | AM_RANGE(0x350008, 0x350009) AM_WRITE | |
| 229 | 229 | AM_RANGE(0x380000, 0x380001) AM_WRITE(rastan_spritectrl_w) /* sprite palette bank, coin counters & lockout */ |
| 230 | 230 | AM_RANGE(0x390000, 0x390001) AM_READ_PORT("P1") |
| 231 | 231 | AM_RANGE(0x390002, 0x390003) AM_READ_PORT("P2") |
| r4470 | r4471 | |
| 234 | 234 | AM_RANGE(0x390008, 0x390009) AM_READ_PORT("DSWA") |
| 235 | 235 | AM_RANGE(0x39000a, 0x39000b) AM_READ_PORT("DSWB") |
| 236 | 236 | AM_RANGE(0x3c0000, 0x3c0001) AM_WRITE(watchdog_reset16_w) |
| 237 | AM_RANGE(0x3e0000, 0x3e0001) AM_READWRITE(SMH_NOP, taitosound_port16_lsb_w) | |
| 238 | AM_RANGE(0x3e0002, 0x3e0003) AM_READWRITE(taitosound_comm16_lsb_r, taitosound_comm16_lsb_w) | |
| 237 | AM_RANGE(0x3e0000, 0x3e0001) AM_READNOP AM_WRITE8(taitosound_port_w, 0x00ff) | |
| 238 | AM_RANGE(0x3e0002, 0x3e0003) AM_READWRITE8(taitosound_comm_r, taitosound_comm_w, 0x00ff) | |
| 239 | 239 | AM_RANGE(0xc00000, 0xc0ffff) AM_READWRITE(PC080SN_word_0_r, PC080SN_word_0_w) |
| 240 | 240 | AM_RANGE(0xc20000, 0xc20003) AM_WRITE(PC080SN_yscroll_word_0_w) |
| 241 | 241 | AM_RANGE(0xc40000, 0xc40003) AM_WRITE(PC080SN_xscroll_word_0_w) |
| r4470 | r4471 | |
|---|---|---|
| 383 | 383 | |
| 384 | 384 | static ADDRESS_MAP_START( pntnpuzl_map, ADDRESS_SPACE_PROGRAM, 16 ) |
| 385 | 385 | AM_RANGE(0x000000, 0x07ffff) AM_ROM |
| 386 | AM_RANGE(0x080000, 0x080001) AM_READ(SMH_NOP) //| | |
| 387 | AM_RANGE(0x100000, 0x100001) AM_READ(SMH_NOP) //| irq lines clear | |
| 388 | AM_RANGE(0x180000, 0x180001) AM_READ(SMH_NOP) //| | |
| 386 | AM_RANGE(0x080000, 0x080001) AM_READNOP //| | |
| 387 | AM_RANGE(0x100000, 0x100001) AM_READNOP //| irq lines clear | |
| 388 | AM_RANGE(0x180000, 0x180001) AM_READNOP //| | |
| 389 | 389 | AM_RANGE(0x200000, 0x200001) AM_WRITE(pntnpuzl_200000_w) |
| 390 | 390 | AM_RANGE(0x280000, 0x280001) AM_READ(pntnpuzl_eeprom_r) |
| 391 | 391 | AM_RANGE(0x280002, 0x280003) AM_READ_PORT("IN2") |
| 392 | 392 | AM_RANGE(0x280000, 0x280001) AM_WRITE(pntnpuzl_eeprom_w) |
| 393 | AM_RANGE(0x280008, 0x280009) AM_WRITE(SMH_NOP) | |
| 394 | AM_RANGE(0x28000a, 0x28000b) AM_WRITE(SMH_NOP) | |
| 395 | AM_RANGE(0x280010, 0x280011) AM_WRITE(SMH_NOP) | |
| 396 | AM_RANGE(0x280012, 0x280013) AM_WRITE(SMH_NOP) | |
| 393 | AM_RANGE(0x280008, 0x280009) AM_WRITENOP | |
| 394 | AM_RANGE(0x28000a, 0x28000b) AM_WRITENOP | |
| 395 | AM_RANGE(0x280010, 0x280011) AM_WRITENOP | |
| 396 | AM_RANGE(0x280012, 0x280013) AM_WRITENOP | |
| 397 | 397 | AM_RANGE(0x280014, 0x280015) AM_READ(pntnpuzl_280014_r) |
| 398 | AM_RANGE(0x280016, 0x280017) AM_WRITE | |
| 398 | AM_RANGE(0x280016, 0x280017) AM_WRITE | |
| 399 | 399 | AM_RANGE(0x280018, 0x280019) AM_WRITE(pntnpuzl_280018_w) |
| 400 | 400 | AM_RANGE(0x28001a, 0x28001b) AM_READ(pntnpuzl_28001a_r) |
| 401 | AM_RANGE(0x28001a, 0x28001b) AM_WRITE | |
| 401 | AM_RANGE(0x28001a, 0x28001b) AM_WRITE | |
| 402 | 402 | |
| 403 | 403 | /* standard VGA */ |
| 404 | 404 | AM_RANGE(0x3a0000, 0x3affff) AM_READWRITE(pntnpuzl_vid_r, pntnpuzl_vid_w) |
| r4470 | r4471 | |
|---|---|---|
| 43 | 43 | #include "machine/eeprom.h" |
| 44 | 44 | #include "sound/2151intf.h" |
| 45 | 45 | #include "sound/k054539.h" |
| 46 | #include "konamipt.h" | |
| 46 | 47 | |
| 47 | ||
| 48 | 48 | VIDEO_START( gijoe ); |
| 49 | 49 | VIDEO_UPDATE( gijoe ); |
| 50 | 50 | |
| r4470 | r4471 | |
| 236 | 236 | AM_RANGE(0x122000, 0x123fff) AM_WRITE(K056832_ram_word_w) |
| 237 | 237 | AM_RANGE(0x130000, 0x131fff) AM_WRITE(SMH_ROM) |
| 238 | 238 | AM_RANGE(0x160000, 0x160007) AM_WRITE(K056832_b_word_w) // VSCCS (board dependent) |
| 239 | AM_RANGE(0x170000, 0x170001) AM_WRITE | |
| 239 | AM_RANGE(0x170000, 0x170001) AM_WRITE | |
| 240 | 240 | AM_RANGE(0x180000, 0x18ffff) AM_WRITE(SMH_RAM) AM_BASE(&gijoe_workram) |
| 241 | 241 | AM_RANGE(0x190000, 0x190fff) AM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE(&paletteram16) |
| 242 | 242 | AM_RANGE(0x1a0000, 0x1a001f) AM_WRITE(K053251_lsb_w) |
| r4470 | r4471 | |
| 282 | 282 | PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_SERVICE4 ) |
| 283 | 283 | |
| 284 | 284 | PORT_START("P1_P2") |
| 285 | PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) | |
| 286 | PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) | |
| 287 | PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) | |
| 288 | PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) | |
| 289 | PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) | |
| 290 | PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) | |
| 291 | PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) | |
| 285 | KONAMI16_LSB_40(1, IPT_BUTTON3 ) | |
| 292 | 286 | PORT_DIPNAME( 0x0080, 0x0000, "Sound" ) |
| 293 | 287 | PORT_DIPSETTING( 0x0080, DEF_STR( Mono ) ) |
| 294 | 288 | PORT_DIPSETTING( 0x0000, DEF_STR( Stereo ) ) |
| 295 | PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) | |
| 296 | PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) | |
| 297 | PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) | |
| 298 | PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) | |
| 299 | PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) | |
| 300 | PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) | |
| 301 | PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) | |
| 289 | KONAMI16_MSB_40(2, IPT_BUTTON3 ) | |
| 302 | 290 | PORT_DIPNAME( 0x8000, 0x8000, "Coin mechanism" ) |
| 303 | 291 | PORT_DIPSETTING( 0x8000, "Common" ) |
| 304 | 292 | PORT_DIPSETTING( 0x0000, "Independant" ) |
| 305 | 293 | |
| 306 | 294 | PORT_START("P3_P4") |
| 307 | PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(3) | |
| 308 | PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(3) | |
| 309 | PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(3) | |
| 310 | PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(3) | |
| 311 | PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3) | |
| 312 | PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3) | |
| 313 | PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(3) | |
| 295 | KONAMI16_LSB_40(3, IPT_BUTTON3 ) | |
| 314 | 296 | PORT_DIPNAME( 0x0080, 0x0000, DEF_STR( Players ) ) |
| 315 | 297 | PORT_DIPSETTING( 0x0080, "2" ) |
| 316 | 298 | PORT_DIPSETTING( 0x0000, "4" ) |
| 317 | PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(4) | |
| 318 | PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(4) | |
| 319 | PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(4) | |
| 320 | PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(4) | |
| 321 | PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(4) | |
| 322 | PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(4) | |
| 323 | PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(4) | |
| 299 | KONAMI16_MSB_40(4, IPT_BUTTON3 ) | |
| 324 | 300 | PORT_DIPUNUSED( 0x8000, IP_ACTIVE_LOW ) |
| 325 | 301 | INPUT_PORTS_END |
| 326 | 302 |
| r4470 | r4471 | |
|---|---|---|
| 131 | 131 | |
| 132 | 132 | |
| 133 | 133 | static ADDRESS_MAP_START( k3_map, ADDRESS_SPACE_PROGRAM, 16 ) |
| 134 | AM_RANGE(0x0009ce, 0x0009cf) AM_WRITE(SMH_NOP) // bug in code? (clean up log) | |
| 135 | AM_RANGE(0x0009d2, 0x0009d3) AM_WRITE(SMH_NOP) // bug in code? (clean up log) | |
| 134 | AM_RANGE(0x0009ce, 0x0009cf) AM_WRITENOP // bug in code? (clean up log) | |
| 135 | AM_RANGE(0x0009d2, 0x0009d3) AM_WRITENOP // bug in code? (clean up log) | |
| 136 | 136 | |
| 137 | 137 | AM_RANGE(0x000000, 0x0fffff) AM_ROM // ROM |
| 138 | 138 | AM_RANGE(0x100000, 0x10ffff) AM_RAM // Main Ram |
| r4470 | r4471 | |
|---|---|---|
| 573 | 573 | AM_RANGE(0xa090, 0xa090) AM_DEVWRITE("ay2", ay8910_address_w) |
| 574 | 574 | AM_RANGE(0xa092, 0xa092) AM_DEVWRITE("ay2", ay8910_data_w) |
| 575 | 575 | AM_RANGE(0xa0e0, 0xa0e0) AM_WRITE(getstar_sh_intenable_w) /* maybe a0f0 also -LE */ |
| 576 | // AM_RANGE(0xa0f0, 0xa0f0) AM_WRITE | |
| 576 | // AM_RANGE(0xa0f0, 0xa0f0) AM_WRITE | |
| 577 | 577 | ADDRESS_MAP_END |
| 578 | 578 | |
| 579 | 579 | static ADDRESS_MAP_START( sound_readmem, ADDRESS_SPACE_PROGRAM, 8 ) |
| r4470 | r4471 | |
|---|---|---|
| 486 | 486 | AM_RANGE(0x03004000, 0x0300ffff) AM_READ(SMH_RAM) |
| 487 | 487 | AM_RANGE(0x03040000, 0x03044fff) AM_READ(SMH_RAM) |
| 488 | 488 | AM_RANGE(0x03050000, 0x030501ff) AM_READ(SMH_RAM) |
| 489 | AM_RANGE(0x0305ffdc, 0x0305ffdf) AM_READ | |
| 489 | AM_RANGE(0x0305ffdc, 0x0305ffdf) AM_READ | |
| 490 | 490 | AM_RANGE(0x0305ffe0, 0x0305ffff) AM_READ(SMH_RAM) // video registers |
| 491 | 491 | AM_RANGE(0x05000000, 0x05000003) AM_DEVREAD8("ymf", ymf278b_r, 0xffffffff) // read YMF status |
| 492 | 492 | AM_RANGE(0x05800000, 0x05800003) AM_READ_PORT("INPUTS") |
| r4470 | r4471 | |
| 523 | 523 | AM_RANGE(0x04004000, 0x0400ffff) AM_READ(SMH_RAM) |
| 524 | 524 | AM_RANGE(0x04040000, 0x04044fff) AM_READ(SMH_RAM) |
| 525 | 525 | AM_RANGE(0x04050000, 0x040501ff) AM_READ(SMH_RAM) |
| 526 | AM_RANGE(0x0405ffdc, 0x0405ffdf) AM_READ | |
| 526 | AM_RANGE(0x0405ffdc, 0x0405ffdf) AM_READ | |
| 527 | 527 | AM_RANGE(0x0405ffe0, 0x0405ffff) AM_READ(SMH_RAM) // video registers |
| 528 | 528 | AM_RANGE(0x05000000, 0x0507ffff) AM_READ(SMH_BANK1) // data ROM |
| 529 | 529 | AM_RANGE(0x06000000, 0x060fffff) AM_READ(SMH_RAM) |
| r4470 | r4471 | |
|---|---|---|
| 71 | 71 | ADDRESS_MAP_GLOBAL_MASK(0xff) |
| 72 | 72 | AM_RANGE(0x02, 0x03) AM_WRITE(quizdna_bg_xscroll_w) |
| 73 | 73 | AM_RANGE(0x04, 0x04) AM_WRITE(quizdna_bg_yscroll_w) |
| 74 | AM_RANGE(0x05, 0x06) AM_WRITE | |
| 74 | AM_RANGE(0x05, 0x06) AM_WRITE | |
| 75 | 75 | AM_RANGE(0x80, 0x80) AM_READ_PORT("P1") |
| 76 | 76 | AM_RANGE(0x81, 0x81) AM_READ_PORT("P2") |
| 77 | 77 | AM_RANGE(0x90, 0x90) AM_READ_PORT("SYSTEM") |
| r4470 | r4471 | |
| 86 | 86 | ADDRESS_MAP_GLOBAL_MASK(0xff) |
| 87 | 87 | AM_RANGE(0x00, 0x01) AM_WRITE(quizdna_bg_xscroll_w) |
| 88 | 88 | AM_RANGE(0x02, 0x02) AM_WRITE(quizdna_bg_yscroll_w) |
| 89 | AM_RANGE(0x03, 0x04) AM_WRITE | |
| 89 | AM_RANGE(0x03, 0x04) AM_WRITE | |
| 90 | 90 | AM_RANGE(0x80, 0x80) AM_READ_PORT("P1") |
| 91 | 91 | AM_RANGE(0x81, 0x81) AM_READ_PORT("P2") |
| 92 | 92 | AM_RANGE(0x90, 0x90) AM_READ_PORT("SYSTEM") |
| r4470 | r4471 | |
| 101 | 101 | ADDRESS_MAP_GLOBAL_MASK(0xff) |
| 102 | 102 | AM_RANGE(0x02, 0x03) AM_WRITE(quizdna_bg_xscroll_w) |
| 103 | 103 | AM_RANGE(0x04, 0x04) AM_WRITE(quizdna_bg_yscroll_w) |
| 104 | AM_RANGE(0x05, 0x06) AM_WRITE | |
| 104 | AM_RANGE(0x05, 0x06) AM_WRITE | |
| 105 | 105 | AM_RANGE(0x80, 0x80) AM_READ_PORT("P1") |
| 106 | 106 | AM_RANGE(0x81, 0x81) AM_READ_PORT("P2") |
| 107 | 107 | AM_RANGE(0x90, 0x90) AM_READ_PORT("SYSTEM") |
| r4470 | r4471 | |
|---|---|---|
| 311 | 311 | *************************************/ |
| 312 | 312 | |
| 313 | 313 | static ADDRESS_MAP_START( supertnk_io_map, ADDRESS_SPACE_IO, 8 ) |
| 314 | AM_RANGE(0x0000, 0x0000) AM_WRITE | |
| 314 | AM_RANGE(0x0000, 0x0000) AM_WRITE | |
| 315 | 315 | AM_RANGE(0x0400, 0x0400) AM_WRITE(supertnk_bitplane_select_0_w) |
| 316 | 316 | AM_RANGE(0x0401, 0x0401) AM_WRITE(supertnk_bitplane_select_1_w) |
| 317 | 317 | AM_RANGE(0x0402, 0x0402) AM_WRITE(supertnk_bankswitch_0_w) |
| r4470 | r4471 | |
|---|---|---|
| 149 | 149 | static INPUT_PORTS_START( irrmaze ) |
| 150 | 150 | PORT_START("IN0") |
| 151 | 151 | STANDARD_DIPS |
| 152 | PORT_BIT( 0xff00, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(multiplexed_controller_r, | |
| 152 | PORT_BIT( 0xff00, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(multiplexed_controller_r, (void *)0 | |
| 153 | 153 | |
| 154 | 154 | PORT_START("IN1") |
| 155 | 155 | PORT_BIT( 0x0fff, IP_ACTIVE_LOW, IPT_UNUSED ) |
| r4470 | r4471 | |
| 181 | 181 | PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 182 | 182 | |
| 183 | 183 | PORT_START("IN0-0") |
| 184 | PORT_BIT( 0x00ff, 0x00, IPT_TRACKBALL_X ) PORT_SENSITIVITY(10) PORT_KEYDELTA(20) PORT_REVERSE | |
| 185 | PORT_BIT( 0xff00, IP_ACTIVE_HIGH, IPT_UNUSED ) | |
| 184 | PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_X ) PORT_SENSITIVITY(10) PORT_KEYDELTA(20) PORT_REVERSE | |
| 186 | 185 | |
| 187 | 186 | PORT_START("IN0-1") |
| 188 | PORT_BIT( 0x00ff, 0x00, IPT_TRACKBALL_Y ) PORT_SENSITIVITY(10) PORT_KEYDELTA(20) PORT_REVERSE | |
| 189 | PORT_BIT( 0xff00, IP_ACTIVE_HIGH, IPT_UNUSED ) | |
| 187 | PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_Y ) PORT_SENSITIVITY(10) PORT_KEYDELTA(20) PORT_REVERSE | |
| 190 | 188 | INPUT_PORTS_END |
| 191 | 189 | |
| 192 | 190 | |
| 193 | 191 | static INPUT_PORTS_START( popbounc ) |
| 194 | 192 | PORT_START("IN0") |
| 195 | 193 | STANDARD_DIPS |
| 196 | PORT_BIT( 0xff00, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(multiplexed_controller_r, | |
| 194 | PORT_BIT( 0xff00, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(multiplexed_controller_r, (void *)0 | |
| 197 | 195 | |
| 198 | 196 | PORT_START("IN1") |
| 199 | 197 | PORT_BIT( 0x00ff, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 200 | PORT_BIT( 0xff00, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(multiplexed_controller_r, | |
| 198 | PORT_BIT( 0xff00, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(multiplexed_controller_r, (void *)1 | |
| 201 | 199 | |
| 202 | 200 | STANDARD_IN2 |
| 203 | 201 | |
| r4470 | r4471 | |
| 205 | 203 | |
| 206 | 204 | STANDARD_IN4 |
| 207 | 205 | |
| 206 | /* Fake inputs read by CUSTOM_INPUT handlers */ | |
| 208 | 207 | PORT_START("IN0-0") |
| 209 | PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) | |
| 210 | PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) | |
| 211 | PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) | |
| 212 | PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) | |
| 213 | PORT_BIT( 0x0090, IP_ACTIVE_LOW, IPT_BUTTON1 ) /* note it needs it from 0x80 when using paddle */ | |
| 214 | PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) | |
| 215 | PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) | |
| 216 | PORT_BIT( 0xff00, IP_ACTIVE_HIGH, IPT_UNUSED ) | |
| 208 | PORT_BIT( 0xff, 0x00, IPT_DIAL ) PORT_SENSITIVITY(25) PORT_KEYDELTA(20) | |
| 217 | 209 | |
| 218 | 210 | PORT_START("IN0-1") |
| 219 | PORT_BIT( 0x00ff, 0x0000, IPT_DIAL ) PORT_SENSITIVITY(25) PORT_KEYDELTA(20) | |
| 211 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) | |
| 212 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) | |
| 213 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) | |
| 214 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) | |
| 215 | PORT_BIT( 0x90, IP_ACTIVE_LOW, IPT_BUTTON1 ) /* note it needs it from 0x80 when using paddle */ | |
| 216 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) | |
| 217 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) | |
| 220 | 218 | |
| 221 | 219 | PORT_START("IN1-0") |
| 222 | PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(2) | |
| 223 | PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(2) | |
| 224 | PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(2) | |
| 225 | PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(2) | |
| 226 | PORT_BIT( 0x0090, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) /* note it needs it from 0x80 when using paddle */ | |
| 227 | PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) | |
| 228 | PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) | |
| 229 | PORT_BIT( 0xff00, IP_ACTIVE_HIGH, IPT_UNUSED ) | |
| 220 | PORT_BIT( 0xff, 0x00, IPT_DIAL ) PORT_SENSITIVITY(25) PORT_KEYDELTA(20) PORT_PLAYER(2) | |
| 230 | 221 | |
| 231 | PORT_START("IN1-1") /* IN1 multiplexed */ | |
| 232 | PORT_BIT( 0x00ff, 0x0000, IPT_DIAL ) PORT_SENSITIVITY(25) PORT_KEYDELTA(20) PORT_PLAYER(2) | |
| 233 | PORT_BIT( 0xff00, IP_ACTIVE_HIGH, IPT_UNUSED ) | |
| 222 | PORT_START("IN1-1") | |
| 223 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(2) | |
| 224 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(2) | |
| 225 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(2) | |
| 226 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(2) | |
| 227 | PORT_BIT( 0x90, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) /* note it needs it from 0x80 when using paddle */ | |
| 228 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) | |
| 229 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) | |
| 234 | 230 | INPUT_PORTS_END |
| 235 | 231 | |
| 236 | 232 | |
| r4470 | r4471 | |
| 7852 | 7848 | /* Takara */ |
| 7853 | 7849 | GAME( 1995, marukodq, neogeo, neogeo, neogeo, neogeo, ROT0, "Takara", "Chibi Marukochan Deluxe Quiz", 0 ) |
| 7854 | 7850 | |
| 7855 | /* Technos */ | |
| 7856 | GAME( 1995, doubledr, neogeo, neogeo, neogeo, neogeo, ROT0, "Technos", "Double Dragon (Neo-Geo)", 0 ) | |
| 7857 | GAME( 1995, gowcaizr, neogeo, neogeo, neogeo, neogeo, ROT0, "Technos", "Voltage Fighter - Gowcaizer / Choujin Gakuen Gowcaizer", 0 ) | |
| 7858 | GAME( 1996, sdodgeb, neogeo, neogeo, neogeo, neogeo, ROT0, "Technos", "Super Dodge Ball / Kunio no Nekketsu Toukyuu Densetsu", 0 ) | |
| 7851 | /* Technos Japan */ | |
| 7852 | GAME( 1995, doubledr, neogeo, neogeo, neogeo, neogeo, ROT0, "Technos Japan", "Double Dragon (Neo-Geo)", 0 ) | |
| 7853 | GAME( 1995, gowcaizr, neogeo, neogeo, neogeo, neogeo, ROT0, "Technos Japan", "Voltage Fighter - Gowcaizer / Choujin Gakuen Gowcaizer", 0 ) | |
| 7854 | GAME( 1996, sdodgeb, neogeo, neogeo, neogeo, neogeo, ROT0, "Technos Japan", "Super Dodge Ball / Kunio no Nekketsu Toukyuu Densetsu", 0 ) | |
| 7859 | 7855 | |
| 7860 | 7856 | /* Tecmo */ |
| 7861 | 7857 | GAME( 1996, tws96, neogeo, neogeo, neogeo, neogeo, ROT0, "Tecmo", "Tecmo World Soccer '96", 0 ) |
| r4470 | r4471 | |
|---|---|---|
| 13 | 13 | There's also something wrong in the way tile banks are implemented in |
| 14 | 14 | konamiic.c. They don't seem to be used by this game. |
| 15 | 15 | |
| 16 | 2009-03: | |
| 17 | Added dsw locations and verified factory setting based on Guru's notes | |
| 18 | ||
| 16 | 19 | ***************************************************************************/ |
| 17 | 20 | |
| 18 | 21 | #include "driver.h" |
| r4470 | r4471 | |
| 22 | 25 | #include "cpu/z80/z80.h" |
| 23 | 26 | #include "sound/2151intf.h" |
| 24 | 27 | #include "sound/k007232.h" |
| 28 | #include "konamipt.h" | |
| 25 | 29 | |
| 26 | ||
| 27 | 30 | extern UINT16 *gradius3_gfxram; |
| 28 | 31 | extern int gradius3_priority; |
| 29 | 32 | VIDEO_START( gradius3 ); |
| r4470 | r4471 | |
| 226 | 229 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) |
| 227 | 230 | |
| 228 | 231 | PORT_START("P1") |
| 229 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY | |
| 230 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY | |
| 231 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY | |
| 232 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY | |
| 233 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) // power-up | |
| 234 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) // shoot | |
| 235 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) // missile | |
| 236 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 232 | KONAMI8_MONO_B123_UNK // button1 = power-up, button2 = shoot, button3 = missile | |
| 237 | 233 | |
| 238 | 234 | PORT_START("P2") |
| 239 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL | |
| 240 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL | |
| 241 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL | |
| 242 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL | |
| 243 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL | |
| 244 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL | |
| 245 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_COCKTAIL | |
| 246 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 235 | KONAMI8_COCKTAIL_B123_UNK | |
| 247 | 236 | |
| 248 | 237 | PORT_START("DSW1") |
| 249 | PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) ) | |
| 250 | PORT_DIPSETTING( 0x02, DEF_STR( 4C_1C ) ) | |
| 251 | PORT_DIPSETTING( 0x05, DEF_STR( 3C_1C ) ) | |
| 252 | PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) ) | |
| 253 | PORT_DIPSETTING( 0x04, DEF_STR( 3C_2C ) ) | |
| 254 | PORT_DIPSETTING( 0x01, DEF_STR( 4C_3C ) ) | |
| 255 | PORT_DIPSETTING( 0x0f, DEF_STR( 1C_1C ) ) | |
| 256 | PORT_DIPSETTING( 0x03, DEF_STR( 3C_4C ) ) | |
| 257 | PORT_DIPSETTING( 0x07, DEF_STR( 2C_3C ) ) | |
| 258 | PORT_DIPSETTING( 0x0e, DEF_STR( 1C_2C ) ) | |
| 259 | PORT_DIPSETTING( 0x06, DEF_STR( 2C_5C ) ) | |
| 260 | PORT_DIPSETTING( 0x0d, DEF_STR( 1C_3C ) ) | |
| 261 | PORT_DIPSETTING( 0x0c, DEF_STR( 1C_4C ) ) | |
| 262 | PORT_DIPSETTING( 0x0b, DEF_STR( 1C_5C ) ) | |
| 263 | PORT_DIPSETTING( 0x0a, DEF_STR( 1C_6C ) ) | |
| 264 | PORT_DIPSETTING( 0x09, DEF_STR( 1C_7C ) ) | |
| 265 | PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) | |
| 266 | PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) ) | |
| 267 | PORT_DIPSETTING( 0x20, DEF_STR( 4C_1C ) ) | |
| 268 | PORT_DIPSETTING( 0x50, DEF_STR( 3C_1C ) ) | |
| 269 | PORT_DIPSETTING( 0x80, DEF_STR( 2C_1C ) ) | |
| 270 | PORT_DIPSETTING( 0x40, DEF_STR( 3C_2C ) ) | |
| 271 | PORT_DIPSETTING( 0x10, DEF_STR( 4C_3C ) ) | |
| 272 | PORT_DIPSETTING( 0xf0, DEF_STR( 1C_1C ) ) | |
| 273 | PORT_DIPSETTING( 0x30, DEF_STR( 3C_4C ) ) | |
| 274 | PORT_DIPSETTING( 0x70, DEF_STR( 2C_3C ) ) | |
| 275 | PORT_DIPSETTING( 0xe0, DEF_STR( 1C_2C ) ) | |
| 276 | PORT_DIPSETTING( 0x60, DEF_STR( 2C_5C ) ) | |
| 277 | PORT_DIPSETTING( 0xd0, DEF_STR( 1C_3C ) ) | |
| 278 | PORT_DIPSETTING( 0xc0, DEF_STR( 1C_4C ) ) | |
| 279 | PORT_DIPSETTING( 0xb0, DEF_STR( 1C_5C ) ) | |
| 280 | PORT_DIPSETTING( 0xa0, DEF_STR( 1C_6C ) ) | |
| 281 | PORT_DIPSETTING( 0x90, DEF_STR( 1C_7C ) ) | |
| 282 | // PORT_DIPSETTING( 0x00, "Invalid" ) | |
| 238 | KONAMI_COINAGE_LOC(DEF_STR( Free_Play ), "Invalid", SW1) | |
| 239 | /* "Invalid" = both coin slots disabled */ | |
| 283 | 240 | |
| 284 | 241 | PORT_START("DSW2") |
| 285 | PORT_DIPNAME( 0x03, 0x02, DEF_STR( Lives ) ) | |
| 242 | PORT_DIPNAME( 0x03, 0x02, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW2:1,2") | |
| 286 | 243 | PORT_DIPSETTING( 0x03, "2" ) |
| 287 | 244 | PORT_DIPSETTING( 0x02, "3" ) |
| 288 | 245 | PORT_DIPSETTING( 0x01, "5" ) |
| 289 | 246 | PORT_DIPSETTING( 0x00, "7" ) |
| 290 | PORT_DIPNAME( 0x04, 0x00, DEF_STR( Cabinet ) ) | |
| 247 | PORT_DIPNAME( 0x04, 0x00, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SW2:3") | |
| 291 | 248 | PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) |
| 292 | 249 | PORT_DIPSETTING( 0x04, DEF_STR( Cocktail ) ) |
| 293 | PORT_DIPNAME( 0x18, 0x18, DEF_STR( Bonus_Life ) ) | |
| 294 | PORT_DIPSETTING( 0x18, "20000 and every 70000" ) | |
| 295 | PORT_DIPSETTING( 0x10, "100000 and every 100000" ) | |
| 296 | PORT_DIPSETTING( 0x08, "50000" ) | |
| 297 | PORT_DIPSETTING( 0x00, "100000" ) | |
| 298 | PORT_DIPNAME( 0x60, 0x40, DEF_STR( Difficulty ) ) | |
| 250 | PORT_DIPNAME( 0x18, 0x18, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW2:4,5") | |
| 251 | PORT_DIPSETTING( 0x18, "20k and every 70k" ) | |
| 252 | PORT_DIPSETTING( 0x10, "100k and every 100k" ) | |
| 253 | PORT_DIPSETTING( 0x08, "50k only" ) | |
| 254 | PORT_DIPSETTING( 0x00, "100k only" ) | |
| 255 | PORT_DIPNAME( 0x60, 0x40, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW2:6,7") | |
| 299 | 256 | PORT_DIPSETTING( 0x60, DEF_STR( Easy ) ) |
| 300 | 257 | PORT_DIPSETTING( 0x40, DEF_STR( Normal ) ) |
| 301 | 258 | PORT_DIPSETTING( 0x20, DEF_STR( Hard ) ) |
| 302 | 259 | PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) |
| 303 | PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) ) | |
| 260 | PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW2:8") | |
| 304 | 261 | PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) |
| 305 | 262 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 306 | 263 | |
| 307 | 264 | PORT_START("DSW3") |
| 308 | PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) ) | |
| 265 | PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW3:1") | |
| 309 | 266 | PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) |
| 310 | 267 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 311 | PORT_DIPNAME( 0x02, 0x02, "Upright Controls" ) | |
| 268 | PORT_DIPNAME( 0x02, 0x02, "Upright Controls" ) PORT_DIPLOCATION("SW3:2") | |
| 312 | 269 | PORT_DIPSETTING( 0x02, DEF_STR( Single ) ) |
| 313 | 270 | PORT_DIPSETTING( 0x00, DEF_STR( Dual ) ) |
| 314 | PORT_SERVICE( 0x04, IP_ACTIVE_LOW ) | |
| 315 | PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) | |
| 316 | PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) | |
| 317 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) | |
| 271 | PORT_SERVICE_DIPLOC( 0x04, IP_ACTIVE_LOW, "SW3:3" ) | |
| 272 | PORT_DIPUNKNOWN_DIPLOC( 0x08, 0x08, "SW3:4" ) /* Manual says it's unused */ | |
| 318 | 273 | PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 319 | 274 | INPUT_PORTS_END |
| 320 | 275 |
| r4470 | r4471 | |
|---|---|---|
| 30 | 30 | #include "cpu/z80/z80.h" |
| 31 | 31 | #include "machine/eeprom.h" |
| 32 | 32 | #include "sound/k054539.h" |
| 33 | #include "konamipt.h" | |
| 33 | 34 | |
| 34 | 35 | VIDEO_START(gaiapols); |
| 35 | 36 | VIDEO_START(dadandrn); |
| r4470 | r4471 | |
| 314 | 315 | } |
| 315 | 316 | } |
| 316 | 317 | |
| 317 | static READ16_HANDLER( player1_r ) | |
| 318 | { | |
| 319 | return input_port_read(space->machine, "P1") | (input_port_read(space->machine, "P2")<<8); | |
| 320 | } | |
| 321 | ||
| 322 | static READ16_HANDLER( player2_r ) | |
| 323 | { | |
| 324 | return input_port_read(space->machine, "P3") | (input_port_read(space->machine, "P4")<<8); | |
| 325 | } | |
| 326 | ||
| 327 | static READ16_HANDLER( mmplayer1_r ) | |
| 328 | { | |
| 329 | return input_port_read(space->machine, "P1") | (input_port_read(space->machine, "P3")<<8); | |
| 330 | } | |
| 331 | ||
| 332 | static READ16_HANDLER( mmplayer2_r ) | |
| 333 | { | |
| 334 | return input_port_read(space->machine, "P2") | (input_port_read(space->machine, "P4")<<8); | |
| 335 | } | |
| 336 | ||
| 337 | 318 | static READ16_HANDLER( mmcoins_r ) |
| 338 | 319 | { |
| 339 | 320 | int res = input_port_read(space->machine, "IN0"); |
| r4470 | r4471 | |
| 395 | 376 | AM_RANGE(0x200000, 0x20ffff) AM_READ(SMH_RAM) |
| 396 | 377 | AM_RANGE(0x400000, 0x40ffff) AM_READ(K053247_scattered_word_r) |
| 397 | 378 | AM_RANGE(0x482000, 0x48200f) AM_READ(K055673_rom_word_r) |
| 398 | AM_RANGE(0x494000, 0x494001) AM_READ(player1_r) | |
| 399 | AM_RANGE(0x494002, 0x494003) AM_READ(player2_r) | |
| 379 | AM_RANGE(0x494000, 0x494001) AM_READ_PORT("P1_P2") | |
| 380 | AM_RANGE(0x494002, 0x494003) AM_READ_PORT("P3_P4") | |
| 400 | 381 | AM_RANGE(0x496000, 0x496001) AM_READ(mmcoins_r) |
| 401 | 382 | AM_RANGE(0x496002, 0x496003) AM_READ(mweeprom_r) |
| 402 | 383 | AM_RANGE(0x498014, 0x498015) AM_READ(sound_status_r) |
| r4470 | r4471 | |
| 424 | 405 | AM_RANGE(0x48a000, 0x48a01f) AM_WRITE(K054338_word_w) |
| 425 | 406 | AM_RANGE(0x48c000, 0x48c03f) AM_WRITE(K056832_word_w) |
| 426 | 407 | AM_RANGE(0x490000, 0x490001) AM_WRITE(mweeprom_w) |
| 427 | AM_RANGE(0x492000, 0x492001) AM_WRITE | |
| 408 | AM_RANGE(0x492000, 0x492001) AM_WRITE | |
| 428 | 409 | AM_RANGE(0x49800c, 0x49800d) AM_WRITE(sound_cmd1_w) |
| 429 | 410 | AM_RANGE(0x49800e, 0x49800f) AM_WRITE(sound_cmd2_w) |
| 430 | 411 | AM_RANGE(0x498000, 0x49801f) AM_WRITE(SMH_RAM) |
| r4470 | r4471 | |
| 447 | 428 | AM_RANGE(0x250000, 0x25000f) AM_READ(K053250_0_r) |
| 448 | 429 | AM_RANGE(0x268014, 0x268015) AM_READ(sound_status_r) |
| 449 | 430 | AM_RANGE(0x268000, 0x26801f) AM_READ(SMH_RAM) |
| 450 | AM_RANGE(0x274000, 0x274001) AM_READ(mmplayer1_r) | |
| 451 | AM_RANGE(0x274002, 0x274003) AM_READ(mmplayer2_r) | |
| 431 | AM_RANGE(0x274000, 0x274001) AM_READ_PORT("P1_P3") | |
| 432 | AM_RANGE(0x274002, 0x274003) AM_READ_PORT("P2_P4") | |
| 452 | 433 | AM_RANGE(0x278000, 0x278001) AM_READ(mmcoins_r) |
| 453 | 434 | AM_RANGE(0x278002, 0x278003) AM_READ(vseeprom_r) |
| 454 | AM_RANGE(0x27c000, 0x27c001) AM_READ | |
| 435 | AM_RANGE(0x27c000, 0x27c001) AM_READ | |
| 455 | 436 | AM_RANGE(0x300000, 0x301fff) AM_READ(K056832_ram_word_r) |
| 456 | 437 | AM_RANGE(0x302000, 0x303fff) AM_READ(K056832_ram_word_r) // tilemap RAM mirror read(essential) |
| 457 | 438 | AM_RANGE(0x310000, 0x311fff) AM_READ(K056832_mw_rom_word_r) |
| r4470 | r4471 | |
| 503 | 484 | AM_RANGE(0x25c000, 0x25c03f) AM_READ(K055550_word_r) |
| 504 | 485 | AM_RANGE(0x268014, 0x268015) AM_READ(sound_status_r) |
| 505 | 486 | AM_RANGE(0x268000, 0x26801f) AM_READ(SMH_RAM) |
| 506 | AM_RANGE(0x274000, 0x274001) AM_READ(mmplayer1_r) | |
| 507 | AM_RANGE(0x274002, 0x274003) AM_READ(mmplayer2_r) | |
| 487 | AM_RANGE(0x274000, 0x274001) AM_READ_PORT("P1_P3") | |
| 488 | AM_RANGE(0x274002, 0x274003) AM_READ_PORT("P2_P4") | |
| 508 | 489 | AM_RANGE(0x278000, 0x278001) AM_READ(mmcoins_r) |
| 509 | 490 | AM_RANGE(0x278002, 0x278003) AM_READ(vseeprom_r) |
| 510 | AM_RANGE(0x27c000, 0x27c001) AM_READ | |
| 491 | AM_RANGE(0x27c000, 0x27c001) AM_READ | |
| 511 | 492 | AM_RANGE(0x300000, 0x301fff) AM_READ(K056832_ram_word_r) |
| 512 | 493 | AM_RANGE(0x302000, 0x303fff) AM_READ(K056832_ram_word_r) // tilemap RAM mirror read(essential) |
| 513 | 494 | AM_RANGE(0x304000, 0x3041ff) AM_READ(SMH_RAM) |
| r4470 | r4471 | |
| 606 | 587 | AM_RANGE(0x300000, 0x3fffff) AM_READ(SMH_ROM) // data ROM |
| 607 | 588 | AM_RANGE(0x402000, 0x40200f) AM_READ(K055673_rom_word_r) // sprite ROM readback |
| 608 | 589 | AM_RANGE(0x412000, 0x412001) AM_READ(mccontrol_r) |
| 609 | AM_RANGE(0x414000, 0x414001) AM_READ(player1_r) | |
| 610 | AM_RANGE(0x414002, 0x414003) AM_READ(player2_r) | |
| 590 | AM_RANGE(0x414000, 0x414001) AM_READ_PORT("P1_P2") | |
| 591 | AM_RANGE(0x414002, 0x414003) AM_READ_PORT("P3_P4") | |
| 611 | 592 | AM_RANGE(0x416000, 0x416001) AM_READ(mmcoins_r) // coin |
| 612 | 593 | AM_RANGE(0x416002, 0x416003) AM_READ(mweeprom_r) // eeprom read |
| 613 | 594 | AM_RANGE(0x418014, 0x418015) AM_READ(sound_status_r) // z80 status |
| r4470 | r4471 | |
| 703 | 684 | AM_RANGE(0x6a0000, 0x6a0001) AM_WRITE(mmeeprom_w) |
| 704 | 685 | AM_RANGE(0x6c0000, 0x6c0001) AM_WRITE(ddd_053936_enable_w) |
| 705 | 686 | AM_RANGE(0x6e0000, 0x6e0001) AM_WRITE(sound_irq_w) |
| 706 | AM_RANGE(0xe00000, 0xe00001) AM_WRITE | |
| 687 | AM_RANGE(0xe00000, 0xe00001) AM_WRITE | |
| 707 | 688 | ADDRESS_MAP_END |
| 708 | 689 | |
| 709 | 690 | /* Gaiapolis */ |
| r4470 | r4471 | |
| 763 | 744 | AM_RANGE(0x6a0000, 0x6a0001) AM_WRITE(mmeeprom_w) |
| 764 | 745 | AM_RANGE(0x6c0000, 0x6c0001) AM_WRITE(ddd_053936_enable_w) |
| 765 | 746 | AM_RANGE(0x6e0000, 0x6e0001) AM_WRITE(sound_irq_w) |
| 766 | AM_RANGE(0xe00000, 0xe00001) AM_WRITE | |
| 747 | AM_RANGE(0xe00000, 0xe00001) AM_WRITE | |
| 767 | 748 | ADDRESS_MAP_END |
| 768 | 749 | |
| 769 | 750 | /**********************************************************************************/ |
| r4470 | r4471 | |
| 802 | 783 | ADDRESS_MAP_END |
| 803 | 784 | |
| 804 | 785 | static ADDRESS_MAP_START( sound_writemem, ADDRESS_SPACE_PROGRAM, 8 ) |
| 805 | AM_RANGE(0x0000, 0xbfff) AM_WRITE | |
| 786 | AM_RANGE(0x0000, 0xbfff) AM_WRITE | |
| 806 | 787 | AM_RANGE(0xc000, 0xdfff) AM_WRITE(SMH_RAM) |
| 807 | 788 | AM_RANGE(0xe000, 0xe22f) AM_DEVWRITE("konami1", k054539_w) |
| 808 | 789 | AM_RANGE(0xe230, 0xe3ff) AM_WRITE(SMH_RAM) |
| r4470 | r4471 | |
| 810 | 791 | AM_RANGE(0xe630, 0xe7ff) AM_WRITE(SMH_RAM) |
| 811 | 792 | AM_RANGE(0xf000, 0xf000) AM_WRITE(soundlatch3_w) |
| 812 | 793 | AM_RANGE(0xf800, 0xf800) AM_WRITE(sound_bankswitch_w) |
| 813 | AM_RANGE(0xfff0, 0xfff3) AM_WRITE | |
| 794 | AM_RANGE(0xfff0, 0xfff3) AM_WRITE | |
| 814 | 795 | ADDRESS_MAP_END |
| 815 | 796 | |
| 816 | 797 | static const k054539_interface k054539_config = |
| r4470 | r4471 | |
| 1124 | 1105 | PORT_DIPSETTING( 0x40, "2" ) |
| 1125 | 1106 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) |
| 1126 | 1107 | |
| 1127 | PORT_START("P1") | |
| 1128 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) | |
| 1129 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) | |
| 1130 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) | |
| 1131 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) | |
| 1132 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) | |
| 1133 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) | |
| 1134 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) | |
| 1135 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 ) | |
| 1108 | PORT_START("P1_P2") | |
| 1109 | KONAMI16_LSB(1, IPT_BUTTON3, IPT_START1 ) | |
| 1110 | KONAMI16_MSB(2, IPT_BUTTON3, IPT_START2 ) | |
| 1136 | 1111 | |
| 1137 | PORT_START("P2") | |
| 1138 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) | |
| 1139 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) | |
| 1140 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) | |
| 1141 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) | |
| 1142 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) | |
| 1143 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) | |
| 1144 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) | |
| 1145 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 ) | |
| 1146 | ||
| 1147 | PORT_START("P3") | |
| 1148 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(3) | |
| 1149 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(3) | |
| 1150 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(3) | |
| 1151 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(3) | |
| 1152 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3) | |
| 1153 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3) | |
| 1154 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(3) | |
| 1155 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START3 ) | |
| 1156 | ||
| 1157 | PORT_START("P4") | |
| 1158 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(4) | |
| 1159 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(4) | |
| 1160 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(4) | |
| 1161 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(4) | |
| 1162 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(4) | |
| 1163 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(4) | |
| 1164 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(4) | |
| 1165 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START4 ) | |
| 1112 | PORT_START("P3_P4") | |
| 1113 | KONAMI16_LSB(3, IPT_BUTTON3, IPT_START3 ) | |
| 1114 | KONAMI16_MSB(4, IPT_BUTTON3, IPT_START4 ) | |
| 1166 | 1115 | INPUT_PORTS_END |
| 1167 | 1116 | |
| 1168 | 1117 | static INPUT_PORTS_START( metamrph ) |
| r4470 | r4471 | |
| 1194 | 1143 | PORT_DIPSETTING( 0x80, DEF_STR( No ) ) |
| 1195 | 1144 | PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) |
| 1196 | 1145 | |
| 1197 | PORT_START("P1") | |
| 1198 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) | |
| 1199 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) | |
| 1200 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) | |
| 1201 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) | |
| 1202 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) | |
| 1203 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) | |
| 1204 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) | |
| 1205 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 ) | |
| 1146 | PORT_START("P1_P3") | |
| 1147 | KONAMI16_LSB(1, IPT_BUTTON3, IPT_START1 ) | |
| 1148 | KONAMI16_MSB(3, IPT_BUTTON3, IPT_START3 ) | |
| 1206 | 1149 | |
| 1207 | PORT_START("P2") | |
| 1208 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) | |
| 1209 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) | |
| 1210 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) | |
| 1211 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) | |
| 1212 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) | |
| 1213 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) | |
| 1214 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) | |
| 1215 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 ) | |
| 1216 | ||
| 1217 | PORT_START("P3") | |
| 1218 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(3) | |
| 1219 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(3) | |
| 1220 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(3) | |
| 1221 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(3) | |
| 1222 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3) | |
| 1223 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3) | |
| 1224 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(3) | |
| 1225 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START3 ) | |
| 1226 | ||
| 1227 | PORT_START("P4") | |
| 1228 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(4) | |
| 1229 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(4) | |
| 1230 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(4) | |
| 1231 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(4) | |
| 1232 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(4) | |
| 1233 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(4) | |
| 1234 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(4) | |
| 1235 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START4 ) | |
| 1150 | PORT_START("P2_P4") | |
| 1151 | KONAMI16_LSB(2, IPT_BUTTON3, IPT_START2 ) | |
| 1152 | KONAMI16_MSB(4, IPT_BUTTON3, IPT_START4 ) | |
| 1236 | 1153 | INPUT_PORTS_END |
| 1237 | 1154 | |
| 1238 | 1155 | static INPUT_PORTS_START( viostorm ) |
| r4470 | r4471 | |
| 1264 | 1181 | PORT_DIPSETTING( 0x00, "3" ) |
| 1265 | 1182 | PORT_DIPSETTING( 0x80, "2" ) |
| 1266 | 1183 | |
| 1267 | PORT_START("P1") | |
| 1268 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) | |
| 1269 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) | |
| 1270 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) | |
| 1271 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) | |
| 1272 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) | |
| 1273 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) | |
| 1274 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) | |
| 1275 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 ) | |
| 1184 | PORT_START("P1_P3") | |
| 1185 | KONAMI16_LSB(1, IPT_BUTTON3, IPT_START1 ) | |
| 1186 | KONAMI16_MSB(3, IPT_BUTTON3, IPT_START3 ) | |
| 1276 | 1187 | |
| 1277 | PORT_START("P2") | |
| 1278 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) | |
| 1279 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) | |
| 1280 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) | |
| 1281 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) | |
| 1282 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) | |
| 1283 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) | |
| 1284 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) | |
| 1285 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 ) | |
| 1286 | ||
| 1287 | PORT_START("P3") | |
| 1288 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(3) | |
| 1289 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(3) | |
| 1290 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(3) | |
| 1291 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(3) | |
| 1292 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3) | |
| 1293 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3) | |
| 1294 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(3) | |
| 1295 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START3 ) | |
| 1296 | ||
| 1297 | PORT_START("P4") | |
| 1298 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(4) | |
| 1299 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(4) | |
| 1300 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(4) | |
| 1301 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(4) | |
| 1302 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(4) | |
| 1303 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(4) | |
| 1304 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(4) | |
| 1305 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START4 ) | |
| 1188 | PORT_START("P2_P4") | |
| 1189 | KONAMI16_LSB(2, IPT_BUTTON3, IPT_START2 ) | |
| 1190 | KONAMI16_MSB(4, IPT_BUTTON3, IPT_START4 ) | |
| 1306 | 1191 | INPUT_PORTS_END |
| 1307 | 1192 | |
| 1308 | 1193 | static INPUT_PORTS_START( dadandrn ) |
| r4470 | r4471 | |
| 1331 | 1216 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) |
| 1332 | 1217 | |
| 1333 | 1218 | PORT_START("P1") |
| 1334 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) | |
| 1335 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) | |
| 1336 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) | |
| 1337 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) | |
| 1338 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) | |
| 1339 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) | |
| 1340 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) | |
| 1341 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 ) | |
| 1219 | KONAMI8_B123_START(1) | |
| 1342 | 1220 | |
| 1343 | 1221 | PORT_START("P2") |
| 1344 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) | |
| 1345 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) | |
| 1346 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) | |
| 1347 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) | |
| 1348 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) | |
| 1349 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) | |
| 1350 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) | |
| 1351 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 ) | |
| 1222 | KONAMI8_B123_START(2) | |
| 1352 | 1223 | |
| 1353 | 1224 | PORT_START("P3") |
| 1354 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(3) | |
| 1355 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(3) | |
| 1356 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(3) | |
| 1357 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(3) | |
| 1358 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3) | |
| 1359 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3) | |
| 1360 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(3) | |
| 1361 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START3 ) | |
| 1225 | KONAMI8_B123_START(3) | |
| 1362 | 1226 | |
| 1363 | 1227 | PORT_START("P4") |
| 1364 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(4) | |
| 1365 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(4) | |
| 1366 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(4) | |
| 1367 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(4) | |
| 1368 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(4) | |
| 1369 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(4) | |
| 1370 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(4) | |
| 1371 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START4 ) | |
| 1228 | KONAMI8_B123_START(4) | |
| 1372 | 1229 | INPUT_PORTS_END |
| 1373 | 1230 | |
| 1374 | 1231 | static INPUT_PORTS_START( martchmp ) |
| r4470 | r4471 | |
| 1396 | 1253 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) |
| 1397 | 1254 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) |
| 1398 | 1255 | |
| 1399 | PORT_START("P1") | |
| 1400 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) | |
| 1401 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) | |
| 1402 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) | |
| 1403 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) | |
| 1404 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) | |
| 1405 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) | |
| 1406 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) | |
| 1407 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 ) | |
| 1256 | PORT_START("P1_P2") | |
| 1257 | KONAMI16_LSB(1, IPT_BUTTON3, IPT_START1 ) | |
| 1258 | KONAMI16_MSB(2, IPT_BUTTON3, IPT_START2 ) | |
| 1408 | 1259 | |
| 1409 | PORT_START("P2") | |
| 1410 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) | |
| 1411 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) | |
| 1412 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) | |
| 1413 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) | |
| 1414 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) | |
| 1415 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) | |
| 1416 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) | |
| 1417 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 ) | |
| 1418 | ||
| 1419 | PORT_START("P3") | |
| 1420 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(3) | |
| 1421 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(3) | |
| 1422 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(3) | |
| 1423 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(3) | |
| 1424 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3) | |
| 1425 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3) | |
| 1426 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(3) | |
| 1427 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START3 ) | |
| 1428 | ||
| 1429 | PORT_START("P4") | |
| 1430 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(4) | |
| 1431 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(4) | |
| 1432 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(4) | |
| 1433 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(4) | |
| 1434 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(4) | |
| 1435 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(4) | |
| 1436 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(4) | |
| 1437 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START4 ) | |
| 1260 | PORT_START("P3_P4") | |
| 1261 | KONAMI16_LSB(3, IPT_BUTTON3, IPT_START3 ) | |
| 1262 | KONAMI16_MSB(4, IPT_BUTTON3, IPT_START4 ) | |
| 1438 | 1263 | INPUT_PORTS_END |
| 1439 | 1264 | |
| 1440 | 1265 | /**********************************************************************************/ |
| r4470 | r4471 | |
| 1785 | 1610 | ROM_START( mtlchamp ) |
| 1786 | 1611 | /* main program */ |
| 1787 | 1612 | ROM_REGION( 0x400000, "maincpu", 0 ) |
| 1788 | ROM_LOAD16_BYTE( "234eab01.20f", 0x000000, 0x40000, CRC(7c4d1e50) SHA1(f943b955aa66f0892c20df7a94fc8bf070bf4624) ) | |
| 1789 | ROM_LOAD16_BYTE( "234eab02.20g", 0x000001, 0x40000, CRC(d8bc85c9) SHA1(40a13b4139dd24c06378c6bd982ef3f5fd646dcc) ) | |
| 1613 | ROM_LOAD16_BYTE( "234eab01.20f", 0x000000, 0x40000, CRC(7c4d1e50) SHA1(f943b955aa66f0892c20df7a94fc8bf070bf4624) ) | |
| 1614 | ROM_LOAD16_BYTE( "234eab02.20g", 0x000001, 0x40000, CRC(d8bc85c9) SHA1(40a13b4139dd24c06378c6bd982ef3f5fd646dcc) ) | |
| 1790 | 1615 | ROM_LOAD16_BYTE( "234_d03.19f", 0x300000, 0x80000, CRC(abb577c6) SHA1(493f11a10a4d5b62d755ff8274e77d898544944f) ) |
| 1791 | 1616 | ROM_LOAD16_BYTE( "234_d04.19g", 0x300001, 0x80000, CRC(030a1925) SHA1(03783488950c9f27af5948e7b9f6a609c2df6e0b) ) |
| 1792 | 1617 | |
| r4470 | r4471 | |
| 1819 | 1644 | ROM_START( mtlchmp1 ) |
| 1820 | 1645 | /* main program */ |
| 1821 | 1646 | ROM_REGION( 0x400000, "maincpu", 0 ) |
| 1822 | ROM_LOAD16_BYTE( "234eaa01.20f", 0x000000, 0x40000, CRC(8fa731db) SHA1(e2ed81762070a764f51aae36ce03859b5d86520d) ) | |
| 1823 | ROM_LOAD16_BYTE( "234eaa02.20g", 0x000001, 0x40000, CRC(e7b50b54) SHA1(594391a37479e6973aadd1fc866671c306a75497) ) | |
| 1647 | ROM_LOAD16_BYTE( "234eaa01.20f", 0x000000, 0x40000, CRC(8fa731db) SHA1(e2ed81762070a764f51aae36ce03859b5d86520d) ) | |
| 1648 | ROM_LOAD16_BYTE( "234eaa02.20g", 0x000001, 0x40000, CRC(e7b50b54) SHA1(594391a37479e6973aadd1fc866671c306a75497) ) | |
| 1824 | 1649 | ROM_LOAD16_BYTE( "234_d03.19f", 0x300000, 0x80000, CRC(abb577c6) SHA1(493f11a10a4d5b62d755ff8274e77d898544944f) ) |
| 1825 | 1650 | ROM_LOAD16_BYTE( "234_d04.19g", 0x300001, 0x80000, CRC(030a1925) SHA1(03783488950c9f27af5948e7b9f6a609c2df6e0b) ) |
| 1826 | 1651 | |
| r4470 | r4471 | |
| 2090 | 1915 | ROM_START( mmaulers ) |
| 2091 | 1916 | /* main program */ |
| 2092 | 1917 | ROM_REGION( 0x400000, "maincpu", 0 ) |
| 2093 | ROM_LOAD16_BYTE( "170eaa07.24m", 0x000000, 0x80000, CRC(5458bd93) SHA1(d27a29076be3c745e3efdb1c528b07bd5d8aff1c) ) | |
| 2094 | ROM_LOAD16_BYTE( "170eaa09.19l", 0x000001, 0x80000, CRC(99c95c7b) SHA1(7f22930c2fe21205ccd01b80566d6bc31fea34d2) ) | |
| 1918 | ROM_LOAD16_BYTE( "170eaa07.24m", 0x000000, 0x80000, CRC(5458bd93) SHA1(d27a29076be3c745e3efdb1c528b07bd5d8aff1c) ) | |
| 1919 | ROM_LOAD16_BYTE( "170eaa09.19l", 0x000001, 0x80000, CRC(99c95c7b) SHA1(7f22930c2fe21205ccd01b80566d6bc31fea34d2) ) | |
| 2095 | 1920 | ROM_LOAD16_BYTE( "170a08.21m", 0x100000, 0x40000, CRC(03c59ba2) SHA1(041473fe5f9004bfb7ca767c2004154c27f726ff) ) |
| 2096 | 1921 | ROM_LOAD16_BYTE( "170a10.17l", 0x100001, 0x40000, CRC(8a340909) SHA1(3e2ef2642e792cdc38b3442df67377ed9e70d3ab) ) |
| 2097 | 1922 | |
| r4470 | r4471 | |
| 2204 | 2029 | GAME( 1993, gaiapols, 0, gaiapols, dadandrn, 0, ROT90, "Konami", "Gaiapolis (ver EAF)", GAME_IMPERFECT_GRAPHICS ) |
| 2205 | 2030 | GAME( 1993, gaiapolu, gaiapols, gaiapols, dadandrn, 0, ROT90, "Konami", "Gaiapolis (ver UAF)", GAME_IMPERFECT_GRAPHICS ) |
| 2206 | 2031 | GAME( 1993, gaiapolj, gaiapols, gaiapols, dadandrn, 0, ROT90, "Konami", "Gaiapolis (ver JAF)", GAME_IMPERFECT_GRAPHICS ) |
| 2207 |
| r4470 | r4471 | |
|---|---|---|
| 251 | 251 | AM_RANGE(0x0000, 0xbfff) AM_WRITE(SMH_ROM) |
| 252 | 252 | AM_RANGE(0xc000, 0xdfff) AM_WRITE(SMH_RAM) |
| 253 | 253 | AM_RANGE(0xf000, 0xf000) AM_WRITE(fromance_portselect_w) |
| 254 | AM_RANGE(0xf001, 0xf001) AM_WRITE | |
| 254 | AM_RANGE(0xf001, 0xf001) AM_WRITE | |
| 255 | 255 | AM_RANGE(0xf002, 0xf002) AM_WRITE(fromance_coinctr_w) |
| 256 | 256 | AM_RANGE(0xf003, 0xf003) AM_WRITE(fromance_commanddata_w) |
| 257 | 257 | ADDRESS_MAP_END |
| r4470 | r4471 | |
| 260 | 260 | static ADDRESS_MAP_START( fromance_readmem_main, ADDRESS_SPACE_PROGRAM, 8 ) |
| 261 | 261 | AM_RANGE(0x0000, 0x7fff) AM_READ(SMH_ROM) |
| 262 | 262 | AM_RANGE(0xc000, 0xdfff) AM_READ(SMH_RAM) |
| 263 | AM_RANGE(0x9e89, 0x9e89) AM_READ | |
| 263 | AM_RANGE(0x9e89, 0x9e89) AM_READ | |
| 264 | 264 | AM_RANGE(0xe000, 0xe000) AM_READ_PORT("SERVICE") |
| 265 | 265 | AM_RANGE(0xe001, 0xe001) AM_READ(fromance_keymatrix_r) |
| 266 | 266 | AM_RANGE(0xe002, 0xe002) AM_READ_PORT("COIN") |
| r4470 | r4471 | |
| 330 | 330 | ADDRESS_MAP_GLOBAL_MASK(0xff) |
| 331 | 331 | AM_RANGE(0x10, 0x10) AM_WRITE(fromance_crtc_data_w) |
| 332 | 332 | AM_RANGE(0x11, 0x11) AM_WRITE(fromance_crtc_register_w) |
| 333 | AM_RANGE(0x12, 0x12) AM_READ | |
| 333 | AM_RANGE(0x12, 0x12) AM_READ | |
| 334 | 334 | AM_RANGE(0xe0, 0xe0) AM_WRITE(fromance_rombank_w) |
| 335 | 335 | AM_RANGE(0xe1, 0xe1) AM_READWRITE(fromance_busycheck_sub_r, fromance_gfxreg_w) |
| 336 | 336 | AM_RANGE(0xe2, 0xe5) AM_WRITE(fromance_scroll_w) |
| r4470 | r4471 | |
| 344 | 344 | ADDRESS_MAP_GLOBAL_MASK(0xff) |
| 345 | 345 | AM_RANGE(0x10, 0x10) AM_WRITE(fromance_crtc_data_w) |
| 346 | 346 | AM_RANGE(0x11, 0x11) AM_WRITE(fromance_crtc_register_w) |
| 347 | AM_RANGE(0x12, 0x12) AM_READ | |
| 347 | AM_RANGE(0x12, 0x12) AM_READ | |
| 348 | 348 | AM_RANGE(0x20, 0x20) AM_WRITE(fromance_rombank_w) |
| 349 | 349 | AM_RANGE(0x21, 0x21) AM_READWRITE(fromance_busycheck_sub_r, fromance_gfxreg_w) |
| 350 | 350 | AM_RANGE(0x22, 0x25) AM_WRITE(fromance_scroll_w) |
| r4470 | r4471 | |
| 358 | 358 | ADDRESS_MAP_GLOBAL_MASK(0xff) |
| 359 | 359 | AM_RANGE(0x10, 0x10) AM_WRITE(fromance_crtc_data_w) |
| 360 | 360 | AM_RANGE(0x11, 0x11) AM_WRITE(fromance_crtc_register_w) |
| 361 | AM_RANGE(0x12, 0x12) AM_READ | |
| 361 | AM_RANGE(0x12, 0x12) AM_READ | |
| 362 | 362 | AM_RANGE(0x20, 0x20) AM_WRITE(fromance_rombank_w) |
| 363 | 363 | AM_RANGE(0x21, 0x21) AM_READWRITE(fromance_busycheck_sub_r, fromance_gfxreg_w) |
| 364 | 364 | AM_RANGE(0x22, 0x25) AM_WRITE(fromance_scroll_w) |
| r4470 | r4471 | |
|---|---|---|
| 158 | 158 | |
| 159 | 159 | static INPUT_PORTS_START( skykid ) |
| 160 | 160 | PORT_START("DSWA") /* DSW A */ |
| 161 | PORT_SERVICE( 0x80, IP_ACTIVE_LOW ) | |
| 162 | PORT_DIPNAME( 0x60, 0x60, DEF_STR( Coin_A ) ) | |
| 161 | PORT_SERVICE_DIPLOC( 0x80, IP_ACTIVE_LOW, "SWA:1" ) | |
| 162 | PORT_DIPNAME( 0x60, 0x60, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SWA:3,2") | |
| 163 | 163 | PORT_DIPSETTING( 0x00, DEF_STR( 3C_1C ) ) |
| 164 | 164 | PORT_DIPSETTING( 0x20, DEF_STR( 2C_1C ) ) |
| 165 | 165 | PORT_DIPSETTING( 0x60, DEF_STR( 1C_1C ) ) |
| 166 | 166 | PORT_DIPSETTING( 0x40, DEF_STR( 1C_2C ) ) |
| 167 | PORT_DIPNAME( 0x10, 0x10, DEF_STR( Demo_Sounds ) ) | |
| 167 | PORT_DIPNAME( 0x10, 0x10, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SWA:4") | |
| 168 | 168 | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 169 | 169 | PORT_DIPSETTING( 0x10, DEF_STR( On ) ) |
| 170 | PORT_DIPNAME( 0x08, 0x08, "Round Skip" ) | |
| 170 | PORT_DIPNAME( 0x08, 0x08, "Round Skip" ) PORT_DIPLOCATION("SWA:5") | |
| 171 | 171 | PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) |
| 172 | 172 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 173 | PORT_DIPNAME( 0x04, 0x04, "Freeze" ) | |
| 173 | PORT_DIPNAME( 0x04, 0x04, "Freeze" ) PORT_DIPLOCATION("SWA:6") | |
| 174 | 174 | PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) |
| 175 | 175 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 176 | PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coin_B ) ) | |
| 176 | PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SWA:8,7") | |
| 177 | 177 | PORT_DIPSETTING( 0x00, DEF_STR( 3C_1C ) ) |
| 178 | 178 | PORT_DIPSETTING( 0x01, DEF_STR( 2C_1C ) ) |
| 179 | 179 | PORT_DIPSETTING( 0x03, DEF_STR( 1C_1C ) ) |
| 180 | 180 | PORT_DIPSETTING( 0x02, DEF_STR( 1C_2C ) ) |
| 181 | 181 | |
| 182 | 182 | PORT_START("DSWB") /* DSW B */ |
| 183 | PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Lives ) ) | |
| 183 | PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Lives ) ) PORT_DIPLOCATION("SWB:2,1") | |
| 184 | 184 | PORT_DIPSETTING( 0x80, "1" ) |
| 185 | 185 | PORT_DIPSETTING( 0x40, "2" ) |
| 186 | 186 | PORT_DIPSETTING( 0xc0, "3" ) |
| 187 | 187 | PORT_DIPSETTING( 0x00, "5" ) |
| 188 | PORT_DIPNAME( 0x30, 0x30, DEF_STR( Bonus_Life ) ) | |
| 188 | PORT_DIPNAME( 0x30, 0x30, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SWB:4,3") | |
| 189 | 189 | PORT_DIPSETTING( 0x00, "20k every 80k" ) |
| 190 | 190 | PORT_DIPSETTING( 0x10, "20k and 80k" ) |
| 191 | 191 | PORT_DIPSETTING( 0x20, "30k every 90k" ) |
| 192 | 192 | PORT_DIPSETTING( 0x30, "30k and 90k" ) |
| 193 | PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) | |
| 194 | PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) | |
| 195 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) | |
| 196 | PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) | |
| 197 | PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) | |
| 198 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) | |
| 199 | PORT_DIPNAME( 0x02, 0x02, "Allow Buy In" ) | |
| 193 | PORT_DIPUNKNOWN_DIPLOC( 0x08, 0x08, "SWB:5" ) | |
| 194 | PORT_DIPUNKNOWN_DIPLOC( 0x04, 0x04, "SWB:6" ) | |
| 195 | PORT_DIPNAME( 0x02, 0x02, "Allow Buy In" ) PORT_DIPLOCATION("SWB:7") | |
| 200 | 196 | PORT_DIPSETTING( 0x00, DEF_STR( No ) ) |
| 201 | 197 | PORT_DIPSETTING( 0x02, DEF_STR( Yes ) ) |
| 202 | PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) ) | |
| 198 | PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SWB:8") | |
| 203 | 199 | PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) |
| 204 | 200 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 205 | 201 | |
| r4470 | r4471 | |
| 237 | 233 | |
| 238 | 234 | static INPUT_PORTS_START( skykids ) |
| 239 | 235 | PORT_START("DSWA") /* DSW A */ |
| 240 | PORT_SERVICE( 0x80, IP_ACTIVE_LOW ) | |
| 241 | PORT_DIPNAME( 0x60, 0x60, DEF_STR( Coin_A ) ) | |
| 236 | PORT_SERVICE_DIPLOC( 0x80, IP_ACTIVE_LOW, "SWA:1" ) | |
| 237 | PORT_DIPNAME( 0x60, 0x60, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SWA:3,2") | |
| 242 | 238 | PORT_DIPSETTING( 0x00, DEF_STR( 3C_1C ) ) |
| 243 | 239 | PORT_DIPSETTING( 0x20, DEF_STR( 2C_1C ) ) |
| 244 | 240 | PORT_DIPSETTING( 0x60, DEF_STR( 1C_1C ) ) |
| 245 | 241 | PORT_DIPSETTING( 0x40, DEF_STR( 1C_2C ) ) |
| 246 | PORT_DIPNAME( 0x10, 0x10, DEF_STR( Demo_Sounds ) ) | |
| 242 | PORT_DIPNAME( 0x10, 0x10, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SWA:4") | |
| 247 | 243 | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 248 | 244 | PORT_DIPSETTING( 0x10, DEF_STR( On ) ) |
| 249 | PORT_DIPNAME( 0x08, 0x08, "Round Select" ) | |
| 245 | PORT_DIPNAME( 0x08, 0x08, "Round Select" ) PORT_DIPLOCATION("SWA:5") | |
| 250 | 246 | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 251 | 247 | PORT_DIPSETTING( 0x08, DEF_STR( On ) ) |
| 252 | PORT_DIPNAME( 0x04, 0x04, "Freeze" ) | |
| 248 | PORT_DIPNAME( 0x04, 0x04, "Freeze" ) PORT_DIPLOCATION("SWA:6") | |
| 253 | 249 | PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) |
| 254 | 250 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 255 | PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coin_B ) ) | |
| 251 | PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SWA:8,7") | |
| 256 | 252 | PORT_DIPSETTING( 0x00, DEF_STR( 3C_1C ) ) |
| 257 | 253 | PORT_DIPSETTING( 0x01, DEF_STR( 2C_1C ) ) |
| 258 | 254 | PORT_DIPSETTING( 0x03, DEF_STR( 1C_1C ) ) |
| 259 | 255 | PORT_DIPSETTING( 0x02, DEF_STR( 1C_2C ) ) |
| 260 | 256 | |
| 261 | 257 | PORT_START("DSWB") /* DSW B */ |
| 262 | PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Lives ) ) | |
| 258 | PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Lives ) ) PORT_DIPLOCATION("SWB:2,1") | |
| 263 | 259 | PORT_DIPSETTING( 0x80, "1" ) |
| 264 | 260 | PORT_DIPSETTING( 0x40, "2" ) |
| 265 | 261 | PORT_DIPSETTING( 0xc0, "3" ) |
| 266 | 262 | PORT_DIPSETTING( 0x00, "5" ) |
| 267 | PORT_DIPNAME( 0x30, 0x30, DEF_STR( Bonus_Life ) ) | |
| 263 | PORT_DIPNAME( 0x30, 0x30, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SWB:4,3") | |
| 268 | 264 | PORT_DIPSETTING( 0x00, "30k every 80k" ) |
| 269 | 265 | PORT_DIPSETTING( 0x10, "30k and 80k" ) |
| 270 | 266 | PORT_DIPSETTING( 0x20, "40k every 90k" ) |
| 271 | 267 | PORT_DIPSETTING( 0x30, "40k and 90k" ) |
| 272 | PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) | |
| 273 | PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) | |
| 274 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) | |
| 275 | PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) | |
| 276 | PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) | |
| 277 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) | |
| 278 | PORT_DIPNAME( 0x02, 0x02, "Allow Buy In" ) | |
| 268 | PORT_DIPUNKNOWN_DIPLOC( 0x08, 0x08, "SWB:5" ) | |
| 269 | PORT_DIPUNKNOWN_DIPLOC( 0x04, 0x04, "SWB:6" ) | |
| 270 | PORT_DIPNAME( 0x02, 0x02, "Allow Buy In" ) PORT_DIPLOCATION("SWB:7") | |
| 279 | 271 | PORT_DIPSETTING( 0x00, DEF_STR( No ) ) |
| 280 | 272 | PORT_DIPSETTING( 0x02, DEF_STR( Yes ) ) |
| 281 | PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) ) | |
| 273 | PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SWB:8") | |
| 282 | 274 | PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) |
| 283 | 275 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 284 | 276 | |
| r4470 | r4471 | |
| 316 | 308 | |
| 317 | 309 | static INPUT_PORTS_START( drgnbstr ) |
| 318 | 310 | PORT_START("DSWA") /* DSW A */ |
| 319 | PORT_SERVICE( 0x80, IP_ACTIVE_LOW ) | |
| 320 | PORT_DIPNAME( 0x60, 0x60, DEF_STR( Coin_A ) ) | |
| 311 | PORT_SERVICE_DIPLOC( 0x80, IP_ACTIVE_LOW, "SWA:1" ) | |
| 312 | PORT_DIPNAME( 0x60, 0x60, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SWA:3,2") | |
| 321 | 313 | PORT_DIPSETTING( 0x00, DEF_STR( 3C_1C ) ) |
| 322 | 314 | PORT_DIPSETTING( 0x20, DEF_STR( 2C_1C ) ) |
| 323 | 315 | PORT_DIPSETTING( 0x60, DEF_STR( 1C_1C ) ) |
| 324 | 316 | PORT_DIPSETTING( 0x40, DEF_STR( 1C_2C ) ) |
| 325 | PORT_DIPNAME( 0x10, 0x10, DEF_STR( Demo_Sounds ) ) | |
| 317 | PORT_DIPNAME( 0x10, 0x10, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SWA:4") | |
| 326 | 318 | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 327 | 319 | PORT_DIPSETTING( 0x10, DEF_STR( On ) ) |
| 328 | PORT_DIPNAME( 0x08, 0x08, "Round Skip" ) | |
| 320 | PORT_DIPNAME( 0x08, 0x08, "Round Skip" ) PORT_DIPLOCATION("SWA:5") | |
| 329 | 321 | PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) |
| 330 | 322 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 331 | PORT_DIPNAME( 0x04, 0x04, "Freeze" ) | |
| 323 | PORT_DIPNAME( 0x04, 0x04, "Freeze" ) PORT_DIPLOCATION("SWA:6") | |
| 332 | 324 | PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) |
| 333 | 325 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 334 | PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coin_B ) ) | |
| 326 | PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SWA:8,7") | |
| 335 | 327 | PORT_DIPSETTING( 0x00, DEF_STR( 3C_1C ) ) |
| 336 | 328 | PORT_DIPSETTING( 0x01, DEF_STR( 2C_1C ) ) |
| 337 | 329 | PORT_DIPSETTING( 0x03, DEF_STR( 1C_1C ) ) |
| 338 | 330 | PORT_DIPSETTING( 0x02, DEF_STR( 1C_2C ) ) |
| 339 | 331 | |
| 340 | 332 | PORT_START("DSWB") /* DSW B */ |
| 341 | PORT_DIPNAME( 0x80, 0x80, "Spurt Time" ) | |
| 333 | PORT_DIPNAME( 0x80, 0x80, "Spurt Time" ) PORT_DIPLOCATION("SWB:1") | |
| 342 | 334 | PORT_DIPSETTING( 0x80, DEF_STR( Normal ) ) |
| 343 | 335 | PORT_DIPSETTING( 0x00, "Difficult" ) |
| 344 | PORT_DIPNAME( 0x40, 0x40, "Level of Monster" ) | |
| 336 | PORT_DIPNAME( 0x40, 0x40, "Level of Monster" ) PORT_DIPLOCATION("SWB:2") | |
| 345 | 337 | PORT_DIPSETTING( 0x40, DEF_STR( Normal ) ) |
| 346 | 338 | PORT_DIPSETTING( 0x00, "Difficult" ) |
| 347 | PORT_DIPNAME( 0x30, 0x30, "Starting Vitality" ) | |
| 339 | PORT_DIPNAME( 0x30, 0x30, "Starting Vitality" ) PORT_DIPLOCATION("SWB:4,3") | |
| 348 | 340 | PORT_DIPSETTING( 0x00, "160" ) |
| 349 | 341 | PORT_DIPSETTING( 0x30, "128" ) |
| 350 | 342 | PORT_DIPSETTING( 0x10, "96" ) |
| 351 | 343 | PORT_DIPSETTING( 0x20, "64" ) |
| 352 | PORT_DIPNAME( 0x0c, 0x0c, "Bonus Vitality" ) /* Clear Mountain, Tower, ect... */ | |
| 344 | PORT_DIPNAME( 0x0c, 0x0c, "Bonus Vitality" ) PORT_DIPLOCATION("SWB:6,5") /* Clear Mountain, Tower, ect... */ | |
| 353 | 345 | PORT_DIPSETTING( 0x00, "64" ) |
| 354 | 346 | PORT_DIPSETTING( 0x08, "48/64" ) |
| 355 | 347 | PORT_DIPSETTING( 0x04, "32/64" ) |
| 356 | 348 | PORT_DIPSETTING( 0x0c, DEF_STR( None ) ) |
| 357 | PORT_DIPNAME( 0x02, 0x02, "Bonus Level" ) /* Clear Round */ | |
| 349 | PORT_DIPNAME( 0x02, 0x02, "Bonus Level" ) PORT_DIPLOCATION("SWB:7") /* Clear Round */ | |
| 358 | 350 | PORT_DIPSETTING( 0x02, "Full" ) |
| 359 | 351 | PORT_DIPSETTING( 0x00, "Partial" ) |
| 360 | PORT_DIPNAME( 0x01, 0x01, DEF_STR( Allow_Continue ) ) | |
| 352 | PORT_DIPNAME( 0x01, 0x01, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SWB:8") | |
| 361 | 353 | PORT_DIPSETTING( 0x01, DEF_STR( No ) ) |
| 362 | 354 | PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) |
| 363 | 355 |
| r4470 | r4471 | |
|---|---|---|
| 62 | 62 | |
| 63 | 63 | static ADDRESS_MAP_START( quizpani_writemem, ADDRESS_SPACE_PROGRAM, 16 ) |
| 64 | 64 | AM_RANGE(0x000000, 0x07ffff) AM_WRITE(SMH_ROM) |
| 65 | AM_RANGE(0x100014, 0x100015) AM_WRITE(SMH_NOP) | |
| 66 | AM_RANGE(0x100016, 0x100017) AM_WRITE(SMH_NOP) /* IRQ eanble? */ | |
| 65 | AM_RANGE(0x100014, 0x100015) AM_WRITENOP | |
| 66 | AM_RANGE(0x100016, 0x100017) AM_WRITENOP /* IRQ eanble? */ | |
| 67 | 67 | AM_RANGE(0x100018, 0x100019) AM_WRITE(quizpani_tilesbank_w) |
| 68 | 68 | AM_RANGE(0x104000, 0x104001) AM_DEVWRITE8("oki", okim6295_w, 0x00ff) |
| 69 | 69 | AM_RANGE(0x104020, 0x104027) AM_WRITE(NMK112_okibank_lsb_w) |
| 70 | 70 | AM_RANGE(0x108000, 0x1083ff) AM_WRITE(paletteram16_RRRRGGGGBBBBRGBx_word_w) AM_BASE(&paletteram16) |
| 71 | AM_RANGE(0x108400, 0x1085ff) AM_WRITE | |
| 71 | AM_RANGE(0x108400, 0x1085ff) AM_WRITE | |
| 72 | 72 | AM_RANGE(0x10c000, 0x10c007) AM_WRITE(SMH_RAM) AM_BASE(&quizpani_scrollreg) |
| 73 | AM_RANGE(0x10c008, 0x10c403) AM_WRITE | |
| 73 | AM_RANGE(0x10c008, 0x10c403) AM_WRITE | |
| 74 | 74 | AM_RANGE(0x110000, 0x113fff) AM_WRITE(quizpani_bg_videoram_w) AM_BASE(&quizpani_bg_videoram) |
| 75 | 75 | AM_RANGE(0x11c000, 0x11ffff) AM_WRITE(quizpani_txt_videoram_w) AM_BASE(&quizpani_txt_videoram) |
| 76 | 76 | AM_RANGE(0x180000, 0x18ffff) AM_WRITE(SMH_RAM) |
| r4470 | r4471 | |
|---|---|---|
| 55 | 55 | AM_RANGE(0x5800, 0x58ff) AM_WRITE(gomoku_bgram_w) AM_BASE(&gomoku_bgram) |
| 56 | 56 | AM_RANGE(0x6000, 0x601f) AM_WRITE(gomoku_sound1_w) AM_BASE(&gomoku_soundregs1) |
| 57 | 57 | AM_RANGE(0x6800, 0x681f) AM_WRITE(gomoku_sound2_w) AM_BASE(&gomoku_soundregs2) |
| 58 | AM_RANGE(0x7000, 0x7000) AM_WRITE | |
| 58 | AM_RANGE(0x7000, 0x7000) AM_WRITE | |
| 59 | 59 | AM_RANGE(0x7001, 0x7001) AM_WRITE(gomoku_flipscreen_w) |
| 60 | 60 | AM_RANGE(0x7002, 0x7002) AM_WRITE(gomoku_bg_dispsw_w) |
| 61 | AM_RANGE(0x7003, 0x7007) AM_WRITE(SMH_NOP) | |
| 62 | AM_RANGE(0x7800, 0x7800) AM_WRITE(SMH_NOP) | |
| 61 | AM_RANGE(0x7003, 0x7007) AM_WRITENOP | |
| 62 | AM_RANGE(0x7800, 0x7800) AM_WRITENOP | |
| 63 | 63 | ADDRESS_MAP_END |
| 64 | 64 | |
| 65 | 65 |
| r4470 | r4471 | |
|---|---|---|
| 2 | 2 | * Beatmania DJ Main Board (GX753) |
| 3 | 3 | * |
| 4 | 4 | * Product numbers: |
| 5 | * GQ753 beatmania (first release in 1997) | |
| 6 | * Gx853 beatmania 2nd MIX (1998) | |
| 7 | * Gx825 beatmania 3rd MIX | |
| 8 | * Gx858 beatmania complete MIX (1999) | |
| 9 | * Gx847 beatmania 4th MIX | |
| 10 | * Gx981 beatmania 5th MIX | |
| 11 | * Gx993 beatmania Club MIX (2000) | |
| 12 | * Gx988 beatmania complete MIX 2 | |
| 13 | * Gx995 beatmania featuring Dreams Come True | |
| 14 | * GxA05 beatmania CORE REMIX | |
| 15 | * GxA21 beatmania 6th MIX (2001) | |
| 16 | * GxB07 beatmania 7th MIX | |
| 17 | * GxC01 beatmania THE FINAL (2002) | |
| 5 | * GQ753 beatmania (first release in 1997.12) | |
| 6 | * Gx853 beatmania 2nd MIX (1998.03) | |
| 7 | * Gx825 beatmania 3rd MIX (1998.09) | |
| 8 | * Gx858 beatmania complete MIX (1999.01) | |
| 9 | * Gx847 beatmania 4th MIX (1999.04) | |
| 10 | * Gx981 beatmania 5th MIX (1999.09) | |
| 11 | * Gx988 beatmania complete MIX 2 (2000.01) | |
| 12 | * Gx993 beatmania Club MIX (2000.03) | |
| 13 | * Gx995 beatmania featuring Dreams Come True (2000.05) | |
| 14 | * GxA05 beatmania CORE REMIX (2000.11) | |
| 15 | * GxA21 beatmania 6th MIX (2001.07) | |
| 16 | * GxB07 beatmania 7th MIX (2002.01) | |
| 17 | * GxC01 beatmania THE FINAL (2002.07)) | |
| 18 | 18 | * |
| 19 | * Gx803 Pop'n Music 1 (1998) | |
| 20 | * Gx831 Pop'n Music 2 | |
| 21 | * Gx980 Pop'n Music 3 (1999) | |
| 19 | * Gx803 Pop'n Music 1 (1998.09) | |
| 20 | * Gx831 Pop'n Music 2 (1999.04) | |
| 21 | * Gx980 Pop'n Music 3 (1999.09) | |
| 22 | 22 | * |
| 23 | * ????? Pop'n Stage | |
| 24 | * Gx970 Pop'n Stage EX (1999) | |
| 23 | * ????? Pop'n Stage (1999.11) | |
| 24 | * Gx970 Pop'n Stage EX (2000.03) | |
| 25 | 25 | * |
| 26 | 26 | * Chips: |
| 27 | 27 | * 15a: MC68EC020FG25 |
| r4470 | r4471 | |
| 264 | 264 | |
| 265 | 265 | //--------- |
| 266 | 266 | |
| 267 | static READ8_HANDLER( inp1_r ) | |
| 268 | { | |
| 269 | static const char *const portnames[] = { "DSW3", "BTN3", "BTN2", "BTN1" }; | |
| 270 | return input_port_read(space->machine, portnames[ offset & 0x03 ]); | |
| 271 | } | |
| 272 | ||
| 273 | static READ8_HANDLER( inp2_r ) | |
| 274 | { | |
| 275 | static const char *const portnames[] = { "DSW1", "DSW2", "UNK2", "UNK1" }; | |
| 276 | return input_port_read(space->machine, portnames[ offset & 0x03 ]); | |
| 277 | } | |
| 278 | ||
| 267 | 279 | static READ32_HANDLER( turntable_r ) |
| 268 | 280 | { |
| 269 | 281 | UINT32 result = 0; |
| r4470 | r4471 | |
| 466 | 478 | AM_RANGE(0x590000, 0x590007) AM_WRITE(unknown590000_w) // ?? |
| 467 | 479 | AM_RANGE(0x5a0000, 0x5a005f) AM_WRITE(K055555_long_w) // 055555: priority encoder |
| 468 | 480 | AM_RANGE(0x5b0000, 0x5b04ff) AM_READWRITE16(dual539_r, dual539_w, 0xffffffff) // SOUND regs |
| 469 | AM_RANGE(0x5c0000, 0x5c0003) AM_READ_PORT("INPUTS") | |
| 470 | AM_RANGE(0x5c8000, 0x5c8003) AM_READ_PORT("DSW") | |
| 481 | AM_RANGE(0x5c0000, 0x5c0003) AM_READ8(inp1_r, 0xffffffff) // DSW3,BTN3,BTN2,BTN1 // input port control (buttons and DIP switches) | |
| 482 | AM_RANGE(0x5c8000, 0x5c8003) AM_READ8(inp2_r, 0xffffffff) // DSW1,DSW2,UNK2,UNK1 // input port control (DIP switches) | |
| 471 | 483 | AM_RANGE(0x5d0000, 0x5d0003) AM_WRITE(light_ctrl_1_w) // light/coin blocker control |
| 472 | 484 | AM_RANGE(0x5d2000, 0x5d2003) AM_WRITE(light_ctrl_2_w) // light/coin blocker control |
| 473 | 485 | AM_RANGE(0x5d4000, 0x5d4003) AM_WRITE(v_ctrl_w) // VIDEO control |
| r4470 | r4471 | |
| 495 | 507 | * |
| 496 | 508 | *************************************/ |
| 497 | 509 | |
| 498 | #define BEATMANIA_DSW1(base,mask) \ | |
| 499 | PORT_DIPNAME( 0xff000000, (0xff000000 & mask) | base, DEF_STR( Coinage ) ) \ | |
| 500 | PORT_DIPSETTING( (0xe0000000 & mask) | base, "1P 8C / 2P 16C / Continue 8C" ) \ | |
| 501 | PORT_DIPSETTING( (0xe1000000 & mask) | base, "1P 8C / 2P 16C / Continue 7C" ) \ | |
| 502 | PORT_DIPSETTING( (0xe2000000 & mask) | base, "1P 8C / 2P 16C / Continue 6C" ) \ | |
| 503 | PORT_DIPSETTING( (0xe3000000 & mask) | base, "1P 7C / 2P 14C / Continue 7C" ) \ | |
| 504 | PORT_DIPSETTING( (0xe4000000 & mask) | base, "1P 7C / 2P 14C / Continue 6C" ) \ | |
| 505 | PORT_DIPSETTING( (0xe5000000 & mask) | base, "1P 7C / 2P 14C / Continue 5C" ) \ | |
| 506 | PORT_DIPSETTING( (0xe6000000 & mask) | base, "1P 6C / 2P 12C / Continue 6C" ) \ | |
| 507 | PORT_DIPSETTING( (0xe7000000 & mask) | base, "1P 6C / 2P 12C / Continue 5C" ) \ | |
| 508 | PORT_DIPSETTING( (0xe8000000 & mask) | base, "1P 6C / 2P 12C / Continue 4C" ) \ | |
| 509 | PORT_DIPSETTING( (0xe9000000 & mask) | base, "1P 5C / 2P 10C / Continue 5C" ) \ | |
| 510 | PORT_DIPSETTING( (0xeb000000 & mask) | base, "1P 5C / 2P 10C / Continue 3C" ) \ | |
| 511 | PORT_DIPSETTING( (0xea000000 & mask) | base, "1P 5C / 2P 10C / Continue 4C" ) \ | |
| 512 | PORT_DIPSETTING( (0xec000000 & mask) | base, "1P 4C / 2P 8C / Continue 4C" ) \ | |
| 513 | PORT_DIPSETTING( (0xed000000 & mask) | base, "1P 4C / 2P 8C / Continue 3C" ) \ | |
| 514 | PORT_DIPSETTING( (0xee000000 & mask) | base, "1P 4C / 2P 8C / Continue 2C" ) \ | |
| 515 | PORT_DIPSETTING( (0xef000000 & mask) | base, "1P 3C / 2P 6C / Continue 3C" ) \ | |
| 516 | PORT_DIPSETTING( (0xf0000000 & mask) | base, "1P 3C / 2P 6C / Continue 2C" ) \ | |
| 517 | PORT_DIPSETTING( (0xf1000000 & mask) | base, "1P 3C / 2P 6C / Continue 1C" ) \ | |
| 518 | PORT_DIPSETTING( (0xf2000000 & mask) | base, "1P 3C / 2P 4C / Continue 3C" ) \ | |
| 519 | PORT_DIPSETTING( (0xf3000000 & mask) | base, "1P 3C / 2P 4C / Continue 2C" ) \ | |
| 520 | PORT_DIPSETTING( (0xf4000000 & mask) | base, "1P 3C / 2P 4C / Continue 1C" ) \ | |
| 521 | PORT_DIPSETTING( (0xf5000000 & mask) | base, "1P 3C / 2P 3C / Continue 3C" ) \ | |
| 522 | PORT_DIPSETTING( (0xf6000000 & mask) | base, "1P 3C / 2P 3C / Continue 2C" ) \ | |
| 523 | PORT_DIPSETTING( (0xf7000000 & mask) | base, "1P 3C / 2P 3C / Continue 1C" ) \ | |
| 524 | PORT_DIPSETTING( (0xfa000000 & mask) | base, "1P 2C / 2P 3C / Continue 2C" ) \ | |
| 525 | PORT_DIPSETTING( (0xfb000000 & mask) | base, "1P 2C / 2P 3C / Continue 1C" ) \ | |
| 526 | PORT_DIPSETTING( (0xf8000000 & mask) | base, "1P 2C / 2P 4C / Continue 2C" ) \ | |
| 527 | PORT_DIPSETTING( (0xff000000 & mask) | base, "1P 2C / 2P 4C / Continue 1C" ) \ | |
| 528 | PORT_DIPSETTING( (0xfc000000 & mask) | base, "1P 2C / 2P 2C / Continue 2C" ) \ | |
| 529 | PORT_DIPSETTING( (0xfd000000 & mask) | base, "1P 2C / 2P 2C / Continue 1C" ) \ | |
| 530 | PORT_DIPSETTING( (0xfe000000 & mask) | base, "1P 1C / 2P 2C / Continue 1C" ) \ | |
| 531 | PORT_DIPSETTING( (0xf9000000 & mask) | base, "1P 1C / 2P 1C / Continue 1C" ) \ | |
| 532 | PORT_DIPSETTING( (0x00000000 & mask) | base, DEF_STR( Free_Play ) ) | |
| 510 | // #define PRIORITY_EASINESS_TO_PLAY | |
| 533 | 511 | |
| 512 | //--------- beatmania | |
| 534 | 513 | |
| 535 | static INPUT_PORTS_START( beatmania ) | |
| 536 | PORT_START("INPUTS") | |
| 537 | PORT_BIT( 0x00000010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) | |
| 538 | PORT_BIT( 0x00000008, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) | |
| 539 | PORT_BIT( 0x00000004, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) | |
| 540 | PORT_BIT( 0x00000002, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(1) | |
| 541 | PORT_BIT( 0x00000001, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(1) | |
| 542 | PORT_BIT( 0x00000020, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 543 | PORT_BIT( 0x00000040, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) | |
| 544 | PORT_BIT( 0x00000080, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) | |
| 545 | PORT_BIT( 0x00000100, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) | |
| 546 | PORT_BIT( 0x00000200, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(2) | |
| 547 | PORT_BIT( 0x00000400, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(2) | |
| 548 | PORT_BIT( 0x00000800, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 549 | PORT_BIT( 0x00001000, IP_ACTIVE_LOW, IPT_START1 ) | |
| 550 | PORT_BIT( 0x00002000, IP_ACTIVE_LOW, IPT_START2 ) | |
| 551 | PORT_BIT( 0x00004000, IP_ACTIVE_LOW, IPT_START3 ) PORT_NAME("Effect") /* EFFECT */ | |
| 552 | PORT_BIT( 0x00008000, IP_ACTIVE_LOW, IPT_COIN1 ) | |
| 553 | ||
| 554 | PORT_BIT( 0x00010000, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME(DEF_STR( Test )) PORT_CODE(KEYCODE_F2) /* TEST SW */ | |
| 555 | PORT_BIT( 0x00040000, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_NAME("Service") /* SERVICE */ | |
| 556 | PORT_BIT( 0x00020000, IP_ACTIVE_LOW, IPT_SERVICE2 ) PORT_NAME("Reset") /* RESET SW */ | |
| 557 | PORT_BIT( 0x00f80000, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 558 | PORT_BIT( 0xc0000000, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 559 | PORT_DIPNAME( 0x20000000, 0x20000000, "Event Mode" ) | |
| 560 | PORT_DIPSETTING( 0x20000000, DEF_STR( Off ) ) | |
| 561 | PORT_DIPSETTING( 0x00000000, DEF_STR( On ) ) | |
| 562 | PORT_DIPNAME( 0x1c000000, 0x1c000000, "Normal / Event Mode Stages" ) | |
| 563 | PORT_DIPSETTING( 0x0c000000, "4 / 1" ) | |
| 564 | PORT_DIPSETTING( 0x14000000, "4 / 2" ) | |
| 565 | PORT_DIPSETTING( 0x10000000, "3 / 3" ) | |
| 566 | PORT_DIPSETTING( 0x1c000000, "4 / 4" ) | |
| 567 | PORT_DIPSETTING( 0x08000000, "5 / 5" ) | |
| 568 | PORT_BIT( 0x02000000, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 569 | PORT_BIT( 0x01000000, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 570 | ||
| 571 | PORT_START("DSW") | |
| 572 | BEATMANIA_DSW1(0x00000000, 0xff000000) | |
| 573 | ||
| 574 | PORT_DIPNAME( 0x00800000, 0x00800000, "Score Display" ) | |
| 575 | PORT_DIPSETTING( 0x00000000, DEF_STR( Off ) ) | |
| 576 | PORT_DIPSETTING( 0x00800000, DEF_STR( On ) ) | |
| 577 | PORT_DIPNAME( 0x00600000, 0x00600000, DEF_STR( Demo_Sounds ) ) | |
| 578 | PORT_DIPSETTING( 0x00600000, "Loud" ) | |
| 579 | PORT_DIPSETTING( 0x00200000, DEF_STR( Medium ) ) | |
| 580 | PORT_DIPSETTING( 0x00400000, DEF_STR( Low ) ) | |
| 581 | PORT_DIPSETTING( 0x00000000, "Silent" ) | |
| 582 | PORT_DIPNAME( 0x00100000, 0x00100000, "Level Display" ) | |
| 583 | PORT_DIPSETTING( 0x00000000, DEF_STR( Off ) ) | |
| 584 | PORT_DIPSETTING( 0x00100000, DEF_STR( On ) ) | |
| 585 | PORT_DIPNAME( 0x000c0000, 0x000c0000, "Normal Difficulty" ) | |
| 586 | PORT_DIPSETTING( 0x00080000, "Level 0" ) | |
| 587 | PORT_DIPSETTING( 0x000c0000, "Level 1" ) | |
| 588 | PORT_DIPSETTING( 0x00040000, "Level 2" ) | |
| 589 | PORT_DIPSETTING( 0x00000000, "Level 3" ) | |
| 590 | PORT_DIPNAME( 0x00030000, 0x00030000, "Expert Difficulty" ) | |
| 591 | PORT_DIPSETTING( 0x00020000, "Level 0" ) | |
| 592 | PORT_DIPSETTING( 0x00030000, "Level 1" ) | |
| 593 | PORT_DIPSETTING( 0x00010000, "Level 2" ) | |
| 594 | PORT_DIPSETTING( 0x00000000, "Level 3" ) | |
| 595 | PORT_BIT( 0x0000ffff, IP_ACTIVE_LOW, IPT_UNUSED ) | |
| 596 | ||
| 514 | static INPUT_PORTS_START( beatmania_btn ) // and turntables | |
| 515 | PORT_START("BTN1") | |
| 516 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) | |
| 517 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) | |
| 518 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) | |
| 519 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(1) | |
| 520 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(1) | |
| 521 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 522 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) | |
| 523 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) | |
| 524 | PORT_START("BTN2") | |
| 525 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) | |
| 526 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(2) | |
| 527 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(2) | |
| 528 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 529 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 ) | |
| 530 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 ) | |
| 531 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START3 ) PORT_NAME("Effect") /* EFFECT */ | |
| 532 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 ) | |
| 533 | PORT_START("BTN3") | |
| 534 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME(DEF_STR( Test )) PORT_CODE(KEYCODE_F2) /* TEST SW */ | |
| 535 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_NAME("Service") /* SERVICE */ | |
| 536 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SERVICE2 ) PORT_NAME("Reset") /* RESET SW */ | |
| 537 | PORT_BIT( 0xf8, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 538 | PORT_START("UNK1") | |
| 539 | PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) | |
| 540 | PORT_START("UNK2") | |
| 541 | PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) | |
| 597 | 542 | PORT_START("TT1") /* turn table 1P */ |
| 598 | 543 | PORT_BIT( 0xff, 0x00, IPT_DIAL ) PORT_SENSITIVITY(30) PORT_KEYDELTA(15) PORT_PLAYER(1) |
| 599 | ||
| 600 | 544 | PORT_START("TT2") /* turn table 2P */ |
| 601 | 545 | PORT_BIT( 0xff, 0x00, IPT_DIAL ) PORT_SENSITIVITY(30) PORT_KEYDELTA(15) PORT_PLAYER(2) |
| 602 | 546 | INPUT_PORTS_END |
| 603 | 547 | |
| 604 | static INPUT_PORTS_START( bm1stmix ) | |
| 605 | PORT_INCLUDE( beatmania ) | |
| 548 | #ifdef PRIORITY_EASINESS_TO_PLAY | |
| 549 | #define BEATMANIA_DSW1_COINAGE_OLD \ | |
| 550 | PORT_DIPNAME( 0x1f, 0x1f, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW1:8,7,6,5,4") \ | |
| 551 | PORT_DIPSETTING( 0x1e, "1P 3C / 2P 6C / Continue 3C" ) \ | |
| 552 | PORT_DIPSETTING( 0x01, "1P 3C / 2P 6C / Continue 2C" ) \ | |
| 553 | PORT_DIPSETTING( 0x11, "1P 3C / 2P 6C / Continue 1C" ) \ | |
| 554 | PORT_DIPSETTING( 0x15, "1P 3C / 2P 3C / Continue 3C" ) \ | |
| 555 | PORT_DIPSETTING( 0x0d, "1P 3C / 2P 3C / Continue 2C" ) \ | |
| 556 | PORT_DIPSETTING( 0x1d, "1P 3C / 2P 3C / Continue 1C" ) \ | |
| 557 | PORT_DIPSETTING( 0x09, "1P 3C / 2P 4C / Continue 3C" ) \ | |
| 558 | PORT_DIPSETTING( 0x19, "1P 3C / 2P 4C / Continue 2C" ) \ | |
| 559 | PORT_DIPSETTING( 0x05, "1P 3C / 2P 4C / Continue 1C" ) \ | |
| 560 | PORT_DIPSETTING( 0x03, "1P 2C / 2P 4C / Continue 2C" ) \ | |
| 561 | PORT_DIPSETTING( 0x1f, "1P 2C / 2P 4C / Continue 1C" ) \ | |
| 562 | PORT_DIPSETTING( 0x0b, "1P 2C / 2P 3C / Continue 2C" ) \ | |
| 563 | PORT_DIPSETTING( 0x1b, "1P 2C / 2P 3C / Continue 1C" ) \ | |
| 564 | PORT_DIPSETTING( 0x07, "1P 2C / 2P 2C / Continue 2C" ) \ | |
| 565 | PORT_DIPSETTING( 0x17, "1P 2C / 2P 2C / Continue 1C" ) \ | |
| 566 | PORT_DIPSETTING( 0x0f, "1P 1C / 2P 2C / Continue 1C" ) \ | |
| 567 | PORT_DIPSETTING( 0x13, "1P 1C / 2P 1C / Continue 1C" ) \ | |
| 568 | PORT_DIPSETTING( 0x00, "Free_Play" ) | |
| 569 | #else | |
| 570 | #define BEATMANIA_DSW1_COINAGE_OLD \ | |
| 571 | PORT_DIPNAME( 0x1f, 0x1f, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW1:8,7,6,5,4") \ | |
| 572 | PORT_DIPSETTING( 0x1e, "1P 3C / 2P 6C / Continue 3C" ) \ | |
| 573 | PORT_DIPSETTING( 0x01, "1P 3C / 2P 6C / Continue 2C" ) \ | |
| 574 | PORT_DIPSETTING( 0x11, "1P 3C / 2P 6C / Continue 1C" ) \ | |
| 575 | PORT_DIPSETTING( 0x15, "1P 3C / 2P 3C / Continue 3C" ) \ | |
| 576 | PORT_DIPSETTING( 0x0d, "1P 3C / 2P 3C / Continue 2C" ) \ | |
| 577 | PORT_DIPSETTING( 0x1d, "1P 3C / 2P 3C / Continue 1C" ) \ | |
| 578 | PORT_DIPSETTING( 0x09, "1P 3C / 2P 4C / Continue 3C" ) \ | |
| 579 | PORT_DIPSETTING( 0x19, "1P 3C / 2P 4C / Continue 2C" ) \ | |
| 580 | PORT_DIPSETTING( 0x05, "1P 3C / 2P 4C / Continue 1C" ) \ | |
| 581 | PORT_DIPSETTING( 0x03, "1P 2C / 2P 4C / Continue 2C" ) \ | |
| 582 | PORT_DIPSETTING( 0x1f, "1P 2C / 2P 4C / Continue 1C" ) \ | |
| 583 | PORT_DIPSETTING( 0x0b, "1P 2C / 2P 3C / Continue 2C" ) \ | |
| 584 | PORT_DIPSETTING( 0x1b, "1P 2C / 2P 3C / Continue 1C" ) \ | |
| 585 | PORT_DIPSETTING( 0x07, "1P 2C / 2P 2C / Continue 2C" ) \ | |
| 586 | PORT_DIPSETTING( 0x17, "1P 2C / 2P 2C / Continue 1C" ) \ | |
| 587 | PORT_DIPSETTING( 0x0f, "1P 1C / 2P 2C / Continue 1C" ) \ | |
| 588 | PORT_DIPSETTING( 0x13, "1P 1C / 2P 1C / Continue 1C" ) \ | |
| 589 | PORT_DIPSETTING( 0x0e, "Free_Play" ) /* duplicated setting */ \ | |
| 590 | PORT_DIPSETTING( 0x16, "Free_Play" ) /* duplicated setting */ \ | |
| 591 | PORT_DIPSETTING( 0x06, "Free_Play" ) /* duplicated setting */ \ | |
| 592 | PORT_DIPSETTING( 0x1a, "Free_Play" ) /* duplicated setting */ \ | |
| 593 | PORT_DIPSETTING( 0x0a, "Free_Play" ) /* duplicated setting */ \ | |
| 594 | PORT_DIPSETTING( 0x12, "Free_Play" ) /* duplicated setting */ \ | |
| 595 | PORT_DIPSETTING( 0x02, "Free_Play" ) /* duplicated setting */ \ | |
| 596 | PORT_DIPSETTING( 0x1c, "Free_Play" ) /* duplicated setting */ \ | |
| 597 | PORT_DIPSETTING( 0x0c, "Free_Play" ) /* duplicated setting */ \ | |
| 598 | PORT_DIPSETTING( 0x14, "Free_Play" ) /* duplicated setting */ \ | |
| 599 | PORT_DIPSETTING( 0x04, "Free_Play" ) /* duplicated setting */ \ | |
| 600 | PORT_DIPSETTING( 0x18, "Free_Play" ) /* duplicated setting */ \ | |
| 601 | PORT_DIPSETTING( 0x08, "Free_Play" ) /* duplicated setting */ \ | |
| 602 | PORT_DIPSETTING( 0x10, "Free_Play" ) /* duplicated setting */ \ | |
| 603 | PORT_DIPSETTING( 0x00, "Free_Play" ) | |
| 604 | #endif | |
| 606 | 605 | |
| 607 | PORT_MODIFY("INPUTS") | |
| 608 | PORT_BIT( 0xff000000, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 606 | #define BEATMANIA_DSW1_COINAGE_NEW \ | |
| 607 | PORT_DIPNAME( 0x20, 0x20, "Free Play (Ignore Coinage)" ) PORT_DIPLOCATION("SW1:3") \ | |
| 608 | PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) \ | |
| 609 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) \ | |
| 610 | PORT_DIPNAME( 0x1f, 0x1f, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW1:8,7,6,5,4") \ | |
| 611 | PORT_DIPSETTING( 0x00, "1P 8C / 2P 16C / Continue 8C" ) \ | |
| 612 | PORT_DIPSETTING( 0x01, "1P 8C / 2P 16C / Continue 7C" ) \ | |
| 613 | PORT_DIPSETTING( 0x02, "1P 8C / 2P 16C / Continue 6C" ) \ | |
| 614 | PORT_DIPSETTING( 0x03, "1P 7C / 2P 14C / Continue 7C" ) \ | |
| 615 | PORT_DIPSETTING( 0x04, "1P 7C / 2P 14C / Continue 6C" ) \ | |
| 616 | PORT_DIPSETTING( 0x05, "1P 7C / 2P 14C / Continue 5C" ) \ | |
| 617 | PORT_DIPSETTING( 0x06, "1P 6C / 2P 12C / Continue 6C" ) \ | |
| 618 | PORT_DIPSETTING( 0x07, "1P 6C / 2P 12C / Continue 5C" ) \ | |
| 619 | PORT_DIPSETTING( 0x08, "1P 6C / 2P 12C / Continue 4C" ) \ | |
| 620 | PORT_DIPSETTING( 0x09, "1P 5C / 2P 10C / Continue 5C" ) \ | |
| 621 | PORT_DIPSETTING( 0x0b, "1P 5C / 2P 10C / Continue 3C" ) \ | |
| 622 | PORT_DIPSETTING( 0x0a, "1P 5C / 2P 10C / Continue 4C" ) \ | |
| 623 | PORT_DIPSETTING( 0x0c, "1P 4C / 2P 8C / Continue 4C" ) \ | |
| 624 | PORT_DIPSETTING( 0x0d, "1P 4C / 2P 8C / Continue 3C" ) \ | |
| 625 | PORT_DIPSETTING( 0x0e, "1P 4C / 2P 8C / Continue 2C" ) \ | |
| 626 | PORT_DIPSETTING( 0x0f, "1P 3C / 2P 6C / Continue 3C" ) \ | |
| 627 | PORT_DIPSETTING( 0x10, "1P 3C / 2P 6C / Continue 2C" ) \ | |
| 628 | PORT_DIPSETTING( 0x11, "1P 3C / 2P 6C / Continue 1C" ) \ | |
| 629 | PORT_DIPSETTING( 0x12, "1P 3C / 2P 4C / Continue 3C" ) \ | |
| 630 | PORT_DIPSETTING( 0x13, "1P 3C / 2P 4C / Continue 2C" ) \ | |
| 631 | PORT_DIPSETTING( 0x14, "1P 3C / 2P 4C / Continue 1C" ) \ | |
| 632 | PORT_DIPSETTING( 0x15, "1P 3C / 2P 3C / Continue 3C" ) \ | |
| 633 | PORT_DIPSETTING( 0x16, "1P 3C / 2P 3C / Continue 2C" ) \ | |
| 634 | PORT_DIPSETTING( 0x17, "1P 3C / 2P 3C / Continue 1C" ) \ | |
| 635 | PORT_DIPSETTING( 0x1a, "1P 2C / 2P 3C / Continue 2C" ) \ | |
| 636 | PORT_DIPSETTING( 0x1b, "1P 2C / 2P 3C / Continue 1C" ) \ | |
| 637 | PORT_DIPSETTING( 0x18, "1P 2C / 2P 4C / Continue 2C" ) \ | |
| 638 | PORT_DIPSETTING( 0x1f, "1P 2C / 2P 4C / Continue 1C" ) \ | |
| 639 | PORT_DIPSETTING( 0x1c, "1P 2C / 2P 2C / Continue 2C" ) \ | |
| 640 | PORT_DIPSETTING( 0x1d, "1P 2C / 2P 2C / Continue 1C" ) \ | |
| 641 | PORT_DIPSETTING( 0x1e, "1P 1C / 2P 2C / Continue 1C" ) \ | |
| 642 | PORT_DIPSETTING( 0x19, "1P 1C / 2P 1C / Continue 1C" ) | |
| 609 | 643 | |
| 610 | PORT_MODIFY("DSW") | |
| 611 | PORT_BIT( 0xe0000000, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 612 | PORT_DIPNAME( 0x1f000000, 0x1f000000, DEF_STR( Coinage ) ) | |
| 613 | PORT_DIPSETTING( 0x1e000000, "1P 3C / 2P 6C / Continue 3C" ) | |
| 614 | PORT_DIPSETTING( 0x01000000, "1P 3C / 2P 6C / Continue 2C" ) | |
| 615 | PORT_DIPSETTING( 0x11000000, "1P 3C / 2P 6C / Continue 1C" ) | |
| 616 | PORT_DIPSETTING( 0x15000000, "1P 3C / 2P 3C / Continue 3C" ) | |
| 617 | PORT_DIPSETTING( 0x0d000000, "1P 3C / 2P 3C / Continue 2C" ) | |
| 618 | PORT_DIPSETTING( 0x1d000000, "1P 3C / 2P 3C / Continue 1C" ) | |
| 619 | PORT_DIPSETTING( 0x09000000, "1P 3C / 2P 4C / Continue 3C" ) | |
| 620 | PORT_DIPSETTING( 0x19000000, "1P 3C / 2P 4C / Continue 2C" ) | |
| 621 | PORT_DIPSETTING( 0x05000000, "1P 3C / 2P 4C / Continue 1C" ) | |
| 622 | PORT_DIPSETTING( 0x03000000, "1P 2C / 2P 4C / Continue 2C" ) | |
| 623 | PORT_DIPSETTING( 0x1f000000, "1P 2C / 2P 4C / Continue 1C" ) | |
| 624 | PORT_DIPSETTING( 0x0b000000, "1P 2C / 2P 3C / Continue 2C" ) | |
| 625 | PORT_DIPSETTING( 0x1b000000, "1P 2C / 2P 3C / Continue 1C" ) | |
| 626 | PORT_DIPSETTING( 0x07000000, "1P 2C / 2P 2C / Continue 2C" ) | |
| 627 | PORT_DIPSETTING( 0x17000000, "1P 2C / 2P 2C / Continue 1C" ) | |
| 628 | PORT_DIPSETTING( 0x0f000000, "1P 1C / 2P 2C / Continue 1C" ) | |
| 629 | PORT_DIPSETTING( 0x13000000, "1P 1C / 2P 1C / Continue 1C" ) | |
| 630 | PORT_DIPSETTING( 0x00000000, DEF_STR( Free_Play ) ) | |
| 644 | #define BEATMANIA_DSW2_SCOREDISPLAY \ | |
| 645 | PORT_DIPNAME( 0x80, 0x80, "Score Display" ) PORT_DIPLOCATION("SW2:1") \ | |
| 646 | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) \ | |
| 647 | PORT_DIPSETTING( 0x80, DEF_STR( On ) ) | |
| 631 | 648 | |
| 632 | PORT_DIPNAME( 0x00800000, 0x00800000, "Enable Expert Mode" ) | |
| 633 | PORT_DIPSETTING( 0x00000000, DEF_STR( No ) ) | |
| 634 | PORT_DIPSETTING( 0x00800000, DEF_STR( Yes ) ) | |
| 635 | PORT_BIT( 0x001f0000, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 636 | INPUT_PORTS_END | |
| 649 | #define BEATMANIA_DSW2_DEMOSOUNDS \ | |
| 650 | PORT_DIPNAME( 0x60, 0x60, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW2:3,2") \ | |
| 651 | PORT_DIPSETTING( 0x60, "Loud" ) \ | |
| 652 | PORT_DIPSETTING( 0x20, DEF_STR( Medium ) ) \ | |
| 653 | PORT_DIPSETTING( 0x40, DEF_STR( Low ) ) \ | |
| 654 | PORT_DIPSETTING( 0x00, "Silent" ) | |
| 637 | 655 | |
| 656 | #define BEATMANIA_DSW2_LEVELDISPLAY \ | |
| 657 | PORT_DIPNAME( 0x10, 0x10, "Level Display" ) PORT_DIPLOCATION("SW2:4") \ | |
| 658 | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) \ | |
| 659 | PORT_DIPSETTING( 0x10, DEF_STR( On ) ) | |
| 638 | 660 | |
| 639 | static INPUT_PORTS_START( bm2ndmix ) | |
| 640 | PORT_INCLUDE( beatmania ) | |
| 661 | #define BEATMANIA_DSW2_DIFFICULITY_OLD \ | |
| 662 | PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW2:8,7,6,5") \ | |
| 663 | PORT_DIPSETTING( 0x0a, "Level 0" ) \ | |
| 664 | PORT_DIPSETTING( 0x0e, "Level 1" ) \ | |
| 665 | PORT_DIPSETTING( 0x0d, "Level 2" ) \ | |
| 666 | PORT_DIPSETTING( 0x0c, "Level 3" ) \ | |
| 667 | PORT_DIPSETTING( 0x0b, "Level 4" ) \ | |
| 668 | PORT_DIPSETTING( 0x0f, "Level 5" ) \ | |
| 669 | PORT_DIPSETTING( 0x09, "Level 6" ) \ | |
| 670 | PORT_DIPSETTING( 0x08, "Level 7" ) \ | |
| 671 | PORT_DIPSETTING( 0x07, "Level 8" ) \ | |
| 672 | PORT_DIPSETTING( 0x06, "Level 9" ) \ | |
| 673 | PORT_DIPSETTING( 0x05, "Level 10" ) \ | |
| 674 | PORT_DIPSETTING( 0x04, "Level 11" ) \ | |
| 675 | PORT_DIPSETTING( 0x03, "Level 12" ) \ | |
| 676 | PORT_DIPSETTING( 0x02, "Level 13" ) \ | |
| 677 | PORT_DIPSETTING( 0x01, "Level 14" ) \ | |
| 678 | PORT_DIPSETTING( 0x00, "Level 15" ) | |
| 641 | 679 | |
| 642 | PORT_MODIFY("INPUTS") | |
| 643 | PORT_DIPNAME( 0x39000000, 0x39000000, "Event Mode / Free Hidden Songs" ) | |
| 644 | PORT_DIPSETTING( 0x39000000, "Off / Off" ) | |
| 645 | PORT_DIPSETTING( 0x20000000, "Off / On" ) | |
| 646 | PORT_DIPSETTING( 0x19000000, "1 Stages / On" ) | |
| 647 | PORT_DIPSETTING( 0x09000000, "2 Stages / On" ) | |
| 648 | PORT_DIPSETTING( 0x11000000, "3 Stages / On" ) | |
| 649 | PORT_DIPSETTING( 0x01000000, "4 Stages / On" ) | |
| 650 | PORT_BIT( 0x04000000, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 651 | PORT_BIT( 0x02000000, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 680 | #define BEATMANIA_DSW2_DIFFICULITY_NEW( str, str2 ) \ | |
| 681 | PORT_DIPNAME( 0x0c, 0x0c, str ) PORT_DIPLOCATION("SW2:6,5") \ | |
| 682 | PORT_DIPSETTING( 0x08, "Level 0" ) \ | |
| 683 | PORT_DIPSETTING( 0x0c, "Level 1" ) \ | |
| 684 | PORT_DIPSETTING( 0x04, "Level 2" ) \ | |
| 685 | PORT_DIPSETTING( 0x00, "Level 3" ) \ | |
| 686 | PORT_DIPNAME( 0x03, 0x03, str2 ) PORT_DIPLOCATION("SW2:8,7") \ | |
| 687 | PORT_DIPSETTING( 0x02, "Level 0" ) \ | |
| 688 | PORT_DIPSETTING( 0x03, "Level 1" ) \ | |
| 689 | PORT_DIPSETTING( 0x01, "Level 2" ) \ | |
| 690 | PORT_DIPSETTING( 0x00, "Level 3" ) | |
| 652 | 691 | |
| 653 | PORT_MODIFY("DSW") | |
| 654 | PORT_BIT( 0x00100000, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* DSW 2-4 */ | |
| 655 | PORT_DIPNAME( 0x000f0000, 0x000f0000, DEF_STR( Difficulty ) ) | |
| 656 | PORT_DIPSETTING( 0x000a0000, "Level 0" ) | |
| 657 | PORT_DIPSETTING( 0x000e0000, "Level 1" ) | |
| 658 | PORT_DIPSETTING( 0x000d0000, "Level 2" ) | |
| 659 | PORT_DIPSETTING( 0x000c0000, "Level 3" ) | |
| 660 | PORT_DIPSETTING( 0x000b0000, "Level 4" ) | |
| 661 | PORT_DIPSETTING( 0x000f0000, "Level 5" ) | |
| 662 | PORT_DIPSETTING( 0x00090000, "Level 6" ) | |
| 663 | PORT_DIPSETTING( 0x00080000, "Level 7" ) | |
| 664 | PORT_DIPSETTING( 0x00070000, "Level 8" ) | |
| 665 | PORT_DIPSETTING( 0x00060000, "Level 9" ) | |
| 666 | PORT_DIPSETTING( 0x00050000, "Level 10" ) | |
| 667 | PORT_DIPSETTING( 0x00040000, "Level 11" ) | |
| 668 | PORT_DIPSETTING( 0x00030000, "Level 12" ) | |
| 669 | PORT_DIPSETTING( 0x00020000, "Level 13" ) | |
| 670 | PORT_DIPSETTING( 0x00010000, "Level 14" ) | |
| 671 | PORT_DIPSETTING( 0x00000000, "Level 15" ) | |
| 672 | INPUT_PORTS_END | |
| 692 | #define BEATMANIA_DSW3_EVENTMODE \ | |
| 693 | PORT_DIPNAME( 0x20, 0x20, "Event Mode (Ignore Coinage)" ) PORT_DIPLOCATION("SW3:1") \ | |
| 694 | PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) \ | |
| 695 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) | |
| 673 | 696 | |
| 674 | static INPUT_PORTS_START( bmcompmx ) | |
| 675 | PORT_INCLUDE( beatmania ) | |
| 697 | #ifdef PRIORITY_EASINESS_TO_PLAY | |
| 698 | #define BEATMANIA_DSW3_STAGES_OLD \ | |
| 699 | PORT_DIPNAME( 0x1c, 0x1c, "Normal Mode Stages" ) PORT_CONDITION("DSW3", 0x20, PORTCOND_EQUALS, 0x20) PORT_DIPLOCATION("SW3:4,3,2") \ | |
| 700 | PORT_DIPSETTING( 0x10, "3 Stages" ) \ | |
| 701 | PORT_DIPSETTING( 0x00, "4 Stages" ) \ | |
| 702 | PORT_DIPSETTING( 0x08, "5 Stages" ) \ | |
| 703 | PORT_DIPNAME( 0x1c, 0x1c, "Event Mode Stages" ) PORT_CONDITION("DSW3", 0x20, PORTCOND_NOTEQUALS, 0x20) PORT_DIPLOCATION("SW3:4,3,2") \ | |
| 704 | PORT_DIPSETTING( 0x0c, "1 Stage" ) \ | |
| 705 | PORT_DIPSETTING( 0x14, "2 Stages" ) \ | |
| 706 | PORT_DIPSETTING( 0x10, "3 Stages" ) \ | |
| 707 | PORT_DIPSETTING( 0x00, "4 Stages" ) \ | |
| 708 | PORT_DIPSETTING( 0x08, "5 Stages" ) | |
| 709 | #else | |
| 710 | #define BEATMANIA_DSW3_STAGES_OLD \ | |
| 711 | PORT_DIPNAME( 0x1c, 0x1c, "Normal Mode Stages" ) PORT_CONDITION("DSW3", 0x20, PORTCOND_EQUALS, 0x20) PORT_DIPLOCATION("SW3:4,3,2") \ | |
| 712 | PORT_DIPSETTING( 0x10, "3 Stages" ) \ | |
| 713 | PORT_DIPSETTING( 0x1c, "4 Stages" ) /* duplicated setting */ \ | |
| 714 | PORT_DIPSETTING( 0x0c, "4 Stages" ) /* duplicated setting */ \ | |
| 715 | PORT_DIPSETTING( 0x14, "4 Stages" ) /* duplicated setting */ \ | |
| 716 | PORT_DIPSETTING( 0x04, "4 Stages" ) /* duplicated setting */ \ | |
| 717 | PORT_DIPSETTING( 0x18, "4 Stages" ) /* duplicated setting */ \ | |
| 718 | PORT_DIPSETTING( 0x00, "4 Stages" ) \ | |
| 719 | PORT_DIPSETTING( 0x08, "5 Stages" ) \ | |
| 720 | PORT_DIPNAME( 0x1c, 0x1c, "Event Mode Stages" ) PORT_CONDITION("DSW3", 0x20, PORTCOND_NOTEQUALS, 0x20) PORT_DIPLOCATION("SW3:4,3,2") \ | |
| 721 | PORT_DIPSETTING( 0x0c, "1 Stage" ) \ | |
| 722 | PORT_DIPSETTING( 0x14, "2 Stages" ) \ | |
| 723 | PORT_DIPSETTING( 0x10, "3 Stages" ) \ | |
| 724 | PORT_DIPSETTING( 0x1c, "4 Stages" ) /* duplicated setting */ \ | |
| 725 | PORT_DIPSETTING( 0x04, "4 Stages" ) /* duplicated setting */ \ | |
| 726 | PORT_DIPSETTING( 0x18, "4 Stages" ) /* duplicated setting */ \ | |
| 727 | PORT_DIPSETTING( 0x00, "4 Stages" ) \ | |
| 728 | PORT_DIPSETTING( 0x08, "5 Stages" ) | |
| 729 | #endif | |
| 676 | 730 | |
| 677 | PORT_MODIFY("INPUTS") | |
| 678 | PORT_DIPNAME( 0x01000000, 0x01000000, "Secret Expert Course" ) /* DSW 3-6 */ | |
| 679 | PORT_DIPSETTING( 0x01000000, DEF_STR( Off ) ) | |
| 680 | PORT_DIPSETTING( 0x00000000, DEF_STR( On ) ) | |
| 731 | #ifdef PRIORITY_EASINESS_TO_PLAY | |
| 732 | #define BEATMANIA_DSW3_STAGES_MIDDLE( str ) \ | |
| 733 | PORT_DIPNAME( 0x1c, 0x1c, str ) PORT_CONDITION("DSW3", 0x20, PORTCOND_EQUALS, 0x20) PORT_DIPLOCATION("SW3:4,3,2") \ | |
| 734 | PORT_DIPSETTING( 0x10, "3 / 3 Stages" ) \ | |
| 735 | PORT_DIPSETTING( 0x00, "4 / 4 Stages" ) \ | |
| 736 | PORT_DIPSETTING( 0x08, "5 / 5 Stages" ) \ | |
| 737 | PORT_DIPNAME( 0x1c, 0x1c, "Event Mode Stages" ) PORT_CONDITION("DSW3", 0x20, PORTCOND_NOTEQUALS, 0x20) PORT_DIPLOCATION("SW3:4,3,2") \ | |
| 738 | PORT_DIPSETTING( 0x0c, "1 Stage" ) \ | |
| 739 | PORT_DIPSETTING( 0x14, "2 Stages" ) \ | |
| 740 | PORT_DIPSETTING( 0x10, "3 Stages" ) \ | |
| 741 | PORT_DIPSETTING( 0x00, "4 Stages" ) \ | |
| 742 | PORT_DIPSETTING( 0x08, "5 Stages" ) | |
| 743 | #else | |
| 744 | #define BEATMANIA_DSW3_STAGES_MIDDLE( str ) \ | |
| 745 | PORT_DIPNAME( 0x1c, 0x1c, str ) PORT_CONDITION("DSW3", 0x20, PORTCOND_EQUALS, 0x20) PORT_DIPLOCATION("SW3:4,3,2") \ | |
| 746 | PORT_DIPSETTING( 0x10, "3 / 3 Stages" ) \ | |
| 747 | PORT_DIPSETTING( 0x1c, "4 / 4 Stages" ) /* duplicated setting */ \ | |
| 748 | PORT_DIPSETTING( 0x0c, "4 / 4 Stages" ) /* duplicated setting */ \ | |
| 749 | PORT_DIPSETTING( 0x14, "4 / 4 Stages" ) /* duplicated setting */ \ | |
| 750 | PORT_DIPSETTING( 0x04, "4 / 4 Stages" ) /* duplicated setting */ \ | |
| 751 | PORT_DIPSETTING( 0x18, "4 / 4 Stages" ) /* duplicated setting */ \ | |
| 752 | PORT_DIPSETTING( 0x00, "4 / 4 Stages" ) \ | |
| 753 | PORT_DIPSETTING( 0x08, "5 / 5 Stages" ) \ | |
| 754 | PORT_DIPNAME( 0x1c, 0x1c, "Event Mode Stages" ) PORT_CONDITION("DSW3", 0x20, PORTCOND_NOTEQUALS, 0x20) PORT_DIPLOCATION("SW3:4,3,2") \ | |
| 755 | PORT_DIPSETTING( 0x0c, "1 Stage" ) \ | |
| 756 | PORT_DIPSETTING( 0x14, "2 Stages" ) \ | |
| 757 | PORT_DIPSETTING( 0x10, "3 Stages" ) \ | |
| 758 | PORT_DIPSETTING( 0x1c, "4 Stages" ) /* duplicated setting */ \ | |
| 759 | PORT_DIPSETTING( 0x04, "4 Stages" ) /* duplicated setting */ \ | |
| 760 | PORT_DIPSETTING( 0x18, "4 Stages" ) /* duplicated setting */ \ | |
| 761 | PORT_DIPSETTING( 0x00, "4 Stages" ) \ | |
| 762 | PORT_DIPSETTING( 0x08, "5 Stages" ) | |
| 763 | #endif | |
| 681 | 764 | |
| 682 | PORT_MODIFY("DSW") | |
| 683 | BEATMANIA_DSW1(0x80000000, 0x3f000000) | |
| 765 | #ifdef PRIORITY_EASINESS_TO_PLAY | |
| 766 | #define BEATMANIA_DSW3_STAGES_NEW( str ) \ | |
| 767 | PORT_DIPNAME( 0x1c, 0x1c, str ) PORT_CONDITION("DSW3", 0x20, PORTCOND_EQUALS, 0x20) PORT_DIPLOCATION("SW3:4,3,2") \ | |
| 768 | PORT_DIPSETTING( 0x10, "3 / 2 Stages" ) \ | |
| 769 | PORT_DIPSETTING( 0x00, "4 / 3 Stages" ) \ | |
| 770 | PORT_DIPSETTING( 0x08, "5 / 3 Stages" ) \ | |
| 771 | PORT_DIPNAME( 0x1c, 0x1c, "Event Mode Stages" ) PORT_CONDITION("DSW3", 0x20, PORTCOND_NOTEQUALS, 0x20) PORT_DIPLOCATION("SW3:4,3,2") \ | |
| 772 | PORT_DIPSETTING( 0x0c, "1 Stage" ) \ | |
| 773 | PORT_DIPSETTING( 0x14, "2 Stages" ) \ | |
| 774 | PORT_DIPSETTING( 0x10, "3 Stages" ) \ | |
| 775 | PORT_DIPSETTING( 0x00, "4 Stages" ) \ | |
| 776 | PORT_DIPSETTING( 0x08, "5 Stages" ) | |
| 777 | #else | |
| 778 | #define BEATMANIA_DSW3_STAGES_NEW( str ) \ | |
| 779 | PORT_DIPNAME( 0x1c, 0x1c, str ) PORT_CONDITION("DSW3", 0x20, PORTCOND_EQUALS, 0x20) PORT_DIPLOCATION("SW3:4,3,2") \ | |
| 780 | PORT_DIPSETTING( 0x10, "3 / 2 Stages" ) \ | |
| 781 | PORT_DIPSETTING( 0x1c, "4 / 3 Stages" ) /* duplicated setting */ \ | |
| 782 | PORT_DIPSETTING( 0x0c, "4 / 3 Stages" ) /* duplicated setting */ \ | |
| 783 | PORT_DIPSETTING( 0x14, "4 / 3 Stages" ) /* duplicated setting */ \ | |
| 784 | PORT_DIPSETTING( 0x04, "4 / 3 Stages" ) /* duplicated setting */ \ | |
| 785 | PORT_DIPSETTING( 0x18, "4 / 3 Stages" ) /* duplicated setting */ \ | |
| 786 | PORT_DIPSETTING( 0x00, "4 / 3 Stages" ) \ | |
| 787 | PORT_DIPSETTING( 0x08, "5 / 3 Stages" ) \ | |
| 788 | PORT_DIPNAME( 0x1c, 0x1c, "Event Mode Stages" ) PORT_CONDITION("DSW3", 0x20, PORTCOND_NOTEQUALS, 0x20) PORT_DIPLOCATION("SW3:4,3,2") \ | |
| 789 | PORT_DIPSETTING( 0x0c, "1 Stage" ) \ | |
| 790 | PORT_DIPSETTING( 0x14, "2 Stages" ) \ | |
| 791 | PORT_DIPSETTING( 0x10, "3 Stages" ) \ | |
| 792 | PORT_DIPSETTING( 0x1c, "4 Stages" ) /* duplicated setting */ \ | |
| 793 | PORT_DIPSETTING( 0x04, "4 Stages" ) /* duplicated setting */ \ | |
| 794 | PORT_DIPSETTING( 0x18, "4 Stages" ) /* duplicated setting */ \ | |
| 795 | PORT_DIPSETTING( 0x00, "4 Stages" ) \ | |
| 796 | PORT_DIPSETTING( 0x08, "5 Stages" ) | |
| 797 | #endif | |
| 684 | 798 | |
| 685 | PORT_BIT( 0x00100000, IP_ACTIVE_HIGH, IPT_UNKNOWN ) /* DSW 2-4 */ | |
| 686 | PORT_DIPNAME( 0x000f0000, 0x000f0000, DEF_STR( Difficulty ) ) | |
| 687 | PORT_DIPSETTING( 0x000a0000, "Level 0" ) | |
| 688 | PORT_DIPSETTING( 0x000e0000, "Level 1" ) | |
| 689 | PORT_DIPSETTING( 0x000d0000, "Level 2" ) | |
| 690 | PORT_DIPSETTING( 0x000c0000, "Level 3" ) | |
| 691 | PORT_DIPSETTING( 0x000b0000, "Level 4" ) | |
| 692 | PORT_DIPSETTING( 0x000f0000, "Level 5" ) | |
| 693 | PORT_DIPSETTING( 0x00090000, "Level 6" ) | |
| 694 | PORT_DIPSETTING( 0x00080000, "Level 7" ) | |
| 695 | PORT_DIPSETTING( 0x00070000, "Level 8" ) | |
| 696 | PORT_DIPSETTING( 0x00060000, "Level 9" ) | |
| 697 | PORT_DIPSETTING( 0x00050000, "Level 10" ) | |
| 698 | PORT_DIPSETTING( 0x00040000, "Level 11" ) | |
| 699 | PORT_DIPSETTING( 0x00030000, "Level 12" ) | |
| 700 | PORT_DIPSETTING( 0x00020000, "Level 13" ) | |
| 701 | PORT_DIPSETTING( 0x00010000, "Level 14" ) | |
| 702 | PORT_DIPSETTING( 0x00000000, "Level 15" ) | |
| 799 | #define BM1STMIX_DSW1 \ | |
| 800 | PORT_START("DSW1") \ | |
| 801 | PORT_DIPUNKNOWN_DIPLOC( 0x80, 0x80, "SW1:1" ) \ | |
| 802 | PORT_DIPUNKNOWN_DIPLOC( 0x40, 0x40, "SW1:2" ) \ | |
| 803 | PORT_DIPUNKNOWN_DIPLOC( 0x20, 0x20, "SW1:3" ) \ | |
| 804 | BEATMANIA_DSW1_COINAGE_OLD /* SW1:8,7,6,5,4 */ | |
| 805 | ||
| 806 | #define BM1STMIX_DSW2 \ | |
| 807 | PORT_START("DSW2") \ | |
| 808 | PORT_DIPNAME( 0x80, 0x80, "Enable Expert Mode" ) PORT_DIPLOCATION("SW2:1") \ | |
| 809 | PORT_DIPSETTING( 0x00, DEF_STR( No ) ) \ | |
| 810 | PORT_DIPSETTING( 0x80, DEF_STR( Yes ) ) \ | |
| 811 | BEATMANIA_DSW2_DEMOSOUNDS /* SW2:3,2 */ \ | |
| 812 | PORT_DIPUNKNOWN_DIPLOC( 0x10, 0x10, "SW2:4" ) \ | |
| 813 | PORT_DIPUNKNOWN_DIPLOC( 0x08, 0x08, "SW2:5" ) \ | |
| 814 | PORT_DIPUNKNOWN_DIPLOC( 0x04, 0x04, "SW2:6" ) \ | |
| 815 | PORT_DIPUNKNOWN_DIPLOC( 0x02, 0x02, "SW2:7" ) \ | |
| 816 | PORT_DIPUNKNOWN_DIPLOC( 0x01, 0x01, "SW2:8" ) | |
| 817 | ||
| 818 | #define BM1STMIX_DSW3 \ | |
| 819 | PORT_START("DSW3") \ | |
| 820 | PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) /* bit 7,6 don't exist */ \ | |
| 821 | PORT_DIPUNKNOWN_DIPLOC( 0x20, 0x20, "SW3:1" ) \ | |
| 822 | PORT_DIPUNKNOWN_DIPLOC( 0x10, 0x10, "SW3:2" ) \ | |
| 823 | PORT_DIPUNKNOWN_DIPLOC( 0x08, 0x08, "SW3:3" ) \ | |
| 824 | PORT_DIPUNKNOWN_DIPLOC( 0x04, 0x04, "SW3:4" ) \ | |
| 825 | PORT_DIPUNKNOWN_DIPLOC( 0x02, 0x02, "SW3:5" ) \ | |
| 826 | PORT_DIPUNKNOWN_DIPLOC( 0x01, 0x01, "SW3:6" ) | |
| 827 | ||
| 828 | #define BM2NDMIX_DSW1 \ | |
| 829 | PORT_START("DSW1") \ | |
| 830 | PORT_DIPUNKNOWN_DIPLOC( 0x80, 0x80, "SW1:1" ) \ | |
| 831 | PORT_DIPUNKNOWN_DIPLOC( 0x40, 0x40, "SW1:2" ) \ | |
| 832 | BEATMANIA_DSW1_COINAGE_NEW /* SW1:8,7,6,5,4,3 */ | |
| 833 | ||
| 834 | #define BM2NDMIX_DSW2 \ | |
| 835 | PORT_START("DSW2") \ | |
| 836 | BEATMANIA_DSW2_SCOREDISPLAY /* SW2:1 */ \ | |
| 837 | BEATMANIA_DSW2_DEMOSOUNDS /* SW2:3,2 */ \ | |
| 838 | PORT_DIPUNKNOWN_DIPLOC( 0x10, 0x10, "SW2:4" ) \ | |
| 839 | BEATMANIA_DSW2_DIFFICULITY_OLD /* SW2:3,8,7,6,5 */ | |
| 840 | ||
| 841 | #define BM2NDMIX_DSW3 \ | |
| 842 | PORT_START("DSW3") \ | |
| 843 | PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) /* bit 7,6 don't exist */ \ | |
| 844 | BEATMANIA_DSW3_EVENTMODE /* SW3:1 */ \ | |
| 845 | PORT_DIPNAME( 0x18, 0x18, "Event Mode Stages" ) PORT_DIPLOCATION("SW3:3,2") \ | |
| 846 | PORT_DIPSETTING( 0x18, "1 Stage" ) \ | |
| 847 | PORT_DIPSETTING( 0x08, "2 Stages" ) \ | |
| 848 | PORT_DIPSETTING( 0x10, "3 Stages" ) \ | |
| 849 | PORT_DIPSETTING( 0x00, "4 Stages" ) \ | |
| 850 | PORT_DIPUNKNOWN_DIPLOC( 0x04, 0x04, "SW3:4" ) \ | |
| 851 | PORT_DIPUNKNOWN_DIPLOC( 0x02, 0x02, "SW3:5" ) \ | |
| 852 | PORT_DIPUNKNOWN_DIPLOC( 0x01, 0x01, "SW3:6" ) | |
| 853 | ||
| 854 | #define BM3RDMIX_DSW3 \ | |
| 855 | PORT_START("DSW3") \ | |
| 856 | PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) /* bit 7,6 don't exist */ \ | |
| 857 | BEATMANIA_DSW3_EVENTMODE /* SW3:1 */ \ | |
| 858 | BEATMANIA_DSW3_STAGES_OLD /* SW3:4,3,2 */ \ | |
| 859 | PORT_DIPUNKNOWN_DIPLOC( 0x02, 0x02, "SW3:5" ) \ | |
| 860 | PORT_DIPUNKNOWN_DIPLOC( 0x01, 0x01, "SW3:6" ) | |
| 861 | ||
| 862 | #define BM4THMIX_DSW2( str, str2 ) \ | |
| 863 | PORT_START("DSW2") \ | |
| 864 | BEATMANIA_DSW2_SCOREDISPLAY /* SW2:1 */ \ | |
| 865 | BEATMANIA_DSW2_DEMOSOUNDS /* SW2:3,2 */ \ | |
| 866 | BEATMANIA_DSW2_LEVELDISPLAY /* SW2:4 */ \ | |
| 867 | BEATMANIA_DSW2_DIFFICULITY_NEW( str, str2 ) /* SW2:8,7,6,5 */ | |
| 868 | ||
| 869 | #define BM4THMIX_DSW3( str ) \ | |
| 870 | PORT_START("DSW3") \ | |
| 871 | PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) /* bit 7,6 don't exist */ \ | |
| 872 | BEATMANIA_DSW3_EVENTMODE /* SW3:1 */ \ | |
| 873 | BEATMANIA_DSW3_STAGES_MIDDLE( str ) /* SW3:4,3,2 */ \ | |
| 874 | PORT_DIPUNKNOWN_DIPLOC( 0x02, 0x02, "SW3:5" ) \ | |
| 875 | PORT_DIPUNKNOWN_DIPLOC( 0x01, 0x01, "SW3:6" ) | |
| 876 | ||
| 877 | #define HMCOMPM2_DSW3( str ) \ | |
| 878 | PORT_START("DSW3") \ | |
| 879 | PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) /* bit 7,6 don't exist */ \ | |
| 880 | BEATMANIA_DSW3_EVENTMODE /* SW3:1 */ \ | |
| 881 | BEATMANIA_DSW3_STAGES_MIDDLE( str ) /* SW3:4,3,2 */ \ | |
| 882 | PORT_DIPNAME( 0x02, 0x02, "Game Over Mode" ) PORT_DIPLOCATION("SW3:5") \ | |
| 883 | PORT_DIPSETTING( 0x02, "On Stage Middle" ) \ | |
| 884 | PORT_DIPSETTING( 0x00, "On Stage Last" ) \ | |
| 885 | PORT_DIPUNKNOWN_DIPLOC( 0x01, 0x01, "SW3:6" ) | |
| 886 | ||
| 887 | #ifdef PRIORITY_EASINESS_TO_PLAY | |
| 888 | #define BMDCT_DSW3( str ) \ | |
| 889 | PORT_START("DSW3") \ | |
| 890 | PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) /* bit 7,6 don't exist */ \ | |
| 891 | BEATMANIA_DSW3_EVENTMODE /* SW3:1 */ \ | |
| 892 | PORT_DIPNAME( 0x1c, 0x1c, str ) PORT_CONDITION("DSW3", 0x20, PORTCOND_EQUALS, 0x20) PORT_DIPLOCATION("SW3:4,3,2") \ | |
| 893 | PORT_DIPSETTING( 0x1c, "3 / 3 Stages" ) \ | |
| 894 | PORT_DIPSETTING( 0x10, "4 / 4 Stages" ) \ | |
| 895 | PORT_DIPNAME( 0x1c, 0x1c, "Event Mode Stages" ) PORT_CONDITION("DSW3", 0x20, PORTCOND_NOTEQUALS, 0x20) PORT_DIPLOCATION("SW3:4,3,2") \ | |
| 896 | PORT_DIPSETTING( 0x0c, "1 Stage" ) \ | |
| 897 | PORT_DIPSETTING( 0x14, "2 Stages" ) \ | |
| 898 | PORT_DIPSETTING( 0x10, "3 Stages" ) \ | |
| 899 | PORT_DIPSETTING( 0x1c, "4 Stages" ) \ | |
| 900 | PORT_DIPSETTING( 0x08, "5 Stages" ) \ | |
| 901 | PORT_DIPUNKNOWN_DIPLOC( 0x02, 0x02, "SW3:5" ) \ | |
| 902 | PORT_DIPUNKNOWN_DIPLOC( 0x01, 0x01, "SW3:6" ) | |
| 903 | #else | |
| 904 | #define BMDCT_DSW3( str ) \ | |
| 905 | PORT_START("DSW3") \ | |
| 906 | PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) /* bit 7,6 don't exist */ \ | |
| 907 | BEATMANIA_DSW3_EVENTMODE /* SW3:1 */ \ | |
| 908 | PORT_DIPNAME( 0x1c, 0x1c, str ) PORT_CONDITION("DSW3", 0x20, PORTCOND_EQUALS, 0x20) PORT_DIPLOCATION("SW3:4,3,2") \ | |
| 909 | PORT_DIPSETTING( 0x1c, "3 / 3 Stages" ) \ | |
| 910 | PORT_DIPSETTING( 0x0c, "3 / 3 Stages" ) /* duplicated setting */ \ | |
| 911 | PORT_DIPSETTING( 0x14, "3 / 3 Stages" ) /* duplicated setting */ \ | |
| 912 | PORT_DIPSETTING( 0x04, "3 / 3 Stages" ) /* duplicated setting */ \ | |
| 913 | PORT_DIPSETTING( 0x18, "3 / 3 Stages" ) /* duplicated setting */ \ | |
| 914 | PORT_DIPSETTING( 0x08, "3 / 3 Stages" ) /* duplicated setting */ \ | |
| 915 | PORT_DIPSETTING( 0x00, "3 / 3 Stages" ) /* duplicated setting */ \ | |
| 916 | PORT_DIPSETTING( 0x10, "4 / 4 Stages" ) \ | |
| 917 | PORT_DIPNAME( 0x1c, 0x1c, "Event Mode Stages" ) PORT_CONDITION("DSW3", 0x20, PORTCOND_NOTEQUALS, 0x20) PORT_DIPLOCATION("SW3:4,3,2") \ | |
| 918 | PORT_DIPSETTING( 0x0c, "1 Stage" ) \ | |
| 919 | PORT_DIPSETTING( 0x14, "2 Stages" ) \ | |
| 920 | PORT_DIPSETTING( 0x10, "3 Stages" ) \ | |
| 921 | PORT_DIPSETTING( 0x1c, "4 Stages" ) \ | |
| 922 | PORT_DIPSETTING( 0x04, "4 Stages" ) /* duplicated setting */ \ | |
| 923 | PORT_DIPSETTING( 0x18, "4 Stages" ) /* duplicated setting */ \ | |
| 924 | PORT_DIPSETTING( 0x00, "4 Stages" ) /* duplicated setting */ \ | |
| 925 | PORT_DIPSETTING( 0x08, "5 Stages" ) \ | |
| 926 | PORT_DIPUNKNOWN_DIPLOC( 0x02, 0x02, "SW3:5" ) \ | |
| 927 | PORT_DIPUNKNOWN_DIPLOC( 0x01, 0x01, "SW3:6" ) | |
| 928 | #endif | |
| 929 | ||
| 930 | #define BM6THMIX_DSW3( str ) \ | |
| 931 | PORT_START("DSW3") \ | |
| 932 | PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) /* bit 7,6 don't exist */ \ | |
| 933 | BEATMANIA_DSW3_EVENTMODE /* SW3:1 */ \ | |
| 934 | BEATMANIA_DSW3_STAGES_NEW( str ) /* SW3:4,3,2 */ \ | |
| 935 | PORT_DIPUNKNOWN_DIPLOC( 0x02, 0x02, "SW3:5" ) \ | |
| 936 | PORT_DIPUNKNOWN_DIPLOC( 0x01, 0x01, "SW3:6" ) | |
| 937 | ||
| 938 | static INPUT_PORTS_START( bm1stmix ) | |
| 939 | PORT_INCLUDE( beatmania_btn ) | |
| 940 | BM1STMIX_DSW1 | |
| 941 | BM1STMIX_DSW2 | |
| 942 | BM1STMIX_DSW3 | |
| 703 | 943 | INPUT_PORTS_END |
| 704 | 944 | |
| 705 | static INPUT_PORTS_START( bm4thmix ) | |
| 706 | PORT_INCLUDE( beatmania ) | |
| 945 | static INPUT_PORTS_START( bm2ndmix ) | |
| 946 | PORT_INCLUDE( beatmania_btn ) | |
| 947 | BM2NDMIX_DSW1 | |
| 948 | BM2NDMIX_DSW2 | |
| 949 | BM2NDMIX_DSW3 | |
| 950 | /* "Free Hidden Songs" 3-3=On 3-6=On */ | |
| 951 | PORT_MODIFY("DSW3") | |
| 952 | BEATMANIA_DSW3_EVENTMODE /* SW3:1 */ | |
| 953 | PORT_DIPNAME( 0x10, 0x10, "Unused (Used if Event Mode)" ) PORT_CONDITION("DSW3", 0x20, PORTCOND_EQUALS, 0x20) PORT_DIPLOCATION("SW3:2") | |
| 954 | PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) | |
| 955 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) | |
| 956 | PORT_DIPNAME( 0x08, 0x08, "Free Hidden Songs (step1of2)" ) PORT_CONDITION("DSW3", 0x20, PORTCOND_EQUALS, 0x20) PORT_DIPLOCATION("SW3:3") | |
| 957 | PORT_DIPSETTING( 0x08, "No (Off)" ) | |
| 958 | PORT_DIPSETTING( 0x00, "Yes (On)" ) | |
| 959 | PORT_DIPNAME( 0x18, 0x18, "Event Mode Stages" ) PORT_CONDITION("DSW3", 0x20, PORTCOND_NOTEQUALS, 0x20) PORT_DIPLOCATION("SW3:3,2") | |
| 960 | PORT_DIPSETTING( 0x18, "1 Stage" ) | |
| 961 | PORT_DIPSETTING( 0x08, "2 Stages" ) | |
| 962 | PORT_DIPSETTING( 0x10, "3 Stages" ) | |
| 963 | PORT_DIPSETTING( 0x00, "4 Stages" ) | |
| 964 | PORT_DIPNAME( 0x01, 0x01, "Free Hidden Songs (step2of2)" ) PORT_CONDITION("DSW3", 0x20, PORTCOND_EQUALS, 0x20) PORT_DIPLOCATION("SW3:6") | |
| 965 | PORT_DIPSETTING( 0x01, "No (Off)" ) | |
| 966 | PORT_DIPSETTING( 0x00, "Yes (On)" ) | |
| 967 | PORT_DIPNAME( 0x01, 0x01, "Unused (Used if not Event Mode)" ) PORT_CONDITION("DSW3", 0x20, PORTCOND_NOTEQUALS, 0x20) PORT_DIPLOCATION("SW3:6") | |
| 968 | PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) | |
| 969 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) | |
| 970 | /* "Free Hidden Songs" 3-3=On 3-6=On */ | |
| 971 | INPUT_PORTS_END | |
| 707 | 972 | |
| 708 | PORT_MODIFY("INPUTS") | |
| 709 | PORT_DIPNAME( 0x02000000, 0x02000000, "Secret Expert Course" ) /* DSW 3-5 */ | |
| 710 | PORT_DIPSETTING( 0x02000000, DEF_STR( Off ) ) | |
| 711 | PORT_DIPSETTING( 0x00000000, DEF_STR( On ) ) | |
| 973 | static INPUT_PORTS_START( bm3rdmix ) | |
| 974 | PORT_INCLUDE( beatmania_btn ) | |
| 975 | BM2NDMIX_DSW1 | |
| 976 | BM2NDMIX_DSW2 | |
| 977 | BM3RDMIX_DSW3 | |
| 978 | INPUT_PORTS_END | |
| 712 | 979 | |
| 713 | PORT_MODIFY("DSW") | |
| 714 | BEATMANIA_DSW1(0x40000000, 0x3f000000) | |
| 980 | static INPUT_PORTS_START( bmcompmx ) | |
| 981 | PORT_INCLUDE( beatmania_btn ) | |
| 982 | BM2NDMIX_DSW1 | |
| 983 | BM2NDMIX_DSW2 | |
| 984 | BM3RDMIX_DSW3 | |
| 985 | /* "Free Secret Expert Course" 1-1=Off 1-2=On 2-4=On 3-5=Off 3-6=On */ | |
| 986 | PORT_MODIFY("DSW1") | |
| 987 | PORT_DIPNAME( 0x80, 0x80, "Free Secret Expert Course (step1of5)" ) PORT_DIPLOCATION("SW1:1") | |
| 988 | PORT_DIPSETTING( 0x80, "Yes (Off)" ) | |
| 989 | PORT_DIPSETTING( 0x00, "No (On)" ) | |
| 990 | PORT_DIPNAME( 0x40, 0x40, "Free Secret Expert Course (step2of5)" ) PORT_DIPLOCATION("SW1:2") | |
| 991 | PORT_DIPSETTING( 0x40, "No (Off)" ) | |
| 992 | PORT_DIPSETTING( 0x00, "Yes (On)" ) | |
| 993 | PORT_MODIFY("DSW2") | |
| 994 | PORT_DIPNAME( 0x10, 0x10, "Free Secret Expert Course (step3of5)" ) PORT_DIPLOCATION("SW2:4") | |
| 995 | PORT_DIPSETTING( 0x10, "No (Off)" ) | |
| 996 | PORT_DIPSETTING( 0x00, "Yes (On)" ) | |
| 997 | PORT_MODIFY("DSW3") | |
| 998 | PORT_DIPNAME( 0x02, 0x02, "Free Secret Expert Course (step4of5)" ) PORT_DIPLOCATION("SW3:5") | |
| 999 | PORT_DIPSETTING( 0x02, "Yes (Off)" ) | |
| 1000 | PORT_DIPSETTING( 0x00, "No (On)" ) | |
| 1001 | PORT_DIPNAME( 0x01, 0x01, "Free Secret Expert Course (step5of5)" ) PORT_DIPLOCATION("SW3:6") | |
| 1002 | PORT_DIPSETTING( 0x01, "No (Off)" ) | |
| 1003 | PORT_DIPSETTING( 0x00, "Yes (On)" ) | |
| 1004 | /* "Free Secret Expert Course" 1-1=Off 1-2=On 2-4=On 3-5=Off 3-6=On */ | |
| 715 | 1005 | INPUT_PORTS_END |
| 716 | 1006 | |
| 1007 | static INPUT_PORTS_START( bm4thmix ) | |
| 1008 | PORT_INCLUDE( beatmania_btn ) | |
| 1009 | BM2NDMIX_DSW1 | |
| 1010 | BM4THMIX_DSW2( "Basic / Hard Mode Difficulty", "Expert Mode Difficulty" ) | |
| 1011 | BM4THMIX_DSW3( "Basic / Hard Mode Stages" ) | |
| 1012 | /* "Free Secret Expert Course" 1-1=On 1-2=Off 2-1=On 3-5=On */ | |
| 1013 | PORT_MODIFY("DSW1") | |
| 1014 | PORT_DIPNAME( 0x80, 0x80, "Free Secret Expert Course (step1of4)" ) PORT_DIPLOCATION("SW1:1") | |
| 1015 | PORT_DIPSETTING( 0x80, "No (Off)" ) | |
| 1016 | PORT_DIPSETTING( 0x00, "Yes (On)" ) | |
| 1017 | PORT_DIPNAME( 0x40, 0x40, "Free Secret Expert Course (step2of4)" ) PORT_DIPLOCATION("SW1:2") | |
| 1018 | PORT_DIPSETTING( 0x40, "Yes (Off)" ) | |
| 1019 | PORT_DIPSETTING( 0x00, "No (On)" ) | |
| 1020 | PORT_MODIFY("DSW2") | |
| 1021 | PORT_DIPNAME( 0x80, 0x80, "Score Display / Free Secret Expert Course (step3of4)" ) PORT_DIPLOCATION("SW2:1") | |
| 1022 | PORT_DIPSETTING( 0x80, "On / No (Off)" ) | |
| 1023 | PORT_DIPSETTING( 0x00, "Off / Yes (On)" ) | |
| 1024 | PORT_MODIFY("DSW3") | |
| 1025 | PORT_DIPNAME( 0x02, 0x02, "Free Secret Expert Course (step4of4)" ) PORT_DIPLOCATION("SW3:5") | |
| 1026 | PORT_DIPSETTING( 0x02, "No (Off)" ) | |
| 1027 | PORT_DIPSETTING( 0x00, "Yes (On)" ) | |
| 1028 | PORT_DIPNAME( 0x01, 0x01, "Score Display (if Free Secret Expert Course)" ) PORT_DIPLOCATION("SW3:6") | |
| 1029 | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) | |
| 1030 | PORT_DIPSETTING( 0x01, DEF_STR( On ) ) | |
| 1031 | /* "Free Secret Expert Course" 1-1=On 1-2=Off 2-1=On 3-5=On */ | |
| 1032 | INPUT_PORTS_END | |
| 1033 | ||
| 1034 | static INPUT_PORTS_START( bm5thmix ) /* and bmcompm2 */ | |
| 1035 | PORT_INCLUDE( beatmania_btn ) | |
| 1036 | BM2NDMIX_DSW1 | |
| 1037 | BM4THMIX_DSW2( "Basic / Hard Mode Difficulty", "Expert Mode Difficulty" ) | |
| 1038 | BM4THMIX_DSW3( "Basic / Hard Mode Stages" ) | |
| 1039 | INPUT_PORTS_END | |
| 1040 | ||
| 717 | 1041 | static INPUT_PORTS_START( hmcompm2 ) |
| 718 | PORT_INCLUDE( beatmania ) | |
| 1042 | PORT_INCLUDE( beatmania_btn ) | |
| 1043 | BM2NDMIX_DSW1 | |
| 1044 | BM4THMIX_DSW2( "Basic / Hard Mode Difficulty", "Expert Mode Difficulty" ) | |
| 1045 | BM4THMIX_DSW3( "Basic / Hard Mode Stages" ) | |
| 1046 | PORT_MODIFY("DSW3") | |
| 1047 | PORT_DIPNAME( 0x02, 0x02, "Game Over Mode" ) PORT_DIPLOCATION("SW3:5") | |
| 1048 | PORT_DIPSETTING( 0x02, "On Stage Middle" ) | |
| 1049 | PORT_DIPSETTING( 0x00, "On Stage Last" ) | |
| 1050 | INPUT_PORTS_END | |
| 719 | 1051 | |
| 720 | PORT_MODIFY("INPUTS") | |
| 721 | PORT_DIPNAME( 0x02000000, 0x02000000, "Game Over Mode" ) | |
| 722 | PORT_DIPSETTING( 0x02000000, "On Stage Middle" ) | |
| 723 | PORT_DIPSETTING( 0x00000000, "On Stage Last" ) | |
| 1052 | static INPUT_PORTS_START( bmclubmx ) | |
| 1053 | PORT_INCLUDE( beatmania_btn ) | |
| 1054 | BM2NDMIX_DSW1 | |
| 1055 | BM4THMIX_DSW2( "Normal / Maniac Mode Difficulty", "Expert Mode Difficulty" ) | |
| 1056 | BM4THMIX_DSW3( "Normal / Maniac Mode Stages" ) | |
| 724 | 1057 | INPUT_PORTS_END |
| 725 | 1058 | |
| 726 | 1059 | static INPUT_PORTS_START( bmdct ) |
| 727 | PORT_INCLUDE( beatmania ) | |
| 1060 | PORT_INCLUDE( beatmania_btn ) | |
| 1061 | BM2NDMIX_DSW1 | |
| 1062 | BM4THMIX_DSW2( "Basic / Hard Mode Difficulty", "Monkey Live Mode Difficulty" ) | |
| 1063 | BMDCT_DSW3( "Basic / Hard Mode Stages" ) | |
| 1064 | INPUT_PORTS_END | |
| 728 | 1065 | |
| 729 | PORT_MODIFY("INPUTS") | |
| 730 | PORT_DIPNAME( 0x1c000000, 0x1c000000, "Normal / Event Mode Stages" ) | |
| 731 | PORT_DIPSETTING( 0x0c000000, "3 / 1" ) | |
| 732 | PORT_DIPSETTING( 0x14000000, "3 / 2" ) | |
| 733 | PORT_DIPSETTING( 0x10000000, "4 / 3" ) | |
| 734 | PORT_DIPSETTING( 0x1c000000, "3 / 4" ) | |
| 735 | PORT_DIPSETTING( 0x08000000, "3 / 5" ) | |
| 1066 | static INPUT_PORTS_START( bmcorerm ) | |
| 1067 | PORT_INCLUDE( beatmania_btn ) | |
| 1068 | BM2NDMIX_DSW1 | |
| 1069 | BM4THMIX_DSW2( "Normal / Hard Mode Difficulty", "Expert Mode Difficulty" ) | |
| 1070 | BM4THMIX_DSW3( "Normal / Hard Mode Stages" ) | |
| 736 | 1071 | INPUT_PORTS_END |
| 737 | 1072 | |
| 738 | #ifdef UNUSED_DEFINITION | |
| 739 | static INPUT_PORTS_START( popn1 ) | |
| 740 | PORT_START("INPUTS") | |
| 741 | PORT_BIT( 0x00000010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) | |
| 742 | PORT_BIT( 0x00000008, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) | |
| 743 | PORT_BIT( 0x00000004, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) | |
| 744 | PORT_BIT( 0x00000002, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(1) | |
| 745 | PORT_BIT( 0x00000001, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(1) | |
| 746 | PORT_BIT( 0x00000020, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 747 | PORT_BIT( 0x00000040, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_PLAYER(1) | |
| 748 | PORT_BIT( 0x00000080, IP_ACTIVE_LOW, IPT_BUTTON7 ) PORT_PLAYER(1) | |
| 749 | PORT_BIT( 0x00000100, IP_ACTIVE_LOW, IPT_BUTTON8 ) PORT_PLAYER(1) | |
| 750 | PORT_BIT( 0x00000200, IP_ACTIVE_LOW, IPT_BUTTON9 ) PORT_PLAYER(1) | |
| 751 | PORT_BIT( 0x00000400, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 752 | PORT_BIT( 0x00000800, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 753 | PORT_BIT( 0x00001000, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 754 | PORT_BIT( 0x00002000, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 755 | PORT_BIT( 0x00004000, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 756 | PORT_BIT( 0x00008000, IP_ACTIVE_LOW, IPT_COIN1 ) | |
| 1073 | static INPUT_PORTS_START( bm6thmix ) /* bm7thmix, and bmfinal */ | |
| 1074 | PORT_INCLUDE( beatmania_btn ) | |
| 1075 | BM2NDMIX_DSW1 | |
| 1076 | BM4THMIX_DSW2( "Normal / Free Mode Difficulty", "Expert Mode Difficulty" ) | |
| 1077 | BM6THMIX_DSW3( "Normal / Free Mode Stages" ) | |
| 1078 | INPUT_PORTS_END | |
| 757 | 1079 | |
| 758 | PORT_BIT( 0x00010000, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME(DEF_STR( Test )) PORT_CODE(KEYCODE_F2) /* TEST SW */ | |
| 759 | PORT_BIT( 0x00040000, IP_ACTIVE_LOW, IPT_SERVICE1 ) /* SERVICE */ | |
| 760 | PORT_BIT( 0x00020000, IP_ACTIVE_LOW, IPT_SERVICE2 ) /* RESET SW */ | |
| 761 | PORT_BIT( 0x00f80000, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 762 | PORT_BIT( 0xec000000, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 763 | PORT_DIPNAME( 0x10000000, 0x10000000, "All Song Mode" ) /* DSW 3-2 */ | |
| 764 | PORT_DIPSETTING( 0x10000000, DEF_STR( Off ) ) | |
| 765 | PORT_DIPSETTING( 0x00000000, DEF_STR( On ) ) | |
| 766 | PORT_DIPNAME( 0x02000000, 0x02000000, "Enable\"RAVE\"" ) /* DSW 3-5 */ | |
| 767 | PORT_DIPSETTING( 0x02000000, DEF_STR( Off ) ) | |
| 768 | PORT_DIPSETTING( 0x00000000, DEF_STR( On ) ) | |
| 769 | PORT_DIPNAME( 0x01000000, 0x01000000, "Bonus Track" ) /* DSW 3-6 */ | |
| 770 | PORT_DIPSETTING( 0x01000000, DEF_STR( Off ) ) | |
| 771 | PORT_DIPSETTING( 0x00000000, DEF_STR( On ) ) | |
| 772 | 1080 | |
| 773 | PORT_START("DSW") | |
| 774 | PORT_DIPNAME( 0xc0000000, 0xc0000000, "Jamming Gauge Blocks" ) | |
| 775 | PORT_DIPSETTING( 0x80000000, "5" ) | |
| 776 | PORT_DIPSETTING( 0xc0000000, "6" ) | |
| 777 | PORT_DIPSETTING( 0x40000000, "7" ) | |
| 778 | PORT_DIPSETTING( 0x00000000, "8" ) | |
| 779 | PORT_BIT( 0x30000000, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 780 | PORT_DIPNAME( 0x0f000000, 0x0f000000, DEF_STR( Coinage ) ) | |
| 781 | PORT_DIPSETTING( 0x01000000, "1P 5C / Continue 5C" ) | |
| 782 | PORT_DIPSETTING( 0x02000000, "1P 5C / Continue 4C" ) | |
| 783 | PORT_DIPSETTING( 0x03000000, "1P 5C / Continue 3C" ) | |
| 784 | PORT_DIPSETTING( 0x04000000, "1P 5C / Continue 2C" ) | |
| 785 | PORT_DIPSETTING( 0x05000000, "1P 5C / Continue 1C" ) | |
| 786 | PORT_DIPSETTING( 0x06000000, "1P 4C / Continue 4C" ) | |
| 787 | PORT_DIPSETTING( 0x07000000, "1P 4C / Continue 3C" ) | |
| 788 | PORT_DIPSETTING( 0x08000000, "1P 4C / Continue 2C" ) | |
| 789 | PORT_DIPSETTING( 0x09000000, "1P 4C / Continue 1C" ) | |
| 790 | PORT_DIPSETTING( 0x0a000000, "1P 3C / Continue 3C" ) | |
| 791 | PORT_DIPSETTING( 0x0b000000, "1P 3C / Continue 2C" ) | |
| 792 | PORT_DIPSETTING( 0x0c000000, "1P 3C / Continue 1C" ) | |
| 793 | PORT_DIPSETTING( 0x0d000000, "1P 2C / Continue 2C" ) | |
| 794 | PORT_DIPSETTING( 0x0f000000, "1P 2C / Continue 1C" ) | |
| 795 | PORT_DIPSETTING( 0x0e000000, "1P 1C / Continue 1C" ) | |
| 796 | PORT_DIPSETTING( 0x00000000, DEF_STR( Free_Play ) ) | |
| 1081 | //--------- Pop'n Music | |
| 797 | 1082 | |
| 798 | PORT_DIPNAME( 0x00800000, 0x00800000, "Score Display" ) | |
| 799 | PORT_DIPSETTING( 0x00000000, DEF_STR( Off ) ) | |
| 800 | PORT_DIPSETTING( 0x00800000, DEF_STR( On ) ) | |
| 801 | PORT_DIPNAME( 0x00600000, 0x00600000, DEF_STR( Demo_Sounds ) ) | |
| 802 | PORT_DIPSETTING( 0x00600000, "Loud" ) | |
| 803 | PORT_DIPSETTING( 0x00200000, DEF_STR ( Medium ) ) | |
| 804 | PORT_DIPSETTING( 0x00400000, DEF_STR ( Low ) ) | |
| 805 | PORT_DIPSETTING( 0x00000000, "Silent" ) | |
| 806 | PORT_DIPNAME( 0x00100000, 0x00100000, "Normal Mode Jamming" ) | |
| 807 | PORT_DIPSETTING( 0x00000000, DEF_STR( Off ) ) | |
| 808 | PORT_DIPSETTING( 0x00100000, DEF_STR( On ) ) | |
| 809 | PORT_DIPNAME( 0x000c0000, 0x000c0000, "Guage Decrement Level" ) | |
| 810 | PORT_DIPSETTING( 0x00040000, "0" ) | |
| 811 | PORT_DIPSETTING( 0x000c0000, "1" ) | |
| 812 | PORT_DIPSETTING( 0x00080000, "2" ) | |
| 813 | PORT_DIPSETTING( 0x00000000, "3" ) | |
| 814 | PORT_DIPNAME( 0x00030000, 0x00030000, "Guage Increment Level" ) | |
| 815 | PORT_DIPSETTING( 0x00010000, "0" ) | |
| 816 | PORT_DIPSETTING( 0x00030000, "1" ) | |
| 817 | PORT_DIPSETTING( 0x00020000, "2" ) | |
| 818 | PORT_DIPSETTING( 0x00000000, "3" ) | |
| 819 | ||
| 820 | PORT_BIT( 0x0000ffff, IP_ACTIVE_LOW, IPT_UNUSED ) | |
| 1083 | #ifdef UNUSED_DEFINITION | |
| 1084 | static INPUT_PORTS_START( popnmusic_btn ) | |
| 1085 | PORT_START("BTN1") | |
| 1086 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) | |
| 1087 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) | |
| 1088 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) | |
| 1089 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(1) | |
| 1090 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(1) | |
| 1091 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 1092 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_PLAYER(1) | |
| 1093 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON7 ) PORT_PLAYER(1) | |
| 1094 | PORT_START("BTN2") | |
| 1095 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON8 ) PORT_PLAYER(1) | |
| 1096 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON9 ) PORT_PLAYER(1) | |
| 1097 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* Used by beatmania as P2 BUTTON 5 */ | |
| 1098 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 1099 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* Used by beatmania as P1 START */ | |
| 1100 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* Used by beatmania as P2 START */ | |
| 1101 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* Used by beatmania as EFFECT */ | |
| 1102 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 ) | |
| 1103 | PORT_START("BTN3") | |
| 1104 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME(DEF_STR( Test )) PORT_CODE(KEYCODE_F2) /* TEST SW */ | |
| 1105 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_NAME("Service") /* SERVICE */ | |
| 1106 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SERVICE2 ) PORT_NAME("Reset") /* RESET SW */ | |
| 1107 | PORT_BIT( 0xf8, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 1108 | PORT_START("UNK1") | |
| 1109 | PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) | |
| 1110 | PORT_START("UNK2") | |
| 1111 | PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) | |
| 1112 | //PORT_START("TT1") /* turn table 1P */ | |
| 1113 | //PORT_BIT( 0xff, 0x00, IPT_DIAL ) PORT_SENSITIVITY(30) PORT_KEYDELTA(15) PORT_PLAYER(1) | |
| 1114 | //PORT_START("TT2") /* turn table 2P */ | |
| 1115 | //PORT_BIT( 0xff, 0x00, IPT_DIAL ) PORT_SENSITIVITY(30) PORT_KEYDELTA(15) PORT_PLAYER(2) | |
| 821 | 1116 | INPUT_PORTS_END |
| 822 | 1117 | #endif |
| 823 | 1118 | |
| 824 | #ifdef UNUSED_DEFINITION | |
| 825 | static INPUT_PORTS_START( popnmusic ) | |
| 826 | PORT_INCLUDE( popn1 ) | |
| 1119 | #define POPN_DSW1_COINAGE_OLD \ | |
| 1120 | PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW1:8,7,6,5") \ | |
| 1121 | PORT_DIPSETTING( 0x01, "1P 5C / Continue 5C" ) \ | |
| 1122 | PORT_DIPSETTING( 0x02, "1P 5C / Continue 4C" ) \ | |
| 1123 | PORT_DIPSETTING( 0x03, "1P 5C / Continue 3C" ) \ | |
| 1124 | PORT_DIPSETTING( 0x04, "1P 5C / Continue 2C" ) \ | |
| 1125 | PORT_DIPSETTING( 0x05, "1P 5C / Continue 1C" ) \ | |
| 1126 | PORT_DIPSETTING( 0x06, "1P 4C / Continue 4C" ) \ | |
| 1127 | PORT_DIPSETTING( 0x07, "1P 4C / Continue 3C" ) \ | |
| 1128 | PORT_DIPSETTING( 0x08, "1P 4C / Continue 2C" ) \ | |
| 1129 | PORT_DIPSETTING( 0x09, "1P 4C / Continue 1C" ) \ | |
| 1130 | PORT_DIPSETTING( 0x0a, "1P 3C / Continue 3C" ) \ | |
| 1131 | PORT_DIPSETTING( 0x0b, "1P 3C / Continue 2C" ) \ | |
| 1132 | PORT_DIPSETTING( 0x0c, "1P 3C / Continue 1C" ) \ | |
| 1133 | PORT_DIPSETTING( 0x0d, "1P 2C / Continue 2C" ) \ | |
| 1134 | PORT_DIPSETTING( 0x0f, "1P 2C / Continue 1C" ) \ | |
| 1135 | PORT_DIPSETTING( 0x0e, "1P 1C / Continue 1C" ) \ | |
| 1136 | PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) | |
| 827 | 1137 | |
| 828 | PORT_MODIFY("INPUTS") | |
| 829 | PORT_BIT( 0xf7000000, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 830 | PORT_DIPNAME( 0x08000000, 0x08000000, "All Song Mode" ) /* DSW 3-3 */ | |
| 831 | PORT_DIPSETTING( 0x08000000, DEF_STR( Off ) ) | |
| 832 | PORT_DIPSETTING( 0x00000000, DEF_STR( On ) ) | |
| 1138 | #define POPN_DSW1_COINAGE_NEW \ | |
| 1139 | PORT_DIPNAME( 0x1f, 0x1f, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW1:8,7,6,5,4") \ | |
| 1140 | PORT_DIPSETTING( 0x01, "1P 8C / Continue 8C" ) \ | |
| 1141 | PORT_DIPSETTING( 0x02, "1P 8C / Continue 7C" ) \ | |
| 1142 | PORT_DIPSETTING( 0x03, "1P 8C / Continue 6C" ) \ | |
| 1143 | PORT_DIPSETTING( 0x04, "1P 8C / Continue 5C" ) \ | |
| 1144 | PORT_DIPSETTING( 0x05, "1P 8C / Continue 4C" ) \ | |
| 1145 | PORT_DIPSETTING( 0x06, "1P 8C / Continue 3C" ) \ | |
| 1146 | PORT_DIPSETTING( 0x07, "1P 7C / Continue 7C" ) \ | |
| 1147 | PORT_DIPSETTING( 0x08, "1P 7C / Continue 6C" ) \ | |
| 1148 | PORT_DIPSETTING( 0x09, "1P 7C / Continue 5C" ) \ | |
| 1149 | PORT_DIPSETTING( 0x0a, "1P 7C / Continue 4C" ) \ | |
| 1150 | PORT_DIPSETTING( 0x0b, "1P 7C / Continue 3C" ) \ | |
| 1151 | PORT_DIPSETTING( 0x0c, "1P 6C / Continue 6C" ) \ | |
| 1152 | PORT_DIPSETTING( 0x0d, "1P 6C / Continue 5C" ) \ | |
| 1153 | PORT_DIPSETTING( 0x0e, "1P 6C / Continue 4C" ) \ | |
| 1154 | PORT_DIPSETTING( 0x0f, "1P 6C / Continue 3C" ) \ | |
| 1155 | PORT_DIPSETTING( 0x10, "1P 6C / Continue 2C" ) \ | |
| 1156 | PORT_DIPSETTING( 0x11, "1P 5C / Continue 5C" ) \ | |
| 1157 | PORT_DIPSETTING( 0x12, "1P 5C / Continue 4C" ) \ | |
| 1158 | PORT_DIPSETTING( 0x13, "1P 5C / Continue 3C" ) \ | |
| 1159 | PORT_DIPSETTING( 0x14, "1P 5C / Continue 2C" ) \ | |
| 1160 | PORT_DIPSETTING( 0x15, "1P 5C / Continue 1C" ) \ | |
| 1161 | PORT_DIPSETTING( 0x16, "1P 4C / Continue 4C" ) \ | |
| 1162 | PORT_DIPSETTING( 0x17, "1P 4C / Continue 3C" ) \ | |
| 1163 | PORT_DIPSETTING( 0x18, "1P 4C / Continue 2C" ) \ | |
| 1164 | PORT_DIPSETTING( 0x19, "1P 4C / Continue 1C" ) \ | |
| 1165 | PORT_DIPSETTING( 0x1a, "1P 3C / Continue 3C" ) \ | |
| 1166 | PORT_DIPSETTING( 0x1b, "1P 3C / Continue 2C" ) \ | |
| 1167 | PORT_DIPSETTING( 0x1c, "1P 3C / Continue 1C" ) \ | |
| 1168 | PORT_DIPSETTING( 0x1d, "1P 2C / Continue 2C" ) \ | |
| 1169 | PORT_DIPSETTING( 0x1f, "1P 2C / Continue 1C" ) \ | |
| 1170 | PORT_DIPSETTING( 0x1e, "1P 1C / Continue 1C" ) \ | |
| 1171 | PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) | |
| 833 | 1172 | |
| 834 | PORT_MODIFY("DSW") | |
| 835 | PORT_DIPNAME( 0x20000000, 0x20000000, "Normal Mode Jamming" ) | |
| 836 | PORT_DIPSETTING( 0x20000000, DEF_STR( Off ) ) | |
| 837 | PORT_DIPSETTING( 0x00000000, DEF_STR( On ) ) | |
| 838 | PORT_DIPNAME( 0x1f000000, 0x1f000000, DEF_STR( Coinage ) ) | |
| 839 | PORT_DIPSETTING( 0x01000000, "1P 8C / Continue 8C" ) | |
| 840 | PORT_DIPSETTING( 0x02000000, "1P 8C / Continue 7C" ) | |
| 841 | PORT_DIPSETTING( 0x03000000, "1P 8C / Continue 6C" ) | |
| 842 | PORT_DIPSETTING( 0x04000000, "1P 8C / Continue 5C" ) | |
| 843 | PORT_DIPSETTING( 0x05000000, "1P 8C / Continue 4C" ) | |
| 844 | PORT_DIPSETTING( 0x06000000, "1P 8C / Continue 3C" ) | |
| 845 | PORT_DIPSETTING( 0x07000000, "1P 7C / Continue 7C" ) | |
| 846 | PORT_DIPSETTING( 0x08000000, "1P 7C / Continue 6C" ) | |
| 847 | PORT_DIPSETTING( 0x09000000, "1P 7C / Continue 5C" ) | |
| 848 | PORT_DIPSETTING( 0x0a000000, "1P 7C / Continue 4C" ) | |
| 849 | PORT_DIPSETTING( 0x0b000000, "1P 7C / Continue 3C" ) | |
| 850 | PORT_DIPSETTING( 0x0c000000, "1P 6C / Continue 6C" ) | |
| 851 | PORT_DIPSETTING( 0x0d000000, "1P 6C / Continue 5C" ) | |
| 852 | PORT_DIPSETTING( 0x0e000000, "1P 6C / Continue 4C" ) | |
| 853 | PORT_DIPSETTING( 0x0f000000, "1P 6C / Continue 3C" ) | |
| 854 | PORT_DIPSETTING( 0x10000000, "1P 6C / Continue 2C" ) | |
| 855 | PORT_DIPSETTING( 0x11000000, "1P 5C / Continue 5C" ) | |
| 856 | PORT_DIPSETTING( 0x12000000, "1P 5C / Continue 4C" ) | |
| 857 | PORT_DIPSETTING( 0x13000000, "1P 5C / Continue 3C" ) | |
| 858 | PORT_DIPSETTING( 0x14000000, "1P 5C / Continue 2C" ) | |
| 859 | PORT_DIPSETTING( 0x15000000, "1P 5C / Continue 1C" ) | |
| 860 | PORT_DIPSETTING( 0x16000000, "1P 4C / Continue 4C" ) | |
| 861 | PORT_DIPSETTING( 0x17000000, "1P 4C / Continue 3C" ) | |
| 862 | PORT_DIPSETTING( 0x18000000, "1P 4C / Continue 2C" ) | |
| 863 | PORT_DIPSETTING( 0x19000000, "1P 4C / Continue 1C" ) | |
| 864 | PORT_DIPSETTING( 0x1a000000, "1P 3C / Continue 3C" ) | |
| 865 | PORT_DIPSETTING( 0x1b000000, "1P 3C / Continue 2C" ) | |
| 866 | PORT_DIPSETTING( 0x1c000000, "1P 3C / Continue 1C" ) | |
| 867 | PORT_DIPSETTING( 0x1d000000, "1P 2C / Continue 2C" ) | |
| 868 | PORT_DIPSETTING( 0x1f000000, "1P 2C / Continue 1C" ) | |
| 869 | PORT_DIPSETTING( 0x1e000000, "1P 1C / Continue 1C" ) | |
| 870 | PORT_DIPSETTING( 0x00000000, DEF_STR( Free_Play ) ) | |
| 1173 | #define POPN_DSW1_JAMMINGGAUGE \ | |
| 1174 | PORT_DIPNAME( 0xc0, 0xc0, "Jamming Gauge Blocks" ) PORT_DIPLOCATION("SW1:2,1") \ | |
| 1175 | PORT_DIPSETTING( 0x80, "5" ) \ | |
| 1176 | PORT_DIPSETTING( 0xc0, "6" ) \ | |
| 1177 | PORT_DIPSETTING( 0x40, "7" ) \ | |
| 1178 | PORT_DIPSETTING( 0x00, "8" ) | |
| 871 | 1179 | |
| 872 | PORT_BIT( 0x00100000, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 1180 | #define POPN_DSW2_GAUGEDECREMENT \ | |
| 1181 | PORT_DIPNAME( 0x0c, 0x0c, "Guage Decrement Level" ) PORT_DIPLOCATION("SW2:6,5") \ | |
| 1182 | PORT_DIPSETTING( 0x04, "0" ) \ | |
| 1183 | PORT_DIPSETTING( 0x0c, "1" ) \ | |
| 1184 | PORT_DIPSETTING( 0x08, "2" ) \ | |
| 1185 | PORT_DIPSETTING( 0x00, "3" ) | |
| 1186 | ||
| 1187 | #define POPN_DSW2_GAUGEINCREMENT \ | |
| 1188 | PORT_DIPNAME( 0x03, 0x03, "Guage Increment Level" ) PORT_DIPLOCATION("SW2:8,7") \ | |
| 1189 | PORT_DIPSETTING( 0x01, "0" ) \ | |
| 1190 | PORT_DIPSETTING( 0x03, "1" ) \ | |
| 1191 | PORT_DIPSETTING( 0x02, "2" ) \ | |
| 1192 | PORT_DIPSETTING( 0x00, "3" ) | |
| 1193 | ||
| 1194 | #define POPN1_DSW1 \ | |
| 1195 | PORT_START("DSW1") \ | |
| 1196 | POPN_DSW1_JAMMINGGAUGE \ | |
| 1197 | PORT_DIPUNKNOWN_DIPLOC( 0x20, 0x20, "SW1:3" ) \ | |
| 1198 | PORT_DIPUNKNOWN_DIPLOC( 0x10, 0x10, "SW1:4" ) \ | |
| 1199 | POPN_DSW1_COINAGE_OLD | |
| 1200 | ||
| 1201 | #define POPN2_DSW1 \ | |
| 1202 | PORT_START("DSW1") \ | |
| 1203 | POPN_DSW1_JAMMINGGAUGE \ | |
| 1204 | PORT_DIPNAME( 0x20, 0x20, "Normal Mode Jamming" ) PORT_DIPLOCATION("SW1:3") \ | |
| 1205 | PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) \ | |
| 1206 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) \ | |
| 1207 | PORT_DIPUNKNOWN_DIPLOC( 0x10, 0x10, "SW1:4" ) \ | |
| 1208 | POPN_DSW1_COINAGE_NEW | |
| 1209 | ||
| 1210 | #define POPN1_DSW2 \ | |
| 1211 | PORT_START("DSW2") \ | |
| 1212 | BEATMANIA_DSW2_SCOREDISPLAY /* same as BEATMANIA */ \ | |
| 1213 | BEATMANIA_DSW2_DEMOSOUNDS /* same as BEATMANIA */ \ | |
| 1214 | PORT_DIPNAME( 0x10, 0x10, "Normal Mode Jamming" ) PORT_DIPLOCATION("SW2:4") \ | |
| 1215 | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) \ | |
| 1216 | PORT_DIPSETTING( 0x10, DEF_STR( On ) ) \ | |
| 1217 | POPN_DSW2_GAUGEDECREMENT \ | |
| 1218 | POPN_DSW2_GAUGEINCREMENT | |
| 1219 | ||
| 1220 | #define POPN2_DSW2 \ | |
| 1221 | PORT_START("DSW2") \ | |
| 1222 | BEATMANIA_DSW2_SCOREDISPLAY /* same as BEATMANIA */ \ | |
| 1223 | BEATMANIA_DSW2_DEMOSOUNDS /* same as BEATMANIA */ \ | |
| 1224 | PORT_DIPUNKNOWN_DIPLOC( 0x10, 0x10, "SW2:4" ) \ | |
| 1225 | POPN_DSW2_GAUGEDECREMENT \ | |
| 1226 | POPN_DSW2_GAUGEINCREMENT | |
| 1227 | ||
| 1228 | #define POPN1_DSW3 \ | |
| 1229 | PORT_START("DSW3") \ | |
| 1230 | PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) /* bit 7,6 don't exist */ \ | |
| 1231 | PORT_DIPUNKNOWN_DIPLOC( 0x20, 0x20, "SW3:1" ) \ | |
| 1232 | PORT_DIPNAME( 0x10, 0x10, "All Song Mode [*A]" ) PORT_DIPLOCATION("SW3:2") \ | |
| 1233 | PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) \ | |
| 1234 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) \ | |
| 1235 | PORT_DIPUNKNOWN_DIPLOC( 0x08, 0x08, "SW3:3" ) \ | |
| 1236 | PORT_DIPUNKNOWN_DIPLOC( 0x04, 0x04, "SW3:4" ) \ | |
| 1237 | PORT_DIPNAME( 0x02, 0x02, "Enable \"RAVE\" (with *A=On) [*B]" ) PORT_DIPLOCATION("SW3:5") \ | |
| 1238 | PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) \ | |
| 1239 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) \ | |
| 1240 | PORT_DIPNAME( 0x01, 0x01, "Enable \"Bonus Track\" (with *A=On and *B=On )" ) PORT_DIPLOCATION("SW3:6") \ | |
| 1241 | PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) \ | |
| 1242 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) | |
| 1243 | /* "All Song Mode" 3-2=On */ | |
| 1244 | /* "Enable RAVE" 3-2=On 3-5=On */ | |
| 1245 | /* "Enable BONUS TRACK" 3-2=On 3-5=On 3-6=On */ | |
| 1246 | ||
| 1247 | #define POPN2_DSW3 \ | |
| 1248 | PORT_START("DSW3") \ | |
| 1249 | PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) /* bit 7,6 don't exist */ \ | |
| 1250 | PORT_DIPUNKNOWN_DIPLOC( 0x20, 0x20, "SW3:1" ) \ | |
| 1251 | PORT_DIPUNKNOWN_DIPLOC( 0x10, 0x10, "SW3:2" ) \ | |
| 1252 | PORT_DIPNAME( 0x08, 0x08, "All Song Mode" ) PORT_DIPLOCATION("SW3:3") \ | |
| 1253 | PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) \ | |
| 1254 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) \ | |
| 1255 | PORT_DIPUNKNOWN_DIPLOC( 0x04, 0x04, "SW3:4" ) \ | |
| 1256 | PORT_DIPUNKNOWN_DIPLOC( 0x02, 0x02, "SW3:5" ) \ | |
| 1257 | PORT_DIPUNKNOWN_DIPLOC( 0x01, 0x01, "SW3:6" ) | |
| 1258 | /* "All Song Mode" 3-3=On */ | |
| 1259 | ||
| 1260 | #ifdef UNUSED_DEFINITION | |
| 1261 | static INPUT_PORTS_START( popn1 ) | |
| 1262 | PORT_INCLUDE( popnmusic_btn ) | |
| 1263 | POPN1_DSW1 | |
| 1264 | POPN1_DSW2 | |
| 1265 | POPN1_DSW3 | |
| 873 | 1266 | INPUT_PORTS_END |
| 874 | 1267 | #endif |
| 875 | 1268 | |
| 876 | 1269 | #ifdef UNUSED_DEFINITION |
| 1270 | static INPUT_PORTS_START( popnmusic ) /* popn2 and popn3 */ | |
| 1271 | PORT_INCLUDE( popnmusic_btn ) | |
| 1272 | POPN_DSW1 | |
| 1273 | POPN_DSW2 | |
| 1274 | POPN_DSW3 | |
| 1275 | INPUT_PORTS_END | |
| 1276 | #endif | |
| 1277 | ||
| 1278 | //--------- Pop'n Stage | |
| 1279 | ||
| 1280 | #ifdef UNUSED_DEFINITION | |
| 877 | 1281 | static INPUT_PORTS_START( popnstage ) |
| 878 | PORT_INCLUDE( popn1 ) | |
| 1282 | PORT_START("BTN1") | |
| 1283 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) | |
| 1284 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) | |
| 1285 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) | |
| 1286 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(1) | |
| 1287 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(1) | |
| 1288 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 1289 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_PLAYER(1) | |
| 1290 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON7 ) PORT_PLAYER(1) | |
| 1291 | PORT_START("BTN2") | |
| 1292 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON8 ) PORT_PLAYER(1) | |
| 1293 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON9 ) PORT_PLAYER(1) | |
| 1294 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON10 ) PORT_PLAYER(1) | |
| 1295 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 1296 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 ) /* LEFT SELECTION */ | |
| 1297 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 ) /* "OK" (MIDDLE) SELECTION */ | |
| 1298 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START3 ) /* RIGHT SELECTION */ | |
| 1299 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 ) | |
| 1300 | PORT_START("BTN3") | |
| 1301 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME(DEF_STR( Test )) PORT_CODE(KEYCODE_F2) /* TEST SW */ | |
| 1302 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_NAME("Service") /* SERVICE */ | |
| 1303 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* Used by beatmania as RESET SW */ | |
| 1304 | PORT_BIT( 0xf8, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 1305 | PORT_START("UNK1") | |
| 1306 | PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) | |
| 1307 | PORT_START("UNK2") | |
| 1308 | PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) | |
| 1309 | //PORT_START("TT1") /* turn table 1P */ | |
| 1310 | //PORT_BIT( 0xff, 0x00, IPT_DIAL ) PORT_SENSITIVITY(30) PORT_KEYDELTA(15) PORT_PLAYER(1) | |
| 1311 | //PORT_START("TT2") /* turn table 2P */ | |
| 1312 | //PORT_BIT( 0xff, 0x00, IPT_DIAL ) PORT_SENSITIVITY(30) PORT_KEYDELTA(15) PORT_PLAYER(2) | |
| 879 | 1313 | |
| 880 | PORT_MODIFY("INPUTS") | |
| 881 | PORT_BIT( 0x00000400, IP_ACTIVE_LOW, IPT_BUTTON10 ) PORT_PLAYER(1) | |
| 882 | PORT_BIT( 0x00000800, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 883 | PORT_BIT( 0x00001000, IP_ACTIVE_LOW, IPT_START1 ) /* LEFT SELECTION */ | |
| 884 | PORT_BIT( 0x00002000, IP_ACTIVE_LOW, IPT_START2 ) /* MIDDLE SELECTION */ | |
| 885 | PORT_BIT( 0x00004000, IP_ACTIVE_LOW, IPT_START3 ) /* RIGHT SELECTION */ | |
| 886 | PORT_BIT( 0x00020000, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 887 | PORT_BIT( 0xd5000000, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 888 | PORT_DIPNAME( 0x2a000000, 0x2a000000, "Enable Secret Mode" ) | |
| 889 | PORT_DIPSETTING( 0x2a000000, DEF_STR( Off ) ) | |
| 890 | PORT_DIPSETTING( 0x00000000, DEF_STR( On ) ) | |
| 1314 | PORT_START("DSW1") | |
| 1315 | PORT_DIPNAME( 0xe0, 0xe0, "Coinage (6 Buttons)" ) PORT_DIPLOCATION("SW1:3,2,1") | |
| 1316 | PORT_DIPSETTING( 0x20, "1P 4C / Continue 2C" ) | |
| 1317 | PORT_DIPSETTING( 0x40, "1P 3C / Continue 3C" ) | |
| 1318 | PORT_DIPSETTING( 0x60, "1P 3C / Continue 2C" ) | |
| 1319 | PORT_DIPSETTING( 0x80, "1P 3C / Continue 1C" ) | |
| 1320 | PORT_DIPSETTING( 0xa0, "1P 2C / Continue 2C" ) | |
| 1321 | PORT_DIPSETTING( 0xe0, "1P 2C / Continue 1C" ) | |
| 1322 | PORT_DIPSETTING( 0xc0, "1P 1C / Continue 1C" ) | |
| 1323 | PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) | |
| 1324 | PORT_DIPNAME( 0x1e, 0x1e, "Coinage (10 Buttons)" ) PORT_DIPLOCATION("SW1:7,6,5,4") | |
| 1325 | PORT_DIPSETTING( 0x02, "1P 5C / Continue 5C" ) | |
| 1326 | PORT_DIPSETTING( 0x04, "1P 5C / Continue 4C" ) | |
| 1327 | PORT_DIPSETTING( 0x06, "1P 5C / Continue 3C" ) | |
| 1328 | PORT_DIPSETTING( 0x08, "1P 5C / Continue 2C" ) | |
| 1329 | PORT_DIPSETTING( 0x0c, "1P 5C / Continue 1C" ) | |
| 1330 | PORT_DIPSETTING( 0x0a, "1P 4C / Continue 4C" ) | |
| 1331 | PORT_DIPSETTING( 0x0e, "1P 4C / Continue 3C" ) | |
| 1332 | PORT_DIPSETTING( 0x10, "1P 4C / Continue 2C" ) | |
| 1333 | PORT_DIPSETTING( 0x12, "1P 4C / Continue 1C" ) | |
| 1334 | PORT_DIPSETTING( 0x14, "1P 3C / Continue 3C" ) | |
| 1335 | PORT_DIPSETTING( 0x1e, "1P 3C / Continue 2C" ) | |
| 1336 | PORT_DIPSETTING( 0x16, "1P 3C / Continue 1C" ) | |
| 1337 | PORT_DIPSETTING( 0x18, "1P 2C / Continue 2C" ) | |
| 1338 | PORT_DIPSETTING( 0x1a, "1P 2C / Continue 1C" ) | |
| 1339 | PORT_DIPSETTING( 0x1c, "1P 1C / Continue 1C" ) | |
| 1340 | PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) | |
| 1341 | PORT_DIPUNKNOWN_DIPLOC( 0x01, 0x01, "SW1:8" ) | |
| 891 | 1342 | |
| 892 | PORT_MODIFY("DSW") | |
| 893 | PORT_DIPNAME( 0xe0000000, 0xe0000000, "Coinage (6 Buttons)" ) | |
| 894 | PORT_DIPSETTING( 0x20000000, "1P 4C / Continue 2C" ) | |
| 895 | PORT_DIPSETTING( 0x40000000, "1P 3C / Continue 3C" ) | |
| 896 | PORT_DIPSETTING( 0x60000000, "1P 3C / Continue 2C" ) | |
| 897 | PORT_DIPSETTING( 0x80000000, "1P 3C / Continue 1C" ) | |
| 898 | PORT_DIPSETTING( 0xa0000000, "1P 2C / Continue 2C" ) | |
| 899 | PORT_DIPSETTING( 0xe0000000, "1P 2C / Continue 1C" ) | |
| 900 | PORT_DIPSETTING( 0xc0000000, "1P 1C / Continue 1C" ) | |
| 901 | PORT_DIPSETTING( 0x00000000, DEF_STR( Free_Play ) ) | |
| 902 | PORT_DIPNAME( 0x1e000000, 0x1e000000, "Coinage (10 Buttons)" ) | |
| 903 | PORT_DIPSETTING( 0x02000000, "1P 5C / Continue 5C" ) | |
| 904 | PORT_DIPSETTING( 0x04000000, "1P 5C / Continue 4C" ) | |
| 905 | PORT_DIPSETTING( 0x06000000, "1P 5C / Continue 3C" ) | |
| 906 | PORT_DIPSETTING( 0x08000000, "1P 5C / Continue 2C" ) | |
| 907 | PORT_DIPSETTING( 0x0c000000, "1P 5C / Continue 1C" ) | |
| 908 | PORT_DIPSETTING( 0x0a000000, "1P 4C / Continue 4C" ) | |
| 909 | PORT_DIPSETTING( 0x0e000000, "1P 4C / Continue 3C" ) | |
| 910 | PORT_DIPSETTING( 0x10000000, "1P 4C / Continue 2C" ) | |
| 911 | PORT_DIPSETTING( 0x12000000, "1P 4C / Continue 1C" ) | |
| 912 | PORT_DIPSETTING( 0x14000000, "1P 3C / Continue 3C" ) | |
| 913 | PORT_DIPSETTING( 0x1e000000, "1P 3C / Continue 2C" ) | |
| 914 | PORT_DIPSETTING( 0x16000000, "1P 3C / Continue 1C" ) | |
| 915 | PORT_DIPSETTING( 0x18000000, "1P 2C / Continue 2C" ) | |
| 916 | PORT_DIPSETTING( 0x1a000000, "1P 2C / Continue 1C" ) | |
| 917 | PORT_DIPSETTING( 0x1c000000, "1P 1C / Continue 1C" ) | |
| 918 | PORT_DIPSETTING( 0x00000000, DEF_STR( Free_Play ) ) | |
| 919 | PORT_BIT( 0x01000000, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 1343 | PORT_START("DSW2") | |
| 1344 | PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW1:2,1") | |
| 1345 | PORT_DIPSETTING( 0xc0, "Loud" ) | |
| 1346 | PORT_DIPSETTING( 0x80, DEF_STR ( Medium ) ) | |
| 1347 | PORT_DIPSETTING( 0x40, DEF_STR ( Low ) ) | |
| 1348 | PORT_DIPSETTING( 0x00, "Silent" ) | |
| 1349 | PORT_DIPNAME( 0x30, 0x30, "Guage Decrement Level" ) PORT_DIPLOCATION("SW1:4,3") | |
| 1350 | PORT_DIPSETTING( 0x20, "0" ) | |
| 1351 | PORT_DIPSETTING( 0x30, "1" ) | |
| 1352 | PORT_DIPSETTING( 0x10, "2" ) | |
| 1353 | PORT_DIPSETTING( 0x00, "3" ) | |
| 1354 | PORT_DIPNAME( 0x0c, 0x0c, "Guage Increment Level" ) PORT_DIPLOCATION("SW1:6,5") | |
| 1355 | PORT_DIPSETTING( 0x08, "0" ) | |
| 1356 | PORT_DIPSETTING( 0x0c, "1" ) | |
| 1357 | PORT_DIPSETTING( 0x04, "2" ) | |
| 1358 | PORT_DIPSETTING( 0x00, "3" ) | |
| 1359 | PORT_DIPNAME( 0x02, 0x02, "Score Display" ) PORT_DIPLOCATION("SW1:7") | |
| 1360 | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) | |
| 1361 | PORT_DIPSETTING( 0x02, DEF_STR( On ) ) | |
| 1362 | PORT_DIPUNKNOWN_DIPLOC( 0x01, 0x01, "SW2:8" ) | |
| 920 | 1363 | |
| 921 | PORT_DIPNAME( 0x00c00000, 0x00c00000, DEF_STR( Demo_Sounds ) ) | |
| 922 | PORT_DIPSETTING( 0x00c00000, "Loud" ) | |
| 923 | PORT_DIPSETTING( 0x00800000, DEF_STR ( Medium ) ) | |
| 924 | PORT_DIPSETTING( 0x00400000, DEF_STR ( Low ) ) | |
| 925 | PORT_DIPSETTING( 0x00000000, "Silent" ) | |
| 926 | PORT_DIPNAME( 0x00300000, 0x00300000, "Guage Decrement Level" ) | |
| 927 | PORT_DIPSETTING( 0x00200000, "0" ) | |
| 928 | PORT_DIPSETTING( 0x00300000, "1" ) | |
| 929 | PORT_DIPSETTING( 0x00100000, "2" ) | |
| 930 | PORT_DIPSETTING( 0x00000000, "3" ) | |
| 931 | PORT_DIPNAME( 0x000c0000, 0x000c0000, "Guage Increment Level" ) | |
| 932 | PORT_DIPSETTING( 0x00080000, "0" ) | |
| 933 | PORT_DIPSETTING( 0x000c0000, "1" ) | |
| 934 | PORT_DIPSETTING( 0x00040000, "2" ) | |
| 935 | PORT_DIPSETTING( 0x00000000, "3" ) | |
| 936 | PORT_DIPNAME( 0x00020000, 0x00020000, "Score Display" ) | |
| 937 | PORT_DIPSETTING( 0x00000000, DEF_STR( Off ) ) | |
| 938 | PORT_DIPSETTING( 0x00020000, DEF_STR( On ) ) | |
| 939 | PORT_BIT( 0x00010000, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 1364 | PORT_START("DSW3") | |
| 1365 | PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) /* bit 7,6 don't exist */ | |
| 1366 | PORT_DIPUNKNOWN_DIPLOC( 0x20, 0x20, "SW3:1" ) | |
| 1367 | PORT_DIPUNKNOWN_DIPLOC( 0x10, 0x10, "SW3:2" ) | |
| 1368 | PORT_DIPUNKNOWN_DIPLOC( 0x08, 0x08, "SW3:3" ) | |
| 1369 | PORT_DIPUNKNOWN_DIPLOC( 0x04, 0x04, "SW3:4" ) | |
| 1370 | PORT_DIPUNKNOWN_DIPLOC( 0x02, 0x02, "SW3:5" ) | |
| 1371 | PORT_DIPUNKNOWN_DIPLOC( 0x01, 0x01, "SW3:6" ) | |
| 940 | 1372 | INPUT_PORTS_END |
| 941 | 1373 | #endif |
| 942 | 1374 | |
| 1375 | #ifdef UNUSED_DEFINITION | |
| 1376 | static INPUT_PORTS_START( popnstex ) | |
| 1377 | PORT_INCLUDE( popnstage ) | |
| 1378 | PORT_MODIFY("DSW3") | |
| 1379 | PORT_DIPNAME( 0x20, 0x20, "Enable Secret Mode (step1of3)" ) PORT_DIPLOCATION("SW3:1") | |
| 1380 | PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) | |
| 1381 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) | |
| 1382 | PORT_DIPNAME( 0x08, 0x08, "Enable Secret Mode (step2of3)" ) PORT_DIPLOCATION("SW3:3") | |
| 1383 | PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) | |
| 1384 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) | |
| 1385 | PORT_DIPNAME( 0x02, 0x02, "Enable Secret Mode (step3of3)" ) PORT_DIPLOCATION("SW3:5") | |
| 1386 | PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) | |
| 1387 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) | |
| 1388 | /* "Enable Secret Mode" 3-1=On 3-3=On 3-5=On */ | |
| 1389 | INPUT_PORTS_END | |
| 1390 | #endif | |
| 1391 | ||
| 943 | 1392 | /************************************* |
| 944 | 1393 | * |
| 945 | 1394 | * Graphics layouts |
| r4470 | r4471 | |
| 1790 | 2239 | |
| 1791 | 2240 | // commented out games should also run on this driver |
| 1792 | 2241 | |
| 1793 | GAME( 1997, bm1stmix, 0, djmain, bm1stmix, beatmania, ROT0, "Konami", "beatmania (ver JA-B)", 0 ) | |
| 1794 | GAME( 1998, bm2ndmix, 0, djmain, bm2ndmix, beatmania, ROT0, "Konami", "beatmania 2nd MIX (ver JA-B)", 0 ) | |
| 1795 | GAME( 1998, bm2ndmxa, bm2ndmix, djmain, bm2ndmix, beatmania, ROT0, "Konami", "beatmania 2nd MIX (ver JA-A)", 0 ) | |
| 1796 | GAME( 1998, bm3rdmix, 0, djmain, beatmania, beatmania, ROT0, "Konami", "beatmania 3rd MIX (ver JA-A)", 0 ) | |
| 1797 | GAME( 1999, bmcompmx, 0, djmain, bmcompmx, beatmania, ROT0, "Konami", "beatmania complete MIX (ver JA-B)", 0 ) | |
| 1798 | GAME( 1999, hmcompmx, bmcompmx, djmain, bmcompmx, hmcompmx, ROT0, "Konami", "hiphopmania complete MIX (ver UA-B)", 0 ) | |
| 1799 | GAME( 1999, bm4thmix, 0, djmain, bm4thmix, bm4thmix, ROT0, "Konami", "beatmania 4th MIX (ver JA-A)", 0 ) | |
| 1800 | GAME( 1999, bm5thmix, 0, djmain, beatmania, bm5thmix, ROT0, "Konami", "beatmania 5th MIX (ver JA-A)", 0 ) | |
| 1801 | GAME( 2000, bmclubmx, 0, djmain, beatmania, bmclubmx, ROT0, "Konami", "beatmania Club MIX (ver JA-A)", GAME_NOT_WORKING ) // misisng hd | |
| 1802 | GAME( 2000, bmcompm2, 0, djmain, beatmania, bmcompm2, ROT0, "Konami", "beatmania complete MIX 2 (ver JA-A)", 0 ) | |
| 1803 | GAME( 2000, hmcompm2, bmcompm2, djmain, hmcompm2, hmcompm2, ROT0, "Konami", "hiphopmania complete MIX 2 (ver UA-A)", 0 ) | |
| 1804 | GAME( 2000, bmdct, 0, djmain, bmdct, bmdct, ROT0, "Konami", "beatmania f. Dreams Come True (ver JA-A)", 0 ) | |
| 1805 | GAME( 2000, bmcorerm, 0, djmain, beatmania, bmcorerm, ROT0, "Konami", "beatmania CORE REMIX (ver JA-A)", 0 ) | |
| 1806 | GAME( 2001, bm6thmix, 0, djmain, beatmania, bm6thmix, ROT0, "Konami", "beatmania 6th MIX (ver JA-A)", 0 ) | |
| 1807 | GAME( 2001, bm7thmix, 0, djmain, beatmania, bm7thmix, ROT0, "Konami", "beatmania 7th MIX (ver JA-B)", 0 ) | |
| 1808 | GAME( 2002, bmfinal, 0, djmain, beatmania, bmfinal, ROT0, "Konami", "beatmania THE FINAL (ver JA-A)", 0 ) | |
| 2242 | GAME( 1997, bm1stmix, 0, djmain, bm1stmix, beatmania, ROT0, "Konami", "beatmania (ver JA-B)", 0 ) | |
| 2243 | GAME( 1998, bm2ndmix, 0, djmain, bm2ndmix, beatmania, ROT0, "Konami", "beatmania 2nd MIX (ver JA-B)", 0 ) | |
| 2244 | GAME( 1998, bm2ndmxa, bm2ndmix, djmain, bm2ndmix, beatmania, ROT0, "Konami", "beatmania 2nd MIX (ver JA-A)", 0 ) | |
| 2245 | GAME( 1998, bm3rdmix, 0, djmain, bm3rdmix, beatmania, ROT0, "Konami", "beatmania 3rd MIX (ver JA-A)", 0 ) | |
| 2246 | GAME( 1999, bmcompmx, 0, djmain, bmcompmx, beatmania, ROT0, "Konami", "beatmania complete MIX (ver JA-B)", 0 ) | |
| 2247 | GAME( 1999, hmcompmx, bmcompmx, djmain, bmcompmx, hmcompmx, ROT0, "Konami", "hiphopmania complete MIX (ver UA-B)", 0 ) | |
| 2248 | GAME( 1999, bm4thmix, 0, djmain, bm4thmix, bm4thmix, ROT0, "Konami", "beatmania 4th MIX (ver JA-A)", 0 ) | |
| 2249 | GAME( 1999, bm5thmix, 0, djmain, bm5thmix, bm5thmix, ROT0, "Konami", "beatmania 5th MIX (ver JA-A)", 0 ) | |
| 2250 | GAME( 2000, bmcompm2, 0, djmain, bm5thmix, bmcompm2, ROT0, "Konami", "beatmania complete MIX 2 (ver JA-A)", 0 ) | |
| 2251 | GAME( 2000, hmcompm2, bmcompm2, djmain, hmcompm2, hmcompm2, ROT0, "Konami", "hiphopmania complete MIX 2 (ver UA-A)", 0 ) | |
| 2252 | GAME( 2000, bmclubmx, 0, djmain, bmclubmx, bmclubmx, ROT0, "Konami", "beatmania Club MIX (ver JA-A)", GAME_NOT_WORKING ) // misisng hd | |
| 2253 | GAME( 2000, bmdct, 0, djmain, bmdct, bmdct, ROT0, "Konami", "beatmania f. Dreams Come True (ver JA-A)", 0 ) | |
| 2254 | GAME( 2000, bmcorerm, 0, djmain, bmcorerm, bmcorerm, ROT0, "Konami", "beatmania CORE REMIX (ver JA-A)", 0 ) | |
| 2255 | GAME( 2001, bm6thmix, 0, djmain, bm6thmix, bm6thmix, ROT0, "Konami", "beatmania 6th MIX (ver JA-A)", 0 ) | |
| 2256 | GAME( 2001, bm7thmix, 0, djmain, bm6thmix, bm7thmix, ROT0, "Konami", "beatmania 7th MIX (ver JA-B)", 0 ) | |
| 2257 | GAME( 2002, bmfinal, 0, djmain, bm6thmix, bmfinal, ROT0, "Konami", "beatmania THE FINAL (ver JA-A)", 0 ) | |
| 1809 | 2258 | |
| 1810 | 2259 | #if 0 |
| 1811 | 2260 | // for reference, these sets have not been verified |
| r4470 | r4471 | |
| 1815 | 2264 | GAME( 1998, popn2, 0, djmain, popnmusic, beatmania, ROT0, "Konami", "Pop'n Music 2 (ver JA-A)", 0 ) |
| 1816 | 2265 | GAME( 1999, popn3, 0, djmain, popnmusic, beatmania, ROT0, "Konami", "Pop'n Music 3 (ver JA-A)", 0 ) |
| 1817 | 2266 | |
| 1818 | GAME( 1999, popnstex, 0, djmain, popnst | |
| 2267 | GAME( 1999, popnstex, 0, djmain, popnst | |
| 1819 | 2268 | #endif |
| r4470 | r4471 | |
|---|---|---|
| 171 | 171 | * Distorted jumping sound in Nightmare in the Dark |
| 172 | 172 | * Ninja Combat sometimes glitches |
| 173 | 173 | |
| 174 | ||
| 175 | Mahjong Panel notes (2009-03 FP): | |
| 176 | ================================= | |
| 177 | ||
| 178 | * In Service Mode menu with mahjong panel active, controls are as | |
| 179 | follows: | |
| 180 | ||
| 181 | A = select / up (for options) | |
| 182 | B = down (for options) | |
| 183 | C = go to previous menu | |
| 184 | E = up (for menu entries) | |
| 185 | F = down (for menu entries) | |
| 186 | G = left (for options) | |
| 187 | H = right (for options) | |
| 188 | ||
| 189 | * These only work with Japanese BIOS, but I think it's not a bug: I | |
| 190 | doubt other bios were programmed to be compatible with mahjong panels | |
| 191 | ||
| 174 | 192 | ****************************************************************************/ |
| 175 | 193 | |
| 176 | 194 | #include "driver.h" |
| r4470 | r4471 | |
| 413 | 431 | |
| 414 | 432 | static CUSTOM_INPUT( multiplexed_controller_r ) |
| 415 | 433 | { |
| 416 | | |
| 434 | int | |
| 417 | 435 | |
| 418 | sprintf(tag, "IN%s-%d", (const char *)param, controller_select & 0x01); | |
| 436 | static const char *const cntrl[2][2] = | |
| 437 | { | |
| 438 | { "IN0-0", "IN0-1" }, { "IN1-0", "IN1-1" } | |
| 439 | }; | |
| 419 | 440 | |
| 420 | return input_port_read(field->port->machine, t | |
| 441 | return input_port_read_safe(field->port->machine, cntrl[port][controller_select & 0x01], 0x00); | |
| 421 | 442 | } |
| 422 | 443 | |
| 423 | 444 |
| r4470 | r4471 | |
|---|---|---|
| 1151 | 1151 | AM_RANGE(0xddc000, 0xddcfff) AM_READ(adc0834_r) |
| 1152 | 1152 | AM_RANGE(0xdde000, 0xdde003) AM_WRITE(type1_cablamps_w) |
| 1153 | 1153 | AM_RANGE(0xe00000, 0xe0001f) AM_RAM AM_BASE((UINT32**)&K053936_1_ctrl) |
| 1154 | AM_RANGE(0xe20000, 0xe2000f) AM_WRITE(SMH_NOP) | |
| 1155 | AM_RANGE(0xe40000, 0xe40003) AM_WRITE(SMH_NOP) | |
| 1154 | AM_RANGE(0xe20000, 0xe2000f) AM_WRITENOP | |
| 1155 | AM_RANGE(0xe40000, 0xe40003) AM_WRITENOP | |
| 1156 | 1156 | AM_RANGE(0xe80000, 0xe81fff) AM_RAM AM_BASE((UINT32**)&K053936_1_linectrl) // chips 21L+19L / S |
| 1157 | 1157 | AM_RANGE(0xec0000, 0xedffff) AM_RAM_WRITE(konamigx_t1_psacmap_w) AM_BASE(&gx_psacram) // chips 20J+23J+18J / S |
| 1158 | 1158 | AM_RANGE(0xf00000, 0xf3ffff) AM_READ(type1_roz_r1) // ROM readback |
| r4470 | r4471 | |
| 1170 | 1170 | AM_RANGE(0xd90000, 0xd97fff) AM_RAM |
| 1171 | 1171 | AM_RANGE(0xcc0000, 0xcc0007) AM_WRITE(type4_prot_w) |
| 1172 | 1172 | AM_RANGE(0xe00000, 0xe0001f) AM_RAM AM_BASE((UINT32**)&K053936_1_ctrl) |
| 1173 | AM_RANGE(0xe20000, 0xe20003) AM_WRITE(SMH_NOP) | |
| 1174 | AM_RANGE(0xe40000, 0xe40003) AM_WRITE(SMH_NOP) | |
| 1173 | AM_RANGE(0xe20000, 0xe20003) AM_WRITENOP | |
| 1174 | AM_RANGE(0xe40000, 0xe40003) AM_WRITENOP | |
| 1175 | 1175 | AM_RANGE(0xe60000, 0xe60fff) AM_RAM AM_BASE((UINT32**)&K053936_1_linectrl) |
| 1176 | 1176 | AM_RANGE(0xe80000, 0xe87fff) AM_RAM_WRITE(konamigx_555_palette_w) AM_BASE(&paletteram32) // main monitor palette (twice as large as reality) |
| 1177 | 1177 | AM_RANGE(0xea0000, 0xea3fff) AM_RAM_WRITE(konamigx_555_palette2_w) AM_BASE(&gx_subpaletteram32) // sub monitor palette |
| r4470 | r4471 | |
| 1183 | 1183 | AM_RANGE(0xcc0000, 0xcc0007) AM_WRITE(type4_prot_w) |
| 1184 | 1184 | AM_RANGE(0xd90000, 0xd97fff) AM_RAM |
| 1185 | 1185 | AM_RANGE(0xe00000, 0xe0001f) AM_RAM AM_BASE((UINT32**)&K053936_1_ctrl) |
| 1186 | AM_RANGE(0xe20000, 0xe20003) AM_WRITE(SMH_NOP) | |
| 1187 | AM_RANGE(0xe40000, 0xe40003) AM_WRITE(SMH_NOP) | |
| 1186 | AM_RANGE(0xe20000, 0xe20003) AM_WRITENOP | |
| 1187 | AM_RANGE(0xe40000, 0xe40003) AM_WRITENOP | |
| 1188 | 1188 | AM_RANGE(0xe60000, 0xe60fff) AM_RAM AM_BASE((UINT32**)&K053936_1_linectrl) // 29C & 29G (PSAC2 line control) |
| 1189 | 1189 | AM_RANGE(0xe80000, 0xe8ffff) AM_RAM_WRITE(konamigx_palette_w) AM_BASE(&paletteram32) // 11G/13G/15G (main screen palette RAM) (twice as large as reality) |
| 1190 | 1190 | AM_RANGE(0xea0000, 0xea7fff) AM_RAM_WRITE(konamigx_palette2_w) AM_BASE(&gx_subpaletteram32) // 5G/7G/9G (sub screen palette RAM) |
| r4470 | r4471 | |
|---|---|---|
| 339 | 339 | AM_RANGE(0x21, 0x21) AM_READ_PORT("IN1") |
| 340 | 340 | AM_RANGE(0x2b, 0x2b) AM_READ(statriv2_questions_read) // question data |
| 341 | 341 | AM_RANGE(0xb1, 0xb1) AM_DEVREAD("ay", ay8910_r) // ??? |
| 342 | AM_RANGE(0xce, 0xce) AM_READ | |
| 342 | AM_RANGE(0xce, 0xce) AM_READ | |
| 343 | 343 | ADDRESS_MAP_END |
| 344 | 344 | |
| 345 | 345 | static ADDRESS_MAP_START( statriv2_writeport, ADDRESS_SPACE_IO, 8 ) |
| 346 | AM_RANGE(0x22, 0x22) AM_WRITE(SMH_NOP) // ??? | |
| 347 | AM_RANGE(0x23, 0x23) AM_WRITE(SMH_NOP) // ??? | |
| 346 | AM_RANGE(0x22, 0x22) AM_WRITENOP // ??? | |
| 347 | AM_RANGE(0x23, 0x23) AM_WRITENOP // ??? | |
| 348 | 348 | AM_RANGE(0x29, 0x29) AM_WRITE(question_offset_low_w) |
| 349 | 349 | AM_RANGE(0x2a, 0x2a) AM_WRITE(question_offset_high_w) |
| 350 | 350 | AM_RANGE(0xb0, 0xb1) AM_DEVWRITE("ay", ay8910_address_data_w) |
| 351 | AM_RANGE(0xc0, 0xcf) AM_WRITE | |
| 351 | AM_RANGE(0xc0, 0xcf) AM_WRITE | |
| 352 | 352 | ADDRESS_MAP_END |
| 353 | 353 | |
| 354 | 354 | static ADDRESS_MAP_START( statriv4_readport, ADDRESS_SPACE_IO, 8 ) |
| r4470 | r4471 | |
| 356 | 356 | AM_RANGE(0x21, 0x21) AM_READ_PORT("IN1") |
| 357 | 357 | AM_RANGE(0x28, 0x28) AM_READ(statriv2_questions_read) // question data |
| 358 | 358 | AM_RANGE(0xb1, 0xb1) AM_DEVREAD("ay", ay8910_r) // ??? |
| 359 | AM_RANGE(0xce, 0xce) AM_READ | |
| 359 | AM_RANGE(0xce, 0xce) AM_READ | |
| 360 | 360 | ADDRESS_MAP_END |
| 361 | 361 | |
| 362 | 362 | static ADDRESS_MAP_START( statriv4_writeport, ADDRESS_SPACE_IO, 8 ) |
| 363 | AM_RANGE(0x22, 0x22) AM_WRITE(SMH_NOP) // ??? | |
| 364 | AM_RANGE(0x23, 0x23) AM_WRITE(SMH_NOP) // ??? | |
| 363 | AM_RANGE(0x22, 0x22) AM_WRITENOP // ??? | |
| 364 | AM_RANGE(0x23, 0x23) AM_WRITENOP // ??? | |
| 365 | 365 | AM_RANGE(0x29, 0x29) AM_WRITE(question_offset_high_w) |
| 366 | 366 | AM_RANGE(0x2a, 0x2a) AM_WRITE(question_offset_low_w) |
| 367 | 367 | AM_RANGE(0xb0, 0xb1) AM_DEVWRITE("ay", ay8910_address_data_w) |
| 368 | AM_RANGE(0xc0, 0xcf) AM_WRITE | |
| 368 | AM_RANGE(0xc0, 0xcf) AM_WRITE | |
| 369 | 369 | ADDRESS_MAP_END |
| 370 | 370 | |
| 371 | 371 | static ADDRESS_MAP_START( supertr2_readport, ADDRESS_SPACE_IO, 8 ) |
| r4470 | r4471 | |
| 373 | 373 | AM_RANGE(0x21, 0x21) AM_READ_PORT("IN1") |
| 374 | 374 | AM_RANGE(0x28, 0x28) AM_READ(supertr2_questions_read) // question data |
| 375 | 375 | AM_RANGE(0xb1, 0xb1) AM_DEVREAD("ay", ay8910_r) // ??? |
| 376 | AM_RANGE(0xce, 0xce) AM_READ | |
| 376 | AM_RANGE(0xce, 0xce) AM_READ | |
| 377 | 377 | ADDRESS_MAP_END |
| 378 | 378 | |
| 379 | 379 | static ADDRESS_MAP_START( supertr2_writeport, ADDRESS_SPACE_IO, 8 ) |
| 380 | AM_RANGE(0x22, 0x22) AM_WRITE(SMH_NOP) // ??? | |
| 381 | AM_RANGE(0x23, 0x23) AM_WRITE(SMH_NOP) // ??? | |
| 380 | AM_RANGE(0x22, 0x22) AM_WRITENOP // ??? | |
| 381 | AM_RANGE(0x23, 0x23) AM_WRITENOP // ??? | |
| 382 | 382 | AM_RANGE(0x28, 0x28) AM_WRITE(question_offset_low_w) |
| 383 | 383 | AM_RANGE(0x29, 0x29) AM_WRITE(question_offset_med_w) |
| 384 | 384 | AM_RANGE(0x2a, 0x2a) AM_WRITE(question_offset_high_w) |
| 385 | 385 | AM_RANGE(0xb0, 0xb1) AM_DEVWRITE("ay", ay8910_address_data_w) |
| 386 | AM_RANGE(0xc0, 0xcf) AM_WRITE | |
| 386 | AM_RANGE(0xc0, 0xcf) AM_WRITE | |
| 387 | 387 | ADDRESS_MAP_END |
| 388 | 388 | |
| 389 | 389 | static ADDRESS_MAP_START( trivquiz_writeport, ADDRESS_SPACE_IO, 8 ) |
| 390 | AM_RANGE(0x22, 0x22) AM_WRITE(SMH_NOP) // ??? | |
| 391 | AM_RANGE(0x23, 0x23) AM_WRITE(SMH_NOP) // ??? | |
| 390 | AM_RANGE(0x22, 0x22) AM_WRITENOP // ??? | |
| 391 | AM_RANGE(0x23, 0x23) AM_WRITENOP // ??? | |
| 392 | 392 | AM_RANGE(0x28, 0x28) AM_WRITE(question_offset_low_w) |
| 393 | 393 | AM_RANGE(0x29, 0x29) AM_WRITE(question_offset_high_w) |
| 394 | 394 | AM_RANGE(0xb0, 0xb1) AM_DEVWRITE("ay", ay8910_address_data_w) |
| 395 | AM_RANGE(0xc0, 0xcf) AM_WRITE | |
| 395 | AM_RANGE(0xc0, 0xcf) AM_WRITE | |
| 396 | 396 | ADDRESS_MAP_END |
| 397 | 397 | |
| 398 | 398 | static ADDRESS_MAP_START( trivquiz_readport, ADDRESS_SPACE_IO, 8 ) |
| r4470 | r4471 | |
| 400 | 400 | AM_RANGE(0x21, 0x21) AM_READ_PORT("IN1") |
| 401 | 401 | AM_RANGE(0x2a, 0x2a) AM_READ(statriv2_questions_read) // question data |
| 402 | 402 | AM_RANGE(0xb1, 0xb1) AM_DEVREAD("ay", ay8910_r) // ??? |
| 403 | AM_RANGE(0xce, 0xce) AM_READ | |
| 403 | AM_RANGE(0xce, 0xce) AM_READ | |
| 404 | 404 | ADDRESS_MAP_END |
| 405 | 405 | |
| 406 | 406 | static ADDRESS_MAP_START( supertr3_readport, ADDRESS_SPACE_IO, 8 ) |
| r4470 | r4471 | |
| 408 | 408 | AM_RANGE(0x21, 0x21) AM_READ_PORT("IN1") |
| 409 | 409 | AM_RANGE(0x28, 0x28) AM_READ(supertr3_questions_read) // question data |
| 410 | 410 | AM_RANGE(0xb1, 0xb1) AM_DEVREAD("ay", ay8910_r) // ??? |
| 411 | AM_RANGE(0xce, 0xce) AM_READ | |
| 411 | AM_RANGE(0xce, 0xce) AM_READ | |
| 412 | 412 | ADDRESS_MAP_END |
| 413 | 413 | |
| 414 | 414 | static ADDRESS_MAP_START( hangman_readport, ADDRESS_SPACE_IO, 8 ) |
| r4470 | r4471 | |
| 416 | 416 | AM_RANGE(0x21, 0x21) AM_READ_PORT("IN1") |
| 417 | 417 | AM_RANGE(0x28, 0x28) AM_READ(hangman_questions_read) // question data |
| 418 | 418 | AM_RANGE(0xb1, 0xb1) AM_DEVREAD("ay", ay8910_r) // ??? |
| 419 | AM_RANGE(0xce, 0xce) AM_READ | |
| 419 | AM_RANGE(0xce, 0xce) AM_READ | |
| 420 | 420 | ADDRESS_MAP_END |
| 421 | 421 | |
| 422 | 422 | static ADDRESS_MAP_START( statusbj_io, ADDRESS_SPACE_IO, 8 ) |
| r4470 | r4471 | |
|---|---|---|
| 73 | 73 | AM_RANGE(0x03, 0x03) AM_READ_PORT("IN3") |
| 74 | 74 | AM_RANGE(0x04, 0x04) AM_READ_PORT("IN4") |
| 75 | 75 | AM_RANGE(0x05, 0x05) AM_READ_PORT("IN5") |
| 76 | AM_RANGE(0x06, 0x06) AM_WRITE | |
| 76 | AM_RANGE(0x06, 0x06) AM_WRITE | |
| 77 | 77 | AM_RANGE(0x08, 0x09) AM_DEVWRITE("ay", ay8910_address_data_w) |
| 78 | 78 | ADDRESS_MAP_END |
| 79 | 79 |
| r4470 | r4471 | |
|---|---|---|
| 150 | 150 | |
| 151 | 151 | static ADDRESS_MAP_START( dorachan_io_map, ADDRESS_SPACE_IO, 8 ) |
| 152 | 152 | ADDRESS_MAP_GLOBAL_MASK(0xff) |
| 153 | AM_RANGE(0x01, 0x01) AM_WRITE(SMH_NOP) | |
| 154 | AM_RANGE(0x02, 0x02) AM_WRITE(SMH_NOP) | |
| 153 | AM_RANGE(0x01, 0x01) AM_WRITENOP | |
| 154 | AM_RANGE(0x02, 0x02) AM_WRITENOP | |
| 155 | 155 | AM_RANGE(0x03, 0x03) AM_WRITE(dorachan_ctrl_w) |
| 156 | 156 | ADDRESS_MAP_END |
| 157 | 157 |
| r4470 | r4471 | |
|---|---|---|
| 4 | 4 | |
| 5 | 5 | Driver by Manuel Abadia <manu@teleline.es> |
| 6 | 6 | |
| 7 | 2009-03: | |
| 8 | Added dsw locations and verified factory setting based on Guru's notes | |
| 9 | ||
| 7 | 10 | ***************************************************************************/ |
| 8 | 11 | |
| 9 | 12 | #include "driver.h" |
| r4470 | r4471 | |
| 136 | 139 | AM_RANGE(0x0000, 0x7fff) AM_ROM |
| 137 | 140 | AM_RANGE(0x8000, 0xbfff) AM_RAM |
| 138 | 141 | AM_RANGE(0xc000, 0xc000) AM_READ(soundlatch_r) /* Sound latch read */ |
| 139 | // AM_RANGE(0xd000, 0xd000) AM_WRITE | |
| 142 | // AM_RANGE(0xd000, 0xd000) AM_WRITE | |
| 140 | 143 | AM_RANGE(0xe000, 0xe000) AM_DEVREADWRITE("oki", okim6295_r, okim6295_w) /* M6295 */ |
| 141 | 144 | AM_RANGE(0xf000, 0xf001) AM_DEVREADWRITE("ym", ym2151_r, ym2151_w) /* YM2151 */ |
| 142 | 145 | ADDRESS_MAP_END |
| 143 | 146 | |
| 144 | 147 | static ADDRESS_MAP_START( sound_io_map, ADDRESS_SPACE_IO, 8 ) |
| 145 | 148 | ADDRESS_MAP_GLOBAL_MASK(0xff) |
| 146 | // AM_RANGE(0x00, 0x00) AM_WRITE | |
| 149 | // AM_RANGE(0x00, 0x00) AM_WRITE | |
| 147 | 150 | ADDRESS_MAP_END |
| 148 | 151 | |
| 149 | 152 | |
| r4470 | r4471 | |
| 176 | 179 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) |
| 177 | 180 | |
| 178 | 181 | PORT_START("DSW1") |
| 179 | PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) ) | |
| 182 | PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW1:8,7,6,5") | |
| 180 | 183 | PORT_DIPSETTING( 0x02, DEF_STR( 4C_1C ) ) |
| 181 | 184 | PORT_DIPSETTING( 0x05, DEF_STR( 3C_1C ) ) |
| 182 | 185 | PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) ) |
| r4470 | r4471 | |
| 192 | 195 | PORT_DIPSETTING( 0x0b, DEF_STR( 1C_5C ) ) |
| 193 | 196 | PORT_DIPSETTING( 0x0a, DEF_STR( 1C_6C ) ) |
| 194 | 197 | PORT_DIPSETTING( 0x09, DEF_STR( 1C_7C ) ) |
| 195 | PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) | |
| 196 | ||
| 197 | PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) ) | |
| 198 | PORT_DIPSETTING( 0x00, "No Coin A" ) | |
| 199 | PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW1:4,3,2,1") | |
| 198 | 200 | PORT_DIPSETTING( 0x20, DEF_STR( 4C_1C ) ) |
| 199 | 201 | PORT_DIPSETTING( 0x50, DEF_STR( 3C_1C ) ) |
| 200 | 202 | PORT_DIPSETTING( 0x80, DEF_STR( 2C_1C ) ) |
| r4470 | r4471 | |
| 211 | 213 | PORT_DIPSETTING( 0xb0, DEF_STR( 1C_5C ) ) |
| 212 | 214 | PORT_DIPSETTING( 0xa0, DEF_STR( 1C_6C ) ) |
| 213 | 215 | PORT_DIPSETTING( 0x90, DEF_STR( 1C_7C ) ) |
| 216 | PORT_DIPSETTING( 0x00, "No Coin B" ) /* 5C_3C according to manual, but it's not true */ | |
| 217 | /* No Coin X = coin slot X open (coins produce sound), but no effect on coin counter */ | |
| 214 | 218 | |
| 215 | 219 | PORT_START("DSW2") |
| 216 | PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unused ) ) /* Manual states dips 1 & 2 are "Unused" */ | |
| 217 | PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) | |
| 218 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) | |
| 219 | PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unused ) ) | |
| 220 | PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) | |
| 221 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) | |
| 222 | PORT_DIPNAME( 0x04, 0x04, DEF_STR( Allow_Continue ) ) | |
| 220 | PORT_DIPUNKNOWN_DIPLOC( 0x01, 0x01, "SW2:8" ) /* Manual states it's "Unused" */ | |
| 221 | PORT_DIPUNKNOWN_DIPLOC( 0x02, 0x02, "SW2:7" ) /* Manual states it's "Unused" */ | |
| 222 | PORT_DIPNAME( 0x04, 0x04, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SW2:6") | |
| 223 | 223 | PORT_DIPSETTING( 0x00, DEF_STR( No ) ) |
| 224 | 224 | PORT_DIPSETTING( 0x04, DEF_STR( Yes ) ) |
| 225 | PORT_DIPNAME( 0x08, 0x00, DEF_STR( Demo_Sounds ) ) | |
| 225 | PORT_DIPNAME( 0x08, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW2:5") | |
| 226 | 226 | PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) |
| 227 | 227 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 228 | PORT_DIPNAME( 0x30, 0x30, DEF_STR( Difficulty ) ) | |
| 228 | PORT_DIPNAME( 0x30, 0x30, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW2:4,3") | |
| 229 | 229 | PORT_DIPSETTING( 0x10, DEF_STR( Easy ) ) |
| 230 | 230 | PORT_DIPSETTING( 0x30, DEF_STR( Normal ) ) |
| 231 | 231 | PORT_DIPSETTING( 0x20, DEF_STR( Hard ) ) |
| 232 | 232 | PORT_DIPSETTING( 0x00, DEF_STR( Very_Hard ) ) |
| 233 | PORT_DIPNAME( 0x40, 0x40, "Upright Controls" ) | |
| 233 | PORT_DIPNAME( 0x40, 0x40, "Upright Controls" ) PORT_DIPLOCATION("SW2:2") | |
| 234 | 234 | PORT_DIPSETTING( 0x40, DEF_STR( Single ) ) |
| 235 | 235 | PORT_DIPSETTING( 0x00, DEF_STR( Dual ) ) |
| 236 | PORT_DIPNAME( 0x80, 0x00, DEF_STR( Cabinet ) ) | |
| 236 | PORT_DIPNAME( 0x80, 0x00, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SW2:1") | |
| 237 | 237 | PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) |
| 238 | 238 | PORT_DIPSETTING( 0x80, DEF_STR( Cocktail ) ) |
| 239 | 239 | INPUT_PORTS_END |
| r4470 | r4471 | |
|---|---|---|
| 12 | 12 | #include "video/konamiic.h" |
| 13 | 13 | #include "sound/2151intf.h" |
| 14 | 14 | #include "sound/k053260.h" |
| 15 | #include "konamipt.h" | |
| 15 | 16 | |
| 16 | 17 | /* prototypes */ |
| 17 | 18 | static MACHINE_RESET( parodius ); |
| r4470 | r4471 | |
| 183 | 184 | |
| 184 | 185 | static INPUT_PORTS_START( parodius ) |
| 185 | 186 | PORT_START("P1") |
| 186 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) | |
| 187 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) | |
| 188 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) | |
| 189 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) | |
| 190 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) | |
| 191 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) // power-up | |
| 192 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) // shoot | |
| 193 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) // missile | |
| 187 | KONAMI8_ALT_B123(1) // button1 = power-up, button2 = shoot, button3 = missile | |
| 194 | 188 | |
| 195 | 189 | PORT_START("P2") |
| 196 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START2 ) | |
| 197 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) | |
| 198 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) | |
| 199 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) | |
| 200 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) | |
| 201 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) | |
| 202 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) | |
| 203 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) | |
| 190 | KONAMI8_ALT_B123(2) | |
| 204 | 191 | |
| 205 | 192 | PORT_START("DSW1") |
| 206 | PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) ) | |
| 207 | PORT_DIPSETTING( 0x02, DEF_STR( 4C_1C ) ) | |
| 208 | PORT_DIPSETTING( 0x05, DEF_STR( 3C_1C ) ) | |
| 209 | PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) ) | |
| 210 | PORT_DIPSETTING( 0x04, DEF_STR( 3C_2C ) ) | |
| 211 | PORT_DIPSETTING( 0x01, DEF_STR( 4C_3C ) ) | |
| 212 | PORT_DIPSETTING( 0x0f, DEF_STR( 1C_1C ) ) | |
| 213 | PORT_DIPSETTING( 0x03, DEF_STR( 3C_4C ) ) | |
| 214 | PORT_DIPSETTING( 0x07, DEF_STR( 2C_3C ) ) | |
| 215 | PORT_DIPSETTING( 0x0e, DEF_STR( 1C_2C ) ) | |
| 216 | PORT_DIPSETTING( 0x06, DEF_STR( 2C_5C ) ) | |
| 217 | PORT_DIPSETTING( 0x0d, DEF_STR( 1C_3C ) ) | |
| 218 | PORT_DIPSETTING( 0x0c, DEF_STR( 1C_4C ) ) | |
| 219 | PORT_DIPSETTING( 0x0b, DEF_STR( 1C_5C ) ) | |
| 220 | PORT_DIPSETTING( 0x0a, DEF_STR( 1C_6C ) ) | |
| 221 | PORT_DIPSETTING( 0x09, DEF_STR( 1C_7C ) ) | |
| 222 | PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) | |
| 223 | PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) ) | |
| 224 | PORT_DIPSETTING( 0x20, DEF_STR( 4C_1C ) ) | |
| 225 | PORT_DIPSETTING( 0x50, DEF_STR( 3C_1C ) ) | |
| 226 | PORT_DIPSETTING( 0x80, DEF_STR( 2C_1C ) ) | |
| 227 | PORT_DIPSETTING( 0x40, DEF_STR( 3C_2C ) ) | |
| 228 | PORT_DIPSETTING( 0x10, DEF_STR( 4C_3C ) ) | |
| 229 | PORT_DIPSETTING( 0xf0, DEF_STR( 1C_1C ) ) | |
| 230 | PORT_DIPSETTING( 0x30, DEF_STR( 3C_4C ) ) | |
| 231 | PORT_DIPSETTING( 0x70, DEF_STR( 2C_3C ) ) | |
| 232 | PORT_DIPSETTING( 0xe0, DEF_STR( 1C_2C ) ) | |
| 233 | PORT_DIPSETTING( 0x60, DEF_STR( 2C_5C ) ) | |
| 234 | PORT_DIPSETTING( 0xd0, DEF_STR( 1C_3C ) ) | |
| 235 | PORT_DIPSETTING( 0xc0, DEF_STR( 1C_4C ) ) | |
| 236 | PORT_DIPSETTING( 0xb0, DEF_STR( 1C_5C ) ) | |
| 237 | PORT_DIPSETTING( 0xa0, DEF_STR( 1C_6C ) ) | |
| 238 | PORT_DIPSETTING( 0x90, DEF_STR( 1C_7C ) ) | |
| 239 | // PORT_DIPSETTING( 0x00, "No Use" ) | |
| 193 | KONAMI_COINAGE(DEF_STR( Free_Play ), "No Coin B") | |
| 194 | /* "No Coin B" = coins produce sound, but no effect on coin counter */ | |
| 240 | 195 | |
| 241 | 196 | PORT_START("DSW2") |
| 242 | 197 | PORT_DIPNAME( 0x03, 0x02, DEF_STR( Lives ) ) |
| r4470 | r4471 | |
| 414 | 369 | } |
| 415 | 370 | |
| 416 | 371 | |
| 417 | ||
| 418 | 372 | GAME( 1990, parodius, 0, parodius, parodius, parodius, ROT0, "Konami", "Parodius DA! (World)", 0 ) |
| 419 | 373 | GAME( 1990, parodisj, parodius, parodius, parodius, parodius, ROT0, "Konami", "Parodius DA! (Japan)", 0 ) |
| r4470 | r4471 | |
|---|---|---|
| 93 | 93 | AM_RANGE(0x0000, 0x5fff) AM_ROM |
| 94 | 94 | AM_RANGE(0x6000, 0x6fff) AM_RAM |
| 95 | 95 | AM_RANGE(0x7000, 0x73ff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size) |
| 96 | AM_RANGE(0x8000, 0x8fff) AM_READ | |
| 96 | AM_RANGE(0x8000, 0x8fff) AM_READ | |
| 97 | 97 | AM_RANGE(0x9000, 0x9000) AM_READ_PORT("IN0") |
| 98 | 98 | AM_RANGE(0x9001, 0x9001) AM_READ_PORT("IN1") |
| 99 | 99 | AM_RANGE(0x9002, 0x9002) AM_READ_PORT("DSW0") |
| r4470 | r4471 | |
| 120 | 120 | AM_RANGE(0x9003, 0x9003) AM_READ_PORT("DSW1") |
| 121 | 121 | AM_RANGE(0xd000, 0xd3ff) AM_WRITE(ladybug_videoram_w) AM_BASE(&videoram) |
| 122 | 122 | AM_RANGE(0xd400, 0xd7ff) AM_WRITE(ladybug_colorram_w) AM_BASE(&colorram) |
| 123 | AM_RANGE(0xe000, 0xe000) AM_WRITE | |
| 123 | AM_RANGE(0xe000, 0xe000) AM_WRITE | |
| 124 | 124 | ADDRESS_MAP_END |
| 125 | 125 | |
| 126 | 126 | |
| r4470 | r4471 | |
| 129 | 129 | AM_RANGE(0x6000, 0x63ff) AM_RAM |
| 130 | 130 | AM_RANGE(0x8000, 0x8000) AM_READ(sraider_sound_low_r) |
| 131 | 131 | AM_RANGE(0xa000, 0xa000) AM_READ(sraider_sound_high_r) |
| 132 | AM_RANGE(0xc000, 0xc000) AM_READ | |
| 132 | AM_RANGE(0xc000, 0xc000) AM_READ | |
| 133 | 133 | AM_RANGE(0xe000, 0xe0ff) AM_WRITE(SMH_RAM) AM_BASE(&sraider_grid_data) |
| 134 | 134 | AM_RANGE(0xe800, 0xe800) AM_WRITE(sraider_io_w) |
| 135 | 135 | ADDRESS_MAP_END |
| r4470 | r4471 | |
|---|---|---|
| 123 | 123 | AM_RANGE(0x948000, 0x948001) AM_READ_PORT("SYSTEM") |
| 124 | 124 | AM_RANGE(0x950000, 0x95001f) AM_WRITE(SMH_RAM) AM_BASE(&quantum_colorram) |
| 125 | 125 | AM_RANGE(0x958000, 0x958001) AM_WRITE(led_w) |
| 126 | AM_RANGE(0x960000, 0x960001) AM_WRITE | |
| 126 | AM_RANGE(0x960000, 0x960001) AM_WRITE | |
| 127 | 127 | AM_RANGE(0x968000, 0x968001) AM_WRITE(avgdvg_reset_word_w) |
| 128 | 128 | AM_RANGE(0x970000, 0x970001) AM_WRITE(avgdvg_go_word_w) |
| 129 | 129 | AM_RANGE(0x978000, 0x978001) AM_READWRITE(SMH_NOP, watchdog_reset16_w) |
| r4470 | r4471 | |
|---|---|---|
| 422 | 422 | PORT_DIPSETTING( 0xb0, DEF_STR( 1C_5C ) ) |
| 423 | 423 | PORT_DIPSETTING( 0xa0, DEF_STR( 1C_6C ) ) |
| 424 | 424 | PORT_DIPSETTING( 0x90, DEF_STR( 1C_7C ) ) |
| 425 | PORT_DIPSETTING( 0x00, "coin 2 invalidity" ) | |
| 425 | PORT_DIPSETTING( 0x00, DEF_STR( None ) ) | |
| 426 | /* None = coin slot B disabled */ | |
| 426 | 427 | |
| 427 | 428 | PORT_START("DSW2") |
| 428 | 429 | PORT_DIPUNKNOWN_DIPLOC( 0x01, 0x01, "SW2:1" ) /* Not Used according to the manual */ |
| r4470 | r4471 | |
|---|---|---|
| 187 | 187 | PORT_DIPSETTING( 0xb0, DEF_STR( 1C_5C ) ) |
| 188 | 188 | PORT_DIPSETTING( 0xa0, DEF_STR( 1C_6C ) ) |
| 189 | 189 | PORT_DIPSETTING( 0x90, DEF_STR( 1C_7C ) ) |
| 190 | // PORT_DIPSETTING( 0x00, "Invalid" ) | |
| 190 | PORT_DIPSETTING( 0x00, "Invalid" ) | |
| 191 | /* Invalid = both coin slots disabled */ | |
| 191 | 192 | |
| 192 | 193 | PORT_START("DSW2") |
| 193 | 194 | PORT_DIPNAME( 0x03, 0x01, DEF_STR( Lives ) ) |
| r4470 | r4471 | |
|---|---|---|
| 128 | 128 | ADDRESS_MAP_END |
| 129 | 129 | |
| 130 | 130 | static ADDRESS_MAP_START( ttchamp_io, ADDRESS_SPACE_IO, 16 ) |
| 131 | AM_RANGE(0x0000, 0x0001) AM_WRITE | |
| 131 | AM_RANGE(0x0000, 0x0001) AM_WRITE | |
| 132 | 132 | |
| 133 | 133 | AM_RANGE(0x0002, 0x0003) AM_READ_PORT("SYSTEM") |
| 134 | 134 | AM_RANGE(0x0004, 0x0005) AM_READ_PORT("P1_P2") |
| r4470 | r4471 | |
| 140 | 140 | AM_RANGE(0x000a, 0x000b) AM_WRITE(paloff_w) |
| 141 | 141 | |
| 142 | 142 | // AM_RANGE(0x0010, 0x0010) AM_WRITE(pcup_prgbank_w) |
| 143 | AM_RANGE(0x0010, 0x0011) AM_WRITE | |
| 143 | AM_RANGE(0x0010, 0x0011) AM_WRITE | |
| 144 | 144 | |
| 145 | AM_RANGE(0x0020, 0x0021) AM_WRITE | |
| 145 | AM_RANGE(0x0020, 0x0021) AM_WRITE | |
| 146 | 146 | |
| 147 | AM_RANGE(0x0034, 0x0035) AM_READ(peno_rand) AM_WRITE | |
| 147 | AM_RANGE(0x0034, 0x0035) AM_READ(peno_rand) AM_WRITE | |
| 148 | 148 | ADDRESS_MAP_END |
| 149 | 149 | |
| 150 | 150 |
| r4470 | r4471 | |
|---|---|---|
| 171 | 171 | AM_RANGE(0xd500, 0xd57f) AM_WRITE(SMH_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size) |
| 172 | 172 | AM_RANGE(0xd610, 0xd610) AM_WRITE(sound_command_w) |
| 173 | 173 | // AM_RANGE(0xd613, 0xd613) // reset sound cpu & sound chips |
| 174 | AM_RANGE(0xd618, 0xd618) AM_WRITE | |
| 174 | AM_RANGE(0xd618, 0xd618) AM_WRITE | |
| 175 | 175 | AM_RANGE(0xd700, 0xd7ff) AM_WRITE(paletteram_xxxxRRRRGGGGBBBB_be_w) AM_BASE(&paletteram) |
| 176 | 176 | AM_RANGE(0xd840, 0xd85f) AM_WRITE(SMH_RAM) AM_BASE(&buggychl_scrollv) |
| 177 | 177 | AM_RANGE(0xdb00, 0xdbff) AM_WRITE(SMH_RAM) AM_BASE(&buggychl_scrollh) |
| r4470 | r4471 | |
|---|---|---|
| 11 | 11 | - CPU B continuously reads from 1e00. It seems to be important, could be a |
| 12 | 12 | scanline counter or something like that. |
| 13 | 13 | |
| 14 | 2009-03: | |
| 15 | Added dsw locations and verified factory setting based on Guru's notes | |
| 16 | (DSW3 not mentioned) | |
| 17 | ||
| 14 | 18 | ***************************************************************************/ |
| 15 | 19 | |
| 16 | 20 | #include "driver.h" |
| r4470 | r4471 | |
| 19 | 23 | #include "cpu/mcs48/mcs48.h" |
| 20 | 24 | #include "sound/ay8910.h" |
| 21 | 25 | #include "sound/dac.h" |
| 26 | #include "konamipt.h" | |
| 22 | 27 | |
| 23 | 28 | static int irq_enable_a, irq_enable_b; |
| 24 | 29 | static int firq_old_data_a, firq_old_data_b; |
| r4470 | r4471 | |
| 146 | 151 | AM_RANGE(0x1a02, 0x1a02) AM_READ_PORT("P2") |
| 147 | 152 | AM_RANGE(0x1a03, 0x1a03) AM_READ_PORT("DSW3") |
| 148 | 153 | AM_RANGE(0x1c00, 0x1c00) AM_READ_PORT("DSW2") |
| 149 | // AM_RANGE(0x1e00, 0x1e00) AM_READ | |
| 154 | // AM_RANGE(0x1e00, 0x1e00) AM_READ | |
| 150 | 155 | AM_RANGE(0xc000, 0xc7ff) AM_READ(SMH_RAM) AM_SHARE(4) /* Shared RAM with the CPU A */ |
| 151 | 156 | AM_RANGE(0xe000, 0xffff) AM_READ(SMH_ROM) /* ROM */ |
| 152 | 157 | ADDRESS_MAP_END |
| r4470 | r4471 | |
| 201 | 206 | |
| 202 | 207 | static INPUT_PORTS_START( pandoras ) |
| 203 | 208 | PORT_START("DSW1") |
| 204 | PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) ) | |
| 205 | PORT_DIPSETTING( 0x02, DEF_STR( 4C_1C ) ) | |
| 206 | PORT_DIPSETTING( 0x05, DEF_STR( 3C_1C ) ) | |
| 207 | PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) ) | |
| 208 | PORT_DIPSETTING( 0x04, DEF_STR( 3C_2C ) ) | |
| 209 | PORT_DIPSETTING( 0x01, DEF_STR( 4C_3C ) ) | |
| 210 | PORT_DIPSETTING( 0x0f, DEF_STR( 1C_1C ) ) | |
| 211 | PORT_DIPSETTING( 0x03, DEF_STR( 3C_4C ) ) | |
| 212 | PORT_DIPSETTING( 0x07, DEF_STR( 2C_3C ) ) | |
| 213 | PORT_DIPSETTING( 0x0e, DEF_STR( 1C_2C ) ) | |
| 214 | PORT_DIPSETTING( 0x06, DEF_STR( 2C_5C ) ) | |
| 215 | PORT_DIPSETTING( 0x0d, DEF_STR( 1C_3C ) ) | |
| 216 | PORT_DIPSETTING( 0x0c, DEF_STR( 1C_4C ) ) | |
| 217 | PORT_DIPSETTING( 0x0b, DEF_STR( 1C_5C ) ) | |
| 218 | PORT_DIPSETTING( 0x0a, DEF_STR( 1C_6C ) ) | |
| 219 | PORT_DIPSETTING( 0x09, DEF_STR( 1C_7C ) ) | |
| 220 | PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) | |
| 221 | PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) ) | |
| 222 | PORT_DIPSETTING( 0x20, DEF_STR( 4C_1C ) ) | |
| 223 | PORT_DIPSETTING( 0x50, DEF_STR( 3C_1C ) ) | |
| 224 | PORT_DIPSETTING( 0x80, DEF_STR( 2C_1C ) ) | |
| 225 | PORT_DIPSETTING( 0x40, DEF_STR( 3C_2C ) ) | |
| 226 | PORT_DIPSETTING( 0x10, DEF_STR( 4C_3C ) ) | |
| 227 | PORT_DIPSETTING( 0xf0, DEF_STR( 1C_1C ) ) | |
| 228 | PORT_DIPSETTING( 0x30, DEF_STR( 3C_4C ) ) | |
| 229 | PORT_DIPSETTING( 0x70, DEF_STR( 2C_3C ) ) | |
| 230 | PORT_DIPSETTING( 0xe0, DEF_STR( 1C_2C ) ) | |
| 231 | PORT_DIPSETTING( 0x60, DEF_STR( 2C_5C ) ) | |
| 232 | PORT_DIPSETTING( 0xd0, DEF_STR( 1C_3C ) ) | |
| 233 | PORT_DIPSETTING( 0xc0, DEF_STR( 1C_4C ) ) | |
| 234 | PORT_DIPSETTING( 0xb0, DEF_STR( 1C_5C ) ) | |
| 235 | PORT_DIPSETTING( 0xa0, DEF_STR( 1C_6C ) ) | |
| 236 | PORT_DIPSETTING( 0x90, DEF_STR( 1C_7C ) ) | |
| 237 | // PORT_DIPSETTING( 0x00, "Invalid" ) | |
| 209 | KONAMI_COINAGE_LOC(DEF_STR( Free_Play ), "No Coin B", SW1) | |
| 210 | /* "No Coin B" = coins produce sound, but no effect on coin counter */ | |
| 238 | 211 | |
| 239 | 212 | PORT_START("DSW2") |
| 240 | PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) ) | |
| 213 | PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW2:1,2") | |
| 241 | 214 | PORT_DIPSETTING( 0x03, "3" ) |
| 242 | 215 | PORT_DIPSETTING( 0x02, "4" ) |
| 243 | 216 | PORT_DIPSETTING( 0x01, "5" ) |
| 244 | 217 | PORT_DIPSETTING( 0x00, "7" ) |
| 245 | PORT_DIPNAME( 0x04, 0x00, DEF_STR( Cabinet ) ) | |
| 218 | PORT_DIPNAME( 0x04, 0x00, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SW2:3") | |
| 246 | 219 | PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) |
| 247 | 220 | PORT_DIPSETTING( 0x04, DEF_STR( Cocktail ) ) |
| 248 | PORT_DIPNAME( 0x18, 0x18, DEF_STR( Bonus_Life ) ) | |
| 221 | PORT_DIPNAME( 0x18, 0x18, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW2:4,5") | |
| 249 | 222 | PORT_DIPSETTING( 0x18, "20k and every 60k" ) |
| 250 | 223 | PORT_DIPSETTING( 0x10, "30k and every 70k" ) |
| 251 | 224 | PORT_DIPSETTING( 0x08, "20k" ) |
| 252 | 225 | PORT_DIPSETTING( 0x00, "30k" ) |
| 253 | PORT_DIPNAME( 0x60, 0x40, DEF_STR( Difficulty ) ) | |
| 226 | PORT_DIPNAME( 0x60, 0x40, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW2:6,7") | |
| 254 | 227 | PORT_DIPSETTING( 0x60, DEF_STR( Easy ) ) |
| 255 | 228 | PORT_DIPSETTING( 0x40, DEF_STR( Normal ) ) |
| 256 | 229 | PORT_DIPSETTING( 0x20, "Difficult" ) |
| 257 | 230 | PORT_DIPSETTING( 0x00, "Very Difficult" ) |
| 258 | PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) ) | |
| 231 | PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW2:8") | |
| 259 | 232 | PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) |
| 260 | 233 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 261 | 234 | |
| r4470 | r4471 | |
| 286 | 259 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 287 | 260 | |
| 288 | 261 | PORT_START("SYSTEM") |
| 289 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) | |
| 290 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) | |
| 291 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN3 ) | |
| 292 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) | |
| 293 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 ) | |
| 262 | KONAMI8_SYSTEM_10 | |
| 294 | 263 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) |
| 295 | 264 | PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 296 | 265 | |
| 297 | 266 | PORT_START("P1") |
| 298 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY | |
| 299 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY | |
| 300 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY | |
| 301 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY | |
| 302 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) | |
| 303 | PORT_BIT( 0xe0, IP_ACTIVE_LOW, IPT_UNUSED ) | |
| 267 | KONAMI8_MONO_B1_UNK | |
| 304 | 268 | |
| 305 | 269 | PORT_START("P2") |
| 306 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL | |
| 307 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL | |
| 308 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL | |
| 309 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL | |
| 310 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL | |
| 311 | PORT_BIT( 0xe0, IP_ACTIVE_LOW, IPT_UNUSED ) | |
| 270 | KONAMI8_COCKTAIL_B1_UNK | |
| 312 | 271 | INPUT_PORTS_END |
| 313 | 272 | |
| 314 | 273 | |
| r4470 | r4471 | |
| 461 | 420 | ROM_END |
| 462 | 421 | |
| 463 | 422 | |
| 464 | ||
| 465 | 423 | GAME( 1984, pandoras, 0, pandoras, pandoras, 0, ROT90, "Konami/Interlogic", "Pandora's Palace", 0 ) |
| 466 |
| r4470 | r4471 | |
|---|---|---|
| 821 | 821 | |
| 822 | 822 | static READ16_HANDLER( taitof2_sound_r ) |
| 823 | 823 | { |
| 824 | if (offset == 1) | |
| 825 | return (taitosound_comm16_lsb_r(space,0,mem_mask)); | |
| 824 | if (offset == 1 && ACCESSING_BITS_0_7) | |
| 825 | return (taitosound_comm_r(space,0)); | |
| 826 | 826 | else return 0; |
| 827 | 827 | } |
| 828 | 828 | |
| 829 | 829 | static READ16_HANDLER( taitof2_msb_sound_r ) |
| 830 | 830 | { |
| 831 | if (offset == 1) | |
| 832 | return (taitosound_comm16_msb_r(space,0,mem_mask)); | |
| 831 | if (offset == 1 && ACCESSING_BITS_8_15) | |
| 832 | return (taitosound_comm_r(space,0)); | |
| 833 | 833 | else return 0; |
| 834 | 834 | } |
| 835 | 835 | |
| r4470 | r4471 | |
| 907 | 907 | AM_RANGE(0x100000, 0x10ffff) AM_WRITE(SMH_RAM) |
| 908 | 908 | AM_RANGE(0x200000, 0x200007) AM_WRITE(TC0110PCR_word_w) /* palette */ |
| 909 | 909 | AM_RANGE(0x300000, 0x30000f) AM_WRITE(TC0220IOC_halfword_w) /* I/O */ |
| 910 | AM_RANGE(0x320000, 0x320001) AM_WRITE(taitosound_port16_lsb_w) | |
| 911 | AM_RANGE(0x320002, 0x320003) AM_WRITE(taitosound_comm16_lsb_w) | |
| 910 | AM_RANGE(0x320000, 0x320001) AM_WRITE8(taitosound_port_w, 0x00ff) | |
| 911 | AM_RANGE(0x320002, 0x320003) AM_WRITE8(taitosound_comm_w, 0x00ff) | |
| 912 | 912 | AM_RANGE(0x800000, 0x80ffff) AM_WRITE(TC0100SCN_word_0_w) /* tilemaps */ |
| 913 | AM_RANGE(0x810000, 0x81ffff) AM_WRITE | |
| 913 | AM_RANGE(0x810000, 0x81ffff) AM_WRITE | |
| 914 | 914 | AM_RANGE(0x820000, 0x82000f) AM_WRITE(TC0100SCN_ctrl_word_0_w) |
| 915 | 915 | AM_RANGE(0x900000, 0x90ffff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) |
| 916 | AM_RANGE(0xb00002, 0xb00003) AM_WRITE | |
| 916 | AM_RANGE(0xb00002, 0xb00003) AM_WRITE | |
| 917 | 917 | ADDRESS_MAP_END |
| 918 | 918 | |
| 919 | 919 | static ADDRESS_MAP_START( dondokod_readmem, ADDRESS_SPACE_PROGRAM, 16 ) |
| r4470 | r4471 | |
| 933 | 933 | AM_RANGE(0x100000, 0x10ffff) AM_WRITE(SMH_RAM) |
| 934 | 934 | AM_RANGE(0x200000, 0x201fff) AM_WRITE(paletteram16_RRRRGGGGBBBBxxxx_word_w) AM_BASE(&paletteram16) |
| 935 | 935 | AM_RANGE(0x300000, 0x30000f) AM_WRITE(TC0220IOC_halfword_w) /* I/O */ |
| 936 | AM_RANGE(0x320000, 0x320001) AM_WRITE(taitosound_port16_msb_w) | |
| 937 | AM_RANGE(0x320002, 0x320003) AM_WRITE(taitosound_comm16_msb_w) | |
| 936 | AM_RANGE(0x320000, 0x320001) AM_WRITE8(taitosound_port_w, 0xff00) | |
| 937 | AM_RANGE(0x320002, 0x320003) AM_WRITE8(taitosound_comm_w, 0xff00) | |
| 938 | 938 | AM_RANGE(0x800000, 0x80ffff) AM_WRITE(TC0100SCN_word_0_w) /* tilemaps */ |
| 939 | 939 | AM_RANGE(0x820000, 0x82000f) AM_WRITE(TC0100SCN_ctrl_word_0_w) |
| 940 | 940 | AM_RANGE(0x900000, 0x90ffff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) |
| r4470 | r4471 | |
| 958 | 958 | |
| 959 | 959 | static ADDRESS_MAP_START( megab_writemem, ADDRESS_SPACE_PROGRAM, 16 ) |
| 960 | 960 | AM_RANGE(0x000000, 0x07ffff) AM_WRITE(SMH_ROM) |
| 961 | AM_RANGE(0x100000, 0x100001) AM_WRITE(taitosound_port16_msb_w) | |
| 962 | AM_RANGE(0x100002, 0x100003) AM_WRITE(taitosound_comm16_msb_w) | |
| 961 | AM_RANGE(0x100000, 0x100001) AM_WRITE8(taitosound_port_w, 0xff00) | |
| 962 | AM_RANGE(0x100002, 0x100003) AM_WRITE8(taitosound_comm_w, 0xff00) | |
| 963 | 963 | AM_RANGE(0x120000, 0x12000f) AM_WRITE(TC0220IOC_halfword_w) /* I/O */ |
| 964 | 964 | AM_RANGE(0x180000, 0x180fff) AM_WRITE(cchip2_word_w) AM_BASE(&cchip2_ram) |
| 965 | 965 | AM_RANGE(0x200000, 0x20ffff) AM_WRITE(SMH_RAM) |
| r4470 | r4471 | |
| 988 | 988 | AM_RANGE(0x000000, 0x07ffff) AM_WRITE(SMH_ROM) |
| 989 | 989 | AM_RANGE(0x100000, 0x101fff) AM_WRITE(paletteram16_RRRRGGGGBBBBxxxx_word_w) AM_BASE(&paletteram16) |
| 990 | 990 | AM_RANGE(0x200000, 0x20000f) AM_WRITE(TC0220IOC_halfword_w) /* I/O */ |
| 991 | AM_RANGE(0x220000, 0x220001) AM_WRITE(taitosound_port16_msb_w) | |
| 992 | AM_RANGE(0x220002, 0x220003) AM_WRITE(taitosound_comm16_msb_w) | |
| 991 | AM_RANGE(0x220000, 0x220001) AM_WRITE8(taitosound_port_w, 0xff00) | |
| 992 | AM_RANGE(0x220002, 0x220003) AM_WRITE8(taitosound_comm_w, 0xff00) | |
| 993 | 993 | AM_RANGE(0x300000, 0x30ffff) AM_WRITE(SMH_RAM) |
| 994 | 994 | AM_RANGE(0x400000, 0x40ffff) AM_WRITE(TC0100SCN_word_0_w) /* tilemaps */ |
| 995 | 995 | AM_RANGE(0x420000, 0x42000f) AM_WRITE(TC0100SCN_ctrl_word_0_w) |
| r4470 | r4471 | |
| 1017 | 1017 | AM_RANGE(0x100000, 0x10ffff) AM_WRITE(SMH_RAM) |
| 1018 | 1018 | AM_RANGE(0x200000, 0x201fff) AM_WRITE(paletteram16_RRRRGGGGBBBBxxxx_word_w) AM_BASE(&paletteram16) |
| 1019 | 1019 | AM_RANGE(0x300000, 0x30000f) AM_WRITE(TC0220IOC_halfword_w) /* I/O */ |
| 1020 | AM_RANGE(0x320000, 0x320001) AM_WRITE(taitosound_port16_msb_w) | |
| 1021 | AM_RANGE(0x320002, 0x320003) AM_WRITE(taitosound_comm16_msb_w) | |
| 1020 | AM_RANGE(0x320000, 0x320001) AM_WRITE8(taitosound_port_w, 0xff00) | |
| 1021 | AM_RANGE(0x320002, 0x320003) AM_WRITE8(taitosound_comm_w, 0xff00) | |
| 1022 | 1022 | AM_RANGE(0x800000, 0x813fff) AM_WRITE(TC0100SCN_word_0_w) /* tilemaps */ |
| 1023 | 1023 | AM_RANGE(0x820000, 0x82000f) AM_WRITE(TC0100SCN_ctrl_word_0_w) |
| 1024 | 1024 | AM_RANGE(0x900000, 0x90ffff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) |
| r4470 | r4471 | |
| 1043 | 1043 | AM_RANGE(0x100000, 0x10ffff) AM_WRITE(SMH_RAM) |
| 1044 | 1044 | AM_RANGE(0x200000, 0x200007) AM_WRITE(TC0110PCR_word_w) /* palette */ |
| 1045 | 1045 | AM_RANGE(0x500000, 0x50000f) AM_WRITE(TC0220IOC_halfword_w) /* I/O */ |
| 1046 | AM_RANGE(0x600000, 0x600001) AM_WRITE(taitosound_port16_msb_w) | |
| 1047 | AM_RANGE(0x600002, 0x600003) AM_WRITE(taitosound_comm16_msb_w) | |
| 1046 | AM_RANGE(0x600000, 0x600001) AM_WRITE8(taitosound_port_w, 0xff00) | |
| 1047 | AM_RANGE(0x600002, 0x600003) AM_WRITE8(taitosound_comm_w, 0xff00) | |
| 1048 | 1048 | AM_RANGE(0x800000, 0x80ffff) AM_WRITE(TC0100SCN_word_0_w) /* tilemaps */ |
| 1049 | 1049 | AM_RANGE(0x820000, 0x82000f) AM_WRITE(TC0100SCN_ctrl_word_0_w) |
| 1050 | 1050 | AM_RANGE(0x900000, 0x90ffff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) |
| 1051 | AM_RANGE(0x910000, 0x9120ff) AM_WRITE | |
| 1051 | AM_RANGE(0x910000, 0x9120ff) AM_WRITE | |
| 1052 | 1052 | ADDRESS_MAP_END |
| 1053 | 1053 | |
| 1054 | 1054 | static ADDRESS_MAP_START( liquidk_readmem, ADDRESS_SPACE_PROGRAM, 16 ) |
| r4470 | r4471 | |
| 1067 | 1067 | AM_RANGE(0x100000, 0x10ffff) AM_WRITE(SMH_RAM) |
| 1068 | 1068 | AM_RANGE(0x200000, 0x201fff) AM_WRITE(paletteram16_RRRRGGGGBBBBxxxx_word_w) AM_BASE(&paletteram16) |
| 1069 | 1069 | AM_RANGE(0x300000, 0x30000f) AM_WRITE(TC0220IOC_halfword_w) /* I/O */ |
| 1070 | AM_RANGE(0x320000, 0x320001) AM_WRITE(taitosound_port16_lsb_w) | |
| 1071 | AM_RANGE(0x320002, 0x320003) AM_WRITE(taitosound_comm16_lsb_w) | |
| 1070 | AM_RANGE(0x320000, 0x320001) AM_WRITE8(taitosound_port_w, 0x00ff) | |
| 1071 | AM_RANGE(0x320002, 0x320003) AM_WRITE8(taitosound_comm_w, 0x00ff) | |
| 1072 | 1072 | AM_RANGE(0x800000, 0x80ffff) AM_WRITE(TC0100SCN_word_0_w) /* tilemaps */ |
| 1073 | 1073 | AM_RANGE(0x820000, 0x82000f) AM_WRITE(TC0100SCN_ctrl_word_0_w) |
| 1074 | 1074 | AM_RANGE(0x900000, 0x90ffff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) |
| r4470 | r4471 | |
| 1093 | 1093 | AM_RANGE(0x200000, 0x200007) AM_WRITE(TC0110PCR_word_w) /* palette */ |
| 1094 | 1094 | AM_RANGE(0x500004, 0x500005) AM_WRITE(growl_coin_word_w) |
| 1095 | 1095 | AM_RANGE(0x580000, 0x580001) AM_WRITE(taitof2_watchdog_w) /* ??? */ |
| 1096 | AM_RANGE(0x580006, 0x580007) AM_WRITE(SMH_NOP) /* ??? */ | |
| 1097 | AM_RANGE(0x600000, 0x600001) AM_WRITE(taitosound_port16_lsb_w) | |
| 1098 | AM_RANGE(0x600002, 0x600003) AM_WRITE(taitosound_comm16_lsb_w) | |
| 1099 | AM_RANGE(0x680000, 0x680001) AM_WRITE(SMH_NOP) /* ??? */ | |
| 1096 | AM_RANGE(0x580006, 0x580007) AM_WRITENOP /* ??? */ | |
| 1097 | AM_RANGE(0x600000, 0x600001) AM_WRITE8(taitosound_port_w, 0x00ff) | |
| 1098 | AM_RANGE(0x600002, 0x600003) AM_WRITE8(taitosound_comm_w, 0x00ff) | |
| 1099 | AM_RANGE(0x680000, 0x680001) AM_WRITENOP /* ??? */ | |
| 1100 | 1100 | AM_RANGE(0x800000, 0x80ffff) AM_WRITE(TC0100SCN_word_0_w) /* tilemaps */ |
| 1101 | AM_RANGE(0x810000, 0x81ffff) AM_WRITE | |
| 1101 | AM_RANGE(0x810000, 0x81ffff) AM_WRITE | |
| 1102 | 1102 | AM_RANGE(0x820000, 0x82000f) AM_WRITE(TC0100SCN_ctrl_word_0_w) |
| 1103 | 1103 | AM_RANGE(0x900000, 0x90ffff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) |
| 1104 | 1104 | ADDRESS_MAP_END |
| r4470 | r4471 | |
| 1119 | 1119 | AM_RANGE(0x100000, 0x10000f) AM_WRITE(TC0510NIO_halfword_w) |
| 1120 | 1120 | AM_RANGE(0x200000, 0x20ffff) AM_WRITE(SMH_RAM) |
| 1121 | 1121 | AM_RANGE(0x300000, 0x301fff) AM_WRITE(paletteram16_RRRRGGGGBBBBxxxx_word_w) AM_BASE(&paletteram16) |
| 1122 | AM_RANGE(0x400000, 0x400001) AM_WRITE(taitosound_port16_msb_w) | |
| 1123 | AM_RANGE(0x400002, 0x400003) AM_WRITE(taitosound_comm16_msb_w) | |
| 1124 | // AM_RANGE(0x500000, 0x500001) AM_WRITE(SMH_NOP) /* ?? */ | |
| 1122 | AM_RANGE(0x400000, 0x400001) AM_WRITE8(taitosound_port_w, 0xff00) | |
| 1123 | AM_RANGE(0x400002, 0x400003) AM_WRITE8(taitosound_comm_w, 0xff00) | |
| 1124 | // AM_RANGE(0x500000, 0x500001) AM_WRITENOP /* ?? */ | |
| 1125 | 1125 | AM_RANGE(0x600000, 0x60ffff) AM_WRITE(TC0100SCN_word_0_w) /* tilemaps (not used) */ |
| 1126 | 1126 | AM_RANGE(0x620000, 0x62000f) AM_WRITE(TC0100SCN_ctrl_word_0_w) |
| 1127 | 1127 | AM_RANGE(0x800000, 0x80ffff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) /* sprite ram */ |
| r4470 | r4471 | |
| 1143 | 1143 | AM_RANGE(0x100000, 0x10ffff) AM_WRITE(SMH_RAM) |
| 1144 | 1144 | AM_RANGE(0x200000, 0x201fff) AM_WRITE(paletteram16_RRRRGGGGBBBBxxxx_word_w) AM_BASE(&paletteram16) |
| 1145 | 1145 | AM_RANGE(0x300000, 0x30000f) AM_WRITE(TC0510NIO_halfword_wordswap_w) |
| 1146 | AM_RANGE(0x320000, 0x320001) AM_WRITE(taitosound_port16_msb_w) | |
| 1147 | AM_RANGE(0x320002, 0x320003) AM_WRITE(taitosound_comm16_msb_w) | |
| 1146 | AM_RANGE(0x320000, 0x320001) AM_WRITE8(taitosound_port_w, 0xff00) | |
| 1147 | AM_RANGE(0x320002, 0x320003) AM_WRITE8(taitosound_comm_w, 0xff00) | |
| 1148 | 1148 | AM_RANGE(0x800000, 0x80ffff) AM_WRITE(TC0100SCN_word_0_w) /* tilemaps */ |
| 1149 | 1149 | AM_RANGE(0x820000, 0x82000f) AM_WRITE(TC0100SCN_ctrl_word_0_w) |
| 1150 | 1150 | AM_RANGE(0x900000, 0x90ffff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) |
| 1151 | // AM_RANGE(0xa00000, 0xa00001) AM_WRITE | |
| 1151 | // AM_RANGE(0xa00000, 0xa00001) AM_WRITE | |
| 1152 | 1152 | AM_RANGE(0xb00000, 0xb0001f) AM_WRITE(TC0360PRI_halfword_w) /* ?? */ |
| 1153 | 1153 | ADDRESS_MAP_END |
| 1154 | 1154 | |
| r4470 | r4471 | |
| 1172 | 1172 | AM_RANGE(0x200000, 0x201fff) AM_WRITE(paletteram16_RRRRGGGGBBBBxxxx_word_w) AM_BASE(&paletteram16) |
| 1173 | 1173 | AM_RANGE(0x300004, 0x300005) AM_WRITE(growl_coin_word_w) |
| 1174 | 1174 | AM_RANGE(0x340000, 0x340001) AM_WRITE(taitof2_watchdog_w) |
| 1175 | AM_RANGE(0x400000, 0x400001) AM_WRITE(taitosound_port16_msb_w) | |
| 1176 | AM_RANGE(0x400002, 0x400003) AM_WRITE(taitosound_comm16_msb_w) | |
| 1175 | AM_RANGE(0x400000, 0x400001) AM_WRITE8(taitosound_port_w, 0xff00) | |
| 1176 | AM_RANGE(0x400002, 0x400003) AM_WRITE8(taitosound_comm_w, 0xff00) | |
| 1177 | 1177 | AM_RANGE(0x500000, 0x50000f) AM_WRITE(taitof2_spritebank_w) |
| 1178 | AM_RANGE(0x504000, 0x504001) AM_WRITE | |
| 1178 | AM_RANGE(0x504000, 0x504001) AM_WRITE | |
| 1179 | 1179 | AM_RANGE(0x800000, 0x80ffff) AM_WRITE(TC0100SCN_word_0_w) /* tilemaps */ |
| 1180 | 1180 | AM_RANGE(0x820000, 0x82000f) AM_WRITE(TC0100SCN_ctrl_word_0_w) |
| 1181 | 1181 | AM_RANGE(0x900000, 0x90ffff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) |
| r4470 | r4471 | |
| 1201 | 1201 | AM_RANGE(0x120000, 0x12ffff) AM_WRITE(SMH_RAM) |
| 1202 | 1202 | AM_RANGE(0x200000, 0x200007) AM_WRITE(TC0110PCR_word_w) /* palette */ |
| 1203 | 1203 | AM_RANGE(0x320000, 0x320001) AM_WRITE(mjnquest_inputselect_w) |
| 1204 | AM_RANGE(0x330000, 0x330001) AM_WRITE(SMH_NOP) /* watchdog ? */ | |
| 1205 | AM_RANGE(0x350000, 0x350001) AM_WRITE(SMH_NOP) /* watchdog ? */ | |
| 1206 | AM_RANGE(0x360000, 0x360001) AM_WRITE(taitosound_port16_msb_w) | |
| 1207 | AM_RANGE(0x360002, 0x360003) AM_WRITE(taitosound_comm16_msb_w) | |
| 1204 | AM_RANGE(0x330000, 0x330001) AM_WRITENOP /* watchdog ? */ | |
| 1205 | AM_RANGE(0x350000, 0x350001) AM_WRITENOP /* watchdog ? */ | |
| 1206 | AM_RANGE(0x360000, 0x360001) AM_WRITE8(taitosound_port_w, 0xff00) | |
| 1207 | AM_RANGE(0x360002, 0x360003) AM_WRITE8(taitosound_comm_w, 0xff00) | |
| 1208 | 1208 | AM_RANGE(0x380000, 0x380001) AM_WRITE(TC0100SCN_gfxbank_w) /* scr gfx bank select */ |
| 1209 | 1209 | AM_RANGE(0x400000, 0x40ffff) AM_WRITE(TC0100SCN_word_0_w) /* tilemaps */ |
| 1210 | 1210 | AM_RANGE(0x420000, 0x42000f) AM_WRITE(TC0100SCN_ctrl_word_0_w) |
| r4470 | r4471 | |
| 1233 | 1233 | AM_RANGE(0x600000, 0x601fff) AM_WRITE(paletteram16_RRRRGGGGBBBBxxxx_word_w) AM_BASE(&paletteram16) |
| 1234 | 1234 | AM_RANGE(0x700006, 0x700007) AM_WRITE(taitof2_4p_coin_word_w) |
| 1235 | 1235 | AM_RANGE(0x800000, 0x800001) AM_WRITE(taitof2_watchdog_w) /* ??? */ |
| 1236 | AM_RANGE(0xa00000, 0xa00001) AM_WRITE(taitosound_port16_lsb_w) | |
| 1237 | AM_RANGE(0xa00002, 0xa00003) AM_WRITE(taitosound_comm16_lsb_w) | |
| 1236 | AM_RANGE(0xa00000, 0xa00001) AM_WRITE8(taitosound_port_w, 0x00ff) | |
| 1237 | AM_RANGE(0xa00002, 0xa00003) AM_WRITE8(taitosound_comm_w, 0x00ff) | |
| 1238 | 1238 | ADDRESS_MAP_END |
| 1239 | 1239 | |
| 1240 | 1240 | static ADDRESS_MAP_START( koshien_readmem, ADDRESS_SPACE_PROGRAM, 16 ) |
| r4470 | r4471 | |
| 1254 | 1254 | AM_RANGE(0x100000, 0x10ffff) AM_WRITE(SMH_RAM) |
| 1255 | 1255 | AM_RANGE(0x200000, 0x201fff) AM_WRITE(paletteram16_RRRRGGGGBBBBxxxx_word_w) AM_BASE(&paletteram16) |
| 1256 | 1256 | AM_RANGE(0x300000, 0x30000f) AM_WRITE(TC0510NIO_halfword_w) |
| 1257 | AM_RANGE(0x320000, 0x320001) AM_WRITE(taitosound_port16_msb_w) | |
| 1258 | AM_RANGE(0x320002, 0x320003) AM_WRITE(taitosound_comm16_msb_w) | |
| 1257 | AM_RANGE(0x320000, 0x320001) AM_WRITE8(taitosound_port_w, 0xff00) | |
| 1258 | AM_RANGE(0x320002, 0x320003) AM_WRITE8(taitosound_comm_w, 0xff00) | |
| 1259 | 1259 | AM_RANGE(0x800000, 0x80ffff) AM_WRITE(TC0100SCN_word_0_w) /* tilemaps */ |
| 1260 | 1260 | AM_RANGE(0x820000, 0x82000f) AM_WRITE(TC0100SCN_ctrl_word_0_w) |
| 1261 | 1261 | AM_RANGE(0x900000, 0x90ffff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) |
| r4470 | r4471 | |
| 1278 | 1278 | static ADDRESS_MAP_START( yuyugogo_writemem, ADDRESS_SPACE_PROGRAM, 16 ) |
| 1279 | 1279 | AM_RANGE(0x000000, 0x03ffff) AM_WRITE(SMH_ROM) |
| 1280 | 1280 | AM_RANGE(0x200000, 0x20000f) AM_WRITE(TC0510NIO_halfword_w) |
| 1281 | AM_RANGE(0x400000, 0x400001) AM_WRITE(taitosound_port16_msb_w) | |
| 1282 | AM_RANGE(0x400002, 0x400003) AM_WRITE(taitosound_comm16_msb_w) | |
| 1281 | AM_RANGE(0x400000, 0x400001) AM_WRITE8(taitosound_port_w, 0xff00) | |
| 1282 | AM_RANGE(0x400002, 0x400003) AM_WRITE8(taitosound_comm_w, 0xff00) | |
| 1283 | 1283 | AM_RANGE(0x800000, 0x80ffff) AM_WRITE(TC0100SCN_word_0_w) /* tilemaps */ |
| 1284 | 1284 | AM_RANGE(0x820000, 0x82000f) AM_WRITE(TC0100SCN_ctrl_word_0_w) |
| 1285 | 1285 | AM_RANGE(0x900000, 0x90ffff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) |
| r4470 | r4471 | |
| 1306 | 1306 | AM_RANGE(0x200000, 0x201fff) AM_WRITE(paletteram16_RRRRGGGGBBBBxxxx_word_w) AM_BASE(&paletteram16) |
| 1307 | 1307 | AM_RANGE(0x30000e, 0x30000f) AM_WRITE(ninjak_coin_word_w) |
| 1308 | 1308 | AM_RANGE(0x380000, 0x380001) AM_WRITE(taitof2_watchdog_w) /* ??? */ |
| 1309 | AM_RANGE(0x400000, 0x400001) AM_WRITE(taitosound_port16_msb_w) | |
| 1310 | AM_RANGE(0x400002, 0x400003) AM_WRITE(taitosound_comm16_msb_w) | |
| 1309 | AM_RANGE(0x400000, 0x400001) AM_WRITE8(taitosound_port_w, 0xff00) | |
| 1310 | AM_RANGE(0x400002, 0x400003) AM_WRITE8(taitosound_comm_w, 0xff00) | |
| 1311 | 1311 | AM_RANGE(0x600000, 0x60000f) AM_WRITE(taitof2_spritebank_w) |
| 1312 | 1312 | AM_RANGE(0x800000, 0x80ffff) AM_WRITE(TC0100SCN_word_0_w) /* tilemaps */ |
| 1313 | 1313 | AM_RANGE(0x820000, 0x82000f) AM_WRITE(TC0100SCN_ctrl_word_0_w) |
| r4470 | r4471 | |
| 1333 | 1333 | AM_RANGE(0x200000, 0x201fff) AM_WRITE(paletteram16_RRRRGGGGBBBBxxxx_word_w) AM_BASE(&paletteram16) |
| 1334 | 1334 | AM_RANGE(0x300004, 0x300005) AM_WRITE(growl_coin_word_w) /* NOT VERIFIED */ |
| 1335 | 1335 | AM_RANGE(0x340000, 0x340001) AM_WRITE(taitof2_watchdog_w) /* NOT VERIFIED */ |
| 1336 | AM_RANGE(0x400000, 0x400001) AM_WRITE(taitosound_port16_msb_w) | |
| 1337 | AM_RANGE(0x400002, 0x400003) AM_WRITE(taitosound_comm16_msb_w) | |
| 1336 | AM_RANGE(0x400000, 0x400001) AM_WRITE8(taitosound_port_w, 0xff00) | |
| 1337 | AM_RANGE(0x400002, 0x400003) AM_WRITE8(taitosound_comm_w, 0xff00) | |
| 1338 | 1338 | AM_RANGE(0x500000, 0x50000f) AM_WRITE(taitof2_spritebank_w) |
| 1339 | AM_RANGE(0x504000, 0x504001) AM_WRITE | |
| 1339 | AM_RANGE(0x504000, 0x504001) AM_WRITE | |
| 1340 | 1340 | AM_RANGE(0x800000, 0x80ffff) AM_WRITE(TC0100SCN_word_0_w) /* tilemaps */ |
| 1341 | 1341 | AM_RANGE(0x820000, 0x82000f) AM_WRITE(TC0100SCN_ctrl_word_0_w) |
| 1342 | 1342 | AM_RANGE(0x900000, 0x90ffff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) |
| r4470 | r4471 | |
| 1357 | 1357 | static ADDRESS_MAP_START( qzquest_writemem, ADDRESS_SPACE_PROGRAM, 16 ) |
| 1358 | 1358 | AM_RANGE(0x000000, 0x03ffff) AM_WRITE(SMH_ROM) |
| 1359 | 1359 | AM_RANGE(0x200000, 0x20000f) AM_WRITE(TC0510NIO_halfword_w) |
| 1360 | AM_RANGE(0x300000, 0x300001) AM_WRITE(taitosound_port16_lsb_w) | |
| 1361 | AM_RANGE(0x300002, 0x300003) AM_WRITE(taitosound_comm16_lsb_w) | |
| 1360 | AM_RANGE(0x300000, 0x300001) AM_WRITE8(taitosound_port_w, 0x00ff) | |
| 1361 | AM_RANGE(0x300002, 0x300003) AM_WRITE8(taitosound_comm_w, 0x00ff) | |
| 1362 | 1362 | AM_RANGE(0x400000, 0x401fff) AM_WRITE(paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE(&paletteram16) |
| 1363 | 1363 | AM_RANGE(0x500000, 0x50ffff) AM_WRITE(SMH_RAM) |
| 1364 | 1364 | AM_RANGE(0x600000, 0x60ffff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) |
| r4470 | r4471 | |
| 1380 | 1380 | |
| 1381 | 1381 | static ADDRESS_MAP_START( pulirula_writemem, ADDRESS_SPACE_PROGRAM, 16 ) |
| 1382 | 1382 | AM_RANGE(0x000000, 0x0bffff) AM_WRITE(SMH_ROM) |
| 1383 | AM_RANGE(0x200000, 0x200001) AM_WRITE(taitosound_port16_msb_w) | |
| 1384 | AM_RANGE(0x200002, 0x200003) AM_WRITE(taitosound_comm16_msb_w) | |
| 1383 | AM_RANGE(0x200000, 0x200001) AM_WRITE8(taitosound_port_w, 0xff00) | |
| 1384 | AM_RANGE(0x200002, 0x200003) AM_WRITE8(taitosound_comm_w, 0xff00) | |
| 1385 | 1385 | AM_RANGE(0x300000, 0x30ffff) AM_WRITE(SMH_RAM) |
| 1386 | 1386 | AM_RANGE(0x400000, 0x401fff) AM_WRITE(TC0430GRW_word_w) /* ROZ tilemap */ |
| 1387 | 1387 | AM_RANGE(0x402000, 0x40200f) AM_WRITE(TC0430GRW_ctrl_word_w) |
| 1388 | // AM_RANGE(0x500000, 0x500001) AM_WRITE | |
| 1388 | // AM_RANGE(0x500000, 0x500001) AM_WRITE | |
| 1389 | 1389 | AM_RANGE(0x600000, 0x603fff) AM_WRITE(taitof2_sprite_extension_w) AM_BASE(&f2_sprite_extension) AM_SIZE(&f2_spriteext_size) |
| 1390 | 1390 | AM_RANGE(0x700000, 0x701fff) AM_WRITE(paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE(&paletteram16) |
| 1391 | 1391 | AM_RANGE(0x800000, 0x80ffff) AM_WRITE(TC0100SCN_word_0_w) /* tilemaps */ |
| r4470 | r4471 | |
| 1410 | 1410 | AM_RANGE(0x000000, 0x0bffff) AM_WRITE(SMH_ROM) |
| 1411 | 1411 | AM_RANGE(0x100000, 0x10ffff) AM_WRITE(SMH_RAM) |
| 1412 | 1412 | AM_RANGE(0x300000, 0x30ffff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) |
| 1413 | // AM_RANGE(0x42000c, 0x42000f) AM_WRITE | |
| 1413 | // AM_RANGE(0x42000c, 0x42000f) AM_WRITE | |
| 1414 | 1414 | AM_RANGE(0x500000, 0x50ffff) AM_WRITE(TC0480SCP_word_w) /* tilemaps */ |
| 1415 | 1415 | AM_RANGE(0x530000, 0x53002f) AM_WRITE(TC0480SCP_ctrl_word_w) |
| 1416 | 1416 | AM_RANGE(0x600000, 0x60001f) AM_WRITE(TC0360PRI_halfword_w) |
| 1417 | 1417 | AM_RANGE(0x700000, 0x703fff) AM_WRITE(paletteram16_RRRRGGGGBBBBxxxx_word_w) AM_BASE(&paletteram16) |
| 1418 | 1418 | AM_RANGE(0x800000, 0x80000f) AM_WRITE(TC0510NIO_halfword_wordswap_w) |
| 1419 | AM_RANGE(0x900000, 0x900001) AM_WRITE(taitosound_port16_msb_w) | |
| 1420 | AM_RANGE(0x900002, 0x900003) AM_WRITE(taitosound_comm16_msb_w) | |
| 1421 | // AM_RANGE(0xa00000, 0xa00001) AM_WRITE(SMH_NOP) /* ??? */ | |
| 1419 | AM_RANGE(0x900000, 0x900001) AM_WRITE8(taitosound_port_w, 0xff00) | |
| 1420 | AM_RANGE(0x900002, 0x900003) AM_WRITE8(taitosound_comm_w, 0xff00) | |
| 1421 | // AM_RANGE(0xa00000, 0xa00001) AM_WRITENOP /* ??? */ | |
| 1422 | 1422 | ADDRESS_MAP_END |
| 1423 | 1423 | |
| 1424 | 1424 | static ADDRESS_MAP_START( qzchikyu_readmem, ADDRESS_SPACE_PROGRAM, 16 ) |
| r4470 | r4471 | |
| 1435 | 1435 | static ADDRESS_MAP_START( qzchikyu_writemem, ADDRESS_SPACE_PROGRAM, 16 ) |
| 1436 | 1436 | AM_RANGE(0x000000, 0x03ffff) AM_WRITE(SMH_ROM) |
| 1437 | 1437 | AM_RANGE(0x200000, 0x20000f) AM_WRITE(TC0510NIO_halfword_w) |
| 1438 | AM_RANGE(0x300000, 0x300001) AM_WRITE(taitosound_port16_lsb_w) | |
| 1439 | AM_RANGE(0x300002, 0x300003) AM_WRITE(taitosound_comm16_lsb_w) | |
| 1438 | AM_RANGE(0x300000, 0x300001) AM_WRITE8(taitosound_port_w, 0x00ff) | |
| 1439 | AM_RANGE(0x300002, 0x300003) AM_WRITE8(taitosound_comm_w, 0x00ff) | |
| 1440 | 1440 | AM_RANGE(0x400000, 0x401fff) AM_WRITE(paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE(&paletteram16) |
| 1441 | 1441 | AM_RANGE(0x500000, 0x50ffff) AM_WRITE(SMH_RAM) |
| 1442 | 1442 | AM_RANGE(0x600000, 0x60ffff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) |
| r4470 | r4471 | |
| 1464 | 1464 | AM_RANGE(0x500000, 0x50ffff) AM_WRITE(TC0100SCN_word_0_w) /* tilemaps */ |
| 1465 | 1465 | AM_RANGE(0x520000, 0x52000f) AM_WRITE(TC0100SCN_ctrl_word_0_w) |
| 1466 | 1466 | AM_RANGE(0x600000, 0x601fff) AM_WRITE(paletteram16_RRRRGGGGBBBBxxxx_word_w) AM_BASE(&paletteram16) |
| 1467 | AM_RANGE(0x800000, 0x800001) AM_WRITE(taitosound_port16_msb_w) | |
| 1468 | AM_RANGE(0x800002, 0x800003) AM_WRITE(taitosound_comm16_msb_w) | |
| 1469 | AM_RANGE(0x900002, 0x900003) AM_WRITE(SMH_NOP) /* lots of similar writes */ | |
| 1470 | AM_RANGE(0xc00000, 0xc00001) AM_WRITE(SMH_NOP) /* watchdog ?? */ | |
| 1471 | AM_RANGE(0xd00000, 0xd00001) AM_WRITE(SMH_NOP) /* lots of similar writes */ | |
| 1467 | AM_RANGE(0x800000, 0x800001) AM_WRITE8(taitosound_port_w, 0xff00) | |
| 1468 | AM_RANGE(0x800002, 0x800003) AM_WRITE8(taitosound_comm_w, 0xff00) | |
| 1469 | AM_RANGE(0x900002, 0x900003) AM_WRITENOP /* lots of similar writes */ | |
| 1470 | AM_RANGE(0xc00000, 0xc00001) AM_WRITENOP /* watchdog ?? */ | |
| 1471 | AM_RANGE(0xd00000, 0xd00001) AM_WRITENOP /* lots of similar writes */ | |
| 1472 | 1472 | ADDRESS_MAP_END |
| 1473 | 1473 | |
| 1474 | 1474 | static ADDRESS_MAP_START( deadconx_readmem, ADDRESS_SPACE_PROGRAM, 16 ) |
| r4470 | r4471 | |
| 1488 | 1488 | AM_RANGE(0x200000, 0x20ffff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) |
| 1489 | 1489 | AM_RANGE(0x300000, 0x30000f) AM_WRITE(taitof2_spritebank_w) |
| 1490 | 1490 | AM_RANGE(0x400000, 0x40ffff) AM_WRITE(TC0480SCP_word_w) /* tilemaps */ |
| 1491 | // AM_RANGE(0x42000c, 0x42000f) AM_WRITE | |
| 1491 | // AM_RANGE(0x42000c, 0x42000f) AM_WRITE | |
| 1492 | 1492 | AM_RANGE(0x430000, 0x43002f) AM_WRITE(TC0480SCP_ctrl_word_w) |
| 1493 | 1493 | AM_RANGE(0x500000, 0x50001f) AM_WRITE(TC0360PRI_halfword_w) /* uses 500002 like a watchdog !? */ |
| 1494 | 1494 | AM_RANGE(0x600000, 0x601fff) AM_WRITE(paletteram16_RRRRGGGGBBBBxxxx_word_w) AM_BASE(&paletteram16) |
| 1495 | 1495 | AM_RANGE(0x700006, 0x700007) AM_WRITE(taitof2_4p_coin_word_w) |
| 1496 | 1496 | AM_RANGE(0x800000, 0x800001) AM_WRITE(taitof2_watchdog_w) /* ??? */ |
| 1497 | AM_RANGE(0xa00000, 0xa00001) AM_WRITE(taitosound_port16_msb_w) | |
| 1498 | AM_RANGE(0xa00002, 0xa00003) AM_WRITE(taitosound_comm16_msb_w) | |
| 1497 | AM_RANGE(0xa00000, 0xa00001) AM_WRITE8(taitosound_port_w, 0xff00) | |
| 1498 | AM_RANGE(0xa00002, 0xa00003) AM_WRITE8(taitosound_comm_w, 0xff00) | |
| 1499 | 1499 | ADDRESS_MAP_END |
| 1500 | 1500 | |
| 1501 | 1501 | static ADDRESS_MAP_START( dinorex_readmem, ADDRESS_SPACE_PROGRAM, 16 ) |
| r4470 | r4471 | |
| 1519 | 1519 | AM_RANGE(0x800000, 0x80ffff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) |
| 1520 | 1520 | AM_RANGE(0x900000, 0x90ffff) AM_WRITE(TC0100SCN_word_0_w) /* tilemaps */ |
| 1521 | 1521 | AM_RANGE(0x920000, 0x92000f) AM_WRITE(TC0100SCN_ctrl_word_0_w) |
| 1522 | AM_RANGE(0xa00000, 0xa00001) AM_WRITE(taitosound_port16_msb_w) | |
| 1523 | AM_RANGE(0xa00002, 0xa00003) AM_WRITE(taitosound_comm16_msb_w) | |
| 1524 | AM_RANGE(0xb00000, 0xb00001) AM_WRITE(SMH_NOP) /* watchdog? */ | |
| 1522 | AM_RANGE(0xa00000, 0xa00001) AM_WRITE8(taitosound_port_w, 0xff00) | |
| 1523 | AM_RANGE(0xa00002, 0xa00003) AM_WRITE8(taitosound_comm_w, 0xff00) | |
| 1524 | AM_RANGE(0xb00000, 0xb00001) AM_WRITENOP /* watchdog? */ | |
| 1525 | 1525 | ADDRESS_MAP_END |
| 1526 | 1526 | |
| 1527 | 1527 | static ADDRESS_MAP_START( qjinsei_readmem, ADDRESS_SPACE_PROGRAM, 16 ) |
| r4470 | r4471 | |
| 1537 | 1537 | |
| 1538 | 1538 | static ADDRESS_MAP_START( qjinsei_writemem, ADDRESS_SPACE_PROGRAM, 16 ) |
| 1539 | 1539 | AM_RANGE(0x000000, 0x07ffff) AM_WRITE(SMH_ROM) |
| 1540 | AM_RANGE(0x200000, 0x200001) AM_WRITE(taitosound_port16_msb_w) | |
| 1541 | AM_RANGE(0x200002, 0x200003) AM_WRITE(taitosound_comm16_msb_w) | |
| 1540 | AM_RANGE(0x200000, 0x200001) AM_WRITE8(taitosound_port_w, 0xff00) | |
| 1541 | AM_RANGE(0x200002, 0x200003) AM_WRITE8(taitosound_comm_w, 0xff00) | |
| 1542 | 1542 | AM_RANGE(0x300000, 0x30ffff) AM_WRITE(SMH_RAM) |
| 1543 | AM_RANGE(0x500000, 0x500001) AM_WRITE | |
| 1543 | AM_RANGE(0x500000, 0x500001) AM_WRITE | |
| 1544 | 1544 | AM_RANGE(0x600000, 0x603fff) AM_WRITE(taitof2_sprite_extension_w) AM_BASE(&f2_sprite_extension) AM_SIZE(&f2_spriteext_size) |
| 1545 | 1545 | AM_RANGE(0x700000, 0x701fff) AM_WRITE(paletteram16_RRRRGGGGBBBBxxxx_word_w) AM_BASE(&paletteram16) |
| 1546 | 1546 | AM_RANGE(0x800000, 0x80ffff) AM_WRITE(TC0100SCN_word_0_w) /* tilemaps */ |
| r4470 | r4471 | |
| 1565 | 1565 | static ADDRESS_MAP_START( qcrayon_writemem, ADDRESS_SPACE_PROGRAM, 16 ) |
| 1566 | 1566 | AM_RANGE(0x000000, 0x07ffff) AM_WRITE(SMH_ROM) |
| 1567 | 1567 | AM_RANGE(0x100000, 0x10ffff) AM_WRITE(SMH_RAM) |
| 1568 | // AM_RANGE(0x200000, 0x200001) AM_WRITE | |
| 1568 | // AM_RANGE(0x200000, 0x200001) AM_WRITE | |
| 1569 | 1569 | AM_RANGE(0x300000, 0x3fffff) AM_WRITE(SMH_ROM) |
| 1570 | AM_RANGE(0x500000, 0x500001) AM_WRITE(taitosound_port16_msb_w) | |
| 1571 | AM_RANGE(0x500002, 0x500003) AM_WRITE(taitosound_comm16_msb_w) | |
| 1570 | AM_RANGE(0x500000, 0x500001) AM_WRITE8(taitosound_port_w, 0xff00) | |
| 1571 | AM_RANGE(0x500002, 0x500003) AM_WRITE8(taitosound_comm_w, 0xff00) | |
| 1572 | 1572 | AM_RANGE(0x600000, 0x603fff) AM_WRITE(taitof2_sprite_extension_w) AM_BASE(&f2_sprite_extension) AM_SIZE(&f2_spriteext_size) |
| 1573 | 1573 | AM_RANGE(0x700000, 0x701fff) AM_WRITE(paletteram16_RRRRGGGGBBBBxxxx_word_w) AM_BASE(&paletteram16) |
| 1574 | 1574 | AM_RANGE(0x800000, 0x80ffff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) |
| r4470 | r4471 | |
| 1600 | 1600 | AM_RANGE(0x600000, 0x67ffff) AM_WRITE(SMH_ROM) |
| 1601 | 1601 | AM_RANGE(0x700000, 0x70000f) AM_WRITE(TC0510NIO_halfword_w) |
| 1602 | 1602 | AM_RANGE(0x900000, 0x90001f) AM_WRITE(TC0360PRI_halfword_w) /* ?? */ |
| 1603 | AM_RANGE(0xa00000, 0xa00001) AM_WRITE(taitosound_port16_msb_w) | |
| 1604 | AM_RANGE(0xa00002, 0xa00003) AM_WRITE(taitosound_comm16_msb_w) | |
| 1603 | AM_RANGE(0xa00000, 0xa00001) AM_WRITE8(taitosound_port_w, 0xff00) | |
| 1604 | AM_RANGE(0xa00002, 0xa00003) AM_WRITE8(taitosound_comm_w, 0xff00) | |
| 1605 | 1605 | AM_RANGE(0xb00000, 0xb017ff) AM_WRITE(taitof2_sprite_extension_w) AM_BASE(&f2_sprite_extension) AM_SIZE(&f2_spriteext_size) |
| 1606 | 1606 | ADDRESS_MAP_END |
| 1607 | 1607 | |
| r4470 | r4471 | |
| 1620 | 1620 | |
| 1621 | 1621 | static ADDRESS_MAP_START( driftout_writemem, ADDRESS_SPACE_PROGRAM, 16 ) |
| 1622 | 1622 | AM_RANGE(0x000000, 0x0fffff) AM_WRITE(SMH_ROM) |
| 1623 | AM_RANGE(0x200000, 0x200001) AM_WRITE(taitosound_port16_msb_w) | |
| 1624 | AM_RANGE(0x200002, 0x200003) AM_WRITE(taitosound_comm16_msb_w) | |
| 1623 | AM_RANGE(0x200000, 0x200001) AM_WRITE8(taitosound_port_w, 0xff00) | |
| 1624 | AM_RANGE(0x200002, 0x200003) AM_WRITE8(taitosound_comm_w, 0xff00) | |
| 1625 | 1625 | AM_RANGE(0x300000, 0x30ffff) AM_WRITE(SMH_RAM) |
| 1626 | 1626 | AM_RANGE(0x400000, 0x401fff) AM_WRITE(TC0430GRW_word_w) /* ROZ tilemap */ |
| 1627 | 1627 | AM_RANGE(0x402000, 0x40200f) AM_WRITE(TC0430GRW_ctrl_word_w) |
| r4470 | r4471 | |
| 1636 | 1636 | /* same as driftout, except for sound address 0x200000 */ |
| 1637 | 1637 | static ADDRESS_MAP_START( driveout_readmem, ADDRESS_SPACE_PROGRAM, 16 ) |
| 1638 | 1638 | AM_RANGE(0x000000, 0x0fffff) AM_READ(SMH_ROM) |
| 1639 | AM_RANGE(0x200000, 0x200003) AM_READ | |
| 1639 | AM_RANGE(0x200000, 0x200003) AM_READ | |
| 1640 | 1640 | AM_RANGE(0x300000, 0x30ffff) AM_READ(SMH_RAM) |
| 1641 | 1641 | AM_RANGE(0x400000, 0x401fff) AM_READ(TC0430GRW_word_r) |
| 1642 | 1642 | AM_RANGE(0x700000, 0x701fff) AM_READ(SMH_RAM) |
| r4470 | r4471 | |
| 1669 | 1669 | AM_RANGE(0x4000, 0x7fff) AM_READ(SMH_BANK2) |
| 1670 | 1670 | AM_RANGE(0xc000, 0xdfff) AM_READ(SMH_RAM) |
| 1671 | 1671 | AM_RANGE(0xe000, 0xe003) AM_DEVREAD("ym", ym2610_r) |
| 1672 | AM_RANGE(0xe200, 0xe200) AM_READ | |
| 1672 | AM_RANGE(0xe200, 0xe200) AM_READ | |
| 1673 | 1673 | AM_RANGE(0xe201, 0xe201) AM_READ(taitosound_slave_comm_r) |
| 1674 | AM_RANGE(0xea00, 0xea00) AM_READ | |
| 1674 | AM_RANGE(0xea00, 0xea00) AM_READ | |
| 1675 | 1675 | ADDRESS_MAP_END |
| 1676 | 1676 | |
| 1677 | 1677 | static ADDRESS_MAP_START( sound_writemem, ADDRESS_SPACE_PROGRAM, 8 ) |
| r4470 | r4471 | |
| 1680 | 1680 | AM_RANGE(0xe000, 0xe003) AM_DEVWRITE("ym", ym2610_w) |
| 1681 | 1681 | AM_RANGE(0xe200, 0xe200) AM_WRITE(taitosound_slave_port_w) |
| 1682 | 1682 | AM_RANGE(0xe201, 0xe201) AM_WRITE(taitosound_slave_comm_w) |
| 1683 | AM_RANGE(0xe400, 0xe403) AM_WRITE(SMH_NOP) /* pan */ | |
| 1684 | AM_RANGE(0xee00, 0xee00) AM_WRITE(SMH_NOP) /* ? */ | |
| 1685 | AM_RANGE(0xf000, 0xf000) AM_WRITE(SMH_NOP) /* ? */ | |
| 1683 | AM_RANGE(0xe400, 0xe403) AM_WRITENOP /* pan */ | |
| 1684 | AM_RANGE(0xee00, 0xee00) AM_WRITENOP /* ? */ | |
| 1685 | AM_RANGE(0xf000, 0xf000) AM_WRITENOP /* ? */ | |
| 1686 | 1686 | AM_RANGE(0xf200, 0xf200) AM_WRITE(sound_bankswitch_w) /* ?? */ |
| 1687 | 1687 | ADDRESS_MAP_END |
| 1688 | 1688 |
| r4470 | r4471 | |
|---|---|---|
| 69 | 69 | #include "cpu/z80/z80.h" |
| 70 | 70 | #include "deprecat.h" |
| 71 | 71 | #include "sound/sn76496.h" |
| 72 | #include "konamipt.h" | |
| 72 | 73 | |
| 73 | ||
| 74 | 74 | extern UINT8 *gberet_scrollram; |
| 75 | 75 | |
| 76 | 76 | extern WRITE8_HANDLER( gberet_videoram_w ); |
| r4470 | r4471 | |
| 213 | 213 | |
| 214 | 214 | static INPUT_PORTS_START( gberet ) |
| 215 | 215 | PORT_START("P1") |
| 216 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY | |
| 217 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY | |
| 218 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY | |
| 219 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY | |
| 220 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) // knife | |
| 221 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) // shoot | |
| 222 | PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) | |
| 216 | KONAMI8_MONO_B12_UNK // button 1 = knife, button 2 = shoot | |
| 223 | 217 | |
| 224 | 218 | PORT_START("P2") |
| 225 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL | |
| 226 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL | |
| 227 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL | |
| 228 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL | |
| 229 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL | |
| 230 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL | |
| 231 | PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) | |
| 219 | KONAMI8_COCKTAIL_B12_UNK | |
| 232 | 220 | |
| 233 | 221 | PORT_START("SYSTEM") |
| 234 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) | |
| 235 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) | |
| 236 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 ) | |
| 237 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) | |
| 238 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 ) | |
| 239 | PORT_BIT( 0xe0, IP_ACTIVE_LOW, IPT_UNUSED ) | |
| 222 | KONAMI8_SYSTEM_UNK | |
| 240 | 223 | |
| 241 | 224 | PORT_START("DSW1") |
| 242 | PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) ) | |
| 243 | PORT_DIPSETTING( 0x02, DEF_STR( 4C_1C ) ) | |
| 244 | PORT_DIPSETTING( 0x05, DEF_STR( 3C_1C ) ) | |
| 245 | PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) ) | |
| 246 | PORT_DIPSETTING( 0x04, DEF_STR( 3C_2C ) ) | |
| 247 | PORT_DIPSETTING( 0x01, DEF_STR( 4C_3C ) ) | |
| 248 | PORT_DIPSETTING( 0x0f, DEF_STR( 1C_1C ) ) | |
| 249 | PORT_DIPSETTING( 0x03, DEF_STR( 3C_4C ) ) | |
| 250 | PORT_DIPSETTING( 0x07, DEF_STR( 2C_3C ) ) | |
| 251 | PORT_DIPSETTING( 0x0e, DEF_STR( 1C_2C ) ) | |
| 252 | PORT_DIPSETTING( 0x06, DEF_STR( 2C_5C ) ) | |
| 253 | PORT_DIPSETTING( 0x0d, DEF_STR( 1C_3C ) ) | |
| 254 | PORT_DIPSETTING( 0x0c, DEF_STR( 1C_4C ) ) | |
| 255 | PORT_DIPSETTING( 0x0b, DEF_STR( 1C_5C ) ) | |
| 256 | PORT_DIPSETTING( 0x0a, DEF_STR( 1C_6C ) ) | |
| 257 | PORT_DIPSETTING( 0x09, DEF_STR( 1C_7C ) ) | |
| 258 | PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) | |
| 259 | PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) ) | |
| 260 | PORT_DIPSETTING( 0x20, DEF_STR( 4C_1C ) ) | |
| 261 | PORT_DIPSETTING( 0x50, DEF_STR( 3C_1C ) ) | |
| 262 | PORT_DIPSETTING( 0x80, DEF_STR( 2C_1C ) ) | |
| 263 | PORT_DIPSETTING( 0x40, DEF_STR( 3C_2C ) ) | |
| 264 | PORT_DIPSETTING( 0x10, DEF_STR( 4C_3C ) ) | |
| 265 | PORT_DIPSETTING( 0xf0, DEF_STR( 1C_1C ) ) | |
| 266 | PORT_DIPSETTING( 0x30, DEF_STR( 3C_4C ) ) | |
| 267 | PORT_DIPSETTING( 0x70, DEF_STR( 2C_3C ) ) | |
| 268 | PORT_DIPSETTING( 0xe0, DEF_STR( 1C_2C ) ) | |
| 269 | PORT_DIPSETTING( 0x60, DEF_STR( 2C_5C ) ) | |
| 270 | PORT_DIPSETTING( 0xd0, DEF_STR( 1C_3C ) ) | |
| 271 | PORT_DIPSETTING( 0xc0, DEF_STR( 1C_4C ) ) | |
| 272 | PORT_DIPSETTING( 0xb0, DEF_STR( 1C_5C ) ) | |
| 273 | PORT_DIPSETTING( 0xa0, DEF_STR( 1C_6C ) ) | |
| 274 | PORT_DIPSETTING( 0x90, DEF_STR( 1C_7C ) ) | |
| 275 | // PORT_DIPSETTING( 0x00, "Invalid" ) | |
| 225 | KONAMI_COINAGE(DEF_STR( Free_Play ), "No Coin B") | |
| 226 | /* "No Coin B" = coins produce sound, but no effect on coin counter */ | |
| 276 | 227 | |
| 277 | 228 | PORT_START("DSW2") |
| 278 | 229 | PORT_DIPNAME( 0x03, 0x02, DEF_STR( Lives ) ) |
| r4470 | r4471 | |
| 309 | 260 | |
| 310 | 261 | static INPUT_PORTS_START( gberetb ) |
| 311 | 262 | PORT_START("P1") |
| 312 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY | |
| 313 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY | |
| 314 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY | |
| 315 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY | |
| 316 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) // knife | |
| 317 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) // shoot | |
| 318 | PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) | |
| 263 | KONAMI8_MONO_B12_UNK // button 1 = knife, button 2 = shoot | |
| 319 | 264 | |
| 320 | 265 | PORT_START("P2") |
| 321 | 266 | PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) |
| r4470 | r4471 | |
| 324 | 269 | PORT_BIT( 0x0f, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 325 | 270 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 ) |
| 326 | 271 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START1 ) |
| 327 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 ) | |
| 328 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 ) | |
| 272 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 ) | |
| 273 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN2 ) | |
| 329 | 274 | |
| 330 | 275 | PORT_START("DSW1") |
| 331 | PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) ) | |
| 332 | PORT_DIPSETTING( 0x02, DEF_STR( 4C_1C ) ) | |
| 333 | PORT_DIPSETTING( 0x05, DEF_STR( 3C_1C ) ) | |
| 334 | PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) ) | |
| 335 | PORT_DIPSETTING( 0x04, DEF_STR( 3C_2C ) ) | |
| 336 | PORT_DIPSETTING( 0x01, DEF_STR( 4C_3C ) ) | |
| 337 | PORT_DIPSETTING( 0x0f, DEF_STR( 1C_1C ) ) | |
| 338 | PORT_DIPSETTING( 0x03, DEF_STR( 3C_4C ) ) | |
| 339 | PORT_DIPSETTING( 0x07, DEF_STR( 2C_3C ) ) | |
| 340 | PORT_DIPSETTING( 0x0e, DEF_STR( 1C_2C ) ) | |
| 341 | PORT_DIPSETTING( 0x06, DEF_STR( 2C_5C ) ) | |
| 342 | PORT_DIPSETTING( 0x0d, DEF_STR( 1C_3C ) ) | |
| 343 | PORT_DIPSETTING( 0x0c, DEF_STR( 1C_4C ) ) | |
| 344 | PORT_DIPSETTING( 0x0b, DEF_STR( 1C_5C ) ) | |
| 345 | PORT_DIPSETTING( 0x0a, DEF_STR( 1C_6C ) ) | |
| 346 | PORT_DIPSETTING( 0x09, DEF_STR( 1C_7C ) ) | |
| 347 | PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) | |
| 348 | PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) ) | |
| 349 | PORT_DIPSETTING( 0x20, DEF_STR( 4C_1C ) ) | |
| 350 | PORT_DIPSETTING( 0x50, DEF_STR( 3C_1C ) ) | |
| 351 | PORT_DIPSETTING( 0x80, DEF_STR( 2C_1C ) ) | |
| 352 | PORT_DIPSETTING( 0x40, DEF_STR( 3C_2C ) ) | |
| 353 | PORT_DIPSETTING( 0x10, DEF_STR( 4C_3C ) ) | |
| 354 | PORT_DIPSETTING( 0xf0, DEF_STR( 1C_1C ) ) | |
| 355 | PORT_DIPSETTING( 0x30, DEF_STR( 3C_4C ) ) | |
| 356 | PORT_DIPSETTING( 0x70, DEF_STR( 2C_3C ) ) | |
| 357 | PORT_DIPSETTING( 0xe0, DEF_STR( 1C_2C ) ) | |
| 358 | PORT_DIPSETTING( 0x60, DEF_STR( 2C_5C ) ) | |
| 359 | PORT_DIPSETTING( 0xd0, DEF_STR( 1C_3C ) ) | |
| 360 | PORT_DIPSETTING( 0xc0, DEF_STR( 1C_4C ) ) | |
| 361 | PORT_DIPSETTING( 0xb0, DEF_STR( 1C_5C ) ) | |
| 362 | PORT_DIPSETTING( 0xa0, DEF_STR( 1C_6C ) ) | |
| 363 | PORT_DIPSETTING( 0x90, DEF_STR( 1C_7C ) ) | |
| 364 | // PORT_DIPSETTING( 0x00, "Invalid" ) | |
| 276 | KONAMI_COINAGE(DEF_STR( Free_Play ), "No Coin B") | |
| 277 | /* "No Coin B" = coins produce sound, but no effect on coin counter */ | |
| 365 | 278 | |
| 366 | 279 | PORT_START("DSW2") |
| 367 | 280 | PORT_DIPNAME( 0x03, 0x02, DEF_STR( Lives ) ) |
| r4470 | r4471 | |
| 389 | 302 | |
| 390 | 303 | static INPUT_PORTS_START( mrgoemon ) |
| 391 | 304 | PORT_START("P1") |
| 392 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY | |
| 393 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY | |
| 394 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY | |
| 395 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY | |
| 396 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) | |
| 397 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) | |
| 398 | PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) | |
| 305 | KONAMI8_MONO_B12_UNK | |
| 399 | 306 | |
| 400 | 307 | PORT_START("P2") |
| 401 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_COCKTAIL | |
| 402 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_COCKTAIL | |
| 403 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY PORT_COCKTAIL | |
| 404 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_COCKTAIL | |
| 405 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL | |
| 406 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL | |
| 407 | PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) | |
| 308 | KONAMI8_COCKTAIL_B12_UNK | |
| 408 | 309 | |
| 409 | 310 | PORT_START("SYSTEM") |
| 410 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) | |
| 411 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) | |
| 412 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 ) | |
| 413 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) | |
| 414 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 ) | |
| 415 | PORT_BIT( 0xe0, IP_ACTIVE_LOW, IPT_UNUSED ) | |
| 311 | KONAMI8_SYSTEM_UNK | |
| 416 | 312 | |
| 417 | 313 | PORT_START("DSW1") |
| 418 | PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) ) | |
| 419 | PORT_DIPSETTING( 0x02, DEF_STR( 4C_1C ) ) | |
| 420 | PORT_DIPSETTING( 0x05, DEF_STR( 3C_1C ) ) | |
| 421 | PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) ) | |
| 422 | PORT_DIPSETTING( 0x04, DEF_STR( 3C_2C ) ) | |
| 423 | PORT_DIPSETTING( 0x01, DEF_STR( 4C_3C ) ) | |
| 424 | PORT_DIPSETTING( 0x0f, DEF_STR( 1C_1C ) ) | |
| 425 | PORT_DIPSETTING( 0x03, DEF_STR( 3C_4C ) ) | |
| 426 | PORT_DIPSETTING( 0x07, DEF_STR( 2C_3C ) ) | |
| 427 | PORT_DIPSETTING( 0x0e, DEF_STR( 1C_2C ) ) | |
| 428 | PORT_DIPSETTING( 0x06, DEF_STR( 2C_5C ) ) | |
| 429 | PORT_DIPSETTING( 0x0d, DEF_STR( 1C_3C ) ) | |
| 430 | PORT_DIPSETTING( 0x0c, DEF_STR( 1C_4C ) ) | |
| 431 | PORT_DIPSETTING( 0x0b, DEF_STR( 1C_5C ) ) | |
| 432 | PORT_DIPSETTING( 0x0a, DEF_STR( 1C_6C ) ) | |
| 433 | PORT_DIPSETTING( 0x09, DEF_STR( 1C_7C ) ) | |
| 434 | PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) | |
| 435 | PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) ) | |
| 436 | PORT_DIPSETTING( 0x20, DEF_STR( 4C_1C ) ) | |
| 437 | PORT_DIPSETTING( 0x50, DEF_STR( 3C_1C ) ) | |
| 438 | PORT_DIPSETTING( 0x80, DEF_STR( 2C_1C ) ) | |
| 439 | PORT_DIPSETTING( 0x40, DEF_STR( 3C_2C ) ) | |
| 440 | PORT_DIPSETTING( 0x10, DEF_STR( 4C_3C ) ) | |
| 441 | PORT_DIPSETTING( 0xf0, DEF_STR( 1C_1C ) ) | |
| 442 | PORT_DIPSETTING( 0x30, DEF_STR( 3C_4C ) ) | |
| 443 | PORT_DIPSETTING( 0x70, DEF_STR( 2C_3C ) ) | |
| 444 | PORT_DIPSETTING( 0xe0, DEF_STR( 1C_2C ) ) | |
| 445 | PORT_DIPSETTING( 0x60, DEF_STR( 2C_5C ) ) | |
| 446 | PORT_DIPSETTING( 0xd0, DEF_STR( 1C_3C ) ) | |
| 447 | PORT_DIPSETTING( 0xc0, DEF_STR( 1C_4C ) ) | |
| 448 | PORT_DIPSETTING( 0xb0, DEF_STR( 1C_5C ) ) | |
| 449 | PORT_DIPSETTING( 0xa0, DEF_STR( 1C_6C ) ) | |
| 450 | PORT_DIPSETTING( 0x90, DEF_STR( 1C_7C ) ) | |
| 451 | // PORT_DIPSETTING( 0x00, "Invalid" ) | |
| 314 | KONAMI_COINAGE(DEF_STR( Free_Play ), "No Coin B") | |
| 315 | /* "No Coin B" = coins produce sound, but no effect on coin counter */ | |
| 452 | 316 | |
| 453 | 317 | PORT_START("DSW2") |
| 454 | 318 | PORT_DIPNAME( 0x03, 0x02, DEF_STR( Lives ) ) |
| r4470 | r4471 | |
|---|---|---|
| 256 | 256 | AM_RANGE(0xc500, 0xc500) AM_WRITE(stfight_fm_w) /* play fm sound */ |
| 257 | 257 | AM_RANGE(0xc600, 0xc600) AM_DEVWRITE("msm", stfight_adpcm_control_w) /* voice control */ |
| 258 | 258 | AM_RANGE(0xc700, 0xc700) AM_WRITE(stfight_coin_w) /* coin mech */ |
| 259 | AM_RANGE(0xc804, 0xc806) AM_WRITE | |
| 259 | AM_RANGE(0xc804, 0xc806) AM_WRITE | |
| 260 | 260 | AM_RANGE(0xc807, 0xc807) AM_WRITE(stfight_sprite_bank_w) |
| 261 | 261 | AM_RANGE(0xd000, 0xd3ff) AM_WRITE(stfight_text_char_w) AM_BASE(&stfight_text_char_ram) |
| 262 | 262 | AM_RANGE(0xd400, 0xd7ff) AM_WRITE(stfight_text_attr_w) AM_BASE(&stfight_text_attr_ram) |
| r4470 | r4471 | |
|---|---|---|
| 2025 | 2025 | * |
| 2026 | 2026 | *************************************/ |
| 2027 | 2027 | |
| 2028 | GAME( 1987, ddragon, 0, ddragon, ddragon, ddragon, ROT0, "Technos", "Double Dragon (Japan)", GAME_SUPPORTS_SAVE ) | |
| 2029 | GAME( 1987, ddragonw, ddragon, ddragon, ddragon, ddragon, ROT0, "[Technos] (Taito license)", "Double Dragon (World Set 1)", GAME_SUPPORTS_SAVE ) | |
| 2030 | GAME( 1987, ddragnw1, ddragon, ddragon, ddragon, ddragon, ROT0, "[Technos] (Taito license)", "Double Dragon (World Set 2)", GAME_SUPPORTS_SAVE ) | |
| 2031 | GAME( 1987, ddragonu, ddragon, ddragon, ddragon, ddragon, ROT0, "[Technos] (Taito America license)", "Double Dragon (US Set 1)", GAME_SUPPORTS_SAVE ) | |
| 2032 | GAME( 1987, ddragoua, ddragon, ddragon, ddragon, ddragon, ROT0, "[Technos] (Taito America license)", "Double Dragon (US Set 2)", GAME_SUPPORTS_SAVE ) | |
| 2028 | GAME( 1987, ddragon, 0, ddragon, ddragon, ddragon, ROT0, "Technos Japan", "Double Dragon (Japan)", GAME_SUPPORTS_SAVE ) | |
| 2029 | GAME( 1987, ddragonw, ddragon, ddragon, ddragon, ddragon, ROT0, "[Technos Japan] (Taito license)", "Double Dragon (World Set 1)", GAME_SUPPORTS_SAVE ) | |
| 2030 | GAME( 1987, ddragnw1, ddragon, ddragon, ddragon, ddragon, ROT0, "[Technos Japan] (Taito license)", "Double Dragon (World Set 2)", GAME_SUPPORTS_SAVE ) | |
| 2031 | GAME( 1987, ddragonu, ddragon, ddragon, ddragon, ddragon, ROT0, "[Technos Japan] (Taito America license)", "Double Dragon (US Set 1)", GAME_SUPPORTS_SAVE ) | |
| 2032 | GAME( 1987, ddragoua, ddragon, ddragon, ddragon, ddragon, ROT0, "[Technos Japan] (Taito America license)", "Double Dragon (US Set 2)", GAME_SUPPORTS_SAVE ) | |
| 2033 | 2033 | GAME( 1987, ddragob2, ddragon, ddragon, ddragon, ddragon, ROT0, "bootleg", "Double Dragon (bootleg)", GAME_SUPPORTS_SAVE ) |
| 2034 | 2034 | GAME( 1987, ddragonb, ddragon, ddragonb, ddragon, ddragon, ROT0, "bootleg", "Double Dragon (bootleg with HD6309)", GAME_SUPPORTS_SAVE ) // according to dump notes |
| 2035 | 2035 | GAME( 1987, ddragnba, ddragon, ddragnba, ddragon, ddragon, ROT0, "bootleg", "Double Dragon (bootleg with M6803)", GAME_SUPPORTS_SAVE ) |
| 2036 | 2036 | GAME( 1987, ddgn6809, ddragon, ddgn6809, ddragon, ddgn6809, ROT0, "bootleg", "Double Dragon (bootleg with 3xM6809, set 1)", GAME_NOT_WORKING ) |
| 2037 | 2037 | GAME( 1987, dd6809a, ddragon, ddgn6809, ddragon, ddgn6809, ROT0, "bootleg", "Double Dragon (bootleg with 3xM6809, set 2)", GAME_NOT_WORKING ) |
| 2038 | GAME( 1988, ddragon2, 0, ddragon2, ddragon2, ddragon2, ROT0, "Technos", "Double Dragon II - The Revenge (World)", GAME_SUPPORTS_SAVE ) | |
| 2039 | GAME( 1988, ddragn2u, ddragon2, ddragon2, ddragon2, ddragon2, ROT0, "Technos", "Double Dragon II - The Revenge (US)", GAME_SUPPORTS_SAVE ) | |
| 2038 | GAME( 1988, ddragon2, 0, ddragon2, ddragon2, ddragon2, ROT0, "Technos Japan", "Double Dragon II - The Revenge (World)", GAME_SUPPORTS_SAVE ) | |
| 2039 | GAME( 1988, ddragn2u, ddragon2, ddragon2, ddragon2, ddragon2, ROT0, "Technos Japan", "Double Dragon II - The Revenge (US)", GAME_SUPPORTS_SAVE ) | |
| 2040 | 2040 | |
| 2041 | 2041 | /* these were conversions of double dragon */ |
| 2042 | 2042 | GAME( 1991, tstrike, 0, darktowr, tstrike, darktowr, ROT0, "East Coast Coin Company (Melbourne)", "Thunder Strike (Newer)", GAME_SUPPORTS_SAVE ) |
| r4470 | r4471 | |
|---|---|---|
| 16 | 16 | #include "machine/eeprom.h" |
| 17 | 17 | #include "sound/2151intf.h" |
| 18 | 18 | #include "sound/k053260.h" |
| 19 | #include "konamipt.h" | |
| 19 | 20 | |
| 20 | 21 | VIDEO_START( asterix ); |
| 21 | 22 | VIDEO_UPDATE( asterix ); |
| r4470 | r4471 | |
| 211 | 212 | |
| 212 | 213 | static INPUT_PORTS_START( asterix ) |
| 213 | 214 | PORT_START("IN0") |
| 214 | PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) | |
| 215 | PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) | |
| 216 | PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) | |
| 217 | PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) | |
| 218 | PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) | |
| 219 | PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) | |
| 220 | PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_COIN3 ) | |
| 221 | PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START1 ) | |
| 215 | KONAMI16_LSB(1, IPT_UNKNOWN, IPT_START1) | |
| 222 | 216 | PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_COIN1 ) |
| 223 | 217 | PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_COIN2 ) |
| 224 | PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_ | |
| 218 | PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_SERVICE1 ) | |
| 225 | 219 | PORT_BIT( 0xf800, IP_ACTIVE_LOW, IPT_UNKNOWN ) |
| 226 | 220 | |
| 227 | 221 | PORT_START("IN1") |
| 228 | PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) | |
| 229 | PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) | |
| 230 | PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) | |
| 231 | PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) | |
| 232 | PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) | |
| 233 | PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) | |
| 234 | PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 235 | PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START2 ) | |
| 222 | KONAMI16_LSB(2, IPT_UNKNOWN, IPT_START2) | |
| 236 | 223 | PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(eeprom_bit_r, NULL) // EEPROM data |
| 237 | 224 | PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_UNUSED ) // EEPROM ready (always 1) |
| 238 | 225 | PORT_SERVICE_NO_TOGGLE(0x0400, IP_ACTIVE_LOW ) |
| r4470 | r4471 | |
|---|---|---|
| 374 | 374 | AM_RANGE(0x0000, 0x03ff) AM_RAM AM_SHARE(3) AM_BASE(&tubep_sprite_colorsharedram) |
| 375 | 375 | AM_RANGE(0x0800, 0x0fff) AM_RAM AM_SHARE(2) |
| 376 | 376 | AM_RANGE(0x2000, 0x2009) AM_WRITE(tubep_sprite_control_w) |
| 377 | AM_RANGE(0x200a, 0x200b) AM_WRITE | |
| 377 | AM_RANGE(0x200a, 0x200b) AM_WRITE | |
| 378 | 378 | AM_RANGE(0xc000, 0xffff) AM_ROM |
| 379 | 379 | ADDRESS_MAP_END |
| 380 | 380 |
| r4470 | r4471 | |
|---|---|---|
| 575 | 575 | AM_RANGE(0x7803, 0x7803) AM_READ_PORT("IN0") // coin, service |
| 576 | 576 | AM_RANGE(0x7804, 0x7804) AM_READ_PORT("DSW1") // DSW1 |
| 577 | 577 | AM_RANGE(0x7805, 0x7805) AM_READ_PORT("DSW2") // DSW2 |
| 578 | AM_RANGE(0x7ffe, 0x7ffe) AM_READ | |
| 578 | AM_RANGE(0x7ffe, 0x7ffe) AM_READ | |
| 579 | 579 | AM_RANGE(0x8000, 0xffff) AM_READ(SMH_ROM) |
| 580 | 580 | ADDRESS_MAP_END |
| 581 | 581 | |
| r4470 | r4471 | |
| 601 | 601 | |
| 602 | 602 | static ADDRESS_MAP_START( mrokumei_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 ) |
| 603 | 603 | AM_RANGE(0x0000, 0x7fff) AM_WRITE(SMH_ROM) |
| 604 | AM_RANGE(0xfffc, 0xfffd) AM_WRITE | |
| 604 | AM_RANGE(0xfffc, 0xfffd) AM_WRITE | |
| 605 | 605 | AM_RANGE(0x8080, 0x8080) AM_WRITE(mrokumei_sound_bank_w) |
| 606 | 606 | ADDRESS_MAP_END |
| 607 | 607 |
| r4470 | r4471 | |
|---|---|---|
| 276 | 276 | AM_RANGE(0x2000, 0x2000) AM_WRITE(fax_bank_select_w) |
| 277 | 277 | AM_RANGE(0x2000, 0x3fff) AM_ROMBANK(1) |
| 278 | 278 | AM_RANGE(0x5200, 0x520f) AM_DEVREADWRITE("pia0", pia6821_r, pia6821_w) |
| 279 | AM_RANGE(0x5213, 0x5217) AM_WRITE | |
| 279 | AM_RANGE(0x5213, 0x5217) AM_WRITE | |
| 280 | 280 | AM_RANGE(0x6000, 0x6fff) AM_RAM AM_BASE(&exidy_characterram) |
| 281 | 281 | AM_RANGE(0x8000, 0xffff) AM_ROM |
| 282 | 282 | ADDRESS_MAP_END |
| r4470 | r4471 | |
|---|---|---|
| 80 | 80 | AM_RANGE(0xe0, 0xe0) AM_WRITE(hyhoo_romsel_w) |
| 81 | 81 | AM_RANGE(0xe0, 0xe1) AM_READ(nb1413m3_gfxrom_r) |
| 82 | 82 | AM_RANGE(0xf0, 0xf0) AM_READ(nb1413m3_dipsw1_r) |
| 83 | // AM_RANGE(0xf0, 0xf0) AM_WRITE | |
| 83 | // AM_RANGE(0xf0, 0xf0) AM_WRITE | |
| 84 | 84 | AM_RANGE(0xf1, 0xf1) AM_READ(nb1413m3_dipsw2_r) |
| 85 | 85 | ADDRESS_MAP_END |
| 86 | 86 |
| r4470 | r4471 | |
|---|---|---|
| 905 | 905 | // Ports |
| 906 | 906 | AM_RANGE(0x1F700000, 0x1F702fff) AM_READ(hng64_port_read) |
| 907 | 907 | |
| 908 | // AM_RANGE(0x1F70100C, 0x1F70100F) AM_WRITE(SMH_NOP) // ?? often | |
| 909 | // AM_RANGE(0x1F70101C, 0x1F70101F) AM_WRITE(SMH_NOP) // ?? often | |
| 910 | // AM_RANGE(0x1F70106C, 0x1F70106F) AM_WRITE(SMH_NOP) // fatfur,strange | |
| 908 | // AM_RANGE(0x1F70100C, 0x1F70100F) AM_WRITENOP // ?? often | |
| 909 | // AM_RANGE(0x1F70101C, 0x1F70101F) AM_WRITENOP // ?? often | |
| 910 | // AM_RANGE(0x1F70106C, 0x1F70106F) AM_WRITENOP // fatfur,strange | |
| 911 | 911 | // AM_RANGE(0x1F701084, 0x1F701087) AM_RAM |
| 912 | // AM_RANGE(0x1F70111C, 0x1F70111F) AM_WRITE | |
| 912 | // AM_RANGE(0x1F70111C, 0x1F70111F) AM_WRITE | |
| 913 | 913 | AM_RANGE(0x1F701204, 0x1F701207) AM_WRITE(hng_dma_start_w) |
| 914 | 914 | AM_RANGE(0x1F701214, 0x1F701217) AM_WRITE(hng_dma_dst_w) |
| 915 | 915 | AM_RANGE(0x1F701224, 0x1F701227) AM_WRITE(hng_dma_len_w) |
| 916 | // AM_RANGE(0x1F70124C, 0x1F70124F) AM_WRITE(SMH_NOP) // dma related? | |
| 917 | // AM_RANGE(0x1F70125C, 0x1F70125F) AM_WRITE(SMH_NOP) // dma related? | |
| 918 | // AM_RANGE(0x1F7021C4, 0x1F7021C7) AM_WRITE(SMH_NOP) // ?? often | |
| 916 | // AM_RANGE(0x1F70124C, 0x1F70124F) AM_WRITENOP // dma related? | |
| 917 | // AM_RANGE(0x1F70125C, 0x1F70125F) AM_WRITENOP // dma related? | |
| 918 | // AM_RANGE(0x1F7021C4, 0x1F7021C7) AM_WRITENOP // ?? often | |
| 919 | 919 | |
| 920 | 920 | // SRAM. Coin data, Player Statistics, etc. |
| 921 | 921 | AM_RANGE(0x1F800000, 0x1F803fff) AM_READWRITE(hng64_sram_r, hng64_sram_w) AM_BASE(&hng64_sram) |
| r4470 | r4471 | |
| 945 | 945 | AM_RANGE(0x60200000, 0x603fffff) AM_READWRITE(hng64_soundram_r, hng64_soundram_w) // uploads the v53 sound program here, elsewhere on ss64-2 */ |
| 946 | 946 | |
| 947 | 947 | // ? |
| 948 | // AM_RANGE(0x68000000, 0x68000003) AM_WRITE(SMH_NOP) // ?? | |
| 949 | // AM_RANGE(0x68000004, 0x68000007) AM_READ(SMH_NOP) // ?? | |
| 950 | // AM_RANGE(0x68000008, 0x6800000b) AM_WRITE(SMH_NOP) // ?? | |
| 948 | // AM_RANGE(0x68000000, 0x68000003) AM_WRITENOP // ?? | |
| 949 | // AM_RANGE(0x68000004, 0x68000007) AM_READNOP // ?? | |
| 950 | // AM_RANGE(0x68000008, 0x6800000b) AM_WRITENOP // ?? | |
| 951 | 951 | |
| 952 | 952 | // Communications |
| 953 | 953 | AM_RANGE(0xc0000000, 0xc0000fff) AM_READWRITE(hng64_com_r, hng64_com_w) AM_BASE(&hng64_com_ram) |
| r4470 | r4471 | |
|---|---|---|
| 75 | 75 | AM_RANGE(0x0000, 0x3fff) AM_ROM |
| 76 | 76 | AM_RANGE(0x4000, 0x47ff) AM_RAM |
| 77 | 77 | AM_RANGE(0x8000, 0x8000) AM_READ(soundlatch_r) |
| 78 | AM_RANGE(0xffff, 0xffff) AM_WRITE | |
| 78 | AM_RANGE(0xffff, 0xffff) AM_WRITE | |
| 79 | 79 | ADDRESS_MAP_END |
| 80 | 80 | |
| 81 | 81 | static ADDRESS_MAP_START( sound_portmap, ADDRESS_SPACE_IO, 8 ) |
| r4470 | r4471 | |
|---|---|---|
| 422 | 422 | |
| 423 | 423 | AM_RANGE(0xf00000, 0xf1ffff) AM_READ(SMH_RAM) |
| 424 | 424 | |
| 425 | // AM_RANGE(0xfe0000, 0xfe0003) AM_READ | |
| 425 | // AM_RANGE(0xfe0000, 0xfe0003) AM_READ | |
| 426 | 426 | ADDRESS_MAP_END |
| 427 | 427 | |
| 428 | 428 | static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 32 ) |
| r4470 | r4471 | |
| 448 | 448 | |
| 449 | 449 | AM_RANGE(0xa00000, 0xa03fff) AM_WRITE(paletteram32_macrossp_w) AM_BASE(&paletteram32) |
| 450 | 450 | |
| 451 | AM_RANGE(0xb00004, 0xb00007) AM_WRITE(SMH_NOP) // irq related? | |
| 452 | AM_RANGE(0xb00008, 0xb0000b) AM_WRITE(SMH_NOP) // irq related? | |
| 453 | AM_RANGE(0xb0000c, 0xb0000f) AM_WRITE(SMH_NOP) | |
| 451 | AM_RANGE(0xb00004, 0xb00007) AM_WRITENOP // irq related? | |
| 452 | AM_RANGE(0xb00008, 0xb0000b) AM_WRITENOP // irq related? | |
| 453 | AM_RANGE(0xb0000c, 0xb0000f) AM_WRITENOP | |
| 454 | 454 | AM_RANGE(0xb00010, 0xb00013) AM_WRITE(macrossp_palette_fade_w) // macrossp palette fade |
| 455 | AM_RANGE(0xb00020, 0xb00023) AM_WRITE | |
| 455 | AM_RANGE(0xb00020, 0xb00023) AM_WRITE | |
| 456 | 456 | |
| 457 | 457 | AM_RANGE(0xc00000, 0xc00003) AM_WRITE(macrossp_soundcmd_w) |
| 458 | 458 | |
| 459 | 459 | AM_RANGE(0xf00000, 0xf1ffff) AM_WRITE(SMH_RAM) AM_BASE(¯ossp_mainram) /* Main Ram */ |
| 460 | 460 | |
| 461 | // AM_RANGE(0xfe0000, 0xfe0003) AM_WRITE | |
| 461 | // AM_RANGE(0xfe0000, 0xfe0003) AM_WRITE | |
| 462 | 462 | ADDRESS_MAP_END |
| 463 | 463 | |
| 464 | 464 |
| r4470 | r4471 | |
|---|---|---|
| 413 | 413 | ADDRESS_MAP_GLOBAL_MASK(0xff) |
| 414 | 414 | AM_RANGE(0x00, 0x01) AM_DEVREADWRITE("ym", ym2203_r, ym2203_w) |
| 415 | 415 | AM_RANGE(0x20, 0x21) AM_READ(qx1_r) AM_WRITE(qx1_w) |
| 416 | AM_RANGE(0x40, 0x40) AM_READ | |
| 416 | AM_RANGE(0x40, 0x40) AM_READ | |
| 417 | 417 | AM_RANGE(0x60, 0x61) AM_READ(qx2_r) AM_WRITE(qx2_w) |
| 418 | 418 | AM_RANGE(0x80, 0x81) AM_READ(qx3_r) AM_WRITE(qx3_w) |
| 419 | 419 | ADDRESS_MAP_END |
| r4470 | r4471 | |
|---|---|---|
| 324 | 324 | AM_RANGE(0x0000, 0x1fff) AM_READ(SMH_ROM) |
| 325 | 325 | AM_RANGE(0x2000, 0x23ff) AM_READ(SMH_RAM) AM_WRITE(SMH_RAM) |
| 326 | 326 | AM_RANGE(0x2800, 0x2800) AM_READ_PORT("2800") /* gas */ |
| 327 | AM_RANGE(0x2802, 0x2802) AM_READ(steerlatch_r) AM_WRITE | |
| 327 | AM_RANGE(0x2802, 0x2802) AM_READ(steerlatch_r) AM_WRITE | |
| 328 | 328 | /* AM_RANGE(0x2803, 0x2803) ? */ |
| 329 | 329 | AM_RANGE(0x3000, 0x3000) AM_WRITE(vreg_control_w) |
| 330 | 330 | AM_RANGE(0x37f0, 0x37f0) AM_DEVWRITE("ay", ay8910_address_w) |
| r4470 | r4471 | |
|---|---|---|
| 141 | 141 | AM_RANGE(0xff0000, 0xffffff) AM_READ(SMH_RAM) /* Main Ram */ |
| 142 | 142 | |
| 143 | 143 | /* Unknown reads: */ |
| 144 | // AM_RANGE(0xa10000, 0xa10001) AM_READ(SMH_NOP) /* ? once */ | |
| 145 | AM_RANGE(0xa10002, 0xa10005) AM_READ(SMH_NOP) /* ? alternative way of reading inputs ? */ | |
| 146 | AM_RANGE(0xa11100, 0xa11101) AM_READ(SMH_NOP) /* ? */ | |
| 144 | // AM_RANGE(0xa10000, 0xa10001) AM_READNOP /* ? once */ | |
| 145 | AM_RANGE(0xa10002, 0xa10005) AM_READNOP /* ? alternative way of reading inputs ? */ | |
| 146 | AM_RANGE(0xa11100, 0xa11101) AM_READNOP /* ? */ | |
| 147 | 147 | ADDRESS_MAP_END |
| 148 | 148 | |
| 149 | 149 | static ADDRESS_MAP_START( puckpkmn_writemem, ADDRESS_SPACE_PROGRAM, 16 ) |
| r4470 | r4471 | |
| 155 | 155 | |
| 156 | 156 | /* Unknown writes: */ |
| 157 | 157 | AM_RANGE(0xa00000, 0xa00551) AM_WRITE(SMH_RAM) /* ? */ |
| 158 | AM_RANGE(0xa10002, 0xa10005) AM_WRITE(SMH_NOP) /* ? alternative way of reading inputs ? */ | |
| 159 | // AM_RANGE(0xa10008, 0xa1000d) AM_WRITE(SMH_NOP) /* ? once */ | |
| 160 | // AM_RANGE(0xa14000, 0xa14003) AM_WRITE(SMH_NOP) /* ? once */ | |
| 161 | AM_RANGE(0xa11100, 0xa11101) AM_WRITE(SMH_NOP) /* ? */ | |
| 162 | AM_RANGE(0xa11200, 0xa11201) AM_WRITE(SMH_NOP) /* ? */ | |
| 158 | AM_RANGE(0xa10002, 0xa10005) AM_WRITENOP /* ? alternative way of reading inputs ? */ | |
| 159 | // AM_RANGE(0xa10008, 0xa1000d) AM_WRITENOP /* ? once */ | |
| 160 | // AM_RANGE(0xa14000, 0xa14003) AM_WRITENOP /* ? once */ | |
| 161 | AM_RANGE(0xa11100, 0xa11101) AM_WRITENOP /* ? */ | |
| 162 | AM_RANGE(0xa11200, 0xa11201) AM_WRITENOP /* ? */ | |
| 163 | 163 | ADDRESS_MAP_END |
| 164 | 164 | |
| 165 | 165 |
| r4470 | r4471 | |
|---|---|---|
| 49 | 49 | #include "sound/2151intf.h" |
| 50 | 50 | #include "sound/okim6295.h" |
| 51 | 51 | #include "sound/k054539.h" |
| 52 | #include "konamipt.h" | |
| 52 | 53 | |
| 53 | 54 | VIDEO_START(moo); |
| 54 | 55 | VIDEO_UPDATE(moo); |
| r4470 | r4471 | |
| 258 | 259 | #endif |
| 259 | 260 | |
| 260 | 261 | |
| 261 | static READ16_HANDLER( player1_r ) // players 1 and 3 | |
| 262 | { | |
| 263 | return input_port_read(space->machine, "P1") | (input_port_read(space->machine, "P3")<<8); | |
| 264 | } | |
| 265 | ||
| 266 | static READ16_HANDLER( player2_r ) // players 2 and 4 | |
| 267 | { | |
| 268 | return input_port_read(space->machine, "P2") | (input_port_read(space->machine, "P4")<<8); | |
| 269 | } | |
| 270 | ||
| 271 | 262 | static WRITE16_HANDLER( moo_prot_w ) |
| 272 | 263 | { |
| 273 | 264 | UINT32 src1, src2, dst, length, a, b, res; |
| r4470 | r4471 | |
| 310 | 301 | AM_RANGE(0x0c4000, 0x0c4001) AM_READ(K053246_word_r) |
| 311 | 302 | AM_RANGE(0x0d6014, 0x0d6015) AM_READ(sound_status_r) |
| 312 | 303 | AM_RANGE(0x0d6000, 0x0d601f) AM_READ(SMH_RAM) /* sound regs fall through */ |
| 313 | AM_RANGE(0x0da000, 0x0da001) AM_READ(player1_r) | |
| 314 | AM_RANGE(0x0da002, 0x0da003) AM_READ(player2_r) | |
| 304 | AM_RANGE(0x0da000, 0x0da001) AM_READ_PORT("P1_P3") | |
| 305 | AM_RANGE(0x0da002, 0x0da003) AM_READ_PORT("P2_P4") | |
| 315 | 306 | AM_RANGE(0x0dc000, 0x0dc001) AM_READ_PORT("IN0") |
| 316 | 307 | AM_RANGE(0x0dc002, 0x0dc003) AM_READ(control1_r) |
| 317 | 308 | AM_RANGE(0x0de000, 0x0de001) AM_READ(control2_r) |
| r4470 | r4471 | |
| 356 | 347 | |
| 357 | 348 | static ADDRESS_MAP_START( readmembl, ADDRESS_SPACE_PROGRAM, 16 ) |
| 358 | 349 | AM_RANGE(0x000000, 0x07ffff) AM_READ(SMH_ROM) |
| 359 | AM_RANGE(0x0c2f00, 0x0c2f01) AM_READ | |
| 350 | AM_RANGE(0x0c2f00, 0x0c2f01) AM_READ | |
| 360 | 351 | AM_RANGE(0x0c4000, 0x0c4001) AM_READ(K053246_word_r) |
| 361 | 352 | AM_RANGE(0x0d6ffe, 0x0d6fff) AM_DEVREAD8("oki", okim6295_r, 0x00ff) |
| 362 | AM_RANGE(0x0da000, 0x0da001) AM_READ(player1_r) | |
| 363 | AM_RANGE(0x0da002, 0x0da003) AM_READ(player2_r) | |
| 353 | AM_RANGE(0x0da000, 0x0da001) AM_READ_PORT("P1_P3") | |
| 354 | AM_RANGE(0x0da002, 0x0da003) AM_READ_PORT("P2_P4") | |
| 364 | 355 | AM_RANGE(0x0dc000, 0x0dc001) AM_READ_PORT("IN0") |
| 365 | 356 | AM_RANGE(0x0dc002, 0x0dc003) AM_READ(control1_r) |
| 366 | 357 | AM_RANGE(0x0de000, 0x0de001) AM_READ(control2_r) |
| r4470 | r4471 | |
| 401 | 392 | AM_RANGE(0x0d2000, 0x0d20ff) AM_READ(K054000_lsb_r) |
| 402 | 393 | AM_RANGE(0x0d6014, 0x0d6015) AM_READ(sound_status_r) |
| 403 | 394 | AM_RANGE(0x0d6000, 0x0d601f) AM_READ(SMH_RAM) /* sound regs fall through */ |
| 404 | AM_RANGE(0x0da000, 0x0da001) AM_READ(player1_r) | |
| 405 | AM_RANGE(0x0da002, 0x0da003) AM_READ(player2_r) | |
| 395 | AM_RANGE(0x0da000, 0x0da001) AM_READ_PORT("P1_P3") | |
| 396 | AM_RANGE(0x0da002, 0x0da003) AM_READ_PORT("P2_P4") | |
| 406 | 397 | AM_RANGE(0x0dc000, 0x0dc001) AM_READ_PORT("IN0") |
| 407 | 398 | AM_RANGE(0x0dc002, 0x0dc003) AM_READ(control1_r) |
| 408 | 399 | AM_RANGE(0x0de000, 0x0de001) AM_READ(control2_r) |
| r4470 | r4471 | |
| 494 | 485 | PORT_DIPSETTING( 0x40, "3") |
| 495 | 486 | PORT_DIPSETTING( 0x80, "4") |
| 496 | 487 | |
| 497 | PORT_START("P1") | |
| 498 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) | |
| 499 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) | |
| 500 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) | |
| 501 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) | |
| 502 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) | |
| 503 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) | |
| 504 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 505 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 ) | |
| 488 | PORT_START("P1_P3") | |
| 489 | KONAMI16_LSB( 1, IPT_UNKNOWN, IPT_START1 ) | |
| 490 | KONAMI16_MSB( 3, IPT_UNKNOWN, IPT_START3 ) | |
| 506 | 491 | |
| 507 | PORT_START("P2") | |
| 508 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) | |
| 509 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) | |
| 510 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) | |
| 511 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) | |
| 512 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) | |
| 513 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) | |
| 514 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 515 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 ) | |
| 516 | ||
| 517 | PORT_START("P3") | |
| 518 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(3) | |
| 519 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(3) | |
| 520 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(3) | |
| 521 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(3) | |
| 522 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3) | |
| 523 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3) | |
| 524 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 525 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START3 ) | |
| 526 | ||
| 527 | PORT_START("P4") | |
| 528 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(4) | |
| 529 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(4) | |
| 530 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(4) | |
| 531 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(4) | |
| 532 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(4) | |
| 533 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(4) | |
| 534 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 535 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START4 ) | |
| 492 | PORT_START("P2_P4") | |
| 493 | KONAMI16_LSB( 2, IPT_UNKNOWN, IPT_START2 ) | |
| 494 | KONAMI16_MSB( 4, IPT_UNKNOWN, IPT_START4 ) | |
| 536 | 495 | INPUT_PORTS_END |
| 537 | 496 | |
| 538 | 497 | /* Same as 'moo', but additional "Button 3" for all players */ |
| 539 | 498 | static INPUT_PORTS_START( bucky ) |
| 540 | 499 | PORT_INCLUDE( moo ) |
| 541 | 500 | |
| 542 | PORT_MODIFY("P1") | |
| 543 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) | |
| 501 | PORT_MODIFY("P1_P3") | |
| 502 | KONAMI16_LSB( 1, IPT_BUTTON3, IPT_START1 ) | |
| 503 | KONAMI16_MSB( 3, IPT_BUTTON3, IPT_START3 ) | |
| 544 | 504 | |
| 545 | PORT_MODIFY("P2") | |
| 546 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) | |
| 547 | ||
| 548 | PORT_MODIFY("P3") | |
| 549 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(3) | |
| 550 | ||
| 551 | PORT_MODIFY("P4") | |
| 552 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(4) | |
| 505 | PORT_MODIFY("P2_P4") | |
| 506 | KONAMI16_LSB( 2, IPT_BUTTON3, IPT_START2 ) | |
| 507 | KONAMI16_MSB( 4, IPT_BUTTON3, IPT_START4 ) | |
| 553 | 508 | INPUT_PORTS_END |
| 554 | 509 | |
| 555 | 510 |
| r4470 | r4471 | |
|---|---|---|
| 64 | 64 | |
| 65 | 65 | AM_RANGE(0x500000, 0x53ffff) AM_WRITE(SMH_RAM) |
| 66 | 66 | |
| 67 | AM_RANGE(0x700000, 0x700001) AM_WRITE(SMH_NOP) //?? | |
| 68 | AM_RANGE(0x700002, 0x700003) AM_WRITE(SMH_NOP) //?? | |
| 69 | AM_RANGE(0x700004, 0x700005) AM_WRITE(SMH_NOP) //?? | |
| 70 | AM_RANGE(0x700006, 0x700007) AM_WRITE(SMH_NOP) //?? | |
| 67 | AM_RANGE(0x700000, 0x700001) AM_WRITENOP //?? | |
| 68 | AM_RANGE(0x700002, 0x700003) AM_WRITENOP //?? | |
| 69 | AM_RANGE(0x700004, 0x700005) AM_WRITENOP //?? | |
| 70 | AM_RANGE(0x700006, 0x700007) AM_WRITENOP //?? | |
| 71 | 71 | |
| 72 | 72 | AM_RANGE(0x800000, 0x87ffff) AM_WRITE(SMH_RAM) |
| 73 | AM_RANGE(0x880000, 0x880001) AM_WRITE | |
| 73 | AM_RANGE(0x880000, 0x880001) AM_WRITE | |
| 74 | 74 | AM_RANGE(0x900000, 0x97ffff) AM_WRITE(SMH_RAM) |
| 75 | AM_RANGE(0x980000, 0x980001) AM_WRITE | |
| 75 | AM_RANGE(0x980000, 0x980001) AM_WRITE | |
| 76 | 76 | AM_RANGE(0xa00000, 0xa7ffff) AM_WRITE(SMH_RAM) |
| 77 | AM_RANGE(0xa80000, 0xa80001) AM_WRITE(SMH_NOP) //?? | |
| 78 | AM_RANGE(0xc00000, 0xc00001) AM_WRITE(SMH_NOP) //?? | |
| 79 | AM_RANGE(0xf00000, 0xf00001) AM_WRITE(SMH_NOP) //?? | |
| 77 | AM_RANGE(0xa80000, 0xa80001) AM_WRITENOP //?? | |
| 78 | AM_RANGE(0xc00000, 0xc00001) AM_WRITENOP //?? | |
| 79 | AM_RANGE(0xf00000, 0xf00001) AM_WRITENOP //?? | |
| 80 | 80 | ADDRESS_MAP_END |
| 81 | 81 | |
| 82 | 82 | static READ16_HANDLER( unknown_sub_read_0xbe0004 ) |
| r4470 | r4471 | |
|---|---|---|
| 100 | 100 | AM_RANGE(0x0000, 0x7fff) AM_READ(SMH_ROM) |
| 101 | 101 | AM_RANGE(0x8000, 0xbfff) AM_READ(SMH_BANK1) |
| 102 | 102 | AM_RANGE(0xc000, 0xc7ff) AM_READ(SMH_RAM) |
| 103 | AM_RANGE(0xc800, 0xc800) AM_READ | |
| 103 | AM_RANGE(0xc800, 0xc800) AM_READ | |
| 104 | 104 | AM_RANGE(0xd000, 0xefff) AM_READ(SMH_RAM) |
| 105 | 105 | AM_RANGE(0xf000, 0xf000) AM_READ_PORT("DSW1") |
| 106 | 106 | AM_RANGE(0xf422, 0xf422) AM_READ(prot_f422_r) |
| r4470 | r4471 | |
|---|---|---|
| 689 | 689 | static ADDRESS_MAP_START( fhawk_2_readmem, ADDRESS_SPACE_PROGRAM, 8 ) |
| 690 | 690 | AM_RANGE(0x0000, 0x7fff) AM_READ(SMH_ROM) |
| 691 | 691 | AM_RANGE(0x8000, 0xbfff) AM_READ(SMH_BANK6) |
| 692 | AM_RANGE(0xc800, 0xc800) AM_READ | |
| 692 | AM_RANGE(0xc800, 0xc800) AM_READ | |
| 693 | 693 | AM_RANGE(0xc801, 0xc801) AM_READ(taitosound_comm_r) |
| 694 | 694 | AM_RANGE(0xe000, 0xffff) AM_READ(shared_r) |
| 695 | 695 | AM_RANGE(0xd000, 0xd000) AM_READ_PORT("DSWA") |
| r4470 | r4471 | |
| 704 | 704 | AM_RANGE(0xc000, 0xc000) AM_WRITE(rombank2switch_w) |
| 705 | 705 | AM_RANGE(0xc800, 0xc800) AM_WRITE(taitosound_port_w) |
| 706 | 706 | AM_RANGE(0xc801, 0xc801) AM_WRITE(taitosound_comm_w) |
| 707 | AM_RANGE(0xd000, 0xd000) AM_WRITE | |
| 707 | AM_RANGE(0xd000, 0xd000) AM_WRITE | |
| 708 | 708 | AM_RANGE(0xd004, 0xd004) AM_WRITE(control2_w) |
| 709 | AM_RANGE(0xd005, 0xd006) AM_WRITE | |
| 709 | AM_RANGE(0xd005, 0xd006) AM_WRITE | |
| 710 | 710 | AM_RANGE(0xe000, 0xffff) AM_WRITE(shared_w) |
| 711 | 711 | ADDRESS_MAP_END |
| 712 | 712 | |
| r4470 | r4471 | |
| 714 | 714 | AM_RANGE(0x0000, 0x3fff) AM_READ(SMH_ROM) |
| 715 | 715 | AM_RANGE(0x4000, 0x7fff) AM_READ(SMH_BANK7) |
| 716 | 716 | AM_RANGE(0x8000, 0x9fff) AM_READ(SMH_RAM) |
| 717 | AM_RANGE(0xe000, 0xe000) AM_READ | |
| 717 | AM_RANGE(0xe000, 0xe000) AM_READ | |
| 718 | 718 | AM_RANGE(0xe001, 0xe001) AM_READ(taitosound_slave_comm_r) |
| 719 | 719 | AM_RANGE(0xf000, 0xf001) AM_DEVREAD("ym", ym2203_r) |
| 720 | 720 | ADDRESS_MAP_END |
| r4470 | r4471 | |
| 731 | 731 | COMMON_BANKS_READ |
| 732 | 732 | AM_RANGE(0x8000, 0x87ff) AM_READ(SMH_RAM) |
| 733 | 733 | AM_RANGE(0x8800, 0x8800) AM_READ(mux_r) |
| 734 | AM_RANGE(0x8801, 0x8801) AM_READ(SMH_NOP) // Watchdog or interrupt ack (value ignored) | |
| 735 | AM_RANGE(0x8c00, 0x8c00) AM_READ(SMH_NOP) | |
| 734 | AM_RANGE(0x8801, 0x8801) AM_READNOP // Watchdog or interrupt ack (value ignored) | |
| 735 | AM_RANGE(0x8c00, 0x8c00) AM_READNOP | |
| 736 | 736 | AM_RANGE(0x8c01, 0x8c01) AM_READ(taitosound_comm_r) |
| 737 | 737 | AM_RANGE(0xa000, 0xbfff) AM_READ(SMH_RAM) |
| 738 | 738 | ADDRESS_MAP_END |
| r4470 | r4471 | |
| 764 | 764 | AM_RANGE(0x4000, 0x7fff) AM_READ(SMH_BANK7) |
| 765 | 765 | AM_RANGE(0xc000, 0xdfff) AM_READ(SMH_RAM) |
| 766 | 766 | AM_RANGE(0xe000, 0xe003) AM_DEVREAD("ym", ym2610_r) |
| 767 | AM_RANGE(0xe200, 0xe200) AM_READ | |
| 767 | AM_RANGE(0xe200, 0xe200) AM_READ | |
| 768 | 768 | AM_RANGE(0xe201, 0xe201) AM_READ(taitosound_slave_comm_r) |
| 769 | 769 | ADDRESS_MAP_END |
| 770 | 770 | |
| r4470 | r4471 | |
| 782 | 782 | AM_RANGE(0xe000, 0xe003) AM_DEVWRITE("ym", ym2610_w) |
| 783 | 783 | AM_RANGE(0xe200, 0xe200) AM_WRITE(taitosound_slave_port_w) |
| 784 | 784 | AM_RANGE(0xe201, 0xe201) AM_WRITE(taitosound_slave_comm_w) |
| 785 | AM_RANGE(0xe400, 0xe403) AM_WRITE(SMH_NOP) /* pan */ | |
| 786 | AM_RANGE(0xe600, 0xe600) AM_WRITE(SMH_NOP) /* ? */ | |
| 787 | AM_RANGE(0xee00, 0xee00) AM_WRITE(SMH_NOP) /* ? */ | |
| 788 | AM_RANGE(0xf000, 0xf000) AM_WRITE(SMH_NOP) /* ? */ | |
| 785 | AM_RANGE(0xe400, 0xe403) AM_WRITENOP /* pan */ | |
| 786 | AM_RANGE(0xe600, 0xe600) AM_WRITENOP /* ? */ | |
| 787 | AM_RANGE(0xee00, 0xee00) AM_WRITENOP /* ? */ | |
| 788 | AM_RANGE(0xf000, 0xf000) AM_WRITENOP /* ? */ | |
| 789 | 789 | AM_RANGE(0xf200, 0xf200) AM_WRITE(sound_bankswitch_w) |
| 790 | 790 | ADDRESS_MAP_END |
| 791 | 791 | |
| r4470 | r4471 | |
| 812 | 812 | AM_RANGE(0xe002, 0xe002) AM_READ_PORT("IN0") |
| 813 | 813 | AM_RANGE(0xe003, 0xe003) AM_READ_PORT("IN1") |
| 814 | 814 | AM_RANGE(0xe007, 0xe007) AM_READ_PORT("IN2") |
| 815 | AM_RANGE(0xe008, 0xe00f) AM_READ(SMH_NOP) | |
| 816 | AM_RANGE(0xe800, 0xe800) AM_READ(SMH_NOP) | |
| 815 | AM_RANGE(0xe008, 0xe00f) AM_READNOP | |
| 816 | AM_RANGE(0xe800, 0xe800) AM_READNOP | |
| 817 | 817 | AM_RANGE(0xe801, 0xe801) AM_READ(taitosound_comm_r) |
| 818 | 818 | AM_RANGE(0xf000, 0xf000) AM_READ(rombank2switch_r) |
| 819 | 819 | ADDRESS_MAP_END |
| r4470 | r4471 | |
| 821 | 821 | static ADDRESS_MAP_START( champwr_2_writemem, ADDRESS_SPACE_PROGRAM, 8 ) |
| 822 | 822 | AM_RANGE(0x0000, 0xbfff) AM_WRITE(SMH_ROM) |
| 823 | 823 | AM_RANGE(0xc000, 0xdfff) AM_WRITE(shared_w) |
| 824 | AM_RANGE(0xe000, 0xe000) AM_WRITE | |
| 824 | AM_RANGE(0xe000, 0xe000) AM_WRITE | |
| 825 | 825 | AM_RANGE(0xe004, 0xe004) AM_WRITE(control2_w) |
| 826 | 826 | AM_RANGE(0xe800, 0xe800) AM_WRITE(taitosound_port_w) |
| 827 | 827 | AM_RANGE(0xe801, 0xe801) AM_WRITE(taitosound_comm_w) |
| r4470 | r4471 | |
| 833 | 833 | AM_RANGE(0x4000, 0x7fff) AM_READ(SMH_BANK7) |
| 834 | 834 | AM_RANGE(0x8000, 0x8fff) AM_READ(SMH_RAM) |
| 835 | 835 | AM_RANGE(0x9000, 0x9001) AM_DEVREAD("ym", ym2203_r) |
| 836 | AM_RANGE(0xa000, 0xa000) AM_READ | |
| 836 | AM_RANGE(0xa000, 0xa000) AM_READ | |
| 837 | 837 | AM_RANGE(0xa001, 0xa001) AM_READ(taitosound_slave_comm_r) |
| 838 | 838 | ADDRESS_MAP_END |
| 839 | 839 | |
| r4470 | r4471 | |
| 856 | 856 | AM_RANGE(0x8000, 0x9fff) AM_READ(SMH_RAM) |
| 857 | 857 | AM_RANGE(0xa000, 0xa7ff) AM_READ(SMH_RAM) |
| 858 | 858 | AM_RANGE(0xa800, 0xa800) AM_READ(mux_r) |
| 859 | AM_RANGE(0xa801, 0xa801) AM_READ | |
| 859 | AM_RANGE(0xa801, 0xa801) AM_READ | |
| 860 | 860 | ADDRESS_MAP_END |
| 861 | 861 | |
| 862 | 862 | static ADDRESS_MAP_START( kurikint_writemem, ADDRESS_SPACE_PROGRAM, 8 ) |
| r4470 | r4471 | |
| 896 | 896 | static ADDRESS_MAP_START( puzznic_readmem, ADDRESS_SPACE_PROGRAM, 8 ) |
| 897 | 897 | COMMON_BANKS_READ |
| 898 | 898 | COMMON_SINGLE_READ |
| 899 | AM_RANGE(0xa800, 0xa800) AM_READ | |
| 899 | AM_RANGE(0xa800, 0xa800) AM_READ | |
| 900 | 900 | AM_RANGE(0xb000, 0xb7ff) AM_READ(SMH_RAM) // Wrong, used to overcome protection |
| 901 | 901 | AM_RANGE(0xb800, 0xb800) AM_READ(mcu_data_r) |
| 902 | 902 | AM_RANGE(0xb801, 0xb801) AM_READ(mcu_control_r) |
| r4470 | r4471 | |
| 908 | 908 | AM_RANGE(0xb000, 0xb7ff) AM_WRITE(SMH_RAM) // Wrong, used to overcome protection |
| 909 | 909 | AM_RANGE(0xb800, 0xb800) AM_WRITE(mcu_data_w) |
| 910 | 910 | AM_RANGE(0xb801, 0xb801) AM_WRITE(mcu_control_w) |
| 911 | AM_RANGE(0xbc00, 0xbc00) AM_WRITE | |
| 911 | AM_RANGE(0xbc00, 0xbc00) AM_WRITE | |
| 912 | 912 | ADDRESS_MAP_END |
| 913 | 913 | |
| 914 | 914 | /* bootleg, doesn't have the MCU */ |
| 915 | 915 | static ADDRESS_MAP_START( puzznici_readmem, ADDRESS_SPACE_PROGRAM, 8 ) |
| 916 | 916 | COMMON_BANKS_READ |
| 917 | 917 | COMMON_SINGLE_READ |
| 918 | AM_RANGE(0xa800, 0xa800) AM_READ | |
| 918 | AM_RANGE(0xa800, 0xa800) AM_READ | |
| 919 | 919 | AM_RANGE(0xb000, 0xb7ff) AM_READ(SMH_RAM) // Wrong, used to overcome protection |
| 920 | 920 | // AM_RANGE(0xb800, 0xb800) AM_READ(mcu_data_r) |
| 921 | 921 | AM_RANGE(0xb801, 0xb801) AM_READ(mcu_control_r) |
| r4470 | r4471 | |
| 927 | 927 | AM_RANGE(0xb000, 0xb7ff) AM_WRITE(SMH_RAM) // Wrong, used to overcome protection |
| 928 | 928 | // AM_RANGE(0xb800, 0xb800) AM_WRITE(mcu_data_w) |
| 929 | 929 | // AM_RANGE(0xb801, 0xb801) AM_WRITE(mcu_control_w) |
| 930 | AM_RANGE(0xbc00, 0xbc00) AM_WRITE | |
| 930 | AM_RANGE(0xbc00, 0xbc00) AM_WRITE | |
| 931 | 931 | ADDRESS_MAP_END |
| 932 | 932 | |
| 933 | 933 | |
| r4470 | r4471 | |
| 939 | 939 | static ADDRESS_MAP_START( plotting_writemem, ADDRESS_SPACE_PROGRAM, 8 ) |
| 940 | 940 | COMMON_BANKS_WRITE |
| 941 | 941 | COMMON_SINGLE_WRITE |
| 942 | AM_RANGE(0xa800, 0xa800) AM_WRITE(SMH_NOP) // Watchdog or interrupt ack | |
| 943 | AM_RANGE(0xb800, 0xb800) AM_WRITE(SMH_NOP) // Control register, function unknown | |
| 942 | AM_RANGE(0xa800, 0xa800) AM_WRITENOP // Watchdog or interrupt ack | |
| 943 | AM_RANGE(0xb800, 0xb800) AM_WRITENOP // Control register, function unknown | |
| 944 | 944 | ADDRESS_MAP_END |
| 945 | 945 | |
| 946 | 946 | |
| r4470 | r4471 | |
| 950 | 950 | AM_RANGE(0xa800, 0xa800) AM_READ_PORT("IN0") |
| 951 | 951 | AM_RANGE(0xa801, 0xa801) AM_READ_PORT("IN1") |
| 952 | 952 | AM_RANGE(0xa802, 0xa802) AM_READ_PORT("IN2") |
| 953 | AM_RANGE(0xb001, 0xb001) AM_READ | |
| 953 | AM_RANGE(0xb001, 0xb001) AM_READ | |
| 954 | 954 | ADDRESS_MAP_END |
| 955 | 955 | |
| 956 | 956 | static ADDRESS_MAP_START( palamed_writemem, ADDRESS_SPACE_PROGRAM, 8 ) |
| 957 | 957 | COMMON_BANKS_WRITE |
| 958 | 958 | COMMON_SINGLE_WRITE |
| 959 | AM_RANGE(0xa803, 0xa803) AM_WRITE(SMH_NOP) // Control register, function unknown | |
| 960 | AM_RANGE(0xb000, 0xb000) AM_WRITE(SMH_NOP) // Control register, function unknown (copy of 8822) | |
| 959 | AM_RANGE(0xa803, 0xa803) AM_WRITENOP // Control register, function unknown | |
| 960 | AM_RANGE(0xb000, 0xb000) AM_WRITENOP // Control register, function unknown (copy of 8822) | |
| 961 | 961 | ADDRESS_MAP_END |
| 962 | 962 | |
| 963 | 963 | |
| r4470 | r4471 | |
| 967 | 967 | AM_RANGE(0xa800, 0xa800) AM_READ_PORT("IN0") |
| 968 | 968 | AM_RANGE(0xa801, 0xa801) AM_READ_PORT("IN1") |
| 969 | 969 | AM_RANGE(0xa802, 0xa802) AM_READ_PORT("IN2") |
| 970 | AM_RANGE(0xb001, 0xb001) AM_READ | |
| 970 | AM_RANGE(0xb001, 0xb001) AM_READ | |
| 971 | 971 | AM_RANGE(0xfff8, 0xfff8) AM_READ(rombankswitch_r) |
| 972 | 972 | ADDRESS_MAP_END |
| 973 | 973 | |
| 974 | 974 | static ADDRESS_MAP_START( cachat_writemem, ADDRESS_SPACE_PROGRAM, 8 ) |
| 975 | 975 | COMMON_BANKS_WRITE |
| 976 | 976 | COMMON_SINGLE_WRITE |
| 977 | AM_RANGE(0xa803, 0xa803) AM_WRITE(SMH_NOP) // Control register, function unknown | |
| 978 | AM_RANGE(0xb000, 0xb000) AM_WRITE(SMH_NOP) // Control register, function unknown | |
| 977 | AM_RANGE(0xa803, 0xa803) AM_WRITENOP // Control register, function unknown | |
| 978 | AM_RANGE(0xb000, 0xb000) AM_WRITENOP // Control register, function unknown | |
| 979 | 979 | AM_RANGE(0xfff8, 0xfff8) AM_WRITE(rombankswitch_w) |
| 980 | 980 | ADDRESS_MAP_END |
| 981 | 981 | |
| r4470 | r4471 | |
| 989 | 989 | AM_RANGE(0xa804, 0xa804) AM_READ(horshoes_tracky_hi_r) |
| 990 | 990 | AM_RANGE(0xa808, 0xa808) AM_READ(horshoes_trackx_lo_r) |
| 991 | 991 | AM_RANGE(0xa80c, 0xa80c) AM_READ(horshoes_trackx_hi_r) |
| 992 | AM_RANGE(0xb801, 0xb801) AM_READ | |
| 992 | AM_RANGE(0xb801, 0xb801) AM_READ | |
| 993 | 993 | ADDRESS_MAP_END |
| 994 | 994 | |
| 995 | 995 | static ADDRESS_MAP_START( horshoes_writemem, ADDRESS_SPACE_PROGRAM, 8 ) |
| 996 | 996 | COMMON_BANKS_WRITE |
| 997 | 997 | COMMON_SINGLE_WRITE |
| 998 | 998 | AM_RANGE(0xb802, 0xb802) AM_WRITE(horshoes_bankg_w) |
| 999 | AM_RANGE(0xbc00, 0xbc00) AM_WRITE | |
| 999 | AM_RANGE(0xbc00, 0xbc00) AM_WRITE | |
| 1000 | 1000 | ADDRESS_MAP_END |
| 1001 | 1001 | |
| 1002 | 1002 | static ADDRESS_MAP_START( evilston_readmem, ADDRESS_SPACE_PROGRAM, 8 ) |
| r4470 | r4471 | |
| 1699 | 1699 | PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) |
| 1700 | 1700 | PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) |
| 1701 | 1701 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 1702 | PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) | |
| 1703 | PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) | |
| 1704 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) | |
| 1702 | PORT_DIPNAME( 0x80, 0x80, "P1+P2 Start to Clear Round (Cheat)" ) | |
| 1703 | PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) | |
| 1704 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) | |
| 1705 | 1705 | |
| 1706 | 1706 | PORT_START("IN0") |
| 1707 | 1707 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE1 ) |
| r4470 | r4471 | |
| 1743 | 1743 | PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) |
| 1744 | 1744 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 1745 | 1745 | PORT_SERVICE( 0x04, IP_ACTIVE_LOW ) |
| 1746 | PORT_DIPNAME( 0x08, 0x08, "Coin Mode" ) | |
| 1746 | PORT_DIPNAME( 0x08, 0x08, "Coin Mode" ) | |
| 1747 | 1747 | PORT_DIPSETTING( 0x08, "Mode A" ) |
| 1748 | 1748 | PORT_DIPSETTING( 0x00, "Mode B" ) |
| 1749 | TAITO_COINAGE_JAPAN_OLD | |
| 1749 | PORT_DIPNAME( 0x30, 0x30, DEF_STR( Coin_A ) ) | |
| 1750 | PORT_DIPSETTING( 0x10, DEF_STR( 2C_1C ) ) PORT_CONDITION("DSWA", 0x08, PORTCOND_EQUALS, 0x08) | |
| 1751 | PORT_DIPSETTING( 0x30, DEF_STR( 1C_1C ) ) PORT_CONDITION("DSWA", 0x08, PORTCOND_EQUALS, 0x08) | |
| 1752 | PORT_DIPSETTING( 0x00, DEF_STR( 2C_3C ) ) PORT_CONDITION("DSWA", 0x08, PORTCOND_EQUALS, 0x08) | |
| 1753 | PORT_DIPSETTING( 0x20, DEF_STR( 1C_2C ) ) PORT_CONDITION("DSWA", 0x08, PORTCOND_EQUALS, 0x08) | |
| 1754 | PORT_DIPSETTING( 0x00, DEF_STR( 4C_1C ) ) PORT_CONDITION("DSWA", 0x08, PORTCOND_EQUALS, 0x00) | |
| 1755 | PORT_DIPSETTING( 0x10, DEF_STR( 3C_1C ) ) PORT_CONDITION("DSWA", 0x08, PORTCOND_EQUALS, 0x00) | |
| 1756 | PORT_DIPSETTING( 0x30, DEF_STR( 1C_1C ) ) PORT_CONDITION("DSWA", 0x08, PORTCOND_EQUALS, 0x00) | |
| 1757 | PORT_DIPSETTING( 0x20, DEF_STR( 1C_4C ) ) PORT_CONDITION("DSWA", 0x08, PORTCOND_EQUALS, 0x00) | |
| 1758 | PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Coin_B ) ) | |
| 1759 | PORT_DIPSETTING( 0x40, DEF_STR( 2C_1C ) ) PORT_CONDITION("DSWA", 0x08, PORTCOND_EQUALS, 0x08) | |
| 1760 | PORT_DIPSETTING( 0xc0, DEF_STR( 1C_1C ) ) PORT_CONDITION("DSWA", 0x08, PORTCOND_EQUALS, 0x08) | |
| 1761 | PORT_DIPSETTING( 0x00, DEF_STR( 2C_3C ) ) PORT_CONDITION("DSWA", 0x08, PORTCOND_EQUALS, 0x08) | |
| 1762 | PORT_DIPSETTING( 0x80, DEF_STR( 1C_2C ) ) PORT_CONDITION("DSWA", 0x08, PORTCOND_EQUALS, 0x08) | |
| 1763 | PORT_DIPSETTING( 0x00, DEF_STR( 4C_1C ) ) PORT_CONDITION("DSWA", 0x08, PORTCOND_EQUALS, 0x00) | |
| 1764 | PORT_DIPSETTING( 0x40, DEF_STR( 3C_1C ) ) PORT_CONDITION("DSWA", 0x08, PORTCOND_EQUALS, 0x00) | |
| 1765 | PORT_DIPSETTING( 0xc0, DEF_STR( 1C_1C ) ) PORT_CONDITION("DSWA", 0x08, PORTCOND_EQUALS, 0x00) | |
| 1766 | PORT_DIPSETTING( 0x80, DEF_STR( 1C_4C ) ) PORT_CONDITION("DSWA", 0x08, PORTCOND_EQUALS, 0x00) | |
| 1750 | 1767 | /* |
| 1751 | 1768 | |
| 1752 | 1769 | Coin 1 is DSW 1, 5&6 - Coin 2 is DSW 1, 7&8 |
| r4470 | r4471 | |
| 1762 | 1779 | | | 3cn/1pl |off|on | |
| 1763 | 1780 | | | 4cn/1pl |on |on | |
| 1764 | 1781 | ----------------------------------- |
| 1782 | ||
| 1783 | Mode A corresponds to TAITO_COINAGE_JAPAN_OLD in taitoipt.h | |
| 1784 | ||
| 1765 | 1785 | */ |
| 1766 | 1786 | |
| 1767 | 1787 | PORT_START("DSWB") |
| r4470 | r4471 | |
|---|---|---|
| 263 | 263 | AM_RANGE(0x920000, 0x92000f) AM_READ(TC0100SCN_ctrl_long_r) |
| 264 | 264 | AM_RANGE(0xa00000, 0xa0ffff) AM_READ(SMH_RAM) /* palette ram */ |
| 265 | 265 | AM_RANGE(0xb00000, 0xb003ff) AM_READ(SMH_RAM) // ?? single bytes |
| 266 | AM_RANGE(0xc00000, 0xc00007) AM_READ | |
| 266 | AM_RANGE(0xc00000, 0xc00007) AM_READ | |
| 267 | 267 | ADDRESS_MAP_END |
| 268 | 268 | |
| 269 | 269 | static ADDRESS_MAP_START( groundfx_writemem, ADDRESS_SPACE_PROGRAM, 32 ) |
| r4470 | r4471 | |
|---|---|---|
| 15 | 15 | #include "cpu/hd6309/hd6309.h" |
| 16 | 16 | #include "video/konamiic.h" |
| 17 | 17 | #include "sound/k007232.h" |
| 18 | #include "konamipt.h" | |
| 18 | 19 | |
| 19 | 20 | /* from video/fastlane.c */ |
| 20 | 21 | extern UINT8 *fastlane_k007121_regs,*fastlane_videoram1,*fastlane_videoram2; |
| r4470 | r4471 | |
| 119 | 120 | |
| 120 | 121 | static INPUT_PORTS_START( fastlane ) |
| 121 | 122 | PORT_START("DSW1") |
| 122 | PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) ) | |
| 123 | PORT_DIPSETTING( 0x02, DEF_STR( 4C_1C ) ) | |
| 124 | PORT_DIPSETTING( 0x05, DEF_STR( 3C_1C ) ) | |
| 125 | PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) ) | |
| 126 | PORT_DIPSETTING( 0x04, DEF_STR( 3C_2C ) ) | |
| 127 | PORT_DIPSETTING( 0x01, DEF_STR( 4C_3C ) ) | |
| 128 | PORT_DIPSETTING( 0x0f, DEF_STR( 1C_1C ) ) | |
| 129 | PORT_DIPSETTING( 0x03, DEF_STR( 3C_4C ) ) | |
| 130 | PORT_DIPSETTING( 0x07, DEF_STR( 2C_3C ) ) | |
| 131 | PORT_DIPSETTING( 0x0e, DEF_STR( 1C_2C ) ) | |
| 132 | PORT_DIPSETTING( 0x06, DEF_STR( 2C_5C ) ) | |
| 133 | PORT_DIPSETTING( 0x0d, DEF_STR( 1C_3C ) ) | |
| 134 | PORT_DIPSETTING( 0x0c, DEF_STR( 1C_4C ) ) | |
| 135 | PORT_DIPSETTING( 0x0b, DEF_STR( 1C_5C ) ) | |
| 136 | PORT_DIPSETTING( 0x0a, DEF_STR( 1C_6C ) ) | |
| 137 | PORT_DIPSETTING( 0x09, DEF_STR( 1C_7C ) ) | |
| 138 | PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) | |
| 139 | PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) ) | |
| 140 | PORT_DIPSETTING( 0x20, DEF_STR( 4C_1C ) ) | |
| 141 | PORT_DIPSETTING( 0x50, DEF_STR( 3C_1C ) ) | |
| 142 | PORT_DIPSETTING( 0x80, DEF_STR( 2C_1C ) ) | |
| 143 | PORT_DIPSETTING( 0x40, DEF_STR( 3C_2C ) ) | |
| 144 | PORT_DIPSETTING( 0x10, DEF_STR( 4C_3C ) ) | |
| 145 | PORT_DIPSETTING( 0xf0, DEF_STR( 1C_1C ) ) | |
| 146 | PORT_DIPSETTING( 0x30, DEF_STR( 3C_4C ) ) | |
| 147 | PORT_DIPSETTING( 0x70, DEF_STR( 2C_3C ) ) | |
| 148 | PORT_DIPSETTING( 0xe0, DEF_STR( 1C_2C ) ) | |
| 149 | PORT_DIPSETTING( 0x60, DEF_STR( 2C_5C ) ) | |
| 150 | PORT_DIPSETTING( 0xd0, DEF_STR( 1C_3C ) ) | |
| 151 | PORT_DIPSETTING( 0xc0, DEF_STR( 1C_4C ) ) | |
| 152 | PORT_DIPSETTING( 0xb0, DEF_STR( 1C_5C ) ) | |
| 153 | PORT_DIPSETTING( 0xa0, DEF_STR( 1C_6C ) ) | |
| 154 | PORT_DIPSETTING( 0x90, DEF_STR( 1C_7C ) ) | |
| 155 | // PORT_DIPSETTING( 0x00, "Invalid" ) | |
| 123 | KONAMI_COINAGE(DEF_STR( Free_Play ), "No Coin B") | |
| 124 | /* "No Coin B" = coins produce sound, but no effect on coin counter */ | |
| 156 | 125 | |
| 157 | 126 | PORT_START("DSW2") |
| 158 | 127 | PORT_DIPNAME( 0x03, 0x02, DEF_STR( Lives ) ) |
| r4470 | r4471 | |
| 192 | 161 | PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 193 | 162 | |
| 194 | 163 | PORT_START("SYSTEM") |
| 195 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) | |
| 196 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) | |
| 197 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 ) /* service */ | |
| 198 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) | |
| 199 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 ) | |
| 200 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 201 | PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) | |
| 164 | KONAMI8_SYSTEM_UNK | |
| 202 | 165 | |
| 203 | 166 | PORT_START("P1") |
| 204 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) | |
| 205 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) | |
| 206 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) | |
| 207 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) | |
| 208 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) | |
| 209 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) | |
| 210 | PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) | |
| 167 | KONAMI8_B12_UNK(1) | |
| 211 | 168 | |
| 212 | 169 | PORT_START("P2") |
| 213 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) | |
| 214 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) | |
| 215 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) | |
| 216 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) | |
| 217 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) | |
| 218 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) | |
| 219 | PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) | |
| 170 | KONAMI8_B12_UNK(2) | |
| 220 | 171 | INPUT_PORTS_END |
| 221 | 172 | |
| 222 | 173 | static const gfx_layout gfxlayout = |
| r4470 | r4471 | |
| 324 | 275 | ROM_END |
| 325 | 276 | |
| 326 | 277 | |
| 327 | ||
| 328 | 278 | GAME( 1987, fastlane, 0, fastlane, fastlane, 0, ROT90, "Konami", "Fast Lane", GAME_IMPERFECT_COLORS ) |
| r4470 | r4471 | |
|---|---|---|
| 135 | 135 | AM_RANGE(0xa0008, 0xa000f) AM_READ(track_r) |
| 136 | 136 | AM_RANGE(0xa0010, 0xa0011) AM_READ_PORT("INPUTS") |
| 137 | 137 | AM_RANGE(0xc0000, 0xc0001) AM_WRITE(track_reset_w) |
| 138 | AM_RANGE(0xc0040, 0xc0041) AM_WRITE | |
| 138 | AM_RANGE(0xc0040, 0xc0041) AM_WRITE | |
| 139 | 139 | AM_RANGE(0xc0080, 0xc0081) AM_WRITE(cabal_flipscreen_w) |
| 140 | 140 | AM_RANGE(0xe0000, 0xe07ff) AM_RAM_WRITE(paletteram16_xxxxBBBBGGGGRRRR_word_w) AM_BASE(&paletteram16) |
| 141 | 141 | AM_RANGE(0xe8008, 0xe8009) AM_WRITE(cabal_sound_irq_trigger_word_w) // fix coin insertion |
| r4470 | r4471 | |
| 153 | 153 | AM_RANGE(0xa0000, 0xa0001) AM_READ_PORT("DSW") |
| 154 | 154 | AM_RANGE(0xa0008, 0xa0009) AM_READ_PORT("JOY") |
| 155 | 155 | AM_RANGE(0xa0010, 0xa0011) AM_READ_PORT("INPUTS") |
| 156 | AM_RANGE(0xc0040, 0xc0041) AM_WRITE | |
| 156 | AM_RANGE(0xc0040, 0xc0041) AM_WRITE | |
| 157 | 157 | AM_RANGE(0xc0080, 0xc0081) AM_WRITE(cabal_flipscreen_w) |
| 158 | 158 | AM_RANGE(0xe0000, 0xe07ff) AM_RAM_WRITE(paletteram16_xxxxBBBBGGGGRRRR_word_w) AM_BASE(&paletteram16) |
| 159 | 159 | AM_RANGE(0xe8000, 0xe8003) AM_WRITE(cabalbl_sndcmd_w) |
| r4470 | r4471 | |
| 212 | 212 | AM_RANGE(0x400a, 0x400a) AM_READ(cabalbl_snd1_r) |
| 213 | 213 | AM_RANGE(0x400c, 0x400c) AM_WRITE(soundlatch2_w) |
| 214 | 214 | AM_RANGE(0x400e, 0x400f) AM_DEVREADWRITE("ym", ym2151_r, ym2151_w) |
| 215 | AM_RANGE(0x6000, 0x6000) AM_WRITE | |
| 215 | AM_RANGE(0x6000, 0x6000) AM_WRITE | |
| 216 | 216 | AM_RANGE(0x8000, 0xffff) AM_ROM |
| 217 | 217 | ADDRESS_MAP_END |
| 218 | 218 |
| r4470 | r4471 | |
|---|---|---|
| 403 | 403 | AM_RANGE(0x00, 0x01) AM_WRITE(m92_soundlatch_w) |
| 404 | 404 | AM_RANGE(0x02, 0x03) AM_WRITE(m92_coincounter_w) |
| 405 | 405 | AM_RANGE(0x20, 0x21) AM_WRITE(m92_bankswitch_w) |
| 406 | AM_RANGE(0x40, 0x43) AM_WRITE | |
| 406 | AM_RANGE(0x40, 0x43) AM_WRITE | |
| 407 | 407 | AM_RANGE(0x80, 0x87) AM_WRITE(m92_pf1_control_w) |
| 408 | 408 | AM_RANGE(0x88, 0x8f) AM_WRITE(m92_pf2_control_w) |
| 409 | 409 | AM_RANGE(0x90, 0x97) AM_WRITE(m92_pf3_control_w) |
| r4470 | r4471 | |
| 415 | 415 | |
| 416 | 416 | static ADDRESS_MAP_START( sound_map, ADDRESS_SPACE_PROGRAM, 16 ) |
| 417 | 417 | AM_RANGE(0x00000, 0x1ffff) AM_ROM |
| 418 | AM_RANGE(0x9ff00, 0x9ffff) AM_WRITE | |
| 418 | AM_RANGE(0x9ff00, 0x9ffff) AM_WRITE | |
| 419 | 419 | AM_RANGE(0xa0000, 0xa3fff) AM_RAM |
| 420 | 420 | AM_RANGE(0xa8000, 0xa803f) AM_DEVREADWRITE8("irem", irem_ga20_r, irem_ga20_w, 0x00ff) |
| 421 | 421 | AM_RANGE(0xa8040, 0xa8043) AM_DEVREADWRITE8("ym", ym2151_r, ym2151_w, 0x00ff) |
| r4470 | r4471 | |
|---|---|---|
| 93 | 93 | #include "machine/eeprom.h" |
| 94 | 94 | #include "sound/2151intf.h" |
| 95 | 95 | #include "sound/k053260.h" |
| 96 | #include "konamipt.h" | |
| 96 | 97 | |
| 97 | 98 | /* prototypes */ |
| 98 | 99 | static MACHINE_RESET( vendetta ); |
| r4470 | r4471 | |
| 266 | 267 | |
| 267 | 268 | /********************************************/ |
| 268 | 269 | |
| 269 | static ADDRESS_MAP_START( readmem, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 270 | AM_RANGE(0x0000, 0x1fff) AM_READ(SMH_BANK1 ) | |
| 271 | AM_RANGE(0x2000, 0x3fff) AM_READ(SMH_RAM) | |
| 272 | AM_RANGE(0x5f80, 0x5f9f) AM_READ(K054000_r) | |
| 270 | static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 271 | AM_RANGE(0x0000, 0x1fff) AM_ROMBANK(1) | |
| 272 | AM_RANGE(0x2000, 0x3fff) AM_RAM | |
| 273 | AM_RANGE(0x5f80, 0x5f9f) AM_READWRITE(K054000_r, K054000_w) | |
| 274 | AM_RANGE(0x5fa0, 0x5faf) AM_WRITE(K053251_w) | |
| 275 | AM_RANGE(0x5fb0, 0x5fb7) AM_WRITE(K053246_w) | |
| 273 | 276 | AM_RANGE(0x5fc0, 0x5fc0) AM_READ_PORT("P1") |
| 274 | 277 | AM_RANGE(0x5fc1, 0x5fc1) AM_READ_PORT("P2") |
| 275 | 278 | AM_RANGE(0x5fc2, 0x5fc2) AM_READ_PORT("P3") |
| 276 | 279 | AM_RANGE(0x5fc3, 0x5fc3) AM_READ_PORT("P4") |
| 277 | 280 | AM_RANGE(0x5fd0, 0x5fd0) AM_READ(vendetta_eeprom_r) /* vblank, service */ |
| 278 | 281 | AM_RANGE(0x5fd1, 0x5fd1) AM_READ_PORT("SERVICE") |
| 279 | AM_RANGE(0x5fe4, 0x5fe4) AM_READ(vendetta_sound_interrupt_r) | |
| 280 | AM_RANGE(0x5fe6, 0x5fe7) AM_DEVREAD("konami", vendetta_sound_r) | |
| 282 | AM_RANGE(0x5fe0, 0x5fe0) AM_WRITE(vendetta_5fe0_w) | |
| 283 | AM_RANGE(0x5fe2, 0x5fe2) AM_WRITE(vendetta_eeprom_w) | |
| 284 | AM_RANGE(0x5fe4, 0x5fe4) AM_READWRITE(vendetta_sound_interrupt_r, z80_irq_w) | |
| 285 | AM_RANGE(0x5fe6, 0x5fe7) AM_DEVREADWRITE("konami", vendetta_sound_r, k053260_w) | |
| 281 | 286 | AM_RANGE(0x5fe8, 0x5fe9) AM_READ(K053246_r) |
| 282 | 287 | AM_RANGE(0x5fea, 0x5fea) AM_READ(watchdog_reset_r) |
| 283 | 288 | /* what is the desired effect of overlapping these memory regions anyway? */ |
| 284 | AM_RANGE(0x4000, 0x4fff) AM_READ(SMH_BANK3) | |
| 285 | AM_RANGE(0x6000, 0x6fff) AM_READ(SMH_BANK2) | |
| 286 | AM_RANGE(0x4000, 0x7fff) AM_READ(K052109_r) | |
| 287 | AM_RANGE(0x8000, 0xffff) AM_READ(SMH_ROM) | |
| 289 | AM_RANGE(0x4000, 0x4fff) AM_RAMBANK(3) | |
| 290 | AM_RANGE(0x6000, 0x6fff) AM_RAMBANK(2) | |
| 291 | AM_RANGE(0x4000, 0x7fff) AM_READWRITE(K052109_r, K052109_w) | |
| 292 | AM_RANGE(0x8000, 0xffff) AM_ROM | |
| 288 | 293 | ADDRESS_MAP_END |
| 289 | 294 | |
| 290 | static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 291 | AM_RANGE(0x0000, 0x1fff) AM_WRITE(SMH_ROM) | |
| 292 | AM_RANGE(0x2000, 0x3fff) AM_WRITE(SMH_RAM) | |
| 293 | AM_RANGE(0x5f80, 0x5f9f) AM_WRITE(K054000_w) | |
| 294 | AM_RANGE(0x5fa0, 0x5faf) AM_WRITE(K053251_w) | |
| 295 | AM_RANGE(0x5fb0, 0x5fb7) AM_WRITE(K053246_w) | |
| 296 | AM_RANGE(0x5fe0, 0x5fe0) AM_WRITE(vendetta_5fe0_w) | |
| 297 | AM_RANGE(0x5fe2, 0x5fe2) AM_WRITE(vendetta_eeprom_w) | |
| 298 | AM_RANGE(0x5fe4, 0x5fe4) AM_WRITE(z80_irq_w) | |
| 299 | AM_RANGE(0x5fe6, 0x5fe7) AM_DEVWRITE("konami", k053260_w) | |
| 300 | /* what is the desired effect of overlapping these memory regions anyway? */ | |
| 301 | AM_RANGE(0x4000, 0x4fff) AM_WRITE(SMH_BANK3) | |
| 302 | AM_RANGE(0x6000, 0x6fff) AM_WRITE(SMH_BANK2) | |
| 303 | AM_RANGE(0x4000, 0x7fff) AM_WRITE(K052109_w) | |
| 304 | AM_RANGE(0x8000, 0xffff) AM_WRITE(SMH_ROM) | |
| 305 | ADDRESS_MAP_END | |
| 306 | ||
| 307 | static ADDRESS_MAP_START( esckids_readmem, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 308 | AM_RANGE(0x0000, 0x1fff) AM_READ(SMH_RAM) // 053248 64K SRAM | |
| 295 | static ADDRESS_MAP_START( esckids_map, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 296 | AM_RANGE(0x0000, 0x1fff) AM_RAM // 053248 64K SRAM | |
| 309 | 297 | AM_RANGE(0x3f80, 0x3f80) AM_READ_PORT("P1") |
| 310 | 298 | AM_RANGE(0x3f81, 0x3f81) AM_READ_PORT("P2") |
| 311 | AM_RANGE(0x3f82, 0x3f82) AM_READ_PORT("P3") // ??? (But not used) | |
| 312 | AM_RANGE(0x3f83, 0x3f83) AM_READ_PORT("P4") // ??? (But not used) | |
| 313 | AM_RANGE(0x3f92, 0x3f92) AM_READ(vendetta_eeprom_r) // vblank, TEST SW on PCB | |
| 299 | AM_RANGE(0x3f82, 0x3f82) AM_READ_PORT("P3") // ??? (But not used) | |
| 300 | AM_RANGE(0x3f83, 0x3f83) AM_READ_PORT("P4") // ??? (But not used) | |
| 301 | AM_RANGE(0x3f92, 0x3f92) AM_READ(vendetta_eeprom_r) // vblank, TEST SW on PCB | |
| 314 | 302 | AM_RANGE(0x3f93, 0x3f93) AM_READ_PORT("SERVICE") |
| 315 | AM_RANGE(0x3fd4, 0x3fd4) AM_READ(vendetta_sound_interrupt_r) // Sound | |
| 316 | AM_RANGE(0x3fd6, 0x3fd7) AM_DEVREAD("konami", vendetta_sound_r) // Sound | |
| 317 | AM_RANGE(0x3fd8, 0x3fd9) AM_READ(K053246_r) // 053246 (Sprite) | |
| 318 | /* what is the desired effect of overlapping these memory regions anyway? */ | |
| 319 | AM_RANGE(0x2000, 0x2fff) AM_READ(SMH_BANK3) // 052109 (Tilemap) 0x0000-0x0fff | |
| 320 | AM_RANGE(0x4000, 0x4fff) AM_READ(SMH_BANK2) // 052109 (Tilemap) 0x2000-0x3fff, Tilemap MASK-ROM bank selector (MASK-ROM Test) | |
| 321 | AM_RANGE(0x2000, 0x5fff) AM_READ(K052109_r) // 052109 (Tilemap) | |
| 322 | AM_RANGE(0x6000, 0x7fff) AM_READ(SMH_BANK1) // 053248 '975r01' 1M ROM (Banked) | |
| 323 | AM_RANGE(0x8000, 0xffff) AM_READ(SMH_ROM) // 053248 '975r01' 1M ROM (0x18000-0x1ffff) | |
| 324 | ADDRESS_MAP_END | |
| 325 | ||
| 326 | static ADDRESS_MAP_START( esckids_writemem, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 327 | AM_RANGE(0x0000, 0x1fff) AM_WRITE(SMH_RAM) // 053248 64K SRAM | |
| 328 | 303 | AM_RANGE(0x3fa0, 0x3fa7) AM_WRITE(K053246_w) // 053246 (Sprite) |
| 329 | 304 | AM_RANGE(0x3fb0, 0x3fbf) AM_WRITE(K053251_w) // 053251 (Priority Encoder) |
| 330 | AM_RANGE(0x3fc0, 0x3fcf) AM_WRITE(SMH_NOP) // Not Emulated (053252 ???) | |
| 331 | AM_RANGE(0x3fd0, 0x3fd0) AM_WRITE(vendetta_5fe0_w) // Coin Counter, 052109 RMRD, 053246 OBJCHA | |
| 305 | AM_RANGE(0x3fc0, 0x3fcf) AM_WRITENOP // Not Emulated (053252 ???) | |
| 306 | AM_RANGE(0x3fd0, 0x3fd0) AM_WRITE(vendetta_5fe0_w) // Coin Counter, 052109 RMRD, 053246 OBJCHA | |
| 332 | 307 | AM_RANGE(0x3fd2, 0x3fd2) AM_WRITE(vendetta_eeprom_w) // EEPROM, Video banking |
| 333 | AM_RANGE(0x3fd4, 0x3fd4) AM_WRITE(z80_irq_w) // Sound | |
| 334 | AM_RANGE(0x3fd6, 0x3fd7) AM_DEVWRITE("konami", k053260_w) // Sound | |
| 335 | AM_RANGE(0x3fda, 0x3fda) AM_WRITE(SMH_NOP) // Not Emulated (Watchdog ???) | |
| 308 | AM_RANGE(0x3fd4, 0x3fd4) AM_READWRITE(vendetta_sound_interrupt_r, z80_irq_w) // Sound | |
| 309 | AM_RANGE(0x3fd6, 0x3fd7) AM_DEVREADWRITE("konami", vendetta_sound_r, k053260_w) // Sound | |
| 310 | AM_RANGE(0x3fd8, 0x3fd9) AM_READ(K053246_r) // 053246 (Sprite) | |
| 311 | AM_RANGE(0x3fda, 0x3fda) AM_WRITENOP // Not Emulated (Watchdog ???) | |
| 336 | 312 | /* what is the desired effect of overlapping these memory regions anyway? */ |
| 337 | AM_RANGE(0x2000, 0x2fff) AM_WRITE(SMH_BANK3) // 052109 (Tilemap) 0x0000-0x0fff | |
| 338 | AM_RANGE(0x4000, 0x4fff) AM_WRITE(SMH_BANK2) // 052109 (Tilemap) 0x2000-0x3fff, Tilemap MASK-ROM bank selector (MASK-ROM Test) | |
| 339 | AM_RANGE(0x2000, 0x5fff) AM_WRITE(K052109_w) // 052109 (Tilemap) | |
| 340 | AM_RANGE(0x6000, 0x7fff) AM_WRITE(SMH_ROM) // 053248 '975r01' 1M ROM (Banked) | |
| 341 | AM_RANGE(0x8000, 0xffff) AM_WRITE(SMH_ROM) // 053248 '975r01' 1M ROM (0x18000-0x1ffff) | |
| 313 | AM_RANGE(0x2000, 0x2fff) AM_RAMBANK(3) // 052109 (Tilemap) 0x0000-0x0fff | |
| 314 | AM_RANGE(0x4000, 0x4fff) AM_RAMBANK(2) // 052109 (Tilemap) 0x2000-0x3fff, Tilemap MASK-ROM bank selector (MASK-ROM Test) | |
| 315 | AM_RANGE(0x2000, 0x5fff) AM_READWRITE(K052109_r, K052109_w) // 052109 (Tilemap) | |
| 316 | AM_RANGE(0x6000, 0x7fff) AM_ROMBANK(1) // 053248 '975r01' 1M ROM (Banked) | |
| 317 | AM_RANGE(0x8000, 0xffff) AM_ROM // 053248 '975r01' 1M ROM (0x18000-0x1ffff) | |
| 342 | 318 | ADDRESS_MAP_END |
| 343 | 319 | |
| 344 | 320 | |
| 345 | static ADDRESS_MAP_START( readmem_sound, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 346 | AM_RANGE(0x0000, 0xefff) AM_READ(SMH_ROM) | |
| 347 | AM_RANGE(0xf000, 0xf7ff) AM_READ(SMH_RAM) | |
| 348 | AM_RANGE(0xf800, 0xf801) AM_DEVREAD("ym", ym2151_r) | |
| 349 | AM_RANGE(0xfc00, 0xfc2f) AM_DEVREAD("konami", k053260_r) | |
| 350 | ADDRESS_MAP_END | |
| 351 | ||
| 352 | static ADDRESS_MAP_START( writemem_sound, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 353 | AM_RANGE(0x0000, 0xefff) AM_WRITE(SMH_ROM) | |
| 354 | AM_RANGE(0xf000, 0xf7ff) AM_WRITE(SMH_RAM) | |
| 355 | AM_RANGE(0xf800, 0xf801) AM_DEVWRITE("ym", ym2151_w) | |
| 321 | static ADDRESS_MAP_START( sound_map, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 322 | AM_RANGE(0x0000, 0xefff) AM_ROM | |
| 323 | AM_RANGE(0xf000, 0xf7ff) AM_RAM | |
| 324 | AM_RANGE(0xf800, 0xf801) AM_DEVREADWRITE("ym", ym2151_r, ym2151_w) | |
| 356 | 325 | AM_RANGE(0xfa00, 0xfa00) AM_WRITE(z80_arm_nmi_w) |
| 357 | AM_RANGE(0xfc00, 0xfc2f) AM_DEVWRITE("konami", k053260_w) | |
| 326 | AM_RANGE(0xfc00, 0xfc2f) AM_DEVREADWRITE("konami", k053260_r, k053260_w) | |
| 358 | 327 | ADDRESS_MAP_END |
| 359 | 328 | |
| 360 | 329 | |
| r4470 | r4471 | |
| 366 | 335 | |
| 367 | 336 | static INPUT_PORTS_START( vendet4p ) |
| 368 | 337 | PORT_START("P1") |
| 369 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) | |
| 370 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) | |
| 371 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) | |
| 372 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) | |
| 373 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) | |
| 374 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) | |
| 375 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 376 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 ) | |
| 338 | KONAMI8_RL_B12_COIN(1) | |
| 377 | 339 | |
| 378 | 340 | PORT_START("P2") |
| 379 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) | |
| 380 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) | |
| 381 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) | |
| 382 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) | |
| 383 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) | |
| 384 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) | |
| 385 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 386 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN2 ) | |
| 341 | KONAMI8_RL_B12_COIN(2) | |
| 387 | 342 | |
| 343 | PORT_START("P3") | |
| 344 | KONAMI8_RL_B12_COIN(3) | |
| 345 | ||
| 346 | PORT_START("P4") | |
| 347 | KONAMI8_RL_B12_COIN(4) | |
| 348 | ||
| 388 | 349 | PORT_START("SERVICE") |
| 389 | 350 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) |
| 390 | 351 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) |
| r4470 | r4471 | |
| 401 | 362 | PORT_SERVICE_NO_TOGGLE(0x04, IP_ACTIVE_LOW) |
| 402 | 363 | PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_VBLANK ) /* not really vblank, object related. Its timed, otherwise sprites flicker */ |
| 403 | 364 | PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 404 | ||
| 405 | PORT_START("P3") | |
| 406 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(3) | |
| 407 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(3) | |
| 408 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(3) | |
| 409 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(3) | |
| 410 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3) | |
| 411 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3) | |
| 412 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 413 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN3 ) | |
| 414 | ||
| 415 | PORT_START("P4") | |
| 416 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(4) | |
| 417 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(4) | |
| 418 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(4) | |
| 419 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(4) | |
| 420 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(4) | |
| 421 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(4) | |
| 422 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 423 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN4 ) | |
| 424 | 365 | INPUT_PORTS_END |
| 425 | 366 | |
| 426 | 367 | static INPUT_PORTS_START( vendetta ) |
| 427 | 368 | PORT_INCLUDE( vendet4p ) |
| 428 | 369 | |
| 370 | PORT_MODIFY("P3") | |
| 371 | PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) | |
| 372 | ||
| 373 | PORT_MODIFY("P4") | |
| 374 | PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) | |
| 375 | ||
| 429 | 376 | PORT_MODIFY("SERVICE") |
| 430 | 377 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) |
| 431 | 378 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 ) |
| r4470 | r4471 | |
| 435 | 382 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) |
| 436 | 383 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) |
| 437 | 384 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) |
| 438 | ||
| 439 | PORT_MODIFY("P3") | |
| 440 | PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) | |
| 441 | ||
| 442 | PORT_MODIFY("P4") | |
| 443 | PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) | |
| 444 | 385 | INPUT_PORTS_END |
| 445 | 386 | |
| 446 | 387 | static INPUT_PORTS_START( esckids ) |
| 447 | PORT_START("P1") // Player 1 Control | |
| 448 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) | |
| 449 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) | |
| 450 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) | |
| 451 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) | |
| 452 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) | |
| 453 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) | |
| 454 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 455 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 ) | |
| 388 | PORT_START("P1") | |
| 389 | KONAMI8_RL_B12_COIN(1) // Player 1 Control | |
| 456 | 390 | |
| 457 | PORT_START("P2") // Player 2 Control | |
| 458 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) | |
| 459 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) | |
| 460 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) | |
| 461 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) | |
| 462 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) | |
| 463 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) | |
| 464 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 465 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN2 ) | |
| 391 | PORT_START("P2") | |
| 392 | KONAMI8_RL_B12_COIN(2) // Player 2 Control | |
| 466 | 393 | |
| 394 | PORT_START("P3") | |
| 395 | KONAMI8_RL_B12_COIN(3) // Player 3 Control ??? (Not used) | |
| 396 | ||
| 397 | PORT_START("P4") | |
| 398 | KONAMI8_RL_B12_COIN(4) // Player 4 Control ??? (Not used) | |
| 399 | ||
| 467 | 400 | PORT_START("SERVICE") // Start, Service |
| 468 | 401 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) |
| 469 | 402 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 ) |
| r4470 | r4471 | |
| 480 | 413 | PORT_SERVICE_NO_TOGGLE(0x04, IP_ACTIVE_LOW) |
| 481 | 414 | PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_VBLANK ) /* not really vblank, object related. Its timed, otherwise sprites flicker */ |
| 482 | 415 | PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 483 | ||
| 484 | PORT_START("P3") // Player 3 Control ??? (Not used) | |
| 485 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(3) | |
| 486 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(3) | |
| 487 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(3) | |
| 488 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(3) | |
| 489 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3) | |
| 490 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3) | |
| 491 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 492 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN3 ) | |
| 493 | ||
| 494 | PORT_START("P4") // Player 4 Control ??? (Not used) | |
| 495 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(4) | |
| 496 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(4) | |
| 497 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(4) | |
| 498 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(4) | |
| 499 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(4) | |
| 500 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(4) | |
| 501 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 502 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN4 ) | |
| 503 | 416 | INPUT_PORTS_END |
| 504 | 417 | |
| 505 | 418 | static INPUT_PORTS_START( esckidsj ) |
| r4470 | r4471 | |
| 529 | 442 | /* basic machine hardware */ |
| 530 | 443 | MDRV_CPU_ADD("maincpu", KONAMI, 6000000) /* this is strange, seems an overclock but */ |
| 531 | 444 | // MDRV_CPU_ADD("maincpu", KONAMI, 3000000) /* is needed to have correct music speed */ |
| 532 | MDRV_CPU_PROGRAM_MAP( | |
| 445 | MDRV_CPU_PROGRAM_MAP( | |
| 533 | 446 | MDRV_CPU_VBLANK_INT("screen", vendetta_irq) |
| 534 | 447 | |
| 535 | 448 | MDRV_CPU_ADD("audiocpu", Z80, 3579545) /* verified with PCB */ |
| 536 | MDRV_CPU_PROGRAM_MAP( | |
| 449 | MDRV_CPU_PROGRAM_MAP( | |
| 537 | 450 | /* interrupts are triggered by the main CPU */ |
| 538 | 451 | |
| 539 | 452 | MDRV_MACHINE_RESET(vendetta) |
| r4470 | r4471 | |
| 572 | 485 | /* basic machine hardware */ |
| 573 | 486 | MDRV_IMPORT_FROM(vendetta) |
| 574 | 487 | MDRV_CPU_MODIFY("maincpu") |
| 575 | MDRV_CPU_PROGRAM_MAP(esckids_ | |
| 488 | MDRV_CPU_PROGRAM_MAP(esckids_ | |
| 576 | 489 | |
| 577 | 490 | MDRV_SCREEN_MODIFY("screen") |
| 578 | 491 | //MDRV_SCREEN_VISIBLE_AREA(13*8, (64-13)*8-1, 2*8, 30*8-1 ) /* black areas on the edges */ |
| r4470 | r4471 | |
| 612 | 525 | ROM_LOAD( "081a03", 0x000000, 0x100000, CRC(14b6baea) SHA1(fe15ee57f19f5acaad6c1642d51f390046a7468a) ) |
| 613 | 526 | ROM_END |
| 614 | 527 | |
| 615 | ROM_START( vendeta | |
| 528 | ROM_START( vendettar ) | |
| 616 | 529 | ROM_REGION( 0x49000, "maincpu", 0 ) /* code + banked roms + banked ram */ |
| 617 | 530 | ROM_LOAD( "081r01", 0x10000, 0x38000, CRC(84796281) SHA1(e4330c6eaa17adda5b4bd3eb824388c89fb07918) ) |
| 618 | 531 | ROM_CONTINUE( 0x08000, 0x08000 ) |
| r4470 | r4471 | |
| 634 | 547 | ROM_LOAD( "081a03", 0x000000, 0x100000, CRC(14b6baea) SHA1(fe15ee57f19f5acaad6c1642d51f390046a7468a) ) |
| 635 | 548 | ROM_END |
| 636 | 549 | |
| 637 | ROM_START( vendet2p ) | |
| 550 | ROM_START( vendetta2p ) | |
| 638 | 551 | ROM_REGION( 0x49000, "maincpu", 0 ) /* code + banked roms + banked ram */ |
| 639 | 552 | ROM_LOAD( "081w01", 0x10000, 0x38000, CRC(cee57132) SHA1(8b6413877e127511daa76278910c2ee3247d613a) ) |
| 640 | 553 | ROM_CONTINUE( 0x08000, 0x08000 ) |
| r4470 | r4471 | |
| 656 | 569 | ROM_LOAD( "081a03", 0x000000, 0x100000, CRC(14b6baea) SHA1(fe15ee57f19f5acaad6c1642d51f390046a7468a) ) |
| 657 | 570 | ROM_END |
| 658 | 571 | |
| 659 | ROM_START( vendeta | |
| 572 | ROM_START( vendetta2pu ) | |
| 660 | 573 | ROM_REGION( 0x49000, "maincpu", 0 ) /* code + banked roms + banked ram */ |
| 661 | 574 | ROM_LOAD( "081u01", 0x10000, 0x38000, CRC(b4d9ade5) SHA1(fbd543738cb0b68c80ff05eed7849b608de03395) ) |
| 662 | 575 | ROM_CONTINUE( 0x08000, 0x08000 ) |
| r4470 | r4471 | |
| 678 | 591 | ROM_LOAD( "081a03", 0x000000, 0x100000, CRC(14b6baea) SHA1(fe15ee57f19f5acaad6c1642d51f390046a7468a) ) |
| 679 | 592 | ROM_END |
| 680 | 593 | |
| 681 | ROM_START( vendta | |
| 594 | ROM_START( vendetta2pd ) | |
| 682 | 595 | ROM_REGION( 0x49000, "maincpu", 0 ) /* code + banked roms + banked ram */ |
| 683 | 596 | ROM_LOAD( "081d01", 0x10000, 0x38000, CRC(335da495) SHA1(ea74680eb898aeecf9f1eec95f151bcf66e6b6cb) ) |
| 684 | 597 | ROM_CONTINUE( 0x08000, 0x08000 ) |
| r4470 | r4471 | |
| 700 | 613 | ROM_LOAD( "081a03", 0x000000, 0x100000, CRC(14b6baea) SHA1(fe15ee57f19f5acaad6c1642d51f390046a7468a) ) |
| 701 | 614 | ROM_END |
| 702 | 615 | |
| 703 | ROM_START( vendettj ) | |
| 616 | ROM_START( vendettaj ) | |
| 704 | 617 | ROM_REGION( 0x49000, "maincpu", 0 ) /* code + banked roms + banked ram */ |
| 705 | 618 | ROM_LOAD( "081p01", 0x10000, 0x38000, CRC(5fe30242) SHA1(2ea98e66637fa2ad60044b1a2b0dd158a82403a2) ) |
| 706 | 619 | ROM_CONTINUE( 0x08000, 0x08000 ) |
| r4470 | r4471 | |
| 815 | 728 | |
| 816 | 729 | |
| 817 | 730 | |
| 818 | GAME( 1991, vendetta, 0, vendetta, vendet4p, vendetta, ROT0, "Konami", "Vendetta (World 4 Players ver. T)", 0 ) | |
| 819 | GAME( 1991, vendetao, vendetta, vendetta, vendet4p, vendetta, ROT0, "Konami", "Vendetta (World 4 Players ver. R)", 0 ) | |
| 820 | GAME( 1991, vendet2p, vendetta, vendetta, vendetta, vendetta, ROT0, "Konami", "Vendetta (World 2 Players ver. W)", 0 ) | |
| 821 | GAME( 1991, vendetas, vendetta, vendetta, vendetta, vendetta, ROT0, "Konami", "Vendetta (Asia 2 Players ver. U)", 0 ) | |
| 822 | GAME( 1991, vendtaso, vendetta, vendetta, vendetta, vendetta, ROT0, "Konami", "Vendetta (Asia 2 Players ver. D)", 0 ) | |
| 823 | GAME( 1991, vendettj, vendetta, vendetta, vendetta, vendetta, ROT0, "Konami", "Crime Fighters 2 (Japan 2 Players ver. P)", 0 ) | |
| 824 | GAME( 1991, esckids, 0, esckids, esckids, esckids, ROT0, "Konami", "Escape Kids (Asia, 4 Players)", 0 ) | |
| 825 | GAME( 1991, esckidsj, esckids, esckids, esckidsj, esckids, ROT0, "Konami", "Escape Kids (Japan, 2 Players)", 0 ) | |
| 731 | GAME( 1991, vendetta, 0, vendetta, vendet4p, vendetta, ROT0, "Konami", "Vendetta (World 4 Players ver. T)", 0 ) | |
| 732 | GAME( 1991, vendettar, vendetta, vendetta, vendet4p, vendetta, ROT0, "Konami", "Vendetta (World 4 Players ver. R)", 0 ) | |
| 733 | GAME( 1991, vendetta2p, vendetta, vendetta, vendetta, vendetta, ROT0, "Konami", "Vendetta (World 2 Players ver. W)", 0 ) | |
| 734 | GAME( 1991, vendetta2pu, vendetta, vendetta, vendetta, vendetta, ROT0, "Konami", "Vendetta (Asia 2 Players ver. U)", 0 ) | |
| 735 | GAME( 1991, vendetta2pd, vendetta, vendetta, vendetta, vendetta, ROT0, "Konami", "Vendetta (Asia 2 Players ver. D)", 0 ) | |
| 736 | GAME( 1991, vendettaj, vendetta, vendetta, vendetta, vendetta, ROT0, "Konami", "Crime Fighters 2 (Japan 2 Players ver. P)", 0 ) | |
| 737 | GAME( 1991, esckids, 0, esckids, esckids, esckids, ROT0, "Konami", "Escape Kids (Asia, 4 Players)", 0 ) | |
| 738 | GAME( 1991, esckidsj, esckids, esckids, esckidsj, esckids, ROT0, "Konami", "Escape Kids (Japan, 2 Players)", 0 ) |
| r4470 | r4471 | |
|---|---|---|
| 4 | 4 | |
| 5 | 5 | Driver by Manuel Abadia <manu@teleline.es> |
| 6 | 6 | |
| 7 | updated by Peter Ferrie <peter.ferrie@gmail.com> | |
| 8 | ||
| 7 | 9 | Very similar to maniacsq and biomtoy but protected :_( |
| 8 | 10 | The DS5002FP has up to 128 KB undumped gameplay code |
| 11 | pf: its presence might be a distraction, since the game runs at least partially without it | |
| 12 | pf: but some gameplay bugs - sprite positioning is incorrect, no enemies, jump animation never completes | |
| 9 | 13 | |
| 10 | 14 | ***************************************************************************/ |
| 11 | 15 | |
| r4470 | r4471 | |
| 54 | 58 | GFXDECODE_END |
| 55 | 59 | |
| 56 | 60 | |
| 57 | static ADDRESS_MAP_START( thoop2_readmem, ADDRESS_SPACE_PROGRAM, 16 ) | |
| 58 | AM_RANGE(0x000000, 0x0fffff) AM_READ(SMH_ROM) /* ROM */ | |
| 59 | AM_RANGE(0x100000, 0x101fff) AM_READ(SMH_RAM) /* Video RAM */ | |
| 60 | AM_RANGE(0x200000, 0x2007ff) AM_READ(SMH_RAM) /* Palette */ | |
| 61 | AM_RANGE(0x440000, 0x440fff) AM_READ(SMH_RAM) /* Sprite RAM */ | |
| 62 | AM_RANGE(0x700000, 0x700001) AM_READ_PORT("DSW2") | |
| 63 | AM_RANGE(0x700002, 0x700003) AM_READ_PORT("DSW1") | |
| 64 | AM_RANGE(0x700004, 0x700005) AM_READ_PORT("P1") | |
| 65 | AM_RANGE(0x700006, 0x700007) AM_READ_PORT("P2") | |
| 66 | AM_RANGE(0x700008, 0x700009) AM_READ_PORT("SYSTEM") | |
| 67 | AM_RANGE(0x70000e, 0x70000f) AM_DEVREAD8("oki", okim6295_r, 0x00ff)/* OKI6295 status register */ | |
| 68 | AM_RANGE(0xfe0000, 0xfeffff) AM_READ(SMH_RAM) /* Work RAM (partially shared with DS5002FP) */ | |
| 69 | ADDRESS_MAP_END | |
| 70 | ||
| 71 | 61 | static WRITE16_HANDLER( OKIM6295_bankswitch_w ) |
| 72 | 62 | { |
| 73 | 63 | UINT8 *RAM = memory_region(space->machine, "oki"); |
| r4470 | r4471 | |
| 96 | 86 | /* 05b unknown */ |
| 97 | 87 | } |
| 98 | 88 | |
| 99 | static ADDRESS_MAP_START( thoop2_writemem, ADDRESS_SPACE_PROGRAM, 16 ) | |
| 100 | AM_RANGE(0x000000, 0x0fffff) AM_WRITE(SMH_ROM) /* ROM */ | |
| 101 | AM_RANGE(0x100000, 0x101fff) AM_WRITE(thoop2_vram_w) AM_BASE(&thoop2_videoram) /* Video RAM */ | |
| 102 | AM_RANGE(0x108000, 0x108007) AM_WRITE(SMH_RAM) AM_BASE(&thoop2_vregs) /* Video Registers */ | |
| 103 | AM_RANGE(0x10800c, 0x10800d) AM_WRITE(watchdog_reset16_w) /* INT 6 ACK/Watchdog timer */ | |
| 104 | AM_RANGE(0x200000, 0x2007ff) AM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE(&paletteram16)/* Palette */ | |
| 105 | AM_RANGE(0x440000, 0x440fff) AM_WRITE(SMH_RAM) AM_BASE(&thoop2_spriteram) /* Sprite RAM */ | |
| 106 | AM_RANGE(0x70000c, 0x70000d) AM_WRITE(OKIM6295_bankswitch_w) /* OKI6295 bankswitch */ | |
| 107 | AM_RANGE(0x70000e, 0x70000f) AM_DEVWRITE8("oki", okim6295_w, 0x00ff) /* OKI6295 data register */ | |
| 108 | AM_RANGE(0x70000a, 0x70005b) AM_WRITE(thoop2_coin_w) /* Coin Counters + Coin Lockout */ | |
| 109 | AM_RANGE(0xfe0000, 0xfeffff) AM_WRITE(SMH_RAM) /* Work RAM (partially shared with DS5002FP) */ | |
| 89 | /* pretend that it's there */ | |
| 90 | ||
| 91 | static READ16_HANDLER( DS5002FP_R ) | |
| 92 | { | |
| 93 | return 0x55aa; | |
| 94 | } | |
| 95 | ||
| 96 | static ADDRESS_MAP_START( thoop2_map, ADDRESS_SPACE_PROGRAM, 16 ) | |
| 97 | AM_RANGE(0x000000, 0x0fffff) AM_ROM /* ROM */ | |
| 98 | AM_RANGE(0x100000, 0x101fff) AM_RAM_WRITE(thoop2_vram_w) AM_BASE(&thoop2_videoram) /* Video RAM */ | |
| 99 | AM_RANGE(0x108000, 0x108007) AM_WRITEONLY AM_BASE(&thoop2_vregs) /* Video Registers */ | |
| 100 | AM_RANGE(0x10800c, 0x10800d) AM_WRITE(watchdog_reset16_w) /* INT 6 ACK/Watchdog timer */ | |
| 101 | AM_RANGE(0x200000, 0x2007ff) AM_RAM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE(&paletteram16)/* Palette */ | |
| 102 | AM_RANGE(0x440000, 0x440fff) AM_RAM AM_BASE(&thoop2_spriteram) /* Sprite RAM */ | |
| 103 | AM_RANGE(0x700000, 0x700001) AM_READ_PORT("DSW2") | |
| 104 | AM_RANGE(0x700002, 0x700003) AM_READ_PORT("DSW1") | |
| 105 | AM_RANGE(0x700004, 0x700005) AM_READ_PORT("P1") | |
| 106 | AM_RANGE(0x700006, 0x700007) AM_READ_PORT("P2") | |
| 107 | AM_RANGE(0x700008, 0x700009) AM_READ_PORT("SYSTEM") | |
| 108 | AM_RANGE(0x70000c, 0x70000d) AM_WRITE(OKIM6295_bankswitch_w) /* OKI6295 bankswitch */ | |
| 109 | AM_RANGE(0x70000e, 0x70000f) AM_DEVREADWRITE8("oki", okim6295_r, okim6295_w, 0x00ff) /* OKI6295 data register */ | |
| 110 | AM_RANGE(0x70000a, 0x70005b) AM_WRITE(thoop2_coin_w) /* Coin Counters + Coin Lockout */ | |
| 111 | AM_RANGE(0xfeff00, 0xfeff01) AM_READ(DS5002FP_R) | |
| 112 | AM_RANGE(0xfeff02, 0xfeff03) AM_WRITENOP /* pf: 0xfeff02 and 0xfeff03 need to remain zero always */ | |
| 113 | AM_RANGE(0xfe0000, 0xfeffff) AM_RAM /* Work RAM (partially shared with DS5002FP) */ | |
| 110 | 114 | ADDRESS_MAP_END |
| 111 | 115 | |
| 112 | 116 | |
| r4470 | r4471 | |
| 195 | 199 | |
| 196 | 200 | /* basic machine hardware */ |
| 197 | 201 | MDRV_CPU_ADD("maincpu", M68000,24000000/2) /* 12 MHz */ |
| 198 | MDRV_CPU_PROGRAM_MAP(thoop2_ | |
| 202 | MDRV_CPU_PROGRAM_MAP(thoop2_ | |
| 199 | 203 | MDRV_CPU_VBLANK_INT("screen", irq6_line_hold) |
| 200 | 204 | |
| 201 | 205 | /* video hardware */ |
| r4470 | r4471 | |
|---|---|---|
| 48 | 48 | #include "cpu/z80/z80.h" |
| 49 | 49 | #include "timeplt.h" |
| 50 | 50 | #include "audio/timeplt.h" |
| 51 | #include "konamipt.h" | |
| 51 | 52 | |
| 52 | ||
| 53 | 53 | #define MASTER_CLOCK XTAL_18_432MHz |
| 54 | 54 | |
| 55 | ||
| 56 | ||
| 57 | 55 | static UINT8 nmi_enable; |
| 58 | 56 | |
| 59 | 57 | |
| r4470 | r4471 | |
| 175 | 173 | |
| 176 | 174 | static INPUT_PORTS_START( timeplt ) |
| 177 | 175 | PORT_START("IN0") |
| 178 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) | |
| 179 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) | |
| 180 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN3 ) | |
| 181 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) | |
| 182 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 ) | |
| 183 | PORT_BIT( 0xe0, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 176 | KONAMI8_SYSTEM_UNK | |
| 184 | 177 | |
| 185 | 178 | PORT_START("IN1") |
| 186 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY | |
| 187 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY | |
| 188 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY | |
| 189 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY | |
| 190 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) | |
| 191 | PORT_BIT( 0xe0, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 179 | KONAMI8_MONO_B1_UNK | |
| 192 | 180 | |
| 193 | 181 | PORT_START("IN2") |
| 194 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL | |
| 195 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL | |
| 196 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL | |
| 197 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL | |
| 198 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL | |
| 199 | PORT_BIT( 0xe0, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 182 | KONAMI8_COCKTAIL_B1_UNK | |
| 200 | 183 | |
| 201 | 184 | PORT_START("DSW0") |
| 202 | PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) ) | |
| 203 | PORT_DIPSETTING( 0x02, DEF_STR( 4C_1C ) ) | |
| 204 | PORT_DIPSETTING( 0x05, DEF_STR( 3C_1C ) ) | |
| 205 | PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) ) | |
| 206 | PORT_DIPSETTING( 0x04, DEF_STR( 3C_2C ) ) | |
| 207 | PORT_DIPSETTING( 0x01, DEF_STR( 4C_3C ) ) | |
| 208 | PORT_DIPSETTING( 0x0f, DEF_STR( 1C_1C ) ) | |
| 209 | PORT_DIPSETTING( 0x03, DEF_STR( 3C_4C ) ) | |
| 210 | PORT_DIPSETTING( 0x07, DEF_STR( 2C_3C ) ) | |
| 211 | PORT_DIPSETTING( 0x0e, DEF_STR( 1C_2C ) ) | |
| 212 | PORT_DIPSETTING( 0x06, DEF_STR( 2C_5C ) ) | |
| 213 | PORT_DIPSETTING( 0x0d, DEF_STR( 1C_3C ) ) | |
| 214 | PORT_DIPSETTING( 0x0c, DEF_STR( 1C_4C ) ) | |
| 215 | PORT_DIPSETTING( 0x0b, DEF_STR( 1C_5C ) ) | |
| 216 | PORT_DIPSETTING( 0x0a, DEF_STR( 1C_6C ) ) | |
| 217 | PORT_DIPSETTING( 0x09, DEF_STR( 1C_7C ) ) | |
| 218 | PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) | |
| 219 | PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) ) | |
| 220 | PORT_DIPSETTING( 0x20, DEF_STR( 4C_1C ) ) | |
| 221 | PORT_DIPSETTING( 0x50, DEF_STR( 3C_1C ) ) | |
| 222 | PORT_DIPSETTING( 0x80, DEF_STR( 2C_1C ) ) | |
| 223 | PORT_DIPSETTING( 0x40, DEF_STR( 3C_2C ) ) | |
| 224 | PORT_DIPSETTING( 0x10, DEF_STR( 4C_3C ) ) | |
| 225 | PORT_DIPSETTING( 0xf0, DEF_STR( 1C_1C ) ) | |
| 226 | PORT_DIPSETTING( 0x30, DEF_STR( 3C_4C ) ) | |
| 227 | PORT_DIPSETTING( 0x70, DEF_STR( 2C_3C ) ) | |
| 228 | PORT_DIPSETTING( 0xe0, DEF_STR( 1C_2C ) ) | |
| 229 | PORT_DIPSETTING( 0x60, DEF_STR( 2C_5C ) ) | |
| 230 | PORT_DIPSETTING( 0xd0, DEF_STR( 1C_3C ) ) | |
| 231 | PORT_DIPSETTING( 0xc0, DEF_STR( 1C_4C ) ) | |
| 232 | PORT_DIPSETTING( 0xb0, DEF_STR( 1C_5C ) ) | |
| 233 | PORT_DIPSETTING( 0xa0, DEF_STR( 1C_6C ) ) | |
| 234 | PORT_DIPSETTING( 0x90, DEF_STR( 1C_7C ) ) | |
| 235 | PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) | |
| 185 | KONAMI_COINAGE(DEF_STR( Free_Play ), DEF_STR( Free_Play )) | |
| 236 | 186 | |
| 237 | 187 | PORT_START("DSW1") |
| 238 | 188 | PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) ) |
| r4470 | r4471 | |
|---|---|---|
| 1176 | 1176 | AM_RANGE(0xe06000, 0xe06003) AM_WRITE(atarigen_sound_upper32_w) |
| 1177 | 1177 | AM_RANGE(0xe08000, 0xe08003) AM_WRITE(latch_w) |
| 1178 | 1178 | AM_RANGE(0xe0c000, 0xe0c003) AM_WRITE(atarigen_video_int_ack32_w) |
| 1179 | AM_RANGE(0xe0e000, 0xe0e003) AM_WRITE | |
| 1179 | AM_RANGE(0xe0e000, 0xe0e003) AM_WRITE | |
| 1180 | 1180 | AM_RANGE(0xe80000, 0xe80003) AM_READ_PORT("P1_P2") |
| 1181 | 1181 | AM_RANGE(0xe82000, 0xe82003) AM_READ(special_port2_r) |
| 1182 | 1182 | AM_RANGE(0xe82004, 0xe82007) AM_READ(special_port3_r) |
| r4470 | r4471 | |
|---|---|---|
| 975 | 975 | PORT_BIT( 0x0f, IP_ACTIVE_LOW, IPT_UNKNOWN ) |
| 976 | 976 | |
| 977 | 977 | PORT_START("DSW") |
| 978 | PORT_DIPNAME( 0x80, 0x00, "Test Mode" ) | |
| 978 | PORT_DIPNAME( 0x80, 0x00, "Test Mode" ) PORT_DIPLOCATION("SW:1") | |
| 979 | 979 | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 980 | 980 | PORT_DIPSETTING( 0x80, DEF_STR( On ) ) |
| 981 | PORT_DIPNAME( 0x40, 0x00, "Disable Machine Init" ) | |
| 981 | PORT_DIPNAME( 0x40, 0x00, "Disable Machine Init" ) PORT_DIPLOCATION("SW:2") | |
| 982 | 982 | PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) |
| 983 | 983 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 984 | PORT_DIPNAME( 0x20, 0x20, "DIP3" ) | |
| 984 | PORT_DIPNAME( 0x20, 0x20, "DIP3" ) PORT_DIPLOCATION("SW:3") | |
| 985 | 985 | PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) |
| 986 | 986 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 987 | PORT_DIPNAME( 0x10, 0x10, "DIP4" ) | |
| 987 | PORT_DIPNAME( 0x10, 0x10, "DIP4" ) PORT_DIPLOCATION("SW:4") | |
| 988 | 988 | PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) |
| 989 | 989 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 990 | PORT_DIPNAME( 0x08, 0x08, "DIP5" ) | |
| 990 | PORT_DIPNAME( 0x08, 0x08, "DIP5" ) PORT_DIPLOCATION("SW:5") | |
| 991 | 991 | PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) |
| 992 | 992 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 993 | PORT_DIPNAME( 0x04, 0x04, "DIP6" ) | |
| 993 | PORT_DIPNAME( 0x04, 0x04, "DIP6" ) PORT_DIPLOCATION("SW:6") | |
| 994 | 994 | PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) |
| 995 | 995 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 996 | PORT_DIPNAME( 0x02, 0x02, "DIP7" ) | |
| 996 | PORT_DIPNAME( 0x02, 0x02, "DIP7" ) PORT_DIPLOCATION("SW:7") | |
| 997 | 997 | PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) |
| 998 | 998 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 999 | PORT_DIPNAME( 0x01, 0x01, "DIP8" ) | |
| 999 | PORT_DIPNAME( 0x01, 0x01, "DIP8" ) PORT_DIPLOCATION("SW:8") | |
| 1000 | 1000 | PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) |
| 1001 | 1001 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 1002 | 1002 |
| r4470 | r4471 | |
|---|---|---|
| 290 | 290 | AM_RANGE(0x101000, 0x101fff) AM_RAM AM_WRITE(sderby_md_videoram_w) AM_BASE(&sderby_md_videoram) /* mid */ |
| 291 | 291 | AM_RANGE(0x102000, 0x103fff) AM_RAM AM_WRITE(sderby_fg_videoram_w) AM_BASE(&sderby_fg_videoram) /* fg */ |
| 292 | 292 | AM_RANGE(0x104000, 0x10400b) AM_WRITE(sderby_scroll_w) |
| 293 | AM_RANGE(0x10400c, 0x10400d) AM_WRITE(SMH_NOP) /* ??? - check code at 0x000456 (executed once at startup) */ | |
| 294 | AM_RANGE(0x10400e, 0x10400f) AM_WRITE(SMH_NOP) /* ??? - check code at 0x000524 (executed once at startup) */ | |
| 293 | AM_RANGE(0x10400c, 0x10400d) AM_WRITENOP /* ??? - check code at 0x000456 (executed once at startup) */ | |
| 294 | AM_RANGE(0x10400e, 0x10400f) AM_WRITENOP /* ??? - check code at 0x000524 (executed once at startup) */ | |
| 295 | 295 | AM_RANGE(0x200000, 0x200fff) AM_RAM AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) |
| 296 | 296 | AM_RANGE(0x308000, 0x30800d) AM_READ(sderby_input_r) |
| 297 | 297 | AM_RANGE(0x308008, 0x308009) AM_WRITE(sderby_out_w) /* output port */ |
| 298 | 298 | AM_RANGE(0x30800e, 0x30800f) AM_DEVREADWRITE8("oki", okim6295_r, okim6295_w, 0x00ff) |
| 299 | 299 | AM_RANGE(0x380000, 0x380fff) AM_WRITE(paletteram16_RRRRRGGGGGBBBBBx_word_w) AM_BASE(&paletteram16) |
| 300 | AM_RANGE(0x500000, 0x500001) AM_WRITE | |
| 300 | AM_RANGE(0x500000, 0x500001) AM_WRITE | |
| 301 | 301 | AM_RANGE(0xd00000, 0xd007ff) AM_RAM AM_BASE(&generic_nvram16) AM_SIZE(&generic_nvram_size) |
| 302 | 302 | AM_RANGE(0xffc000, 0xffffff) AM_RAM |
| 303 | 303 | ADDRESS_MAP_END |
| r4470 | r4471 | |
| 308 | 308 | AM_RANGE(0x101000, 0x101fff) AM_RAM AM_WRITE(sderby_md_videoram_w) AM_BASE(&sderby_md_videoram) /* mid */ |
| 309 | 309 | AM_RANGE(0x102000, 0x103fff) AM_RAM AM_WRITE(sderby_fg_videoram_w) AM_BASE(&sderby_fg_videoram) /* fg */ |
| 310 | 310 | AM_RANGE(0x104000, 0x10400b) AM_WRITE(sderby_scroll_w) /* tilemaps offset control */ |
| 311 | AM_RANGE(0x10400c, 0x10400d) AM_WRITE(SMH_NOP) /* seems another video register. constantly used */ | |
| 312 | AM_RANGE(0x10400e, 0x10400f) AM_WRITE(SMH_NOP) /* seems another video register. constantly used */ | |
| 313 | AM_RANGE(0x104010, 0x105fff) AM_WRITE(SMH_NOP) /* unknown */ | |
| 314 | AM_RANGE(0x300000, 0x300001) AM_WRITE(SMH_NOP) /* unknown... write 0x01 in game, and 0x00 on reset */ | |
| 311 | AM_RANGE(0x10400c, 0x10400d) AM_WRITENOP /* seems another video register. constantly used */ | |
| 312 | AM_RANGE(0x10400e, 0x10400f) AM_WRITENOP /* seems another video register. constantly used */ | |
| 313 | AM_RANGE(0x104010, 0x105fff) AM_WRITENOP /* unknown */ | |
| 314 | AM_RANGE(0x300000, 0x300001) AM_WRITENOP /* unknown... write 0x01 in game, and 0x00 on reset */ | |
| 315 | 315 | AM_RANGE(0x308000, 0x30800d) AM_READ(sderby_input_r) |
| 316 | 316 | AM_RANGE(0x308008, 0x308009) AM_WRITE(scmatto_out_w) /* output port */ |
| 317 | 317 | AM_RANGE(0x30800e, 0x30800f) AM_DEVREADWRITE8("oki", okim6295_r, okim6295_w, 0x00ff) |
| 318 | 318 | AM_RANGE(0x380000, 0x380fff) AM_WRITE(paletteram16_RRRRRGGGGGBBBBBx_word_w) AM_BASE(&paletteram16) |
| 319 | 319 | AM_RANGE(0xd00000, 0xd001ff) AM_RAM |
| 320 | 320 | AM_RANGE(0x800000, 0x800fff) AM_RAM AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) |
| 321 | AM_RANGE(0x801000, 0x80100d) AM_WRITE | |
| 321 | AM_RANGE(0x801000, 0x80100d) AM_WRITE | |
| 322 | 322 | AM_RANGE(0x8f0000, 0x8f07ff) AM_RAM AM_BASE(&generic_nvram16) AM_SIZE(&generic_nvram_size) /* 16K Dallas DS1220Y-200 NVRAM */ |
| 323 | 323 | AM_RANGE(0x8fc000, 0x8fffff) AM_RAM |
| 324 | 324 | ADDRESS_MAP_END |
| r4470 | r4471 | |
| 330 | 330 | AM_RANGE(0x501000, 0x501fff) AM_RAM_WRITE(sderby_md_videoram_w) AM_BASE(&sderby_md_videoram) /* mid */ |
| 331 | 331 | AM_RANGE(0x502000, 0x503fff) AM_RAM_WRITE(sderby_fg_videoram_w) AM_BASE(&sderby_fg_videoram) /* fg */ |
| 332 | 332 | AM_RANGE(0x504000, 0x50400b) AM_RAM_WRITE(sderby_scroll_w) |
| 333 | AM_RANGE(0x50400e, 0x50400f) AM_WRITE | |
| 333 | AM_RANGE(0x50400e, 0x50400f) AM_WRITE | |
| 334 | 334 | |
| 335 | 335 | AM_RANGE(0x708000, 0x708009) AM_READ(roulette_input_r) |
| 336 | 336 | AM_RANGE(0x708006, 0x708007) AM_WRITE(roulette_out_w) |
| 337 | 337 | AM_RANGE(0x70800a, 0x70800b) AM_DEVREADWRITE8("oki", okim6295_r, okim6295_w, 0x00ff) |
| 338 | AM_RANGE(0x70800c, 0x70800d) AM_WRITE | |
| 338 | AM_RANGE(0x70800c, 0x70800d) AM_WRITE | |
| 339 | 339 | AM_RANGE(0x70800e, 0x70800f) AM_READWRITE(rprot_r, rprot_w) /* MCU communication */ |
| 340 | 340 | AM_RANGE(0x780000, 0x780fff) AM_WRITE(paletteram16_RRRRRGGGGGBBBBBx_word_w) AM_BASE(&paletteram16) |
| 341 | 341 |
| r4470 | r4471 | |
|---|---|---|
| 141 | 141 | AM_RANGE(0x000000, 0x07ffff) AM_WRITE(SMH_ROM) |
| 142 | 142 | AM_RANGE(0x100000, 0x100fff) AM_WRITE(paletteram16_RRRRRGGGGGBBBBBx_word_w) AM_BASE(&paletteram16) |
| 143 | 143 | AM_RANGE(0x200008, 0x200009) AM_WRITE(shangha3_blitter_go_w) |
| 144 | AM_RANGE(0x20000a, 0x20000b) AM_WRITE | |
| 144 | AM_RANGE(0x20000a, 0x20000b) AM_WRITE | |
| 145 | 145 | AM_RANGE(0x20000c, 0x20000d) AM_WRITE(shangha3_coinctrl_w) |
| 146 | 146 | AM_RANGE(0x20002e, 0x20002f) AM_DEVWRITE8("ay", ay8910_data_w, 0x00ff) |
| 147 | 147 | AM_RANGE(0x20003e, 0x20003f) AM_DEVWRITE8("ay", ay8910_address_w, 0x00ff) |
| r4470 | r4471 | |
| 167 | 167 | AM_RANGE(0x000000, 0x0fffff) AM_WRITE(SMH_ROM) |
| 168 | 168 | AM_RANGE(0x100000, 0x100fff) AM_WRITE(paletteram16_RRRRRGGGGGBBBBBx_word_w) AM_BASE(&paletteram16) |
| 169 | 169 | AM_RANGE(0x200008, 0x200009) AM_WRITE(shangha3_blitter_go_w) |
| 170 | AM_RANGE(0x20000a, 0x20000b) AM_WRITE | |
| 170 | AM_RANGE(0x20000a, 0x20000b) AM_WRITE | |
| 171 | 171 | AM_RANGE(0x20000c, 0x20000d) AM_WRITE(heberpop_coinctrl_w) |
| 172 | 172 | AM_RANGE(0x20000e, 0x20000f) AM_WRITE(heberpop_sound_command_w) |
| 173 | 173 | AM_RANGE(0x300000, 0x30ffff) AM_WRITE(SMH_RAM) AM_BASE(&shangha3_ram) AM_SIZE(&shangha3_ram_size) /* gfx & work ram */ |
| r4470 | r4471 | |
| 188 | 188 | static ADDRESS_MAP_START( blocken_writemem, ADDRESS_SPACE_PROGRAM, 16 ) |
| 189 | 189 | AM_RANGE(0x000000, 0x0fffff) AM_WRITE(SMH_ROM) |
| 190 | 190 | AM_RANGE(0x100008, 0x100009) AM_WRITE(shangha3_blitter_go_w) |
| 191 | AM_RANGE(0x10000a, 0x10000b) AM_WRITE | |
| 191 | AM_RANGE(0x10000a, 0x10000b) AM_WRITE | |
| 192 | 192 | AM_RANGE(0x10000c, 0x10000d) AM_WRITE(blocken_coinctrl_w) |
| 193 | 193 | AM_RANGE(0x10000e, 0x10000f) AM_WRITE(heberpop_sound_command_w) |
| 194 | 194 | AM_RANGE(0x200000, 0x200fff) AM_WRITE(paletteram16_RRRRRGGGGGBBBBBx_word_w) AM_BASE(&paletteram16) |
| r4470 | r4471 | |
|---|---|---|
| 107 | 107 | AM_RANGE(0xffffa0, 0xffffa1) AM_READ_PORT("P3") // used only by taotaida |
| 108 | 108 | AM_RANGE(0xffffa2, 0xffffa3) AM_READ_PORT("P4") // used only by taotaida |
| 109 | 109 | AM_RANGE(0xffff00, 0xffff0f) AM_WRITE(taotaido_tileregs_w) |
| 110 | AM_RANGE(0xffff10, 0xffff11) AM_WRITE(SMH_NOP) // unknown | |
| 111 | AM_RANGE(0xffff20, 0xffff21) AM_WRITE(SMH_NOP) // unknown - flip screen related | |
| 110 | AM_RANGE(0xffff10, 0xffff11) AM_WRITENOP // unknown | |
| 111 | AM_RANGE(0xffff20, 0xffff21) AM_WRITENOP // unknown - flip screen related | |
| 112 | 112 | AM_RANGE(0xffff40, 0xffff47) AM_WRITE(taotaido_sprite_character_bank_select_w) |
| 113 | 113 | AM_RANGE(0xffffc0, 0xffffc1) AM_WRITE(sound_command_w) // seems right |
| 114 | 114 | AM_RANGE(0xffffe0, 0xffffe1) AM_READ(pending_command_r) // guess - seems to be needed for all the sounds to work |
| r4470 | r4471 | |
|---|---|---|
| 74 | 74 | AM_RANGE(0x200000, 0x20ffff) AM_WRITE(gaelco2_vram_w) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) /* Video RAM */ |
| 75 | 75 | AM_RANGE(0x210000, 0x211fff) AM_WRITE(gaelco2_palette_w) AM_BASE(&paletteram16) /* Palette */ |
| 76 | 76 | AM_RANGE(0x218004, 0x218009) AM_WRITE(SMH_RAM) AM_BASE(&gaelco2_vregs) /* Video Registers */ |
| 77 | AM_RANGE(0x30004a, 0x30004b) AM_WRITE | |
| 77 | AM_RANGE(0x30004a, 0x30004b) AM_WRITE | |
| 78 | 78 | AM_RANGE(0x500000, 0x500001) AM_WRITE(gaelco2_coin_w) /* Coin lockout + counters */ |
| 79 | 79 | AM_RANGE(0xfe0000, 0xfeffff) AM_WRITE(SMH_RAM) /* Work RAM */ |
| 80 | 80 | ADDRESS_MAP_END |
| r4470 | r4471 | |
| 230 | 230 | AM_RANGE(0x210000, 0x211fff) AM_READ(SMH_RAM) /* Palette */ |
| 231 | 231 | AM_RANGE(0x218004, 0x218009) AM_READ(SMH_RAM) /* Video Registers */ |
| 232 | 232 | AM_RANGE(0x300000, 0x300001) AM_READ_PORT("P1") |
| 233 | AM_RANGE(0x300002, 0x300003) AM_READ | |
| 233 | AM_RANGE(0x300002, 0x300003) AM_READ | |
| 234 | 234 | AM_RANGE(0x300010, 0x300011) AM_READ_PORT("P2") |
| 235 | 235 | AM_RANGE(0x300020, 0x300021) AM_READ_PORT("COIN") |
| 236 | 236 | AM_RANGE(0x310000, 0x310001) AM_READ(p1_gun_x)/* Gun 1P X */ |
| r4470 | r4471 | |
| 246 | 246 | AM_RANGE(0x200000, 0x20ffff) AM_WRITE(gaelco2_vram_w) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) /* Video RAM */ |
| 247 | 247 | AM_RANGE(0x210000, 0x211fff) AM_WRITE(gaelco2_palette_w) AM_BASE(&paletteram16) /* Palette */ |
| 248 | 248 | AM_RANGE(0x218004, 0x218007) AM_WRITE(SMH_RAM) AM_BASE(&gaelco2_vregs) /* Video Registers */ |
| 249 | AM_RANGE(0x218008, 0x218009) AM_WRITE | |
| 249 | AM_RANGE(0x218008, 0x218009) AM_WRITE | |
| 250 | 250 | AM_RANGE(0x300000, 0x300003) AM_WRITE(gaelco2_coin2_w) /* Coin Counters */ |
| 251 | 251 | AM_RANGE(0x300008, 0x300009) AM_WRITE(gaelco2_eeprom_data_w) /* EEPROM data */ |
| 252 | 252 | AM_RANGE(0x30000a, 0x30000b) AM_WRITE(gaelco2_eeprom_sk_w) /* EEPROM serial clock */ |
| r4470 | r4471 | |
| 408 | 408 | AM_RANGE(0x210000, 0x211fff) AM_WRITE(gaelco2_palette_w) AM_BASE(&paletteram16) /* Palette */ |
| 409 | 409 | AM_RANGE(0x218004, 0x218009) AM_WRITE(SMH_RAM) AM_BASE(&gaelco2_vregs) /* Video Registers */ |
| 410 | 410 | AM_RANGE(0x500000, 0x500001) AM_WRITE(gaelco2_coin_w) /* Coin lockout + counters */ |
| 411 | AM_RANGE(0x500006, 0x500007) AM_WRITE | |
| 411 | AM_RANGE(0x500006, 0x500007) AM_WRITE | |
| 412 | 412 | AM_RANGE(0xfe0000, 0xfeffff) AM_WRITE(SMH_RAM) /* Work RAM */ |
| 413 | 413 | ADDRESS_MAP_END |
| 414 | 414 |
| r4470 | r4471 | |
|---|---|---|
| 97 | 97 | |
| 98 | 98 | static ADDRESS_MAP_START( homerun_iomap, ADDRESS_SPACE_IO, 8 ) |
| 99 | 99 | ADDRESS_MAP_GLOBAL_MASK(0xff) |
| 100 | AM_RANGE(0x10, 0x10) AM_WRITE(SMH_NOP) /* ?? */ | |
| 101 | AM_RANGE(0x20, 0x20) AM_WRITE(SMH_NOP) /* ?? */ | |
| 100 | AM_RANGE(0x10, 0x10) AM_WRITENOP /* ?? */ | |
| 101 | AM_RANGE(0x20, 0x20) AM_WRITENOP /* ?? */ | |
| 102 | 102 | AM_RANGE(0x30, 0x33) AM_DEVREADWRITE("ppi8255", ppi8255_r, ppi8255_w) |
| 103 | 103 | AM_RANGE(0x40, 0x40) AM_READ_PORT("IN0") |
| 104 | 104 | AM_RANGE(0x50, 0x50) AM_READ_PORT("IN2") |
| r4470 | r4471 | |
|---|---|---|
| 200 | 200 | AM_RANGE(0x1105, 0x1105) AM_READ(soundkludge_r) /* cures speech */ |
| 201 | 201 | AM_RANGE(0x1000, 0x13ff) AM_DEVREADWRITE("namco", namcos1_cus30_r,namcos1_cus30_w) AM_BASE(&namco_wavedata)/* PSG device, shared RAM */ |
| 202 | 202 | AM_RANGE(0x8000, 0xbfff) AM_READ(SMH_ROM) /* MCU external ROM */ |
| 203 | AM_RANGE(0x8000, 0x8000) AM_WRITE(SMH_NOP) /* watchdog reset? */ | |
| 204 | AM_RANGE(0x8800, 0x8800) AM_WRITE(SMH_NOP) /* irq acknoledge? */ | |
| 203 | AM_RANGE(0x8000, 0x8000) AM_WRITENOP /* watchdog reset? */ | |
| 204 | AM_RANGE(0x8800, 0x8800) AM_WRITENOP /* irq acknoledge? */ | |
| 205 | 205 | AM_RANGE(0xc000, 0xc7ff) AM_RAM /* RAM */ |
| 206 | 206 | AM_RANGE(0xf000, 0xffff) AM_READ(SMH_ROM) /* MCU internal ROM */ |
| 207 | 207 | ADDRESS_MAP_END |
| r4470 | r4471 | |
|---|---|---|
| 634 | 634 | static MACHINE_DRIVER_START( exctsccr ) |
| 635 | 635 | |
| 636 | 636 | /* basic machine hardware */ |
| 637 | MDRV_CPU_ADD("maincpu", Z80, 4 | |
| 637 | MDRV_CPU_ADD("maincpu", Z80, XTAL_18_432 | |
| 638 | 638 | MDRV_CPU_PROGRAM_MAP(exctsccr_main_map,0) |
| 639 | 639 | MDRV_CPU_VBLANK_INT("screen", irq0_line_assert) |
| 640 | 640 | |
| 641 | MDRV_CPU_ADD("audiocpu", Z80, | |
| 641 | MDRV_CPU_ADD("audiocpu", Z80, XTAL_1 | |
| 642 | 642 | MDRV_CPU_PROGRAM_MAP(exctsccr_sub_map,0) |
| 643 | 643 | MDRV_CPU_IO_MAP(exctsccr_sound_io_map,0) |
| 644 | 644 | MDRV_CPU_PERIODIC_INT(nmi_line_pulse, 4000) /* 4 kHz, updates the dac */ |
| r4470 | r4471 | |
| 667 | 667 | /* sound hardware */ |
| 668 | 668 | MDRV_SPEAKER_STANDARD_MONO("mono") |
| 669 | 669 | |
| 670 | MDRV_SOUND_ADD("ay1", AY8910, 1500000) | |
| 670 | /* AY (melody) clock is specified by VR (0.9 - 3.9 MHz), which is it? */ | |
| 671 | MDRV_SOUND_ADD("ay1", AY8910, XTAL_14_31818MHz/8) | |
| 671 | 672 | MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.08) |
| 672 | 673 | |
| 673 | MDRV_SOUND_ADD("ay2", AY8910, 1 | |
| 674 | MDRV_SOUND_ADD("ay2", AY8910, XTAL_14_31818MHz/8) | |
| 674 | 675 | MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.08) |
| 675 | 676 | |
| 676 | MDRV_SOUND_ADD("ay3", AY8910, 1 | |
| 677 | MDRV_SOUND_ADD("ay3", AY8910, XTAL_14_31818MHz/8) | |
| 677 | 678 | MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.08) |
| 678 | 679 | |
| 679 | MDRV_SOUND_ADD("ay4", AY8910, 1 | |
| 680 | MDRV_SOUND_ADD("ay4", AY8910, XTAL_14_31818MHz/8) | |
| 680 | 681 | MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.08) |
| 681 | 682 | |
| 682 | 683 | MDRV_SOUND_ADD("dac1", DAC, 0) |
| r4470 | r4471 | |
| 931 | 932 | ROM_LOAD( "prom2.8r", 0x0120, 0x0100, CRC(8a9c0edf) SHA1(8aad387e9409cff0eeb42eeb57e9ea88770a8c9a) ) /* lookup table */ |
| 932 | 933 | ROM_END |
| 933 | 934 | |
| 935 | ROM_START( exctsccj ) | |
| 936 | ROM_REGION( 0x10000, "maincpu", 0 ) | |
| 937 | ROM_LOAD( "1.10g", 0x0000, 0x2000, CRC(d1bfdf75) SHA1(a4a9bb340712401b1d24705c26d996a798776d4f) ) | |
| 938 | ROM_LOAD( "2.10h", 0x2000, 0x2000, CRC(5c61f0fe) SHA1(8c6751b80f89d8744d3eaa2a6da2cafdde968ed2) ) | |
| 939 | ROM_LOAD( "3.10j", 0x4000, 0x2000, CRC(8f213b10) SHA1(5bffaee2725fe34b0614fcf1b4dc1c9a2f2df36c) ) | |
| 940 | ||
| 941 | ROM_REGION( 0x10000, "audiocpu", 0 ) | |
| 942 | ROM_LOAD( "0.6h", 0x0000, 0x2000, CRC(548b08a2) SHA1(4cdcc67e34e56cbac5d07e9603650073de0bb5d1) ) | |
| 943 | ROM_LOAD( "9_f6.bin", 0x2000, 0x2000, CRC(639998f5) SHA1(c4ff5e5e75d53dea38449f323186d08d5b57bf90) ) | |
| 944 | ROM_LOAD( "8.6d", 0x4000, 0x2000, CRC(b6b209a5) SHA1(e49a0db65b29337ac6b919237067b1990f2233ab) ) | |
| 945 | ROM_LOAD( "7.6c", 0x6000, 0x2000, CRC(8856452a) SHA1(4494c225c9df97da09c180caadb4dda49d0d5392) ) | |
| 946 | ||
| 947 | ROM_REGION( 0x04000, "gfx1", ROMREGION_DISPOSE ) // 3bpp chars + sprites: rearranged by DRIVER_INIT to leave only chars | |
| 948 | ROM_LOAD( "4.5a", 0x0000, 0x2000, CRC(c4259307) SHA1(7bd4e229a5e1a5136826a57aa61810fcdf9c5027) ) /* planes 0,1 */ | |
| 949 | ROM_LOAD( "6.5c", 0x2000, 0x2000, CRC(cca53367) SHA1(f06ebf2ab8f8f10cfe118af490017972990e3073) ) /* plane 3 */ | |
| 950 | ||
| 951 | ROM_REGION( 0x04000, "gfx2", ROMREGION_DISPOSE ) // 3bpp chars + sprites: rearranged by DRIVER_INIT to leave only sprites | |
| 952 | ROM_LOAD( "5.5b", 0x0000, 0x2000, CRC(851d1a18) SHA1(2cfad530c8f9d95094fd0aacd2e0965b0300898c) ) /* planes 0,1 */ | |
| 953 | ||
| 954 | ROM_REGION( 0x02000, "gfx3", ROMREGION_DISPOSE ) // 4bpp sprites | |
| 955 | ROM_LOAD( "2.5k", 0x0000, 0x1000, CRC(7f9cace2) SHA1(bf05a31716f3ca1c2fd1034cd1f39e2d21cdaed3) ) | |
| 956 | ROM_LOAD( "3.5l", 0x1000, 0x1000, CRC(db2d9e0d) SHA1(6ec09a47f7aea6bf31eb0ee78f44012f4d92de8a) ) | |
| 957 | ||
| 958 | ROM_REGION( 0x0220, "proms", 0 ) | |
| 959 | ROM_LOAD( "prom1.e1", 0x0000, 0x0020, CRC(d9b10bf0) SHA1(bc1263331968f4bf37eb70ec4f56a8cb763c29d2) ) /* palette */ | |
| 960 | ROM_LOAD( "prom3.k5", 0x0020, 0x0100, CRC(b5db1c2c) SHA1(900aaaac6b674a9c5c7b7804a4b0c3d5cce761aa) ) /* lookup table */ | |
| 961 | ROM_LOAD( "prom2.8r", 0x0120, 0x0100, CRC(8a9c0edf) SHA1(8aad387e9409cff0eeb42eeb57e9ea88770a8c9a) ) /* lookup table */ | |
| 962 | ROM_END | |
| 963 | ||
| 934 | 964 | /* |
| 935 | 965 | The Kazutomi bootleg board is a conversion from Champion Baseball: |
| 936 | 966 | Alpha denshi co. LTD made in Japan |
| r4470 | r4471 | |
| 1069 | 1099 | |
| 1070 | 1100 | GAME( 1983, exctsccr, 0, exctsccr, exctsccr, exctsccr, ROT270, "Alpha Denshi Co.", "Exciting Soccer", 0 ) |
| 1071 | 1101 | GAME( 1983, exctscca, exctsccr, exctsccr, exctsccr, exctsccr, ROT270, "Alpha Denshi Co.", "Exciting Soccer (alternate music)", 0 ) |
| 1102 | GAME( 1983, exctsccj, exctsccr, exctsccr, exctsccr, exctsccr, ROT270, "Alpha Denshi Co.", "Exciting Soccer (Japan)", 0 ) | |
| 1072 | 1103 | GAME( 1983, exctsccb, exctsccr, exctsccb, exctsccr, exctsccr, ROT270, "bootleg", "Exciting Soccer (bootleg)", 0 ) |
| 1073 | 1104 | GAME( 1984, exctscc2, 0, exctsccr, exctsccr, exctsccr, ROT270, "Alpha Denshi Co.", "Exciting Soccer II", 0 ) |
| r4470 | r4471 | |
|---|---|---|
| 326 | 326 | |
| 327 | 327 | |
| 328 | 328 | |
| 329 | GAME( 1984, ssozumo, 0, ssozumo, ssozumo, 0, ROT270, "Technos", "Syusse Oozumou (Japan)", 0 ) | |
| 329 | GAME( 1984, ssozumo, 0, ssozumo, ssozumo, 0, ROT270, "Technos Japan", "Syusse Oozumou (Japan)", 0 ) |
| r4470 | r4471 | |
|---|---|---|
| 630 | 630 | ADDRESS_MAP_GLOBAL_MASK(0xff) |
| 631 | 631 | SSIO_INPUT_PORTS |
| 632 | 632 | AM_RANGE(0xe0, 0xe0) AM_WRITE(watchdog_reset_w) |
| 633 | AM_RANGE(0xe8, 0xe8) AM_WRITE | |
| 633 | AM_RANGE(0xe8, 0xe8) AM_WRITE | |
| 634 | 634 | AM_RANGE(0xf0, 0xf3) AM_DEVREADWRITE("ctc", z80ctc_r, z80ctc_w) |
| 635 | 635 | ADDRESS_MAP_END |
| 636 | 636 | |
| r4470 | r4471 | |
| 657 | 657 | ADDRESS_MAP_GLOBAL_MASK(0xff) |
| 658 | 658 | SSIO_INPUT_PORTS |
| 659 | 659 | AM_RANGE(0xe0, 0xe0) AM_WRITE(watchdog_reset_w) |
| 660 | AM_RANGE(0xe8, 0xe8) AM_WRITE | |
| 660 | AM_RANGE(0xe8, 0xe8) AM_WRITE | |
| 661 | 661 | AM_RANGE(0xf0, 0xf3) AM_DEVREADWRITE("ctc", z80ctc_r, z80ctc_w) |
| 662 | 662 | ADDRESS_MAP_END |
| 663 | 663 | |
| r4470 | r4471 | |
| 685 | 685 | ADDRESS_MAP_GLOBAL_MASK(0xff) |
| 686 | 686 | SSIO_INPUT_PORTS |
| 687 | 687 | AM_RANGE(0xe0, 0xe0) AM_WRITE(watchdog_reset_w) |
| 688 | AM_RANGE(0xe8, 0xe8) AM_WRITE | |
| 688 | AM_RANGE(0xe8, 0xe8) AM_WRITE | |
| 689 | 689 | AM_RANGE(0xf0, 0xf3) AM_DEVREADWRITE("ctc", z80ctc_r, z80ctc_w) |
| 690 | 690 | ADDRESS_MAP_END |
| 691 | 691 |
| r4470 | r4471 | |
|---|---|---|
| 179 | 179 | AM_RANGE(0x08, 0x09) AM_READ(m107_sound_status_r) /* answer from sound CPU */ |
| 180 | 180 | AM_RANGE(0x00, 0x01) AM_WRITE(m107_soundlatch_w) |
| 181 | 181 | AM_RANGE(0x02, 0x03) AM_WRITE(m107_coincounter_w) |
| 182 | AM_RANGE(0x04, 0x05) AM_WRITE | |
| 182 | AM_RANGE(0x04, 0x05) AM_WRITE | |
| 183 | 183 | AM_RANGE(0x06, 0x07) AM_WRITE(bankswitch_w) |
| 184 | 184 | AM_RANGE(0x80, 0x9f) AM_WRITE(m107_control_w) |
| 185 | AM_RANGE(0xa0, 0xaf) AM_WRITE | |
| 185 | AM_RANGE(0xa0, 0xaf) AM_WRITE | |
| 186 | 186 | AM_RANGE(0xb0, 0xb1) AM_WRITE(m107_spritebuffer_w) |
| 187 | AM_RANGE(0xc0, 0xc3) AM_READ | |
| 187 | AM_RANGE(0xc0, 0xc3) AM_READ | |
| 188 | 188 | ADDRESS_MAP_END |
| 189 | 189 | |
| 190 | 190 | /******************************************************************************/ |
| 191 | 191 | |
| 192 | 192 | static ADDRESS_MAP_START( sound_map, ADDRESS_SPACE_PROGRAM, 16 ) |
| 193 | 193 | AM_RANGE(0x00000, 0x1ffff) AM_ROM |
| 194 | AM_RANGE(0x9ff00, 0x9ffff) AM_WRITE | |
| 194 | AM_RANGE(0x9ff00, 0x9ffff) AM_WRITE | |
| 195 | 195 | AM_RANGE(0xa0000, 0xa3fff) AM_RAM |
| 196 | 196 | AM_RANGE(0xa8000, 0xa803f) AM_DEVREADWRITE8("irem", irem_ga20_r, irem_ga20_w, 0x00ff) |
| 197 | 197 | AM_RANGE(0xa8040, 0xa8043) AM_DEVREADWRITE8("ym", ym2151_r, ym2151_w, 0x00ff) |
| r4470 | r4471 | |
|---|---|---|
| 411 | 411 | AM_RANGE(0x4000, 0x7fff) AM_READ(SMH_BANK10) |
| 412 | 412 | AM_RANGE(0xc000, 0xdfff) AM_READ(SMH_RAM) |
| 413 | 413 | AM_RANGE(0xe000, 0xe003) AM_DEVREAD("ym", ym2610_r) |
| 414 | AM_RANGE(0xe200, 0xe200) AM_READ | |
| 414 | AM_RANGE(0xe200, 0xe200) AM_READ | |
| 415 | 415 | AM_RANGE(0xe201, 0xe201) AM_READ(taitosound_slave_comm_r) |
| 416 | AM_RANGE(0xea00, 0xea00) AM_READ | |
| 416 | AM_RANGE(0xea00, 0xea00) AM_READ | |
| 417 | 417 | ADDRESS_MAP_END |
| 418 | 418 | |
| 419 | 419 | static ADDRESS_MAP_START( z80_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 ) |
| r4470 | r4471 | |
| 423 | 423 | AM_RANGE(0xe200, 0xe200) AM_WRITE(taitosound_slave_port_w) |
| 424 | 424 | AM_RANGE(0xe201, 0xe201) AM_WRITE(taitosound_slave_comm_w) |
| 425 | 425 | AM_RANGE(0xe400, 0xe403) AM_WRITE(ninjaw_pancontrol) /* pan */ |
| 426 | AM_RANGE(0xee00, 0xee00) AM_WRITE(SMH_NOP) /* ? */ | |
| 427 | AM_RANGE(0xf000, 0xf000) AM_WRITE(SMH_NOP) /* ? */ | |
| 426 | AM_RANGE(0xee00, 0xee00) AM_WRITENOP /* ? */ | |
| 427 | AM_RANGE(0xf000, 0xf000) AM_WRITENOP /* ? */ | |
| 428 | 428 | AM_RANGE(0xf200, 0xf200) AM_WRITE(sound_bankswitch_w) |
| 429 | 429 | ADDRESS_MAP_END |
| 430 | 430 |
| r4470 | r4471 | |
|---|---|---|
| 76 | 76 | AM_RANGE(0x3000, 0x3000) AM_WRITE(SMH_RAM) AM_BASE(&matmania_pageselect) |
| 77 | 77 | AM_RANGE(0x3010, 0x3010) AM_WRITE(matmania_sh_command_w) |
| 78 | 78 | AM_RANGE(0x3020, 0x3020) AM_WRITE(SMH_RAM) AM_BASE(&matmania_scroll) |
| 79 | // AM_RANGE(0x3030, 0x3030) AM_WRITE | |
| 79 | // AM_RANGE(0x3030, 0x3030) AM_WRITE | |
| 80 | 80 | AM_RANGE(0x3050, 0x307f) AM_WRITE(matmania_paletteram_w) AM_BASE(&paletteram) |
| 81 | 81 | AM_RANGE(0x4000, 0xffff) AM_WRITE(SMH_ROM) |
| 82 | 82 | ADDRESS_MAP_END |
| r4470 | r4471 | |
| 106 | 106 | AM_RANGE(0x3000, 0x3000) AM_WRITE(SMH_RAM) AM_BASE(&matmania_pageselect) |
| 107 | 107 | AM_RANGE(0x3010, 0x3010) AM_WRITE(maniach_sh_command_w) |
| 108 | 108 | AM_RANGE(0x3020, 0x3020) AM_WRITE(SMH_RAM) AM_BASE(&matmania_scroll) |
| 109 | AM_RANGE(0x3030, 0x3030) AM_WRITE | |
| 109 | AM_RANGE(0x3030, 0x3030) AM_WRITE | |
| 110 | 110 | AM_RANGE(0x3040, 0x3040) AM_WRITE(maniach_mcu_w) |
| 111 | 111 | AM_RANGE(0x3050, 0x307f) AM_WRITE(matmania_paletteram_w) AM_BASE(&paletteram) |
| 112 | 112 | AM_RANGE(0x4000, 0xffff) AM_WRITE(SMH_ROM) |
| r4470 | r4471 | |
| 633 | 633 | |
| 634 | 634 | |
| 635 | 635 | |
| 636 | GAME( 1985, matmania, 0, matmania, matmania, 0, ROT270, "Technos (Taito America license)", "Mat Mania", 0 ) | |
| 637 | GAME( 1985, excthour, matmania, matmania, maniach, 0, ROT270, "Technos (Taito license)", "Exciting Hour", 0 ) | |
| 638 | GAME( 1986, maniach, 0, maniach, maniach, 0, ROT270, "Technos (Taito America license)", "Mania Challenge (set 1)", 0 ) | |
| 639 | GAME( 1986, maniach2, maniach, maniach, maniach, 0, ROT270, "Technos (Taito America license)", "Mania Challenge (set 2)" , 0) /* earlier version? */ | |
| 636 | GAME( 1985, matmania, 0, matmania, matmania, 0, ROT270, "Technos Japan (Taito America license)", "Mat Mania", 0 ) | |
| 637 | GAME( 1985, excthour, matmania, matmania, maniach, 0, ROT270, "Technos Japan (Taito license)", "Exciting Hour", 0 ) | |
| 638 | GAME( 1986, maniach, 0, maniach, maniach, 0, ROT270, "Technos Japan (Taito America license)", "Mania Challenge (set 1)", 0 ) | |
| 639 | GAME( 1986, maniach2, maniach, maniach, maniach, 0, ROT270, "Technos Japan (Taito America license)", "Mania Challenge (set 2)" , 0) /* earlier version? */ |
| r4470 | r4471 | |
|---|---|---|
| 59 | 59 | #include "sound/k007232.h" |
| 60 | 60 | #include "sound/upd7759.h" |
| 61 | 61 | #include "includes/twin16.h" |
| 62 | #include "konamipt.h" | |
| 62 | 63 | |
| 63 | 64 | UINT16 twin16_custom_video; |
| 64 | 65 | UINT16 *twin16_gfx_rom; |
| r4470 | r4471 | |
| 273 | 274 | AM_RANGE(0x044000, 0x04ffff) AM_RAM // miaj |
| 274 | 275 | AM_RANGE(0x060000, 0x063fff) AM_RAM |
| 275 | 276 | AM_RANGE(0x080000, 0x080fff) AM_RAM_WRITE(twin16_paletteram_word_w) AM_BASE(&paletteram16) |
| 276 | AM_RANGE(0x081000, 0x081fff) AM_WRITE | |
| 277 | AM_RANGE(0x081000, 0x081fff) AM_WRITE | |
| 277 | 278 | AM_RANGE(0x0a0000, 0x0a001b) AM_READ(twin16_input_r) |
| 278 | 279 | AM_RANGE(0x0a0000, 0x0a0001) AM_WRITE(twin16_CPUA_register_w) |
| 279 | 280 | AM_RANGE(0x0a0008, 0x0a0009) AM_WRITE(sound_command_w) |
| r4470 | r4471 | |
| 323 | 324 | |
| 324 | 325 | /* Input Ports */ |
| 325 | 326 | |
| 326 | #define KONAMI_TWIN_COINAGE PORT_START("DSW1") \ | |
| 327 | PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) ) \ | |
| 328 | PORT_DIPSETTING( 0x02, DEF_STR( 4C_1C ) ) \ | |
| 329 | PORT_DIPSETTING( 0x05, DEF_STR( 3C_1C ) ) \ | |
| 330 | PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) ) \ | |
| 331 | PORT_DIPSETTING( 0x04, DEF_STR( 3C_2C ) ) \ | |
| 332 | PORT_DIPSETTING( 0x01, DEF_STR( 4C_3C ) ) \ | |
| 333 | PORT_DIPSETTING( 0x0f, DEF_STR( 1C_1C ) ) \ | |
| 334 | PORT_DIPSETTING( 0x03, DEF_STR( 3C_4C ) ) \ | |
| 335 | PORT_DIPSETTING( 0x07, DEF_STR( 2C_3C ) ) \ | |
| 336 | PORT_DIPSETTING( 0x0e, DEF_STR( 1C_2C ) ) \ | |
| 337 | PORT_DIPSETTING( 0x06, DEF_STR( 2C_5C ) ) \ | |
| 338 | PORT_DIPSETTING( 0x0d, DEF_STR( 1C_3C ) ) \ | |
| 339 | PORT_DIPSETTING( 0x0c, DEF_STR( 1C_4C ) ) \ | |
| 340 | PORT_DIPSETTING( 0x0b, DEF_STR( 1C_5C ) ) \ | |
| 341 | PORT_DIPSETTING( 0x0a, DEF_STR( 1C_6C ) ) \ | |
| 342 | PORT_DIPSETTING( 0x09, DEF_STR( 1C_7C ) ) \ | |
| 343 | PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) \ | |
| 344 | PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) ) \ | |
| 345 | PORT_DIPSETTING( 0x20, DEF_STR( 4C_1C ) ) \ | |
| 346 | PORT_DIPSETTING( 0x50, DEF_STR( 3C_1C ) ) \ | |
| 347 | PORT_DIPSETTING( 0x80, DEF_STR( 2C_1C ) ) \ | |
| 348 | PORT_DIPSETTING( 0x40, DEF_STR( 3C_2C ) ) \ | |
| 349 | PORT_DIPSETTING( 0x10, DEF_STR( 4C_3C ) ) \ | |
| 350 | PORT_DIPSETTING( 0xf0, DEF_STR( 1C_1C ) ) \ | |
| 351 | PORT_DIPSETTING( 0x30, DEF_STR( 3C_4C ) ) \ | |
| 352 | PORT_DIPSETTING( 0x70, DEF_STR( 2C_3C ) ) \ | |
| 353 | PORT_DIPSETTING( 0xe0, DEF_STR( 1C_2C ) ) \ | |
| 354 | PORT_DIPSETTING( 0x60, DEF_STR( 2C_5C ) ) \ | |
| 355 | PORT_DIPSETTING( 0xd0, DEF_STR( 1C_3C ) ) \ | |
| 356 | PORT_DIPSETTING( 0xc0, DEF_STR( 1C_4C ) ) \ | |
| 357 | PORT_DIPSETTING( 0xb0, DEF_STR( 1C_5C ) ) \ | |
| 358 | PORT_DIPSETTING( 0xa0, DEF_STR( 1C_6C ) ) \ | |
| 359 | PORT_DIPSETTING( 0x90, DEF_STR( 1C_7C ) ) \ | |
| 360 | PORT_DIPSETTING( 0x00, "Disabled" ) | |
| 361 | ||
| 362 | 327 | static INPUT_PORTS_START( devilw ) |
| 363 | 328 | PORT_START("SYSTEM") /* 0xa0001 */ |
| 364 | 329 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) |
| r4470 | r4471 | |
| 371 | 336 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 372 | 337 | |
| 373 | 338 | PORT_START("P1") /* 0xa0003 */ |
| 374 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) | |
| 375 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) | |
| 376 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) | |
| 377 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) | |
| 378 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) // start/powerup | |
| 379 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) // attack | |
| 380 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) // jump | |
| 381 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) | |
| 339 | KONAMI8_B123_UNK(1) // button1 = start/powerup, button2 = attack, button3 = jump | |
| 382 | 340 | |
| 383 | 341 | PORT_START("P2") /* 0xa0005 */ |
| 384 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) | |
| 385 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) | |
| 386 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) | |
| 387 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) | |
| 388 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) | |
| 389 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) | |
| 390 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) | |
| 391 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) | |
| 342 | KONAMI8_B123_UNK(2) | |
| 392 | 343 | |
| 393 | 344 | PORT_START("P3") /* 0xa0007 */ |
| 394 | 345 | PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 395 | 346 | |
| 396 | KONAMI_TWIN_COINAGE | |
| 347 | PORT_START("DSW1") | |
| 348 | KONAMI_COINAGE(DEF_STR( Free_Play ), "Invalid") | |
| 349 | /* "Invalid" = both coin slots disabled */ | |
| 397 | 350 | |
| 398 | PORT_START("DSW2") | |
| 351 | PORT_START("DSW2") | |
| 399 | 352 | PORT_DIPNAME( 0x03, 0x02, DEF_STR( Lives ) ) |
| 400 | 353 | PORT_DIPSETTING( 0x03, "2" ) |
| 401 | 354 | PORT_DIPSETTING( 0x02, "3" ) |
| r4470 | r4471 | |
| 411 | 364 | PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) |
| 412 | 365 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 413 | 366 | |
| 414 | PORT_START("DSW3") /* | |
| 367 | PORT_START("DSW3") /* | |
| 415 | 368 | PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) ) |
| 416 | 369 | PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) |
| 417 | 370 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| r4470 | r4471 | |
| 433 | 386 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SERVICE2 ) |
| 434 | 387 | |
| 435 | 388 | PORT_START("P1") /* 0xa0003 */ |
| 436 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) | |
| 437 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) | |
| 438 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) | |
| 439 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) | |
| 440 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) // start/jump | |
| 441 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) // attack | |
| 442 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) // dynamite | |
| 389 | KONAMI8_B123(1) // button1 = start/jump, button2 = attack, button3 = dynamite | |
| 443 | 390 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SERVICE3 ) |
| 444 | 391 | |
| 445 | 392 | PORT_START("P2") /* 0xa0005 */ |
| 446 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) | |
| 447 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) | |
| 448 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) | |
| 449 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) | |
| 450 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) | |
| 451 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) | |
| 452 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) | |
| 453 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) | |
| 393 | KONAMI8_B123_UNK(2) | |
| 454 | 394 | |
| 455 | 395 | PORT_START("P3") /* 0xa0007 */ |
| 456 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(3) | |
| 457 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(3) | |
| 458 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(3) | |
| 459 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(3) | |
| 460 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3) | |
| 461 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3) | |
| 462 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(3) | |
| 463 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) | |
| 396 | KONAMI8_B123_UNK(3) | |
| 464 | 397 | |
| 465 | 398 | PORT_START("DSW1") /* Coinage */ |
| 466 | 399 | PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coinage ) ) |
| r4470 | r4471 | |
| 482 | 415 | PORT_DIPSETTING( 0x00, "Invalid" ) |
| 483 | 416 | PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED) |
| 484 | 417 | |
| 485 | PORT_START("DSW2") | |
| 418 | PORT_START("DSW2") | |
| 486 | 419 | PORT_DIPNAME( 0x03, 0x02, DEF_STR( Lives ) ) |
| 487 | 420 | PORT_DIPSETTING( 0x03, "2" ) |
| 488 | 421 | PORT_DIPSETTING( 0x02, "3" ) |
| r4470 | r4471 | |
| 498 | 431 | PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) |
| 499 | 432 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 500 | 433 | |
| 501 | PORT_START("DSW3") /* | |
| 434 | PORT_START("DSW3") /* | |
| 502 | 435 | PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) ) |
| 503 | 436 | PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) |
| 504 | 437 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| r4470 | r4471 | |
| 520 | 453 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 521 | 454 | |
| 522 | 455 | PORT_START("P1") /* 0xa0003 */ |
| 523 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) | |
| 524 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) | |
| 525 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) | |
| 526 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) | |
| 527 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) // powerup | |
| 528 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) // shoot | |
| 529 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) // missile | |
| 530 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) | |
| 456 | KONAMI8_B123_UNK(1) // button1 = powerup, button2 = shoot, button3 = missile | |
| 531 | 457 | |
| 532 | 458 | PORT_START("P2") /* 0xa0005 */ |
| 533 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) | |
| 534 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) | |
| 535 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) | |
| 536 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) | |
| 537 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) | |
| 538 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) | |
| 539 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) | |
| 540 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) | |
| 459 | KONAMI8_B123_UNK(2) | |
| 541 | 460 | |
| 542 | 461 | PORT_START("P3") /* 0xa0007 */ |
| 543 | 462 | PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 544 | 463 | |
| 545 | KONAMI_TWIN_COINAGE | |
| 464 | PORT_START("DSW1") | |
| 465 | KONAMI_COINAGE(DEF_STR( Free_Play ), DEF_STR( None )) | |
| 466 | /* "None" = coin slot B disabled */ | |
| 546 | 467 | |
| 547 | PORT_START("DSW2") | |
| 468 | PORT_START("DSW2") | |
| 548 | 469 | PORT_DIPNAME( 0x03, 0x02, DEF_STR( Lives ) ) |
| 549 | 470 | PORT_DIPSETTING( 0x03, "2" ) |
| 550 | 471 | PORT_DIPSETTING( 0x02, "3" ) |
| r4470 | r4471 | |
| 567 | 488 | PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) |
| 568 | 489 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 569 | 490 | |
| 570 | PORT_START("DSW3") /* | |
| 491 | PORT_START("DSW3") /* | |
| 571 | 492 | PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) ) |
| 572 | 493 | PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) |
| 573 | 494 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| r4470 | r4471 | |
| 581 | 502 | |
| 582 | 503 | |
| 583 | 504 | static INPUT_PORTS_START( gradius2 ) // same as vulcan, different bonus |
| 584 | PORT_START("SYSTEM") /* 0xa0001 */ | |
| 585 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) | |
| 586 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) | |
| 587 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNUSED ) | |
| 588 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) // advance through tests | |
| 589 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 ) | |
| 590 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED ) | |
| 591 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SERVICE1 ) | |
| 592 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) | |
| 505 | PORT_INCLUDE( vulcan ) | |
| 593 | 506 | |
| 594 | PORT_START("P1") /* 0xa0003 */ | |
| 595 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) | |
| 596 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) | |
| 597 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) | |
| 598 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) | |
| 599 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) // powerup | |
| 600 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) // shoot | |
| 601 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) // missile | |
| 602 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) | |
| 603 | ||
| 604 | PORT_START("P2") /* 0xa0005 */ | |
| 605 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) | |
| 606 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) | |
| 607 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) | |
| 608 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) | |
| 609 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) | |
| 610 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) | |
| 611 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) | |
| 612 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) | |
| 613 | ||
| 614 | PORT_START("P3") /* 0xa0007 */ | |
| 615 | PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) | |
| 616 | ||
| 617 | KONAMI_TWIN_COINAGE | |
| 618 | ||
| 619 | PORT_START("DSW2") /* DSW2 */ | |
| 620 | PORT_DIPNAME( 0x03, 0x02, DEF_STR( Lives ) ) | |
| 621 | PORT_DIPSETTING( 0x03, "2" ) | |
| 622 | PORT_DIPSETTING( 0x02, "3" ) | |
| 623 | PORT_DIPSETTING( 0x01, "4" ) | |
| 624 | PORT_DIPSETTING( 0x00, "7" ) | |
| 625 | PORT_DIPNAME( 0x04, 0x00, DEF_STR( Cabinet ) ) | |
| 626 | PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) | |
| 627 | PORT_DIPSETTING( 0x04, DEF_STR( Cocktail ) ) | |
| 507 | PORT_MODIFY("DSW2") | |
| 628 | 508 | PORT_DIPNAME( 0x18, 0x18, DEF_STR (Bonus_Life ) ) |
| 629 | 509 | PORT_DIPSETTING( 0x18, "20K 150K" ) |
| 630 | 510 | PORT_DIPSETTING( 0x10, "30K 200K" ) |
| 631 | 511 | PORT_DIPSETTING( 0x08, "20K" ) |
| 632 | 512 | PORT_DIPSETTING( 0x00, "70K" ) |
| 633 | PORT_DIPNAME( 0x60, 0x40, DEF_STR( Difficulty ) ) | |
| 634 | PORT_DIPSETTING( 0x60, DEF_STR( Easy ) ) | |
| 635 | PORT_DIPSETTING( 0x40, DEF_STR( Normal ) ) | |
| 636 | PORT_DIPSETTING( 0x20, "Difficult" ) | |
| 637 | PORT_DIPSETTING( 0x00, "Very Difficult" ) | |
| 638 | PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) ) | |
| 639 | PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) | |
| 640 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) | |
| 641 | ||
| 642 | PORT_START("DSW3") /* DSW3 0xa0018 */ | |
| 643 | PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) ) | |
| 644 | PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) | |
| 645 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) | |
| 646 | PORT_DIPNAME( 0x02, 0x00, "Upright Controls" ) | |
| 647 | PORT_DIPSETTING( 0x02, DEF_STR( Single ) ) | |
| 648 | PORT_DIPSETTING( 0x00, DEF_STR( Dual ) ) | |
| 649 | PORT_SERVICE( 0x04, IP_ACTIVE_LOW ) | |
| 650 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED) | |
| 651 | PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED) | |
| 652 | 513 | INPUT_PORTS_END |
| 653 | 514 | |
| 654 | 515 | static INPUT_PORTS_START( fround ) |
| r4470 | r4471 | |
| 663 | 524 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 664 | 525 | |
| 665 | 526 | PORT_START("P1") /* 0xa0003 */ |
| 666 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) | |
| 667 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) | |
| 668 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) | |
| 669 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) | |
| 670 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) // face punch | |
| 671 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) // body punch | |
| 672 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) // defend | |
| 673 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) | |
| 527 | KONAMI8_B123_UNK(1) // button1 = face punch, button2 = body punch, button3 = defend | |
| 674 | 528 | |
| 675 | 529 | PORT_START("P2") /* 0xa0005 */ |
| 676 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) | |
| 677 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) | |
| 678 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) | |
| 679 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) | |
| 680 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) | |
| 681 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) | |
| 682 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) | |
| 683 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED) | |
| 530 | KONAMI8_B123_UNK(2) | |
| 684 | 531 | |
| 685 | 532 | PORT_START("P3") /* 0xa0007 */ |
| 686 | 533 | PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 687 | 534 | |
| 688 | KONAMI_TWIN_COINAGE | |
| 535 | PORT_START("DSW1") | |
| 536 | KONAMI_COINAGE(DEF_STR( Free_Play ), "No Coin B") | |
| 537 | /* "No Coin B" = coins produce sound, but no effect on coin counter */ | |
| 689 | 538 | |
| 690 | PORT_START("DSW2") | |
| 539 | PORT_START("DSW2") | |
| 691 | 540 | PORT_DIPNAME( 0x03, 0x02, "Energy" ) |
| 692 | 541 | PORT_DIPSETTING( 0x03, "18" ) |
| 693 | 542 | PORT_DIPSETTING( 0x02, "20" ) |
| r4470 | r4471 | |
| 703 | 552 | PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) |
| 704 | 553 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 705 | 554 | |
| 706 | PORT_START("DSW3") /* | |
| 555 | PORT_START("DSW3") /* | |
| 707 | 556 | PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) ) |
| 708 | 557 | PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) |
| 709 | 558 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| r4470 | r4471 | |
| 725 | 574 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 726 | 575 | |
| 727 | 576 | PORT_START("P1") /* 0xa0003 */ |
| 728 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) | |
| 729 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) | |
| 730 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) | |
| 731 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) | |
| 732 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) // knife | |
| 733 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) // weapon | |
| 734 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) // choice | |
| 735 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) | |
| 577 | KONAMI8_B123_UNK(1) // button1 = knife, button2 = weapon, button3 = choice | |
| 736 | 578 | |
| 737 | 579 | PORT_START("P2") /* 0xa0005 */ |
| 738 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) | |
| 739 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) | |
| 740 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) | |
| 741 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) | |
| 742 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) | |
| 743 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) | |
| 744 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) | |
| 745 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) | |
| 580 | KONAMI8_B123_UNK(2) | |
| 746 | 581 | |
| 747 | 582 | PORT_START("P3") /* 0xa0007 */ |
| 748 | 583 | PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 749 | 584 | |
| 750 | KONAMI_TWIN_COINAGE | |
| 585 | PORT_START("DSW1") | |
| 586 | KONAMI_COINAGE(DEF_STR( Free_Play ), "Invalid") | |
| 587 | /* "Invalid" = both coin slots disabled */ | |
| 751 | 588 | |
| 752 | PORT_START("DSW2") | |
| 589 | PORT_START("DSW2") | |
| 753 | 590 | PORT_DIPNAME( 0x03, 0x02, DEF_STR( Lives ) ) |
| 754 | 591 | PORT_DIPSETTING( 0x03, "2" ) |
| 755 | 592 | PORT_DIPSETTING( 0x02, "3" ) |
| r4470 | r4471 | |
| 770 | 607 | PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) |
| 771 | 608 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 772 | 609 | |
| 773 | PORT_START("DSW3") /* | |
| 610 | PORT_START("DSW3") /* | |
| 774 | 611 | PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) ) |
| 775 | 612 | PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) |
| 776 | 613 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| r4470 | r4471 | |
| 794 | 631 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 795 | 632 | |
| 796 | 633 | PORT_START("P1") /* 0xa0003 */ |
| 797 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) | |
| 798 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) | |
| 799 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) | |
| 800 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) | |
| 801 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) // move | |
| 802 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) // warp | |
| 803 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) // stop | |
| 804 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) | |
| 634 | KONAMI8_B123_UNK(1) // button1 = move, button2 = warp, button3 = stop | |
| 805 | 635 | |
| 806 | 636 | PORT_START("P2") /* 0xa0005 */ |
| 807 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) | |
| 808 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) | |
| 809 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) | |
| 810 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) | |
| 811 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) | |
| 812 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) | |
| 813 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) | |
| 814 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) | |
| 637 | KONAMI8_B123_UNK(2) | |
| 815 | 638 | |
| 816 | 639 | PORT_START("P3") /* 0xa0007 */ |
| 817 | 640 | PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 818 | 641 | |
| 819 | KONAMI_TWIN_COINAGE | |
| 642 | PORT_START("DSW1") | |
| 643 | KONAMI_COINAGE(DEF_STR( Free_Play ), "Invalid") | |
| 644 | /* "Invalid" = both coin slots disabled */ | |
| 820 | 645 | |
| 821 | PORT_START("DSW2") | |
| 646 | PORT_START("DSW2") | |
| 822 | 647 | PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) ) |
| 823 | 648 | PORT_DIPSETTING( 0x03, "1" ) |
| 824 | 649 | PORT_DIPSETTING( 0x02, "2" ) |
| r4470 | r4471 | |
| 841 | 666 | PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) |
| 842 | 667 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 843 | 668 | |
| 844 | PORT_START("DSW3") /* | |
| 669 | PORT_START("DSW3") /* | |
| 845 | 670 | PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) ) |
| 846 | 671 | PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) |
| 847 | 672 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| r4470 | r4471 | |
| 1466 | 1291 | |
| 1467 | 1292 | /* Game Drivers */ |
| 1468 | 1293 | |
| 1469 | GAME( 1987, devilw, 0, devilw, devilw, twin16, ROT0, "Konami", "Devil World", 0 ) | |
| 1470 | GAME( 1987, majuu, devilw, devilw, devilw, twin16, ROT0, "Konami", "Majuu no Ohkoku", 0 ) | |
| 1471 | GAME( 1987, darkadv, devilw, devilw, darkadv, twin16, ROT0, "Konami", "Dark Adventure", 0 ) | |
| 1472 | GAME( 1988, vulcan, 0, twin16, vulcan, twin16, ROT0, "Konami", "Vulcan Venture", 0 ) | |
| 1473 | GAME( 1988, gradius2, vulcan, twin16, gradius2, twin16, ROT0, "Konami", "Gradius II - GOFER no Yabou (Japan New Ver.)", 0 ) | |
| 1474 | GAME( 1988, grdius2a, vulcan, twin16, vulcan, twin16, ROT0, "Konami", "Gradius II - GOFER no Yabou (Japan Old Ver.)", 0 ) | |
| 1475 | GAME( 1988, grdius2b, vulcan, twin16, vulcan, twin16, ROT0, "Konami", "Gradius II - GOFER no Yabou (Japan Older Ver.)", 0 ) | |
| 1294 | GAME( 1987, devilw, 0, devilw, devilw, twin16, ROT0, "Konami", "Devil World", 0 ) | |
| 1295 | GAME( 1987, majuu, devilw, devilw, devilw, twin16, ROT0, "Konami", "Majuu no Ohkoku", 0 ) | |
| 1296 | GAME( 1987, darkadv, devilw, devilw, darkadv, twin16, ROT0, "Konami", "Dark Adventure", 0 ) | |
| 1297 | GAME( 1988, vulcan, 0, twin16, vulcan, twin16, ROT0, "Konami", "Vulcan Venture", 0 ) | |
| 1298 | GAME( 1988, gradius2, vulcan, twin16, gradius2, twin16, ROT0, "Konami", "Gradius II - GOFER no Yabou (Japan New Ver.)", 0 ) | |
| 1299 | GAME( 1988, grdius2a, vulcan, twin16, vulcan, twin16, ROT0, "Konami", "Gradius II - GOFER no Yabou (Japan Old Ver.)", 0 ) | |
| 1300 | GAME( 1988, grdius2b, vulcan, twin16, vulcan, twin16, ROT0, "Konami", "Gradius II - GOFER no Yabou (Japan Older Ver.)", 0 ) | |
| 1476 | 1301 | |
| 1477 | GAME( 1988, fround, 0, fround, fround, fround, ROT0, "Konami", "The Final Round (version M)", 0 ) | |
| 1478 | GAME( 1988, froundl, fround, fround, fround, fround, ROT0, "Konami", "The Final Round (version L)", 0 ) | |
| 1479 | GAME( 1988, hpuncher, fround, hpuncher, fround, hpuncher, ROT0, "Konami", "Hard Puncher (Japan)", 0 ) | |
| 1480 | GAME( 1989, miaj, mia, miaj, miaj, hpuncher, ROT0, "Konami", "M.I.A. - Missing in Action (Japan)", 0 ) | |
| 1481 | GAME( 1989, cuebrckj, cuebrick, cuebrckj, cuebrckj, cuebrckj, ROT0, "Konami", "Cue Brick (Japan)", 0 ) | |
| 1302 | GAME( 1988, fround, 0, fround, fround, fround, ROT0, "Konami", "The Final Round (version M)", 0 ) | |
| 1303 | GAME( 1988, froundl, fround, fround, fround, fround, ROT0, "Konami", "The Final Round (version L)", 0 ) | |
| 1304 | GAME( 1988, hpuncher, fround, hpuncher, fround, hpuncher, ROT0, "Konami", "Hard Puncher (Japan)", 0 ) | |
| 1305 | GAME( 1989, miaj, mia, miaj, miaj, hpuncher, ROT0, "Konami", "M.I.A. - Missing in Action (Japan)", 0 ) | |
| 1306 | GAME( 1989, cuebrckj, cuebrick, cuebrckj, cuebrckj, cuebrckj, ROT0, "Konami", "Cue Brick (Japan)", 0 ) |
| r4470 | r4471 | |
|---|---|---|
| 512 | 512 | static ADDRESS_MAP_START( sound_writemem_z80, ADDRESS_SPACE_PROGRAM, 8 ) |
| 513 | 513 | AM_RANGE(0x0000, 0x3fff) AM_WRITE(SMH_ROM) |
| 514 | 514 | AM_RANGE(0xc000, 0xc7ff) AM_WRITE(SMH_RAM) |
| 515 | AM_RANGE(0xf000, 0xf000) AM_WRITE | |
| 515 | AM_RANGE(0xf000, 0xf000) AM_WRITE | |
| 516 | 516 | ADDRESS_MAP_END |
| 517 | 517 | |
| 518 | 518 | static ADDRESS_MAP_START( sound_io_map, ADDRESS_SPACE_IO, 8 ) |
| r4470 | r4471 | |
|---|---|---|
| 293 | 293 | PORT_DIPNAME( 0x0100, 0x0100, "Coin Slot" ) PORT_DIPLOCATION("SW1:1") |
| 294 | 294 | PORT_DIPSETTING( 0x0100, "Same" ) |
| 295 | 295 | PORT_DIPSETTING( 0x0000, "Individual" ) |
| 296 | PORT_DIPNAME( 0x0e00, 0x0e00, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW1:2,3,4") | |
| 296 | PORT_DIPNAME( 0x0e00, 0x0e00, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW1:2,3,4") PORT_CONDITION("DSW0", 0x0100, PORTCOND_EQUALS, 0x0100) | |
| 297 | 297 | PORT_DIPSETTING( 0x0a00, DEF_STR( 3C_1C ) ) |
| 298 | 298 | PORT_DIPSETTING( 0x0c00, DEF_STR( 2C_1C ) ) |
| 299 | 299 | PORT_DIPSETTING( 0x0e00, DEF_STR( 1C_1C ) ) |
| r4470 | r4471 | |
| 302 | 302 | PORT_DIPSETTING( 0x0400, DEF_STR( 1C_4C ) ) |
| 303 | 303 | PORT_DIPSETTING( 0x0200, DEF_STR( 1C_5C ) ) |
| 304 | 304 | PORT_DIPSETTING( 0x0000, DEF_STR( 1C_6C ) ) |
| 305 | PORT_DIPNAME( 0x7000, 0x7000, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW1:5,6,7") | |
| 305 | PORT_DIPNAME( 0x7000, 0x7000, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW1:5,6,7") PORT_CONDITION("DSW0", 0x0100, PORTCOND_EQUALS, 0x0100) | |
| 306 | 306 | PORT_DIPSETTING( 0x5000, DEF_STR( 3C_1C ) ) |
| 307 | 307 | PORT_DIPSETTING( 0x6000, DEF_STR( 2C_1C ) ) |
| 308 | 308 | PORT_DIPSETTING( 0x7000, DEF_STR( 1C_1C ) ) |
| r4470 | r4471 | |
| 311 | 311 | PORT_DIPSETTING( 0x2000, DEF_STR( 1C_4C ) ) |
| 312 | 312 | PORT_DIPSETTING( 0x1000, DEF_STR( 1C_5C ) ) |
| 313 | 313 | PORT_DIPSETTING( 0x0000, DEF_STR( 1C_6C ) ) |
| 314 | PORT_DIPNAME( 0x0e00, 0x0e00, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW1:2,3,4") PORT_CONDITION("DSW0", 0x0100, PORTCOND_NOTEQUALS, 0x0100) | |
| 315 | PORT_DIPSETTING( 0x0a00, DEF_STR( 3C_1C ) ) | |
| 316 | PORT_DIPSETTING( 0x0c00, DEF_STR( 2C_1C ) ) | |
| 317 | PORT_DIPSETTING( 0x0e00, DEF_STR( 1C_1C ) ) | |
| 318 | PORT_DIPSETTING( 0x0800, DEF_STR( 1C_2C ) ) | |
| 319 | PORT_DIPSETTING( 0x0600, DEF_STR( 1C_3C ) ) | |
| 320 | PORT_DIPSETTING( 0x0400, DEF_STR( 1C_4C ) ) | |
| 321 | PORT_DIPSETTING( 0x0200, DEF_STR( 1C_5C ) ) | |
| 322 | PORT_DIPSETTING( 0x0000, DEF_STR( 1C_6C ) ) | |
| 323 | PORT_DIPUNUSED_DIPLOC( 0x7000, 0x7000, "SW1:5,6,7") PORT_CONDITION("DSW0", 0x0100, PORTCOND_NOTEQUALS, 0x0100) | |
| 314 | 324 | PORT_DIPNAME( 0x8000, 0x8000, "2 to Start, 1 to Cont." ) PORT_DIPLOCATION("SW1:8") // Other desc. was too long ! |
| 315 | 325 | PORT_DIPSETTING( 0x8000, DEF_STR( Off ) ) |
| 316 | 326 | PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) |
| r4470 | r4471 | |
| 383 | 393 | PORT_INCLUDE( crshrace ) |
| 384 | 394 | |
| 385 | 395 | PORT_MODIFY("DSW0") |
| 386 | PORT_DIPUNKNOWN_DIPLOC( 0x0010, 0x0010, "SW | |
| 396 | PORT_DIPUNKNOWN_DIPLOC( 0x0010, 0x0010, "SW2:5" ) // Check code at 0x00ea36 | |
| 387 | 397 | INPUT_PORTS_END |
| 388 | 398 | |
| 389 | 399 |
| r4470 | r4471 | |
|---|---|---|
| 898 | 898 | AM_RANGE(0x4ff0, 0x4fff) AM_MIRROR(0xa000) AM_RAM AM_BASE(&spriteram) AM_SIZE(&spriteram_size) |
| 899 | 899 | AM_RANGE(0x5000, 0x5000) AM_MIRROR(0xaf38) AM_WRITE(interrupt_enable_w) |
| 900 | 900 | AM_RANGE(0x5001, 0x5001) AM_MIRROR(0xaf38) AM_DEVWRITE("namco", pacman_sound_enable_w) |
| 901 | AM_RANGE(0x5002, 0x5002) AM_MIRROR(0xaf38) AM_WRITE | |
| 901 | AM_RANGE(0x5002, 0x5002) AM_MIRROR(0xaf38) AM_WRITE | |
| 902 | 902 | AM_RANGE(0x5003, 0x5003) AM_MIRROR(0xaf38) AM_WRITE(pacman_flipscreen_w) |
| 903 | AM_RANGE(0x5004, 0x5005) AM_MIRROR(0xaf38) AM_WRITE(SMH_NOP) // AM_WRITE(pacman_leds_w) | |
| 904 | AM_RANGE(0x5006, 0x5006) AM_MIRROR(0xaf38) AM_WRITE(SMH_NOP) // AM_WRITE(pacman_coin_lockout_global_w) | |
| 903 | AM_RANGE(0x5004, 0x5005) AM_MIRROR(0xaf38) AM_WRITENOP // AM_WRITE(pacman_leds_w) | |
| 904 | AM_RANGE(0x5006, 0x5006) AM_MIRROR(0xaf38) AM_WRITENOP // AM_WRITE(pacman_coin_lockout_global_w) | |
| 905 | 905 | AM_RANGE(0x5007, 0x5007) AM_MIRROR(0xaf38) AM_WRITE(pacman_coin_counter_w) |
| 906 | 906 | AM_RANGE(0x5040, 0x505f) AM_MIRROR(0xaf00) AM_DEVWRITE("namco", pacman_sound_w) AM_BASE(&pacman_soundregs) |
| 907 | 907 | AM_RANGE(0x5060, 0x506f) AM_MIRROR(0xaf00) AM_WRITE(SMH_RAM) AM_BASE(&spriteram_2) |
| 908 | AM_RANGE(0x5070, 0x507f) AM_MIRROR(0xaf00) AM_WRITE(SMH_NOP) | |
| 909 | AM_RANGE(0x5080, 0x5080) AM_MIRROR(0xaf3f) AM_WRITE(SMH_NOP) | |
| 908 | AM_RANGE(0x5070, 0x507f) AM_MIRROR(0xaf00) AM_WRITENOP | |
| 909 | AM_RANGE(0x5080, 0x5080) AM_MIRROR(0xaf3f) AM_WRITENOP | |
| 910 | 910 | AM_RANGE(0x50c0, 0x50c0) AM_MIRROR(0xaf3f) AM_WRITE(watchdog_reset_w) |
| 911 | 911 | AM_RANGE(0x5000, 0x5000) AM_MIRROR(0xaf3f) AM_READ_PORT("IN0") /* IN0 */ |
| 912 | 912 | AM_RANGE(0x5040, 0x5040) AM_MIRROR(0xaf3f) AM_READ_PORT("IN1") /* IN1 */ |
| r4470 | r4471 | |
| 925 | 925 | AM_RANGE(0x4ff0, 0x4fff) AM_MIRROR(0xa000) AM_RAM AM_BASE(&spriteram) AM_SIZE(&spriteram_size) |
| 926 | 926 | AM_RANGE(0x5000, 0x5000) AM_MIRROR(0xaf38) AM_WRITE(interrupt_enable_w) |
| 927 | 927 | AM_RANGE(0x5001, 0x5001) AM_MIRROR(0xaf38) AM_DEVWRITE("namco", pacman_sound_enable_w) |
| 928 | AM_RANGE(0x5002, 0x5002) AM_MIRROR(0xaf38) AM_WRITE | |
| 928 | AM_RANGE(0x5002, 0x5002) AM_MIRROR(0xaf38) AM_WRITE | |
| 929 | 929 | AM_RANGE(0x5003, 0x5003) AM_MIRROR(0xaf38) AM_WRITE(pacman_flipscreen_w) |
| 930 | AM_RANGE(0x5004, 0x5005) AM_MIRROR(0xaf38) AM_WRITE | |
| 930 | AM_RANGE(0x5004, 0x5005) AM_MIRROR(0xaf38) AM_WRITE | |
| 931 | 931 | AM_RANGE(0x5006, 0x5006) AM_MIRROR(0xaf38) AM_WRITE(pacman_coin_lockout_global_w) |
| 932 | 932 | AM_RANGE(0x5007, 0x5007) AM_MIRROR(0xaf38) AM_WRITE(pacman_coin_counter_w) |
| 933 | 933 | AM_RANGE(0x5040, 0x505f) AM_MIRROR(0xaf00) AM_DEVWRITE("namco", pacman_sound_w) AM_BASE(&pacman_soundregs) |
| 934 | 934 | AM_RANGE(0x5060, 0x506f) AM_MIRROR(0xaf00) AM_WRITE(SMH_RAM) AM_BASE(&spriteram_2) |
| 935 | AM_RANGE(0x5070, 0x507f) AM_MIRROR(0xaf00) AM_WRITE(SMH_NOP) | |
| 936 | AM_RANGE(0x5080, 0x5080) AM_MIRROR(0xaf3f) AM_WRITE(SMH_NOP) | |
| 935 | AM_RANGE(0x5070, 0x507f) AM_MIRROR(0xaf00) AM_WRITENOP | |
| 936 | AM_RANGE(0x5080, 0x5080) AM_MIRROR(0xaf3f) AM_WRITENOP | |
| 937 | 937 | AM_RANGE(0x50c0, 0x50c0) AM_MIRROR(0xaf3f) AM_WRITE(watchdog_reset_w) |
| 938 | 938 | AM_RANGE(0x5000, 0x5000) AM_MIRROR(0xaf3f) AM_READ_PORT("IN0") /* IN0 */ |
| 939 | 939 | AM_RANGE(0x5040, 0x5040) AM_MIRROR(0xaf3f) AM_READ_PORT("IN1") /* IN1 */ |
| r4470 | r4471 | |
| 965 | 965 | AM_RANGE(0x4ff0, 0x4fff) AM_MIRROR(0xa000) AM_RAM AM_BASE(&spriteram) AM_SIZE(&spriteram_size) |
| 966 | 966 | AM_RANGE(0x5000, 0x5000) AM_MIRROR(0xaf38) AM_WRITE(interrupt_enable_w) |
| 967 | 967 | AM_RANGE(0x5001, 0x5001) AM_MIRROR(0xaf38) AM_DEVWRITE("namco", pacman_sound_enable_w) |
| 968 | AM_RANGE(0x5002, 0x5002) AM_MIRROR(0xaf38) AM_WRITE | |
| 968 | AM_RANGE(0x5002, 0x5002) AM_MIRROR(0xaf38) AM_WRITE | |
| 969 | 969 | AM_RANGE(0x5003, 0x5003) AM_MIRROR(0xaf38) AM_WRITE(pacman_flipscreen_w) |
| 970 | AM_RANGE(0x5004, 0x5005) AM_MIRROR(0xaf38) AM_WRITE(SMH_NOP) // AM_WRITE(pacman_leds_w) | |
| 971 | AM_RANGE(0x5006, 0x5006) AM_MIRROR(0xaf38) AM_WRITE(SMH_NOP) // AM_WRITE(pacman_coin_lockout_global_w) | |
| 970 | AM_RANGE(0x5004, 0x5005) AM_MIRROR(0xaf38) AM_WRITENOP // AM_WRITE(pacman_leds_w) | |
| 971 | AM_RANGE(0x5006, 0x5006) AM_MIRROR(0xaf38) AM_WRITENOP // AM_WRITE(pacman_coin_lockout_global_w) | |
| 972 | 972 | AM_RANGE(0x5007, 0x5007) AM_MIRROR(0xaf38) AM_WRITE(pacman_coin_counter_w) |
| 973 | 973 | AM_RANGE(0x5040, 0x505f) AM_MIRROR(0xaf00) AM_DEVWRITE("namco", pacman_sound_w) AM_BASE(&pacman_soundregs) |
| 974 | 974 | AM_RANGE(0x5060, 0x506f) AM_MIRROR(0xaf00) AM_WRITE(SMH_RAM) AM_BASE(&spriteram_2) |
| 975 | AM_RANGE(0x5070, 0x507f) AM_MIRROR(0xaf00) AM_WRITE(SMH_NOP) | |
| 976 | AM_RANGE(0x5080, 0x5080) AM_MIRROR(0xaf3f) AM_WRITE(SMH_NOP) | |
| 975 | AM_RANGE(0x5070, 0x507f) AM_MIRROR(0xaf00) AM_WRITENOP | |
| 976 | AM_RANGE(0x5080, 0x5080) AM_MIRROR(0xaf3f) AM_WRITENOP | |
| 977 | 977 | AM_RANGE(0x50c0, 0x50c0) AM_MIRROR(0xaf3f) AM_WRITE(watchdog_reset_w) |
| 978 | 978 | AM_RANGE(0x5000, 0x5000) AM_MIRROR(0xaf3f) AM_READ_PORT("IN0") /* IN0 */ |
| 979 | 979 | AM_RANGE(0x5040, 0x5040) AM_MIRROR(0xaf3f) AM_READ_PORT("IN1") /* IN1 */ |
| r4470 | r4471 | |
| 997 | 997 | AM_RANGE(0x5007, 0x5007) AM_MIRROR(0xaf38) AM_WRITE(pacman_coin_counter_w) |
| 998 | 998 | AM_RANGE(0x5040, 0x506f) AM_MIRROR(0xaf00) AM_WRITE(alibaba_sound_w) AM_BASE(&pacman_soundregs) /* the sound region is not contiguous */ |
| 999 | 999 | AM_RANGE(0x5060, 0x506f) AM_MIRROR(0xaf00) AM_WRITE(SMH_RAM) AM_BASE(&spriteram_2) /* actually at 5050-505f, here to point to free RAM */ |
| 1000 | AM_RANGE(0x5070, 0x507f) AM_MIRROR(0xaf00) AM_WRITE(SMH_NOP) | |
| 1001 | AM_RANGE(0x5080, 0x5080) AM_MIRROR(0xaf3f) AM_WRITE(SMH_NOP) | |
| 1000 | AM_RANGE(0x5070, 0x507f) AM_MIRROR(0xaf00) AM_WRITENOP | |
| 1001 | AM_RANGE(0x5080, 0x5080) AM_MIRROR(0xaf3f) AM_WRITENOP | |
| 1002 | 1002 | AM_RANGE(0x50c0, 0x50c0) AM_MIRROR(0xaf00) AM_DEVWRITE("namco", pacman_sound_enable_w) |
| 1003 | 1003 | AM_RANGE(0x50c1, 0x50c1) AM_MIRROR(0xaf00) AM_WRITE(pacman_flipscreen_w) |
| 1004 | 1004 | AM_RANGE(0x50c2, 0x50c2) AM_MIRROR(0xaf00) AM_WRITE(interrupt_enable_w) |
| 1005 | AM_RANGE(0x50c3, 0x50ff) AM_MIRROR(0xaf00) AM_WRITE | |
| 1005 | AM_RANGE(0x50c3, 0x50ff) AM_MIRROR(0xaf00) AM_WRITE | |
| 1006 | 1006 | AM_RANGE(0x5000, 0x5000) AM_MIRROR(0xaf3f) AM_READ_PORT("IN0") /* IN0 */ |
| 1007 | 1007 | AM_RANGE(0x5040, 0x5040) AM_MIRROR(0xaf3f) AM_READ_PORT("IN1") /* IN1 */ |
| 1008 | 1008 | AM_RANGE(0x5080, 0x5080) AM_MIRROR(0xaf3f) AM_READ_PORT("DSW1") /* DSW1 */ |
| r4470 | r4471 | |
| 1023 | 1023 | AM_RANGE(0x4ff0, 0x4fff) AM_MIRROR(0xa000) AM_RAM AM_BASE(&spriteram) AM_SIZE(&spriteram_size) |
| 1024 | 1024 | AM_RANGE(0x5000, 0x5000) AM_MIRROR(0xaf38) AM_WRITE(interrupt_enable_w) |
| 1025 | 1025 | // AM_RANGE(0x5001, 0x5001) AM_MIRROR(0xaf38) AM_DEVWRITE("namco", pacman_sound_enable_w) |
| 1026 | AM_RANGE(0x5002, 0x5002) AM_MIRROR(0xaf38) AM_WRITE | |
| 1026 | AM_RANGE(0x5002, 0x5002) AM_MIRROR(0xaf38) AM_WRITE | |
| 1027 | 1027 | AM_RANGE(0x5003, 0x5003) AM_MIRROR(0xaf38) AM_WRITE(pacman_flipscreen_w) |
| 1028 | AM_RANGE(0x5004, 0x5005) AM_MIRROR(0xaf38) AM_WRITE(SMH_NOP) // AM_WRITE(pacman_leds_w) | |
| 1029 | AM_RANGE(0x5006, 0x5006) AM_MIRROR(0xaf38) AM_WRITE(SMH_NOP) // AM_WRITE(pacman_coin_lockout_global_w) | |
| 1028 | AM_RANGE(0x5004, 0x5005) AM_MIRROR(0xaf38) AM_WRITENOP // AM_WRITE(pacman_leds_w) | |
| 1029 | AM_RANGE(0x5006, 0x5006) AM_MIRROR(0xaf38) AM_WRITENOP // AM_WRITE(pacman_coin_lockout_global_w) | |
| 1030 | 1030 | AM_RANGE(0x5007, 0x5007) AM_MIRROR(0xaf38) AM_WRITE(pacman_coin_counter_w) |
| 1031 | 1031 | // AM_RANGE(0x5040, 0x505f) AM_MIRROR(0xaf00) AM_DEVWRITE("namco", pacman_sound_w) AM_BASE(&pacman_soundregs) |
| 1032 | 1032 | AM_RANGE(0x5060, 0x506f) AM_MIRROR(0xaf00) AM_WRITE(SMH_RAM) AM_BASE(&spriteram_2) |
| 1033 | AM_RANGE(0x5070, 0x507f) AM_MIRROR(0xaf00) AM_WRITE(SMH_NOP) | |
| 1034 | AM_RANGE(0x5080, 0x5080) AM_MIRROR(0xaf3f) AM_WRITE(SMH_NOP) | |
| 1033 | AM_RANGE(0x5070, 0x507f) AM_MIRROR(0xaf00) AM_WRITENOP | |
| 1034 | AM_RANGE(0x5080, 0x5080) AM_MIRROR(0xaf3f) AM_WRITENOP | |
| 1035 | 1035 | AM_RANGE(0x50c0, 0x50c0) AM_MIRROR(0xaf3f) AM_WRITE(watchdog_reset_w) |
| 1036 | 1036 | AM_RANGE(0x5000, 0x5000) AM_MIRROR(0xaf3f) AM_READ_PORT("IN0") /* IN0 */ |
| 1037 | 1037 | AM_RANGE(0x5040, 0x5040) AM_MIRROR(0xaf3f) AM_READ_PORT("IN1") /* IN1 */ |
| r4470 | r4471 | |
| 1050 | 1050 | AM_RANGE(0x4ff0, 0x4fff) AM_MIRROR(0xa000) AM_RAM AM_BASE(&spriteram) AM_SIZE(&spriteram_size) |
| 1051 | 1051 | AM_RANGE(0x5000, 0x5000) AM_MIRROR(0xaf38) AM_WRITE(interrupt_enable_w) |
| 1052 | 1052 | AM_RANGE(0x5001, 0x5001) AM_MIRROR(0xaf38) AM_DEVWRITE("namco", pacman_sound_enable_w) |
| 1053 | AM_RANGE(0x5002, 0x5002) AM_MIRROR(0xaf38) AM_WRITE | |
| 1053 | AM_RANGE(0x5002, 0x5002) AM_MIRROR(0xaf38) AM_WRITE | |
| 1054 | 1054 | AM_RANGE(0x5003, 0x5003) AM_MIRROR(0xaf38) AM_WRITE(pacman_flipscreen_w) |
| 1055 | AM_RANGE(0x5004, 0x5005) AM_MIRROR(0xaf38) AM_WRITE(SMH_NOP) // AM_WRITE(pacman_leds_w) | |
| 1056 | AM_RANGE(0x5006, 0x5006) AM_MIRROR(0xaf38) AM_WRITE(SMH_NOP) // AM_WRITE(pacman_coin_lockout_global_w) | |
| 1055 | AM_RANGE(0x5004, 0x5005) AM_MIRROR(0xaf38) AM_WRITENOP // AM_WRITE(pacman_leds_w) | |
| 1056 | AM_RANGE(0x5006, 0x5006) AM_MIRROR(0xaf38) AM_WRITENOP // AM_WRITE(pacman_coin_lockout_global_w) | |
| 1057 | 1057 | AM_RANGE(0x5007, 0x5007) AM_MIRROR(0xaf38) AM_WRITE(pacman_coin_counter_w) |
| 1058 | 1058 | AM_RANGE(0x5040, 0x505f) AM_MIRROR(0xaf00) AM_DEVWRITE("namco", pacman_sound_w) AM_BASE(&pacman_soundregs) |
| 1059 | 1059 | AM_RANGE(0x5060, 0x506f) AM_MIRROR(0xaf00) AM_WRITE(SMH_RAM) AM_BASE(&spriteram_2) |
| 1060 | AM_RANGE(0x5070, 0x507f) AM_MIRROR(0xaf00) AM_WRITE(SMH_NOP) | |
| 1061 | AM_RANGE(0x5080, 0x5080) AM_MIRROR(0xaf3f) AM_WRITE(SMH_NOP) | |
| 1060 | AM_RANGE(0x5070, 0x507f) AM_MIRROR(0xaf00) AM_WRITENOP | |
| 1061 | AM_RANGE(0x5080, 0x5080) AM_MIRROR(0xaf3f) AM_WRITENOP | |
| 1062 | 1062 | AM_RANGE(0x50c0, 0x50c0) AM_MIRROR(0xaf3f) AM_WRITE(watchdog_reset_w) |
| 1063 | 1063 | AM_RANGE(0x5000, 0x5000) AM_MIRROR(0xaf3f) AM_READ_PORT("IN0") /* IN0 */ |
| 1064 | 1064 | AM_RANGE(0x5040, 0x5040) AM_MIRROR(0xaf3f) AM_READ_PORT("IN1") /* IN1 */ |
| r4470 | r4471 | |
| 1075 | 1075 | AM_RANGE(0x4ff0, 0x4fff) AM_MIRROR(0xa000) AM_RAM AM_BASE(&spriteram) AM_SIZE(&spriteram_size) |
| 1076 | 1076 | AM_RANGE(0x5000, 0x5000) AM_MIRROR(0xaf38) AM_WRITE(interrupt_enable_w) |
| 1077 | 1077 | AM_RANGE(0x5001, 0x5001) AM_MIRROR(0xaf38) AM_WRITE(vanvan_bgcolor_w) |
| 1078 | AM_RANGE(0x5002, 0x5002) AM_MIRROR(0xaf38) AM_WRITE | |
| 1078 | AM_RANGE(0x5002, 0x5002) AM_MIRROR(0xaf38) AM_WRITE | |
| 1079 | 1079 | AM_RANGE(0x5003, 0x5003) AM_MIRROR(0xaf38) AM_WRITE(pacman_flipscreen_w) |
| 1080 | AM_RANGE(0x5004, 0x5004) AM_MIRROR(0xaf38) AM_WRITE(SMH_NOP) | |
| 1081 | AM_RANGE(0x5005, 0x5006) AM_MIRROR(0xaf38) AM_WRITE(SMH_NOP) /* always written together with 5001 */ | |
| 1080 | AM_RANGE(0x5004, 0x5004) AM_MIRROR(0xaf38) AM_WRITENOP | |
| 1081 | AM_RANGE(0x5005, 0x5006) AM_MIRROR(0xaf38) AM_WRITENOP /* always written together with 5001 */ | |
| 1082 | 1082 | AM_RANGE(0x5007, 0x5007) AM_MIRROR(0xaf38) AM_WRITE(pacman_coin_counter_w) |
| 1083 | AM_RANGE(0x5040, 0x505f) AM_MIRROR(0xaf00) AM_WRITE | |
| 1083 | AM_RANGE(0x5040, 0x505f) AM_MIRROR(0xaf00) AM_WRITE | |
| 1084 | 1084 | AM_RANGE(0x5060, 0x506f) AM_MIRROR(0xaf00) AM_WRITE(SMH_RAM) AM_BASE(&spriteram_2) |
| 1085 | AM_RANGE(0x5070, 0x507f) AM_MIRROR(0xaf00) AM_WRITE(SMH_NOP) | |
| 1086 | AM_RANGE(0x5080, 0x5080) AM_MIRROR(0xaf3f) AM_WRITE(SMH_NOP) /* ??? toggled before reading 5000 */ | |
| 1085 | AM_RANGE(0x5070, 0x507f) AM_MIRROR(0xaf00) AM_WRITENOP | |
| 1086 | AM_RANGE(0x5080, 0x5080) AM_MIRROR(0xaf3f) AM_WRITENOP /* ??? toggled before reading 5000 */ | |
| 1087 | 1087 | AM_RANGE(0x50c0, 0x50c0) AM_MIRROR(0xaf3f) AM_WRITE(watchdog_reset_w) |
| 1088 | 1088 | AM_RANGE(0x5000, 0x5000) AM_MIRROR(0xaf3f) AM_READ_PORT("IN0") /* IN0 */ |
| 1089 | 1089 | AM_RANGE(0x5040, 0x5040) AM_MIRROR(0xaf3f) AM_READ_PORT("IN1") /* IN1 */ |
| r4470 | r4471 | |
| 1093 | 1093 | /* probably a leftover from development: the Sanritsu version */ |
| 1094 | 1094 | /* writes the color lookup table here, while the Karateko version */ |
| 1095 | 1095 | /* writes garbage. */ |
| 1096 | AM_RANGE(0xb800, 0xb87f) AM_WRITE | |
| 1096 | AM_RANGE(0xb800, 0xb87f) AM_WRITE | |
| 1097 | 1097 | ADDRESS_MAP_END |
| 1098 | 1098 | |
| 1099 | 1099 | static ADDRESS_MAP_START( s2650games_map, ADDRESS_SPACE_PROGRAM, 8 ) |
| r4470 | r4471 | |
| 1104 | 1104 | AM_RANGE(0x1490, 0x149f) AM_MIRROR(0xe000) AM_WRITE(SMH_RAM) AM_BASE(&s2650games_spriteram) |
| 1105 | 1105 | AM_RANGE(0x14a0, 0x14bf) AM_MIRROR(0xe000) AM_WRITE(s2650games_tilesbank_w) AM_BASE(&s2650games_tileram) |
| 1106 | 1106 | AM_RANGE(0x14c0, 0x14ff) AM_MIRROR(0xe000) AM_WRITE(SMH_RAM) |
| 1107 | AM_RANGE(0x1500, 0x1502) AM_MIRROR(0xe000) AM_WRITE | |
| 1107 | AM_RANGE(0x1500, 0x1502) AM_MIRROR(0xe000) AM_WRITE | |
| 1108 | 1108 | AM_RANGE(0x1503, 0x1503) AM_MIRROR(0xe000) AM_WRITE(pacman_flipscreen_w) |
| 1109 | AM_RANGE(0x1504, 0x1506) AM_MIRROR(0xe000) AM_WRITE | |
| 1109 | AM_RANGE(0x1504, 0x1506) AM_MIRROR(0xe000) AM_WRITE | |
| 1110 | 1110 | AM_RANGE(0x1507, 0x1507) AM_MIRROR(0xe000) AM_WRITE(pacman_coin_counter_w) |
| 1111 | 1111 | AM_RANGE(0x1508, 0x155f) AM_MIRROR(0xe000) AM_WRITE(SMH_RAM) |
| 1112 | 1112 | AM_RANGE(0x1560, 0x156f) AM_MIRROR(0xe000) AM_WRITE(SMH_RAM) AM_BASE(&spriteram_2) |
| 1113 | 1113 | AM_RANGE(0x1570, 0x157f) AM_MIRROR(0xe000) AM_WRITE(SMH_RAM) |
| 1114 | AM_RANGE(0x1586, 0x1587) AM_MIRROR(0xe000) AM_WRITE | |
| 1114 | AM_RANGE(0x1586, 0x1587) AM_MIRROR(0xe000) AM_WRITE | |
| 1115 | 1115 | AM_RANGE(0x15c0, 0x15c0) AM_MIRROR(0xe000) AM_WRITE(watchdog_reset_w) |
| 1116 | 1116 | AM_RANGE(0x15c7, 0x15c7) AM_MIRROR(0xe000) AM_WRITE(porky_banking_w) |
| 1117 | 1117 | AM_RANGE(0x1500, 0x1500) AM_MIRROR(0xe000) AM_READ_PORT("IN0") |
| r4470 | r4471 | |
| 1161 | 1161 | AM_RANGE(0x5000, 0x5000) AM_WRITE(interrupt_enable_w) |
| 1162 | 1162 | AM_RANGE(0x5001, 0x5001) AM_DEVWRITE("namco", pacman_sound_enable_w) |
| 1163 | 1163 | AM_RANGE(0x5003, 0x5003) AM_WRITE(pacman_flipscreen_w) |
| 1164 | AM_RANGE(0x5007, 0x5007) AM_WRITE | |
| 1164 | AM_RANGE(0x5007, 0x5007) AM_WRITE | |
| 1165 | 1165 | AM_RANGE(0x5040, 0x505f) AM_DEVWRITE("namco", pacman_sound_w) AM_BASE(&pacman_soundregs) |
| 1166 | 1166 | AM_RANGE(0x50c0, 0x50c0) AM_WRITE(watchdog_reset_w) |
| 1167 | 1167 | AM_RANGE(0x5000, 0x503f) AM_READ_PORT("IN0") /* IN0 */ |
| 1168 | 1168 | AM_RANGE(0x5040, 0x507f) AM_READ_PORT("IN1") /* IN1 */ |
| 1169 | 1169 | AM_RANGE(0x5080, 0x50bf) AM_READ_PORT("DSW1") /* DSW1 */ |
| 1170 | 1170 | AM_RANGE(0x50c0, 0x50ff) AM_READ_PORT("DSW2") /* DSW2 */ |
| 1171 | AM_RANGE(0x5100, 0x5100) AM_WRITE | |
| 1171 | AM_RANGE(0x5100, 0x5100) AM_WRITE | |
| 1172 | 1172 | AM_RANGE(0x6000, 0x6000) AM_WRITE(bigbucks_bank_w) |
| 1173 | 1173 | AM_RANGE(0x8000, 0x9fff) AM_ROM |
| 1174 | 1174 | ADDRESS_MAP_END |
| r4470 | r4471 | |
| 1183 | 1183 | AM_RANGE(0x4ff0, 0x4fff) AM_MIRROR(0xa000) AM_RAM AM_BASE(&spriteram) AM_SIZE(&spriteram_size) |
| 1184 | 1184 | AM_RANGE(0x5000, 0x5000) AM_MIRROR(0xaf38) AM_WRITE(interrupt_enable_w) |
| 1185 | 1185 | AM_RANGE(0x5001, 0x5001) AM_MIRROR(0xaf38) AM_DEVWRITE("namco", pacman_sound_enable_w) |
| 1186 | AM_RANGE(0x5002, 0x5002) AM_MIRROR(0xaf38) AM_WRITE | |
| 1186 | AM_RANGE(0x5002, 0x5002) AM_MIRROR(0xaf38) AM_WRITE | |
| 1187 | 1187 | AM_RANGE(0x5003, 0x5003) AM_MIRROR(0xaf38) AM_WRITE(pacman_flipscreen_w) |
| 1188 | AM_RANGE(0x5004, 0x5005) AM_MIRROR(0xaf38) AM_WRITE(SMH_NOP) // AM_WRITE(pacman_leds_w) | |
| 1189 | AM_RANGE(0x5006, 0x5006) AM_MIRROR(0xaf38) AM_WRITE(SMH_NOP) // AM_WRITE(pacman_coin_lockout_global_w) | |
| 1188 | AM_RANGE(0x5004, 0x5005) AM_MIRROR(0xaf38) AM_WRITENOP // AM_WRITE(pacman_leds_w) | |
| 1189 | AM_RANGE(0x5006, 0x5006) AM_MIRROR(0xaf38) AM_WRITENOP // AM_WRITE(pacman_coin_lockout_global_w) | |
| 1190 | 1190 | AM_RANGE(0x5007, 0x5007) AM_MIRROR(0xaf38) AM_WRITE(pacman_coin_counter_w) |
| 1191 | 1191 | AM_RANGE(0x5040, 0x505f) AM_MIRROR(0xaf00) AM_DEVWRITE("namco", pacman_sound_w) AM_BASE(&pacman_soundregs) |
| 1192 | 1192 | AM_RANGE(0x5060, 0x506f) AM_MIRROR(0xaf00) AM_WRITE(SMH_RAM) AM_BASE(&spriteram_2) |
| 1193 | AM_RANGE(0x5070, 0x507f) AM_MIRROR(0xaf00) AM_WRITE(SMH_NOP) | |
| 1194 | AM_RANGE(0x5080, 0x5080) AM_MIRROR(0xaf3f) AM_WRITE(SMH_NOP) | |
| 1193 | AM_RANGE(0x5070, 0x507f) AM_MIRROR(0xaf00) AM_WRITENOP | |
| 1194 | AM_RANGE(0x5080, 0x5080) AM_MIRROR(0xaf3f) AM_WRITENOP | |
| 1195 | 1195 | AM_RANGE(0x50c0, 0x50c0) AM_MIRROR(0xaf3f) AM_WRITE(watchdog_reset_w) |
| 1196 | 1196 | AM_RANGE(0x5000, 0x5000) AM_MIRROR(0xaf3f) AM_READ_PORT("IN0") /* IN0 */ |
| 1197 | 1197 | AM_RANGE(0x5040, 0x5040) AM_MIRROR(0xaf3f) AM_READ_PORT("IN1") /* IN1 */ |
| r4470 | r4471 | |
| 1210 | 1210 | AM_RANGE(0x4ff0, 0x4fff) AM_MIRROR(0xa000) AM_RAM AM_BASE(&spriteram) AM_SIZE(&spriteram_size) |
| 1211 | 1211 | AM_RANGE(0x5000, 0x5000) AM_MIRROR(0xaf38) AM_WRITE(interrupt_enable_w) |
| 1212 | 1212 | AM_RANGE(0x5001, 0x5001) AM_MIRROR(0xaf38) AM_DEVWRITE("namco", pacman_sound_enable_w) |
| 1213 | AM_RANGE(0x5002, 0x5002) AM_MIRROR(0xaf38) AM_WRITE | |
| 1213 | AM_RANGE(0x5002, 0x5002) AM_MIRROR(0xaf38) AM_WRITE | |
| 1214 | 1214 | AM_RANGE(0x5003, 0x5003) AM_MIRROR(0xaf38) AM_WRITE(pacman_flipscreen_w) |
| 1215 | AM_RANGE(0x5004, 0x5005) AM_MIRROR(0xaf38) AM_WRITE(SMH_NOP) // AM_WRITE(pacman_leds_w) | |
| 1216 | AM_RANGE(0x5006, 0x5006) AM_MIRROR(0xaf38) AM_WRITE(SMH_NOP) // AM_WRITE(pacman_coin_lockout_global_w) | |
| 1215 | AM_RANGE(0x5004, 0x5005) AM_MIRROR(0xaf38) AM_WRITENOP // AM_WRITE(pacman_leds_w) | |
| 1216 | AM_RANGE(0x5006, 0x5006) AM_MIRROR(0xaf38) AM_WRITENOP // AM_WRITE(pacman_coin_lockout_global_w) | |
| 1217 | 1217 | AM_RANGE(0x5007, 0x5007) AM_MIRROR(0xaf38) AM_WRITE(pacman_coin_counter_w) |
| 1218 | AM_RANGE(0x5040, 0x505f) AM_MIRROR(0xaf00) AM_WRITE | |
| 1218 | AM_RANGE(0x5040, 0x505f) AM_MIRROR(0xaf00) AM_WRITE | |
| 1219 | 1219 | AM_RANGE(0x5060, 0x506f) AM_MIRROR(0xaf00) AM_WRITE(SMH_RAM) AM_BASE(&spriteram_2) |
| 1220 | AM_RANGE(0x5070, 0x507f) AM_MIRROR(0xaf00) AM_WRITE(SMH_NOP) | |
| 1221 | AM_RANGE(0x5080, 0x5080) AM_MIRROR(0xaf3f) AM_WRITE(SMH_NOP) | |
| 1220 | AM_RANGE(0x5070, 0x507f) AM_MIRROR(0xaf00) AM_WRITENOP | |
| 1221 | AM_RANGE(0x5080, 0x5080) AM_MIRROR(0xaf3f) AM_WRITENOP | |
| 1222 | 1222 | AM_RANGE(0x50c0, 0x50c0) AM_MIRROR(0xaf3f) AM_WRITE(watchdog_reset_w) |
| 1223 | 1223 | AM_RANGE(0x5000, 0x5000) AM_MIRROR(0xaf3f) AM_READ_PORT("IN0") |
| 1224 | 1224 | AM_RANGE(0x5080, 0x5080) AM_MIRROR(0xaf3f) AM_READ_PORT("IN1") |
| r4470 | r4471 | |
| 1278 | 1278 | ADDRESS_MAP_END |
| 1279 | 1279 | |
| 1280 | 1280 | static ADDRESS_MAP_START( drivfrcp_readport, ADDRESS_SPACE_IO, 8 ) |
| 1281 | AM_RANGE(0x00, 0x00) AM_READ | |
| 1281 | AM_RANGE(0x00, 0x00) AM_READ | |
| 1282 | 1282 | AM_RANGE(0x01, 0x01) AM_READ(drivfrcp_port1_r) |
| 1283 | 1283 | AM_RANGE(S2650_SENSE_PORT, S2650_SENSE_PORT) AM_READ_PORT("Sense") |
| 1284 | 1284 | ADDRESS_MAP_END |
| 1285 | 1285 | |
| 1286 | 1286 | static ADDRESS_MAP_START( _8bpm_readport, ADDRESS_SPACE_IO, 8 ) |
| 1287 | AM_RANGE(0x00, 0x00) AM_READ | |
| 1287 | AM_RANGE(0x00, 0x00) AM_READ | |
| 1288 | 1288 | AM_RANGE(0x01, 0x01) AM_READ(_8bpm_port1_r) |
| 1289 | AM_RANGE(0xe0, 0xe0) AM_READ | |
| 1289 | AM_RANGE(0xe0, 0xe0) AM_READ | |
| 1290 | 1290 | AM_RANGE(S2650_SENSE_PORT, S2650_SENSE_PORT) AM_READ_PORT("Sense") |
| 1291 | 1291 | ADDRESS_MAP_END |
| 1292 | 1292 | |
| r4470 | r4471 | |
| 4148 | 4148 | ROM_LOAD( "82s126.3m", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */ |
| 4149 | 4149 | ROM_END |
| 4150 | 4150 | |
| 4151 | ROM_START( crushbl2 ) | |
| 4152 | ROM_REGION( 0x10000, "maincpu", 0 ) | |
| 4153 | ROM_LOAD( "cr5.7d", 0x0000, 0x1000, CRC(4954d51d) SHA1(ff973ed961a531f7fc6f45b2c27af317f4cc6a4d) ) | |
| 4154 | ROM_LOAD( "cr6.7e", 0x1000, 0x1000, CRC(27eb4299) SHA1(af2d7fdedcea766045fc2f20ae383024d1c35731) ) | |
| 4155 | ROM_LOAD( "cr7.7h", 0x2000, 0x1000, CRC(d297108e) SHA1(a5bd11f26ba82b66a93d07e8cbc838ad9bd01413) ) | |
| 4156 | ROM_LOAD( "cr8.7j", 0x3000, 0x1000, CRC(bcc40eaf) SHA1(50ffb3cf5cffd7618ceac207f60ca052fc13e38c) ) | |
| 4157 | ||
| 4158 | ROM_REGION( 0x2000, "gfx1", ROMREGION_DISPOSE ) | |
| 4159 | ROM_LOAD( "cr1.5e", 0x0000, 0x0800, CRC(c7617198) SHA1(95b204af0345163f93811cc770ee0ca2851a39c1) ) | |
| 4160 | ROM_LOAD( "cr3.5h", 0x0800, 0x0800, CRC(c15b6967) SHA1(d8f16e2d6af5bf0f610d1e23614c531f67490da9) ) | |
| 4161 | ROM_LOAD( "cr2.5f", 0x1000, 0x0800, CRC(d5bc5cb8) SHA1(269b82ae2b838c72ae06bff77412f22bb779ad2e) ) /* copyright sign was removed */ | |
| 4162 | ROM_LOAD( "cr4.5j", 0x1800, 0x0800, CRC(d35d1caf) SHA1(65dd7861e05651485626465dc97215fed58db551) ) | |
| 4163 | ||
| 4164 | ROM_REGION( 0x0120, "proms", 0 ) | |
| 4165 | ROM_LOAD( "74s288.8a", 0x0000, 0x0020, CRC(ff344446) SHA1(45eb37533da8912645a089b014f3b3384702114a) ) | |
| 4166 | ROM_LOAD( "2s140.4a", 0x0020, 0x0100, CRC(63efb927) SHA1(5c144a613fc4960a1dfd7ead89e7fee258a63171) ) | |
| 4167 | ||
| 4168 | ROM_REGION( 0x0200, "namco", 0 ) /* sound PROMs */ | |
| 4169 | ROM_LOAD( "82s126.1m", 0x0000, 0x0100, CRC(a9cc86bf) SHA1(bbcec0570aeceb582ff8238a4bc8546a23430081) ) | |
| 4170 | ROM_LOAD( "82s126.3m", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */ | |
| 4171 | ROM_END | |
| 4172 | ||
| 4151 | 4173 | ROM_START( crush2 ) |
| 4152 | 4174 | ROM_REGION( 0x10000, "maincpu", 0 ) |
| 4153 | 4175 | ROM_LOAD( "tp1", 0x0000, 0x0800, CRC(f276592e) SHA1(68ebb7d9f70af868d99ec42c26bc55a54ba1f22c) ) |
| r4470 | r4471 | |
| 5703 | 5725 | GAME( 1981, piranhah, puckman, pacman, mspacman, 0, ROT90, "hack", "Piranha (hack)", GAME_SUPPORTS_SAVE ) |
| 5704 | 5726 | GAME( 1981, crush, 0, pacman, maketrax, maketrax, ROT90, "Kural Samno Electric", "Crush Roller (Kural Samno)", GAME_SUPPORTS_SAVE ) |
| 5705 | 5727 | GAME( 1981, crushbl, crush, pacman, maketrax, 0, ROT90, "bootleg", "Crush Roller (bootleg)", GAME_SUPPORTS_SAVE ) |
| 5728 | GAME( 1981, crushbl2, crush, pacman, mbrush, maketrax, ROT90, "bootleg", "Crush Roller (bootleg?)", GAME_SUPPORTS_SAVE ) | |
| 5706 | 5729 | GAME( 1981, crush2, crush, pacman, maketrax, 0, ROT90, "Kural Esco Electric", "Crush Roller (Kural Esco - bootleg?)", GAME_SUPPORTS_SAVE ) |
| 5707 | 5730 | GAME( 1981, crush3, crush, pacman, maketrax, eyes, ROT90, "Kural Electric", "Crush Roller (Kural - bootleg?)", GAME_SUPPORTS_SAVE ) |
| 5708 | 5731 | GAME( 19??, crush4, crush, crush4, crush4, 0, ROT90, "Kural TWT", "Crush Roller (Kural TWT)", GAME_SUPPORTS_SAVE ) |
| r4470 | r4471 | |
|---|---|---|
| 45 | 45 | AM_RANGE(0x100000, 0x103fff) AM_RAM |
| 46 | 46 | |
| 47 | 47 | |
| 48 | AM_RANGE(0x200004, 0x200005) AM_WRITE | |
| 48 | AM_RANGE(0x200004, 0x200005) AM_WRITE | |
| 49 | 49 | |
| 50 | 50 | AM_RANGE(0x400000, 0x41ffff) AM_RAM AM_BASE(&parentj_video) |
| 51 | 51 |
| r4470 | r4471 | |
|---|---|---|
| 192 | 192 | AM_RANGE(0xb000, 0xb00d) AM_DEVREAD("konami2", k007232_r) /* 007232 (chip 2) */ |
| 193 | 193 | AM_RANGE(0xc000, 0xc001) AM_DEVREAD("ym", ym2151_r) /* YM2151 */ |
| 194 | 194 | AM_RANGE(0xd000, 0xd000) AM_READ(soundlatch_r) /* soundlatch_r */ |
| 195 | //AM_RANGE(0xe000, 0xe000) AM_READ | |
| 195 | //AM_RANGE(0xe000, 0xe000) AM_READ | |
| 196 | 196 | ADDRESS_MAP_END |
| 197 | 197 | |
| 198 | 198 | static WRITE8_HANDLER( k007232_bankswitch_w ) |
| r4470 | r4471 | |
| 219 | 219 | /* selecting a different latch for the external port */ |
| 220 | 220 | AM_RANGE(0xb000, 0xb00d) AM_DEVWRITE("konami2", k007232_w) /* 007232 (chip 2) */ |
| 221 | 221 | AM_RANGE(0xc000, 0xc001) AM_DEVWRITE("ym", ym2151_w) /* YM2151 */ |
| 222 | AM_RANGE(0xf000, 0xf000) AM_WRITE | |
| 222 | AM_RANGE(0xf000, 0xf000) AM_WRITE | |
| 223 | 223 | ADDRESS_MAP_END |
| 224 | 224 | |
| 225 | 225 | |
| r4470 | r4471 | |
| 258 | 258 | PORT_DIPSETTING( 0xb0, DEF_STR( 1C_5C ) ) |
| 259 | 259 | PORT_DIPSETTING( 0xa0, DEF_STR( 1C_6C ) ) |
| 260 | 260 | PORT_DIPSETTING( 0x90, DEF_STR( 1C_7C ) ) |
| 261 | // PORT_DIPSETTING( 0x00, "Coin Slot 2 Invalidity" ) | |
| 261 | PORT_DIPSETTING( 0x00, "Invalid" ) | |
| 262 | /* Invalid = both coin slots disabled */ | |
| 262 | 263 | |
| 263 | 264 | PORT_START("DSW2") |
| 264 | 265 | PORT_DIPUNUSED_DIPLOC( 0x01, 0x01, "SW2:1" ) /* Manual says it's not used */ |
| r4470 | r4471 | |
|---|---|---|
| 198 | 198 | AM_RANGE(0x1c00, 0x1c07) AM_WRITE(bwp1_ctrl_w) |
| 199 | 199 | AM_RANGE(0x2000, 0x3fff) AM_WRITE(bwing_scrollram_w) |
| 200 | 200 | AM_RANGE(0x1000, 0x1fff) AM_WRITE(SMH_RAM) // falls through |
| 201 | AM_RANGE(0x4000, 0xffff) AM_WRITE | |
| 201 | AM_RANGE(0x4000, 0xffff) AM_WRITE | |
| 202 | 202 | ADDRESS_MAP_END |
| 203 | 203 | |
| 204 | 204 |
| r4470 | r4471 | |
|---|---|---|
| 272 | 272 | /* Yes, _no_ ram */ |
| 273 | 273 | static ADDRESS_MAP_START( sound2_writemem, ADDRESS_SPACE_PROGRAM, 8 ) |
| 274 | 274 | /* AM_RANGE(0x0000, 0xffff) AM_WRITE(SMH_ROM) avoid cluttering up error.log */ |
| 275 | AM_RANGE(0x0000, 0xffff) AM_WRITE | |
| 275 | AM_RANGE(0x0000, 0xffff) AM_WRITE | |
| 276 | 276 | ADDRESS_MAP_END |
| 277 | 277 | |
| 278 | 278 | static ADDRESS_MAP_START( sound2_io_map, ADDRESS_SPACE_IO, 8 ) |
| r4470 | r4471 | |
|---|---|---|
| 292 | 292 | AM_RANGE(0x04e000, 0x04ffff) AM_WRITE(SMH_RAM) |
| 293 | 293 | AM_RANGE(0x0c0012, 0x0c0013) AM_WRITE(soundlatch_word_w) |
| 294 | 294 | AM_RANGE(0x0c0014, 0x0c0015) AM_WRITE(rshark_ctrl_w) |
| 295 | AM_RANGE(0x0c0018, 0x0c001b) AM_WRITE | |
| 295 | AM_RANGE(0x0c0018, 0x0c001b) AM_WRITE | |
| 296 | 296 | AM_RANGE(0x0c4000, 0x0c400f) AM_WRITE(dooyong_bgscroll16_w) |
| 297 | 297 | AM_RANGE(0x0c4010, 0x0c401f) AM_WRITE(dooyong_bg2scroll16_w) // not used atm |
| 298 | 298 | AM_RANGE(0x0c8000, 0x0c8fff) AM_WRITE(paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE(&paletteram16) |
| r4470 | r4471 | |
|---|---|---|
| 123 | 123 | AM_RANGE(0x1400, 0x1bff) AM_RAM |
| 124 | 124 | AM_RANGE(0x1c00, 0x1fff) AM_RAM_WRITE(brkthru_bgram_w) AM_BASE(&videoram) AM_SIZE(&videoram_size) |
| 125 | 125 | AM_RANGE(0x0000, 0x00ff) AM_RAM AM_BASE(&spriteram) AM_SIZE(&spriteram_size) |
| 126 | AM_RANGE(0x0100, 0x01ff) AM_WRITE | |
| 126 | AM_RANGE(0x0100, 0x01ff) AM_WRITE | |
| 127 | 127 | AM_RANGE(0x0800, 0x0800) AM_READ_PORT("P1") |
| 128 | 128 | AM_RANGE(0x0801, 0x0801) AM_READ_PORT("P2") |
| 129 | 129 | AM_RANGE(0x0802, 0x0802) AM_READ_PORT("DSW1") |
| r4470 | r4471 | |
|---|---|---|
| 296 | 296 | AM_RANGE(0x600000, 0x601fff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram32) AM_SIZE(&spriteram_size ) // Sprites |
| 297 | 297 | AM_RANGE(0x700000, 0x703fff) AM_WRITE(paletteram32_xRRRRRGGGGGBBBBB_dword_w) AM_BASE(&paletteram32) // Palette |
| 298 | 298 | |
| 299 | AM_RANGE(0x800000, 0x800003) AM_WRITE(SMH_NOP) // Clear buffered inputs | |
| 300 | AM_RANGE(0x810000, 0x810003) AM_WRITE(SMH_NOP) // Clear buffered inputs | |
| 299 | AM_RANGE(0x800000, 0x800003) AM_WRITENOP // Clear buffered inputs | |
| 300 | AM_RANGE(0x810000, 0x810003) AM_WRITENOP // Clear buffered inputs | |
| 301 | 301 | |
| 302 | 302 | AM_RANGE(0x8c0000, 0x8c001f) AM_WRITE(fuuki32_vregs_w) AM_BASE(&fuuki32_vregs) // Video Registers |
| 303 | 303 | |
| r4470 | r4471 | |
| 351 | 351 | static ADDRESS_MAP_START( fuuki32_sound_io_map, ADDRESS_SPACE_IO, 8 ) |
| 352 | 352 | ADDRESS_MAP_GLOBAL_MASK(0xff) |
| 353 | 353 | AM_RANGE(0x00, 0x00) AM_WRITE(fuuki32_sound_bw_w) |
| 354 | AM_RANGE(0x30, 0x30) AM_WRITE | |
| 354 | AM_RANGE(0x30, 0x30) AM_WRITE | |
| 355 | 355 | AM_RANGE(0x40, 0x45) AM_DEVREADWRITE("ymf", ymf278b_r, ymf278b_w) |
| 356 | 356 | ADDRESS_MAP_END |
| 357 | 357 |
| r4470 | r4471 | |
|---|---|---|
| 585 | 585 | AM_RANGE(0x1400, 0x17ff) AM_WRITE(dec8_pf0_data_w) AM_BASE(&dec8_pf0_data) |
| 586 | 586 | AM_RANGE(0x1800, 0x1801) AM_WRITE(srdarwin_i8751_w) |
| 587 | 587 | AM_RANGE(0x1802, 0x1802) AM_WRITE(i8751_reset_w) /* Maybe.. */ |
| 588 | AM_RANGE(0x1803, 0x1803) AM_WRITE | |
| 588 | AM_RANGE(0x1803, 0x1803) AM_WRITE | |
| 589 | 589 | AM_RANGE(0x1804, 0x1804) AM_WRITE(buffer_spriteram_w) /* DMA */ |
| 590 | 590 | AM_RANGE(0x1805, 0x1806) AM_WRITE(srdarwin_control_w) /* Scroll & Bank */ |
| 591 | 591 | AM_RANGE(0x2000, 0x2000) AM_WRITE(dec8_sound_w) /* Sound */ |
| r4470 | r4471 | |
| 657 | 657 | AM_RANGE(0x3c80, 0x3c80) AM_WRITE(buffer_spriteram_w) /* DMA */ |
| 658 | 658 | AM_RANGE(0x3d00, 0x3d00) AM_WRITE(dec8_bank_w) /* BNKS */ |
| 659 | 659 | AM_RANGE(0x3d80, 0x3d80) AM_WRITE(oscar_sound_w) /* SOUN */ |
| 660 | AM_RANGE(0x3e00, 0x3e00) AM_WRITE | |
| 660 | AM_RANGE(0x3e00, 0x3e00) AM_WRITE | |
| 661 | 661 | AM_RANGE(0x3e80, 0x3e83) AM_WRITE(oscar_int_w) |
| 662 | 662 | AM_RANGE(0x4000, 0xffff) AM_WRITE(SMH_ROM) |
| 663 | 663 | ADDRESS_MAP_END |
| r4470 | r4471 | |
| 891 | 891 | AM_RANGE(0x3000, 0x37ff) AM_READ(SMH_RAM) /* Sprites */ |
| 892 | 892 | AM_RANGE(0x3800, 0x3800) AM_READ_PORT("DSW0") /* Dip 1 */ |
| 893 | 893 | AM_RANGE(0x3801, 0x3801) AM_READ_PORT("DSW1") /* Dip 2 */ |
| 894 | AM_RANGE(0x3808, 0x3808) AM_READ | |
| 894 | AM_RANGE(0x3808, 0x3808) AM_READ | |
| 895 | 895 | AM_RANGE(0x380a, 0x380a) AM_READ_PORT("IN1") /* Player 2 + VBL */ |
| 896 | 896 | AM_RANGE(0x380b, 0x380b) AM_READ_PORT("IN0") /* Player 1 */ |
| 897 | 897 | AM_RANGE(0x383a, 0x383a) AM_READ(i8751_h_r) |
| r4470 | r4471 | |
|---|---|---|
| 153 | 153 | AM_RANGE(0xf000, 0xf7ff) AM_READWRITE(SMH_BANK2, SMH_ROM) |
| 154 | 154 | AM_RANGE(0xf800, 0xfbff) AM_READWRITE(shared_r, shared_w) |
| 155 | 155 | AM_RANGE(0xfc00, 0xfc00) AM_WRITE(tbowlc_bankswitch_w) |
| 156 | AM_RANGE(0xfc01, 0xfc01) AM_WRITE | |
| 156 | AM_RANGE(0xfc01, 0xfc01) AM_WRITE | |
| 157 | 157 | AM_RANGE(0xfc02, 0xfc02) AM_WRITE(tbowl_trigger_nmi) /* ? */ |
| 158 | AM_RANGE(0xfc03, 0xfc03) AM_WRITE(SMH_NOP) /* ? */ | |
| 159 | AM_RANGE(0xfc06, 0xfc06) AM_WRITE(SMH_NOP) /* ? */ | |
| 158 | AM_RANGE(0xfc03, 0xfc03) AM_WRITENOP /* ? */ | |
| 159 | AM_RANGE(0xfc06, 0xfc06) AM_WRITENOP /* ? */ | |
| 160 | 160 | ADDRESS_MAP_END |
| 161 | 161 | |
| 162 | 162 | /* Board A */ |
| r4470 | r4471 | |
| 207 | 207 | AM_RANGE(0xe000, 0xe001) AM_WRITE(tbowl_adpcm_end_w) |
| 208 | 208 | AM_RANGE(0xe002, 0xe003) AM_WRITE(tbowl_adpcm_start_w) |
| 209 | 209 | AM_RANGE(0xe004, 0xe005) AM_WRITE(tbowl_adpcm_vol_w) |
| 210 | AM_RANGE(0xe006, 0xe006) AM_WRITE(SMH_NOP) | |
| 211 | AM_RANGE(0xe007, 0xe007) AM_WRITE(SMH_NOP) /* NMI acknowledge */ | |
| 210 | AM_RANGE(0xe006, 0xe006) AM_WRITENOP | |
| 211 | AM_RANGE(0xe007, 0xe007) AM_WRITENOP /* NMI acknowledge */ | |
| 212 | 212 | AM_RANGE(0xe010, 0xe010) AM_READ(soundlatch_r) |
| 213 | 213 | ADDRESS_MAP_END |
| 214 | 214 |
| r4470 | r4471 | |
|---|---|---|
| 376 | 376 | ROM_END |
| 377 | 377 | |
| 378 | 378 | |
| 379 | GAME( 1986, battlane, 0, battlane, battlane, 0, ROT90, "Technos (Taito license)", "Battle Lane! Vol. 5 (set 1)", 0 ) | |
| 380 | GAME( 1986, battlan2, battlane, battlane, battlane, 0, ROT90, "Technos (Taito license)", "Battle Lane! Vol. 5 (set 2)", 0 ) | |
| 381 | GAME( 1986, battlan3, battlane, battlane, battlane, 0, ROT90, "Technos (Taito license)", "Battle Lane! Vol. 5 (set 3)", 0 ) | |
| 379 | GAME( 1986, battlane, 0, battlane, battlane, 0, ROT90, "Technos Japan (Taito license)", "Battle Lane! Vol. 5 (set 1)", 0 ) | |
| 380 | GAME( 1986, battlan2, battlane, battlane, battlane, 0, ROT90, "Technos Japan (Taito license)", "Battle Lane! Vol. 5 (set 2)", 0 ) | |
| 381 | GAME( 1986, battlan3, battlane, battlane, battlane, 0, ROT90, "Technos Japan (Taito license)", "Battle Lane! Vol. 5 (set 3)", 0 ) |
| r4470 | r4471 | |
|---|---|---|
| 607 | 607 | AM_RANGE(0xe08000, 0xe08003) AM_WRITE(latch_w) |
| 608 | 608 | AM_RANGE(0xe0a000, 0xe0a003) AM_WRITE(atarigen_scanline_int_ack32_w) |
| 609 | 609 | AM_RANGE(0xe0c000, 0xe0c003) AM_WRITE(atarigen_video_int_ack32_w) |
| 610 | AM_RANGE(0xe0e000, 0xe0e003) AM_WRITE | |
| 610 | AM_RANGE(0xe0e000, 0xe0e003) AM_WRITE | |
| 611 | 611 | AM_RANGE(0xe80000, 0xe80003) AM_READ_PORT("P1_P2") |
| 612 | 612 | AM_RANGE(0xe82000, 0xe82003) AM_READ(special_port2_r) |
| 613 | 613 | AM_RANGE(0xe82004, 0xe82007) AM_READ(special_port3_r) |
| r4470 | r4471 | |
|---|---|---|
| 175 | 175 | AM_RANGE(0xa000, 0xa000) AM_READWRITE(thepit_input_port_0_r, SMH_NOP) // Not hooked up according to the schematics |
| 176 | 176 | AM_RANGE(0xa800, 0xa800) AM_READ_PORT("IN1") |
| 177 | 177 | AM_RANGE(0xb000, 0xb000) AM_READ_PORT("DSW") AM_WRITE(interrupt_enable_w) |
| 178 | AM_RANGE(0xb001, 0xb001) AM_WRITE(SMH_NOP) // Unused, but initialized | |
| 179 | AM_RANGE(0xb002, 0xb002) AM_WRITE(SMH_NOP) // coin_lockout_w | |
| 178 | AM_RANGE(0xb001, 0xb001) AM_WRITENOP // Unused, but initialized | |
| 179 | AM_RANGE(0xb002, 0xb002) AM_WRITENOP // coin_lockout_w | |
| 180 | 180 | AM_RANGE(0xb003, 0xb003) AM_WRITE(thepit_sound_enable_w) |
| 181 | AM_RANGE(0xb004, 0xb005) AM_WRITE | |
| 181 | AM_RANGE(0xb004, 0xb005) AM_WRITE | |
| 182 | 182 | AM_RANGE(0xb006, 0xb006) AM_WRITE(thepit_flip_screen_x_w) |
| 183 | 183 | AM_RANGE(0xb007, 0xb007) AM_WRITE(thepit_flip_screen_y_w) |
| 184 | 184 | AM_RANGE(0xb800, 0xb800) AM_READWRITE(watchdog_reset_r, soundlatch_w) |
| r4470 | r4471 | |
| 196 | 196 | AM_RANGE(0xa000, 0xa000) AM_READ(thepit_input_port_0_r) |
| 197 | 197 | AM_RANGE(0xa800, 0xa800) AM_READ_PORT("IN1") |
| 198 | 198 | AM_RANGE(0xb000, 0xb000) AM_READ_PORT("DSW") AM_WRITE(interrupt_enable_w) |
| 199 | AM_RANGE(0xb001, 0xb001) AM_WRITE(SMH_NOP) // Unused, but initialized | |
| 200 | AM_RANGE(0xb002, 0xb002) AM_WRITE(SMH_NOP) // coin_lockout_w | |
| 199 | AM_RANGE(0xb001, 0xb001) AM_WRITENOP // Unused, but initialized | |
| 200 | AM_RANGE(0xb002, 0xb002) AM_WRITENOP // coin_lockout_w | |
| 201 | 201 | AM_RANGE(0xb003, 0xb003) AM_WRITE(thepit_sound_enable_w) |
| 202 | AM_RANGE(0xb004, 0xb004) AM_WRITE | |
| 202 | AM_RANGE(0xb004, 0xb004) AM_WRITE | |
| 203 | 203 | AM_RANGE(0xb005, 0xb005) AM_WRITE(intrepid_graphics_bank_w) |
| 204 | 204 | AM_RANGE(0xb006, 0xb006) AM_WRITE(thepit_flip_screen_x_w) |
| 205 | 205 | AM_RANGE(0xb007, 0xb007) AM_WRITE(thepit_flip_screen_y_w) |
| r4470 | r4471 | |
|---|---|---|
| 285 | 285 | AM_RANGE(0xc000, 0xc7ff) AM_WRITE(changela_mem_device_w) /* River-Tree RAMs, slope ROM, tree ROM */ |
| 286 | 286 | |
| 287 | 287 | /* LS138 - U16 */ |
| 288 | AM_RANGE(0xc800, 0xc800) AM_WRITE | |
| 288 | AM_RANGE(0xc800, 0xc800) AM_WRITE | |
| 289 | 289 | AM_RANGE(0xc900, 0xc900) AM_WRITE(changela_mem_device_select_w) /* selects the memory device to be accessible at 0xc000-0xc7ff */ |
| 290 | 290 | AM_RANGE(0xca00, 0xca00) AM_WRITE(changela_slope_rom_addr_hi_w) |
| 291 | 291 | AM_RANGE(0xcb00, 0xcb00) AM_WRITE(changela_slope_rom_addr_lo_w) |
| r4470 | r4471 | |
| 296 | 296 | /* LS259 - U44 */ |
| 297 | 297 | AM_RANGE(0xd020, 0xd020) AM_WRITE(changela_collision_reset_0) |
| 298 | 298 | AM_RANGE(0xd021, 0xd022) AM_WRITE(changela_coin_counter_w) |
| 299 | //AM_RANGE(0xd023, 0xd023) AM_WRITE | |
| 299 | //AM_RANGE(0xd023, 0xd023) AM_WRITE | |
| 300 | 300 | AM_RANGE(0xd024, 0xd024) AM_WRITE(mcu_PC0_w) |
| 301 | 301 | AM_RANGE(0xd025, 0xd025) AM_WRITE(changela_collision_reset_1) |
| 302 | AM_RANGE(0xd026, 0xd026) AM_WRITE | |
| 302 | AM_RANGE(0xd026, 0xd026) AM_WRITE | |
| 303 | 303 | |
| 304 | 304 | AM_RANGE(0xd030, 0xd030) AM_WRITE(mcu_w) |
| 305 | 305 | AM_RANGE(0xe000, 0xe000) AM_WRITE(watchdog_reset_w) /* Watchdog */ |
| r4470 | r4471 | |
|---|---|---|
| 17 | 17 | #include "video/konamiic.h" |
| 18 | 18 | #include "sound/2151intf.h" |
| 19 | 19 | #include "sound/k007232.h" |
| 20 | #include "konamipt.h" | |
| 20 | 21 | |
| 21 | ||
| 22 | 22 | /* prototypes */ |
| 23 | 23 | static MACHINE_RESET( crimfght ); |
| 24 | 24 | static KONAMI_SETLINES_CALLBACK( crimfght_banking ); |
| r4470 | r4471 | |
| 120 | 120 | PORT_DIPSETTING( 0x09, DEF_STR( 1C_7C ) ) |
| 121 | 121 | PORT_DIPSETTING( 0x00, "1 Coin/99 Credits" ) |
| 122 | 122 | PORT_DIPUNUSED_DIPLOC( 0xf0, 0xf0, "SW1:5,6,7,8" ) /* Manual says these are unused */ |
| 123 | /* PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) ) | |
| 124 | PORT_DIPSETTING( 0x20, DEF_STR( 4C_1C ) ) | |
| 125 | PORT_DIPSETTING( 0x50, DEF_STR( 3C_1C ) ) | |
| 126 | PORT_DIPSETTING( 0x80, DEF_STR( 2C_1C ) ) | |
| 127 | PORT_DIPSETTING( 0x40, DEF_STR( 3C_2C ) ) | |
| 128 | PORT_DIPSETTING( 0x10, DEF_STR( 4C_3C ) ) | |
| 129 | PORT_DIPSETTING( 0xf0, DEF_STR( 1C_1C ) ) | |
| 130 | PORT_DIPSETTING( 0x30, DEF_STR( 3C_4C ) ) | |
| 131 | PORT_DIPSETTING( 0x70, DEF_STR( 2C_3C ) ) | |
| 132 | PORT_DIPSETTING( 0xe0, DEF_STR( 1C_2C ) ) | |
| 133 | PORT_DIPSETTING( 0x60, DEF_STR( 2C_5C ) ) | |
| 134 | PORT_DIPSETTING( 0xd0, DEF_STR( 1C_3C ) ) | |
| 135 | PORT_DIPSETTING( 0xc0, DEF_STR( 1C_4C ) ) | |
| 136 | PORT_DIPSETTING( 0xb0, DEF_STR( 1C_5C ) ) | |
| 137 | PORT_DIPSETTING( 0xa0, DEF_STR( 1C_6C ) ) | |
| 138 | PORT_DIPSETTING( 0x90, DEF_STR( 1C_7C ) ) | |
| 139 | PORT_DIPSETTING( 0x00, "Invalid" ) */ | |
| 140 | 123 | |
| 141 | 124 | PORT_START("DSW2") |
| 142 | 125 | PORT_DIPUNKNOWN_DIPLOC( 0x01, 0x01, "SW2:1" ) /* Manual says these are unused */ |
| r4470 | r4471 | |
| 163 | 146 | PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 164 | 147 | |
| 165 | 148 | PORT_START("P1") |
| 166 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) | |
| 167 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) | |
| 168 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) | |
| 169 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) | |
| 170 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) | |
| 171 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) | |
| 172 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 173 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 149 | KONAMI8_B12_UNK(1) | |
| 174 | 150 | |
| 175 | 151 | PORT_START("P2") |
| 176 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) | |
| 177 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) | |
| 178 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) | |
| 179 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) | |
| 180 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) | |
| 181 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) | |
| 182 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 183 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 152 | KONAMI8_B12_UNK(2) | |
| 184 | 153 | |
| 185 | 154 | PORT_START("P3") |
| 186 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(3) | |
| 187 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(3) | |
| 188 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(3) | |
| 189 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(3) | |
| 190 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3) | |
| 191 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3) | |
| 192 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 193 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 155 | KONAMI8_B12_UNK(3) | |
| 194 | 156 | |
| 195 | 157 | PORT_START("P4") |
| 196 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(4) | |
| 197 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(4) | |
| 198 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(4) | |
| 199 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(4) | |
| 200 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(4) | |
| 201 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(4) | |
| 202 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 203 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 158 | KONAMI8_B12_UNK(1) | |
| 204 | 159 | |
| 205 | 160 | PORT_START("SYSTEM") |
| 206 | 161 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) |
| r4470 | r4471 | |
| 217 | 172 | PORT_INCLUDE( crimfght ) |
| 218 | 173 | |
| 219 | 174 | PORT_MODIFY("DSW1") |
| 220 | PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW1:5,6,7,8") | |
| 221 | PORT_DIPSETTING( 0x20, DEF_STR( 4C_1C ) ) | |
| 222 | PORT_DIPSETTING( 0x50, DEF_STR( 3C_1C ) ) | |
| 223 | PORT_DIPSETTING( 0x80, DEF_STR( 2C_1C ) ) | |
| 224 | PORT_DIPSETTING( 0x40, DEF_STR( 3C_2C ) ) | |
| 225 | PORT_DIPSETTING( 0x10, DEF_STR( 4C_3C ) ) | |
| 226 | PORT_DIPSETTING( 0xf0, DEF_STR( 1C_1C ) ) | |
| 227 | PORT_DIPSETTING( 0x30, DEF_STR( 3C_4C ) ) | |
| 228 | PORT_DIPSETTING( 0x70, DEF_STR( 2C_3C ) ) | |
| 229 | PORT_DIPSETTING( 0xe0, DEF_STR( 1C_2C ) ) | |
| 230 | PORT_DIPSETTING( 0x60, DEF_STR( 2C_5C ) ) | |
| 231 | PORT_DIPSETTING( 0xd0, DEF_STR( 1C_3C ) ) | |
| 232 | PORT_DIPSETTING( 0xc0, DEF_STR( 1C_4C ) ) | |
| 233 | PORT_DIPSETTING( 0xb0, DEF_STR( 1C_5C ) ) | |
| 234 | PORT_DIPSETTING( 0xa0, DEF_STR( 1C_6C ) ) | |
| 235 | PORT_DIPSETTING( 0x90, DEF_STR( 1C_7C ) ) | |
| 236 | // PORT_DIPSETTING( 0x00, "Invalid" ) | |
| 175 | KONAMI_COINAGE_LOC(DEF_STR( Free_Play ), "No Coin B", SW1) | |
| 176 | /* "No Coin B" = coins produce sound, but no effect on coin counter */ | |
| 237 | 177 | |
| 238 | 178 | PORT_MODIFY("DSW2") |
| 239 | 179 | PORT_DIPNAME( 0x03, 0x02, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW2:1,2") |
| r4470 | r4471 | |
| 243 | 183 | PORT_DIPSETTING( 0x00, "4" ) |
| 244 | 184 | |
| 245 | 185 | PORT_MODIFY("P1") |
| 246 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) | |
| 247 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 ) | |
| 186 | KONAMI8_B123_START(1) | |
| 248 | 187 | |
| 249 | 188 | PORT_MODIFY("P2") |
| 250 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) | |
| 251 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 ) | |
| 189 | KONAMI8_B123_START(2) | |
| 252 | 190 | |
| 253 | 191 | PORT_MODIFY("P3") |
| 254 | 192 | PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) |
| r4470 | r4471 | |
|---|---|---|
| 719 | 719 | } |
| 720 | 720 | |
| 721 | 721 | static ADDRESS_MAP_START( rabbit_writemem, ADDRESS_SPACE_PROGRAM, 32 ) |
| 722 | AM_RANGE(0x000000, 0x000003) AM_WRITE(SMH_NOP) // bug in code / emulation? | |
| 723 | AM_RANGE(0x000010, 0x000013) AM_WRITE(SMH_NOP) // bug in code / emulation? | |
| 724 | AM_RANGE(0x000024, 0x000027) AM_WRITE(SMH_NOP) // bug in code / emulation? | |
| 725 | AM_RANGE(0x00719C, 0x00719F) AM_WRITE(SMH_NOP) // bug in code / emulation? | |
| 722 | AM_RANGE(0x000000, 0x000003) AM_WRITENOP // bug in code / emulation? | |
| 723 | AM_RANGE(0x000010, 0x000013) AM_WRITENOP // bug in code / emulation? | |
| 724 | AM_RANGE(0x000024, 0x000027) AM_WRITENOP // bug in code / emulation? | |
| 725 | AM_RANGE(0x00719C, 0x00719F) AM_WRITENOP // bug in code / emulation? | |
| 726 | 726 | AM_RANGE(0x000000, 0x1fffff) AM_WRITE(SMH_ROM) |
| 727 | 727 | AM_RANGE(0x200000, 0x200003) AM_WRITE(rabbit_eeprom_write) |
| 728 | 728 | /* this lot are probably gfxchip/blitter etc. related */ |
| r4470 | r4471 | |
|---|---|---|
| 332 | 332 | AM_RANGE(0x3b0000, 0x3b0001) AM_READ_PORT("DSWB") |
| 333 | 333 | AM_RANGE(0x3c0000, 0x3c0001) AM_WRITE(watchdog_reset16_w) |
| 334 | 334 | AM_RANGE(0x3d0000, 0x3d0001) AM_READNOP |
| 335 | AM_RANGE(0x3e0000, 0x3e0001) AM_WRITE(taitosound_port16_lsb_w) | |
| 336 | AM_RANGE(0x3e0002, 0x3e0003) AM_READWRITE(taitosound_comm16_lsb_r, taitosound_comm16_lsb_w) | |
| 335 | AM_RANGE(0x3e0000, 0x3e0001) AM_WRITE8(taitosound_port_w, 0x00ff) | |
| 336 | AM_RANGE(0x3e0002, 0x3e0003) AM_READWRITE8(taitosound_comm_r, taitosound_comm_w, 0x00ff) | |
| 337 | 337 | AM_RANGE(0x800000, 0x8007ff) AM_READWRITE(bonzeadv_cchip_ram_r, bonzeadv_cchip_ram_w) |
| 338 | 338 | AM_RANGE(0x800802, 0x800803) AM_READWRITE(bonzeadv_cchip_ctrl_r, bonzeadv_cchip_ctrl_w) |
| 339 | 339 | AM_RANGE(0x800c00, 0x800c01) AM_WRITE(bonzeadv_cchip_bank_w) |
| r4470 | r4471 | |
| 348 | 348 | AM_RANGE(0x1076f0, 0x1076f1) AM_READNOP /* Mofflott init does dummy reads here */ |
| 349 | 349 | AM_RANGE(0x200000, 0x20000f) AM_READWRITE(TC0110PCR_word_r, TC0110PCR_step1_word_w) |
| 350 | 350 | AM_RANGE(0x3a0000, 0x3a0003) AM_WRITE(asuka_spritectrl_w) |
| 351 | AM_RANGE(0x3e0000, 0x3e0001) AM_READWRITE(SMH_NOP, taitosound_port16_lsb_w) | |
| 352 | AM_RANGE(0x3e0002, 0x3e0003) AM_READWRITE(taitosound_comm16_lsb_r, taitosound_comm16_lsb_w) | |
| 351 | AM_RANGE(0x3e0000, 0x3e0001) AM_READNOP AM_WRITE8(taitosound_port_w, 0x00ff) | |
| 352 | AM_RANGE(0x3e0002, 0x3e0003) AM_READWRITE8(taitosound_comm_r, taitosound_comm_w, 0x00ff) | |
| 353 | 353 | AM_RANGE(0x400000, 0x40000f) AM_READWRITE(TC0220IOC_halfword_r, TC0220IOC_halfword_w) |
| 354 | 354 | AM_RANGE(0xc00000, 0xc0ffff) AM_READWRITE(TC0100SCN_word_0_r, TC0100SCN_word_0_w) /* tilemaps */ |
| 355 | 355 | AM_RANGE(0xc10000, 0xc103ff) AM_WRITENOP /* error in Asuka init code */ |
| r4470 | r4471 | |
| 360 | 360 | static ADDRESS_MAP_START( cadash_map, ADDRESS_SPACE_PROGRAM, 16 ) |
| 361 | 361 | AM_RANGE(0x000000, 0x07ffff) AM_ROM |
| 362 | 362 | AM_RANGE(0x080000, 0x080003) AM_WRITE(asuka_spritectrl_w) |
| 363 | AM_RANGE(0x0c0000, 0x0c0001) AM_READWRITE(SMH_NOP, taitosound_port16_lsb_w) | |
| 364 | AM_RANGE(0x0c0002, 0x0c0003) AM_READWRITE(taitosound_comm16_lsb_r, taitosound_comm16_lsb_w) | |
| 363 | AM_RANGE(0x0c0000, 0x0c0001) AM_READNOP AM_WRITE8(taitosound_port_w, 0x00ff) | |
| 364 | AM_RANGE(0x0c0002, 0x0c0003) AM_READWRITE8(taitosound_comm_r, taitosound_comm_w, 0x00ff) | |
| 365 | 365 | AM_RANGE(0x100000, 0x107fff) AM_RAM |
| 366 | 366 | AM_RANGE(0x800000, 0x800fff) AM_RAM /* network ram */ |
| 367 | 367 | AM_RANGE(0x900000, 0x90000f) AM_READWRITE(TC0220IOC_halfword_r, TC0220IOC_halfword_w) |
| r4470 | r4471 | |
| 378 | 378 | AM_RANGE(0x300000, 0x30000f) AM_READWRITE(TC0220IOC_halfword_r, TC0220IOC_halfword_w) |
| 379 | 379 | AM_RANGE(0x400000, 0x40000f) AM_READ(TC0220IOC_halfword_r) /* service mode mirror */ |
| 380 | 380 | AM_RANGE(0x4a0000, 0x4a0003) AM_WRITE(asuka_spritectrl_w) |
| 381 | AM_RANGE(0x4e0000, 0x4e0001) AM_READWRITE(SMH_NOP, taitosound_port16_lsb_w) | |
| 382 | AM_RANGE(0x4e0002, 0x4e0003) AM_READWRITE(taitosound_comm16_lsb_r, taitosound_comm16_lsb_w) | |
| 381 | AM_RANGE(0x4e0000, 0x4e0001) AM_READNOP AM_WRITE8(taitosound_port_w, 0x00ff) | |
| 382 | AM_RANGE(0x4e0002, 0x4e0003) AM_READWRITE8(taitosound_comm_r, taitosound_comm_w, 0x00ff) | |
| 383 | 383 | AM_RANGE(0xc00000, 0xc03fff) AM_READWRITE(PC090OJ_word_0_r, PC090OJ_word_0_w) /* sprite ram */ |
| 384 | 384 | AM_RANGE(0xc00000, 0xc0ffff) AM_WRITE(TC0100SCN_word_0_w) /* service mode mirror */ |
| 385 | 385 | AM_RANGE(0xd00000, 0xd0ffff) AM_READWRITE(TC0100SCN_word_0_r, TC0100SCN_word_0_w) /* tilemaps */ |
| r4470 | r4471 | |
|---|---|---|
| 134 | 134 | } |
| 135 | 135 | |
| 136 | 136 | |
| 137 | static ADDRESS_MAP_START( triplhnt_readmem, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 138 | AM_RANGE(0x0000, 0x00ff) AM_READ(SMH_RAM) AM_MIRROR(0x300) | |
| 137 | static ADDRESS_MAP_START( triplhnt_map, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 138 | ADDRESS_MAP_GLOBAL_MASK(0x7fff) | |
| 139 | AM_RANGE(0x0000, 0x00ff) AM_RAM AM_MIRROR(0x300) | |
| 140 | AM_RANGE(0x0400, 0x04ff) AM_WRITE(SMH_RAM) AM_BASE(&triplhnt_playfield_ram) | |
| 141 | AM_RANGE(0x0800, 0x080f) AM_WRITE(SMH_RAM) AM_BASE(&triplhnt_vpos_ram) | |
| 142 | AM_RANGE(0x0810, 0x081f) AM_WRITE(SMH_RAM) AM_BASE(&triplhnt_hpos_ram) | |
| 143 | AM_RANGE(0x0820, 0x082f) AM_WRITE(SMH_RAM) AM_BASE(&triplhnt_orga_ram) | |
| 144 | AM_RANGE(0x0830, 0x083f) AM_WRITE(SMH_RAM) AM_BASE(&triplhnt_code_ram) | |
| 139 | 145 | AM_RANGE(0x0c00, 0x0c00) AM_READ_PORT("0C00") |
| 140 | 146 | AM_RANGE(0x0c08, 0x0c08) AM_READ_PORT("0C08") |
| 141 | 147 | AM_RANGE(0x0c09, 0x0c09) AM_READ_PORT("0C09") |
| r4470 | r4471 | |
| 143 | 149 | AM_RANGE(0x0c0b, 0x0c0b) AM_READ(triplhnt_input_port_4_r) |
| 144 | 150 | AM_RANGE(0x0c10, 0x0c1f) AM_READ(triplhnt_da_latch_r) |
| 145 | 151 | AM_RANGE(0x0c20, 0x0c2f) AM_READ(triplhnt_cmos_r) |
| 146 | AM_RANGE(0x0c30, 0x0c3f) AM_READ(triplhnt_misc_r) | |
| 152 | AM_RANGE(0x0c30, 0x0c3f) AM_READWRITE(triplhnt_misc_r, triplhnt_misc_w) | |
| 147 | 153 | AM_RANGE(0x0c40, 0x0c40) AM_READ_PORT("0C40") |
| 148 | 154 | AM_RANGE(0x0c48, 0x0c48) AM_READ_PORT("0C48") |
| 149 | AM_RANGE(0x7000, 0x7fff) AM_READ(SMH_ROM) /* program */ | |
| 150 | AM_RANGE(0xf800, 0xffff) AM_READ(SMH_ROM) /* program mirror */ | |
| 155 | AM_RANGE(0x7000, 0x7fff) AM_ROM /* program */ | |
| 151 | 156 | ADDRESS_MAP_END |
| 152 | 157 | |
| 153 | static ADDRESS_MAP_START( triplhnt_writemem, ADDRESS_SPACE_PROGRAM, 8 ) | |
| 154 | AM_RANGE(0x0000, 0x00ff) AM_WRITE(SMH_RAM) AM_MIRROR(0x300) | |
| 155 | AM_RANGE(0x0400, 0x04ff) AM_WRITE(SMH_RAM) AM_BASE(&triplhnt_playfield_ram) | |
| 156 | AM_RANGE(0x0800, 0x080f) AM_WRITE(SMH_RAM) AM_BASE(&triplhnt_vpos_ram) | |
| 157 | AM_RANGE(0x0810, 0x081f) AM_WRITE(SMH_RAM) AM_BASE(&triplhnt_hpos_ram) | |
| 158 | AM_RANGE(0x0820, 0x082f) AM_WRITE(SMH_RAM) AM_BASE(&triplhnt_orga_ram) | |
| 159 | AM_RANGE(0x0830, 0x083f) AM_WRITE(SMH_RAM) AM_BASE(&triplhnt_code_ram) | |
| 160 | AM_RANGE(0x0c30, 0x0c3f) AM_WRITE(triplhnt_misc_w) | |
| 161 | AM_RANGE(0x7000, 0x7fff) AM_WRITE(SMH_ROM) /* program */ | |
| 162 | AM_RANGE(0xf800, 0xffff) AM_WRITE(SMH_ROM) /* program mirror */ | |
| 163 | ADDRESS_MAP_END | |
| 164 | 158 | |
| 165 | ||
| 166 | 159 | static INPUT_PORTS_START( triplhnt ) |
| 167 | 160 | PORT_START("0C00") /* 0C00 */ |
| 168 | 161 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START1 ) |
| r4470 | r4471 | |
| 320 | 313 | |
| 321 | 314 | /* basic machine hardware */ |
| 322 | 315 | MDRV_CPU_ADD("maincpu", M6800, 800000) |
| 323 | MDRV_CPU_PROGRAM_MAP(triplhnt_ | |
| 316 | MDRV_CPU_PROGRAM_MAP(triplhnt_ | |
| 324 | 317 | MDRV_CPU_VBLANK_INT("screen", irq0_line_hold) |
| 325 | 318 | |
| 326 | 319 | MDRV_NVRAM_HANDLER(generic_0fill) |
| r4470 | r4471 | |
| 352 | 345 | |
| 353 | 346 | |
| 354 | 347 | ROM_START( triplhnt ) |
| 355 | ROM_REGION( 0x | |
| 348 | ROM_REGION( 0x8 | |
| 356 | 349 | ROM_LOAD_NIB_HIGH( "8404.f1", 0x7000, 0x400, CRC(abc8acd5) SHA1(bcef2abc5829829a01aa21776c3deb2e1bf1d4ac) ) |
| 357 | 350 | ROM_LOAD_NIB_LOW ( "8408.f2", 0x7000, 0x400, CRC(77fcdd3f) SHA1(ce0196abb8d6510aa9a5308f8efd6442e94272c4) ) |
| 358 | 351 | ROM_LOAD_NIB_HIGH( "8403.e1", 0x7400, 0x400, CRC(8d756fa1) SHA1(48a74f710b130d9af0c866483d6fc4ecce4a3ac5) ) |
| r4470 | r4471 | |
| 360 | 353 | ROM_LOAD_NIB_HIGH( "8402.d1", 0x7800, 0x400, CRC(eb75c936) SHA1(48f9d4113a7ab8413a5aacd44b3506afc99d26ce) ) |
| 361 | 354 | ROM_LOAD_NIB_LOW ( "8406.d2", 0x7800, 0x400, CRC(e7ab1186) SHA1(7185fb837966bfb4aa70be3dd948d44f356b0452) ) |
| 362 | 355 | ROM_LOAD_NIB_HIGH( "8401.c1", 0x7C00, 0x400, CRC(7461b05e) SHA1(16573ae655c306a38ff0f29a3c3285d636907f38) ) |
| 363 | ROM_RELOAD( 0xFC00, 0x400 ) | |
| 364 | 356 | ROM_LOAD_NIB_LOW ( "8405.c2", 0x7C00, 0x400, CRC(ba370b97) SHA1(5d799ce6ae56c315ff0abedea7ad9204bacc266b) ) |
| 365 | ROM_RELOAD( 0xFC00, 0x400 ) | |
| 366 | 357 | |
| 367 | 358 | ROM_REGION( 0x1000, "gfx1", ROMREGION_DISPOSE ) /* sprites */ |
| 368 | 359 | ROM_LOAD( "8423.n1", 0x0000, 0x800, CRC(9937d0da) SHA1(abb906c2d9869b09be5172cc7639bb9cda38831b) ) |
| r4470 | r4471 | |
|---|---|---|
| 140 | 140 | PORT_DIPSETTING( 0xb0, DEF_STR( 1C_5C ) ) |
| 141 | 141 | PORT_DIPSETTING( 0xa0, DEF_STR( 1C_6C ) ) |
| 142 | 142 | PORT_DIPSETTING( 0x90, DEF_STR( 1C_7C ) ) |
| 143 | PORT_DIPSETTING( 0x00, "Invalid" ) | |
| 144 | /* Invalid = both coin slots disabled */ | |
| 143 | 145 | |
| 144 | 146 | PORT_START("DSW1") |
| 145 | 147 | PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) ) |
| r4470 | r4471 | |
|---|---|---|
| 332 | 332 | |
| 333 | 333 | AM_RANGE(0x1a8000, 0x1a8003) AM_RAM AM_BASE(&backfire_left_priority) |
| 334 | 334 | AM_RANGE(0x1ac000, 0x1ac003) AM_RAM AM_BASE(&backfire_right_priority) |
| 335 | // AM_RANGE(0x1b0000, 0x1b0003) AM_WRITE | |
| 335 | // AM_RANGE(0x1b0000, 0x1b0003) AM_WRITE | |
| 336 | 336 | |
| 337 | 337 | /* when set to pentometer in test mode */ |
| 338 | 338 | // AM_RANGE(0x1e4000, 0x1e4003) AM_READ(backfire_unknown_wheel_r) |
| r4470 | r4471 | |
|---|---|---|
| 4 | 4 | |
| 5 | 5 | driver by Nicola Salmoria |
| 6 | 6 | |
| 7 | ||
| 8 | 2009-03: | |
| 9 | Added dsw locations and verified factory settings based on Guru's notes | |
| 10 | ||
| 7 | 11 | ***************************************************************************/ |
| 8 | 12 | |
| 9 | 13 | #include "driver.h" |
| r4470 | r4471 | |
| 99 | 103 | AM_RANGE(0x0020, 0x0020) AM_WRITE(watchdog_reset_w) |
| 100 | 104 | AM_RANGE(0x0030, 0x0031) AM_DEVWRITE("konami", k053260_w) |
| 101 | 105 | AM_RANGE(0x0040, 0x0040) AM_WRITE(soundirq_w) |
| 102 | AM_RANGE(0x0100, 0x010f) AM_WRITE | |
| 106 | AM_RANGE(0x0100, 0x010f) AM_WRITE | |
| 103 | 107 | AM_RANGE(0x0200, 0x020f) AM_WRITE(K051316_ctrl_0_w) |
| 104 | 108 | AM_RANGE(0x0300, 0x030f) AM_WRITE(K053244_w) |
| 105 | 109 | AM_RANGE(0x0800, 0x0fff) AM_WRITE(K051316_0_w) |
| r4470 | r4471 | |
| 153 | 157 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 ) |
| 154 | 158 | |
| 155 | 159 | PORT_START("DSW1") |
| 156 | PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) ) | |
| 160 | PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW1:1,2,3,4") | |
| 157 | 161 | PORT_DIPSETTING( 0x02, DEF_STR( 4C_1C ) ) |
| 158 | 162 | PORT_DIPSETTING( 0x05, DEF_STR( 3C_1C ) ) |
| 159 | 163 | PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) ) |
| r4470 | r4471 | |
| 170 | 174 | PORT_DIPSETTING( 0x0a, DEF_STR( 1C_6C ) ) |
| 171 | 175 | PORT_DIPSETTING( 0x09, DEF_STR( 1C_7C ) ) |
| 172 | 176 | PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) |
| 173 | PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) ) | |
| 177 | PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW1:5,6,7,8") | |
| 174 | 178 | PORT_DIPSETTING( 0x20, DEF_STR( 4C_1C ) ) |
| 175 | 179 | PORT_DIPSETTING( 0x50, DEF_STR( 3C_1C ) ) |
| 176 | 180 | PORT_DIPSETTING( 0x80, DEF_STR( 2C_1C ) ) |
| r4470 | r4471 | |
| 186 | 190 | PORT_DIPSETTING( 0xb0, DEF_STR( 1C_5C ) ) |
| 187 | 191 | PORT_DIPSETTING( 0xa0, DEF_STR( 1C_6C ) ) |
| 188 | 192 | PORT_DIPSETTING( 0x90, DEF_STR( 1C_7C ) ) |
| 189 | // PORT_DIPSETTING( 0x00, "Disabled" ) | |
| 193 | PORT_DIPSETTING( 0x00, "No Credits" ) | |
| 194 | /* No Credits = both coin slots open, but no effect on coin counters */ | |
| 190 | 195 | |
| 191 | 196 | PORT_START("DSW2") |
| 192 | PORT_DIPNAME( 0x03, 0x0 | |
| 197 | PORT_DIPNAME( 0x03, 0x01, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW2:1,2") | |
| 193 | 198 | PORT_DIPSETTING( 0x03, "1" ) |
| 194 | 199 | PORT_DIPSETTING( 0x02, "2" ) |
| 195 | 200 | PORT_DIPSETTING( 0x01, "3" ) |
| 196 | 201 | PORT_DIPSETTING( 0x00, "5" ) |
| 197 | PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) | |
| 198 | PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) | |
| 199 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) | |
| 200 | PORT_DIPNAME( 0x18, 0x10, "Bonus Energy" ) | |
| 202 | PORT_DIPUNKNOWN_DIPLOC( 0x04, 0x04, "SW2:3" ) /* Manual says it's unused */ | |
| 203 | PORT_DIPNAME( 0x18, 0x10, "Bonus Energy" ) PORT_DIPLOCATION("SW2:4,5") | |
| 201 | 204 | PORT_DIPSETTING( 0x00, "1/2 for Stage Winner" ) |
| 202 | 205 | PORT_DIPSETTING( 0x08, "1/4 for Stage Winner" ) |
| 203 | 206 | PORT_DIPSETTING( 0x10, "1/4 for Cycle Winner" ) |
| 204 | 207 | PORT_DIPSETTING( 0x18, DEF_STR( None ) ) |
| 205 | PORT_DIPNAME( 0x60, 0x40, DEF_STR( Difficulty ) ) | |
| 208 | PORT_DIPNAME( 0x60, 0x40, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW2:6,7") | |
| 206 | 209 | PORT_DIPSETTING( 0x60, DEF_STR( Easy ) ) |
| 207 | 210 | PORT_DIPSETTING( 0x40, DEF_STR( Normal ) ) |
| 208 | 211 | PORT_DIPSETTING( 0x20, DEF_STR( Hard ) ) |
| 209 | 212 | PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) |
| 210 | PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) ) | |
| 213 | PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW2:8") | |
| 211 | 214 | PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) |
| 212 | 215 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 213 | 216 | |
| 214 | 217 | PORT_START("DSW3") |
| 215 | PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) ) | |
| 218 | PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW3:1") | |
| 216 | 219 | PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) |
| 217 | 220 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 218 | PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) ) | |
| 219 | PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) | |
| 220 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) | |
| 221 | PORT_SERVICE( 0x04, IP_ACTIVE_LOW ) | |
| 222 | PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) | |
| 223 | PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) | |
| 224 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) | |
| 221 | PORT_DIPUNKNOWN_DIPLOC( 0x02, 0x02, "SW3:2" ) /* Manual says it's unused */ | |
| 222 | PORT_SERVICE_DIPLOC( 0x04, IP_ACTIVE_LOW, "SW3:3" ) | |
| 223 | PORT_DIPUNKNOWN_DIPLOC( 0x08, 0x08, "SW3:4" ) /* Manual says it's unused */ | |
| 225 | 224 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN2 ) |
| 226 | 225 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN1 ) |
| 227 | 226 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) |
| r4470 | r4471 | |
|---|---|---|
| 164 | 164 | AM_RANGE(0x4006, 0x4006) AM_WRITE(wolfpack_torpedo_v_w) |
| 165 | 165 | AM_RANGE(0x5000, 0x5fff) AM_WRITE(watchdog_reset_w) |
| 166 | 166 | AM_RANGE(0x7000, 0x7fff) AM_ROM |
| 167 | AM_RANGE(0x9000, 0x9000) AM_READ | |
| 167 | AM_RANGE(0x9000, 0x9000) AM_READ | |
| 168 | 168 | AM_RANGE(0xf000, 0xffff) AM_ROM |
| 169 | 169 | ADDRESS_MAP_END |
| 170 | 170 |
| r4470 | r4471 | |
|---|---|---|
| 170 | 170 | AM_RANGE(0x0c0d, 0x0c0d) AM_WRITE(tankbatt_sh_expl_w) |
| 171 | 171 | AM_RANGE(0x0c0f, 0x0c0f) AM_WRITE(tankbatt_demo_interrupt_enable_w) |
| 172 | 172 | AM_RANGE(0x0c18, 0x0c1f) AM_READ(tankbatt_dsw_r) |
| 173 | AM_RANGE(0x0c18, 0x0c18) AM_WRITE | |
| 173 | AM_RANGE(0x0c18, 0x0c18) AM_WRITE | |
| 174 | 174 | AM_RANGE(0x0200, 0x0bff) AM_READ(SMH_RAM) |
| 175 | 175 | AM_RANGE(0x0200, 0x07ff) AM_WRITE(SMH_RAM) |
| 176 | 176 | AM_RANGE(0x2000, 0x3fff) AM_WRITE(SMH_ROM) |
| r4470 | r4471 | |
|---|---|---|
| 102 | 102 | |
| 103 | 103 | static UINT16 *wrally_shareram; |
| 104 | 104 | |
| 105 | static ADDRESS_MAP_START( wrally_ | |
| 105 | static ADDRESS_MAP_START( wrally_ | |
| 106 | 106 | AM_RANGE(0x000000, 0x0fffff) AM_ROM /* ROM */ |
| 107 | 107 | AM_RANGE(0x100000, 0x103fff) AM_READWRITE(SMH_RAM, wrally_vram_w) AM_BASE(&wrally_videoram) /* encrypted Video RAM */ |
| 108 | 108 | AM_RANGE(0x108000, 0x108007) AM_RAM AM_BASE(&wrally_vregs) /* Video Registers */ |
| 109 | AM_RANGE(0x10800c, 0x10800d) AM_WRITE | |
| 109 | AM_RANGE(0x10800c, 0x10800d) AM_WRITE | |
| 110 | 110 | AM_RANGE(0x200000, 0x203fff) AM_READWRITE(SMH_RAM, paletteram16_xxxxBBBBRRRRGGGG_word_w) AM_BASE(&paletteram16) /* Palette */ |
| 111 | 111 | AM_RANGE(0x440000, 0x440fff) AM_RAM AM_BASE(&wrally_spriteram) /* Sprite RAM */ |
| 112 | 112 | AM_RANGE(0x700000, 0x700001) AM_READ_PORT("DSW") |
| r4470 | r4471 | |
| 117 | 117 | AM_RANGE(0x70000e, 0x70000f) AM_DEVREADWRITE8("oki", okim6295_r, okim6295_w, 0x00ff) /* OKI6295 status/data register */ |
| 118 | 118 | AM_RANGE(0x70000a, 0x70001b) AM_WRITE(wrally_coin_lockout_w) /* Coin lockouts */ |
| 119 | 119 | AM_RANGE(0x70002a, 0x70003b) AM_WRITE(wrally_coin_counter_w) /* Coin counters */ |
| 120 | AM_RANGE(0x70004a, 0x70004b) AM_WRITE | |
| 120 | AM_RANGE(0x70004a, 0x70004b) AM_WRITE | |
| 121 | 121 | AM_RANGE(0x70005a, 0x70005b) AM_WRITE(wrally_flipscreen_w) /* Flip screen */ |
| 122 | AM_RANGE(0x70006a, 0x70007b) AM_WRITE | |
| 122 | AM_RANGE(0x70006a, 0x70007b) AM_WRITE | |
| 123 | 123 | AM_RANGE(0xfec000, 0xfeffff) AM_RAM AM_BASE(&wrally_shareram) /* Work RAM (shared with DS5002FP) */ |
| 124 | 124 | ADDRESS_MAP_END |
| 125 | 125 | |
| r4470 | r4471 | |
| 248 | 248 | static MACHINE_DRIVER_START( wrally ) |
| 249 | 249 | /* basic machine hardware */ |
| 250 | 250 | MDRV_CPU_ADD("maincpu", M68000,XTAL_24MHz/2) /* verified on pcb */ |
| 251 | MDRV_CPU_PROGRAM_MAP(wrally_ | |
| 251 | MDRV_CPU_PROGRAM_MAP(wrally_ | |
| 252 | 252 | MDRV_CPU_VBLANK_INT("screen", irq6_line_hold) |
| 253 | 253 | |
| 254 | 254 | MDRV_CPU_ADD("mcu", DS5002FP, XTAL_24MHz/2) /* verified on pcb */ |
| r4470 | r4471 | |
|---|---|---|
| 129 | 129 | |
| 130 | 130 | static ADDRESS_MAP_START( io_map, ADDRESS_SPACE_IO, 8 ) |
| 131 | 131 | ADDRESS_MAP_GLOBAL_MASK(0xff) |
| 132 | AM_RANGE(0x00, 0x3f) AM_WRITE(SMH_NOP) /* Z180 internal registers */ | |
| 133 | AM_RANGE(0x30, 0x30) AM_READ(SMH_NOP) /* Z180 internal registers */ | |
| 132 | AM_RANGE(0x00, 0x3f) AM_WRITENOP /* Z180 internal registers */ | |
| 133 | AM_RANGE(0x30, 0x30) AM_READNOP /* Z180 internal registers */ | |
| 134 | 134 | AM_RANGE(0x70, 0x71) AM_DEVREADWRITE("ym", ym2203_r, ym2203_w) |
| 135 | 135 | AM_RANGE(0x72, 0x72) AM_READWRITE(protection_r, protection_w) |
| 136 | 136 | AM_RANGE(0x74, 0x74) AM_READ_PORT("P1") |
| r4470 | r4471 | |
| 139 | 139 | |
| 140 | 140 | static ADDRESS_MAP_START( gfire2_io_map, ADDRESS_SPACE_IO, 8 ) |
| 141 | 141 | ADDRESS_MAP_GLOBAL_MASK(0xff) |
| 142 | AM_RANGE(0x00, 0x3f) AM_WRITE(SMH_NOP) /* Z180 internal registers */ | |
| 143 | AM_RANGE(0x30, 0x30) AM_READ(SMH_NOP) /* Z180 internal registers */ | |
| 142 | AM_RANGE(0x00, 0x3f) AM_WRITENOP /* Z180 internal registers */ | |
| 143 | AM_RANGE(0x30, 0x30) AM_READNOP /* Z180 internal registers */ | |
| 144 | 144 | AM_RANGE(0x70, 0x71) AM_DEVREADWRITE("ym", ym2203_r, ym2203_w) |
| 145 | 145 | AM_RANGE(0x72, 0x72) AM_READWRITE(gfire2_protection_r, gfire2_protection_w) |
| 146 | 146 | AM_RANGE(0x74, 0x74) AM_READ_PORT("P1") |
| r4470 | r4471 | |
|---|---|---|
| 72 | 72 | |
| 73 | 73 | AM_RANGE(0xec20, 0xec20) AM_DEVREAD("ay", ay8910_r) |
| 74 | 74 | AM_RANGE(0xec21, 0xec21) AM_READ_PORT("BUTTONS") //ltcasino -> pc: F3F3 (A in service) and F3FD (B in service) |
| 75 | AM_RANGE(0xec3e, 0xec3e) AM_READ | |
| 75 | AM_RANGE(0xec3e, 0xec3e) AM_READ | |
| 76 | 76 | |
| 77 | 77 | AM_RANGE(0xf000, 0xffff) AM_READ(SMH_ROM) |
| 78 | 78 | ADDRESS_MAP_END |
| r4470 | r4471 | |
|---|---|---|
| 76 | 76 | ADDRESS_MAP_END |
| 77 | 77 | |
| 78 | 78 | static ADDRESS_MAP_START( crospang_writemem, ADDRESS_SPACE_PROGRAM, 16 ) |
| 79 | AM_RANGE(0x000000, 0x0fffff) AM_WRITE(SMH_NOP) // writes to rom quite often | |
| 80 | AM_RANGE(0x100000, 0x100001) AM_WRITE(SMH_NOP) | |
| 79 | AM_RANGE(0x000000, 0x0fffff) AM_WRITENOP // writes to rom quite often | |
| 80 | AM_RANGE(0x100000, 0x100001) AM_WRITENOP | |
| 81 | 81 | AM_RANGE(0x100002, 0x100003) AM_WRITE(crospang_fg_scrolly_w) |
| 82 | 82 | AM_RANGE(0x100004, 0x100005) AM_WRITE(crospang_bg_scrollx_w) |
| 83 | 83 | AM_RANGE(0x100006, 0x100007) AM_WRITE(crospang_bg_scrolly_w) |
| 84 | 84 | AM_RANGE(0x100008, 0x100009) AM_WRITE(crospang_fg_scrollx_w) |
| 85 | AM_RANGE(0x10000e, 0x10000f) AM_WRITE | |
| 85 | AM_RANGE(0x10000e, 0x10000f) AM_WRITE | |
| 86 | 86 | AM_RANGE(0x120000, 0x1207ff) AM_WRITE(crospang_fg_videoram_w) AM_BASE(&crospang_fg_videoram) |
| 87 | 87 | AM_RANGE(0x122000, 0x1227ff) AM_WRITE(crospang_bg_videoram_w) AM_BASE(&crospang_bg_videoram) |
| 88 | 88 | AM_RANGE(0x200000, 0x2005ff) AM_WRITE(paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE(&paletteram16) |
| r4470 | r4471 | |
| 104 | 104 | ADDRESS_MAP_END |
| 105 | 105 | |
| 106 | 106 | static ADDRESS_MAP_START( bestri_writemem, ADDRESS_SPACE_PROGRAM, 16 ) |
| 107 | AM_RANGE(0x000000, 0x0fffff) AM_WRITE | |
| 107 | AM_RANGE(0x000000, 0x0fffff) AM_WRITE | |
| 108 | 108 | |
| 109 | 109 | AM_RANGE(0x100004, 0x100005) AM_WRITE(bestri_fg_scrollx_w) |
| 110 | 110 | AM_RANGE(0x100006, 0x100007) AM_WRITE(bestri_fg_scrolly_w) |
| r4470 | r4471 | |
| 117 | 117 | AM_RANGE(0x200000, 0x2005ff) AM_WRITE(paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE(&paletteram16) |
| 118 | 118 | AM_RANGE(0x210000, 0x2107ff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) |
| 119 | 119 | AM_RANGE(0x270000, 0x270001) AM_WRITE(crospang_soundlatch_w) |
| 120 | AM_RANGE(0x270004, 0x270005) AM_WRITE | |
| 120 | AM_RANGE(0x270004, 0x270005) AM_WRITE | |
| 121 | 121 | |
| 122 | 122 | |
| 123 | 123 |
| r4470 | r4471 | |
|---|---|---|
| 165 | 165 | AM_RANGE(0x00, 0x01) AM_DEVWRITE("ay", ay8910_address_data_w) |
| 166 | 166 | AM_RANGE(0x01, 0x01) AM_DEVREAD("ay", ay8910_r) |
| 167 | 167 | AM_RANGE(0x02, 0x02) AM_WRITE(soundlatch_clear_w) |
| 168 | AM_RANGE(0x06, 0x06) AM_WRITE | |
| 168 | AM_RANGE(0x06, 0x06) AM_WRITE | |
| 169 | 169 | ADDRESS_MAP_END |
| 170 | 170 | |
| 171 | 171 | static INPUT_PORTS_START( meijinsn ) |
| r4470 | r4471 | |
|---|---|---|
| 576 | 576 | AM_RANGE( 0x0000, 0x3fff ) AM_ROM |
| 577 | 577 | AM_RANGE( 0x4100, 0x413f ) AM_RAM |
| 578 | 578 | AM_RANGE( 0x6000, 0x607f ) AM_RAM |
| 579 | AM_RANGE( 0x7000, 0x7000 ) AM_READ(SMH_NOP) | |
| 580 | AM_RANGE( 0x7200, 0x7200 ) AM_WRITE(SMH_NOP) | |
| 579 | AM_RANGE( 0x7000, 0x7000 ) AM_READNOP | |
| 580 | AM_RANGE( 0x7200, 0x7200 ) AM_WRITENOP | |
| 581 | 581 | AM_RANGE( 0xf000, 0xffff ) AM_RAM AM_SHARE(1) |
| 582 | 582 | ADDRESS_MAP_END |
| 583 | 583 |
| r4470 | r4471 | |
|---|---|---|
| 18 | 18 | #include "sound/2151intf.h" |
| 19 | 19 | #include "sound/k007232.h" |
| 20 | 20 | #include "includes/ajax.h" |
| 21 | #include "konamipt.h" | |
| 21 | 22 | |
| 22 | 23 | static WRITE8_DEVICE_HANDLER( k007232_extvol_w ); |
| 23 | 24 | static WRITE8_HANDLER( sound_bank_w ); |
| r4470 | r4471 | |
| 61 | 62 | |
| 62 | 63 | static INPUT_PORTS_START( ajax ) |
| 63 | 64 | PORT_START("DSW1") |
| 64 | PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW1:1,2,3,4") | |
| 65 | PORT_DIPSETTING( 0x02, DEF_STR( 4C_1C ) ) | |
| 66 | PORT_DIPSETTING( 0x05, DEF_STR( 3C_1C ) ) | |
| 67 | PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) ) | |
| 68 | PORT_DIPSETTING( 0x04, DEF_STR( 3C_2C ) ) | |
| 69 | PORT_DIPSETTING( 0x01, DEF_STR( 4C_3C ) ) | |
| 70 | PORT_DIPSETTING( 0x0f, DEF_STR( 1C_1C ) ) | |
| 71 | PORT_DIPSETTING( 0x03, DEF_STR( 3C_4C ) ) | |
| 72 | PORT_DIPSETTING( 0x07, DEF_STR( 2C_3C ) ) | |
| 73 | PORT_DIPSETTING( 0x0e, DEF_STR( 1C_2C ) ) | |
| 74 | PORT_DIPSETTING( 0x06, DEF_STR( 2C_5C ) ) | |
| 75 | PORT_DIPSETTING( 0x0d, DEF_STR( 1C_3C ) ) | |
| 76 | PORT_DIPSETTING( 0x0c, DEF_STR( 1C_4C ) ) | |
| 77 | PORT_DIPSETTING( 0x0b, DEF_STR( 1C_5C ) ) | |
| 78 | PORT_DIPSETTING( 0x0a, DEF_STR( 1C_6C ) ) | |
| 79 | PORT_DIPSETTING( 0x09, DEF_STR( 1C_7C ) ) | |
| 80 | PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) | |
| 81 | PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW1:5,6,7,8") | |
| 82 | PORT_DIPSETTING( 0x20, DEF_STR( 4C_1C ) ) | |
| 83 | PORT_DIPSETTING( 0x50, DEF_STR( 3C_1C ) ) | |
| 84 | PORT_DIPSETTING( 0x80, DEF_STR( 2C_1C ) ) | |
| 85 | PORT_DIPSETTING( 0x40, DEF_STR( 3C_2C ) ) | |
| 86 | PORT_DIPSETTING( 0x10, DEF_STR( 4C_3C ) ) | |
| 87 | PORT_DIPSETTING( 0xf0, DEF_STR( 1C_1C ) ) | |
| 88 | PORT_DIPSETTING( 0x30, DEF_STR( 3C_4C ) ) | |
| 89 | PORT_DIPSETTING( 0x70, DEF_STR( 2C_3C ) ) | |
| 90 | PORT_DIPSETTING( 0xe0, DEF_STR( 1C_2C ) ) | |
| 91 | PORT_DIPSETTING( 0x60, DEF_STR( 2C_5C ) ) | |
| 92 | PORT_DIPSETTING( 0xd0, DEF_STR( 1C_3C ) ) | |
| 93 | PORT_DIPSETTING( 0xc0, DEF_STR( 1C_4C ) ) | |
| 94 | PORT_DIPSETTING( 0xb0, DEF_STR( 1C_5C ) ) | |
| 95 | PORT_DIPSETTING( 0xa0, DEF_STR( 1C_6C ) ) | |
| 96 | PORT_DIPSETTING( 0x90, DEF_STR( 1C_7C ) ) | |
| 97 | // PORT_DIPSETTING( 0x00, "Coin Slot 2 Invalid" ) | |
| 65 | KONAMI_COINAGE_LOC(DEF_STR( Free_Play ), "No Coin B", SW1) | |
| 66 | /* "No Coin B" = coins produce sound, but no effect on coin counter */ | |
| 98 | 67 | |
| 99 | 68 | PORT_START("DSW2") |
| 100 | 69 | PORT_DIPNAME( 0x03, 0x02, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW2:1,2") |
| r4470 | r4471 | |
| 143 | 112 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 144 | 113 | |
| 145 | 114 | PORT_START("P1") |
| 146 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) | |
| 147 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) | |
| 148 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) | |
| 149 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) | |
| 150 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) | |
| 151 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) | |
| 152 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) | |
| 153 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) | |
| 115 | KONAMI8_B123_UNK(1) | |
| 154 | 116 | |
| 155 | 117 | PORT_START("P2") |
| 156 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) | |
| 157 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) | |
| 158 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) | |
| 159 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) | |
| 160 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) | |
| 161 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) | |
| 162 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) | |
| 163 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) | |
| 118 | KONAMI8_B123_UNK(2) | |
| 164 | 119 | INPUT_PORTS_END |
| 165 | 120 | |
| 166 | 121 | |
| r4470 | r4471 | |
| 435 | 390 | } |
| 436 | 391 | |
| 437 | 392 | |
| 438 | ||
| 439 | 393 | GAME( 1987, ajax, 0, ajax, ajax, ajax, ROT90, "Konami", "Ajax", GAME_SUPPORTS_SAVE ) |
| 440 | 394 | GAME( 1987, typhoon, ajax, ajax, ajax, ajax, ROT90, "Konami", "Typhoon", GAME_SUPPORTS_SAVE ) |
| 441 | 395 | GAME( 1987, ajaxj, ajax, ajax, ajax, ajax, ROT90, "Konami", "Ajax (Japan)", GAME_SUPPORTS_SAVE ) |
| r4470 | r4471 | |
|---|---|---|
| 113 | 113 | AM_RANGE(0x01, 0x01) AM_READ_PORT("P1") AM_WRITE(funybubl_cpurombank_w) // rom bank? |
| 114 | 114 | AM_RANGE(0x02, 0x02) AM_READ_PORT("P2") |
| 115 | 115 | AM_RANGE(0x03, 0x03) AM_READ_PORT("DSW") AM_WRITE(funybubl_soundcommand_w) |
| 116 | AM_RANGE(0x06, 0x06) AM_READ(SMH_NOP) /* Nothing is done with the data read */ | |
| 117 | AM_RANGE(0x06, 0x06) AM_WRITE(SMH_NOP) /* Written directly after IO port 0 */ | |
| 118 | AM_RANGE(0x07, 0x07) AM_WRITE(SMH_NOP) /* Reset something on startup - Sound CPU ?? */ | |
| 116 | AM_RANGE(0x06, 0x06) AM_READNOP /* Nothing is done with the data read */ | |
| 117 | AM_RANGE(0x06, 0x06) AM_WRITENOP /* Written directly after IO port 0 */ | |
| 118 | AM_RANGE(0x07, 0x07) AM_WRITENOP /* Reset something on startup - Sound CPU ?? */ | |
| 119 | 119 | ADDRESS_MAP_END |
| 120 | 120 | |
| 121 | 121 | /* Sound CPU */ |
| r4470 | r4471 | |
|---|---|---|
| 24 | 24 | #include "tutankhm.h" |
| 25 | 25 | #include "cpu/m6809/m6809.h" |
| 26 | 26 | #include "audio/timeplt.h" |
| 27 | #include "konamipt.h" | |
| 27 | 28 | |
| 28 | ||
| 29 | ||
| 30 | 29 | static UINT8 irq_toggle; |
| 31 | 30 | static UINT8 irq_enable; |
| 32 | 31 | |
| 33 | 32 | |
| 34 | ||
| 35 | 33 | /************************************* |
| 36 | 34 | * |
| 37 | 35 | * Interrupts |
| r4470 | r4471 | |
| 159 | 157 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 160 | 158 | |
| 161 | 159 | PORT_START("IN0") |
| 162 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) | |
| 163 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) | |
| 164 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 ) | |
| 165 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) | |
| 166 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 ) | |
| 167 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 168 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 169 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 160 | KONAMI8_SYSTEM_UNK | |
| 170 | 161 | |
| 171 | 162 | PORT_START("IN1") |
| 172 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY | |
| 173 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY | |
| 174 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY | |
| 175 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY | |
| 176 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) | |
| 177 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) | |
| 178 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) | |
| 179 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 163 | KONAMI8_MONO_4WAY_B123_UNK | |
| 180 | 164 | |
| 181 | 165 | PORT_START("IN2") |
| 182 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_COCKTAIL | |
| 183 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_COCKTAIL | |
| 184 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY PORT_COCKTAIL | |
| 185 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_COCKTAIL | |
| 186 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL | |
| 187 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL | |
| 188 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_COCKTAIL | |
| 189 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) | |
| 166 | KONAMI8_COCKTAIL_4WAY_B123_UNK | |
| 190 | 167 | |
| 191 | 168 | PORT_START("DSW1") |
| 192 | PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW1:1,2,3,4") | |
| 193 | PORT_DIPSETTING( 0x02, DEF_STR( 4C_1C ) ) | |
| 194 | PORT_DIPSETTING( 0x05, DEF_STR( 3C_1C ) ) | |
| 195 | PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) ) | |
| 196 | PORT_DIPSETTING( 0x04, DEF_STR( 3C_2C ) ) | |
| 197 | PORT_DIPSETTING( 0x01, DEF_STR( 4C_3C ) ) | |
| 198 | PORT_DIPSETTING( 0x0f, DEF_STR( 1C_1C ) ) | |
| 199 | PORT_DIPSETTING( 0x03, DEF_STR( 3C_4C ) ) | |
| 200 | PORT_DIPSETTING( 0x07, DEF_STR( 2C_3C ) ) | |
| 201 | PORT_DIPSETTING( 0x0e, DEF_STR( 1C_2C ) ) | |
| 202 | PORT_DIPSETTING( 0x06, DEF_STR( 2C_5C ) ) | |
| 203 | PORT_DIPSETTING( 0x0d, DEF_STR( 1C_3C ) ) | |
| 204 | PORT_DIPSETTING( 0x0c, DEF_STR( 1C_4C ) ) | |
| 205 | PORT_DIPSETTING( 0x0b, DEF_STR( 1C_5C ) ) | |
| 206 | PORT_DIPSETTING( 0x0a, DEF_STR( 1C_6C ) ) | |
| 207 | PORT_DIPSETTING( 0x09, DEF_STR( 1C_7C ) ) | |
| 208 | PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) | |
| 209 | PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW1:5,6,7,8") | |
| 210 | PORT_DIPSETTING( 0x20, DEF_STR( 4C_1C ) ) | |
| 211 | PORT_DIPSETTING( 0x50, DEF_STR( 3C_1C ) ) | |
| 212 | PORT_DIPSETTING( 0x80, DEF_STR( 2C_1C ) ) | |
| 213 | PORT_DIPSETTING( 0x40, DEF_STR( 3C_2C ) ) | |
| 214 | PORT_DIPSETTING( 0x10, DEF_STR( 4C_3C ) ) | |
| 215 | PORT_DIPSETTING( 0xf0, DEF_STR( 1C_1C ) ) | |
| 216 | PORT_DIPSETTING( 0x30, DEF_STR( 3C_4C ) ) | |
| 217 | PORT_DIPSETTING( 0x70, DEF_STR( 2C_3C ) ) | |
| 218 | PORT_DIPSETTING( 0xe0, DEF_STR( 1C_2C ) ) | |
| 219 | PORT_DIPSETTING( 0x60, DEF_STR( 2C_5C ) ) | |
| 220 | PORT_DIPSETTING( 0xd0, DEF_STR( 1C_3C ) ) | |
| 221 | PORT_DIPSETTING( 0xc0, DEF_STR( 1C_4C ) ) | |
| 222 | PORT_DIPSETTING( 0xb0, DEF_STR( 1C_5C ) ) | |
| 223 | PORT_DIPSETTING( 0xa0, DEF_STR( 1C_6C ) ) | |
| 224 | PORT_DIPSETTING( 0x90, DEF_STR( 1C_7C ) ) | |
| 225 | PORT_DIPSETTING( 0x00, "Disabled" ) | |
| 226 | /* 0x00 not commented out since the game makes the usual sound if you insert the coin */ | |
| 169 | KONAMI_COINAGE_LOC(DEF_STR( Free_Play ), "No Coin B", SW1) | |
| 170 | /* "No Coin B" = coins produce sound, but no effect on coin counter */ | |
| 227 | 171 | INPUT_PORTS_END |
| 228 | 172 | |
| 229 | 173 |
| r4470 | r4471 | |
|---|---|---|
| 335 | 335 | |
| 336 | 336 | static ADDRESS_MAP_START( vandyke_writemem, ADDRESS_SPACE_PROGRAM, 16 ) |
| 337 | 337 | AM_RANGE(0x000000, 0x03ffff) AM_WRITE(SMH_ROM) |
| 338 | AM_RANGE(0x080016, 0x080017) AM_WRITE | |
| 338 | AM_RANGE(0x080016, 0x080017) AM_WRITE | |
| 339 | 339 | AM_RANGE(0x080018, 0x080019) AM_WRITE(nmk_tilebank_w) |
| 340 | 340 | AM_RANGE(0x08001e, 0x08001f) AM_WRITE(NMK004_w) |
| 341 | 341 | AM_RANGE(0x088000, 0x0887ff) AM_WRITE(paletteram16_RRRRGGGGBBBBRGBx_word_w) AM_BASE(&paletteram16) |
| r4470 | r4471 | |
| 361 | 361 | |
| 362 | 362 | static ADDRESS_MAP_START( manybloc_writemem, ADDRESS_SPACE_PROGRAM, 16 ) |
| 363 | 363 | AM_RANGE(0x000000, 0x03ffff) AM_WRITE(SMH_ROM) |
| 364 | AM_RANGE(0x080010, 0x080011) AM_WRITE(SMH_NOP) /* See notes at the top of the driver */ | |
| 365 | AM_RANGE(0x080012, 0x080013) AM_WRITE(SMH_NOP) /* See notes at the top of the driver */ | |
| 364 | AM_RANGE(0x080010, 0x080011) AM_WRITENOP /* See notes at the top of the driver */ | |
| 365 | AM_RANGE(0x080012, 0x080013) AM_WRITENOP /* See notes at the top of the driver */ | |
| 366 | 366 | AM_RANGE(0x080014, 0x080015) AM_WRITE(nmk_flipscreen_w) |
| 367 | AM_RANGE(0x08001c, 0x08001d) AM_WRITE | |
| 367 | AM_RANGE(0x08001c, 0x08001d) AM_WRITE | |
| 368 | 368 | AM_RANGE(0x08001e, 0x08001f) AM_WRITE(soundlatch_word_w) |
| 369 | 369 | AM_RANGE(0x088000, 0x0883ff) AM_WRITE(paletteram16_RRRRGGGGBBBBRGBx_word_w) AM_BASE(&paletteram16) |
| 370 | 370 | AM_RANGE(0x090000, 0x093fff) AM_WRITE(nmk_bgvideoram_w) AM_BASE(&nmk_bgvideoram) |
| r4470 | r4471 | |
| 412 | 412 | static ADDRESS_MAP_START( tharrier_writemem, ADDRESS_SPACE_PROGRAM, 16 ) |
| 413 | 413 | AM_RANGE(0x000000, 0x03ffff) AM_WRITE(SMH_ROM) |
| 414 | 414 | AM_RANGE(0x080010, 0x080011) AM_WRITE(tharrier_mcu_control_w) |
| 415 | AM_RANGE(0x080012, 0x080013) AM_WRITE | |
| 415 | AM_RANGE(0x080012, 0x080013) AM_WRITE | |
| 416 | 416 | // AM_RANGE(0x080014, 0x080015) AM_WRITE(nmk_flipscreen_w) |
| 417 | 417 | // AM_RANGE(0x080018, 0x080019) AM_WRITE(nmk_tilebank_w) |
| 418 | 418 | AM_RANGE(0x08001e, 0x08001f) AM_WRITE(soundlatch_word_w) |
| 419 | 419 | AM_RANGE(0x088000, 0x0883ff) AM_WRITE(paletteram16_RRRRGGGGBBBBRGBx_word_w) AM_BASE(&paletteram16) |
| 420 | 420 | // AM_RANGE(0x08c000, 0x08c007) AM_WRITE(nmk_scroll_w) |
| 421 | 421 | AM_RANGE(0x090000, 0x093fff) AM_WRITE(nmk_bgvideoram_w) AM_BASE(&nmk_bgvideoram) |
| 422 | AM_RANGE(0x09c000, 0x09c7ff) AM_WRITE | |
| 422 | AM_RANGE(0x09c000, 0x09c7ff) AM_WRITE | |
| 423 | 423 | AM_RANGE(0x09d000, 0x09d7ff) AM_WRITE(nmk_txvideoram_w) AM_BASE(&nmk_txvideoram) |
| 424 | 424 | ADDRESS_MAP_END |
| 425 | 425 | |
| r4470 | r4471 | |
| 433 | 433 | AM_RANGE(0x080004, 0x080005) AM_READ_PORT("DSW1") |
| 434 | 434 | AM_RANGE(0x08000e, 0x08000f) AM_READWRITE(NMK004_r, SMH_NOP) |
| 435 | 435 | AM_RANGE(0x080014, 0x080015) AM_WRITE(nmk_flipscreen_w) |
| 436 | AM_RANGE(0x080016, 0x080017) AM_WRITE | |
| 436 | AM_RANGE(0x080016, 0x080017) AM_WRITE | |
| 437 | 437 | AM_RANGE(0x08001e, 0x08001f) AM_WRITE(NMK004_w) |
| 438 | 438 | AM_RANGE(0x088000, 0x0887ff) AM_RAM_WRITE(paletteram16_RRRRGGGGBBBBRGBx_word_w) AM_BASE(&paletteram16) |
| 439 | 439 | AM_RANGE(0x08c000, 0x08c001) AM_WRITE(mustang_scroll_w) |
| 440 | AM_RANGE(0x08c002, 0x08c087) AM_WRITE | |
| 440 | AM_RANGE(0x08c002, 0x08c087) AM_WRITE | |
| 441 | 441 | AM_RANGE(0x090000, 0x093fff) AM_RAM_WRITE(nmk_bgvideoram_w) AM_BASE(&nmk_bgvideoram) |
| 442 | 442 | AM_RANGE(0x09c000, 0x09c7ff) AM_RAM_WRITE(nmk_txvideoram_w) AM_BASE(&nmk_txvideoram) |
| 443 | 443 | AM_RANGE(0x0f0000, 0x0fffff) AM_RAM_WRITE(nmk16_mainram_strange_w) AM_BASE(&nmk16_mainram) |
| r4470 | r4471 | |
| 450 | 450 | AM_RANGE(0x080004, 0x080005) AM_READ_PORT("DSW1") |
| 451 | 451 | AM_RANGE(0x08000e, 0x08000f) AM_READWRITE(SMH_NOP, SMH_NOP) |
| 452 | 452 | AM_RANGE(0x080014, 0x080015) AM_WRITE(nmk_flipscreen_w) |
| 453 | AM_RANGE(0x080016, 0x080017) AM_WRITE | |
| 453 | AM_RANGE(0x080016, 0x080017) AM_WRITE | |
| 454 | 454 | AM_RANGE(0x08001e, 0x08001f) AM_WRITE(seibu_main_mustb_w) |
| 455 | 455 | AM_RANGE(0x088000, 0x0887ff) AM_RAM_WRITE(paletteram16_RRRRGGGGBBBBRGBx_word_w) AM_BASE(&paletteram16) |
| 456 | 456 | AM_RANGE(0x08c000, 0x08c001) AM_WRITE(mustang_scroll_w) |
| 457 | AM_RANGE(0x08c002, 0x08c087) AM_WRITE | |
| 457 | AM_RANGE(0x08c002, 0x08c087) AM_WRITE | |
| 458 | 458 | AM_RANGE(0x090000, 0x093fff) AM_RAM_WRITE(nmk_bgvideoram_w) AM_BASE(&nmk_bgvideoram) |
| 459 | 459 | AM_RANGE(0x09c000, 0x09c7ff) AM_RAM_WRITE(nmk_txvideoram_w) AM_BASE(&nmk_txvideoram) |
| 460 | 460 | AM_RANGE(0x0f0000, 0x0fffff) AM_RAM_WRITE(nmk16_mainram_strange_w) AM_BASE(&nmk16_mainram) |
| r4470 | r4471 | |
| 468 | 468 | AM_RANGE(0x080004, 0x080005) AM_READ_PORT("DSW1") |
| 469 | 469 | AM_RANGE(0x08000e, 0x08000f) AM_READWRITE(SMH_NOP, SMH_NOP) |
| 470 | 470 | AM_RANGE(0x080014, 0x080015) AM_WRITE(nmk_flipscreen_w) |
| 471 | AM_RANGE(0x080016, 0x080017) AM_WRITE | |
| 471 | AM_RANGE(0x080016, 0x080017) AM_WRITE | |
| 472 | 472 | AM_RANGE(0x08001e, 0x08001f) AM_WRITE(afega_soundlatch_w) |
| 473 | 473 | AM_RANGE(0x088000, 0x0887ff) AM_RAM_WRITE(paletteram16_RRRRGGGGBBBBRGBx_word_w) AM_BASE(&paletteram16) |
| 474 | 474 | AM_RANGE(0x08c000, 0x08c001) AM_WRITE(mustang_scroll_w) |
| 475 | AM_RANGE(0x08c002, 0x08c087) AM_WRITE | |
| 475 | AM_RANGE(0x08c002, 0x08c087) AM_WRITE | |
| 476 | 476 | AM_RANGE(0x090000, 0x093fff) AM_RAM_WRITE(nmk_bgvideoram_w) AM_BASE(&nmk_bgvideoram) |
| 477 | 477 | AM_RANGE(0x09c000, 0x09c7ff) AM_RAM_WRITE(nmk_txvideoram_w) AM_BASE(&nmk_txvideoram) |
| 478 | 478 | AM_RANGE(0x0f0000, 0x0fffff) AM_RAM_WRITE(nmk16_mainram_strange_w) AM_BASE(&nmk16_mainram) |
| r4470 | r4471 | |
| 922 | 922 | |
| 923 | 923 | static ADDRESS_MAP_START( tdragon_readmem, ADDRESS_SPACE_PROGRAM, 16 ) |
| 924 | 924 | AM_RANGE(0x000000, 0x03ffff) AM_READ(SMH_ROM) |
| 925 | AM_RANGE(0x044022, 0x044023) AM_READ | |
| 925 | AM_RANGE(0x044022, 0x044023) AM_READ | |
| 926 | 926 | // AM_RANGE(0x0b0000, 0x0b7fff) AM_READ(SMH_RAM) /* Work RAM */ |
| 927 | 927 | // AM_RANGE(0x0b8000, 0x0b8fff) AM_READ(SMH_RAM) /* Sprite RAM */ |
| 928 | 928 | // AM_RANGE(0x0b9000, 0x0bdfff) AM_READ(SMH_RAM) /* Work RAM */ |
| r4470 | r4471 | |
| 1030 | 1030 | static ADDRESS_MAP_START( strahl_writemem, ADDRESS_SPACE_PROGRAM, 16 ) |
| 1031 | 1031 | AM_RANGE(0x00000, 0x3ffff) AM_WRITE(SMH_ROM) |
| 1032 | 1032 | AM_RANGE(0x80014, 0x80015) AM_WRITE(nmk_flipscreen_w) |
| 1033 | AM_RANGE(0x80016, 0x80017) AM_WRITE | |
| 1033 | AM_RANGE(0x80016, 0x80017) AM_WRITE | |
| 1034 | 1034 | AM_RANGE(0x8001e, 0x8001f) AM_WRITE(NMK004_w) |
| 1035 | 1035 | AM_RANGE(0x84000, 0x84007) AM_WRITE(nmk_scroll_w) |
| 1036 | 1036 | AM_RANGE(0x88000, 0x88007) AM_WRITE(nmk_scroll_2_w) |
| r4470 | r4471 | |
| 1056 | 1056 | static ADDRESS_MAP_START( macross_writemem, ADDRESS_SPACE_PROGRAM, 16 ) |
| 1057 | 1057 | AM_RANGE(0x000000, 0x07ffff) AM_WRITE(SMH_ROM) |
| 1058 | 1058 | AM_RANGE(0x080014, 0x080015) AM_WRITE(nmk_flipscreen_w) |
| 1059 | AM_RANGE(0x080016, 0x080017) AM_WRITE | |
| 1059 | AM_RANGE(0x080016, 0x080017) AM_WRITE | |
| 1060 | 1060 | AM_RANGE(0x080018, 0x080019) AM_WRITE(nmk_tilebank_w) |
| 1061 | 1061 | AM_RANGE(0x08001e, 0x08001f) AM_WRITE(NMK004_w) |
| 1062 | 1062 | AM_RANGE(0x088000, 0x0887ff) AM_WRITE(paletteram16_RRRRGGGGBBBBRGBx_word_w) AM_BASE(&paletteram16) |
| r4470 | r4471 | |
| 1073 | 1073 | AM_RANGE(0x08000a, 0x08000b) AM_READ_PORT("DSW2") |
| 1074 | 1074 | AM_RANGE(0x08000e, 0x08000f) AM_READ(NMK004_r) |
| 1075 | 1075 | AM_RANGE(0x080014, 0x080015) AM_WRITE(nmk_flipscreen_w) |
| 1076 | AM_RANGE(0x080016, 0x080017) AM_WRITE | |
| 1076 | AM_RANGE(0x080016, 0x080017) AM_WRITE | |
| 1077 | 1077 | AM_RANGE(0x080018, 0x080019) AM_WRITE(nmk_tilebank_w) |
| 1078 | 1078 | AM_RANGE(0x08001e, 0x08001f) AM_WRITE(NMK004_w) |
| 1079 | 1079 | AM_RANGE(0x088000, 0x0887ff) AM_RAM_WRITE(paletteram16_RRRRGGGGBBBBRGBx_word_w) AM_BASE(&paletteram16) |
| r4470 | r4471 | |
| 1107 | 1107 | AM_RANGE(0x10001e, 0x10001f) AM_WRITE(macross2_sound_command_w) /* to Z80 */ |
| 1108 | 1108 | AM_RANGE(0x120000, 0x1207ff) AM_WRITE(paletteram16_RRRRGGGGBBBBRGBx_word_w) AM_BASE(&paletteram16) |
| 1109 | 1109 | AM_RANGE(0x130000, 0x130007) AM_WRITE(nmk_scroll_w) |
| 1110 | AM_RANGE(0x130008, 0x1307ff) AM_WRITE | |
| 1110 | AM_RANGE(0x130008, 0x1307ff) AM_WRITE | |
| 1111 | 1111 | AM_RANGE(0x140000, 0x14ffff) AM_WRITE(nmk_bgvideoram_w) AM_BASE(&nmk_bgvideoram) |
| 1112 | 1112 | AM_RANGE(0x170000, 0x170fff) AM_WRITE(nmk_txvideoram_w) AM_BASE(&nmk_txvideoram) |
| 1113 | 1113 | AM_RANGE(0x171000, 0x171fff) AM_WRITE(nmk_txvideoram_w) /* mirror */ |
| r4470 | r4471 | |
| 1116 | 1116 | static ADDRESS_MAP_START( raphero_writemem, ADDRESS_SPACE_PROGRAM, 16 ) |
| 1117 | 1117 | AM_RANGE(0x000000, 0x07ffff) AM_WRITE(SMH_ROM) |
| 1118 | 1118 | AM_RANGE(0x100014, 0x100015) AM_WRITE(nmk_flipscreen_w) |
| 1119 | AM_RANGE(0x100016, 0x100017) AM_WRITE | |
| 1119 | AM_RANGE(0x100016, 0x100017) AM_WRITE | |
| 1120 | 1120 | AM_RANGE(0x100018, 0x100019) AM_WRITE(nmk_tilebank_w) |
| 1121 | 1121 | AM_RANGE(0x10001e, 0x10001f) AM_WRITE(macross2_sound_command_w) /* to sound cpu */ |
| 1122 | 1122 | AM_RANGE(0x120000, 0x1207ff) AM_WRITE(paletteram16_RRRRGGGGBBBBRGBx_word_w) AM_BASE(&paletteram16) |
| r4470 | r4471 | |
| 1162 | 1162 | static ADDRESS_MAP_START( macross2_sound_readmem, ADDRESS_SPACE_PROGRAM, 8 ) |
| 1163 | 1163 | AM_RANGE(0x0000, 0x7fff) AM_READ(SMH_ROM) |
| 1164 | 1164 | AM_RANGE(0x8000, 0xbfff) AM_READ(SMH_BANK1) /* banked ROM */ |
| 1165 | AM_RANGE(0xa000, 0xa000) AM_READ | |
| 1165 | AM_RANGE(0xa000, 0xa000) AM_READ | |
| 1166 | 1166 | AM_RANGE(0xc000, 0xdfff) AM_READ(SMH_RAM) |
| 1167 | 1167 | AM_RANGE(0xf000, 0xf000) AM_READ(soundlatch_r) /* from 68000 */ |
| 1168 | 1168 | ADDRESS_MAP_END |
| r4470 | r4471 | |
| 1203 | 1203 | AM_RANGE(0x084020, 0x08402f) AM_WRITE(NMK112_okibank_lsb_w) |
| 1204 | 1204 | AM_RANGE(0x088000, 0x0887ff) AM_WRITE(paletteram16_RRRRGGGGBBBBRGBx_word_w) AM_BASE(&paletteram16) |
| 1205 | 1205 | AM_RANGE(0x094000, 0x094001) AM_WRITE(nmk_tilebank_w) |
| 1206 | AM_RANGE(0x094002, 0x094003) AM_WRITE | |
| 1206 | AM_RANGE(0x094002, 0x094003) AM_WRITE | |
| 1207 | 1207 | AM_RANGE(0x09c000, 0x09cfff) AM_WRITE(nmk_bgvideoram_w) AM_BASE(&nmk_bgvideoram) |
| 1208 | 1208 | AM_RANGE(0x09d000, 0x09dfff) AM_WRITE(nmk_bgvideoram_w) /* mirror */ |
| 1209 | 1209 | AM_RANGE(0x0f0000, 0x0fffff) AM_RAM AM_BASE(&nmk16_mainram) |
| r4470 | r4471 | |
| 4796 | 4796 | } |
| 4797 | 4797 | |
| 4798 | 4798 | static ADDRESS_MAP_START( afega_sound_cpu, ADDRESS_SPACE_PROGRAM, 8 ) |
| 4799 | AM_RANGE(0x0003, 0x0003) AM_WRITE(SMH_NOP) // bug in sound prg? | |
| 4800 | AM_RANGE(0x0004, 0x0004) AM_WRITE(SMH_NOP) // bug in sound prg? | |
| 4799 | AM_RANGE(0x0003, 0x0003) AM_WRITENOP // bug in sound prg? | |
| 4800 | AM_RANGE(0x0004, 0x0004) AM_WRITENOP // bug in sound prg? | |
| 4801 | 4801 | AM_RANGE(0x0000, 0xefff) AM_ROM |
| 4802 | 4802 | AM_RANGE(0xf000, 0xf7ff) AM_RAM // RAM |
| 4803 | 4803 | AM_RANGE(0xf800, 0xf800) AM_READ(soundlatch_r) // From Main CPU |
| r4470 | r4471 | |
|---|---|---|
| 450 | 450 | strcpy(dest, ".png"); |
| 451 | 451 | |
| 452 | 452 | // load the file |
| 453 | effect_bitmap = render_load_png(NULL, tempstr, NULL, NULL); | |
| 453 | effect_bitmap = render_load_png(OPTION_ARTPATH, NULL, tempstr, NULL, NULL); | |
| 454 | 454 | if (effect_bitmap == NULL) |
| 455 | 455 | { |
| 456 | 456 | mame_printf_error("Unable to load PNG file '%s'\n", tempstr); |
| r4470 | r4471 | |
|---|---|---|
| 506 | 506 | |
| 507 | 507 | // experimental: load a PNG to use for vector rendering; it is treated |
| 508 | 508 | // as a brightness map |
| 509 | d3d->vector_bitmap = render_load_png(NULL, "vector.png", NULL, NULL); | |
| 509 | d3d->vector_bitmap = render_load_png(OPTION_ARTPATH, NULL, "vector.png", NULL, NULL); | |
| 510 | 510 | if (d3d->vector_bitmap != NULL) |
| 511 | 511 | { |
| 512 | 512 | bitmap_fill(d3d->vector_bitmap, NULL, MAKE_ARGB(0xff,0xff,0xff,0xff)); |
| 513 | d3d->vector_bitmap = render_load_png(NULL, "vector.png", d3d->vector_bitmap, NULL); | |
| 513 | d3d->vector_bitmap = render_load_png(OPTION_ARTPATH, NULL, "vector.png", d3d->vector_bitmap, NULL); | |
| 514 | 514 | } |
| 515 | 515 | |
| 516 | 516 | // configure the adapter for the mode we want |
| r4470 | r4471 | |
|---|---|---|
| 1238 | 1238 | int ophandler_body_read = 0; |
| 1239 | 1239 | |
| 1240 | 1240 | printf("\n\tMusashi v%s 68000, 68008, 68010, 68EC020, 68020, 68040 emulator\n", g_version); |
| 1241 | printf("\tCopyright Karl Stenerud | |
| 1241 | printf("\tCopyright Karl Stenerud | |
| 1242 | 1242 | |
| 1243 | 1243 | /* Check if output path and source for the input file are given */ |
| 1244 | 1244 | if(argc > 1) |
| r4470 | r4471 | |
|---|---|---|
| 120 | 120 | typedef struct _z80_state z80_state; |
| 121 | 121 | struct _z80_state |
| 122 | 122 | { |
| 123 | PAIR prvpc,pc,sp,af,bc,de,hl,ix,iy,memptr; | |
| 124 | PAIR af2,bc2,de2,hl2; | |
| 125 | UINT8 r,r2,iff1,iff2,halt,im,i; | |
| 126 | UINT8 nmi_state; /* nmi line state */ | |
| 127 | UINT8 nmi_pending; /* nmi pending */ | |
| 128 | UINT8 irq_state; /* irq line state */ | |
| 129 | UINT8 after_ei; /* are we in the EI shadow? */ | |
| 130 | UINT32 ea; | |
| 123 | PAIR prvpc,pc,sp,af,bc,de,hl,ix,iy,memptr; | |
| 124 | PAIR af2,bc2,de2,hl2; | |
| 125 | UINT8 r,r2,iff1,iff2,halt,im,i; | |
| 126 | UINT8 nmi_state; /* nmi line state */ | |
| 127 | UINT8 nmi_pending; /* nmi pending */ | |
| 128 | UINT8 irq_state; /* irq line state */ | |
| 129 | UINT8 after_ei; /* are we in the EI shadow? */ | |
| 130 | UINT32 ea; | |
| 131 | 131 | cpu_irq_callback irq_callback; |
| 132 | 132 | const device_config *device; |
| 133 | 133 | const address_space *program; |
| 134 | 134 | const address_space *io; |
| 135 | int icount; | |
| 135 | int icount; | |
| 136 | 136 | z80_daisy_state *daisy; |
| 137 | 137 | cpu_state_table state; |
| 138 | UINT8 rtemp; | |
| 138 | UINT8 rtemp; | |
| 139 | const UINT8 * cc_op; | |
| 140 | const UINT8 * cc_cb; | |
| 141 | const UINT8 * cc_ed; | |
| 142 | const UINT8 * cc_xy; | |
| 143 | const UINT8 * cc_xycb; | |
| 144 | const UINT8 * cc_ex; | |
| 139 | 145 | }; |
| 140 | 146 | |
| 141 | 147 | INLINE z80_state *get_safe_token(const device_config *device) |
| r4470 | r4471 | |
| 376 | 382 | 6, 0, 0, 0, 7, 0, 0, 2, 6, 0, 0, 0, 7, 0, 0, 2, |
| 377 | 383 | 6, 0, 0, 0, 7, 0, 0, 2, 6, 0, 0, 0, 7, 0, 0, 2}; |
| 378 | 384 | |
| 379 | static const UINT8 *cc[6]; | |
| 380 | #define Z80_TABLE_dd Z80_TABLE_xy | |
| 381 | #define Z80_TABLE_fd Z80_TABLE_xy | |
| 385 | #define cc_dd cc_xy | |
| 386 | #define cc_fd cc_xy | |
| 382 | 387 | |
| 383 | 388 | static void take_interrupt(z80_state *z80); |
| 384 | 389 | static CPU_BURN( z80 ); |
| r4470 | r4471 | |
| 513 | 518 | /*************************************************************** |
| 514 | 519 | * adjust cycle count by n T-states |
| 515 | 520 | ***************************************************************/ |
| 516 | #define CC(Z,prefix,opcode) do { (Z)->icount -= | |
| 521 | #define CC(Z,prefix,opcode) do { (Z)->icount -= z | |
| 517 | 522 | |
| 518 | 523 | /*************************************************************** |
| 519 | 524 | * execute an opcode |
| r4470 | r4471 | |
| 3284 | 3289 | RM16(z80, irq_vector, &z80->pc); |
| 3285 | 3290 | LOG(("Z80 '%s' IM2 [$%04x] = $%04x\n", z80->device->tag, irq_vector, z80->PCD)); |
| 3286 | 3291 | /* CALL opcode timing */ |
| 3287 | z80->icount -= | |
| 3292 | z80->icount -= z | |
| 3288 | 3293 | } |
| 3289 | 3294 | else |
| 3290 | 3295 | /* Interrupt mode 1. RST 38h */ |
| r4470 | r4471 | |
| 3294 | 3299 | PUSH(z80, pc); |
| 3295 | 3300 | z80->PCD = 0x0038; |
| 3296 | 3301 | /* RST $38 + 'interrupt latency' cycles */ |
| 3297 | z80->icount -= | |
| 3302 | z80->icount -= z | |
| 3298 | 3303 | } |
| 3299 | 3304 | else |
| 3300 | 3305 | { |
| r4470 | r4471 | |
| 3308 | 3313 | PUSH(z80, pc); |
| 3309 | 3314 | z80->PCD = irq_vector & 0xffff; |
| 3310 | 3315 | /* CALL $xxxx + 'interrupt latency' cycles */ |
| 3311 | z80->icount -= | |
| 3316 | z80->icount -= z | |
| 3312 | 3317 | break; |
| 3313 | 3318 | case 0xc30000: /* jump */ |
| 3314 | 3319 | z80->PCD = irq_vector & 0xffff; |
| 3315 | 3320 | /* JP $xxxx + 2 cycles */ |
| 3316 | z80->icount -= | |
| 3321 | z80->icount -= z | |
| 3317 | 3322 | break; |
| 3318 | 3323 | default: /* rst (or other opcodes?) */ |
| 3319 | 3324 | PUSH(z80, pc); |
| 3320 | 3325 | z80->PCD = irq_vector & 0x0038; |
| 3321 | 3326 | /* RST $xx + 2 cycles */ |
| 3322 | z80->icount -= | |
| 3327 | z80->icount -= z | |
| 3323 | 3328 | break; |
| 3324 | 3329 | } |
| 3325 | 3330 | } |
| r4470 | r4471 | |
| 3334 | 3339 | z80_state *z80 = get_safe_token(device); |
| 3335 | 3340 | int i, p; |
| 3336 | 3341 | |
| 3337 | /* setup cycle tables */ | |
| 3338 | cc[Z80_TABLE_op] = cc_op; | |
| 3339 | cc[Z80_TABLE_cb] = cc_cb; | |
| 3340 | cc[Z80_TABLE_ed] = cc_ed; | |
| 3341 | cc[Z80_TABLE_xy] = cc_xy; | |
| 3342 | cc[Z80_TABLE_xycb] = cc_xycb; | |
| 3343 | cc[Z80_TABLE_ex] = cc_ex; | |
| 3344 | ||
| 3345 | 3342 | if( !SZHVC_add || !SZHVC_sub ) |
| 3346 | 3343 | { |
| 3347 | 3344 | int oldval, newval, val; |
| r4470 | r4471 | |
| 3465 | 3462 | z80->state = state_table_template; |
| 3466 | 3463 | z80->state.baseptr = z80; |
| 3467 | 3464 | z80->state.subtypemask = 1; |
| 3465 | ||
| 3466 | /* setup cycle tables */ | |
| 3467 | z80->cc_op = cc_op; | |
| 3468 | z80->cc_cb = cc_cb; | |
| 3469 | z80->cc_ed = cc_ed; | |
| 3470 | z80->cc_xy = cc_xy; | |
| 3471 | z80->cc_xycb = cc_xycb; | |
| 3472 | z80->cc_ex = cc_ex; | |
| 3468 | 3473 | } |
| 3469 | 3474 | |
| 3470 | 3475 | /**************************************************************************** |
| r4470 | r4471 | |
| 3630 | 3635 | { |
| 3631 | 3636 | /* --- the following bits of info are set as 64-bit signed integers --- */ |
| 3632 | 3637 | case CPUINFO_INT_INPUT_STATE + INPUT_LINE_NMI: set_irq_line(z80, INPUT_LINE_NMI, info->i); break; |
| 3633 | case CPUINFO_INT_INPUT_STATE + 0: set_irq_line(z80, 0, info->i); break; | |
| 3634 | ||
| 3635 | /* --- the following bits of info are set as pointers to data or functions --- */ | |
| 3636 | case CPUINFO_PTR_Z80_CYCLE_TABLE + Z80_TABLE_op: cc[Z80_TABLE_op] = (const UINT8 *)info->p; break; | |
| 3637 | case CPUINFO_PTR_Z80_CYCLE_TABLE + Z80_TABLE_cb: cc[Z80_TABLE_cb] = (const UINT8 *)info->p; break; | |
| 3638 | case CPUINFO_PTR_Z80_CYCLE_TABLE + Z80_TABLE_ed: cc[Z80_TABLE_ed] = (const UINT8 *)info->p; break; | |
| 3639 | case CPUINFO_PTR_Z80_CYCLE_TABLE + Z80_TABLE_xy: cc[Z80_TABLE_xy] = (const UINT8 *)info->p; break; | |
| 3640 | case CPUINFO_PTR_Z80_CYCLE_TABLE + Z80_TABLE_xycb: cc[Z80_TABLE_xycb] = (const UINT8 *)info->p; break; | |
| 3641 | case CPUINFO_PTR_Z80_CYCLE_TABLE + Z80_TABLE_ex: cc[Z80_TABLE_ex] = (const UINT8 *)info->p; break; | |
| 3638 | case CPUINFO_INT_INPUT_STATE + 0: set_irq_line(z80, 0, info->i); break; | |
| 3642 | 3639 | } |
| 3643 | 3640 | } |
| 3644 | 3641 | |
| 3642 | void z80_set_cycle_tables(const device_config *device, const UINT8 *op, const UINT8 *cb, const UINT8 *ed, const UINT8 *xy, const UINT8 *xycb, const UINT8 *ex) | |
| 3643 | { | |
| 3644 | z80_state *z80 = get_safe_token(device); | |
| 3645 | 3645 | |
| 3646 | z80->cc_op = (op != NULL) ? op : cc_op; | |
| 3647 | z80->cc_cb = (cb != NULL) ? cb : cc_cb; | |
| 3648 | z80->cc_ed = (ed != NULL) ? ed : cc_ed; | |
| 3649 | z80->cc_xy = (xy != NULL) ? xy : cc_xy; | |
| 3650 | z80->cc_xycb = (xycb != NULL) ? xycb : cc_xycb; | |
| 3651 | z80->cc_ex = (ex != NULL) ? ex : cc_ex; | |
| 3652 | } | |
| 3646 | 3653 | |
| 3654 | ||
| 3647 | 3655 | /************************************************************************** |
| 3648 | 3656 | * Generic get_info |
| 3649 | 3657 | **************************************************************************/ |
| r4470 | r4471 | |
| 3689 | 3697 | case CPUINFO_PTR_INSTRUCTION_COUNTER: info->icount = &z80->icount; break; |
| 3690 | 3698 | case CPUINFO_PTR_STATE_TABLE: info->state_table = &z80->state; break; |
| 3691 | 3699 | |
| 3692 | case CPUINFO_PTR_Z80_CYCLE_TABLE + Z80_TABLE_op: info->p = (void *)cc[Z80_TABLE_op]; break; | |
| 3693 | case CPUINFO_PTR_Z80_CYCLE_TABLE + Z80_TABLE_cb: info->p = (void *)cc[Z80_TABLE_cb]; break; | |
| 3694 | case CPUINFO_PTR_Z80_CYCLE_TABLE + Z80_TABLE_ed: info->p = (void *)cc[Z80_TABLE_ed]; break; | |
| 3695 | case CPUINFO_PTR_Z80_CYCLE_TABLE + Z80_TABLE_xy: info->p = (void *)cc[Z80_TABLE_xy]; break; | |
| 3696 | case CPUINFO_PTR_Z80_CYCLE_TABLE + Z80_TABLE_xycb: info->p = (void *)cc[Z80_TABLE_xycb]; break; | |
| 3697 | case CPUINFO_PTR_Z80_CYCLE_TABLE + Z80_TABLE_ex: info->p = (void *)cc[Z80_TABLE_ex]; break; | |
| 3698 | ||
| 3699 | 3700 | /* --- the following bits of info are returned as NULL-terminated strings --- */ |
| 3700 | 3701 | case CPUINFO_STR_NAME: strcpy(info->s, "Z80"); break; |
| 3701 | 3702 | case CPUINFO_STR_CORE_FAMILY: strcpy(info->s, "Zilog Z80"); break; |
| r4470 | r4471 | |
|---|---|---|
| 19 | 19 | Z80_GENPCBASE = REG_GENPCBASE |
| 20 | 20 | }; |
| 21 | 21 | |
| 22 | enum | |
| 23 | { | |
| 24 | Z80_TABLE_op, | |
| 25 | Z80_TABLE_cb, | |
| 26 | Z80_TABLE_ed, | |
| 27 | Z80_TABLE_xy, | |
| 28 | Z80_TABLE_xycb, | |
| 29 | Z80_TABLE_ex /* cycles counts for taken jr/jp/call and interrupt latency (rst opcodes) */ | |
| 30 | }; | |
| 31 | ||
| 32 | enum | |
| 33 | { | |
| 34 | CPUINFO_PTR_Z80_CYCLE_TABLE = CPUINFO_PTR_CPU_SPECIFIC, | |
| 35 | CPUINFO_PTR_Z80_CYCLE_TABLE_LAST = CPUINFO_PTR_Z80_CYCLE_TABLE + Z80_TABLE_ex | |
| 36 | }; | |
| 37 | ||
| 38 | extern CPU_GET_INFO( z80 ); | |
| 22 | CPU_GET_INFO( z80 ); | |
| 39 | 23 | #define CPU_Z80 CPU_GET_INFO_NAME( z80 ) |
| 40 | 24 | |
| 41 | ||
| 25 | ||
| 42 | 26 | |
| 27 | void z80_set_cycle_tables(const device_config *device, const UINT8 *op, const UINT8 *cb, const UINT8 *ed, const UINT8 *xy, const UINT8 *xycb, const UINT8 *ex); | |
| 28 | ||
| 43 | 29 | #endif /* __Z80_H__ */ |
| r4470 | r4471 | |
|---|---|---|
| 1995 | 1995 | |
| 1996 | 1996 | /**** If idling, update timer and/or exit execution, but test for irqs first */ |
| 1997 | 1997 | if (cpustate->idle && cpustate->IFR && cpustate->icount > 0) |
| 1998 | cpustate->icount | |
| 1998 | cpustate->icount -= process_IRQs(cpustate); | |
| 1999 | 1999 | |
| 2000 | 2000 | while (cpustate->idle && cpustate->icount > 0) |
| 2001 | 2001 | process_timer(cpustate, cpustate->icount); |
| r4470 | r4471 | |
| 2005 | 2005 | |
| 2006 | 2006 | while (cpustate->icount > 0) |
| 2007 | 2007 | { |
| 2008 | | |
| 2008 | cpustate->tms32025_dec_cycles = 0 | |
| 2009 | 2009 | |
| 2010 | 2010 | if (cpustate->IFR) { /* Check IRQ Flag Register for pending IRQs */ |
| 2011 | 2011 | cpustate->tms32025_dec_cycles += process_IRQs(cpustate); |
| r0 | r4471 | |
|---|---|---|
| 1 | /*************************************************************************** | |
| 2 | ||
| 3 | rgbutil.c | |
| 4 | ||
| 5 | Utility definitions for RGB manipulation. Allows RGB handling to be | |
| 6 | performed in an abstracted fashion and optimized with SIMD. | |
| 7 | ||
| 8 | Copyright Nicola Salmoria and the MAME Team. | |
| 9 | Visit http://mamedev.org for licensing and usage restrictions. | |
| 10 | ||
| 11 | ***************************************************************************/ | |
| 12 | ||
| 13 | #include "driver.h" | |
| 14 | #include "eminline.h" | |
| 15 | #include "rgbutil.h" | |
| 16 | ||
| 17 | ||
| 18 | /*************************************************************************** | |
| 19 | SSE TABLES | |
| 20 | ***************************************************************************/ | |
| 21 | ||
| 22 | #if (defined(__SSE2__) && defined(PTR64)) | |
| 23 | const struct _rgbsse_statics rgbsse_statics = | |
| 24 | { | |
| 25 | { 0 }, | |
| 26 | { 0, 0, 0, 0, 0, 0, 0, 0 }, | |
| 27 | { 255, 255, 255, 255, 255, 255, 255, 255 }, | |
| 28 | { | |
| 29 | { 1, 256, 1, 256, 1, 256, 1, 256 }, { 2, 255, 2, 255, 2, 255, 2, 255 }, | |
| 30 | { 3, 254, 3, 254, 3, 254, 3, 254 }, { 4, 253, 4, 253, 4, 253, 4, 253 }, | |
| 31 | { 5, 252, 5, 252, 5, 252, 5, 252 }, { 6, 251, 6, 251, 6, 251, 6, 251 }, | |
| 32 | { 7, 250, 7, 250, 7, 250, 7, 250 }, { 8, 249, 8, 249, 8, 249, 8, 249 }, | |
| 33 | { 9, 248, 9, 248, 9, 248, 9, 248 }, { 10, 247, 10, 247, 10, 247, 10, 247 }, | |
| 34 | { 11, 246, 11, 246, 11, 246, 11, 246 }, { 12, 245, 12, 245, 12, 245, 12, 245 }, | |
| 35 | { 13, 244, 13, 244, 13, 244, 13, 244 }, { 14, 243, 14, 243, 14, 243, 14, 243 }, | |
| 36 | { 15, 242, 15, 242, 15, 242, 15, 242 }, { 16, 241, 16, 241, 16, 241, 16, 241 }, | |
| 37 | { 17, 240, 17, 240, 17, 240, 17, 240 }, { 18, 239, 18, 239, 18, 239, 18, 239 }, | |
| 38 | { 19, 238, 19, 238, 19, 238, 19, 238 }, { 20, 237, 20, 237, 20, 237, 20, 237 }, | |
| 39 | { 21, 236, 21, 236, 21, 236, 21, 236 }, { 22, 235, 22, 235, 22, 235, 22, 235 }, | |
| 40 | { 23, 234, 23, 234, 23, 234, 23, 234 }, { 24, 233, 24, 233, 24, 233, 24, 233 }, | |
| 41 | { 25, 232, 25, 232, 25, 232, 25, 232 }, { 26, 231, 26, 231, 26, 231, 26, 231 }, | |
| 42 | { 27, 230, 27, 230, 27, 230, 27, 230 }, { 28, 229, 28, 229, 28, 229, 28, 229 }, | |
| 43 | { 29, 228, 29, 228, 29, 228, 29, 228 }, { 30, 227, 30, 227, 30, 227, 30, 227 }, | |
| 44 | { 31, 226, 31, 226, 31, 226, 31, 226 }, { 32, 225, 32, 225, 32, 225, 32, 225 }, | |
| 45 | { 33, 224, 33, 224, 33, 224, 33, 224 }, { 34, 223, 34, 223, 34, 223, 34, 223 }, | |
| 46 | { 35, 222, 35, 222, 35, 222, 35, 222 }, { 36, 221, 36, 221, 36, 221, 36, 221 }, | |
| 47 | { 37, 220, 37, 220, 37, 220, 37, 220 }, { 38, 219, 38, 219, 38, 219, 38, 219 }, | |
| 48 | { 39, 218, 39, 218, 39, 218, 39, 218 }, { 40, 217, 40, 217, 40, 217, 40, 217 }, | |
| 49 | { 41, 216, 41, 216, 41, 216, 41, 216 }, { 42, 215, 42, 215, 42, 215, 42, 215 }, | |
| 50 | { 43, 214, 43, 214, 43, 214, 43, 214 }, { 44, 213, 44, 213, 44, 213, 44, 213 }, | |
| 51 | { 45, 212, 45, 212, 45, 212, 45, 212 }, { 46, 211, 46, 211, 46, 211, 46, 211 }, | |
| 52 | { 47, 210, 47, 210, 47, 210, 47, 210 }, { 48, 209, 48, 209, 48, 209, 48, 209 }, | |
| 53 | { 49, 208, 49, 208, 49, 208, 49, 208 }, { 50, 207, 50, 207, 50, 207, 50, 207 }, | |
| 54 | { 51, 206, 51, 206, 51, 206, 51, 206 }, { 52, 205, 52, 205, 52, 205, 52, 205 }, | |
| 55 | { 53, 204, 53, 204, 53, 204, 53, 204 }, { 54, 203, 54, 203, 54, 203, 54, 203 }, | |
| 56 | { 55, 202, 55, 202, 55, 202, 55, 202 }, { 56, 201, 56, 201, 56, 201, 56, 201 }, | |
| 57 | { 57, 200, 57, 200, 57, 200, 57, 200 }, { 58, 199, 58, 199, 58, 199, 58, 199 }, | |
| 58 | { 59, 198, 59, 198, 59, 198, 59, 198 }, { 60, 197, 60, 197, 60, 197, 60, 197 }, | |
| 59 | { 61, 196, 61, 196, 61, 196, 61, 196 }, { 62, 195, 62, 195, 62, 195, 62, 195 }, | |
| 60 | { 63, 194, 63, 194, 63, 194, 63, 194 }, { 64, 193, 64, 193, 64, 193, 64, 193 }, | |
| 61 | { 65, 192, 65, 192, 65, 192, 65, 192 }, { 66, 191, 66, 191, 66, 191, 66, 191 }, | |
| 62 | { 67, 190, 67, 190, 67, 190, 67, 190 }, { 68, 189, 68, 189, 68, 189, 68, 189 }, | |
| 63 | { 69, 188, 69, 188, 69, 188, 69, 188 }, { 70, 187, 70, 187, 70, 187, 70, 187 }, | |
| 64 | { 71, 186, 71, 186, 71, 186, 71, 186 }, { 72, 185, 72, 185, 72, 185, 72, 185 }, | |
| 65 | { 73, 184, 73, 184, 73, 184, 73, 184 }, { 74, 183, 74, 183, 74, 183, 74, 183 }, | |
| 66 | { 75, 182, 75, 182, 75, 182, 75, 182 }, { 76, 181, 76, 181, 76, 181, 76, 181 }, | |
| 67 | { 77, 180, 77, 180, 77, 180, 77, 180 }, { 78, 179, 78, 179, 78, 179, 78, 179 }, | |
| 68 | { 79, 178, 79, 178, 79, 178, 79, 178 }, { 80, 177, 80, 177, 80, 177, 80, 177 }, | |
| 69 | { 81, 176, 81, 176, 81, 176, 81, 176 }, { 82, 175, 82, 175, 82, 175, 82, 175 }, | |
| 70 | { 83, 174, 83, 174, 83, 174, 83, 174 }, { 84, 173, 84, 173, 84, 173, 84, 173 }, | |
| 71 | { 85, 172, 85, 172, 85, 172, 85, 172 }, { 86, 171, 86, 171, 86, 171, 86, 171 }, | |
| 72 | { 87, 170, 87, 170, 87, 170, 87, 170 }, { 88, 169, 88, 169, 88, 169, 88, 169 }, | |
| 73 | { 89, 168, 89, 168, 89, 168, 89, 168 }, { 90, 167, 90, 167, 90, 167, 90, 167 }, | |
| 74 | { 91, 166, 91, 166, 91, 166, 91, 166 }, { 92, 165, 92, 165, 92, 165, 92, 165 }, | |
| 75 | { 93, 164, 93, 164, 93, 164, 93, 164 }, { 94, 163, 94, 163, 94, 163, 94, 163 }, | |
| 76 | { 95, 162, 95, 162, 95, 162, 95, 162 }, { 96, 161, 96, 161, 96, 161, 96, 161 }, | |
| 77 | { 97, 160, 97, 160, 97, 160, 97, 160 }, { 98, 159, 98, 159, 98, 159, 98, 159 }, | |
| 78 | { 99, 158, 99, 158, 99, 158, 99, 158 }, { 100, 157, 100, 157, 100, 157, 100, 157 }, | |
| 79 | { 101, 156, 101, 156, 101, 156, 101, 156 }, { 102, 155, 102, 155, 102, 155, 102, 155 }, | |
| 80 | { 103, 154, 103, 154, 103, 154, 103, 154 }, { 104, 153, 104, 153, 104, 153, 104, 153 }, | |
| 81 | { 105, 152, 105, 152, 105, 152, 105, 152 }, { 106, 151, 106, 151, 106, 151, 106, 151 }, | |
| 82 | { 107, 150, 107, 150, 107, 150, 107, 150 }, { 108, 149, 108, 149, 108, 149, 108, 149 }, | |
| 83 | { 109, 148, 109, 148, 109, 148, 109, 148 }, { 110, 147, 110, 147, 110, 147, 110, 147 }, | |
| 84 | { 111, 146, 111, 146, 111, 146, 111, 146 }, { 112, 145, 112, 145, 112, 145, 112, 145 }, | |
| 85 | { 113, 144, 113, 144, 113, 144, 113, 144 }, { 114, 143, 114, 143, 114, 143, 114, 143 }, | |
| 86 | { 115, 142, 115, 142, 115, 142, 115, 142 }, { 116, 141, 116, 141, 116, 141, 116, 141 }, | |
| 87 | { 117, 140, 117, 140, 117, 140, 117, 140 }, { 118, 139, 118, 139, 118, 139, 118, 139 }, | |
| 88 | { 119, 138, 119, 138, 119, 138, 119, 138 }, { 120, 137, 120, 137, 120, 137, 120, 137 }, | |
| 89 | { 121, 136, 121, 136, 121, 136, 121, 136 }, { 122, 135, 122, 135, 122, 135, 122, 135 }, | |
| 90 | { 123, 134, 123, 134, 123, 134, 123, 134 }, { 124, 133, 124, 133, 124, 133, 124, 133 }, | |
| 91 | { 125, 132, 125, 132, 125, 132, 125, 132 }, { 126, 131, 126, 131, 126, 131, 126, 131 }, | |
| 92 | { 127, 130, 127, 130, 127, 130, 127, 130 }, { 128, 129, 128, 129, 128, 129, 128, 129 }, | |
| 93 | { 129, 128, 129, 128, 129, 128, 129, 128 }, { 130, 127, 130, 127, 130, 127, 130, 127 }, | |
| 94 | { 131, 126, 131, 126, 131, 126, 131, 126 }, { 132, 125, 132, 125, 132, 125, 132, 125 }, | |
| 95 | { 133, 124, 133, 124, 133, 124, 133, 124 }, { 134, 123, 134, 123, 134, 123, 134, 123 }, | |
| 96 | { 135, 122, 135, 122, 135, 122, 135, 122 }, { 136, 121, 136, 121, 136, 121, 136, 121 }, | |
| 97 | { 137, 120, 137, 120, 137, 120, 137, 120 }, { 138, 119, 138, 119, 138, 119, 138, 119 }, | |
| 98 | { 139, 118, 139, 118, 139, 118, 139, 118 }, { 140, 117, 140, 117, 140, 117, 140, 117 }, | |
| 99 | { 141, 116, 141, 116, 141, 116, 141, 116 }, { 142, 115, 142, 115, 142, 115, 142, 115 }, | |
| 100 | { 143, 114, 143, 114, 143, 114, 143, 114 }, { 144, 113, 144, 113, 144, 113, 144, 113 }, | |
| 101 | { 145, 112, 145, 112, 145, 112, 145, 112 }, { 146, 111, 146, 111, 146, 111, 146, 111 }, | |
| 102 | { 147, 110, 147, 110, 147, 110, 147, 110 }, { 148, 109, 148, 109, 148, 109, 148, 109 }, | |
| 103 | { 149, 108, 149, 108, 149, 108, 149, 108 }, { 150, 107, 150, 107, 150, 107, 150, 107 }, | |
| 104 | { 151, 106, 151, 106, 151, 106, 151, 106 }, { 152, 105, 152, 105, 152, 105, 152, 105 }, | |
| 105 | { 153, 104, 153, 104, 153, 104, 153, 104 }, { 154, 103, 154, 103, 154, 103, 154, 103 }, | |
| 106 | { 155, 102, 155, 102, 155, 102, 155, 102 }, { 156, 101, 156, 101, 156, 101, 156, 101 }, | |
| 107 | { 157, 100, 157, 100, 157, 100, 157, 100 }, { 158, 99, 158, 99, 158, 99, 158, 99 }, | |
| 108 | { 159, 98, 159, 98, 159, 98, 159, 98 }, { 160, 97, 160, 97, 160, 97, 160, 97 }, | |
| 109 | { 161, 96, 161, 96, 161, 96, 161, 96 }, { 162, 95, 162, 95, 162, 95, 162, 95 }, | |
| 110 | { 163, 94, 163, 94, 163, 94, 163, 94 }, { 164, 93, 164, 93, 164, 93, 164, 93 }, | |
| 111 | { 165, 92, 165, 92, 165, 92, 165, 92 }, { 166, 91, 166, 91, 166, 91, 166, 91 }, | |
| 112 | { 167, 90, 167, 90, 167, 90, 167, 90 }, { 168, 89, 168, 89, 168, 89, 168, 89 }, | |
| 113 | { 169, 88, 169, 88, 169, 88, 169, 88 }, { 170, 87, 170, 87, 170, 87, 170, 87 }, | |
| 114 | { 171, 86, 171, 86, 171, 86, 171, 86 }, { 172, 85, 172, 85, 172, 85, 172, 85 }, | |
| 115 | { 173, 84, 173, 84, 173, 84, 173, 84 }, { 174, 83, 174, 83, 174, 83, 174, 83 }, | |
| 116 | { 175, 82, 175, 82, 175, 82, 175, 82 }, { 176, 81, 176, 81, 176, 81, 176, 81 }, | |
| 117 | { 177, 80, 177, 80, 177, 80, 177, 80 }, { 178, 79, 178, 79, 178, 79, 178, 79 }, | |
| 118 | { 179, 78, 179, 78, 179, 78, 179, 78 }, { 180, 77, 180, 77, 180, 77, 180, 77 }, | |
| 119 | { 181, 76, 181, 76, 181, 76, 181, 76 }, { 182, 75, 182, 75, 182, 75, 182, 75 }, | |
| 120 | { 183, 74, 183, 74, 183, 74, 183, 74 }, { 184, 73, 184, 73, 184, 73, 184, 73 }, | |
| 121 | { 185, 72, 185, 72, 185, 72, 185, 72 }, { 186, 71, 186, 71, 186, 71, 186, 71 }, | |
| 122 | { 187, 70, 187, 70, 187, 70, 187, 70 }, { 188, 69, 188, 69, 188, 69, 188, 69 }, | |
| 123 | { 189, 68, 189, 68, 189, 68, 189, 68 }, { 190, 67, 190, 67, 190, 67, 190, 67 }, | |
| 124 | { 191, 66, 191, 66, 191, 66, 191, 66 }, { 192, 65, 192, 65, 192, 65, 192, 65 }, | |
| 125 | { 193, 64, 193, 64, 193, 64, 193, 64 }, { 194, 63, 194, 63, 194, 63, 194, 63 }, | |
| 126 | { 195, 62, 195, 62, 195, 62, 195, 62 }, { 196, 61, 196, 61, 196, 61, 196, 61 }, | |
| 127 | { 197, 60, 197, 60, 197, 60, 197, 60 }, { 198, 59, 198, 59, 198, 59, 198, 59 }, | |
| 128 | { 199, 58, 199, 58, 199, 58, 199, 58 }, { 200, 57, 200, 57, 200, 57, 200, 57 }, | |
| 129 | { 201, 56, 201, 56, 201, 56, 201, 56 }, { 202, 55, 202, 55, 202, 55, 202, 55 }, | |
| 130 | { 203, 54, 203, 54, 203, 54, 203, 54 }, { 204, 53, 204, 53, 204, 53, 204, 53 }, | |
| 131 | { 205, 52, 205, 52, 205, 52, 205, 52 }, { 206, 51, 206, 51, 206, 51, 206, 51 }, | |
| 132 | { 207, 50, 207, 50, 207, 50, 207, 50 }, { 208, 49, 208, 49, 208, 49, 208, 49 }, | |
| 133 | { 209, 48, 209, 48, 209, 48, 209, 48 }, { 210, 47, 210, 47, 210, 47, 210, 47 }, | |
| 134 | { 211, 46, 211, 46, 211, 46, 211, 46 }, { 212, 45, 212, 45, 212, 45, 212, 45 }, | |
| 135 | { 213, 44, 213, 44, 213, 44, 213, 44 }, { 214, 43, 214, 43, 214, 43, 214, 43 }, | |
| 136 | { 215, 42, 215, 42, 215, 42, 215, 42 }, { 216, 41, 216, 41, 216, 41, 216, 41 }, | |
| 137 | { 217, 40, 217, 40, 217, 40, 217, 40 }, { 218, 39, 218, 39, 218, 39, 218, 39 }, | |
| 138 | { 219, 38, 219, 38, 219, 38, 219, 38 }, { 220, 37, 220, 37, 220, 37, 220, 37 }, | |
| 139 | { 221, 36, 221, 36, 221, 36, 221, 36 }, { 222, 35, 222, 35, 222, 35, 222, 35 }, | |
| 140 | { 223, 34, 223, 34, 223, 34, 223, 34 }, { 224, 33, 224, 33, 224, 33, 224, 33 }, | |
| 141 | { 225, 32, 225, 32, 225, 32, 225, 32 }, { 226, 31, 226, 31, 226, 31, 226, 31 }, | |
| 142 | { 227, 30, 227, 30, 227, 30, 227, 30 }, { 228, 29, 228, 29, 228, 29, 228, 29 }, | |
| 143 | { 229, 28, 229, 28, 229, 28, 229, 28 }, { 230, 27, 230, 27, 230, 27, 230, 27 }, | |
| 144 | { 231, 26, 231, 26, 231, 26, 231, 26 }, { 232, 25, 232, 25, 232, 25, 232, 25 }, | |
| 145 | { 233, 24, 233, 24, 233, 24, 233, 24 }, { 234, 23, 234, 23, 234, 23, 234, 23 }, | |
| 146 | { 235, 22, 235, 22, 235, 22, 235, 22 }, { 236, 21, 236, 21, 236, 21, 236, 21 }, | |
| 147 | { 237, 20, 237, 20, 237, 20, 237, 20 }, { 238, 19, 238, 19, 238, 19, 238, 19 }, | |
| 148 | { 239, 18, 239, 18, 239, 18, 239, 18 }, { 240, 17, 240, 17, 240, 17, 240, 17 }, | |
| 149 | { 241, 16, 241, 16, 241, 16, 241, 16 }, { 242, 15, 242, 15, 242, 15, 242, 15 }, | |
| 150 | { 243, 14, 243, 14, 243, 14, 243, 14 }, { 244, 13, 244, 13, 244, 13, 244, 13 }, | |
| 151 | { 245, 12, 245, 12, 245, 12, 245, 12 }, { 246, 11, 246, 11, 246, 11, 246, 11 }, | |
| 152 | { 247, 10, 247, 10, 247, 10, 247, 10 }, { 248, 9, 248, 9, 248, 9, 248, 9 }, | |
| 153 | { 249, 8, 249, 8, 249, 8, 249, 8 }, { 250, 7, 250, 7, 250, 7, 250, 7 }, | |
| 154 | { 251, 6, 251, 6, 251, 6, 251, 6 }, { 252, 5, 252, 5, 252, 5, 252, 5 }, | |
| 155 | { 253, 4, 253, 4, 253, 4, 253, 4 }, { 254, 3, 254, 3, 254, 3, 254, 3 }, | |
| 156 | { 255, 2, 255, 2, 255, 2, 255, 2 }, { 256, 1, 256, 1, 256, 1, 256, 1 } | |
| 157 | } | |
| 158 | }; | |
| 159 | #endif // defined(__SSE2__) | |
| 160 | ||
| 161 | ||
| 162 | ||
| 163 | /*************************************************************************** | |
| 164 | VMX/ALTIVEC TABLES | |
| 165 | ***************************************************************************/ | |
| 166 | ||
| 167 | #if defined(__ALTIVEC__) | |
| 168 | const struct _rgbvmx_statics rgbvmx_statics = | |
| 169 | { | |
| 170 | { 255, 255, 255, 255, 255, 255, 255, 255 }, | |
| 171 | { | |
| 172 | { 1, 256, 1, 256, 1, 256, 1, 256 }, { 2, 255, 2, 255, 2, 255, 2, 255 }, | |
| 173 | { 3, 254, 3, 254, 3, 254, 3, 254 }, { 4, 253, 4, 253, 4, 253, 4, 253 }, | |
| 174 | { 5, 252, 5, 252, 5, 252, 5, 252 }, { 6, 251, 6, 251, 6, 251, 6, 251 }, | |
| 175 | { 7, 250, 7, 250, 7, 250, 7, 250 }, { 8, 249, 8, 249, 8, 249, 8, 249 }, | |
| 176 | { 9, 248, 9, 248, 9, 248, 9, 248 }, { 10, 247, 10, 247, 10, 247, 10, 247 }, | |
| 177 | { 11, 246, 11, 246, 11, 246, 11, 246 }, { 12, 245, 12, 245, 12, 245, 12, 245 }, | |
| 178 | { 13, 244, 13, 244, 13, 244, 13, 244 }, { 14, 243, 14, 243, 14, 243, 14, 243 }, | |
| 179 | { 15, 242, 15, 242, 15, 242, 15, 242 }, { 16, 241, 16, 241, 16, 241, 16, 241 }, | |
| 180 | { 17, 240, 17, 240, 17, 240, 17, 240 }, { 18, 239, 18, 239, 18, 239, 18, 239 }, | |
| 181 | { 19, 238, 19, 238, 19, 238, 19, 238 }, { 20, 237, 20, 237, 20, 237, 20, 237 }, | |
| 182 | { 21, 236, 21, 236, 21, 236, 21, 236 }, { 22, 235, 22, 235, 22, 235, 22, 235 }, | |
| 183 | { 23, 234, 23, 234, 23, 234, 23, 234 }, { 24, 233, 24, 233, 24, 233, 24, 233 }, | |
| 184 | { 25, 232, 25, 232, 25, 232, 25, 232 }, { 26, 231, 26, 231, 26, 231, 26, 231 }, | |
| 185 | { 27, 230, 27, 230, 27, 230, 27, 230 }, { 28, 229, 28, 229, 28, 229, 28, 229 }, | |
| 186 | { 29, 228, 29, 228, 29, 228, 29, 228 }, { 30, 227, 30, 227, 30, 227, 30, 227 }, | |
| 187 | { 31, 226, 31, 226, 31, 226, 31, 226 }, { 32, 225, 32, 225, 32, 225, 32, 225 }, | |
| 188 | { 33, 224, 33, 224, 33, 224, 33, 224 }, { 34, 223, 34, 223, 34, 223, 34, 223 }, | |
| 189 | { 35, 222, 35, 222, 35, 222, 35, 222 }, { 36, 221, 36, 221, 36, 221, 36, 221 }, | |
| 190 | { 37, 220, 37, 220, 37, 220, 37, 220 }, { 38, 219, 38, 219, 38, 219, 38, 219 }, | |
| 191 | { 39, 218, 39, 218, 39, 218, 39, 218 }, { 40, 217, 40, 217, 40, 217, 40, 217 }, | |
| 192 | { 41, 216, 41, 216, 41, 216, 41, 216 }, { 42, 215, 42, 215, 42, 215, 42, 215 }, | |
| 193 | { 43, 214, 43, 214, 43, 214, 43, 214 }, { 44, 213, 44, 213, 44, 213, 44, 213 }, | |
| 194 | { 45, 212, 45, 212, 45, 212, 45, 212 }, { 46, 211, 46, 211, 46, 211, 46, 211 }, | |
| 195 | { 47, 210, 47, 210, 47, 210, 47, 210 }, { 48, 209, 48, 209, 48, 209, 48, 209 }, | |
| 196 | { 49, 208, 49, 208, 49, 208, 49, 208 }, { 50, 207, 50, 207, 50, 207, 50, 207 }, | |
| 197 | { 51, 206, 51, 206, 51, 206, 51, 206 }, { 52, 205, 52, 205, 52, 205, 52, 205 }, | |
| 198 | { 53, 204, 53, 204, 53, 204, 53, 204 }, { 54, 203, 54, 203, 54, 203, 54, 203 }, | |
| 199 | { 55, 202, 55, 202, 55, 202, 55, 202 }, { 56, 201, 56, 201, 56, 201, 56, 201 }, | |
| 200 | { 57, 200, 57, 200, 57, 200, 57, 200 }, { 58, 199, 58, 199, 58, 199, 58, 199 }, | |
| 201 | { 59, 198, 59, 198, 59, 198, 59, 198 }, { 60, 197, 60, 197, 60, 197, 60, 197 }, | |
| 202 | { 61, 196, 61, 196, 61, 196, 61, 196 }, { 62, 195, 62, 195, 62, 195, 62, 195 }, | |
| 203 | { 63, 194, 63, 194, 63, 194, 63, 194 }, { 64, 193, 64, 193, 64, 193, 64, 193 }, | |
| 204 | { 65, 192, 65, 192, 65, 192, 65, 192 }, { 66, 191, 66, 191, 66, 191, 66, 191 }, | |
| 205 | { 67, 190, 67, 190, 67, 190, 67, 190 }, { 68, 189, 68, 189, 68, 189, 68, 189 }, | |
| 206 | { 69, 188, 69, 188, 69, 188, 69, 188 }, { 70, 187, 70, 187, 70, 187, 70, 187 }, | |
| 207 | { 71, 186, 71, 186, 71, 186, 71, 186 }, { 72, 185, 72, 185, 72, 185, 72, 185 }, | |
| 208 | { 73, 184, 73, 184, 73, 184, 73, 184 }, { 74, 183, 74, 183, 74, 183, 74, 183 }, | |
| 209 | { 75, 182, 75, 182, 75, 182, 75, 182 }, { 76, 181, 76, 181, 76, 181, 76, 181 }, | |
| 210 | { 77, 180, 77, 180, 77, 180, 77, 180 }, { 78, 179, 78, 179, 78, 179, 78, 179 }, | |
| 211 | { 79, 178, 79, 178, 79, 178, 79, 178 }, { 80, 177, 80, 177, 80, 177, 80, 177 }, | |
| 212 | { 81, 176, 81, 176, 81, 176, 81, 176 }, { 82, 175, 82, 175, 82, 175, 82, 175 }, | |
| 213 | { 83, 174, 83, 174, 83, 174, 83, 174 }, { 84, 173, 84, 173, 84, 173, 84, 173 }, | |
| 214 | { 85, 172, 85, 172, 85, 172, 85, 172 }, { 86, 171, 86, 171, 86, 171, 86, 171 }, | |
| 215 | { 87, 170, 87, 170, 87, 170, 87, 170 }, { 88, 169, 88, 169, 88, 169, 88, 169 }, | |
| 216 | { 89, 168, 89, 168, 89, 168, 89, 168 }, { 90, 167, 90, 167, 90, 167, 90, 167 }, | |
| 217 | { 91, 166, 91, 166, 91, 166, 91, 166 }, { 92, 165, 92, 165, 92, 165, 92, 165 }, | |
| 218 | { 93, 164, 93, 164, 93, 164, 93, 164 }, { 94, 163, 94, 163, 94, 163, 94, 163 }, | |
| 219 | { 95, 162, 95, 162, 95, 162, 95, 162 }, { 96, 161, 96, 161, 96, 161, 96, 161 }, | |
| 220 | { 97, 160, 97, 160, 97, 160, 97, 160 }, { 98, 159, 98, 159, 98, 159, 98, 159 }, | |
| 221 | { 99, 158, 99, 158, 99, 158, 99, 158 }, { 100, 157, 100, 157, 100, 157, 100, 157 }, | |
| 222 | { 101, 156, 101, 156, 101, 156, 101, 156 }, { 102, 155, 102, 155, 102, 155, 102, 155 }, | |
| 223 | { 103, 154, 103, 154, 103, 154, 103, 154 }, { 104, 153, 104, 153, 104, 153, 104, 153 }, | |
| 224 | { 105, 152, 105, 152, 105, 152, 105, 152 }, { 106, 151, 106, 151, 106, 151, 106, 151 }, | |
| 225 | { 107, 150, 107, 150, 107, 150, 107, 150 }, { 108, 149, 108, 149, 108, 149, 108, 149 }, | |
| 226 | { 109, 148, 109, 148, 109, 148, 109, 148 }, { 110, 147, 110, 147, 110, 147, 110, 147 }, | |
| 227 | { 111, 146, 111, 146, 111, 146, 111, 146 }, { 112, 145, 112, 145, 112, 145, 112, 145 }, | |
| 228 | { 113, 144, 113, 144, 113, 144, 113, 144 }, { 114, 143, 114, 143, 114, 143, 114, 143 }, | |
| 229 | { 115, 142, 115, 142, 115, 142, 115, 142 }, { 116, 141, 116, 141, 116, 141, 116, 141 }, | |
| 230 | { 117, 140, 117, 140, 117, 140, 117, 140 }, { 118, 139, 118, 139, 118, 139, 118, 139 }, | |
| 231 | { 119, 138, 119, 138, 119, 138, 119, 138 }, { 120, 137, 120, 137, 120, 137, 120, 137 }, | |
| 232 | { 121, 136, 121, 136, 121, 136, 121, 136 }, { 122, 135, 122, 135, 122, 135, 122, 135 }, | |
| 233 | { 123, 134, 123, 134, 123, 134, 123, 134 }, { 124, 133, 124, 133, 124, 133, 124, 133 }, | |
| 234 | { 125, 132, 125, 132, 125, 132, 125, 132 }, { 126, 131, 126, 131, 126, 131, 126, 131 }, | |
| 235 | { 127, 130, 127, 130, 127, 130, 127, 130 }, { 128, 129, 128, 129, 128, 129, 128, 129 }, | |
| 236 | { 129, 128, 129, 128, 129, 128, 129, 128 }, { 130, 127, 130, 127, 130, 127, 130, 127 }, | |
| 237 | { 131, 126, 131, 126, 131, 126, 131, 126 }, { 132, 125, 132, 125, 132, 125, 132, 125 }, | |
| 238 | { 133, 124, 133, 124, 133, 124, 133, 124 }, { 134, 123, 134, 123, 134, 123, 134, 123 }, | |
| 239 | { 135, 122, 135, 122, 135, 122, 135, 122 }, { 136, 121, 136, 121, 136, 121, 136, 121 }, | |
| 240 | { 137, 120, 137, 120, 137, 120, 137, 120 }, { 138, 119, 138, 119, 138, 119, 138, 119 }, | |
| 241 | { 139, 118, 139, 118, 139, 118, 139, 118 }, { 140, 117, 140, 117, 140, 117, 140, 117 }, | |
| 242 | { 141, 116, 141, 116, 141, 116, 141, 116 }, { 142, 115, 142, 115, 142, 115, 142, 115 }, | |
| 243 | { 143, 114, 143, 114, 143, 114, 143, 114 }, { 144, 113, 144, 113, 144, 113, 144, 113 }, | |
| 244 | { 145, 112, 145, 112, 145, 112, 145, 112 }, { 146, 111, 146, 111, 146, 111, 146, 111 }, | |
| 245 | { 147, 110, 147, 110, 147, 110, 147, 110 }, { 148, 109, 148, 109, 148, 109, 148, 109 }, | |
| 246 | { 149, 108, 149, 108, 149, 108, 149, 108 }, { 150, 107, 150, 107, 150, 107, 150, 107 }, | |
| 247 | { 151, 106, 151, 106, 151, 106, 151, 106 }, { 152, 105, 152, 105, 152, 105, 152, 105 }, | |
| 248 | { 153, 104, 153, 104, 153, 104, 153, 104 }, { 154, 103, 154, 103, 154, 103, 154, 103 }, | |
| 249 | { 155, 102, 155, 102, 155, 102, 155, 102 }, { 156, 101, 156, 101, 156, 101, 156, 101 }, | |
| 250 | { 157, 100, 157, 100, 157, 100, 157, 100 }, { 158, 99, 158, 99, 158, 99, 158, 99 }, | |
| 251 | { 159, 98, 159, 98, 159, 98, 159, 98 }, { 160, 97, 160, 97, 160, 97, 160, 97 }, | |
| 252 | { 161, 96, 161, 96, 161, 96, 161, 96 }, { 162, 95, 162, 95, 162, 95, 162, 95 }, | |
| 253 | { 163, 94, 163, 94, 163, 94, 163, 94 }, { 164, 93, 164, 93, 164, 93, 164, 93 }, | |
| 254 | { 165, 92, 165, 92, 165, 92, 165, 92 }, { 166, 91, 166, 91, 166, 91, 166, 91 }, | |
| 255 | { 167, 90, 167, 90, 167, 90, 167, 90 }, { 168, 89, 168, 89, 168, 89, 168, 89 }, | |
| 256 | { 169, 88, 169, 88, 169, 88, 169, 88 }, { 170, 87, 170, 87, 170, 87, 170, 87 }, | |
| 257 | { 171, 86, 171, 86, 171, 86, 171, 86 }, { 172, 85, 172, 85, 172, 85, 172, 85 }, | |
| 258 | { 173, 84, 173, 84, 173, 84, 173, 84 }, { 174, 83, 174, 83, 174, 83, 174, 83 }, | |
| 259 | { 175, 82, 175, 82, 175, 82, 175, 82 }, { 176, 81, 176, 81, 176, 81, 176, 81 }, | |
| 260 | { 177, 80, 177, 80, 177, 80, 177, 80 }, { 178, 79, 178, 79, 178, 79, 178, 79 }, | |
| 261 | { 179, 78, 179, 78, 179, 78, 179, 78 }, { 180, 77, 180, 77, 180, 77, 180, 77 }, | |
| 262 | { 181, 76, 181, 76, 181, 76, 181, 76 }, { 182, 75, 182, 75, 182, 75, 182, 75 }, | |
| 263 | { 183, 74, 183, 74, 183, 74, 183, 74 }, { 184, 73, 184, 73, 184, 73, 184, 73 }, | |
| 264 | { 185, 72, 185, 72, 185, 72, 185, 72 }, { 186, 71, 186, 71, 186, 71, 186, 71 }, | |
| 265 | { 187, 70, 187, 70, 187, 70, 187, 70 }, { 188, 69, 188, 69, 188, 69, 188, 69 }, | |
| 266 | { 189, 68, 189, 68, 189, 68, 189, 68 }, { 190, 67, 190, 67, 190, 67, 190, 67 }, | |
| 267 | { 191, 66, 191, 66, 191, 66, 191, 66 }, { 192, 65, 192, 65, 192, 65, 192, 65 }, | |
| 268 | { 193, 64, 193, 64, 193, 64, 193, 64 }, { 194, 63, 194, 63, 194, 63, 194, 63 }, | |
| 269 | { 195, 62, 195, 62, 195, 62, 195, 62 }, { 196, 61, 196, 61, 196, 61, 196, 61 }, | |
| 270 | { 197, 60, 197, 60, 197, 60, 197, 60 }, { 198, 59, 198, 59, 198, 59, 198, 59 }, | |
| 271 | { 199, 58, 199, 58, 199, 58, 199, 58 }, { 200, 57, 200, 57, 200, 57, 200, 57 }, | |
| 272 | { 201, 56, 201, 56, 201, 56, 201, 56 }, { 202, 55, 202, 55, 202, 55, 202, 55 }, | |
| 273 | { 203, 54, 203, 54, 203, 54, 203, 54 }, { 204, 53, 204, 53, 204, 53, 204, 53 }, | |
| 274 | { 205, 52, 205, 52, 205, 52, 205, 52 }, { 206, 51, 206, 51, 206, 51, 206, 51 }, | |
| 275 | { 207, 50, 207, 50, 207, 50, 207, 50 }, { 208, 49, 208, 49, 208, 49, 208, 49 }, | |
| 276 | { 209, 48, 209, 48, 209, 48, 209, 48 }, { 210, 47, 210, 47, 210, 47, 210, 47 }, | |
| 277 | { 211, 46, 211, 46, 211, 46, 211, 46 }, { 212, 45, 212, 45, 212, 45, 212, 45 }, | |
| 278 | { 213, 44, 213, 44, 213, 44, 213, 44 }, { 214, 43, 214, 43, 214, 43, 214, 43 }, | |
| 279 | { 215, 42, 215, 42, 215, 42, 215, 42 }, { 216, 41, 216, 41, 216, 41, 216, 41 }, | |
| 280 | { 217, 40, 217, 40, 217, 40, 217, 40 }, { 218, 39, 218, 39, 218, 39, 218, 39 }, | |
| 281 | { 219, 38, 219, 38, 219, 38, 219, 38 }, { 220, 37, 220, 37, 220, 37, 220, 37 }, | |
| 282 | { 221, 36, 221, 36, 221, 36, 221, 36 }, { 222, 35, 222, 35, 222, 35, 222, 35 }, | |
| 283 | { 223, 34, 223, 34, 223, 34, 223, 34 }, { 224, 33, 224, 33, 224, 33, 224, 33 }, | |
| 284 | { 225, 32, 225, 32, 225, 32, 225, 32 }, { 226, 31, 226, 31, 226, 31, 226, 31 }, | |
| 285 | { 227, 30, 227, 30, 227, 30, 227, 30 }, { 228, 29, 228, 29, 228, 29, 228, 29 }, | |
| 286 | { 229, 28, 229, 28, 229, 28, 229, 28 }, { 230, 27, 230, 27, 230, 27, 230, 27 }, | |
| 287 | { 231, 26, 231, 26, 231, 26, 231, 26 }, { 232, 25, 232, 25, 232, 25, 232, 25 }, | |
| 288 | { 233, 24, 233, 24, 233, 24, 233, 24 }, { 234, 23, 234, 23, 234, 23, 234, 23 }, | |
| 289 | { 235, 22, 235, 22, 235, 22, 235, 22 }, { 236, 21, 236, 21, 236, 21, 236, 21 }, | |
| 290 | { 237, 20, 237, 20, 237, 20, 237, 20 }, { 238, 19, 238, 19, 238, 19, 238, 19 }, | |
| 291 | { 239, 18, 239, 18, 239, 18, 239, 18 }, { 240, 17, 240, 17, 240, 17, 240, 17 }, | |
| 292 | { 241, 16, 241, 16, 241, 16, 241, 16 }, { 242, 15, 242, 15, 242, 15, 242, 15 }, | |
| 293 | { 243, 14, 243, 14, 243, 14, 243, 14 }, { 244, 13, 244, 13, 244, 13, 244, 13 }, | |
| 294 | { 245, 12, 245, 12, 245, 12, 245, 12 }, { 246, 11, 246, 11, 246, 11, 246, 11 }, | |
| 295 | { 247, 10, 247, 10, 247, 10, 247, 10 }, { 248, 9, 248, 9, 248, 9, 248, 9 }, | |
| 296 | { 249, 8, 249, 8, 249, 8, 249, 8 }, { 250, 7, 250, 7, 250, 7, 250, 7 }, | |
| 297 | { 251, 6, 251, 6, 251, 6, 251, 6 }, { 252, 5, 252, 5, 252, 5, 252, 5 }, | |
| 298 | { 253, 4, 253, 4, 253, 4, 253, 4 }, { 254, 3, 254, 3, 254, 3, 254, 3 }, | |
| 299 | { 255, 2, 255, 2, 255, 2, 255, 2 }, { 256, 1, 256, 1, 256, 1, 256, 1 } | |
| 300 | } | |
| 301 | }; | |
| 302 | #endif // defined(__ALTIVEC__) |
| r4470 | r4471 | |
|---|---|---|
| 211 | 211 | TABLES |
| 212 | 212 | ***************************************************************************/ |
| 213 | 213 | |
| 214 | ||
| 214 | extern | |
| 215 | 215 | { |
| 216 | 216 | rgbaint maxbyte; |
| 217 | 217 | rgbaint scale_table[256]; |
| 218 | } rgbvmx_statics = | |
| 219 | { | |
| 220 | { 255, 255, 255, 255, 255, 255, 255, 255 }, | |
| 221 | { | |
| 222 | { 1, 256, 1, 256, 1, 256, 1, 256 }, { 2, 255, 2, 255, 2, 255, 2, 255 }, | |
| 223 | { 3, 254, 3, 254, 3, 254, 3, 254 }, { 4, 253, 4, 253, 4, 253, 4, 253 }, | |
| 224 | { 5, 252, 5, 252, 5, 252, 5, 252 }, { 6, 251, 6, 251, 6, 251, 6, 251 }, | |
| 225 | { 7, 250, 7, 250, 7, 250, 7, 250 }, { 8, 249, 8, 249, 8, 249, 8, 249 }, | |
| 226 | { 9, 248, 9, 248, 9, 248, 9, 248 }, { 10, 247, 10, 247, 10, 247, 10, 247 }, | |
| 227 | { 11, 246, 11, 246, 11, 246, 11, 246 }, { 12, 245, 12, 245, 12, 245, 12, 245 }, | |
| 228 | { 13, 244, 13, 244, 13, 244, 13, 244 }, { 14, 243, 14, 243, 14, 243, 14, 243 }, | |
| 229 | { 15, 242, 15, 242, 15, 242, 15, 242 }, { 16, 241, 16, 241, 16, 241, 16, 241 }, | |
| 230 | { 17, 240, 17, 240, 17, 240, 17, 240 }, { 18, 239, 18, 239, 18, 239, 18, 239 }, | |
| 231 | { 19, 238, 19, 238, 19, 238, 19, 238 }, { 20, 237, 20, 237, 20, 237, 20, 237 }, | |
| 232 | { 21, 236, 21, 236, 21, 236, 21, 236 }, { 22, 235, 22, 235, 22, 235, 22, 235 }, | |
| 233 | { 23, 234, 23, 234, 23, 234, 23, 234 }, { 24, 233, 24, 233, 24, 233, 24, 233 }, | |
| 234 | { 25, 232, 25, 232, 25, 232, 25, 232 }, { 26, 231, 26, 231, 26, 231, 26, 231 }, | |
| 235 | { 27, 230, 27, 230, 27, 230, 27, 230 }, { 28, 229, 28, 229, 28, 229, 28, 229 }, | |
| 236 | { 29, 228, 29, 228, 29, 228, 29, 228 }, { 30, 227, 30, 227, 30, 227, 30, 227 }, | |
| 237 | { 31, 226, 31, 226, 31, 226, 31, 226 }, { 32, 225, 32, 225, 32, 225, 32, 225 }, | |
| 238 | { 33, 224, 33, 224, 33, 224, 33, 224 }, { 34, 223, 34, 223, 34, 223, 34, 223 }, | |
| 239 | { 35, 222, 35, 222, 35, 222, 35, 222 }, { 36, 221, 36, 221, 36, 221, 36, 221 }, | |
| 240 | { 37, 220, 37, 220, 37, 220, 37, 220 }, { 38, 219, 38, 219, 38, 219, 38, 219 }, | |
| 241 | { 39, 218, 39, 218, 39, 218, 39, 218 }, { 40, 217, 40, 217, 40, 217, 40, 217 }, | |
| 242 | { 41, 216, 41, 216, 41, 216, 41, 216 }, { 42, 215, 42, 215, 42, 215, 42, 215 }, | |
| 243 | { 43, 214, 43, 214, 43, 214, 43, 214 }, { 44, 213, 44, 213, 44, 213, 44, 213 }, | |
| 244 | { 45, 212, 45, 212, 45, 212, 45, 212 }, { 46, 211, 46, 211, 46, 211, 46, 211 }, | |
| 245 | { 47, 210, 47, 210, 47, 210, 47, 210 }, { 48, 209, 48, 209, 48, 209, 48, 209 }, | |
| 246 | { 49, 208, 49, 208, 49, 208, 49, 208 }, { 50, 207, 50, 207, 50, 207, 50, 207 }, | |
| 247 | { 51, 206, 51, 206, 51, 206, 51, 206 }, { 52, 205, 52, 205, 52, 205, 52, 205 }, | |
| 248 | { 53, 204, 53, 204, 53, 204, 53, 204 }, { 54, 203, 54, 203, 54, 203, 54, 203 }, | |
| 249 | { 55, 202, 55, 202, 55, 202, 55, 202 }, { 56, 201, 56, 201, 56, 201, 56, 201 }, | |
| 250 | { 57, 200, 57, 200, 57, 200, 57, 200 }, { 58, 199, 58, 199, 58, 199, 58, 199 }, | |
| 251 | { 59, 198, 59, 198, 59, 198, 59, 198 }, { 60, 197, 60, 197, 60, 197, 60, 197 }, | |
| 252 | { 61, 196, 61, 196, 61, 196, 61, 196 }, { 62, 195, 62, 195, 62, 195, 62, 195 }, | |
| 253 | { 63, 194, 63, 194, 63, 194, 63, 194 }, { 64, 193, 64, 193, 64, 193, 64, 193 }, | |
| 254 | { 65, 192, 65, 192, 65, 192, 65, 192 }, { 66, 191, 66, 191, 66, 191, 66, 191 }, | |
| 255 | { 67, 190, 67, 190, 67, 190, 67, 190 }, { 68, 189, 68, 189, 68, 189, 68, 189 }, | |
| 256 | { 69, 188, 69, 188, 69, 188, 69, 188 }, { 70, 187, 70, 187, 70, 187, 70, 187 }, | |
| 257 | { 71, 186, 71, 186, 71, 186, 71, 186 }, { 72, 185, 72, 185, 72, 185, 72, 185 }, | |
| 258 | { 73, 184, 73, 184, 73, 184, 73, 184 }, { 74, 183, 74, 183, 74, 183, 74, 183 }, | |
| 259 | { 75, 182, 75, 182, 75, 182, 75, 182 }, { 76, 181, 76, 181, 76, 181, 76, 181 }, | |
| 260 | { 77, 180, 77, 180, 77, 180, 77, 180 }, { 78, 179, 78, 179, 78, 179, 78, 179 }, | |
| 261 | { 79, 178, 79, 178, 79, 178, 79, 178 }, { 80, 177, 80, 177, 80, 177, 80, 177 }, | |
| 262 | { 81, 176, 81, 176, 81, 176, 81, 176 }, { 82, 175, 82, 175, 82, 175, 82, 175 }, | |
| 263 | { 83, 174, 83, 174, 83, 174, 83, 174 }, { 84, 173, 84, 173, 84, 173, 84, 173 }, | |
| 264 | { 85, 172, 85, 172, 85, 172, 85, 172 }, { 86, 171, 86, 171, 86, 171, 86, 171 }, | |
| 265 | { 87, 170, 87, 170, 87, 170, 87, 170 }, { 88, 169, 88, 169, 88, 169, 88, 169 }, | |
| 266 | { 89, 168, 89, 168, 89, 168, 89, 168 }, { 90, 167, 90, 167, 90, 167, 90, 167 }, | |
| 267 | { 91, 166, 91, 166, 91, 166, 91, 166 }, { 92, 165, 92, 165, 92, 165, 92, 165 }, | |
| 268 | { 93, 164, 93, 164, 93, 164, 93, 164 }, { 94, 163, 94, 163, 94, 163, 94, 163 }, | |
| 269 | { 95, 162, 95, 162, 95, 162, 95, 162 }, { 96, 161, 96, 161, 96, 161, 96, 161 }, | |
| 270 | { 97, 160, 97, 160, 97, 160, 97, 160 }, { 98, 159, 98, 159, 98, 159, 98, 159 }, | |
| 271 | { 99, 158, 99, 158, 99, 158, 99, 158 }, { 100, 157, 100, 157, 100, 157, 100, 157 }, | |
| 272 | { 101, 156, 101, 156, 101, 156, 101, 156 }, { 102, 155, 102, 155, 102, 155, 102, 155 }, | |
| 273 | { 103, 154, 103, 154, 103, 154, 103, 154 }, { 104, 153, 104, 153, 104, 153, 104, 153 }, | |
| 274 | { 105, 152, 105, 152, 105, 152, 105, 152 }, { 106, 151, 106, 151, 106, 151, 106, 151 }, | |
| 275 | { 107, 150, 107, 150, 107, 150, 107, 150 }, { 108, 149, 108, 149, 108, 149, 108, 149 }, | |
| 276 | { 109, 148, 109, 148, 109, 148, 109, 148 }, { 110, 147, 110, 147, 110, 147, 110, 147 }, | |
| 277 | { 111, 146, 111, 146, 111, 146, 111, 146 }, { 112, 145, 112, 145, 112, 145, 112, 145 }, | |
| 278 | { 113, 144, 113, 144, 113, 144, 113, 144 }, { 114, 143, 114, 143, 114, 143, 114, 143 }, | |
| 279 | { 115, 142, 115, 142, 115, 142, 115, 142 }, { 116, 141, 116, 141, 116, 141, 116, 141 }, | |
| 280 | { 117, 140, 117, 140, 117, 140, 117, 140 }, { 118, 139, 118, 139, 118, 139, 118, 139 }, | |
| 281 | { 119, 138, 119, 138, 119, 138, 119, 138 }, { 120, 137, 120, 137, 120, 137, 120, 137 }, | |
| 282 | { 121, 136, 121, 136, 121, 136, 121, 136 }, { 122, 135, 122, 135, 122, 135, 122, 135 }, | |
| 283 | { 123, 134, 123, 134, 123, 134, 123, 134 }, { 124, 133, 124, 133, 124, 133, 124, 133 }, | |
| 284 | { 125, 132, 125, 132, 125, 132, 125, 132 }, { 126, 131, 126, 131, 126, 131, 126, 131 }, | |
| 285 | { 127, 130, 127, 130, 127, 130, 127, 130 }, { 128, 129, 128, 129, 128, 129, 128, 129 }, | |
| 286 | { 129, 128, 129, 128, 129, 128, 129, 128 }, { 130, 127, 130, 127, 130, 127, 130, 127 }, | |
| 287 | { 131, 126, 131, 126, 131, 126, 131, 126 }, { 132, 125, 132, 125, 132, 125, 132, 125 }, | |
| 288 | { 133, 124, 133, 124, 133, 124, 133, 124 }, { 134, 123, 134, 123, 134, 123, 134, 123 }, | |
| 289 | { 135, 122, 135, 122, 135, 122, 135, 122 }, { 136, 121, 136, 121, 136, 121, 136, 121 }, | |
| 290 | { 137, 120, 137, 120, 137, 120, 137, 120 }, { 138, 119, 138, 119, 138, 119, 138, 119 }, | |
| 291 | { 139, 118, 139, 118, 139, 118, 139, 118 }, { 140, 117, 140, 117, 140, 117, 140, 117 }, | |
| 292 | { 141, 116, 141, 116, 141, 116, 141, 116 }, { 142, 115, 142, 115, 142, 115, 142, 115 }, | |
| 293 | { 143, 114, 143, 114, 143, 114, 143, 114 }, { 144, 113, 144, 113, 144, 113, 144, 113 }, | |
| 294 | { 145, 112, 145, 112, 145, 112, 145, 112 }, { 146, 111, 146, 111, 146, 111, 146, 111 }, | |
| 295 | { 147, 110, 147, 110, 147, 110, 147, 110 }, { 148, 109, 148, 109, 148, 109, 148, 109 }, | |
| 296 | { 149, 108, 149, 108, 149, 108, 149, 108 }, { 150, 107, 150, 107, 150, 107, 150, 107 }, | |
| 297 | { 151, 106, 151, 106, 151, 106, 151, 106 }, { 152, 105, 152, 105, 152, 105, 152, 105 }, | |
| 298 | { 153, 104, 153, 104, 153, 104, 153, 104 }, { 154, 103, 154, 103, 154, 103, 154, 103 }, | |
| 299 | { 155, 102, 155, 102, 155, 102, 155, 102 }, { 156, 101, 156, 101, 156, 101, 156, 101 }, | |
| 300 | { 157, 100, 157, 100, 157, 100, 157, 100 }, { 158, 99, 158, 99, 158, 99, 158, 99 }, | |
| 301 | { 159, 98, 159, 98, 159, 98, 159, 98 }, { 160, 97, 160, 97, 160, 97, 160, 97 }, | |
| 302 | { 161, 96, 161, 96, 161, 96, 161, 96 }, { 162, 95, 162, 95, 162, 95, 162, 95 }, | |
| 303 | { 163, 94, 163, 94, 163, 94, 163, 94 }, { 164, 93, 164, 93, 164, 93, 164, 93 }, | |
| 304 | { 165, 92, 165, 92, 165, 92, 165, 92 }, { 166, 91, 166, 91, 166, 91, 166, 91 }, | |
| 305 | { 167, 90, 167, 90, 167, 90, 167, 90 }, { 168, 89, 168, 89, 168, 89, 168, 89 }, | |
| 306 | { 169, 88, 169, 88, 169, 88, 169, 88 }, { 170, 87, 170, 87, 170, 87, 170, 87 }, | |
| 307 | { 171, 86, 171, 86, 171, 86, 171, 86 }, { 172, 85, 172, 85, 172, 85, 172, 85 }, | |
| 308 | { 173, 84, 173, 84, 173, 84, 173, 84 }, { 174, 83, 174, 83, 174, 83, 174, 83 }, | |
| 309 | { 175, 82, 175, 82, 175, 82, 175, 82 }, { 176, 81, 176, 81, 176, 81, 176, 81 }, | |
| 310 | { 177, 80, 177, 80, 177, 80, 177, 80 }, { 178, 79, 178, 79, 178, 79, 178, 79 }, | |
| 311 | { 179, 78, 179, 78, 179, 78, 179, 78 }, { 180, 77, 180, 77, 180, 77, 180, 77 }, | |
| 312 | { 181, 76, 181, 76, 181, 76, 181, 76 }, { 182, 75, 182, 75, 182, 75, 182, 75 }, | |
| 313 | { 183, 74, 183, 74, 183, 74, 183, 74 }, { 184, 73, 184, 73, 184, 73, 184, 73 }, | |
| 314 | { 185, 72, 185, 72, 185, 72, 185, 72 }, { 186, 71, 186, 71, 186, 71, 186, 71 }, | |
| 315 | { 187, 70, 187, 70, 187, 70, 187, 70 }, { 188, 69, 188, 69, 188, 69, 188, 69 }, | |
| 316 | { 189, 68, 189, 68, 189, 68, 189, 68 }, { 190, 67, 190, 67, 190, 67, 190, 67 }, | |
| 317 | { 191, 66, 191, 66, 191, 66, 191, 66 }, { 192, 65, 192, 65, 192, 65, 192, 65 }, | |
| 318 | { 193, 64, 193, 64, 193, 64, 193, 64 }, { 194, 63, 194, 63, 194, 63, 194, 63 }, | |
| 319 | { 195, 62, 195, 62, 195, 62, 195, 62 }, { 196, 61, 196, 61, 196, 61, 196, 61 }, | |
| 320 | { 197, 60, 197, 60, 197, 60, 197, 60 }, { 198, 59, 198, 59, 198, 59, 198, 59 }, | |
| 321 | { 199, 58, 199, 58, 199, 58, 199, 58 }, { 200, 57, 200, 57, 200, 57, 200, 57 }, | |
| 322 | { 201, 56, 201, 56, 201, 56, 201, 56 }, { 202, 55, 202, 55, 202, 55, 202, 55 }, | |
| 323 | { 203, 54, 203, 54, 203, 54, 203, 54 }, { 204, 53, 204, 53, 204, 53, 204, 53 }, | |
| 324 | { 205, 52, 205, 52, 205, 52, 205, 52 }, { 206, 51, 206, 51, 206, 51, 206, 51 }, | |
| 325 | { 207, 50, 207, 50, 207, 50, 207, 50 }, { 208, 49, 208, 49, 208, 49, 208, 49 }, | |
| 326 | { 209, 48, 209, 48, 209, 48, 209, 48 }, { 210, 47, 210, 47, 210, 47, 210, 47 }, | |
| 327 | { 211, 46, 211, 46, 211, 46, 211, 46 }, { 212, 45, 212, 45, 212, 45, 212, 45 }, | |
| 328 | { 213, 44, 213, 44, 213, 44, 213, 44 }, { 214, 43, 214, 43, 214, 43, 214, 43 }, | |
| 329 | { 215, 42, 215, 42, 215, 42, 215, 42 }, { 216, 41, 216, 41, 216, 41, 216, 41 }, | |
| 330 | { 217, 40, 217, 40, 217, 40, 217, 40 }, { 218, 39, 218, 39, 218, 39, 218, 39 }, | |
| 331 | { 219, 38, 219, 38, 219, 38, 219, 38 }, { 220, 37, 220, 37, 220, 37, 220, 37 }, | |
| 332 | { 221, 36, 221, 36, 221, 36, 221, 36 }, { 222, 35, 222, 35, 222, 35, 222, 35 }, | |
| 333 | { 223, 34, 223, 34, 223, 34, 223, 34 }, { 224, 33, 224, 33, 224, 33, 224, 33 }, | |
| 334 | { 225, 32, 225, 32, 225, 32, 225, 32 }, { 226, 31, 226, 31, 226, 31, 226, 31 }, | |
| 335 | { 227, 30, 227, 30, 227, 30, 227, 30 }, { 228, 29, 228, 29, 228, 29, 228, 29 }, | |
| 336 | { 229, 28, 229, 28, 229, 28, 229, 28 }, { 230, 27, 230, 27, 230, 27, 230, 27 }, | |
| 337 | { 231, 26, 231, 26, 231, 26, 231, 26 }, { 232, 25, 232, 25, 232, 25, 232, 25 }, | |
| 338 | { 233, 24, 233, 24, 233, 24, 233, 24 }, { 234, 23, 234, 23, 234, 23, 234, 23 }, | |
| 339 | { 235, 22, 235, 22, 235, 22, 235, 22 }, { 236, 21, 236, 21, 236, 21, 236, 21 }, | |
| 340 | { 237, 20, 237, 20, 237, 20, 237, 20 }, { 238, 19, 238, 19, 238, 19, 238, 19 }, | |
| 341 | { 239, 18, 239, 18, 239, 18, 239, 18 }, { 240, 17, 240, 17, 240, 17, 240, 17 }, | |
| 342 | { 241, 16, 241, 16, 241, 16, 241, 16 }, { 242, 15, 242, 15, 242, 15, 242, 15 }, | |
| 343 | { 243, 14, 243, 14, 243, 14, 243, 14 }, { 244, 13, 244, 13, 244, 13, 244, 13 }, | |
| 344 | { 245, 12, 245, 12, 245, 12, 245, 12 }, { 246, 11, 246, 11, 246, 11, 246, 11 }, | |
| 345 | { 247, 10, 247, 10, 247, 10, 247, 10 }, { 248, 9, 248, 9, 248, 9, 248, 9 }, | |
| 346 | { 249, 8, 249, 8, 249, 8, 249, 8 }, { 250, 7, 250, 7, 250, 7, 250, 7 }, | |
| 347 | { 251, 6, 251, 6, 251, 6, 251, 6 }, { 252, 5, 252, 5, 252, 5, 252, 5 }, | |
| 348 | { 253, 4, 253, 4, 253, 4, 253, 4 }, { 254, 3, 254, 3, 254, 3, 254, 3 }, | |
| 349 | { 255, 2, 255, 2, 255, 2, 255, 2 }, { 256, 1, 256, 1, 256, 1, 256, 1 } | |
| 350 | } | |
| 351 | }; | |
| 218 | } rgbvmx_statics; | |
| 352 | 219 | |
| 353 | 220 | |
| 354 | 221 |
| r4470 | r4471 | |
|---|---|---|
| 199 | 199 | TABLES |
| 200 | 200 | ***************************************************************************/ |
| 201 | 201 | |
| 202 | ||
| 202 | extern | |
| 203 | 203 | { |
| 204 | 204 | __m128 dummy_for_alignment; |
| 205 | 205 | INT16 zero[8]; |
| 206 | 206 | INT16 maxbyte[8]; |
| 207 | 207 | INT16 scale_table[256][8]; |
| 208 | } rgbsse_statics = | |
| 209 | { | |
| 210 | { 0 }, | |
| 211 | { 0, 0, 0, 0, 0, 0, 0, 0 }, | |
| 212 | { 255, 255, 255, 255, 255, 255, 255, 255 }, | |
| 213 | { | |
| 214 | { 1, 256, 1, 256, 1, 256, 1, 256 }, { 2, 255, 2, 255, 2, 255, 2, 255 }, | |
| 215 | { 3, 254, 3, 254, 3, 254, 3, 254 }, { 4, 253, 4, 253, 4, 253, 4, 253 }, | |
| 216 | { 5, 252, 5, 252, 5, 252, 5, 252 }, { 6, 251, 6, 251, 6, 251, 6, 251 }, | |
| 217 | { 7, 250, 7, 250, 7, 250, 7, 250 }, { 8, 249, 8, 249, 8, 249, 8, 249 }, | |
| 218 | { 9, 248, 9, 248, 9, 248, 9, 248 }, { 10, 247, 10, 247, 10, 247, 10, 247 }, | |
| 219 | { 11, 246, 11, 246, 11, 246, 11, 246 }, { 12, 245, 12, 245, 12, 245, 12, 245 }, | |
| 220 | { 13, 244, 13, 244, 13, 244, 13, 244 }, { 14, 243, 14, 243, 14, 243, 14, 243 }, | |
| 221 | { 15, 242, 15, 242, 15, 242, 15, 242 }, { 16, 241, 16, 241, 16, 241, 16, 241 }, | |
| 222 | { 17, 240, 17, 240, 17, 240, 17, 240 }, { 18, 239, 18, 239, 18, 239, 18, 239 }, | |
| 223 | { 19, 238, 19, 238, 19, 238, 19, 238 }, { 20, 237, 20, 237, 20, 237, 20, 237 }, | |
| 224 | { 21, 236, 21, 236, 21, 236, 21, 236 }, { 22, 235, 22, 235, 22, 235, 22, 235 }, | |
| 225 | { 23, 234, 23, 234, 23, 234, 23, 234 }, { 24, 233, 24, 233, 24, 233, 24, 233 }, | |
| 226 | { 25, 232, 25, 232, 25, 232, 25, 232 }, { 26, 231, 26, 231, 26, 231, 26, 231 }, | |
| 227 | { 27, 230, 27, 230, 27, 230, 27, 230 }, { 28, 229, 28, 229, 28, 229, 28, 229 }, | |
| 228 | { 29, 228, 29, 228, 29, 228, 29, 228 }, { 30, 227, 30, 227, 30, 227, 30, 227 }, | |
| 229 | { 31, 226, 31, 226, 31, 226, 31, 226 }, { 32, 225, 32, 225, 32, 225, 32, 225 }, | |
| 230 | { 33, 224, 33, 224, 33, 224, 33, 224 }, { 34, 223, 34, 223, 34, 223, 34, 223 }, | |
| 231 | { 35, 222, 35, 222, 35, 222, 35, 222 }, { 36, 221, 36, 221, 36, 221, 36, 221 }, | |
| 232 | { 37, 220, 37, 220, 37, 220, 37, 220 }, { 38, 219, 38, 219, 38, 219, 38, 219 }, | |
| 233 | { 39, 218, 39, 218, 39, 218, 39, 218 }, { 40, 217, 40, 217, 40, 217, 40, 217 }, | |
| 234 | { 41, 216, 41, 216, 41, 216, 41, 216 }, { 42, 215, 42, 215, 42, 215, 42, 215 }, | |
| 235 | { 43, 214, 43, 214, 43, 214, 43, 214 }, { 44, 213, 44, 213, 44, 213, 44, 213 }, | |
| 236 | { 45, 212, 45, 212, 45, 212, 45, 212 }, { 46, 211, 46, 211, 46, 211, 46, 211 }, | |
| 237 | { 47, 210, 47, 210, 47, 210, 47, 210 }, { 48, 209, 48, 209, 48, 209, 48, 209 }, | |
| 238 | { 49, 208, 49, 208, 49, 208, 49, 208 }, { 50, 207, 50, 207, 50, 207, 50, 207 }, | |
| 239 | { 51, 206, 51, 206, 51, 206, 51, 206 }, { 52, 205, 52, 205, 52, 205, 52, 205 }, | |
| 240 | { 53, 204, 53, 204, 53, 204, 53, 204 }, { 54, 203, 54, 203, 54, 203, 54, 203 }, | |
| 241 | { 55, 202, 55, 202, 55, 202, 55, 202 }, { 56, 201, 56, 201, 56, 201, 56, 201 }, | |
| 242 | { 57, 200, 57, 200, 57, 200, 57, 200 }, { 58, 199, 58, 199, 58, 199, 58, 199 }, | |
| 243 | { 59, 198, 59, 198, 59, 198, 59, 198 }, { 60, 197, 60, 197, 60, 197, 60, 197 }, | |
| 244 | { 61, 196, 61, 196, 61, 196, 61, 196 }, { 62, 195, 62, 195, 62, 195, 62, 195 }, | |
| 245 | { 63, 194, 63, 194, 63, 194, 63, 194 }, { 64, 193, 64, 193, 64, 193, 64, 193 }, | |
| 246 | { 65, 192, 65, 192, 65, 192, 65, 192 }, { 66, 191, 66, 191, 66, 191, 66, 191 }, | |
| 247 | { 67, 190, 67, 190, 67, 190, 67, 190 }, { 68, 189, 68, 189, 68, 189, 68, 189 }, | |
| 248 | { 69, 188, 69, 188, 69, 188, 69, 188 }, { 70, 187, 70, 187, 70, 187, 70, 187 }, | |
| 249 | { 71, 186, 71, 186, 71, 186, 71, 186 }, { 72, 185, 72, 185, 72, 185, 72, 185 }, | |
| 250 | { 73, 184, 73, 184, 73, 184, 73, 184 }, { 74, 183, 74, 183, 74, 183, 74, 183 }, | |
| 251 | { 75, 182, 75, 182, 75, 182, 75, 182 }, { 76, 181, 76, 181, 76, 181, 76, 181 }, | |
| 252 | { 77, 180, 77, 180, 77, 180, 77, 180 }, { 78, 179, 78, 179, 78, 179, 78, 179 }, | |
| 253 | { 79, 178, 79, 178, 79, 178, 79, 178 }, { 80, 177, 80, 177, 80, 177, 80, 177 }, | |
| 254 | { 81, 176, 81, 176, 81, 176, 81, 176 }, { 82, 175, 82, 175, 82, 175, 82, 175 }, | |
| 255 | { 83, 174, 83, 174, 83, 174, 83, 174 }, { 84, 173, 84, 173, 84, 173, 84, 173 }, | |
| 256 | { 85, 172, 85, 172, 85, 172, 85, 172 }, { 86, 171, 86, 171, 86, 171, 86, 171 }, | |
| 257 | { 87, 170, 87, 170, 87, 170, 87, 170 }, { 88, 169, 88, 169, 88, 169, 88, 169 }, | |
| 258 | { 89, 168, 89, 168, 89, 168, 89, 168 }, { 90, 167, 90, 167, 90, 167, 90, 167 }, | |
| 259 | { 91, 166, 91, 166, 91, 166, 91, 166 }, { 92, 165, 92, 165, 92, 165, 92, 165 }, | |
| 260 | { 93, 164, 93, 164, 93, 164, 93, 164 }, { 94, 163, 94, 163, 94, 163, 94, 163 }, | |
| 261 | { 95, 162, 95, 162, 95, 162, 95, 162 }, { 96, 161, 96, 161, 96, 161, 96, 161 }, | |
| 262 | { 97, 160, 97, 160, 97, 160, 97, 160 }, { 98, 159, 98, 159, 98, 159, 98, 159 }, | |
| 263 | { 99, 158, 99, 158, 99, 158, 99, 158 }, { 100, 157, 100, 157, 100, 157, 100, 157 }, | |
| 264 | { 101, 156, 101, 156, 101, 156, 101, 156 }, { 102, 155, 102, 155, 102, 155, 102, 155 }, | |
| 265 | { 103, 154, 103, 154, 103, 154, 103, 154 }, { 104, 153, 104, 153, 104, 153, 104, 153 }, | |
| 266 | { 105, 152, 105, 152, 105, 152, 105, 152 }, { 106, 151, 106, 151, 106, 151, 106, 151 }, | |
| 267 | { 107, 150, 107, 150, 107, 150, 107, 150 }, { 108, 149, 108, 149, 108, 149, 108, 149 }, | |
| 268 | { 109, 148, 109, 148, 109, 148, 109, 148 }, { 110, 147, 110, 147, 110, 147, 110, 147 }, | |
| 269 | { 111, 146, 111, 146, 111, 146, 111, 146 }, { 112, 145, 112, 145, 112, 145, 112, 145 }, | |
| 270 | { 113, 144, 113, 144, 113, 144, 113, 144 }, { 114, 143, 114, 143, 114, 143, 114, 143 }, | |
| 271 | { 115, 142, 115, 142, 115, 142, 115, 142 }, { 116, 141, 116, 141, 116, 141, 116, 141 }, | |
| 272 | { 117, 140, 117, 140, 117, 140, 117, 140 }, { 118, 139, 118, 139, 118, 139, 118, 139 }, | |
| 273 | { 119, 138, 119, 138, 119, 138, 119, 138 }, { 120, 137, 120, 137, 120, 137, 120, 137 }, | |
| 274 | { 121, 136, 121, 136, 121, 136, 121, 136 }, { 122, 135, 122, 135, 122, 135, 122, 135 }, | |
| 275 | { 123, 134, 123, 134, 123, 134, 123, 134 }, { 124, 133, 124, 133, 124, 133, 124, 133 }, | |
| 276 | { 125, 132, 125, 132, 125, 132, 125, 132 }, { 126, 131, 126, 131, 126, 131, 126, 131 }, | |
| 277 | { 127, 130, 127, 130, 127, 130, 127, 130 }, { 128, 129, 128, 129, 128, 129, 128, 129 }, | |
| 278 | { 129, 128, 129, 128, 129, 128, 129, 128 }, { 130, 127, 130, 127, 130, 127, 130, 127 }, | |
| 279 | { 131, 126, 131, 126, 131, 126, 131, 126 }, { 132, 125, 132, 125, 132, 125, 132, 125 }, | |
| 280 | { 133, 124, 133, 124, 133, 124, 133, 124 }, { 134, 123, 134, 123, 134, 123, 134, 123 }, | |
| 281 | { 135, 122, 135, 122, 135, 122, 135, 122 }, { 136, 121, 136, 121, 136, 121, 136, 121 }, | |
| 282 | { 137, 120, 137, 120, 137, 120, 137, 120 }, { 138, 119, 138, 119, 138, 119, 138, 119 }, | |
| 283 | { 139, 118, 139, 118, 139, 118, 139, 118 }, { 140, 117, 140, 117, 140, 117, 140, 117 }, | |
| 284 | { 141, 116, 141, 116, 141, 116, 141, 116 }, { 142, 115, 142, 115, 142, 115, 142, 115 }, | |
| 285 | { 143, 114, 143, 114, 143, 114, 143, 114 }, { 144, 113, 144, 113, 144, 113, 144, 113 }, | |
| 286 | { 145, 112, 145, 112, 145, 112, 145, 112 }, { 146, 111, 146, 111, 146, 111, 146, 111 }, | |
| 287 | { 147, 110, 147, 110, 147, 110, 147, 110 }, { 148, 109, 148, 109, 148, 109, 148, 109 }, | |
| 288 | { 149, 108, 149, 108, 149, 108, 149, 108 }, { 150, 107, 150, 107, 150, 107, 150, 107 }, | |
| 289 | { 151, 106, 151, 106, 151, 106, 151, 106 }, { 152, 105, 152, 105, 152, 105, 152, 105 }, | |
| 290 | { 153, 104, 153, 104, 153, 104, 153, 104 }, { 154, 103, 154, 103, 154, 103, 154, 103 }, | |
| 291 | { 155, 102, 155, 102, 155, 102, 155, 102 }, { 156, 101, 156, 101, 156, 101, 156, 101 }, | |
| 292 | { 157, 100, 157, 100, 157, 100, 157, 100 }, { 158, 99, 158, 99, 158, 99, 158, 99 }, | |
| 293 | { 159, 98, 159, 98, 159, 98, 159, 98 }, { 160, 97, 160, 97, 160, 97, 160, 97 }, | |
| 294 | { 161, 96, 161, 96, 161, 96, 161, 96 }, { 162, 95, 162, 95, 162, 95, 162, 95 }, | |
| 295 | { 163, 94, 163, 94, 163, 94, 163, 94 }, { 164, 93, 164, 93, 164, 93, 164, 93 }, | |
| 296 | { 165, 92, 165, 92, 165, 92, 165, 92 }, { 166, 91, 166, 91, 166, 91, 166, 91 }, | |
| 297 | { 167, 90, 167, 90, 167, 90, 167, 90 }, { 168, 89, 168, 89, 168, 89, 168, 89 }, | |
| 298 | { 169, 88, 169, 88, 169, 88, 169, 88 }, { 170, 87, 170, 87, 170, 87, 170, 87 }, | |
| 299 | { 171, 86, 171, 86, 171, 86, 171, 86 }, { 172, 85, 172, 85, 172, 85, 172, 85 }, | |
| 300 | { 173, 84, 173, 84, 173, 84, 173, 84 }, { 174, 83, 174, 83, 174, 83, 174, 83 }, | |
| 301 | { 175, 82, 175, 82, 175, 82, 175, 82 }, { 176, 81, 176, 81, 176, 81, 176, 81 }, | |
| 302 | { 177, 80, 177, 80, 177, 80, 177, 80 }, { 178, 79, 178, 79, 178, 79, 178, 79 }, | |
| 303 | { 179, 78, 179, 78, 179, 78, 179, 78 }, { 180, 77, 180, 77, 180, 77, 180, 77 }, | |
| 304 | { 181, 76, 181, 76, 181, 76, 181, 76 }, { 182, 75, 182, 75, 182, 75, 182, 75 }, | |
| 305 | { 183, 74, 183, 74, 183, 74, 183, 74 }, { 184, 73, 184, 73, 184, 73, 184, 73 }, | |
| 306 | { 185, 72, 185, 72, 185, 72, 185, 72 }, { 186, 71, 186, 71, 186, 71, 186, 71 }, | |
| 307 | { 187, 70, 187, 70, 187, 70, 187, 70 }, { 188, 69, 188, 69, 188, 69, 188, 69 }, | |
| 308 | { 189, 68, 189, 68, 189, 68, 189, 68 }, { 190, 67, 190, 67, 190, 67, 190, 67 }, | |
| 309 | { 191, 66, 191, 66, 191, 66, 191, 66 }, { 192, 65, 192, 65, 192, 65, 192, 65 }, | |
| 310 | { 193, 64, 193, 64, 193, 64, 193, 64 }, { 194, 63, 194, 63, 194, 63, 194, 63 }, | |
| 311 | { 195, 62, 195, 62, 195, 62, 195, 62 }, { 196, 61, 196, 61, 196, 61, 196, 61 }, | |
| 312 | { 197, 60, 197, 60, 197, 60, 197, 60 }, { 198, 59, 198, 59, 198, 59, 198, 59 }, | |
| 313 | { 199, 58, 199, 58, 199, 58, 199, 58 }, { 200, 57, 200, 57, 200, 57, 200, 57 }, | |
| 314 | { 201, 56, 201, 56, 201, 56, 201, 56 }, { 202, 55, 202, 55, 202, 55, 202, 55 }, | |
| 315 | { 203, 54, 203, 54, 203, 54, 203, 54 }, { 204, 53, 204, 53, 204, 53, 204, 53 }, | |
| 316 | { 205, 52, 205, 52, 205, 52, 205, 52 }, { 206, 51, 206, 51, 206, 51, 206, 51 }, | |
| 317 | { 207, 50, 207, 50, 207, 50, 207, 50 }, { 208, 49, 208, 49, 208, 49, 208, 49 }, | |
| 318 | { 209, 48, 209, 48, 209, 48, 209, 48 }, { 210, 47, 210, 47, 210, 47, 210, 47 }, | |
| 319 | { 211, 46, 211, 46, 211, 46, 211, 46 }, { 212, 45, 212, 45, 212, 45, 212, 45 }, | |
| 320 | { 213, 44, 213, 44, 213, 44, 213, 44 }, { 214, 43, 214, 43, 214, 43, 214, 43 }, | |
| 321 | { 215, 42, 215, 42, 215, 42, 215, 42 }, { 216, 41, 216, 41, 216, 41, 216, 41 }, | |
| 322 | { 217, 40, 217, 40, 217, 40, 217, 40 }, { 218, 39, 218, 39, 218, 39, 218, 39 }, | |
| 323 | { 219, 38, 219, 38, 219, 38, 219, 38 }, { 220, 37, 220, 37, 220, 37, 220, 37 }, | |
| 324 | { 221, 36, 221, 36, 221, 36, 221, 36 }, { 222, 35, 222, 35, 222, 35, 222, 35 }, | |
| 325 | { 223, 34, 223, 34, 223, 34, 223, 34 }, { 224, 33, 224, 33, 224, 33, 224, 33 }, | |
| 326 | { 225, 32, 225, 32, 225, 32, 225, 32 }, { 226, 31, 226, 31, 226, 31, 226, 31 }, | |
| 327 | { 227, 30, 227, 30, 227, 30, 227, 30 }, { 228, 29, 228, 29, 228, 29, 228, 29 }, | |
| 328 | { 229, 28, 229, 28, 229, 28, 229, 28 }, { 230, 27, 230, 27, 230, 27, 230, 27 }, | |
| 329 | { 231, 26, 231, 26, 231, 26, 231, 26 }, { 232, 25, 232, 25, 232, 25, 232, 25 }, | |
| 330 | { 233, 24, 233, 24, 233, 24, 233, 24 }, { 234, 23, 234, 23, 234, 23, 234, 23 }, | |
| 331 | { 235, 22, 235, 22, 235, 22, 235, 22 }, { 236, 21, 236, 21, 236, 21, 236, 21 }, | |
| 332 | { 237, 20, 237, 20, 237, 20, 237, 20 }, { 238, 19, 238, 19, 238, 19, 238, 19 }, | |
| 333 | { 239, 18, 239, 18, 239, 18, 239, 18 }, { 240, 17, 240, 17, 240, 17, 240, 17 }, | |
| 334 | { 241, 16, 241, 16, 241, 16, 241, 16 }, { 242, 15, 242, 15, 242, 15, 242, 15 }, | |
| 335 | { 243, 14, 243, 14, 243, 14, 243, 14 }, { 244, 13, 244, 13, 244, 13, 244, 13 }, | |
| 336 | { 245, 12, 245, 12, 245, 12, 245, 12 }, { 246, 11, 246, 11, 246, 11, 246, 11 }, | |
| 337 | { 247, 10, 247, 10, 247, 10, 247, 10 }, { 248, 9, 248, 9, 248, 9, 248, 9 }, | |
| 338 | { 249, 8, 249, 8, 249, 8, 249, 8 }, { 250, 7, 250, 7, 250, 7, 250, 7 }, | |
| 339 | { 251, 6, 251, 6, 251, 6, 251, 6 }, { 252, 5, 252, 5, 252, 5, 252, 5 }, | |
| 340 | { 253, 4, 253, 4, 253, 4, 253, 4 }, { 254, 3, 254, 3, 254, 3, 254, 3 }, | |
| 341 | { 255, 2, 255, 2, 255, 2, 255, 2 }, { 256, 1, 256, 1, 256, 1, 256, 1 } | |
| 342 | } | |
| 343 | }; | |
| 208 | } rgbsse_statics; | |
| 344 | 209 | |
| 345 | 210 | |
| 346 | 211 |
| r4470 | r4471 | |
|---|---|---|
| 43 | 43 | { "inipath", ".;ini", 0, "path to ini files" }, |
| 44 | 44 | { "fontpath", ".", 0, "path to font files" }, |
| 45 | 45 | { "cheatpath", "cheat", 0, "path to cheat files" }, |
| 46 | { "crsshairpath", "crsshair", 0, "path to crosshair files" }, | |
| 46 | 47 | |
| 47 | 48 | /* output directory options */ |
| 48 | 49 | { NULL, NULL, OPTION_HEADER, "CORE OUTPUT DIRECTORY OPTIONS" }, |
| r4470 | r4471 | |
|---|---|---|
| 45 | 45 | #define OPTION_INIPATH "inipath" |
| 46 | 46 | #define OPTION_FONTPATH "fontpath" |
| 47 | 47 | #define OPTION_CHEATPATH "cheatpath" |
| 48 | #define OPTION_CRSSHAIRPATH "crsshairpath" | |
| 48 | 49 | |
| 49 | 50 | /* core directory options */ |
| 50 | 51 | #define OPTION_CFG_DIRECTORY "cfg_directory" |
| r4470 | r4471 | |
|---|---|---|
| 85 | 85 | VIDEO_ITEM_VIEW |
| 86 | 86 | }; |
| 87 | 87 | |
| 88 | enum | |
| 89 | { | |
| 90 | CROSSHAIR_ITEM_VIS = 0, | |
| 91 | CROSSHAIR_ITEM_PIC, | |
| 92 | CROSSHAIR_ITEM_AUTO_TIME | |
| 93 | }; | |
| 88 | 94 | |
| 89 | 95 | |
| 90 | 96 | /*************************************************************************** |
| r4470 | r4471 | |
| 203 | 209 | }; |
| 204 | 210 | |
| 205 | 211 | |
| 212 | /* internal crosshair menu item data */ | |
| 213 | typedef struct _crosshair_item_data crosshair_item_data; | |
| 214 | struct _crosshair_item_data | |
| 215 | { | |
| 216 | UINT8 type; | |
| 217 | UINT8 player; | |
| 218 | UINT8 min, max; | |
| 219 | UINT8 cur; | |
| 220 | UINT8 defvalue; | |
| 221 | char last_name[CROSSHAIR_PIC_NAME_LENGTH + 1]; | |
| 222 | char next_name[CROSSHAIR_PIC_NAME_LENGTH + 1]; | |
| 223 | }; | |
| 206 | 224 | |
| 225 | ||
| 226 | ||
| 207 | 227 | /*************************************************************************** |
| 208 | 228 | GLOBAL VARIABLES |
| 209 | 229 | ***************************************************************************/ |
| r4470 | r4471 | |
| 281 | 301 | static void menu_video_targets_populate(running_machine *machine, ui_menu *menu); |
| 282 | 302 | static void menu_video_options(running_machine *machine, ui_menu *menu, void *parameter, void *state); |
| 283 | 303 | static void menu_video_options_populate(running_machine *machine, ui_menu *menu, render_target *target); |
| 304 | static void menu_crosshair(running_machine *machine, ui_menu *menu, void *parameter, void *state); | |
| 305 | static void menu_crosshair_populate(running_machine *machine, ui_menu *menu); | |
| 284 | 306 | static void menu_quit_game(running_machine *machine, ui_menu *menu, void *parameter, void *state); |
| 285 | 307 | static void menu_select_game(running_machine *machine, ui_menu *menu, void *parameter, void *state); |
| 286 | 308 | static void menu_select_game_populate(running_machine *machine, ui_menu *menu, select_game_state *menustate); |
| r4470 | r4471 | |
| 1489 | 1511 | /* add video options menu */ |
| 1490 | 1512 | ui_menu_item_append(menu, "Video Options", NULL, 0, (render_target_get_indexed(1) != NULL) ? (void *)menu_video_targets : (void *)menu_video_options); |
| 1491 | 1513 | |
| 1514 | /* add crosshair options menu */ | |
| 1515 | if (crosshair_get_usage(machine)) | |
| 1516 | ui_menu_item_append(menu, "Crosshair Options", NULL, 0, menu_crosshair); | |
| 1517 | ||
| 1492 | 1518 | /* add cheat menu */ |
| 1493 | 1519 | if (options_get_bool(mame_options(), OPTION_CHEAT) && cheat_get_next_menu_entry(machine, NULL, NULL, NULL, NULL) != NULL) |
| 1494 | 1520 | ui_menu_item_append(menu, "Cheat", NULL, 0, (void *)menu_cheat); |
| r4470 | r4471 | |
| 3030 | 3056 | |
| 3031 | 3057 | |
| 3032 | 3058 | /*------------------------------------------------- |
| 3059 | menu_crosshair - handle the crosshair settings | |
| 3060 | menu | |
| 3061 | -------------------------------------------------*/ | |
| 3062 | ||
| 3063 | static void menu_crosshair(running_machine *machine, ui_menu *menu, void *parameter, void *state) | |
| 3064 | { | |
| 3065 | const ui_menu_event *event; | |
| 3066 | ||
| 3067 | /* if the menu isn't built, populate now */ | |
| 3068 | if (!ui_menu_populated(menu)) | |
| 3069 | menu_crosshair_populate(machine, menu); | |
| 3070 | ||
| 3071 | /* process the menu */ | |
| 3072 | event = ui_menu_process(machine, menu, UI_MENU_PROCESS_LR_REPEAT); | |
| 3073 | ||
| 3074 | /* handle events */ | |
| 3075 | if (event != NULL && event->itemref != NULL) | |
| 3076 | { | |
| 3077 | crosshair_user_settings settings; | |
| 3078 | crosshair_item_data *data = event->itemref; | |
| 3079 | int changed = FALSE; | |
| 3080 | int set_def = FALSE; | |
| 3081 | int newval = data->cur; | |
| 3082 | ||
| 3083 | /* retreive the user settings */ | |
| 3084 | crosshair_get_user_settings(machine, data->player, &settings); | |
| 3085 | ||
| 3086 | switch (event->iptkey) | |
| 3087 | { | |
| 3088 | /* if selected, reset to default value */ | |
| 3089 | case IPT_UI_SELECT: | |
| 3090 | newval = data->defvalue; | |
| 3091 | set_def = TRUE; | |
| 3092 | break; | |
| 3093 | ||
| 3094 | /* left decrements */ | |
| 3095 | case IPT_UI_LEFT: | |
| 3096 | newval -= input_code_pressed(KEYCODE_LSHIFT) ? 10 : 1; | |
| 3097 | break; | |
| 3098 | ||
| 3099 | /* right increments */ | |
| 3100 | case IPT_UI_RIGHT: | |
| 3101 | newval += input_code_pressed(KEYCODE_LSHIFT) ? 10 : 1; | |
| 3102 | break; | |
| 3103 | } | |
| 3104 | ||
| 3105 | /* clamp to range */ | |
| 3106 | if (newval < data->min) | |
| 3107 | newval = data->min; | |
| 3108 | if (newval > data->max) | |
| 3109 | newval = data->max; | |
| 3110 | ||
| 3111 | /* if things changed, update */ | |
| 3112 | if (newval != data->cur) | |
| 3113 | { | |
| 3114 | switch (data->type) | |
| 3115 | { | |
| 3116 | /* visibility state */ | |
| 3117 | case CROSSHAIR_ITEM_VIS: | |
| 3118 | settings.mode = newval; | |
| 3119 | changed = TRUE; | |
| 3120 | break; | |
| 3121 | ||
| 3122 | /* auto time */ | |
| 3123 | case CROSSHAIR_ITEM_AUTO_TIME: | |
| 3124 | settings.auto_time = newval; | |
| 3125 | changed = TRUE; | |
| 3126 | break; | |
| 3127 | } | |
| 3128 | } | |
| 3129 | ||
| 3130 | /* crosshair graphic name */ | |
| 3131 | if (data->type == CROSSHAIR_ITEM_PIC) | |
| 3132 | { | |
| 3133 | if (event->iptkey == IPT_UI_SELECT) | |
| 3134 | { | |
| 3135 | /* clear the name string to reset to default crosshair */ | |
| 3136 | settings.name[0] = 0; | |
| 3137 | changed = TRUE; | |
| 3138 | } | |
| 3139 | else if (event->iptkey == IPT_UI_LEFT) | |
| 3140 | { | |
| 3141 | strcpy(settings.name, data->last_name); | |
| 3142 | changed = TRUE; | |
| 3143 | } | |
| 3144 | else if (event->iptkey == IPT_UI_RIGHT) | |
| 3145 | { | |
| 3146 | strcpy(settings.name, data->next_name); | |
| 3147 | changed = TRUE; | |
| 3148 | } | |
| 3149 | } | |
| 3150 | ||
| 3151 | if (changed) | |
| 3152 | { | |
| 3153 | /* save the user settings */ | |
| 3154 | crosshair_set_user_settings(machine, data->player, &settings); | |
| 3155 | ||
| 3156 | /* rebuild the menu */ | |
| 3157 | ui_menu_reset(menu, UI_MENU_RESET_REMEMBER_POSITION); | |
| 3158 | } | |
| 3159 | } | |
| 3160 | } | |
| 3161 | ||
| 3162 | ||
| 3163 | /*------------------------------------------------- | |
| 3164 | menu_crosshair_populate - populate the | |
| 3165 | crosshair settings menu | |
| 3166 | -------------------------------------------------*/ | |
| 3167 | ||
| 3168 | static void menu_crosshair_populate(running_machine *machine, ui_menu *menu) | |
| 3169 | { | |
| 3170 | crosshair_user_settings settings; | |
| 3171 | crosshair_item_data *data; | |
| 3172 | char temp_text[16]; | |
| 3173 | int player; | |
| 3174 | UINT8 use_auto = FALSE; | |
| 3175 | UINT32 flags = 0; | |
| 3176 | mame_path *path; | |
| 3177 | ||
| 3178 | /* loop over player and add the manual items */ | |
| 3179 | for (player = 0; player < MAX_PLAYERS; player++) | |
| 3180 | { | |
| 3181 | /* get the user settings */ | |
| 3182 | crosshair_get_user_settings(machine, player, &settings); | |
| 3183 | ||
| 3184 | /* add menu items for usable crosshairs */ | |
| 3185 | if (settings.used) | |
| 3186 | { | |
| 3187 | /* Make sure to keep these matched to the CROSSHAIR_VISIBILITY_xxx types */ | |
| 3188 | static const char *const vis_text[] = { "Off", "On", "Auto" }; | |
| 3189 | ||
| 3190 | /* track if we need the auto time menu */ | |
| 3191 | if (settings.mode == CROSSHAIR_VISIBILITY_AUTO) use_auto = TRUE; | |
| 3192 | ||
| 3193 | /* CROSSHAIR_ITEM_VIS - allocate a data item and fill it */ | |
| 3194 | data = ui_menu_pool_alloc(menu, sizeof(*data)); | |
| 3195 | data->type = CROSSHAIR_ITEM_VIS; | |
| 3196 | data->player = player; | |
| 3197 | data->min = CROSSHAIR_VISIBILITY_OFF; | |
| 3198 | data->max = CROSSHAIR_VISIBILITY_AUTO; | |
| 3199 | data->defvalue = CROSSHAIR_VISIBILITY_DEFAULT; | |
| 3200 | data->cur = settings.mode; | |
| 3201 | ||
| 3202 | /* put on arrows */ | |
| 3203 | if (data->cur > data->min) | |
| 3204 | flags |= MENU_FLAG_LEFT_ARROW; | |
| 3205 | if (data->cur < data->max) | |
| 3206 | flags |= MENU_FLAG_RIGHT_ARROW; | |
| 3207 | ||
| 3208 | /* add CROSSHAIR_ITEM_VIS menu */ | |
| 3209 | sprintf(temp_text, "P%d Visibility", player + 1); | |
| 3210 | ui_menu_item_append(menu, temp_text, vis_text[settings.mode], flags, data); | |
| 3211 | ||
| 3212 | /* CROSSHAIR_ITEM_PIC - allocate a data item and fill it */ | |
| 3213 | data = ui_menu_pool_alloc(menu, sizeof(*data)); | |
| 3214 | data->type = CROSSHAIR_ITEM_PIC; | |
| 3215 | data->player = player; | |
| 3216 | data->last_name[0] = 0; | |
| 3217 | /* other data item not used by this menu */ | |
| 3218 | ||
| 3219 | /* search for crosshair graphics */ | |
| 3220 | ||
| 3221 | /* open a path to the crosshairs */ | |
| 3222 | path = mame_openpath(mame_options(), OPTION_CRSSHAIRPATH); | |
| 3223 | if (path != NULL) | |
| 3224 | { | |
| 3225 | const osd_directory_entry *dir; | |
| 3226 | ||
| 3227 | /* reset search flags */ | |
| 3228 | int using_default = FALSE; | |
| 3229 | int finished = FALSE; | |
| 3230 | int found = FALSE; | |
| 3231 | ||
| 3232 | /* if we are using the default, then we just need to find the first in the list */ | |
| 3233 | if (strlen(settings.name) == 0) | |
| 3234 | using_default = TRUE; | |
| 3235 | ||
| 3236 | /* look for the current name, then remember the name before */ | |
| 3237 | /* and find the next name */ | |
| 3238 | while (((dir = mame_readpath(path)) != NULL) && !finished) | |
| 3239 | { | |
| 3240 | int length = strlen(dir->name); | |
| 3241 | ||
| 3242 | /* look for files ending in .png with a name not larger then 9 chars*/ | |
| 3243 | if ((length > 4) && (length <= CROSSHAIR_PIC_NAME_LENGTH + 4) && | |
| 3244 | tolower(dir->name[length - 4] == '.') && | |
| 3245 | tolower(dir->name[length - 3] == 'p') && | |
| 3246 | tolower(dir->name[length - 2] == 'n') && | |
| 3247 | tolower(dir->name[length - 1] == 'g')) | |
| 3248 | ||
| 3249 | { | |
| 3250 | /* remove .png from length */ | |
| 3251 | length -= 4; | |
| 3252 | ||
| 3253 | if (found || using_default) | |
| 3254 | { | |
| 3255 | /* get the next name */ | |
| 3256 | strncpy(data->next_name, dir->name, length); | |
| 3257 | data->next_name[length] = 0; | |
| 3258 | finished = TRUE; | |
| 3259 | } | |
| 3260 | else if (!strncmp(dir->name, settings.name, length)) | |
| 3261 | { | |
| 3262 | /* we found the current name */ | |
| 3263 | /* so loop once more to find the next name */ | |
| 3264 | found = TRUE; | |
| 3265 | } | |
| 3266 | else | |
| 3267 | /* remember last name */ | |
| 3268 | /* we will do it here in case files get added to the directory */ | |
| 3269 | { | |
| 3270 | strncpy(data->last_name, dir->name, length); | |
| 3271 | data->last_name[length] = 0; | |
| 3272 | } | |
| 3273 | } | |
| 3274 | } | |
| 3275 | /* if name not found then next item is DEFAULT */ | |
| 3276 | if (!found && !using_default) | |
| 3277 | { | |
| 3278 | data->next_name[0] = 0; | |
| 3279 | finished = TRUE; | |
| 3280 | } | |
| 3281 | /* setup the selection flags */ | |
| 3282 | flags = 0; | |
| 3283 | if (finished) | |
| 3284 | flags |= MENU_FLAG_RIGHT_ARROW; | |
| 3285 | if (found) | |
| 3286 | flags |= MENU_FLAG_LEFT_ARROW; | |
| 3287 | ||
| 3288 | /* add CROSSHAIR_ITEM_PIC menu */ | |
| 3289 | sprintf(temp_text, "P%d Crosshair", player + 1); | |
| 3290 | ui_menu_item_append(menu, temp_text, using_default ? "DEFAULT" : settings.name, flags, data); | |
| 3291 | } | |
| 3292 | } | |
| 3293 | } | |
| 3294 | if (use_auto) | |
| 3295 | { | |
| 3296 | /* any player can be used to get the autotime */ | |
| 3297 | crosshair_get_user_settings(machine, 0, &settings); | |
| 3298 | ||
| 3299 | /* CROSSHAIR_ITEM_AUTO_TIME - allocate a data item and fill it */ | |
| 3300 | data = ui_menu_pool_alloc(menu, sizeof(*data)); | |
| 3301 | data->type = CROSSHAIR_ITEM_AUTO_TIME; | |
| 3302 | data->min = CROSSHAIR_VISIBILITY_AUTOTIME_MIN; | |
| 3303 | data->max = CROSSHAIR_VISIBILITY_AUTOTIME_MAX; | |
| 3304 | data->defvalue = CROSSHAIR_VISIBILITY_AUTOTIME_DEFAULT; | |
| 3305 | data->cur = settings.auto_time; | |
| 3306 | ||
| 3307 | /* put on arrows in visible menu */ | |
| 3308 | if (data->cur > data->min) | |
| 3309 | flags |= MENU_FLAG_LEFT_ARROW; | |
| 3310 | if (data->cur < data->max) | |
| 3311 | flags |= MENU_FLAG_RIGHT_ARROW; | |
| 3312 | ||
| 3313 | /* add CROSSHAIR_ITEM_AUTO_TIME menu */ | |
| 3314 | sprintf(temp_text, "%d", settings.auto_time); | |
| 3315 | ui_menu_item_append(menu, "Visible Delay", temp_text, flags, data); | |
| 3316 | } | |
| 3317 | // else | |
| 3318 | // /* leave a blank filler line when not in auto time so size does not rescale */ | |
| 3319 | // ui_menu_item_append(menu, "", "", NULL, NULL); | |
| 3320 | } | |
| 3321 | ||
| 3322 | ||
| 3323 | /*------------------------------------------------- | |
| 3033 | 3324 | menu_quit_game - handle the "menu" for |
| 3034 | 3325 | quitting the game |
| 3035 | 3326 | -------------------------------------------------*/ |
| r4470 | r4471 | |
|---|---|---|
| 132 | 132 | $(EMUMACHINE)/ds2401.o \ |
| 133 | 133 | $(EMUMACHINE)/ds2404.o \ |
| 134 | 134 | $(EMUMACHINE)/eeprom.o \ |
| 135 | $(EMUMACHINE)/eepromdev.o \ | |
| 135 | 136 | $(EMUMACHINE)/f3853.o \ |
| 136 | 137 | $(EMUMACHINE)/generic.o \ |
| 137 | 138 | $(EMUMACHINE)/i8243.o \ |
| 138 | 139 | $(EMUMACHINE)/i2cmem.o \ |
| 140 | $(EMUMACHINE)/i2cmemdev.o \ | |
| 139 | 141 | $(EMUMACHINE)/idectrl.o \ |
| 140 | 142 | $(EMUMACHINE)/intelfsh.o \ |
| 141 | 143 | $(EMUMACHINE)/latch8.o \ |
| r4470 | r4471 | |
| 179 | 181 | $(EMUVIDEO)/mc6845.o \ |
| 180 | 182 | $(EMUVIDEO)/poly.o \ |
| 181 | 183 | $(EMUVIDEO)/resnet.o \ |
| 184 | $(EMUVIDEO)/rgbutil.o \ | |
| 182 | 185 | $(EMUVIDEO)/s2636.o \ |
| 183 | 186 | $(EMUVIDEO)/tlc34076.o \ |
| 184 | 187 | $(EMUVIDEO)/tms34061.o \ |
| r4470 | r4471 | |
|---|---|---|
| 563 | 563 | INPUT_PORT_DIGITAL_TYPE( 0, UI, UI_TOGGLE_DEBUG, "Toggle Debugger", SEQ_DEF_1(KEYCODE_F5) ) |
| 564 | 564 | INPUT_PORT_DIGITAL_TYPE( 0, UI, UI_SAVE_STATE, "Save State", SEQ_DEF_2(KEYCODE_F7, KEYCODE_LSHIFT) ) |
| 565 | 565 | INPUT_PORT_DIGITAL_TYPE( 0, UI, UI_LOAD_STATE, "Load State", SEQ_DEF_3(KEYCODE_F7, SEQCODE_NOT, KEYCODE_LSHIFT) ) |
| 566 | INPUT_PORT_DIGITAL_TYPE( 0, UI, UI_TOGGLE_CROSSHAIR, "Toggle Crosshair", SEQ_DEF_1(KEYCODE_F1) ) | |
| 567 | 566 | |
| 568 | 567 | INPUT_PORT_DIGITAL_TYPE( 0, UI, OSD_1, NULL, SEQ_DEF_0 ) |
| 569 | 568 | INPUT_PORT_DIGITAL_TYPE( 0, UI, OSD_2, NULL, SEQ_DEF_0 ) |
| r4470 | r4471 | |
|---|---|---|
| 56 | 56 | struct _z80pio |
| 57 | 57 | { |
| 58 | 58 | UINT8 vector[2]; /* interrupt vector */ |
| 59 | void (*intr)(const device_config *, int which); /* interrupt callbacks */ | |
| 60 | void (*rdyr[2])(const device_config *, int data); /* RDY active callback */ | |
| 61 | read8_device_func port_read[2]; /* port read callbacks */ | |
| 62 | write8_device_func port_write[2]; /* port write callbacks */ | |
| 59 | devcb_resolved_write_line intr; /* interrupt callbacks */ | |
| 60 | devcb_resolved_write_line rdyr[2]; /* RDY active callback */ | |
| 61 | devcb_resolved_read8 port_read[2]; /* port read callbacks */ | |
| 62 | devcb_resolved_write8 port_write[2]; /* port write callbacks */ | |
| 63 | 63 | UINT8 mode[2]; /* mode 00=in,01=out,02=i/o,03=bit*/ |
| 64 | 64 | UINT8 enable[2]; /* interrupt enable */ |
| 65 | 65 | UINT8 mask[2]; /* mask folowers */ |
| r4470 | r4471 | |
| 107 | 107 | z80pio->rdy[ch] = state; |
| 108 | 108 | |
| 109 | 109 | /* call callback with state */ |
| 110 | if (z80pio->rdyr[ch]) | |
| 111 | z80pio->rdyr[ch](device, z80pio->rdy[ch]); | |
| 110 | devcb_call_write_line(&z80pio->rdyr[ch], z80pio->rdy[ch]); | |
| 112 | 111 | } |
| 113 | 112 | |
| 114 | 113 | |
| r4470 | r4471 | |
| 117 | 116 | z80pio_t *z80pio = get_safe_token( device ); |
| 118 | 117 | |
| 119 | 118 | /* if we have a callback, update it with the current state */ |
| 120 | if (z80pio->intr) | |
| 121 | z80pio->intr(device, (z80pio_irq_state(device) & Z80_DAISY_INT) ? ASSERT_LINE : CLEAR_LINE); | |
| 119 | devcb_call_write_line(&z80pio->intr, (z80pio_irq_state(device) & Z80_DAISY_INT) ? ASSERT_LINE : CLEAR_LINE); | |
| 122 | 120 | } |
| 123 | 121 | |
| 124 | 122 | |
| r4470 | r4471 | |
| 269 | 267 | offset &= 0x01; |
| 270 | 268 | |
| 271 | 269 | z80pio->out[offset] = data; /* latch out data */ |
| 272 | if(z80pio->port_write[offset]) | |
| 273 | { | |
| 274 | if (z80pio->mode[offset] == PIO_MODE3) | |
| 275 | z80pio->port_write[offset](device, 0, data & ~z80pio->dir[offset]); | |
| 276 | else | |
| 277 | z80pio->port_write[offset](device, 0, data); | |
| 278 | } | |
| 270 | if (z80pio->mode[offset] == PIO_MODE3) | |
| 271 | devcb_call_write8(&z80pio->port_write[offset], 0, data & ~z80pio->dir[offset]); | |
| 272 | else | |
| 273 | devcb_call_write8(&z80pio->port_write[offset], 0, data); | |
| 279 | 274 | |
| 280 | 275 | switch (z80pio->mode[offset]) |
| 281 | 276 | { |
| r4470 | r4471 | |
| 309 | 304 | |
| 310 | 305 | case PIO_MODE1: /* mode 1 input */ |
| 311 | 306 | set_rdy(device, offset, 1); /* ready = H */ |
| 312 | if(z80pio->port_read[offset]) | |
| 313 | z80pio->in[offset] = z80pio->port_read[offset](device, 0); | |
| 307 | if(z80pio->port_read[offset].read != NULL) | |
| 308 | z80pio->in[offset] = devcb_call_read8(&z80pio->port_read[offset], 0); | |
| 314 | 309 | update_irq_state(device, offset); |
| 315 | 310 | return z80pio->in[offset]; |
| 316 | 311 | |
| 317 | 312 | case PIO_MODE2: /* mode 2 i/o */ |
| 318 | 313 | if (offset) VPRINTF(("PIO-B mode 2 \n")); |
| 319 | 314 | set_rdy(device, 1, 1); /* brdy = H */ |
| 320 | if(z80pio->port_read[offset]) | |
| 321 | z80pio->in[offset] = z80pio->port_read[offset](device, 0); | |
| 315 | if(z80pio->port_read[offset].read != NULL) | |
| 316 | z80pio->in[offset] = devcb_call_read8(&z80pio->port_read[offset], 0); | |
| 322 | 317 | update_irq_state(device, offset); |
| 323 | 318 | return z80pio->in[offset]; |
| 324 | 319 | |
| 325 | 320 | case PIO_MODE3: /* mode 3 bit */ |
| 326 | if(z80pio->port_read[offset]) | |
| 327 | z80pio->in[offset] = z80pio->port_read[offset](device, 0); | |
| 321 | if(z80pio->port_read[offset].read != NULL) | |
| 322 | z80pio->in[offset] = devcb_call_read8(&z80pio->port_read[offset], 0); | |
| 328 | 323 | return (z80pio->in[offset] & z80pio->dir[offset]) | (z80pio->out[offset] & ~z80pio->dir[offset]); |
| 329 | 324 | } |
| 330 | 325 | VPRINTF(("PIO-%c data read,bad mode\n",'A'+offset )); |
| r4470 | r4471 | |
| 543 | 538 | const z80pio_interface *intf = (const z80pio_interface *)device->static_config; |
| 544 | 539 | z80pio_t *z80pio = get_safe_token( device ); |
| 545 | 540 | |
| 546 | z80pio->intr = intf->intr; | |
| 547 | z80pio->port_read[0] = intf->portAread; | |
| 548 | z80pio->port_read[1] = intf->portBread; | |
| 549 | z80pio->port_write[0] = intf->portAwrite; | |
| 550 | z80pio->port_write[1] = intf->portBwrite; | |
| 551 | z80pio->rdyr[0] = intf->rdyA; | |
| 552 | z80pio->rdyr[1] = intf->rdyB; | |
| 541 | devcb_resolve_write_line(&z80pio->intr, &intf->intr, device); | |
| 542 | devcb_resolve_read8(&z80pio->port_read[0], &intf->portAread, device); | |
| 543 | devcb_resolve_read8(&z80pio->port_read[1], &intf->portBread, device); | |
| 544 | devcb_resolve_write8(&z80pio->port_write[0], &intf->portAwrite, device); | |
| 545 | devcb_resolve_write8(&z80pio->port_write[1], &intf->portBwrite, device); | |
| 546 | devcb_resolve_write_line(&z80pio->rdyr[0], &intf->rdyA, device); | |
| 547 | devcb_resolve_write_line(&z80pio->rdyr[1], &intf->rdyB, device); | |
| 553 | 548 | |
| 554 | 549 | /* register for save states */ |
| 555 | 550 | state_save_register_device_item_array(device, 0, z80pio->vector); |
| r4470 | r4471 | |
|---|---|---|
| 33 | 33 | #ifndef __Z80PIO_H__ |
| 34 | 34 | #define __Z80PIO_H__ |
| 35 | 35 | |
| 36 | #include "devcb.h" | |
| 36 | 37 | |
| 38 | ||
| 37 | 39 | /*************************************************************************** |
| 38 | 40 | TYPE DEFINITIONS |
| 39 | 41 | ***************************************************************************/ |
| r4470 | r4471 | |
| 41 | 43 | typedef struct _z80pio_interface z80pio_interface; |
| 42 | 44 | struct _z80pio_interface |
| 43 | 45 | { |
| 44 | void (*intr)(const device_config *device, int which); /* callback when change interrupt status */ | |
| 45 | read8_device_func portAread; /* port A read callback */ | |
| 46 | read8_device_func portBread; /* port B read callback */ | |
| 47 | write8_device_func portAwrite; /* port A write callback */ | |
| 48 | write8_device_func portBwrite; /* port B write callback */ | |
| 49 | void (*rdyA)(const device_config *device, int data); /* portA ready active callback (do not support yet)*/ | |
| 50 | void (*rdyB)(const device_config *device, int data); /* portB ready active callback (do not support yet)*/ | |
| 46 | devcb_write_line intr; /* callback when change interrupt status */ | |
| 47 | devcb_read8 portAread; /* port A read callback */ | |
| 48 | devcb_read8 portBread; /* port B read callback */ | |
| 49 | devcb_write8 portAwrite; /* port A write callback */ | |
| 50 | devcb_write8 portBwrite; /* port B write callback */ | |
| 51 | devcb_write_line rdyA; /* portA ready active callback */ | |
| 52 | devcb_write_line rdyB; /* portB ready active callback */ | |
| 51 | 53 | }; |
| 52 | 54 | |
| 53 | 55 |
| r0 | r4471 | |
|---|---|---|
| 1 | /* | |
| 2 | * Serial eeproms | |
| 3 | * | |
| 4 | */ | |
| 5 | ||
| 6 | #include "driver.h" | |
| 7 | #include "machine/eepromdev.h" | |
| 8 | ||
| 9 | #define VERBOSE 0 | |
| 10 | #define LOG(x) do { if (VERBOSE) logerror x; } while (0) | |
| 11 | ||
| 12 | #define SERIAL_BUFFER_LENGTH 40 | |
| 13 | #define MEMORY_SIZE 1024 | |
| 14 | ||
| 15 | typedef struct _eeprom_state eeprom_state; | |
| 16 | struct _eeprom_state | |
| 17 | { | |
| 18 | const eeprom_interface *intf; | |
| 19 | int serial_count; | |
| 20 | UINT8 serial_buffer[SERIAL_BUFFER_LENGTH]; | |
| 21 | UINT8 eeprom_data[MEMORY_SIZE]; | |
| 22 | int eeprom_data_bits; | |
| 23 | int eeprom_read_address; | |
| 24 | int eeprom_clock_count; | |
| 25 | int latch,reset_line,clock_line,sending; | |
| 26 | int locked; | |
| 27 | int reset_delay; | |
| 28 | }; | |
| 29 | ||
| 30 | /*------------------------------------------------- | |
| 31 | get_safe_token - makes sure that the passed | |
| 32 | in device is, in fact, an I2C memory | |
| 33 | -------------------------------------------------*/ | |
| 34 | ||
| 35 | INLINE eeprom_state *get_safe_token(const device_config *device) | |
| 36 | { | |
| 37 | assert( device != NULL ); | |
| 38 | assert( device->token != NULL ); | |
| 39 | assert( device->type == EEPROM ); | |
| 40 | ||
| 41 | return (eeprom_state *)device->token; | |
| 42 | } | |
| 43 | ||
| 44 | /* | |
| 45 | eeprom_command_match: | |
| 46 | ||
| 47 | Try to match the first (len) digits in the EEPROM serial buffer | |
| 48 | string (*buf) with an EEPROM command string (*cmd). | |
| 49 | Return non zero if a match was found. | |
| 50 | ||
| 51 | The serial buffer only contains '0' or '1' (e.g. "1001"). | |
| 52 | The command can contain: '0' or '1' or these wildcards: | |
| 53 | ||
| 54 | 'x' : match both '0' and '1' | |
| 55 | "*1": match "1", "01", "001", "0001" etc. | |
| 56 | "*0": match "0", "10", "110", "1110" etc. | |
| 57 | ||
| 58 | Note: (cmd) may be NULL. Return 0 (no match) in this case. | |
| 59 | */ | |
| 60 | static int eeprom_command_match(const char *buf, const char *cmd, int len) | |
| 61 | { | |
| 62 | if ( cmd == 0 ) return 0; | |
| 63 | if ( len == 0 ) return 0; | |
| 64 | ||
| 65 | for (;len>0;) | |
| 66 | { | |
| 67 | char b = *buf; | |
| 68 | char c = *cmd; | |
| 69 | ||
| 70 | if ((b==0) || (c==0)) | |
| 71 | return (b==c); | |
| 72 | ||
| 73 | switch ( c ) | |
| 74 | { | |
| 75 | case '0': | |
| 76 | case '1': | |
| 77 | if (b != c) return 0; | |
| 78 | case 'X': | |
| 79 | case 'x': | |
| 80 | buf++; | |
| 81 | len--; | |
| 82 | cmd++; | |
| 83 | break; | |
| 84 | ||
| 85 | case '*': | |
| 86 | c = cmd[1]; | |
| 87 | switch( c ) | |
| 88 | { | |
| 89 | case '0': | |
| 90 | case '1': | |
| 91 | if (b == c) { cmd++; } | |
| 92 | else { buf++; len--; } | |
| 93 | break; | |
| 94 | default: return 0; | |
| 95 | } | |
| 96 | } | |
| 97 | } | |
| 98 | return (*cmd==0); | |
| 99 | } | |
| 100 | ||
| 101 | ||
| 102 | const eeprom_interface eepromdev_interface_93C46 = | |
| 103 | { | |
| 104 | 6, // address bits 6 | |
| 105 | 16, // data bits 16 | |
| 106 | "*110", // read 1 10 aaaaaa | |
| 107 | "*101", // write 1 01 aaaaaa dddddddddddddddd | |
| 108 | "*111", // erase 1 11 aaaaaa | |
| 109 | "*10000xxxx", // lock 1 00 00xxxx | |
| 110 | "*10011xxxx", // unlock 1 00 11xxxx | |
| 111 | 1, | |
| 112 | // "*10001xxxx" // write all 1 00 01xxxx dddddddddddddddd | |
| 113 | // "*10010xxxx" // erase all 1 00 10xxxx | |
| 114 | }; | |
| 115 | ||
| 116 | const eeprom_interface eepromdev_interface_93C66B = | |
| 117 | { | |
| 118 | 8, /* address bits */ | |
| 119 | 16, /* data bits */ | |
| 120 | "*110", /* read command */ | |
| 121 | "*101", /* write command */ | |
| 122 | "*111", /* erase command */ | |
| 123 | "*10000xxxxxx", /* lock command */ | |
| 124 | "*10011xxxxxx", /* unlock command */ | |
| 125 | 1, | |
| 126 | // "*10001xxxxxx", /* write all */ | |
| 127 | // "*10010xxxxxx", /* erase all */ | |
| 128 | }; | |
| 129 | ||
| 130 | static void eeprom_write(eeprom_state *c, int bit) | |
| 131 | { | |
| 132 | LOG(("EEPROM write bit %d\n",bit)); | |
| 133 | ||
| 134 | if (c->serial_count >= SERIAL_BUFFER_LENGTH-1) | |
| 135 | { | |
| 136 | logerror("error: EEPROM serial buffer overflow\n"); | |
| 137 | return; | |
| 138 | } | |
| 139 | ||
| 140 | c->serial_buffer[c->serial_count++] = (bit ? '1' : '0'); | |
| 141 | c->serial_buffer[c->serial_count] = 0; /* nul terminate so we can treat it as a string */ | |
| 142 | ||
| 143 | if ( (c->serial_count > c->intf->address_bits) && | |
| 144 | eeprom_command_match((char*)(c->serial_buffer),c->intf->cmd_read,strlen((char*)(c->serial_buffer))-c->intf->address_bits) ) | |
| 145 | { | |
| 146 | int i,address; | |
| 147 | ||
| 148 | address = 0; | |
| 149 | for (i = c->serial_count-c->intf->address_bits;i < c->serial_count;i++) | |
| 150 | { | |
| 151 | address <<= 1; | |
| 152 | if (c->serial_buffer[i] == '1') address |= 1; | |
| 153 | } | |
| 154 | if (c->intf->data_bits == 16) | |
| 155 | c->eeprom_data_bits = (c->eeprom_data[2*address+0] << 8) + c->eeprom_data[2*address+1]; | |
| 156 | else | |
| 157 | c->eeprom_data_bits = c->eeprom_data[address]; | |
| 158 | c->eeprom_read_address = address; | |
| 159 | c->eeprom_clock_count = 0; | |
| 160 | c->sending = 1; | |
| 161 | c->serial_count = 0; | |
| 162 | logerror("EEPROM read %04x from address %02x\n",c->eeprom_data_bits,address); | |
| 163 | } | |
| 164 | else if ( (c->serial_count > c->intf->address_bits) && | |
| 165 | eeprom_command_match((char*)(c->serial_buffer),c->intf->cmd_erase,strlen((char*)(c->serial_buffer))-c->intf->address_bits) ) | |
| 166 | { | |
| 167 | int i,address; | |
| 168 | ||
| 169 | address = 0; | |
| 170 | for (i = c->serial_count-c->intf->address_bits;i < c->serial_count;i++) | |
| 171 | { | |
| 172 | address <<= 1; | |
| 173 | if (c->serial_buffer[i] == '1') address |= 1; | |
| 174 | } | |
| 175 | logerror("EEPROM erase address %02x\n",address); | |
| 176 | if (c->locked == 0) | |
| 177 | { | |
| 178 | if (c->intf->data_bits == 16) | |
| 179 | { | |
| 180 | c->eeprom_data[2*address+0] = 0x00; | |
| 181 | c->eeprom_data[2*address+1] = 0x00; | |
| 182 | } | |
| 183 | else | |
| 184 | c->eeprom_data[address] = 0x00; | |
| 185 | } | |
| 186 | else | |
| 187 | logerror("Error: EEPROM is locked\n"); | |
| 188 | c->serial_count = 0; | |
| 189 | } | |
| 190 | else if ( (c->serial_count > (c->intf->address_bits + c->intf->data_bits)) && | |
| 191 | eeprom_command_match((char*)(c->serial_buffer),c->intf->cmd_write,strlen((char*)(c->serial_buffer))-(c->intf->address_bits + c->intf->data_bits)) ) | |
| 192 | { | |
| 193 | int i,address,data; | |
| 194 | ||
| 195 | address = 0; | |
| 196 | for (i = c->serial_count-c->intf->data_bits-c->intf->address_bits;i < (c->serial_count-c->intf->data_bits);i++) | |
| 197 | { | |
| 198 | address <<= 1; | |
| 199 | if (c->serial_buffer[i] == '1') address |= 1; | |
| 200 | } | |
| 201 | data = 0; | |
| 202 | for (i = c->serial_count-c->intf->data_bits;i < c->serial_count;i++) | |
| 203 | { | |
| 204 | data <<= 1; | |
| 205 | if (c->serial_buffer[i] == '1') data |= 1; | |
| 206 | } | |
| 207 | logerror("EEPROM write %04x to address %02x\n",data,address); | |
| 208 | if (c->locked == 0) | |
| 209 | { | |
| 210 | if (c->intf->data_bits == 16) | |
| 211 | { | |
| 212 | c->eeprom_data[2*address+0] = data >> 8; | |
| 213 | c->eeprom_data[2*address+1] = data & 0xff; | |
| 214 | } | |
| 215 | else | |
| 216 | c->eeprom_data[address] = data; | |
| 217 | } | |
| 218 | else | |
| 219 | logerror("Error: EEPROM is locked\n"); | |
| 220 | c->serial_count = 0; | |
| 221 | } | |
| 222 | else if ( eeprom_command_match((char*)(c->serial_buffer),c->intf->cmd_lock,strlen((char*)(c->serial_buffer))) ) | |
| 223 | { | |
| 224 | logerror("EEPROM lock\n"); | |
| 225 | c->locked = 1; | |
| 226 | c->serial_count = 0; | |
| 227 | } | |
| 228 | else if ( eeprom_command_match((char*)(c->serial_buffer),c->intf->cmd_unlock,strlen((char*)(c->serial_buffer))) ) | |
| 229 | { | |
| 230 | logerror("EEPROM unlock\n"); | |
| 231 | c->locked = 0; | |
| 232 | c->serial_count = 0; | |
| 233 | } | |
| 234 | } | |
| 235 | ||
| 236 | static void eeprom_reset(eeprom_state *c) | |
| 237 | { | |
| 238 | if (c->serial_count) | |
| 239 | logerror("EEPROM reset, buffer = %s\n",c->serial_buffer); | |
| 240 | ||
| 241 | c->serial_count = 0; | |
| 242 | c->sending = 0; | |
| 243 | c->reset_delay = c->intf->reset_delay; /* delay a little before returning setting data to 1 (needed by wbeachvl) */ | |
| 244 | } | |
| 245 | ||
| 246 | ||
| 247 | void eepromdev_write_bit(const device_config *device, int bit) | |
| 248 | { | |
| 249 | eeprom_state *c = get_safe_token(device); | |
| 250 | ||
| 251 | LOG(("write bit %d\n",bit)); | |
| 252 | c->latch = bit; | |
| 253 | } | |
| 254 | ||
| 255 | int eepromdev_read_bit(const device_config *device) | |
| 256 | { | |
| 257 | eeprom_state *c = get_safe_token(device); | |
| 258 | int res; | |
| 259 | ||
| 260 | if (c->sending) | |
| 261 | res = (c->eeprom_data_bits >> c->intf->data_bits) & 1; | |
| 262 | else | |
| 263 | { | |
| 264 | if (c->reset_delay > 0) | |
| 265 | { | |
| 266 | /* this is needed by wbeachvl */ | |
| 267 | c->reset_delay--; | |
| 268 | res = 0; | |
| 269 | } | |
| 270 | else | |
| 271 | res = 1; | |
| 272 | } | |
| 273 | ||
| 274 | LOG(("read bit %d\n",res)); | |
| 275 | ||
| 276 | return res; | |
| 277 | } | |
| 278 | ||
| 279 | /*CUSTOM_INPUT( eeprom_bit_r ) | |
| 280 | { | |
| 281 | return eeprom_read_bit(); | |
| 282 | }*/ | |
| 283 | ||
| 284 | void eepromdev_set_cs_line(const device_config *device, int state) | |
| 285 | { | |
| 286 | eeprom_state *c = get_safe_token(device); | |
| 287 | ||
| 288 | LOG(("set reset line %d\n",state)); | |
| 289 | c->reset_line = state; | |
| 290 | ||
| 291 | if (c->reset_line != CLEAR_LINE) | |
| 292 | eeprom_reset(c); | |
| 293 | } | |
| 294 | ||
| 295 | void eepromdev_set_clock_line(const device_config *device, int state) | |
| 296 | { | |
| 297 | eeprom_state *c = get_safe_token(device); | |
| 298 | ||
| 299 | LOG(("set clock line %d\n",state)); | |
| 300 | if (state == PULSE_LINE || (c->clock_line == CLEAR_LINE && state != CLEAR_LINE)) | |
| 301 | { | |
| 302 | if (c->reset_line == CLEAR_LINE) | |
| 303 | { | |
| 304 | if (c->sending) | |
| 305 | { | |
| 306 | if (c->eeprom_clock_count == c->intf->data_bits && c->intf->enable_multi_read) | |
| 307 | { | |
| 308 | c->eeprom_read_address = (c->eeprom_read_address + 1) & ((1 << c->intf->address_bits) - 1); | |
| 309 | if (c->intf->data_bits == 16) | |
| 310 | c->eeprom_data_bits = (c->eeprom_data[2*c->eeprom_read_address+0] << 8) + c->eeprom_data[2*c->eeprom_read_address+1]; | |
| 311 | else | |
| 312 | c->eeprom_data_bits = c->eeprom_data[c->eeprom_read_address]; | |
| 313 | c->eeprom_clock_count = 0; | |
| 314 | logerror("EEPROM read %04x from address %02x\n",c->eeprom_data_bits,c->eeprom_read_address); | |
| 315 | } | |
| 316 | c->eeprom_data_bits = (c->eeprom_data_bits << 1) | 1; | |
| 317 | c->eeprom_clock_count++; | |
| 318 | } | |
| 319 | else | |
| 320 | eeprom_write(c,c->latch); | |
| 321 | } | |
| 322 | } | |
| 323 | ||
| 324 | c->clock_line = state; | |
| 325 | } | |
| 326 | ||
| 327 | ||
| 328 | void eepromdev_load(const device_config *device, mame_file *f) | |
| 329 | { | |
| 330 | eeprom_state *c = get_safe_token(device); | |
| 331 | ||
| 332 | mame_fread(f, c->eeprom_data, (1 << c->intf->address_bits) * c->intf->data_bits / 8); | |
| 333 | } | |
| 334 | ||
| 335 | void eepromdev_save(const device_config *device, mame_file *f) | |
| 336 | { | |
| 337 | eeprom_state *c = get_safe_token(device); | |
| 338 | ||
| 339 | mame_fwrite(f, c->eeprom_data, (1 << c->intf->address_bits) * c->intf->data_bits / 8); | |
| 340 | } | |
| 341 | ||
| 342 | void eepromdev_set_data(const device_config *device, const UINT8 *data, int length) | |
| 343 | { | |
| 344 | eeprom_state *c = get_safe_token(device); | |
| 345 | ||
| 346 | assert(length <= ((1 << c->intf->address_bits) * c->intf->data_bits / 8)); | |
| 347 | memcpy(c->eeprom_data, data, length); | |
| 348 | } | |
| 349 | ||
| 350 | void *eepromdev_get_data_pointer(const device_config *device, UINT32 *length, UINT32 *size) | |
| 351 | { | |
| 352 | eeprom_state *c = get_safe_token(device); | |
| 353 | ||
| 354 | if (length != NULL && c->intf != NULL) | |
| 355 | *length = 1 << c->intf->address_bits; | |
| 356 | if (size != NULL && c->intf != NULL) | |
| 357 | *size = c->intf->data_bits / 8; | |
| 358 | ||
| 359 | return c->eeprom_data; | |
| 360 | } | |
| 361 | ||
| 362 | static DEVICE_NVRAM( eeprom ) | |
| 363 | { | |
| 364 | const eeprom_config *config = device->inline_config; | |
| 365 | ||
| 366 | if (read_or_write) | |
| 367 | eepromdev_save(device, file); | |
| 368 | else | |
| 369 | if (file) | |
| 370 | eepromdev_load(device, file); | |
| 371 | else | |
| 372 | if ((config->default_data != NULL) && (config->default_data_size != 0)) | |
| 373 | eepromdev_set_data(device, config->default_data, config->default_data_size); | |
| 374 | } | |
| 375 | ||
| 376 | static DEVICE_START(eeprom) | |
| 377 | { | |
| 378 | eeprom_state *c = get_safe_token(device); | |
| 379 | const eeprom_config *config; | |
| 380 | ||
| 381 | /* validate some basic stuff */ | |
| 382 | assert(device != NULL); | |
| 383 | assert(device->inline_config != NULL); | |
| 384 | assert(device->machine != NULL); | |
| 385 | assert(device->machine->config != NULL); | |
| 386 | ||
| 387 | config = device->inline_config; | |
| 388 | ||
| 389 | c->intf = config->pinterface; | |
| 390 | ||
| 391 | if ((1 << c->intf->address_bits) * c->intf->data_bits / 8 > MEMORY_SIZE) | |
| 392 | { | |
| 393 | fatalerror("EEPROM larger than eepromdev.c allows"); | |
| 394 | } | |
| 395 | ||
| 396 | memset(c->eeprom_data, 0xff, (1 << c->intf->address_bits) * c->intf->data_bits / 8); | |
| 397 | if ((config->default_data != NULL) && (config->default_data_size != 0)) | |
| 398 | eepromdev_set_data(device, config->default_data, config->default_data_size); | |
| 399 | c->serial_count = 0; | |
| 400 | c->latch = 0; | |
| 401 | c->reset_line = ASSERT_LINE; | |
| 402 | c->clock_line = ASSERT_LINE; | |
| 403 | c->eeprom_read_address = 0; | |
| 404 | c->sending = 0; | |
| 405 | if (c->intf->cmd_unlock) c->locked = 1; | |
| 406 | else c->locked = 0; | |
| 407 | ||
| 408 | state_save_register_device_item_pointer( device, 0, c->eeprom_data, MEMORY_SIZE); | |
| 409 | state_save_register_device_item_pointer( device, 0, c->serial_buffer, SERIAL_BUFFER_LENGTH); | |
| 410 | state_save_register_device_item( device, 0, c->clock_line); | |
| 411 | state_save_register_device_item( device, 0, c->reset_line); | |
| 412 | state_save_register_device_item( device, 0, c->locked); | |
| 413 | state_save_register_device_item( device, 0, c->serial_count); | |
| 414 | state_save_register_device_item( device, 0, c->latch); | |
| 415 | state_save_register_device_item( device, 0, c->reset_delay); | |
| 416 | state_save_register_device_item( device, 0, c->eeprom_clock_count); | |
| 417 | state_save_register_device_item( device, 0, c->eeprom_data_bits); | |
| 418 | state_save_register_device_item( device, 0, c->eeprom_read_address); | |
| 419 | } | |
| 420 | ||
| 421 | static DEVICE_RESET(eeprom) | |
| 422 | { | |
| 423 | } | |
| 424 | ||
| 425 | static DEVICE_SET_INFO(eeprom) | |
| 426 | { | |
| 427 | switch (state) | |
| 428 | { | |
| 429 | /* no parameters to set */ | |
| 430 | } | |
| 431 | } | |
| 432 | ||
| 433 | DEVICE_GET_INFO(eeprom) | |
| 434 | { | |
| 435 | switch (state) | |
| 436 | { | |
| 437 | /* --- the following bits of info are returned as 64-bit signed integers --- */ | |
| 438 | case DEVINFO_INT_TOKEN_BYTES: info->i = sizeof(eeprom_state); break; | |
| 439 | case DEVINFO_INT_INLINE_CONFIG_BYTES: info->i = sizeof(eeprom_config); break; | |
| 440 | case DEVINFO_INT_CLASS: info->i = DEVICE_CLASS_PERIPHERAL; break; | |
| 441 | ||
| 442 | /* --- the following bits of info are returned as pointers to data or functions --- */ | |
| 443 | case DEVINFO_FCT_SET_INFO: info->set_info = DEVICE_SET_INFO_NAME(eeprom); break; | |
| 444 | case DEVINFO_FCT_START: info->start = DEVICE_START_NAME(eeprom); break; | |
| 445 | case DEVINFO_FCT_STOP: /* nothing */ break; | |
| 446 | case DEVINFO_FCT_RESET: info->reset = DEVICE_RESET_NAME(eeprom); break; | |
| 447 | case DEVINFO_FCT_NVRAM: info->nvram = DEVICE_NVRAM_NAME(eeprom); break; | |
| 448 | ||
| 449 | /* --- the following bits of info are returned as NULL-terminated strings --- */ | |
| 450 | case DEVINFO_STR_NAME: strcpy(info->s, "EEPROM"); break; | |
| 451 | case DEVINFO_STR_FAMILY: strcpy(info->s, "EEPROM"); break; | |
| 452 | case DEVINFO_STR_VERSION: strcpy(info->s, "1.0"); break; | |
| 453 | case DEVINFO_STR_SOURCE_FILE: strcpy(info->s, __FILE__); break; | |
| 454 | case DEVINFO_STR_CREDITS: strcpy(info->s, "Copyright Nicola Salmoria and the MAME Team"); break; | |
| 455 | } | |
| 456 | } |
| r0 | r4471 | |
|---|---|---|
| 1 | /* | |
| 2 | * Serial eeproms | |
| 3 | * | |
| 4 | */ | |
| 5 | ||
| 6 | #if !defined( EEPROMDEV_H ) | |
| 7 | #define EEPROMDEV_H ( 1 ) | |
| 8 | ||
| 9 | typedef struct _eeprom_interface eeprom_interface; | |
| 10 | struct _eeprom_interface | |
| 11 | { | |
| 12 | int address_bits; /* EEPROM has 2^address_bits cells */ | |
| 13 | int data_bits; /* every cell has this many bits (8 or 16) */ | |
| 14 | const char *cmd_read; /* read command string, e.g. "0110" */ | |
| 15 | const char *cmd_write; /* write command string, e.g. "0111" */ | |
| 16 | const char *cmd_erase; /* erase command string, or 0 if n/a */ | |
| 17 | const char *cmd_lock; /* lock command string, or 0 if n/a */ | |
| 18 | const char *cmd_unlock; /* unlock command string, or 0 if n/a */ | |
| 19 | int enable_multi_read; /* set to 1 to enable multiple values to be read from one read command */ | |
| 20 | int reset_delay; /* number of times eeprom_read_bit() should return 0 after a reset, */ | |
| 21 | /* before starting to return 1. */ | |
| 22 | }; | |
| 23 | ||
| 24 | typedef struct _eeprom_config eeprom_config; | |
| 25 | struct _eeprom_config | |
| 26 | { | |
| 27 | eeprom_interface *pinterface; | |
| 28 | UINT8 *default_data; | |
| 29 | int default_data_size; | |
| 30 | }; | |
| 31 | ||
| 32 | /* 93C46 */ | |
| 33 | extern const eeprom_interface eepromdev_interface_93C46; | |
| 34 | ||
| 35 | /* 93C66B */ | |
| 36 | extern const eeprom_interface eepromdev_interface_93C66B; | |
| 37 | ||
| 38 | #define EEPROM DEVICE_GET_INFO_NAME(eeprom) | |
| 39 | DEVICE_GET_INFO(eeprom); | |
| 40 | ||
| 41 | #define MDRV_EEPROM_ADD(_tag, _interface, _data_size, _data) \ | |
| 42 | MDRV_DEVICE_ADD(_tag, EEPROM, 0) \ | |
| 43 | MDRV_DEVICE_CONFIG_DATAPTR(eeprom_config, pinterface, &_interface) \ | |
| 44 | MDRV_EEPROM_DATA(_data, _data_size) | |
| 45 | ||
| 46 | #define MDRV_EEPROM_93C46_ADD(_tag, _data_size, _data) \ | |
| 47 | MDRV_EEPROM_ADD(_tag, eepromdev_interface_93C46, _data_size, _data) | |
| 48 | ||
| 49 | #define MDRV_EEPROM_93C66B_ADD(_tag, _data_size, _data) \ | |
| 50 | MDRV_EEPROM_ADD(_tag, eepromdev_interface_93C66B, _data_size, _data) | |
| 51 | ||
| 52 | #define MDRV_EEPROM_DATA(_data, _size) \ | |
| 53 | MDRV_DEVICE_CONFIG_DATAPTR(eeprom_config, default_data, &_data) \ | |
| 54 | MDRV_DEVICE_CONFIG_DATA32(eeprom_config, default_data_size, _size) | |
| 55 | ||
| 56 | #define MDRV_EEPROM_REMOVE(_tag) \ | |
| 57 | MDRV_DEVICE_REMOVE(_tag, EEPROM) | |
| 58 | ||
| 59 | ||
| 60 | void eepromdev_write_bit( const device_config *device, int bit ); | |
| 61 | int eepromdev_read_bit( const device_config *device ); | |
| 62 | //CUSTOM_INPUT( eeprom_bit_r ); | |
| 63 | void eepromdev_set_cs_line( const device_config *device, int state ); | |
| 64 | void eepromdev_set_clock_line( const device_config *device, int state ); | |
| 65 | ||
| 66 | void eepromdev_load( const device_config *device, mame_file *file ); | |
| 67 | void eepromdev_save( const device_config *device, mame_file *file ); | |
| 68 | ||
| 69 | void eepromdev_set_data( const device_config *device, const UINT8 *data, int length ); | |
| 70 | void *eepromdev_get_data_pointer( const device_config *device, UINT32 *length, UINT32 *size ); | |
| 71 | ||
| 72 | #endif |
| r0 | r4471 | |
|---|---|---|
| 1 | /* | |
| 2 | I2C Memory | |
| 3 | ||
| 4 | Generic ram/rom/eeprom/flash on an i2c bus. Supports specifying the slave address, | |
| 5 | the data size & the page size for writing. | |
| 6 | ||
| 7 | inputs: | |
| 8 | e0,e1,e2 lower 3 bits of the slave address | |
| 9 | sda serial data | |
| 10 | scl serial clock | |
| 11 | wc write protect | |
| 12 | ||
| 13 | outputs: | |
| 14 | sda serial data | |
| 15 | ||
| 16 | The memory address is only 8 bits, devices larger than this have multiple slave addresses. | |
| 17 | The top five address bits are set at manufacture time, two values are standard. | |
| 18 | Up to 4096 bytes can be addressed. | |
| 19 | ||
| 20 | */ | |
| 21 | ||
| 22 | #include "driver.h" | |
| 23 | #include "machine/i2cmemdev.h" | |
| 24 | ||
| 25 | #define VERBOSE_LEVEL ( 0 ) | |
| 26 | ||
| 27 | INLINE void ATTR_PRINTF(3,4) verboselog( running_machine *machine, int n_level, const char *s_fmt, ... ) | |
| 28 | { | |
| 29 | if( VERBOSE_LEVEL >= n_level ) | |
| 30 | { | |
| 31 | va_list v; | |
| 32 | char buf[ 32768 ]; | |
| 33 | va_start( v, s_fmt ); | |
| 34 | vsprintf( buf, s_fmt, v ); | |
| 35 | va_end( v ); | |
| 36 | logerror( "%s: %s", cpuexec_describe_context(machine), buf ); | |
| 37 | } | |
| 38 | } | |
| 39 | ||
| 40 | #define STATE_IDLE ( 0 ) | |
| 41 | #define STATE_DEVSEL ( 1 ) | |
| 42 | #define STATE_BYTEADDR ( 2 ) | |
| 43 | #define STATE_DATAIN ( 3 ) | |
| 44 | #define STATE_DATAOUT ( 4 ) | |
| 45 | ||
| 46 | #define DEVSEL_RW ( 1 ) | |
| 47 | #define DEVSEL_ADDRESS ( 0xfe ) | |
| 48 | ||
| 49 | typedef struct _i2cmem_state i2cmem_state; | |
| 50 | struct _i2cmem_state | |
| 51 | { | |
| 52 | int slave_address; | |
| 53 | int scl; | |
| 54 | int sdaw; | |
| 55 | int e0; | |
| 56 | int e1; | |
| 57 | int e2; | |
| 58 | int wc; | |
| 59 | int sdar; | |
| 60 | int state; | |
| 61 | int bits; | |
| 62 | int shift; | |
| 63 | int devsel; | |
| 64 | int byteaddr; | |
| 65 | unsigned char *data; | |
| 66 | int data_size; | |
| 67 | unsigned char *page; | |
| 68 | int page_offset; | |
| 69 | int page_size; | |
| 70 | int readmode; | |
| 71 | }; | |
| 72 | ||
| 73 | /*------------------------------------------------- | |
| 74 | get_safe_token - makes sure that the passed | |
| 75 | in device is, in fact, an I2C memory | |
| 76 | -------------------------------------------------*/ | |
| 77 | ||
| 78 | INLINE i2cmem_state *get_safe_token( const device_config *device ) | |
| 79 | { | |
| 80 | assert( device != NULL ); | |
| 81 | assert( device->token != NULL ); | |
| 82 | assert( device->type == I2CMEM ); | |
| 83 | ||
| 84 | return (i2cmem_state *)device->token; | |
| 85 | } | |
| 86 | ||
| 87 | static int select_device( i2cmem_state *c ) | |
| 88 | { | |
| 89 | int device = ( c->slave_address & 0xf0 ) | ( c->e2 << 3 ) | ( c->e1 << 2 ) | ( c->e0 << 1 ); | |
| 90 | int mask = DEVSEL_ADDRESS & ~( ( c->data_size - 1 ) >> 7 ); | |
| 91 | ||
| 92 | if( ( c->devsel & mask ) == ( device & mask ) ) | |
| 93 | { | |
| 94 | return 1; | |
| 95 | } | |
| 96 | ||
| 97 | return 0; | |
| 98 | } | |
| 99 | ||
| 100 | static int data_offset( i2cmem_state *c ) | |
| 101 | { | |
| 102 | return ( ( ( c->devsel << 7 ) & 0xff00 ) | ( c->byteaddr & 0xff ) ) & ( c->data_size - 1 ); | |
| 103 | } | |
| 104 | ||
| 105 | void i2cmemdev_write( const device_config *device, int line, int data ) | |
| 106 | { | |
| 107 | i2cmem_state *c = get_safe_token( device ); | |
| 108 | ||
| 109 | switch( line ) | |
| 110 | { | |
| 111 | case I2CMEM_E0: | |
| 112 | if( c->e0 != data ) | |
| 113 | { | |
| 114 | c->e0 = data; | |
| 115 | verboselog( device->machine, 2, "i2cmem_write( I2CMEM_E0, %d )\n", c->e0 ); | |
| 116 | } | |
| 117 | break; | |
| 118 | ||
| 119 | case I2CMEM_E1: | |
| 120 | if( c->e1 != data ) | |
| 121 | { | |
| 122 | c->e1 = data; | |
| 123 | verboselog( device->machine, 2, "i2cmem_write( I2CMEM_E1, %d )\n", c->e1 ); | |
| 124 | } | |
| 125 | break; | |
| 126 | ||
| 127 | case I2CMEM_E2: | |
| 128 | if( c->e2 != data ) | |
| 129 | { | |
| 130 | c->e2 = data; | |
| 131 | verboselog( device->machine, 2, "i2cmem_write( I2CMEM_E2, %d )\n", c->e2 ); | |
| 132 | } | |
| 133 | break; | |
| 134 | ||
| 135 | case I2CMEM_SDA: | |
| 136 | if( c->sdaw != data ) | |
| 137 | { | |
| 138 | c->sdaw = data; | |
| 139 | verboselog( device->machine, 2, "i2cmem_write( I2CMEM_SDA, %d )\n", c->sdaw ); | |
| 140 | ||
| 141 | if( c->scl ) | |
| 142 | { | |
| 143 | if( c->sdaw ) | |
| 144 | { | |
| 145 | verboselog( device->machine, 1, "i2cmem stop\n"); | |
| 146 | c->state = STATE_IDLE; | |
| 147 | c->byteaddr = 0; | |
| 148 | } | |
| 149 | else | |
| 150 | { | |
| 151 | verboselog( device->machine, 2, "i2cmem start\n"); | |
| 152 | c->state = STATE_DEVSEL; | |
| 153 | c->bits = 0; | |
| 154 | } | |
| 155 | ||
| 156 | c->sdar = 1; | |
| 157 | } | |
| 158 | } | |
| 159 | break; | |
| 160 | ||
| 161 | case I2CMEM_SCL: | |
| 162 | if( c->scl != data ) | |
| 163 | { | |
| 164 | c->scl = data; | |
| 165 | verboselog( device->machine, 2, "i2cmem_write( I2CMEM_SCL, %d )\n", c->scl ); | |
| 166 | ||
| 167 | switch( c->state ) | |
| 168 | { | |
| 169 | case STATE_DEVSEL: | |
| 170 | case STATE_BYTEADDR: | |
| 171 | case STATE_DATAIN: | |
| 172 | if( c->bits < 8 ) | |
| 173 | { | |
| 174 | if( c->scl ) | |
| 175 | { | |
| 176 | c->shift = ( ( c->shift << 1 ) | c->sdaw ) & 0xff; | |
| 177 | c->bits++; | |
| 178 | } | |
| 179 | } | |
| 180 | else | |
| 181 | { | |
| 182 | if( c->scl ) | |
| 183 | { | |
| 184 | switch( c->state ) | |
| 185 | { | |
| 186 | case STATE_DEVSEL: | |
| 187 | c->devsel = c->shift; | |
| 188 | ||
| 189 | if( !select_device( c ) ) | |
| 190 | { | |
| 191 | verboselog( device->machine, 1, "i2cmem devsel %02x: not this device\n", c->devsel ); | |
| 192 | c->state = STATE_IDLE; | |
| 193 | } | |
| 194 | else if( ( c->devsel & DEVSEL_RW ) == 0 ) | |
| 195 | { | |
| 196 | verboselog( device->machine, 1, "i2cmem devsel %02x: write\n", c->devsel ); | |
| 197 | c->state = STATE_BYTEADDR; | |
| 198 | } | |
| 199 | else | |
| 200 | { | |
| 201 | verboselog( device->machine, 1, "i2cmem devsel %02x: read\n", c->devsel ); | |
| 202 | c->state = STATE_DATAOUT; | |
| 203 | } | |
| 204 | break; | |
| 205 | ||
| 206 | case STATE_BYTEADDR: | |
| 207 | c->byteaddr = c->shift; | |
| 208 | c->page_offset = 0; | |
| 209 | ||
| 210 | verboselog( device->machine, 1, "i2cmem byteaddr %02x\n", c->byteaddr ); | |
| 211 | ||
| 212 | c->state = STATE_DATAIN; | |
| 213 | break; | |
| 214 | ||
| 215 | case STATE_DATAIN: | |
| 216 | if( c->wc ) | |
| 217 | { | |
| 218 | verboselog( device->machine, 0, "i2cmem write not enabled\n"); | |
| 219 | c->state = STATE_IDLE; | |
| 220 | } | |
| 221 | else if( c->page_size > 0 ) | |
| 222 | { | |
| 223 | c->page[ c->page_offset ] = c->shift; | |
| 224 | verboselog( device->machine, 1, "i2cmem page[ %04x ] <- %02x\n", c->page_offset, c->page[ c->page_offset ] ); | |
| 225 | ||
| 226 | c->page_offset++; | |
| 227 | if( c->page_offset == c->page_size ) | |
| 228 | { | |
| 229 | int offset = data_offset( c ) & ~( c->page_size - 1 ); | |
| 230 | ||
| 231 | memcpy( &c->data[ offset ], c->page, c->page_size ); | |
| 232 | verboselog( device->machine, 1, "i2cmem data[ %04x to %04x ] = page\n", offset, offset + c->page_size - 1 ); | |
| 233 | ||
| 234 | c->page_offset = 0; | |
| 235 | } | |
| 236 | } | |
| 237 | else | |
| 238 | { | |
| 239 | int offset = data_offset( c ); | |
| 240 | ||
| 241 | c->data[ offset ] = c->shift; | |
| 242 | verboselog( device->machine, 1, "i2cmem data[ %04x ] <- %02x\n", offset, c->data[ offset ] ); | |
| 243 | ||
| 244 | c->byteaddr++; | |
| 245 | } | |
| 246 | break; | |
| 247 | } | |
| 248 | ||
| 249 | c->bits++; | |
| 250 | } | |
| 251 | else | |
| 252 | { | |
| 253 | if( c->bits == 8 ) | |
| 254 | { | |
| 255 | c->sdar = 0; | |
| 256 | } | |
| 257 | else | |
| 258 | { | |
| 259 | c->bits = 0; | |
| 260 | c->sdar = 1; | |
| 261 | } | |
| 262 | } | |
| 263 | } | |
| 264 | break; | |
| 265 | ||
| 266 | case STATE_DATAOUT: | |
| 267 | if( c->bits < 8 ) | |
| 268 | { | |
| 269 | if( c->scl ) | |
| 270 | { | |
| 271 | if( c->bits == 0 ) | |
| 272 | { | |
| 273 | int offset = data_offset( c ); | |
| 274 | ||
| 275 | c->shift = c->data[ offset ]; | |
| 276 | verboselog( device->machine, 1, "i2cmem data[ %04x ] -> %02x\n", offset, c->data[ offset ] ); | |
| 277 | c->byteaddr++; | |
| 278 | } | |
| 279 | ||
| 280 | c->sdar = ( c->shift >> 7 ) & 1; | |
| 281 | ||
| 282 | c->shift = ( c->shift << 1 ) & 0xff; | |
| 283 | c->bits++; | |
| 284 | } | |
| 285 | } | |
| 286 | else | |
| 287 | { | |
| 288 | if( c->scl ) | |
| 289 | { | |
| 290 | if( c->sdaw ) | |
| 291 | { | |
| 292 | verboselog( device->machine, 1, "i2cmem sleep\n"); | |
| 293 | c->state = STATE_IDLE; | |
| 294 | } | |
| 295 | ||
| 296 | c->bits++; | |
| 297 | } | |
| 298 | else | |
| 299 | { | |
| 300 | if( c->bits == 8 ) | |
| 301 | { | |
| 302 | c->sdar = 1; | |
| 303 | } | |
| 304 | else | |
| 305 | { | |
| 306 | c->bits = 0; | |
| 307 | } | |
| 308 | } | |
| 309 | } | |
| 310 | break; | |
| 311 | } | |
| 312 | } | |
| 313 | break; | |
| 314 | ||
| 315 | case I2CMEM_WC: | |
| 316 | if( c->wc != data ) | |
| 317 | { | |
| 318 | c->wc = data; | |
| 319 | verboselog( device->machine, 2, "i2cmem_write( I2CMEM_WC, %d )\n", c->wc ); | |
| 320 | } | |
| 321 | break; | |
| 322 | ||
| 323 | default: | |
| 324 | verboselog( device->machine, 0, "i2cmem_write( %d, %d ) invalid line\n", line, data ); | |
| 325 | break; | |
| 326 | } | |
| 327 | } | |
| 328 | ||
| 329 | int i2cmemdev_read( const device_config *device, int line ) | |
| 330 | { | |
| 331 | i2cmem_state *c = get_safe_token( device ); | |
| 332 | ||
| 333 | switch( line ) | |
| 334 | { | |
| 335 | case I2CMEM_SDA: | |
| 336 | if (c->readmode == 0) | |
| 337 | { | |
| 338 | verboselog( device->machine, 2, "i2cmem_read( I2CMEM_SDA ) %d\n", c->sdar & c->sdaw ); | |
| 339 | return c->sdar & c->sdaw; | |
| 340 | } | |
| 341 | else | |
| 342 | { | |
| 343 | verboselog( device->machine, 2, "i2cmem_read( I2CMEM_SDA ) %d\n", c->sdar ); | |
| 344 | return c->sdar; | |
| 345 | } | |
| 346 | ||
| 347 | default: | |
| 348 | verboselog( device->machine, 0, "i2cmem_read( %d ) invalid line\n", line ); | |
| 349 | break; | |
| 350 | } | |
| 351 | ||
| 352 | return 0; | |
| 353 | } | |
| 354 | ||
| 355 | void i2cmemdev_set_read_mode( const device_config *device, int mode ) | |
| 356 | { | |
| 357 | i2cmem_state *c = get_safe_token( device ); | |
| 358 | ||
| 359 | c->readmode = mode; | |
| 360 | } | |
| 361 | ||
| 362 | /*------------------------------------------------- | |
| 363 | device start callback | |
| 364 | -------------------------------------------------*/ | |
| 365 | ||
| 366 | static DEVICE_START( i2cmem ) | |
| 367 | { | |
| 368 | i2cmem_state *c = get_safe_token( device ); | |
| 369 | const i2cmem_config *config; | |
| 370 | unsigned char *page = NULL; | |
| 371 | ||
| 372 | /* validate some basic stuff */ | |
| 373 | assert( device != NULL ); | |
| 374 | assert( device->inline_config != NULL ); | |
| 375 | assert( device->machine != NULL ); | |
| 376 | assert( device->machine->config != NULL ); | |
| 377 | ||
| 378 | config = device->inline_config; | |
| 379 | ||
| 380 | c->scl = 0; | |
| 381 | c->sdaw = 0; | |
| 382 | c->e0 = 0; | |
| 383 | c->e1 = 0; | |
| 384 | c->e2 = 0; | |
| 385 | c->wc = 0; | |
| 386 | c->sdar = 1; | |
| 387 | c->state = STATE_IDLE; | |
| 388 | c->bits = 0; | |
| 389 | c->shift = 0; | |
| 390 | c->devsel = 0; | |
| 391 | c->byteaddr = 0; | |
| 392 | c->readmode = 0; | |
| 393 | ||
| 394 | if( config != NULL ) | |
| 395 | { | |
| 396 | c->data = auto_malloc( config->data_size ); | |
| 397 | if( config->data != NULL ) | |
| 398 | memcpy(c->data, config->data, config->data_size); | |
| 399 | ||
| 400 | if( config->page_size > 0 ) | |
| 401 | page = auto_malloc( config->page_size ); | |
| 402 | ||
| 403 | c->slave_address = config->slave_address; | |
| 404 | c->data_size = config->data_size; | |
| 405 | c->page_size = config->page_size; | |
| 406 | c->page = page; | |
| 407 | } | |
| 408 | ||
| 409 | state_save_register_device_item( device, 0, c->scl ); | |
| 410 | state_save_register_device_item( device, 0, c->sdaw ); | |
| 411 | state_save_register_device_item( device, 0, c->e0 ); | |
| 412 | state_save_register_device_item( device, 0, c->e1 ); | |
| 413 | state_save_register_device_item( device, 0, c->e2 ); | |
| 414 | state_save_register_device_item( device, 0, c->wc ); | |
| 415 | state_save_register_device_item( device, 0, c->sdar ); | |
| 416 | state_save_register_device_item( device, 0, c->state ); | |
| 417 | state_save_register_device_item( device, 0, c->bits ); | |
| 418 | state_save_register_device_item( device, 0, c->shift ); | |
| 419 | state_save_register_device_item( device, 0, c->devsel ); | |
| 420 | state_save_register_device_item( device, 0, c->byteaddr ); | |
| 421 | state_save_register_device_item_pointer( device, 0, c->data, c->data_size ); | |
| 422 | state_save_register_device_item( device, 0, c->readmode ); | |
| 423 | } | |
| 424 | ||
| 425 | /*------------------------------------------------- | |
| 426 | device reset callback | |
| 427 | -------------------------------------------------*/ | |
| 428 | ||
| 429 | static DEVICE_RESET( i2cmem ) | |
| 430 | { | |
| 431 | } | |
| 432 | ||
| 433 | static DEVICE_NVRAM( i2cmem ) | |
| 434 | { | |
| 435 | const i2cmem_config *config = device->inline_config; | |
| 436 | i2cmem_state *c = get_safe_token( device ); | |
| 437 | ||
| 438 | if( read_or_write ) | |
| 439 | { | |
| 440 | mame_fwrite( file, c->data, c->data_size ); | |
| 441 | } | |
| 442 | else if( file ) | |
| 443 | { | |
| 444 | mame_fread( file, c->data, c->data_size ); | |
| 445 | } | |
| 446 | else | |
| 447 | { | |
| 448 | if( config->data != NULL ) | |
| 449 | memcpy( c->data, config->data, config->data_size ); | |
| 450 | } | |
| 451 | } | |
| 452 | ||
| 453 | /*------------------------------------------------- | |
| 454 | device set info callback | |
| 455 | -------------------------------------------------*/ | |
| 456 | ||
| 457 | static DEVICE_SET_INFO( i2cmem ) | |
| 458 | { | |
| 459 | switch ( state ) | |
| 460 | { | |
| 461 | /* no parameters to set */ | |
| 462 | } | |
| 463 | } | |
| 464 | ||
| 465 | /*------------------------------------------------- | |
| 466 | device get info callback | |
| 467 | -------------------------------------------------*/ | |
| 468 | ||
| 469 | DEVICE_GET_INFO( i2cmem ) | |
| 470 | { | |
| 471 | switch ( state ) | |
| 472 | { | |
| 473 | /* --- the following bits of info are returned as 64-bit signed integers --- */ | |
| 474 | case DEVINFO_INT_TOKEN_BYTES: info->i = sizeof( i2cmem_state ); break; | |
| 475 | case DEVINFO_INT_INLINE_CONFIG_BYTES: info->i = sizeof( i2cmem_config ); break; | |
| 476 | case DEVINFO_INT_CLASS: info->i = DEVICE_CLASS_PERIPHERAL; break; | |
| 477 | ||
| 478 | /* --- the following bits of info are returned as pointers to data or functions --- */ | |
| 479 | case DEVINFO_FCT_SET_INFO: info->set_info = DEVICE_SET_INFO_NAME( i2cmem ); break; | |
| 480 | case DEVINFO_FCT_START: info->start = DEVICE_START_NAME( i2cmem ); break; | |
| 481 | case DEVINFO_FCT_STOP: /* nothing */ break; | |
| 482 | case DEVINFO_FCT_RESET: info->reset = DEVICE_RESET_NAME( i2cmem ); break; | |
| 483 | case DEVINFO_FCT_NVRAM: info->nvram = DEVICE_NVRAM_NAME( i2cmem ); break; | |
| 484 | ||
| 485 | /* --- the following bits of info are returned as NULL-terminated strings --- */ | |
| 486 | case DEVINFO_STR_NAME: strcpy( info->s, "I2CMEM" ); break; | |
| 487 | case DEVINFO_STR_FAMILY: strcpy( info->s, "EEPROM" ); break; | |
| 488 | case DEVINFO_STR_VERSION: strcpy( info->s, "1.0" ); break; | |
| 489 | case DEVINFO_STR_SOURCE_FILE: strcpy( info->s, __FILE__ ); break; | |
| 490 | case DEVINFO_STR_CREDITS: strcpy( info->s, "Copyright Nicola Salmoria and the MAME Team" ); break; | |
| 491 | } | |
| 492 | } |
| r0 | r4471 | |
|---|---|---|
| 1 | /* | |
| 2 | * I2C Memory | |
| 3 | * | |
| 4 | */ | |
| 5 | ||
| 6 | #if !defined( I2CMEMDEV_H ) | |
| 7 | #define I2CMEMDEV_H ( 1 ) | |
| 8 | ||
| 9 | #define I2CMEM_E0 ( 1 ) | |
| 10 | #define I2CMEM_E1 ( 2 ) | |
| 11 | #define I2CMEM_E2 ( 3 ) | |
| 12 | #define I2CMEM_SDA ( 5 ) | |
| 13 | #define I2CMEM_SCL ( 6 ) | |
| 14 | #define I2CMEM_WC ( 7 ) | |
| 15 | ||
| 16 | #define I2CMEM_SLAVE_ADDRESS ( 0xa0 ) | |
| 17 | #define I2CMEM_SLAVE_ADDRESS_ALT ( 0xb0 ) | |
| 18 | ||
| 19 | typedef struct _i2cmem_config i2cmem_config; | |
| 20 | struct _i2cmem_config | |
| 21 | { | |
| 22 | const int slave_address; | |
| 23 | const int page_size; | |
| 24 | const int data_size; | |
| 25 | const char *data; | |
| 26 | }; | |
| 27 | ||
| 28 | #define I2CMEM DEVICE_GET_INFO_NAME(i2cmem) | |
| 29 | DEVICE_GET_INFO(i2cmem); | |
| 30 | ||
| 31 | #define MDRV_I2CMEM_ADD(_tag, _slave_address, _page_size, _data_size, _data) \ | |
| 32 | MDRV_DEVICE_ADD(_tag, I2CMEM, 0) \ | |
| 33 | MDRV_DEVICE_CONFIG_DATA32(i2cmem_config, slave_address, _slave_address) \ | |
| 34 | MDRV_DEVICE_CONFIG_DATA32(i2cmem_config, page_size, _page_size) \ | |
| 35 | MDRV_DEVICE_CONFIG_DATA32(i2cmem_config, data_size, _data_size) \ | |
| 36 | MDRV_DEVICE_CONFIG_DATAPTR(i2cmem_config, data, _data) | |
| 37 | ||
| 38 | #define MDRV_I2CMEM_REMOVE(_tag) \ | |
| 39 | MDRV_DEVICE_REMOVE(_tag, I2CMEM) | |
| 40 | ||
| 41 | ||
| 42 | void i2cmemdev_write( const device_config *device, int line, int data ); | |
| 43 | int i2cmemdev_read( const device_config *device, int line ); | |
| 44 | void i2cmemdev_set_read_mode( const device_config *device, int mode ); | |
| 45 | ||
| 46 | #endif |
| r4470 | r4471 | |
|---|---|---|
| 287 | 287 | IPT_UI_PASTE, |
| 288 | 288 | IPT_UI_SAVE_STATE, |
| 289 | 289 | IPT_UI_LOAD_STATE, |
| 290 | IPT_UI_TOGGLE_CROSSHAIR, | |
| 291 | 290 | |
| 292 | 291 | /* additional OSD-specified UI port types (up to 16) */ |
| 293 | 292 | IPT_OSD_1, |
| r4470 | r4471 | |
|---|---|---|
| 559 | 559 | bitmap_t |
| 560 | 560 | -------------------------------------------------*/ |
| 561 | 561 | |
| 562 | bitmap_t *render_load_png(const char *dirname, const char *filename, bitmap_t *alphadest, int *hasalpha) | |
| 562 | bitmap_t *render_load_png(const char *path, const char *dirname, const char *filename, bitmap_t *alphadest, int *hasalpha) | |
| 563 | 563 | { |
| 564 | 564 | bitmap_t *bitmap = NULL; |
| 565 | 565 | file_error filerr; |
| r4470 | r4471 | |
| 573 | 573 | fname = astring_dupc(filename); |
| 574 | 574 | else |
| 575 | 575 | fname = astring_assemble_3(astring_alloc(), dirname, PATH_SEPARATOR, filename); |
| 576 | filerr = mame_fopen( | |
| 576 | filerr = mame_fopen(path | |
| 577 | 577 | astring_free(fname); |
| 578 | 578 | if (filerr != FILERR_NONE) |
| 579 | 579 | return NULL; |
| r4470 | r4471 | |
|---|---|---|
| 29 | 29 | int render_clip_line(render_bounds *bounds, const render_bounds *clip); |
| 30 | 30 | int render_clip_quad(render_bounds *bounds, const render_bounds *clip, render_quad_texuv *texcoords); |
| 31 | 31 | void render_line_to_quad(const render_bounds *bounds, float width, render_bounds *bounds0, render_bounds *bounds1); |
| 32 | bitmap_t *render_load_png(const char *dirname, const char *filename, bitmap_t *alphadest, int *hasalpha); | |
| 32 | bitmap_t *render_load_png(const char *path, const char *dirname, const char *filename, bitmap_t *alphadest, int *hasalpha); | |
| 33 | 33 | |
| 34 | 34 | |
| 35 | 35 |
| r4470 | r4471 | |
|---|---|---|
| 1882 | 1882 | bitmap_t *bitmap; |
| 1883 | 1883 | |
| 1884 | 1884 | /* load the basic bitmap */ |
| 1885 | bitmap = render_load_png(dirname, file, NULL, hasalpha); | |
| 1885 | bitmap = render_load_png(OPTION_ARTPATH, dirname, file, NULL, hasalpha); | |
| 1886 | 1886 | if (bitmap != NULL && alphafile != NULL) |
| 1887 | 1887 | |
| 1888 | 1888 | /* load the alpha bitmap if specified */ |
| 1889 | if (render_load_png(dirname, alphafile, bitmap, hasalpha) == NULL) | |
| 1889 | if (render_load_png(OPTION_ARTPATH, dirname, alphafile, bitmap, hasalpha) == NULL) | |
| 1890 | 1890 | { |
| 1891 | 1891 | bitmap_free(bitmap); |
| 1892 | 1892 | bitmap = NULL; |
| r4470 | r4471 | |
|---|---|---|
| 65 | 65 | UINT16 m_p_n_volumeright[ MAX_CHANNEL ]; |
| 66 | 66 | UINT16 m_p_n_pitch[ MAX_CHANNEL ]; |
| 67 | 67 | UINT16 m_p_n_address[ MAX_CHANNEL ]; |
| 68 | UINT16 m_p_n_envelopestate[ MAX_CHANNEL ]; | |
| 69 | enum envstate { e_attack = 0, e_decay, e_sustain, e_sustainEnd, e_release, e_releaseend } m_envstate; | |
| 68 | 70 | UINT16 m_p_n_attackdecaysustain[ MAX_CHANNEL ]; |
| 69 | 71 | UINT16 m_p_n_sustainrelease[ MAX_CHANNEL ]; |
| 70 | 72 | UINT16 m_p_n_adsrvolume[ MAX_CHANNEL ]; |
| r4470 | r4471 | |
| 152 | 154 | |
| 153 | 155 | for( n_channel = 0; n_channel < MAX_CHANNEL; n_channel++ ) |
| 154 | 156 | { |
| 155 | voll = volume( chip->m_p_n_volumeleft[ n_channel ] ); | |
| 156 | volr = volume( chip->m_p_n_volumeright[ n_channel ] ); | |
| 157 | // hack, if the envelope is in release state, silence it | |
| 158 | // - the envelopes aren't currently emulated! | |
| 159 | // - and this prevents audiable sounds looping forever | |
| 160 | if (chip->m_p_n_envelopestate[ n_channel ] == e_release ) | |
| 161 | { | |
| 162 | voll = 0; | |
| 163 | volr = 0; | |
| 164 | } | |
| 165 | else | |
| 166 | { | |
| 167 | voll = volume( chip->m_p_n_volumeleft[ n_channel ] ); | |
| 168 | volr = volume( chip->m_p_n_volumeright[ n_channel ] ); | |
| 169 | } | |
| 157 | 170 | |
| 158 | 171 | for( n_sample = 0; n_sample < samples; n_sample++ ) |
| 159 | 172 | { |
| r4470 | r4471 | |
| 342 | 355 | state_save_register_device_item_array( device, 0, chip->m_p_n_volumeright ); |
| 343 | 356 | state_save_register_device_item_array( device, 0, chip->m_p_n_pitch ); |
| 344 | 357 | state_save_register_device_item_array( device, 0, chip->m_p_n_address ); |
| 358 | state_save_register_device_item_array( device, 0, chip->m_p_n_envelopestate ); | |
| 345 | 359 | state_save_register_device_item_array( device, 0, chip->m_p_n_attackdecaysustain ); |
| 346 | 360 | state_save_register_device_item_array( device, 0, chip->m_p_n_sustainrelease ); |
| 347 | 361 | state_save_register_device_item_array( device, 0, chip->m_p_n_adsrvolume ); |
| r4470 | r4471 | |
| 550 | 564 | chip->m_n_voiceon = 0; |
| 551 | 565 | COMBINE_DATA( &chip->m_n_voiceon ); |
| 552 | 566 | verboselog( machine, 1, "psx_spu_w() voice on = %08x\n", chip->m_n_voiceon ); |
| 553 | for( n_channel = 0; n_channel < | |
| 567 | for( n_channel = 0; n_channel < MAX_CHANNEL; n_channel++ ) | |
| 554 | 568 | { |
| 555 | 569 | if( ( chip->m_n_voiceon & ( 1 << n_channel ) ) != 0 ) |
| 556 | 570 | { |
| r4470 | r4471 | |
| 559 | 573 | chip->m_p_n_s1[ n_channel ] = 0; |
| 560 | 574 | chip->m_p_n_s2[ n_channel ] = 0; |
| 561 | 575 | chip->m_p_n_blockstatus[ n_channel ] = 1; |
| 576 | ||
| 577 | chip->m_p_n_envelopestate[ n_channel ] = e_attack; | |
| 562 | 578 | } |
| 563 | 579 | } |
| 564 | 580 | break; |
| r4470 | r4471 | |
| 566 | 582 | chip->m_n_voiceoff = 0; |
| 567 | 583 | COMBINE_DATA( &chip->m_n_voiceoff ); |
| 568 | 584 | verboselog( machine, 1, "psx_spu_w() voice off = %08x\n", chip->m_n_voiceoff ); |
| 585 | ||
| 586 | for( n_channel = 0; n_channel < MAX_CHANNEL; n_channel++ ) | |
| 587 | { | |
| 588 | if( ( chip->m_n_voiceoff & ( 1 << n_channel ) ) != 0 ) | |
| 589 | { | |
| 590 | // keyoff advances the envelope to release state | |
| 591 | if (chip->m_p_n_envelopestate[ n_channel ] < e_release) | |
| 592 | chip->m_p_n_envelopestate[ n_channel ] = e_release; | |
| 593 | } | |
| 594 | } | |
| 595 | ||
| 569 | 596 | break; |
| 570 | 597 | case SPU_REG( 0xd90 ): |
| 571 | 598 | COMBINE_DATA( &chip->m_n_modulationmode ); |
| r4470 | r4471 | |
|---|---|---|
| 39 | 39 | |
| 40 | 40 | enum |
| 41 | 41 | { |
| 42 | INPUT_TYPE_DIGITAL = 0, | |
| 43 | INPUT_TYPE_ANALOG = 1, | |
| 44 | INPUT_TYPE_ANALOG_DEC = 2, | |
| 45 | INPUT_TYPE_ANALOG_INC = 3 | |
| 46 | }; | |
| 47 | ||
| 48 | enum | |
| 49 | { | |
| 50 | ANALOG_ITEM_KEYSPEED = 0, | |
| 51 | ANALOG_ITEM_CENTERSPEED, | |
| 52 | ANALOG_ITEM_REVERSE, | |
| 53 | ANALOG_ITEM_SENSITIVITY, | |
| 54 | ANALOG_ITEM_COUNT | |
| 55 | }; | |
| 56 | ||
| 57 | enum | |
| 58 | { | |
| 59 | 42 | LOADSAVE_NONE, |
| 60 | 43 | LOADSAVE_LOAD, |
| 61 | 44 | LOADSAVE_SAVE |
| r4470 | r4471 | |
| 1066 | 1049 | |
| 1067 | 1050 | for (screen = video_screen_first(machine->config); screen != NULL; screen = video_screen_next(screen)) |
| 1068 | 1051 | { |
| 1069 | const screen_config *scrconfig = screen->inline_config; | |
| 1052 | const screen_config *scrconfig = (const screen_config *)screen->inline_config; | |
| 1070 | 1053 | |
| 1071 | 1054 | if (scrcount > 1) |
| 1072 | 1055 | { |
| r4470 | r4471 | |
| 1283 | 1266 | if (ui_input_pressed(machine, IPT_UI_SHOW_FPS)) |
| 1284 | 1267 | ui_set_show_fps(!ui_get_show_fps()); |
| 1285 | 1268 | |
| 1286 | /* toggle crosshair display */ | |
| 1287 | if (ui_input_pressed(machine, IPT_UI_TOGGLE_CROSSHAIR)) | |
| 1288 | crosshair_toggle(machine); | |
| 1289 | ||
| 1290 | 1269 | /* increment frameskip? */ |
| 1291 | 1270 | if (ui_input_pressed(machine, IPT_UI_FRAMESKIP_INC)) |
| 1292 | 1271 | { |
| r4470 | r4471 | |
| 1421 | 1400 | static slider_state *slider_alloc(const char *title, INT32 minval, INT32 defval, INT32 maxval, INT32 incval, slider_update update, void *arg) |
| 1422 | 1401 | { |
| 1423 | 1402 | int size = sizeof(slider_state) + strlen(title); |
| 1424 | slider_state *state = auto_malloc(size); | |
| 1403 | slider_state *state = (slider_state *)auto_malloc(size); | |
| 1425 | 1404 | memset(state, 0, size); |
| 1426 | 1405 | |
| 1427 | 1406 | state->minval = minval; |
| r4470 | r4471 | |
| 1495 | 1474 | /* add screen parameters */ |
| 1496 | 1475 | for (device = video_screen_first(machine->config); device != NULL; device = video_screen_next(device)) |
| 1497 | 1476 | { |
| 1498 | const screen_config *scrconfig = device->inline_config; | |
| 1477 | const screen_config *scrconfig = (const screen_config *)device->inline_config; | |
| 1499 | 1478 | int defxscale = floor(scrconfig->xscale * 1000.0f + 0.5f); |
| 1500 | 1479 | int defyscale = floor(scrconfig->yscale * 1000.0f + 0.5f); |
| 1501 | 1480 | int defxoffset = floor(scrconfig->xoffset * 1000.0f + 0.5f); |
| r4470 | r4471 | |
| 1538 | 1517 | |
| 1539 | 1518 | for (device = device_list_first(machine->config->devicelist, LASERDISC); device != NULL; device = device_list_next(device, LASERDISC)) |
| 1540 | 1519 | { |
| 1541 | const laserdisc_config *config = device->inline_config; | |
| 1520 | const laserdisc_config *config = (const laserdisc_config *)device->inline_config; | |
| 1542 | 1521 | if (config->overupdate != NULL) |
| 1543 | 1522 | { |
| 1544 | 1523 | int defxscale = floor(config->overscalex * 1000.0f + 0.5f); |
| r4470 | r4471 | |
| 1565 | 1544 | |
| 1566 | 1545 | for (device = video_screen_first(machine->config); device != NULL; device = video_screen_next(device)) |
| 1567 | 1546 | { |
| 1568 | const screen_config *scrconfig = device->inline_config; | |
| 1547 | const screen_config *scrconfig = (const screen_config *)device->inline_config; | |
| 1569 | 1548 | if (scrconfig->type == SCREEN_TYPE_VECTOR) |
| 1570 | 1549 | { |
| 1571 | 1550 | /* add flicker control */ |
| r4470 | r4471 | |
| 1635 | 1614 | |
| 1636 | 1615 | static INT32 slider_adjuster(running_machine *machine, void *arg, astring *string, INT32 newval) |
| 1637 | 1616 | { |
| 1638 | const input_field_config *field = arg; | |
| 1617 | const input_field_config *field = (const input_field_config *)arg; | |
| 1639 | 1618 | input_field_user_settings settings; |
| 1640 | 1619 | |
| 1641 | 1620 | input_field_get_user_settings(field, &settings); |
| r4470 | r4471 | |
| 1672 | 1651 | |
| 1673 | 1652 | static INT32 slider_refresh(running_machine *machine, void *arg, astring *string, INT32 newval) |
| 1674 | 1653 | { |
| 1675 | const device_config *screen = arg; | |
| 1676 | const screen_config *scrconfig = screen->inline_config; | |
| 1654 | const device_config *screen = (const device_config *)arg; | |
| 1655 | const screen_config *scrconfig = (const screen_config *)screen->inline_config; | |
| 1677 | 1656 | double defrefresh = ATTOSECONDS_TO_HZ(scrconfig->refresh); |
| 1678 | 1657 | double refresh; |
| 1679 | 1658 | |
| r4470 | r4471 | |
| 1699 | 1678 | |
| 1700 | 1679 | static INT32 slider_brightness(running_machine *machine, void *arg, astring *string, INT32 newval) |
| 1701 | 1680 | { |
| 1702 | const device_config *screen = arg; | |
| 1681 | const device_config *screen = (const device_config *)arg; | |
| 1703 | 1682 | render_container *container = render_container_get_screen(screen); |
| 1704 | 1683 | render_container_user_settings settings; |
| 1705 | 1684 | |
| r4470 | r4471 | |
| 1722 | 1701 | |
| 1723 | 1702 | static INT32 slider_contrast(running_machine *machine, void *arg, astring *string, INT32 newval) |
| 1724 | 1703 | { |
| 1725 | const device_config *screen = arg; | |
| 1704 | const device_config *screen = (const device_config *)arg; | |
| 1726 | 1705 | render_container *container = render_container_get_screen(screen); |
| 1727 | 1706 | render_container_user_settings settings; |
| 1728 | 1707 | |
| r4470 | r4471 | |
| 1744 | 1723 | |
| 1745 | 1724 | static INT32 slider_gamma(running_machine *machine, void *arg, astring *string, INT32 newval) |
| 1746 | 1725 | { |
| 1747 | const device_config *screen = arg; | |
| 1726 | const device_config *screen = (const device_config *)arg; | |
| 1748 | 1727 | render_container *container = render_container_get_screen(screen); |
| 1749 | 1728 | render_container_user_settings settings; |
| 1750 | 1729 | |
| r4470 | r4471 | |
| 1767 | 1746 | |
| 1768 | 1747 | static INT32 slider_xscale(running_machine *machine, void *arg, astring *string, INT32 newval) |
| 1769 | 1748 | { |
| 1770 | const device_config *screen = arg; | |
| 1749 | const device_config *screen = (const device_config *)arg; | |
| 1771 | 1750 | render_container *container = render_container_get_screen(screen); |
| 1772 | 1751 | render_container_user_settings settings; |
| 1773 | 1752 | |
| r4470 | r4471 | |
| 1790 | 1769 | |
| 1791 | 1770 | static INT32 slider_yscale(running_machine *machine, void *arg, astring *string, INT32 newval) |
| 1792 | 1771 | { |
| 1793 | const device_config *screen = arg; | |
| 1772 | const device_config *screen = (const device_config *)arg; | |
| 1794 | 1773 | render_container *container = render_container_get_screen(screen); |
| 1795 | 1774 | render_container_user_settings settings; |
| 1796 | 1775 | |
| r4470 | r4471 | |
| 1813 | 1792 | |
| 1814 | 1793 | static INT32 slider_xoffset(running_machine *machine, void *arg, astring *string, INT32 newval) |
| 1815 | 1794 | { |
| 1816 | const device_config *screen = arg; | |
| 1795 | const device_config *screen = (const device_config *)arg; | |
| 1817 | 1796 | render_container *container = render_container_get_screen(screen); |
| 1818 | 1797 | render_container_user_settings settings; |
| 1819 | 1798 | |
| r4470 | r4471 | |
| 1836 | 1815 | |
| 1837 | 1816 | static INT32 slider_yoffset(running_machine *machine, void *arg, astring *string, INT32 newval) |
| 1838 | 1817 | { |
| 1839 | const device_config *screen = arg; | |
| 1818 | const device_config *screen = (const device_config *)arg; | |
| 1840 | 1819 | render_container *container = render_container_get_screen(screen); |
| 1841 | 1820 | render_container_user_settings settings; |
| 1842 | 1821 | |
| r4470 | r4471 | |
| 1859 | 1838 | |
| 1860 | 1839 | static INT32 slider_overxscale(running_machine *machine, void *arg, astring *string, INT32 newval) |
| 1861 | 1840 | { |
| 1862 | const device_config *laserdisc = arg; | |
| 1841 | const device_config *laserdisc = (const device_config *)arg; | |
| 1863 | 1842 | laserdisc_config settings; |
| 1864 | 1843 | |
| 1865 | 1844 | laserdisc_get_config(laserdisc, &settings); |
| r4470 | r4471 | |
| 1881 | 1860 | |
| 1882 | 1861 | static INT32 slider_overyscale(running_machine *machine, void *arg, astring *string, INT32 newval) |
| 1883 | 1862 | { |
| 1884 | const device_config *laserdisc = arg; | |
| 1863 | const device_config *laserdisc = (const device_config *)arg; | |
| 1885 | 1864 | laserdisc_config settings; |
| 1886 | 1865 | |
| 1887 | 1866 | laserdisc_get_config(laserdisc, &settings); |
| r4470 | r4471 | |
| 1903 | 1882 | |
| 1904 | 1883 | static INT32 slider_overxoffset(running_machine *machine, void *arg, astring *string, INT32 newval) |
| 1905 | 1884 | { |
| 1906 | const device_config *laserdisc = arg; | |
| 1885 | const device_config *laserdisc = (const device_config *)arg; | |
| 1907 | 1886 | laserdisc_config settings; |
| 1908 | 1887 | |
| 1909 | 1888 | laserdisc_get_config(laserdisc, &settings); |
| r4470 | r4471 | |
| 1925 | 1904 | |
| 1926 | 1905 | static INT32 slider_overyoffset(running_machine *machine, void *arg, astring *string, INT32 newval) |
| 1927 | 1906 | { |
| 1928 | const device_config *laserdisc = arg; | |
| 1907 | const device_config *laserdisc = (const device_config *)arg; | |
| 1929 | 1908 | laserdisc_config settings; |
| 1930 | 1909 | |
| 1931 | 1910 | laserdisc_get_config(laserdisc, &settings); |
| r4470 | r4471 | |
|---|---|---|
| 11 | 11 | |
| 12 | 12 | #include "driver.h" |
| 13 | 13 | #include "rendutil.h" |
| 14 | #include "config.h" | |
| 15 | #include "xmlfile.h" | |
| 14 | 16 | |
| 15 | 17 | |
| 16 | 18 | |
| r4470 | r4471 | |
| 29 | 31 | typedef struct _crosshair_global crosshair_global; |
| 30 | 32 | struct _crosshair_global |
| 31 | 33 | { |
| 34 | UINT8 usage; /* true if any crosshairs are used */ | |
| 32 | 35 | UINT8 used[MAX_PLAYERS]; /* usage per player */ |
| 36 | UINT8 mode[MAX_PLAYERS]; /* visibility mode per player */ | |
| 33 | 37 | UINT8 visible[MAX_PLAYERS]; /* visibility per player */ |
| 34 | 38 | bitmap_t * bitmap[MAX_PLAYERS]; /* bitmap per player */ |
| 35 | 39 | render_texture * texture[MAX_PLAYERS]; /* texture per player */ |
| 36 | 40 | const device_config *screen[MAX_PLAYERS]; /* the screen on which this player's crosshair is drawn */ |
| 37 | 41 | float x[MAX_PLAYERS]; /* current X position */ |
| 38 | 42 | float y[MAX_PLAYERS]; /* current Y position */ |
| 43 | float last_x[MAX_PLAYERS]; /* last X position */ | |
| 44 | float last_y[MAX_PLAYERS]; /* last Y position */ | |
| 39 | 45 | UINT8 fade; /* color fading factor */ |
| 40 | 46 | UINT8 animation_counter; /* animation frame index */ |
| 47 | UINT16 auto_time; /* time in seconds to turn invisible */ | |
| 48 | UINT16 time[MAX_PLAYERS]; /* time since last movement */ | |
| 49 | char name[MAX_PLAYERS][CROSSHAIR_PIC_NAME_LENGTH + 1]; /* name of crosshair png file */ | |
| 41 | 50 | }; |
| 42 | 51 | |
| 43 | 52 | |
| r4470 | r4471 | |
| 121 | 130 | ***************************************************************************/ |
| 122 | 131 | |
| 123 | 132 | static void crosshair_exit(running_machine *machine); |
| 133 | static void crosshair_load(running_machine *machine, int config_type, xml_data_node *parentnode); | |
| 134 | static void crosshair_save(running_machine *machine, int config_type, xml_data_node *parentnode); | |
| 135 | ||
| 124 | 136 | static void animate(const device_config *device, void *param, int vblank_state); |
| 125 | 137 | |
| 126 | 138 | |
| r4470 | r4471 | |
| 134 | 146 | structures for the given player |
| 135 | 147 | -------------------------------------------------*/ |
| 136 | 148 | |
| 137 | static void create_bitmap(int player) | |
| 149 | static void create_bitmap(running_machine *machine, int player) | |
| 138 | 150 | { |
| 139 | /* if we don't have a bitmap for this player yet */ | |
| 151 | int x, y; | |
| 152 | char filename[20]; | |
| 153 | rgb_t color = crosshair_colors[player]; | |
| 154 | ||
| 155 | /* if we have a bitmap for this player, kill it */ | |
| 156 | if (global.bitmap[player] != NULL) | |
| 157 | free(global.bitmap[player]); | |
| 158 | ||
| 159 | if (global.name[player][0] != 0) | |
| 160 | { | |
| 161 | /* look for user specified file */ | |
| 162 | sprintf(filename, "%s.png", global.name[player]); | |
| 163 | global.bitmap[player] = render_load_png(OPTION_CRSSHAIRPATH, NULL, filename, NULL, NULL); | |
| 164 | } | |
| 165 | else | |
| 166 | { | |
| 167 | /* look for default cross?.png in crsshair\game dir */ | |
| 168 | sprintf(filename, "cross%d.png", player + 1); | |
| 169 | global.bitmap[player] = render_load_png(OPTION_CRSSHAIRPATH, machine->gamedrv->name, filename, NULL, NULL); | |
| 170 | ||
| 171 | /* look for default cross?.png in crsshair dir */ | |
| 172 | if (global.bitmap[player] == NULL) | |
| 173 | global.bitmap[player] = render_load_png(OPTION_CRSSHAIRPATH, NULL, filename, NULL, NULL); | |
| 174 | } | |
| 175 | ||
| 176 | /* if that didn't work, use the built-in one */ | |
| 140 | 177 | if (global.bitmap[player] == NULL) |
| 141 | 178 | { |
| 142 | int x, y; | |
| 143 | char filename[20]; | |
| 144 | rgb_t color = crosshair_colors[player]; | |
| 179 | /* allocate a blank bitmap to start with */ | |
| 180 | global.bitmap[player] = bitmap_alloc(CROSSHAIR_RAW_SIZE, CROSSHAIR_RAW_SIZE, BITMAP_FORMAT_ARGB32); | |
| 181 | bitmap_fill(global.bitmap[player], NULL, MAKE_ARGB(0x00,0xff,0xff,0xff)); | |
| 145 | 182 | |
| 146 | /* first try to load a bitmap for the crosshair */ | |
| 147 | sprintf(filename, "cross%d.png", player); | |
| 148 | global.bitmap[player] = render_load_png(NULL, filename, NULL, NULL); | |
| 149 | ||
| 150 | /* if that didn't work, use the built-in one */ | |
| 151 | if (global.bitmap[player] == NULL) | |
| 183 | /* extract the raw source data to it */ | |
| 184 | for (y = 0; y < CROSSHAIR_RAW_SIZE / 2; y++) | |
| 152 | 185 | { |
| 153 | /* allocate a blank bitmap to start with */ | |
| 154 | global.bitmap[player] = bitmap_alloc(CROSSHAIR_RAW_SIZE, CROSSHAIR_RAW_SIZE, BITMAP_FORMAT_ARGB32); | |
| 155 | bitmap_fill(global.bitmap[player], NULL, MAKE_ARGB(0x00,0xff,0xff,0xff)); | |
| 186 | /* assume it is mirrored vertically */ | |
| 187 | UINT32 *dest0 = BITMAP_ADDR32(global.bitmap[player], y, 0); | |
| 188 | UINT32 *dest1 = BITMAP_ADDR32(global.bitmap[player], CROSSHAIR_RAW_SIZE - 1 - y, 0); | |
| 156 | 189 | |
| 157 | /* extract the raw source data to it */ | |
| 158 | for (y = 0; y < CROSSHAIR_RAW_SIZE / 2; y++) | |
| 159 | { | |
| 160 | /* assume it is mirrored vertically */ | |
| 161 | UINT32 *dest0 = BITMAP_ADDR32(global.bitmap[player], y, 0); | |
| 162 | UINT32 *dest1 = BITMAP_ADDR32(global.bitmap[player], CROSSHAIR_RAW_SIZE - 1 - y, 0); | |
| 163 | ||
| 164 | /* extract to two rows simultaneously */ | |
| 165 | for (x = 0; x < CROSSHAIR_RAW_SIZE; x++) | |
| 166 | if ((crosshair_raw_top[y * CROSSHAIR_RAW_ROWBYTES + x / 8] << (x % 8)) & 0x80) | |
| 167 | dest0[x] = dest1[x] = MAKE_ARGB(0xff,0x00,0x00,0x00) | color; | |
| 168 | } | |
| 190 | /* extract to two rows simultaneously */ | |
| 191 | for (x = 0; x < CROSSHAIR_RAW_SIZE; x++) | |
| 192 | if ((crosshair_raw_top[y * CROSSHAIR_RAW_ROWBYTES + x / 8] << (x % 8)) & 0x80) | |
| 193 | dest0[x] = dest1[x] = MAKE_ARGB(0xff,0x00,0x00,0x00) | color; | |
| 169 | 194 | } |
| 195 | } | |
| 170 | 196 | |
| 171 | /* create a texture to reference the bitmap */ | |
| 172 | global.texture[player] = render_texture_alloc(render_texture_hq_scale, NULL); | |
| 173 | render_texture_set_bitmap(global.texture[player], global.bitmap[player], NULL, TEXFORMAT_ARGB32, NULL); | |
| 174 | } | |
| 197 | /* create a texture to reference the bitmap */ | |
| 198 | global.texture[player] = render_texture_alloc(render_texture_hq_scale, NULL); | |
| 199 | render_texture_set_bitmap(global.texture[player], global.bitmap[player], NULL, TEXFORMAT_ARGB32, NULL); | |
| 175 | 200 | } |
| 176 | 201 | |
| 177 | 202 | |
| r4470 | r4471 | |
| 191 | 216 | /* clear all the globals */ |
| 192 | 217 | memset(&global, 0, sizeof(global)); |
| 193 | 218 | |
| 219 | /* setup the default auto visibility time */ | |
| 220 | global.auto_time = CROSSHAIR_VISIBILITY_AUTOTIME_DEFAULT; | |
| 221 | ||
| 194 | 222 | /* determine who needs crosshairs */ |
| 195 | 223 | for (port = machine->portconfig; port != NULL; port = port->next) |
| 196 | 224 | for (field = port->fieldlist; field != NULL; field = field->next) |
| r4470 | r4471 | |
| 200 | 228 | |
| 201 | 229 | assert(player < MAX_PLAYERS); |
| 202 | 230 | |
| 203 | /* mark as used and visible */ | |
| 231 | /* mark as used and set the default visibility and mode */ | |
| 232 | global.usage = TRUE; | |
| 204 | 233 | global.used[player] = TRUE; |
| 205 | global.visible[player] = TRUE; | |
| 234 | global.mode[player] = CROSSHAIR_VISIBILITY_DEFAULT; | |
| 235 | global.visible[player] = (CROSSHAIR_VISIBILITY_DEFAULT == CROSSHAIR_VISIBILITY_OFF) ? FALSE : TRUE; | |
| 206 | 236 | |
| 207 | 237 | /* for now, use the main screen */ |
| 208 | 238 | global.screen[player] = machine->primary_screen; |
| 209 | 239 | |
| 210 | create_bitmap(player); | |
| 240 | create_bitmap(machine, player); | |
| 211 | 241 | } |
| 212 | 242 | |
| 243 | /* register callbacks for when we load/save configurations */ | |
| 244 | if (global.usage) | |
| 245 | config_register(machine, "crosshairs", crosshair_load, crosshair_save); | |
| 246 | ||
| 213 | 247 | /* register the animation callback */ |
| 214 | 248 | if (machine->primary_screen != NULL) |
| 215 | 249 | video_screen_register_vblank_callback(machine->primary_screen, animate, NULL); |
| r4470 | r4471 | |
| 240 | 274 | |
| 241 | 275 | |
| 242 | 276 | /*------------------------------------------------- |
| 243 | crosshair_toggle - toggle crosshair | |
| 244 | visibility | |
| 277 | crosshair_get_usage - return TRUE | |
| 278 | if any crosshairs are used | |
| 245 | 279 | -------------------------------------------------*/ |
| 246 | 280 | |
| 247 | ||
| 281 | ||
| 248 | 282 | { |
| 249 | int player; | |
| 250 | int first_hidden_player = -1; | |
| 283 | return global.usage; | |
| 284 | } | |
| 251 | 285 | |
| 252 | /* find the first invisible crosshair */ | |
| 253 | for (player = 0; player < MAX_PLAYERS; player++) | |
| 254 | if (global.used[player] && !global.visible[player]) | |
| 255 | { | |
| 256 | first_hidden_player = player; | |
| 257 | break; | |
| 258 | } | |
| 259 | 286 | |
| 260 | /* if all visible, turn all off */ | |
| 261 | if (first_hidden_player == -1) | |
| 262 | for (player = 0; player < MAX_PLAYERS; player++) | |
| 263 | global.visible[player] = FALSE; | |
| 287 | /*------------------------------------------------- | |
| 288 | crosshair_get_user_settings - return the | |
| 289 | current crosshair settings for a player | |
| 290 | Note: auto_time is common for all players | |
| 291 | -------------------------------------------------*/ | |
| 264 | 292 | |
| 265 | /* otherwise, turn on the first one that isn't currently on */ | |
| 266 | else | |
| 267 | global.visible[first_hidden_player] = TRUE; | |
| 293 | void crosshair_get_user_settings(running_machine *machine, UINT8 player, crosshair_user_settings *settings) | |
| 294 | { | |
| 295 | settings->auto_time = global.auto_time; | |
| 296 | settings->used = global.used[player]; | |
| 297 | settings->mode = global.mode[player]; | |
| 298 | strcpy(settings->name, global.name[player]); | |
| 268 | 299 | } |
| 269 | 300 | |
| 270 | 301 | |
| 271 | 302 | /*------------------------------------------------- |
| 303 | crosshair_set_user_settings - modify the | |
| 304 | current crosshair settings for a player | |
| 305 | Note: auto_time is common for all players | |
| 306 | -------------------------------------------------*/ | |
| 307 | ||
| 308 | void crosshair_set_user_settings(running_machine *machine, UINT8 player, crosshair_user_settings *settings) | |
| 309 | { | |
| 310 | int changed = FALSE; | |
| 311 | ||
| 312 | global.auto_time = settings->auto_time; | |
| 313 | global.used[player] = settings->used; | |
| 314 | global.mode[player] = settings->mode; | |
| 315 | ||
| 316 | /* set visibility as specified by mode */ | |
| 317 | /* auto mode starts with visibility off */ | |
| 318 | global.visible[player] = (settings->mode == CROSSHAIR_VISIBILITY_ON) ? TRUE : FALSE; | |
| 319 | ||
| 320 | /* update bitmap if name has changed */ | |
| 321 | changed = strcmp(settings->name, global.name[player]); | |
| 322 | strcpy(global.name[player], settings->name); | |
| 323 | if (changed) | |
| 324 | create_bitmap(machine, player); | |
| 325 | } | |
| 326 | ||
| 327 | ||
| 328 | /*------------------------------------------------- | |
| 272 | 329 | animate - animates the crosshair once a frame |
| 273 | 330 | -------------------------------------------------*/ |
| 274 | 331 | |
| r4470 | r4471 | |
| 285 | 342 | else |
| 286 | 343 | global.fade = 0xa0 + (0x60 * (~global.animation_counter & 0x7f) / 0x80); |
| 287 | 344 | |
| 288 | /* read all the lightgun values */ | |
| 289 | 345 | for (player = 0; player < MAX_PLAYERS; player++) |
| 346 | { | |
| 347 | /* read all the lightgun values */ | |
| 290 | 348 | if (global.used[player]) |
| 291 | 349 | input_port_get_crosshair_position(device->machine, player, &global.x[player], &global.y[player]); |
| 350 | ||
| 351 | /* auto visibility */ | |
| 352 | if (global.mode[player] == CROSSHAIR_VISIBILITY_AUTO) | |
| 353 | { | |
| 354 | if ((global.x[player] != global.last_x[player]) || (global.y[player] != global.last_y[player])) | |
| 355 | { | |
| 356 | /* crosshair has moved, keep crosshair visible */ | |
| 357 | global.visible[player] = TRUE; | |
| 358 | global.last_x[player] = global.x[player]; | |
| 359 | global.last_y[player] = global.y[player]; | |
| 360 | global.time[player] = 0; | |
| 361 | } | |
| 362 | else | |
| 363 | { | |
| 364 | /* see if the player has been motionless for time specified */ | |
| 365 | /* note that the animate() routine is called twice per frame */ | |
| 366 | /* slightly confusing formula, but the effect is: */ | |
| 367 | /* auto_time = 0 makes the crosshair barely visible while moved */ | |
| 368 | /* every increment in auto_time is about .2s at 60Hz */ | |
| 369 | if (global.time[player] > global.auto_time * 24 + 4) | |
| 370 | /* time exceeded so turn crosshair invisible */ | |
| 371 | global.visible[player] = FALSE; | |
| 372 | ||
| 373 | /* increment player visibility time */ | |
| 374 | global.time[player]++; | |
| 375 | } | |
| 376 | } | |
| 377 | } | |
| 292 | 378 | } |
| 293 | 379 | |
| 294 | 380 | |
| r4470 | r4471 | |
| 325 | 411 | { |
| 326 | 412 | global.screen[player] = screen; |
| 327 | 413 | } |
| 414 | ||
| 415 | ||
| 416 | /*------------------------------------------------- | |
| 417 | crosshair_load - read and apply data from the | |
| 418 | configuration file | |
| 419 | -------------------------------------------------*/ | |
| 420 | ||
| 421 | static void crosshair_load(running_machine *machine, int config_type, xml_data_node *parentnode) | |
| 422 | { | |
| 423 | /* Note: crosshair_load() is only registered if croshairs are used */ | |
| 424 | ||
| 425 | xml_data_node *crosshairnode; | |
| 426 | int auto_time; | |
| 427 | ||
| 428 | /* we only care about game files */ | |
| 429 | if (config_type != CONFIG_TYPE_GAME) | |
| 430 | return; | |
| 431 | ||
| 432 | /* might not have any data */ | |
| 433 | if (parentnode == NULL) | |
| 434 | return; | |
| 435 | ||
| 436 | /* loop and get player crosshair info */ | |
| 437 | for (crosshairnode = xml_get_sibling(parentnode->child, "crosshair"); crosshairnode; crosshairnode = xml_get_sibling(crosshairnode->next, "crosshair")) | |
| 438 | { | |
| 439 | int player, mode; | |
| 440 | ||
| 441 | player = xml_get_attribute_int(crosshairnode, "player", -1); | |
| 442 | ||
| 443 | /* check to make sure we have a valid player */ | |
| 444 | /* also check if the player really uses a crosshair */ | |
| 445 | if (player >=0 && player < MAX_PLAYERS && global.used[player]) | |
| 446 | { | |
| 447 | /* get, check, and store visibility mode */ | |
| 448 | mode = xml_get_attribute_int(crosshairnode, "mode", CROSSHAIR_VISIBILITY_DEFAULT); | |
| 449 | if (mode >= CROSSHAIR_VISIBILITY_OFF && mode <= CROSSHAIR_VISIBILITY_AUTO) | |
| 450 | { | |
| 451 | global.mode[player] = (UINT8)mode; | |
| 452 | /* set visibility as specified by mode */ | |
| 453 | /* auto mode starts with visibility off */ | |
| 454 | global.visible[player] = (mode == CROSSHAIR_VISIBILITY_ON) ? TRUE : FALSE; | |
| 455 | } | |
| 456 | ||
| 457 | /* get and store crosshair pic name, truncate name to max length */ | |
| 458 | strncpy(global.name[player], xml_get_attribute_string(crosshairnode, "pic", ""), CROSSHAIR_PIC_NAME_LENGTH); | |
| 459 | /* update bitmap */ | |
| 460 | create_bitmap(machine, player); | |
| 461 | } | |
| 462 | } | |
| 463 | ||
| 464 | /* get, check, and store auto visibility time */ | |
| 465 | crosshairnode = xml_get_sibling(parentnode->child, "autotime"); | |
| 466 | if (crosshairnode != NULL) | |
| 467 | { | |
| 468 | auto_time = xml_get_attribute_int(crosshairnode, "val", CROSSHAIR_VISIBILITY_AUTOTIME_DEFAULT); | |
| 469 | if ((auto_time >= CROSSHAIR_VISIBILITY_AUTOTIME_MIN) && (auto_time <= CROSSHAIR_VISIBILITY_AUTOTIME_MAX)) | |
| 470 | global.auto_time = (UINT8)auto_time; | |
| 471 | } | |
| 472 | } | |
| 473 | ||
| 474 | ||
| 475 | /*------------------------------------------------- | |
| 476 | crosshair_save - save data to the | |
| 477 | configuration file | |
| 478 | -------------------------------------------------*/ | |
| 479 | ||
| 480 | static void crosshair_save(running_machine *machine, int config_type, xml_data_node *parentnode) | |
| 481 | { | |
| 482 | /* Note: crosshair_save() is only registered if crosshairs are used */ | |
| 483 | ||
| 484 | xml_data_node *crosshairnode; | |
| 485 | int player; | |
| 486 | ||
| 487 | /* we only care about game files */ | |
| 488 | if (config_type != CONFIG_TYPE_GAME) | |
| 489 | return; | |
| 490 | ||
| 491 | for (player = 0; player < MAX_PLAYERS; player++) | |
| 492 | { | |
| 493 | if (global.used[player]) | |
| 494 | { | |
| 495 | /* create a node */ | |
| 496 | crosshairnode = xml_add_child(parentnode, "crosshair", NULL); | |
| 497 | ||
| 498 | if (crosshairnode != NULL) | |
| 499 | { | |
| 500 | int changed = FALSE; | |
| 501 | ||
| 502 | xml_set_attribute_int(crosshairnode, "player", player); | |
| 503 | ||
| 504 | if (global.visible[player] != CROSSHAIR_VISIBILITY_DEFAULT) | |
| 505 | { | |
| 506 | xml_set_attribute_int(crosshairnode, "mode", global.mode[player]); | |
| 507 | changed = TRUE; | |
| 508 | } | |
| 509 | ||
| 510 | /* the default graphic name is "", so only save if not */ | |
| 511 | if (strlen(global.name[player]) > 0) | |
| 512 | { | |
| 513 | xml_set_attribute(crosshairnode, "pic", global.name[player]); | |
| 514 | changed = TRUE; | |
| 515 | } | |
| 516 | ||
| 517 | /* if nothing changed, kill the node */ | |
| 518 | if (!changed) | |
| 519 | xml_delete_node(crosshairnode); | |
| 520 | } | |
| 521 | } | |
| 522 | } | |
| 523 | ||
| 524 | /* always store autotime so that it stays at the user value if it is needed */ | |
| 525 | if (global.auto_time != CROSSHAIR_VISIBILITY_AUTOTIME_DEFAULT) | |
| 526 | { | |
| 527 | /* create a node */ | |
| 528 | crosshairnode = xml_add_child(parentnode, "autotime", NULL); | |
| 529 | ||
| 530 | if (crosshairnode != NULL) | |
| 531 | xml_set_attribute_int(crosshairnode, "val", global.auto_time); | |
| 532 | } | |
| 533 | ||
| 534 | } |
| r4470 | r4471 | |
|---|---|---|
| 22 | 22 | #define CROSSHAIR_SCREEN_NONE ((const device_config *) 0) |
| 23 | 23 | #define CROSSHAIR_SCREEN_ALL ((const device_config *) ~0) |
| 24 | 24 | |
| 25 | /* user settings for visibility mode */ | |
| 26 | #define CROSSHAIR_VISIBILITY_OFF 0 | |
| 27 | #define CROSSHAIR_VISIBILITY_ON 1 | |
| 28 | #define CROSSHAIR_VISIBILITY_AUTO 2 | |
| 29 | #define CROSSHAIR_VISIBILITY_DEFAULT CROSSHAIR_VISIBILITY_AUTO | |
| 25 | 30 | |
| 31 | /* range allowed for auto visibility */ | |
| 32 | #define CROSSHAIR_VISIBILITY_AUTOTIME_MIN 0 | |
| 33 | #define CROSSHAIR_VISIBILITY_AUTOTIME_MAX 50 | |
| 34 | #define CROSSHAIR_VISIBILITY_AUTOTIME_DEFAULT 15 | |
| 26 | 35 | |
| 36 | /* maximum crosshair pic filename size */ | |
| 37 | #define CROSSHAIR_PIC_NAME_LENGTH 12 | |
| 38 | ||
| 39 | ||
| 40 | ||
| 27 | 41 | /*************************************************************************** |
| 42 | TYPE DEFINITIONS | |
| 43 | ***************************************************************************/ | |
| 44 | ||
| 45 | /* user-controllable settings for a player */ | |
| 46 | typedef struct _crosshair_user_settings crosshair_user_settings; | |
| 47 | struct _crosshair_user_settings | |
| 48 | { | |
| 49 | UINT8 used; /* is used */ | |
| 50 | UINT8 mode; /* visibility mode */ | |
| 51 | UINT8 auto_time; /* time in seconds to blank crosshair if no movement */ | |
| 52 | char name[CROSSHAIR_PIC_NAME_LENGTH + 1]; /* bitmap name */ | |
| 53 | }; | |
| 54 | ||
| 55 | ||
| 56 | ||
| 57 | /*************************************************************************** | |
| 28 | 58 | FUNCTION PROTOTYPES |
| 29 | 59 | ***************************************************************************/ |
| 30 | 60 | |
| r4470 | r4471 | |
| 40 | 70 | /* sets the screen(s) for a given player's crosshair */ |
| 41 | 71 | void crosshair_set_screen(running_machine *machine, int player, const device_config *screen); |
| 42 | 72 | |
| 73 | /* return TRUE if any crosshairs are used */ | |
| 74 | int crosshair_get_usage(running_machine *machine); | |
| 43 | 75 | |
| 76 | /* return the current crosshair settings for the given player */ | |
| 77 | void crosshair_get_user_settings(running_machine *machine, UINT8 player, crosshair_user_settings *settings); | |
| 44 | 78 | |
| 79 | /* modify the current crosshair settings for the given player */ | |
| 80 | void crosshair_set_user_settings(running_machine *machine, UINT8 player, crosshair_user_settings *settings); | |
| 81 | ||
| 82 | ||
| 45 | 83 | #endif /* __CRSSHAIR_H__ */ |
| r4470 | r4471 | |
|---|---|---|
| 45 | 45 | #define SEARCHPATH_INI OPTION_INIPATH |
| 46 | 46 | #define SEARCHPATH_FONT OPTION_FONTPATH |
| 47 | 47 | #define SEARCHPATH_CHEAT OPTION_CHEATPATH |
| 48 | #define SEARCHPATH_CRSSHAIRPATH OPTION_CRSSHAIRPATH | |
| 48 | 49 | |
| 49 | 50 | #define SEARCHPATH_IMAGE_DIFF OPTION_DIFF_DIRECTORY |
| 50 | 51 | #define SEARCHPATH_NVRAM OPTION_NVRAM_DIRECTORY |
| r4470 | r4471 | |
|---|---|---|
| 313 | 313 | |
| 314 | 314 | lp_t = timer_alloc(machine, lightpen_trigger, NULL); |
| 315 | 315 | |
| 316 | /* Switch off crosshairs since most games don't use lightpen */ | |
| 317 | crosshair_toggle(machine); | |
| 318 | ||
| 319 | 316 | refresh = timer_alloc(machine, vectrex_refresh, NULL); |
| 320 | 317 | |
| 321 | 318 | VIDEO_START_CALL(vector); |
| r4470 | r4471 | |
|---|---|---|
| 221 | 221 | DRIVER( z88 ) /* */ |
| 222 | 222 | |
| 223 | 223 | /* AMSTRAD */ |
| 224 | DRIVER( cpc464 ) /* Amstrad (Schneider in Germany) 1984 */ | |
| 225 | DRIVER( cpc664 ) /* Amstrad (Schneider in Germany) 1985 */ | |
| 226 | DRIVER( cpc6128 ) /* Amstrad (Schneider in Germany) 1985 */ | |
| 227 | DRIVER( cpc6128s ) /* Amstrad (Schneider in Germany) 1985 */ | |
| 228 | DRIVER( cpc6128f ) /* Amstrad (Schneider in Germany) 1985 (AZERTY) */ | |
| 229 | DRIVER( cpc464p ) /* Amstrad CPC464 Plus - 1990 */ | |
| 230 | DRIVER( cpc6128p ) /* Amstrad CPC6128 Plus - 1990 */ | |
| 231 | DRIVER( gx4000 ) /* Amstrad GX4000 - 1990 */ | |
| 232 | DRIVER( kccomp ) /* VEB KC compact */ | |
| 233 | DRIVER( al520ex ) /* Patisonic Aleste 520EX (1993) */ | |
| 234 | DRIVER( pcw8256 ) /* 198? PCW8256 */ | |
| 235 | DRIVER( pcw8512 ) /* 198? PCW8512 */ | |
| 236 | DRIVER( pcw9256 ) /* 198? PCW9256 */ | |
| 237 | DRIVER( pcw9512 ) /* 198? PCW9512 (+) */ | |
| 238 | DRIVER( pcw10 ) /* 198? PCW10 */ | |
| 239 | DRIVER( pcw16 ) /* 1995 PCW16 */ | |
| 240 | DRIVER( nc100 ) /* 19?? NC100 */ | |
| 241 | DRIVER( nc200 ) /* 19?? NC200 */ | |
| 224 | //0130u3 DRIVER( cpc464 ) /* Amstrad (Schneider in Germany) 1984 */ | |
| 225 | //0130u3 DRIVER( cpc664 ) /* Amstrad (Schneider in Germany) 1985 */ | |
| 226 | //0130u3 DRIVER( cpc6128 ) /* Amstrad (Schneider in Germany) 1985 */ | |
| 227 | //0130u3 DRIVER( cpc6128s ) /* Amstrad (Schneider in Germany) 1985 */ | |
| 228 | //0130u3 DRIVER( cpc6128f ) /* Amstrad (Schneider in Germany) 1985 (AZERTY) */ | |
| 229 | //0130u3 DRIVER( cpc464p ) /* Amstrad CPC464 Plus - 1990 */ | |
| 230 | //0130u3 DRIVER( cpc6128p ) /* Amstrad CPC6128 Plus - 1990 */ | |
| 231 | //0130u3 DRIVER( gx4000 ) /* Amstrad GX4000 - 1990 */ | |
| 232 | //0130u3 DRIVER( kccomp ) /* VEB KC compact */ | |
| 233 | //0130u3 DRIVER( al520ex ) /* Patisonic Aleste 520EX (1993) */ | |
| 234 | //0130u3 DRIVER( pcw8256 ) /* 198? PCW8256 */ | |
| 235 | //0130u3 DRIVER( pcw8512 ) /* 198? PCW8512 */ | |
| 236 | //0130u3 DRIVER( pcw9256 ) /* 198? PCW9256 */ | |
| 237 | //0130u3 DRIVER( pcw9512 ) /* 198? PCW9512 (+) */ | |
| 238 | //0130u3 DRIVER( pcw10 ) /* 198? PCW10 */ | |
| 239 | //0130u3 DRIVER( pcw16 ) /* 1995 PCW16 */ | |
| 240 | //0130u3 DRIVER( nc100 ) /* 19?? NC100 */ | |
| 241 | //0130u3 DRIVER( nc200 ) /* 19?? NC200 */ | |
| 242 | 242 | |
| 243 | 243 | /* APPLE */ |
| 244 | 244 | DRIVER( apple1 ) /* Jul 1976 Apple 1 */ |
| r4470 | r4471 | |
| 687 | 687 | DRIVER( c1pmf ) |
| 688 | 688 | |
| 689 | 689 | /* ASCII & MICROSOFT */ |
| 690 | DRIVER( msx ) /* 1983 MSX */ | |
| 691 | DRIVER( ax170 ) | |
| 692 | DRIVER( canonv10 ) | |
| 693 | DRIVER( canonv20 ) | |
| 694 | DRIVER( dpc100 ) /* 1984 MSX Korea */ | |
| 695 | DRIVER( dpc180 ) /* 1984 MSX Korea */ | |
| 696 | DRIVER( dpc200 ) /* 1984 MSX Korea */ | |
| 697 | DRIVER( gsfc200 ) | |
| 698 | DRIVER( expert10 ) /* 1983 MSX Brazil */ | |
| 699 | DRIVER( expert11 ) /* 1984 MSX Brazil */ | |
| 700 | DRIVER( expert13 ) /* 1984 MSX Brazil */ | |
| 701 | DRIVER( expertdp ) /* 1985 MSX Brazil */ | |
| 702 | DRIVER( expertpl ) /* 1984 MSX Brazil */ | |
| 703 | DRIVER( jvchc7gb ) | |
| 704 | DRIVER( mlf80 ) | |
| 705 | DRIVER( mlfx1 ) | |
| 706 | DRIVER( cf1200 ) /* 1984 MSX Japan */ | |
| 707 | DRIVER( cf2000 ) /* 1983 MSX Japan */ | |
| 708 | DRIVER( cf2700 ) /* 1984 MSX Japan */ | |
| 709 | DRIVER( cf3000 ) /* 1984 MSX Japan */ | |
| 710 | DRIVER( cf3300 ) /* 1985 MSX Japan */ | |
| 711 | DRIVER( fs1300 ) /* 1985 MSX Japan */ | |
| 712 | DRIVER( fs4000 ) /* 1985 MSX Japan */ | |
| 713 | DRIVER( nms801 ) | |
| 714 | DRIVER( vg802000 ) | |
| 715 | DRIVER( vg802020 ) /* 1985 MSX */ | |
| 716 | DRIVER( piopx7 ) | |
| 717 | DRIVER( mpc100 ) | |
| 718 | DRIVER( hotbit11 ) /* 1985 MSX Brazil */ | |
| 719 | DRIVER( hotbit12 ) /* 1985 MSX Brazil */ | |
| 720 | DRIVER( hotbi13b ) /* 1985 MSX Brazil */ | |
| 721 | DRIVER( hotbi13p ) /* 1985 MSX Brazil */ | |
| 722 | DRIVER( hotbit20 ) /* 1986 MSX2 Brazil */ | |
| 723 | DRIVER( hb10p ) | |
| 724 | DRIVER( hb20p ) | |
| 725 | DRIVER( hb201 ) /* 1985 MSX Japan */ | |
| 726 | DRIVER( hb201p ) /* 1985 MSX */ | |
| 727 | DRIVER( hb501p ) /* 1984 MSX */ | |
| 728 | DRIVER( hb55d ) /* 1983 MSX Germany */ | |
| 729 | DRIVER( hb55p ) /* 1983 MSX */ | |
| 730 | DRIVER( hb75d ) /* 1983 MSX Germany */ | |
| 731 | DRIVER( hb75p ) /* 1983 MSX */ | |
| 732 | DRIVER( svi728 ) /* 1985 MSX */ | |
| 733 | DRIVER( svi738 ) /* 1985 MSX */ | |
| 734 | DRIVER( svi738sw ) /* 1985 MSX */ | |
| 735 | DRIVER( tadpc200 ) | |
| 736 | DRIVER( tadpc20a ) | |
| 737 | DRIVER( hx10 ) /* 1984 MSX */ | |
| 738 | DRIVER( hx10s ) /* 1984 MSX */ | |
| 739 | DRIVER( hx20 ) /* 1984 MSX */ | |
| 740 | DRIVER( cx5m ) | |
| 741 | DRIVER( cx5m128 ) | |
| 742 | DRIVER( cx5m2 ) | |
| 743 | DRIVER( yis303 ) | |
| 744 | DRIVER( yis503 ) | |
| 745 | DRIVER( yis503ii ) | |
| 746 | DRIVER( y503iir ) | |
| 747 | DRIVER( y503iir2 ) | |
| 748 | DRIVER( yis503m ) | |
| 749 | DRIVER( yc64 ) | |
| 690 | //0130u3 DRIVER( msx ) /* 1983 MSX */ | |
| 691 | //0130u3 DRIVER( ax170 ) | |
| 692 | //0130u3 DRIVER( canonv10 ) | |
| 693 | //0130u3 DRIVER( canonv20 ) | |
| 694 | //0130u3 DRIVER( dpc100 ) /* 1984 MSX Korea */ | |
| 695 | //0130u3 DRIVER( dpc180 ) /* 1984 MSX Korea */ | |
| 696 | //0130u3 DRIVER( dpc200 ) /* 1984 MSX Korea */ | |
| 697 | //0130u3 DRIVER( gsfc200 ) | |
| 698 | //0130u3 DRIVER( expert10 ) /* 1983 MSX Brazil */ | |
| 699 | //0130u3 DRIVER( expert11 ) /* 1984 MSX Brazil */ | |
| 700 | //0130u3 DRIVER( expert13 ) /* 1984 MSX Brazil */ | |
| 701 | //0130u3 DRIVER( expertdp ) /* 1985 MSX Brazil */ | |
| 702 | //0130u3 DRIVER( expertpl ) /* 1984 MSX Brazil */ | |
| 703 | //0130u3 DRIVER( jvchc7gb ) | |
| 704 | //0130u3 DRIVER( mlf80 ) | |
| 705 | //0130u3 DRIVER( mlfx1 ) | |
| 706 | //0130u3 DRIVER( cf1200 ) /* 1984 MSX Japan */ | |
| 707 | //0130u3 DRIVER( cf2000 ) /* 1983 MSX Japan */ | |
| 708 | //0130u3 DRIVER( cf2700 ) /* 1984 MSX Japan */ | |
| 709 | //0130u3 DRIVER( cf3000 ) /* 1984 MSX Japan */ | |
| 710 | //0130u3 DRIVER( cf3300 ) /* 1985 MSX Japan */ | |
| 711 | //0130u3 DRIVER( fs1300 ) /* 1985 MSX Japan */ | |
| 712 | //0130u3 DRIVER( fs4000 ) /* 1985 MSX Japan */ | |
| 713 | //0130u3 DRIVER( nms801 ) | |
| 714 | //0130u3 DRIVER( vg802000 ) | |
| 715 | //0130u3 DRIVER( vg802020 ) /* 1985 MSX */ | |
| 716 | //0130u3 DRIVER( piopx7 ) | |
| 717 | //0130u3 DRIVER( mpc100 ) | |
| 718 | //0130u3 DRIVER( hotbit11 ) /* 1985 MSX Brazil */ | |
| 719 | //0130u3 DRIVER( hotbit12 ) /* 1985 MSX Brazil */ | |
| 720 | //0130u3 DRIVER( hotbi13b ) /* 1985 MSX Brazil */ | |
| 721 | //0130u3 DRIVER( hotbi13p ) /* 1985 MSX Brazil */ | |
| 722 | //0130u3 DRIVER( hotbit20 ) /* 1986 MSX2 Brazil */ | |
| 723 | //0130u3 DRIVER( hb10p ) | |
| 724 | //0130u3 DRIVER( hb20p ) | |
| 725 | //0130u3 DRIVER( hb201 ) /* 1985 MSX Japan */ | |
| 726 | //0130u3 DRIVER( hb201p ) /* 1985 MSX */ | |
| 727 | //0130u3 DRIVER( hb501p ) /* 1984 MSX */ | |
| 728 | //0130u3 DRIVER( hb55d ) /* 1983 MSX Germany */ | |
| 729 | //0130u3 DRIVER( hb55p ) /* 1983 MSX */ | |
| 730 | //0130u3 DRIVER( hb75d ) /* 1983 MSX Germany */ | |
| 731 | //0130u3 DRIVER( hb75p ) /* 1983 MSX */ | |
| 732 | //0130u3 DRIVER( svi728 ) /* 1985 MSX */ | |
| 733 | //0130u3 DRIVER( svi738 ) /* 1985 MSX */ | |
| 734 | //0130u3 DRIVER( svi738sw ) /* 1985 MSX */ | |
| 735 | //0130u3 DRIVER( tadpc200 ) | |
| 736 | //0130u3 DRIVER( tadpc20a ) | |
| 737 | //0130u3 DRIVER( hx10 ) /* 1984 MSX */ | |
| 738 | //0130u3 DRIVER( hx10s ) /* 1984 MSX */ | |
| 739 | //0130u3 DRIVER( hx20 ) /* 1984 MSX */ | |
| 740 | //0130u3 DRIVER( cx5m ) | |
| 741 | //0130u3 DRIVER( cx5m128 ) | |
| 742 | //0130u3 DRIVER( cx5m2 ) | |
| 743 | //0130u3 DRIVER( yis303 ) | |
| 744 | //0130u3 DRIVER( yis503 ) | |
| 745 | //0130u3 DRIVER( yis503ii ) | |
| 746 | //0130u3 DRIVER( y503iir ) | |
| 747 | //0130u3 DRIVER( y503iir2 ) | |
| 748 | //0130u3 DRIVER( yis503m ) | |
| 749 | //0130u3 DRIVER( yc64 ) | |
| 750 | 750 | |
| 751 | 751 | |
| 752 | DRIVER( msx2 ) /* 1985 MSX2 */ | |
| 753 | DRIVER( ax350 ) | |
| 754 | DRIVER( ax370 ) | |
| 755 | DRIVER( hbf9p ) /* 1985 MSX2 */ | |
| 756 | DRIVER( hbf9s ) /* 1985 MSX2 */ | |
| 757 | DRIVER( hbf500p ) /* 1985 MSX2 */ | |
| 758 | DRIVER( hbf700d ) /* 1985 MSX2 Germany */ | |
| 759 | DRIVER( hbf700f ) /* 1985 MSX2 */ | |
| 760 | DRIVER( hbf700p ) /* 1985 MSX2 */ | |
| 761 | DRIVER( hbf700s ) /* 1985 MSX2 Spain */ | |
| 762 | DRIVER( hbg900ap ) /* 1986 MSX2 */ | |
| 763 | DRIVER( hbg900p ) /* 1986 MSX2 */ | |
| 764 | DRIVER( nms8220 ) /* 1986 MSX2 */ | |
| 765 | DRIVER( nms8220a ) /* 1986 MSX2 */ | |
| 766 | DRIVER( vg8230 ) /* 1986 MSX2 */ | |
| 767 | DRIVER( vg8235 ) /* 1986 MSX2 */ | |
| 768 | DRIVER( vg8235f) /* 1986 MSX2 */ | |
| 769 | DRIVER( vg8240) /* 1986 MSX2 */ | |
| 770 | DRIVER( nms8245 ) /* 1986 MSX2 */ | |
| 771 | DRIVER( nms8245f) /* 1986 MSX2 */ | |
| 772 | DRIVER( nms8250 ) /* 1986 MSX2 */ | |
| 773 | DRIVER( nms8255 ) /* 1986 MSX2 */ | |
| 774 | DRIVER( nms8280 ) /* 1986 MSX2 */ | |
| 775 | DRIVER( nms8280g) /* 1986 MSX2 */ | |
| 776 | DRIVER( tpc310) /* 1986 MSX2 */ | |
| 777 | DRIVER( hx23) /* 1986 MSX2 */ | |
| 778 | DRIVER( hx23f) /* 1986 MSX2 */ | |
| 779 | DRIVER( cx7m) /* 1986 MSX2 */ | |
| 780 | DRIVER( cx7m128) /* 1986 MSX2 */ | |
| 781 | DRIVER( fs5500 ) /* 1985 MSX2 Japan */ | |
| 782 | DRIVER( fs4500 ) /* 1986 MSX2 Japan */ | |
| 783 | DRIVER( fs4700 ) /* 1986 MSX2 Japan */ | |
| 784 | DRIVER( fs5000 ) /* 1986 MSX2 Japan */ | |
| 785 | DRIVER( fs4600 ) /* 1986 MSX2 Japan */ | |
| 786 | DRIVER( fsa1 ) /* 1986 MSX2 Japan */ | |
| 787 | DRIVER( fsa1a ) /* 1986 MSX2 Japan */ | |
| 788 | DRIVER( fsa1mk2 ) /* 1987 MSX2 Japan */ | |
| 789 | DRIVER( fsa1f ) /* 1987 MSX2 Japan */ | |
| 790 | DRIVER( fsa1fm ) /* 1988 MSX2 Japan */ | |
| 791 | DRIVER( hbf500 ) /* 1986 MSX2 Japan */ | |
| 792 | DRIVER( hbf900 ) /* 1986 MSX2 Japan */ | |
| 793 | DRIVER( hbf900a ) /* 1986 MSX2 Japan */ | |
| 794 | DRIVER( hbf1 ) /* 1986 MSX2 Japan */ | |
| 795 | DRIVER( hbf12 ) /* 1987 MSX2 Japan */ | |
| 796 | DRIVER( hbf1xd ) /* 1987 MSX2 Japan */ | |
| 797 | DRIVER( hbf1xdm2 ) /* 1988 MSX2 Japan */ | |
| 798 | DRIVER( phc23 ) /* 1986 MSX2 Japan */ | |
| 799 | DRIVER( cpc300 ) /* 1986 MSX2 Korea */ | |
| 800 | DRIVER( cpc300e ) /* 1986 MSX2 Korea */ | |
| 801 | DRIVER( cpc400 ) /* 1986 MSX2 Korea */ | |
| 802 | DRIVER( cpc400s ) /* 1986 MSX2 Korea */ | |
| 803 | DRIVER( expert20 )/* 1986 MSX2 Korea */ | |
| 752 | //0130u3 DRIVER( msx2 ) /* 1985 MSX2 */ | |
| 753 | //0130u3 DRIVER( ax350 ) | |
| 754 | //0130u3 DRIVER( ax370 ) | |
| 755 | //0130u3 DRIVER( hbf9p ) /* 1985 MSX2 */ | |
| 756 | //0130u3 DRIVER( hbf9s ) /* 1985 MSX2 */ | |
| 757 | //0130u3 DRIVER( hbf500p ) /* 1985 MSX2 */ | |
| 758 | //0130u3 DRIVER( hbf700d ) /* 1985 MSX2 Germany */ | |
| 759 | //0130u3 DRIVER( hbf700f ) /* 1985 MSX2 */ | |
| 760 | //0130u3 DRIVER( hbf700p ) /* 1985 MSX2 */ | |
| 761 | //0130u3 DRIVER( hbf700s ) /* 1985 MSX2 Spain */ | |
| 762 | //0130u3 DRIVER( hbg900ap ) /* 1986 MSX2 */ | |
| 763 | //0130u3 DRIVER( hbg900p ) /* 1986 MSX2 */ | |
| 764 | //0130u3 DRIVER( nms8220 ) /* 1986 MSX2 */ | |
| 765 | //0130u3 DRIVER( nms8220a ) /* 1986 MSX2 */ | |
| 766 | //0130u3 DRIVER( vg8230 ) /* 1986 MSX2 */ | |
| 767 | //0130u3 DRIVER( vg8235 ) /* 1986 MSX2 */ | |
| 768 | //0130u3 DRIVER( vg8235f) /* 1986 MSX2 */ | |
| 769 | //0130u3 DRIVER( vg8240) /* 1986 MSX2 */ | |
| 770 | //0130u3 DRIVER( nms8245 ) /* 1986 MSX2 */ | |
| 771 | //0130u3 DRIVER( nms8245f) /* 1986 MSX2 */ | |
| 772 | //0130u3 DRIVER( nms8250 ) /* 1986 MSX2 */ | |
| 773 | //0130u3 DRIVER( nms8255 ) /* 1986 MSX2 */ | |
| 774 | //0130u3 DRIVER( nms8280 ) /* 1986 MSX2 */ | |
| 775 | //0130u3 DRIVER( nms8280g) /* 1986 MSX2 */ | |
| 776 | //0130u3 DRIVER( tpc310) /* 1986 MSX2 */ | |
| 777 | //0130u3 DRIVER( hx23) /* 1986 MSX2 */ | |
| 778 | //0130u3 DRIVER( hx23f) /* 1986 MSX2 */ | |
| 779 | //0130u3 DRIVER( cx7m) /* 1986 MSX2 */ | |
| 780 | //0130u3 DRIVER( cx7m128) /* 1986 MSX2 */ | |
| 781 | //0130u3 DRIVER( fs5500 ) /* 1985 MSX2 Japan */ | |
| 782 | //0130u3 DRIVER( fs4500 ) /* 1986 MSX2 Japan */ | |
| 783 | //0130u3 DRIVER( fs4700 ) /* 1986 MSX2 Japan */ | |
| 784 | //0130u3 DRIVER( fs5000 ) /* 1986 MSX2 Japan */ | |
| 785 | //0130u3 DRIVER( fs4600 ) /* 1986 MSX2 Japan */ | |
| 786 | //0130u3 DRIVER( fsa1 ) /* 1986 MSX2 Japan */ | |
| 787 | //0130u3 DRIVER( fsa1a ) /* 1986 MSX2 Japan */ | |
| 788 | //0130u3 DRIVER( fsa1mk2 ) /* 1987 MSX2 Japan */ | |
| 789 | //0130u3 DRIVER( fsa1f ) /* 1987 MSX2 Japan */ | |
| 790 | //0130u3 DRIVER( fsa1fm ) /* 1988 MSX2 Japan */ | |
| 791 | //0130u3 DRIVER( hbf500 ) /* 1986 MSX2 Japan */ | |
| 792 | //0130u3 DRIVER( hbf900 ) /* 1986 MSX2 Japan */ | |
| 793 | //0130u3 DRIVER( hbf900a ) /* 1986 MSX2 Japan */ | |
| 794 | //0130u3 DRIVER( hbf1 ) /* 1986 MSX2 Japan */ | |
| 795 | //0130u3 DRIVER( hbf12 ) /* 1987 MSX2 Japan */ | |
| 796 | //0130u3 DRIVER( hbf1xd ) /* 1987 MSX2 Japan */ | |
| 797 | //0130u3 DRIVER( hbf1xdm2 ) /* 1988 MSX2 Japan */ | |
| 798 | //0130u3 DRIVER( phc23 ) /* 1986 MSX2 Japan */ | |
| 799 | //0130u3 DRIVER( cpc300 ) /* 1986 MSX2 Korea */ | |
| 800 | //0130u3 DRIVER( cpc300e ) /* 1986 MSX2 Korea */ | |
| 801 | //0130u3 DRIVER( cpc400 ) /* 1986 MSX2 Korea */ | |
| 802 | //0130u3 DRIVER( cpc400s ) /* 1986 MSX2 Korea */ | |
| 803 | //0130u3 DRIVER( expert20 )/* 1986 MSX2 Korea */ | |
| 804 | 804 | |
| 805 | DRIVER( msx2p ) /* 1988 MSX2+ Japan */ | |
| 806 | DRIVER( fsa1fx ) /* 1988 MSX2+ Japan */ | |
| 807 | DRIVER( fsa1wx ) /* 1988 MSX2+ Japan */ | |
| 808 | DRIVER( fsa1wxa ) /* 1988 MSX2+ Japan */ | |
| 809 | DRIVER( fsa1wsx ) /* 1989 MSX2+ Japan */ | |
| 810 | DRIVER( hbf1xdj ) /* 1988 MSX2+ Japan */ | |
| 811 | DRIVER( hbf1xv ) /* 1989 MSX2+ Japan */ | |
| 812 | DRIVER( phc70fd ) /* 1988 MSX2+ Japan */ | |
| 813 | DRIVER( phc70fd2 ) /* 1988 MSX2+ Japan */ | |
| 814 | DRIVER( phc35j ) /* 1989 MSX2+ Japan */ | |
| 805 | //0130u3 DRIVER( msx2p ) /* 1988 MSX2+ Japan */ | |
| 806 | //0130u3 DRIVER( fsa1fx ) /* 1988 MSX2+ Japan */ | |
| 807 | //0130u3 DRIVER( fsa1wx ) /* 1988 MSX2+ Japan */ | |
| 808 | //0130u3 DRIVER( fsa1wxa ) /* 1988 MSX2+ Japan */ | |
| 809 | //0130u3 DRIVER( fsa1wsx ) /* 1989 MSX2+ Japan */ | |
| 810 | //0130u3 DRIVER( hbf1xdj ) /* 1988 MSX2+ Japan */ | |
| 811 | //0130u3 DRIVER( hbf1xv ) /* 1989 MSX2+ Japan */ | |
| 812 | //0130u3 DRIVER( phc70fd ) /* 1988 MSX2+ Japan */ | |
| 813 | //0130u3 DRIVER( phc70fd2 ) /* 1988 MSX2+ Japan */ | |
| 814 | //0130u3 DRIVER( phc35j ) /* 1989 MSX2+ Japan */ | |
| 815 | 815 | |
| 816 | 816 | |
| 817 | 817 | /* NASCOM MICROCOMPUTERS */ |
| r4470 | r4471 | |
| 886 | 886 | DRIVER( hp48gp ) /* HP 48G+ */ |
| 887 | 887 | |
| 888 | 888 | /* SpectraVideo */ |
| 889 | DRIVER( svi318 ) /* SVI-318 (PAL) */ | |
| 890 | DRIVER( svi318n ) /* SVI-318 (NTSC) */ | |
| 891 | DRIVER( svi328 ) /* SVI-328 (PAL) */ | |
| 892 | DRIVER( svi328n ) /* SVI-328 (NTSC) */ | |
| 893 | DRIVER( sv328p80 ) /* SVI-328 (PAL) + SVI-806 80 column card */ | |
| 894 | DRIVER( sv328n80 ) /* SVI-328 (NTSC) + SVI-806 80 column card */ | |
| 889 | //0130u3 DRIVER( svi318 ) /* SVI-318 (PAL) */ | |
| 890 | //0130u3 DRIVER( svi318n ) /* SVI-318 (NTSC) */ | |
| 891 | //0130u3 DRIVER( svi328 ) /* SVI-328 (PAL) */ | |
| 892 | //0130u3 DRIVER( svi328n ) /* SVI-328 (NTSC) */ | |
| 893 | //0130u3 DRIVER( sv328p80 ) /* SVI-328 (PAL) + SVI-806 80 column card */ | |
| 894 | //0130u3 DRIVER( sv328n80 ) /* SVI-328 (NTSC) + SVI-806 80 column card */ | |
| 895 | 895 | |
| 896 | 896 | /* Andrew Donald Booth (this is the name of the designer, not a company) */ |
| 897 | 897 | // DRIVER( apexc53 ) /* 1951(?) APEXC: All-Purpose Electronic X-ray Computer */ |
| r4470 | r4471 | |
|---|---|---|
| 583 | 583 | |
| 584 | 584 | static const z80pio_interface conkort_pio_intf = |
| 585 | 585 | { |
| 586 | conkort_pio_interrupt, /* interrupt callback */ | |
| 587 | conkort_pio_port_a_r, /* port A read callback */ | |
| 588 | conkort_pio_port_b_r, /* port B read callback */ | |
| 589 | conkort_pio_port_a_w, /* port A write callback */ | |
| 590 | conkort_pio_port_b_w, /* port B write callback */ | |
| 591 | conkort_pio_ardy_w, /* port A ready callback */ | |
| 592 | NULL /* port B ready callback */ | |
| 586 | DEVCB_LINE(conkort_pio_interrupt), /* interrupt callback */ | |
| 587 | DEVCB_HANDLER(conkort_pio_port_a_r), /* port A read callback */ | |
| 588 | DEVCB_HANDLER(conkort_pio_port_b_r), /* port B read callback */ | |
| 589 | DEVCB_HANDLER(conkort_pio_port_a_w), /* port A write callback */ | |
| 590 | DEVCB_HANDLER(conkort_pio_port_b_w), /* port B write callback */ | |
| 591 | DEVCB_LINE(conkort_pio_ardy_w), /* port A ready callback */ | |
| 592 | DEVCB_NULL /* port B ready callback */ | |
| 593 | 593 | }; |
| 594 | 594 | |
| 595 | 595 | static const z80_daisy_chain slow_daisy_chain[] = |
| r4470 | r4471 | |
|---|---|---|
| 32 | 32 | |
| 33 | 33 | const z80pio_interface kramermc_z80pio_intf = |
| 34 | 34 | { |
| 35 | NULL, /* callback when change interrupt status */ | |
| 36 | kramermc_port_a_r, | |
| 37 | kramermc_port_b_r, | |
| 38 | kramermc_port_a_w, | |
| 39 | NULL, | |
| 40 | NULL, | |
| 41 | NULL | |
| 35 | DEVCB_NULL, /* callback when change interrupt status */ | |
| 36 | DEVCB_HANDLER(kramermc_port_a_r), | |
| 37 | DEVCB_HANDLER(kramermc_port_b_r), | |
| 38 | DEVCB_HANDLER(kramermc_port_a_w), | |
| 39 | DEVCB_NULL, | |
| 40 | DEVCB_NULL, | |
| 41 | DEVCB_NULL | |
| 42 | 42 | }; |
| 43 | 43 | |
| 44 | 44 | /* Driver initialization */ |
| r4470 | r4471 | |
|---|---|---|
| 3267 | 3267 | |
| 3268 | 3268 | /* Using the cool code Juergen has provided, I will override |
| 3269 | 3269 | the timing tables with the values for the amstrad */ |
| 3270 | device_set_info_ptr(machine->cpu[0],CPUINFO_PTR_Z80_CYCLE_TABLE+Z80_TABLE_op, (void*)amstrad_cycle_table_op); | |
| 3271 | device_set_info_ptr(machine->cpu[0],CPUINFO_PTR_Z80_CYCLE_TABLE+Z80_TABLE_cb, (void*)amstrad_cycle_table_cb); | |
| 3272 | device_set_info_ptr(machine->cpu[0],CPUINFO_PTR_Z80_CYCLE_TABLE+Z80_TABLE_ed, (void*)amstrad_cycle_table_ed); | |
| 3273 | device_set_info_ptr(machine->cpu[0],CPUINFO_PTR_Z80_CYCLE_TABLE+Z80_TABLE_xy, (void*)amstrad_cycle_table_xy); | |
| 3274 | device_set_info_ptr(machine->cpu[0],CPUINFO_PTR_Z80_CYCLE_TABLE+Z80_TABLE_xycb, (void*)amstrad_cycle_table_xycb); | |
| 3275 | device_set_info_ptr(machine->cpu[0],CPUINFO_PTR_Z80_CYCLE_TABLE+Z80_TABLE_ex, (void*)amstrad_cycle_table_ex); | |
| 3270 | z80_set_cycle_tables(machine->cpu[0], | |
| 3271 | (void*)amstrad_cycle_table_op, | |
| 3272 | (void*)amstrad_cycle_table_cb, | |
| 3273 | (void*)amstrad_cycle_table_ed, | |
| 3274 | (void*)amstrad_cycle_table_xy, | |
| 3275 | (void*)amstrad_cycle_table_xycb, | |
| 3276 | (void*)amstrad_cycle_table_ex); | |
| 3276 | 3277 | |
| 3277 | 3278 | /* Juergen is a cool dude! */ |
| 3278 | 3279 | cpu_set_irq_callback(machine->cpu[0], amstrad_cpu_acknowledge_int); |
| r4470 | r4471 | |
|---|---|---|
| 77 | 77 | |
| 78 | 78 | const z80pio_interface ac1_z80pio_intf = |
| 79 | 79 | { |
| 80 | NULL, /* callback when change interrupt status */ | |
| 81 | ac1_port_a_r, | |
| 82 | ac1_port_b_r, | |
| 83 | ac1_port_a_w, | |
| 84 | ac1_port_b_w, | |
| 85 | NULL, | |
| 86 | NULL | |
| 80 | DEVCB_NULL, /* callback when change interrupt status */ | |
| 81 | DEVCB_HANDLER(ac1_port_a_r), | |
| 82 | DEVCB_HANDLER(ac1_port_b_r), | |
| 83 | DEVCB_HANDLER(ac1_port_a_w), | |
| 84 | DEVCB_HANDLER(ac1_port_b_w), | |
| 85 | DEVCB_NULL, | |
| 86 | DEVCB_NULL | |
| 87 | 87 | }; |
| 88 | 88 | |
| 89 | 89 | /* Driver initialization */ |
| r4470 | r4471 | |
|---|---|---|
| 584 | 584 | |
| 585 | 585 | const z80pio_interface mz800_z80pio_config = |
| 586 | 586 | { |
| 587 | mz800_z80pio_irq, | |
| 588 | mz800_z80pio_port_a_r, | |
| 589 | NULL, | |
| 590 | mz800_z80pio_port_a_w, | |
| 591 | mz800_printer_data_w, | |
| 592 | NULL, | |
| 593 | NULL, | |
| 587 | DEVCB_LINE(mz800_z80pio_irq), | |
| 588 | DEVCB_HANDLER(mz800_z80pio_port_a_r), | |
| 589 | DEVCB_NULL, | |
| 590 | DEVCB_HANDLER(mz800_z80pio_port_a_w), | |
| 591 | DEVCB_HANDLER(mz800_printer_data_w), | |
| 592 | DEVCB_NULL, | |
| 593 | DEVCB_NULL, | |
| 594 | 594 | }; |
| 595 | 595 | |
| 596 | 596 |
| r4470 | r4471 | |
|---|---|---|
| 1772 | 1772 | |
| 1773 | 1773 | const z80pio_interface kc85_pio_intf = |
| 1774 | 1774 | { |
| 1775 | kc85_pio_interrupt, /* callback when change interrupt status */ | |
| 1776 | NULL, | |
| 1777 | NULL, | |
| 1778 | NULL, | |
| 1779 | NULL, | |
| 1780 | kc85_pio_ardy_callback, /* portA ready active callback */ | |
| 1781 | kc85_pio_brdy_callback /* portB ready active callback */ | |
| 1775 | DEVCB_LINE(kc85_pio_interrupt), /* callback when change interrupt status */ | |
| 1776 | DEVCB_NULL, | |
| 1777 | DEVCB_NULL, | |
| 1778 | DEVCB_NULL, | |
| 1779 | DEVCB_NULL, | |
| 1780 | DEVCB_LINE(kc85_pio_ardy_callback), /* portA ready active callback */ | |
| 1781 | DEVCB_LINE(kc85_pio_brdy_callback) /* portB ready active callback */ | |
| 1782 | 1782 | }; |
| 1783 | 1783 | |
| 1784 | 1784 |
| r4470 | r4471 | |
|---|---|---|
| 238 | 238 | $(MESSOBJ)/acorn.a \ |
| 239 | 239 | $(MESSOBJ)/advision.a \ |
| 240 | 240 | $(MESSOBJ)/amiga.a \ |
| 241 | $(MESSOBJ)/amstrad.a \ | |
| 242 | 241 | $(MESSOBJ)/apexc.a \ |
| 243 | 242 | $(MESSOBJ)/apf.a \ |
| 244 | 243 | $(MESSOBJ)/apple.a \ |
| 245 | 244 | $(MESSOBJ)/aquarius.a \ |
| 246 | 245 | $(MESSOBJ)/arcadia.a \ |
| 247 | $(MESSOBJ)/ascii.a \ | |
| 248 | 246 | $(MESSOBJ)/at.a \ |
| 249 | 247 | $(MESSOBJ)/atari.a \ |
| 250 | 248 | $(MESSOBJ)/avigo.a \ |
| r4470 | r4471 | |
| 334 | 332 | $(MESSOBJ)/special.a \ |
| 335 | 333 | $(MESSOBJ)/ssystem3.a \ |
| 336 | 334 | $(MESSOBJ)/super80.a \ |
| 337 | $(MESSOBJ)/svi.a \ | |
| 338 | 335 | $(MESSOBJ)/svision.a \ |
| 339 | 336 | $(MESSOBJ)/synertec.a \ |
| 340 | 337 | $(MESSOBJ)/tangerin.a \ |
| r4470 | r4471 | |
| 354 | 351 | $(MESSOBJ)/vector06.a \ |
| 355 | 352 | $(MESSOBJ)/votrax.a \ |
| 356 | 353 | $(MESSOBJ)/vtech.a \ |
| 354 | $(MESSOBJ)/z80ne.a \ | |
| 357 | 355 | $(MESSOBJ)/shared.a \ |
| 358 | $(MESSOBJ)/z80ne.a \ | |
| 359 | 356 | |
| 357 | # $(MESSOBJ)/amstrad.a \ | |
| 358 | # $(MESSOBJ)/ascii.a \ | |
| 359 | # $(MESSOBJ)/svi.a \ | |
| 360 | 360 | |
| 361 | 361 | |
| 362 | ||
| 362 | 363 | #------------------------------------------------- |
| 363 | 364 | # the following files are general components and |
| 364 | 365 | # shared across a number of drivers |
| r4470 | r4471 | |
|---|---|---|
| 344 | 344 | |
| 345 | 345 | static const z80pio_interface mbee_z80pio_intf = |
| 346 | 346 | { |
| 347 | mbee_pio_interrupt, /* callback when change interrupt status */ | |
| 348 | NULL, | |
| 349 | pio_port_b_r, | |
| 350 | NULL, | |
| 351 | pio_port_b_w, | |
| 352 | NULL, | |
| 353 | NULL | |
| 347 | DEVCB_LINE(mbee_pio_interrupt), /* callback when change interrupt status */ | |
| 348 | DEVCB_NULL, | |
| 349 | DEVCB_HANDLER(pio_port_b_r), | |
| 350 | DEVCB_NULL, | |
| 351 | DEVCB_HANDLER(pio_port_b_w), | |
| 352 | DEVCB_NULL, | |
| 353 | DEVCB_NULL | |
| 354 | 354 | }; |
| 355 | 355 | |
| 356 | 356 | static const z80_daisy_chain mbee_daisy_chain[] = |
| r4470 | r4471 | |
|---|---|---|
| 457 | 457 | |
| 458 | 458 | static const z80pio_interface abc80_pio_intf = |
| 459 | 459 | { |
| 460 | abc80_pio_interrupt, /* callback when change interrupt status */ | |
| 461 | abc80_pio_port_a_r, /* port A read callback */ | |
| 462 | abc80_pio_port_b_r, /* port B read callback */ | |
| 463 | NULL, /* port A write callback */ | |
| 464 | abc80_pio_port_b_w, /* port B write callback */ | |
| 465 | NULL, /* portA ready active callback */ | |
| 466 | NULL /* portB ready active callback */ | |
| 460 | DEVCB_LINE(abc80_pio_interrupt), /* callback when change interrupt status */ | |
| 461 | DEVCB_HANDLER(abc80_pio_port_a_r), /* port A read callback */ | |
| 462 | DEVCB_HANDLER(abc80_pio_port_b_r), /* port B read callback */ | |
| 463 | DEVCB_NULL, /* port A write callback */ | |
| 464 | DEVCB_HANDLER(abc80_pio_port_b_w), /* port B write callback */ | |
| 465 | DEVCB_NULL, /* portA ready active callback */ | |
| 466 | DEVCB_NULL /* portB ready active callback */ | |
| 467 | 467 | }; |
| 468 | 468 | |
| 469 | 469 | static const z80_daisy_chain abc80_daisy_chain[] = |
| r4470 | r4471 | |
|---|---|---|
| 284 | 284 | |
| 285 | 285 | static const z80pio_interface mpf1_pio_intf = |
| 286 | 286 | { |
| 287 | mpf1_pio_interrupt, | |
| 288 | NULL, | |
| 289 | NULL, | |
| 290 | NULL, | |
| 291 | NULL, | |
| 292 | NULL, | |
| 293 | NULL | |
| 287 | DEVCB_LINE(mpf1_pio_interrupt), | |
| 288 | DEVCB_NULL, | |
| 289 | DEVCB_NULL, | |
| 290 | DEVCB_NULL, | |
| 291 | DEVCB_NULL, | |
| 292 | DEVCB_NULL, | |
| 293 | DEVCB_NULL | |
| 294 | 294 | }; |
| 295 | 295 | |
| 296 | 296 | /* Z80 CTC Interface */ |
| r4470 | r4471 | |
|---|---|---|
| 71 | 71 | |
| 72 | 72 | static const z80pio_interface super80_pio_intf = |
| 73 | 73 | { |
| 74 | super80_pio_interrupt, /* callback when change interrupt status */ | |
| 75 | NULL, | |
| 76 | pio_port_b_r, | |
| 77 | pio_port_a_w, | |
| 78 | NULL, | |
| 79 | NULL, /* portA ready active callback (not used in super80) */ | |
| 80 | NULL /* portB ready active callback (not used in super80) */ | |
| 74 | DEVCB_LINE(super80_pio_interrupt), /* callback when change interrupt status */ | |
| 75 | DEVCB_NULL, | |
| 76 | DEVCB_HANDLER(pio_port_b_r), | |
| 77 | DEVCB_HANDLER(pio_port_a_w), | |
| 78 | DEVCB_NULL, | |
| 79 | DEVCB_NULL, /* portA ready active callback (not used in super80) */ | |
| 80 | DEVCB_NULL /* portB ready active callback (not used in super80) */ | |
| 81 | 81 | }; |
| 82 | 82 | |
| 83 | 83 |
| r4470 | r4471 | |
|---|---|---|
| 264 | 264 | |
| 265 | 265 | static const z80pio_interface nascom1_z80pio_intf = |
| 266 | 266 | { |
| 267 | NULL, | |
| 268 | NULL, | |
| 269 | NULL, | |
| 270 | NULL, | |
| 271 | NULL, | |
| 272 | NULL, | |
| 273 | NULL | |
| 267 | DEVCB_NULL, | |
| 268 | DEVCB_NULL, | |
| 269 | DEVCB_NULL, | |
| 270 | DEVCB_NULL, | |
| 271 | DEVCB_NULL, | |
| 272 | DEVCB_NULL, | |
| 273 | DEVCB_NULL | |
| 274 | 274 | }; |
| 275 | 275 | |
| 276 | 276 |
| r4470 | r4471 | |
|---|---|---|
| 453 | 453 | |
| 454 | 454 | static const z80pio_interface einstein_pio_intf = |
| 455 | 455 | { |
| 456 | einstein_pio_interrupt, | |
| 457 | NULL, | |
| 458 | NULL, | |
| 459 | einstein_pio_port_a_w, | |
| 460 | NULL, | |
| 461 | einstein_pio_ardy, | |
| 462 | NULL | |
| 456 | DEVCB_LINE(einstein_pio_interrupt), | |
| 457 | DEVCB_NULL, | |
| 458 | DEVCB_NULL, | |
| 459 | DEVCB_HANDLER(einstein_pio_port_a_w), | |
| 460 | DEVCB_NULL, | |
| 461 | DEVCB_LINE(einstein_pio_ardy), | |
| 462 | DEVCB_NULL | |
| 463 | 463 | }; |
| 464 | 464 | |
| 465 | 465 |
| r4470 | r4471 | |
|---|---|---|
| 106 | 106 | /* TODO */ |
| 107 | 107 | static const z80pio_interface bbcbc_z80pio_intf = |
| 108 | 108 | { |
| 109 | NULL, /* int callback */ | |
| 110 | NULL, /* port a read */ | |
| 111 | NULL, /* port b read */ | |
| 112 | NULL, /* port a write */ | |
| 113 | NULL, /* port b write */ | |
| 114 | NULL, /* ready a */ | |
| 115 | NULL /* ready b */ | |
| 109 | DEVCB_NULL, /* int callback */ | |
| 110 | DEVCB_NULL, /* port a read */ | |
| 111 | DEVCB_NULL, /* port b read */ | |
| 112 | DEVCB_NULL, /* port a write */ | |
| 113 | DEVCB_NULL, /* port b write */ | |
| 114 | DEVCB_NULL, /* ready a */ | |
| 115 | DEVCB_NULL /* ready b */ | |
| 116 | 116 | }; |
| 117 | 117 | |
| 118 | 118 | static const z80_daisy_chain bbcbc_daisy_chain[] = |
| r4470 | r4471 | |
|---|---|---|
| 42 | 42 | |
| 43 | 43 | Source Changes: |
| 44 | 44 | ---------------- |
| 45 | - The core is based on MAME 0.130u | |
| 45 | - The core is based on MAME 0.130u3. This incorporates all features of the | |
| 46 | 46 | update to this core. [MAME team] |
| 47 | 47 | |
| 48 | 48 | - New tool added (castool) for cassette to wav conversion [Miodrag Milanovic] |
| Previous | 15994 Revisions | Next |