trunk/hash/nes.xml
r22513 | r22514 | |
50999 | 50999 | |
51000 | 51000 | <!-- TC-031 is unknown. Possibly "Bridge", an unreleased proto --> |
51001 | 51001 | |
51002 | | <software name="chuugokt" supported="no"> |
| 51002 | <software name="chuugokt" supported="partial"> |
51003 | 51003 | <description>Chuugoku Taitei (Tw)</description> |
51004 | 51004 | <year>19??</year> |
51005 | 51005 | <publisher>Sachen</publisher> |
51006 | 51006 | <info name="serial" value="TC-032"/> |
51007 | 51007 | <info name="alt_title" value="中國大亨"/> |
51008 | 51008 | <part name="cart" interface="nes_cart"> |
51009 | | <feature name="slot" value="somari" /> |
51010 | | <feature name="pcb" value="SOMERITEAM-SL-12" /> |
| 51009 | <feature name="slot" value="txrom" /> |
| 51010 | <feature name="pcb" value="NES-TLROM" /> <!-- Original header was mapper 116, but it's not a SOMARI pcb... --> |
51011 | 51011 | <dataarea name="chr" size="131072"> |
51012 | 51012 | <rom name="chuugoku taitei (asia) (unl).chr" size="131072" crc="d9203c08" sha1="b32ef62e4583b216aea84f7d0da0269c01b61e26" offset="00000" status="baddump" /> |
51013 | 51013 | </dataarea> |
51014 | 51014 | <dataarea name="prg" size="262144"> |
51015 | 51015 | <rom name="chuugoku taitei (asia) (unl).prg" size="262144" crc="3acdcc64" sha1="32436a43d3c371ab7aa6bb5165f60ca5c006a60e" offset="00000" status="baddump" /> |
51016 | 51016 | </dataarea> |
| 51017 | <!-- 8k WRAM on cartridge --> |
| 51018 | <dataarea name="wram" size="8192"> |
| 51019 | </dataarea> |
51017 | 51020 | </part> |
51018 | 51021 | </software> |
51019 | 51022 | |
r22513 | r22514 | |
63085 | 63088 | </part> |
63086 | 63089 | </software> |
63087 | 63090 | |
63088 | | <software name="bballfds" supported="no"> |
63089 | | <description>Baseball (Asia, FDS conversion?)</description> |
63090 | | <year>19??</year> |
63091 | | <publisher><unknown></publisher> |
63092 | | <part name="cart" interface="nes_cart"> |
63093 | | <feature name="slot" value="unknown" /> |
63094 | | <feature name="pcb" value="UNKNOWN" /> <!-- mapper 253?!? --> |
63095 | | <dataarea name="prg" size="81920"> |
63096 | | <rom name="baseball.prg" size="81920" crc="30296e0c" sha1="61ccce33b50ab1d6aab46cb52ee1ecaaaa3fdf0c" offset="00000" status="baddump" /> |
63097 | | </dataarea> |
63098 | | <!-- 8k VRAM on cartridge --> |
63099 | | <dataarea name="vram" size="8192"> |
63100 | | </dataarea> |
63101 | | <!-- 8k WRAM on cartridge --> |
63102 | | <dataarea name="wram" size="8192"> |
63103 | | </dataarea> |
63104 | | </part> |
63105 | | </software> |
63106 | | |
63107 | 63091 | <software name="maribaby"> |
63108 | 63092 | <description>Mario Baby ~ Bio Miracle Bokutte Upa (Asia, FDS conversion)</description> |
63109 | 63093 | <year>19??</year> |
r22513 | r22514 | |
63171 | 63155 | </part> |
63172 | 63156 | </software> |
63173 | 63157 | |
63174 | | <!-- FIXME: which board should use this game?? --> |
63175 | | <software name="cluclud" supported="no"> |
63176 | | <description>Clu Clu Land D (Asia, FDS conversion)</description> |
63177 | | <year>19??</year> |
63178 | | <publisher><pirate></publisher> |
63179 | | <part name="cart" interface="nes_cart"> |
63180 | | <feature name="slot" value="unknown" /> |
63181 | | <feature name="pcb" value="UNKNOWN" /> |
63182 | | <dataarea name="chr" size="8192"> |
63183 | | <rom name="clu clu land d (j) (fds conversion).chr" size="8192" crc="64a75549" sha1="7c950e89e6df0915820fe0c3e6750c085a8aaf83" offset="00000" status="baddump" /> |
63184 | | </dataarea> |
63185 | | <dataarea name="prg" size="32768"> |
63186 | | <rom name="clu clu land d (j) (fds conversion).prg" size="32768" crc="84594123" sha1="54fce5fbfbb3ae47ce3a62f9092c0ff204cf1cec" offset="00000" status="baddump" /> |
63187 | | </dataarea> |
63188 | | </part> |
63189 | | </software> |
63190 | | |
63191 | 63158 | <software name="dokidoki"> |
63192 | 63159 | <description>Doki Doki Panic (Asia, FDS conversion)</description> |
63193 | 63160 | <year>19??</year> |
r22513 | r22514 | |
63310 | 63277 | </part> |
63311 | 63278 | </software> |
63312 | 63279 | |
63313 | | <software name="iceclfds" supported="no"> |
63314 | | <description>Ice Climber (Asia, FDS conversion)</description> |
| 63280 | <software name="meikyfds"> |
| 63281 | <description>Meikyuu Jiin Dababa (Asia, FDS conversion)</description> |
63315 | 63282 | <year>19??</year> |
63316 | 63283 | <publisher><pirate></publisher> |
63317 | 63284 | <part name="cart" interface="nes_cart"> |
63318 | | <feature name="slot" value="nrom" /> |
63319 | | <feature name="pcb" value="NES-NROM-256" /> |
| 63285 | <feature name="slot" value="whirl2706" /> |
| 63286 | <feature name="pcb" value="WHIRLWIND-2706" /> |
| 63287 | <feature name="mirroring" value="vertical" /> |
| 63288 | <dataarea name="prg" size="131072"> |
| 63289 | <rom name="meikyuu jiin dababa (fds conversion) (unl).prg" size="131072" crc="d8012992" sha1="5f0943dc8145542abc70bf20e4754b3c08653399" offset="00000" status="baddump" /> |
| 63290 | </dataarea> |
| 63291 | <!-- 8k VRAM on cartridge --> |
| 63292 | <dataarea name="vram" size="8192"> |
| 63293 | </dataarea> |
| 63294 | </part> |
| 63295 | </software> |
| 63296 | |
| 63297 | <software name="montyfds"> |
| 63298 | <description>Monty no Doki Doki Daidassou (Asia, FDS conversion)</description> |
| 63299 | <year>19??</year> |
| 63300 | <publisher><pirate></publisher> |
| 63301 | <part name="cart" interface="nes_cart"> |
| 63302 | <feature name="slot" value="unl_lh32" /> |
| 63303 | <feature name="pcb" value="UNL-LH32" /> |
| 63304 | <feature name="mirroring" value="vertical" /> |
| 63305 | <dataarea name="prg" size="131072"> |
| 63306 | <rom name="monty no doki doki daidassou (fds conversion)(unl)[u][!].prg" size="131072" crc="09e3dcb4" sha1="ffb4706e49b826c6cdd12e502e8ae94fc9810b7f" offset="00000" status="baddump" /> |
| 63307 | </dataarea> |
| 63308 | <!-- 8k VRAM on cartridge --> |
| 63309 | <dataarea name="vram" size="8192"> |
| 63310 | </dataarea> |
| 63311 | <!-- 8k WRAM on cartridge --> |
| 63312 | <dataarea name="wram" size="8192"> |
| 63313 | </dataarea> |
| 63314 | </part> |
| 63315 | </software> |
| 63316 | |
| 63317 | <software name="prowrfds"> |
| 63318 | <description>ProWres - Famicom Wrestling Association (Asia, FDS conversion)</description> |
| 63319 | <year>19??</year> |
| 63320 | <publisher><pirate></publisher> |
| 63321 | <part name="cart" interface="nes_cart"> |
| 63322 | <feature name="slot" value="unl_bb" /> |
| 63323 | <feature name="pcb" value="UNL-BB" /> |
| 63324 | <feature name="mirroring" value="vertical" /> |
| 63325 | <dataarea name="chr" size="16384"> |
| 63326 | <rom name="prowres (fds conversion, le05 simplified)(unl)[u][!].chr" size="16384" crc="58d4719f" sha1="372c4873696578ab56bdc8ec8133099194a864b7" offset="00000" status="baddump" /> |
| 63327 | </dataarea> |
63320 | 63328 | <dataarea name="prg" size="32768"> |
63321 | | <rom name="ice climber (j) (fds conversion).prg" size="32768" crc="d8ec6353" sha1="7409b32043a0d23b5b44b96f14214bef5ba4d9ca" offset="00000" status="baddump" /> |
| 63329 | <rom name="prowres (fds conversion, le05 simplified)(unl)[u][!].prg" size="32768" crc="7d219257" sha1="d46a9d1752204069cb4e0cc04338b5aa4ca54568" offset="00000" status="baddump" /> |
63322 | 63330 | </dataarea> |
| 63331 | </part> |
| 63332 | </software> |
| 63333 | |
| 63334 | <software name="smb2lf" cloneof="smb2fds"> |
| 63335 | <description>Super Mario Bros. 2 (LF36)</description> |
| 63336 | <year>19??</year> |
| 63337 | <publisher><pirate></publisher> |
| 63338 | <part name="cart" interface="nes_cart"> |
| 63339 | <feature name="slot" value="smb2j" /> |
| 63340 | <feature name="pcb" value="BTL-SMB2C" /> |
| 63341 | <feature name="mirroring" value="vertical" /> |
| 63342 | <dataarea name="chr" size="8192"> |
| 63343 | <rom name="super mario bros. 2 (j) (lf36).chr" size="8192" crc="f9fe2697" sha1="f5ec342a44c909d99d46ae311a4b77ed00e645eb" offset="00000" status="baddump" /> |
| 63344 | </dataarea> |
| 63345 | <dataarea name="prg" size="81920"> |
| 63346 | <rom name="super mario bros. 2 (j) (lf36).prg" size="81920" crc="25e0b714" sha1="7e7711b911f10b4ef325b7b25a770e1de188fe27" offset="00000" status="baddump" /> |
| 63347 | </dataarea> |
| 63348 | </part> |
| 63349 | </software> |
| 63350 | |
| 63351 | <software name="smb2k" cloneof="smb2fds"> |
| 63352 | <description>Super Mario Bros. 2 (Kaiser)</description> |
| 63353 | <year>19??</year> |
| 63354 | <publisher><pirate></publisher> |
| 63355 | <part name="cart" interface="nes_cart"> |
| 63356 | <feature name="slot" value="ks7032" /> |
| 63357 | <feature name="pcb" value="UNL-KS7032" /> |
| 63358 | <feature name="mirroring" value="vertical" /> |
| 63359 | <dataarea name="prg" size="131072"> |
| 63360 | <rom name="super mario bros. 2 (j) (kaiser).prg" size="131072" crc="281326ed" sha1="dc8ddb78cbb575623b701954df951f05e81388ea" offset="00000" status="baddump" /> |
| 63361 | </dataarea> |
63323 | 63362 | <!-- 8k VRAM on cartridge --> |
63324 | 63363 | <dataarea name="vram" size="8192"> |
63325 | 63364 | </dataarea> |
63326 | 63365 | </part> |
63327 | 63366 | </software> |
63328 | 63367 | |
63329 | | <software name="icehfds" supported="no"> |
63330 | | <description>Ice Hockey (Asia, FDS conversion)</description> |
| 63368 | <software name="smb2h" cloneof="smb"> |
| 63369 | <description>Super Mario Bros. 2 (Super Mario Bros. Pirate)</description> |
63331 | 63370 | <year>19??</year> |
63332 | 63371 | <publisher><pirate></publisher> |
63333 | 63372 | <part name="cart" interface="nes_cart"> |
63334 | 63373 | <feature name="slot" value="nrom" /> |
63335 | 63374 | <feature name="pcb" value="NES-NROM-256" /> |
| 63375 | <feature name="mirroring" value="vertical" /> |
63336 | 63376 | <dataarea name="chr" size="8192"> |
63337 | | <rom name="ice hockey (j) (fds conversion).chr" size="8192" crc="f10fc90a" sha1="1a2a657267de1f5bdf284d1b69ed7d4895dfb281" offset="00000" status="baddump" /> |
| 63377 | <rom name="super mario bros. (title hack) (unl).chr" size="8192" crc="b5a7524b" sha1="791b1c93d58c5d94df803449a2ce3e118d1adc50" offset="00000" status="baddump" /> |
63338 | 63378 | </dataarea> |
63339 | 63379 | <dataarea name="prg" size="32768"> |
63340 | | <rom name="ice hockey (j) (fds conversion).prg" size="32768" crc="c02e5f1f" sha1="5244c2d123e02914590791c9ffc5e4f945d801ff" offset="00000" status="baddump" /> |
| 63380 | <rom name="super mario bros. (title hack) (unl).prg" size="32768" crc="ae15ebae" sha1="dc5bbe66886c0934c16a9cdedbf474f6bc5215a1" offset="00000" status="baddump" /> |
63341 | 63381 | </dataarea> |
63342 | 63382 | </part> |
63343 | 63383 | </software> |
63344 | 63384 | |
63345 | | <software name="meikyfds"> |
63346 | | <description>Meikyuu Jiin Dababa (Asia, FDS conversion)</description> |
| 63385 | <software name="smb2m" cloneof="smb"> |
| 63386 | <description>Super Mario Bros Malee 2</description> |
63347 | 63387 | <year>19??</year> |
63348 | 63388 | <publisher><pirate></publisher> |
63349 | 63389 | <part name="cart" interface="nes_cart"> |
63350 | | <feature name="slot" value="whirl2706" /> |
63351 | | <feature name="pcb" value="WHIRLWIND-2706" /> |
| 63390 | <feature name="slot" value="mmalee2" /> |
| 63391 | <feature name="pcb" value="BTL-MARIO1-MALEE2" /> |
63352 | 63392 | <feature name="mirroring" value="vertical" /> |
| 63393 | <dataarea name="chr" size="8192"> |
| 63394 | <rom name="super mario bros malee 2 (unl) [u].chr" size="8192" crc="b5a7524b" sha1="791b1c93d58c5d94df803449a2ce3e118d1adc50" offset="00000" status="baddump" /> |
| 63395 | </dataarea> |
| 63396 | <dataarea name="prg" size="34816"> |
| 63397 | <rom name="super mario bros malee 2 (unl) [u].prg0" size="32768" crc="ddf910b2" sha1="3977f975b2db0fba6cce8621d7d49a2b86ff2c43" offset="0x0000" status="baddump" /> |
| 63398 | <rom name="super mario bros malee 2 (unl) [u].prg1" size="2048" crc="2ee84bd0" sha1="51239bdc89ee3f1b7c9b17a63bff1fc20a36b244" offset="0x8000" status="baddump" /> |
| 63399 | </dataarea> |
| 63400 | <!-- 2k WRAM on cartridge --> |
| 63401 | <dataarea name="wram" size="2048"> |
| 63402 | </dataarea> |
| 63403 | </part> |
| 63404 | </software> |
| 63405 | |
| 63406 | <software name="smb2fdsa" cloneof="smb2fds"> |
| 63407 | <description>Super Mario Bros. 2 (FDS conversion)</description> |
| 63408 | <year>19??</year> |
| 63409 | <publisher><pirate></publisher> |
| 63410 | <part name="cart" interface="nes_cart"> |
| 63411 | <feature name="slot" value="smb2ja" /> |
| 63412 | <feature name="pcb" value="BTL-SMB2A" /> |
| 63413 | <feature name="mirroring" value="vertical" /> |
| 63414 | <dataarea name="chr" size="8192"> |
| 63415 | <rom name="super mario bros 2 (lost levels) (unl).chr" size="8192" crc="f9fe2697" sha1="f5ec342a44c909d99d46ae311a4b77ed00e645eb" offset="00000" status="baddump" /> |
| 63416 | </dataarea> |
| 63417 | <dataarea name="prg" size="65536"> |
| 63418 | <rom name="super mario bros 2 (lost levels) (unl).prg" size="65536" crc="bead254c" sha1="167e2b9629edefadea54564accaeceb4c08afc55" offset="00000" status="baddump" /> |
| 63419 | </dataarea> |
| 63420 | </part> |
| 63421 | </software> |
| 63422 | |
| 63423 | <software name="smb2fdsb" cloneof="smb2fds"> |
| 63424 | <description>Super Mario Bros. 2 (FDS conversion, Alt PCB)</description> |
| 63425 | <year>19??</year> |
| 63426 | <publisher><pirate></publisher> |
| 63427 | <part name="cart" interface="nes_cart"> |
| 63428 | <feature name="slot" value="smb2jb" /> |
| 63429 | <feature name="pcb" value="BTL-SMB2B" /> |
| 63430 | <feature name="mirroring" value="vertical" /> |
63353 | 63431 | <dataarea name="prg" size="131072"> |
63354 | | <rom name="meikyuu jiin dababa (fds conversion) (unl).prg" size="131072" crc="d8012992" sha1="5f0943dc8145542abc70bf20e4754b3c08653399" offset="00000" status="baddump" /> |
| 63432 | <rom name="super mario bros. (alt levels).prg" size="131072" crc="313491ed" sha1="0ffe5aa3fbee72601bd629849a30379937d170d7" offset="00000" status="baddump" /> |
63355 | 63433 | </dataarea> |
63356 | 63434 | <!-- 8k VRAM on cartridge --> |
63357 | 63435 | <dataarea name="vram" size="8192"> |
r22513 | r22514 | |
63359 | 63437 | </part> |
63360 | 63438 | </software> |
63361 | 63439 | |
63362 | | <software name="montyfds"> |
63363 | | <description>Monty no Doki Doki Daidassou (Asia, FDS conversion)</description> |
| 63440 | <software name="tobidfds"> |
| 63441 | <description>Tobidase Daisakusen (Asia, FDS conversion)</description> |
63364 | 63442 | <year>19??</year> |
63365 | 63443 | <publisher><pirate></publisher> |
63366 | 63444 | <part name="cart" interface="nes_cart"> |
63367 | | <feature name="slot" value="unl_lh32" /> |
63368 | | <feature name="pcb" value="UNL-LH32" /> |
| 63445 | <feature name="slot" value="tobidase" /> |
| 63446 | <feature name="pcb" value="BTL-TOBIDASEDAISAKUSEN" /> |
63369 | 63447 | <feature name="mirroring" value="vertical" /> |
63370 | | <dataarea name="prg" size="131072"> |
63371 | | <rom name="monty no doki doki daidassou (fds conversion)(unl)[u][!].prg" size="131072" crc="09e3dcb4" sha1="ffb4706e49b826c6cdd12e502e8ae94fc9810b7f" offset="00000" status="baddump" /> |
| 63448 | <dataarea name="prg" size="98304"> |
| 63449 | <rom name="tobidase daisakusen (fds conversion).prg" size="98304" crc="ee82b3ea" sha1="7fcf28158dfb991aa47d35fdec1512a7947c989e" offset="00000" status="baddump" /> |
63372 | 63450 | </dataarea> |
63373 | 63451 | <!-- 8k VRAM on cartridge --> |
63374 | 63452 | <dataarea name="vram" size="8192"> |
63375 | 63453 | </dataarea> |
| 63454 | </part> |
| 63455 | </software> |
| 63456 | |
| 63457 | <software name="vballfdsa" cloneof="volley" supported="no"> |
| 63458 | <description>Volleyball (Asia, FDS conversion, Alt)</description> |
| 63459 | <year>19??</year> |
| 63460 | <publisher><pirate></publisher> |
| 63461 | <part name="cart" interface="nes_cart"> |
| 63462 | <feature name="slot" value="smb2j" /> |
| 63463 | <feature name="pcb" value="UNL-SMB2J" /> |
| 63464 | <dataarea name="chr" size="8192"> |
| 63465 | <rom name="volleyball (fds conversion) (unl) [u].chr" size="8192" crc="0101a6fb" sha1="fd7338e3802b897172f0f22e7f5a191bc68dd6d2" offset="00000" status="baddump" /> |
| 63466 | </dataarea> |
| 63467 | <dataarea name="prg" size="32768"> |
| 63468 | <rom name="volleyball (fds conversion) (unl) [u].prg" size="32768" crc="d4fb2cd8" sha1="56cacee106de0116857421081c778ebc9d480aa0" offset="00000" status="baddump" /> |
| 63469 | </dataarea> |
| 63470 | </part> |
| 63471 | </software> |
| 63472 | |
| 63473 | <software name="zanacfds"> |
| 63474 | <description>Zanac (Asia, FDS conversion)</description> |
| 63475 | <year>19??</year> |
| 63476 | <publisher>Whirlwind Manu</publisher> |
| 63477 | <part name="cart" interface="nes_cart"> |
| 63478 | <feature name="slot" value="09034a" /> |
| 63479 | <feature name="pcb" value="UNL-SMB2J" /> |
| 63480 | <dataarea name="prg" size="49152"> |
| 63481 | <rom name="zanac (kaiser) (fds conversion) (unl).prg0" size="32768" crc="e485c52f" sha1="257dffd53691b70b26bd2b6770dd7ca38f2b917a" offset="0x0000" status="baddump" /> |
| 63482 | <rom name="zanac (kaiser) (fds conversion) (unl).prg1" size="16384" crc="bedba7cc" sha1="8d759c768b7e93ca852f107f4ce48c2c979fd618" offset="0x8000" status="baddump" /> |
| 63483 | </dataarea> |
| 63484 | <!-- 8k VRAM on cartridge --> |
| 63485 | <dataarea name="vram" size="8192"> |
| 63486 | </dataarea> |
| 63487 | </part> |
| 63488 | </software> |
| 63489 | |
| 63490 | <software name="zanacfdsa" cloneof="zanacfds"> |
| 63491 | <description>Zanac (Asia, FDS conversion, Alt)</description> |
| 63492 | <year>19??</year> |
| 63493 | <publisher>Kaiser</publisher> |
| 63494 | <part name="cart" interface="nes_cart"> |
| 63495 | <feature name="slot" value="ks7012" /> |
| 63496 | <feature name="pcb" value="UNL-KS7012" /> |
| 63497 | <dataarea name="prg" size="65536"> |
| 63498 | <rom name="zanac (kaiser) (fds conversion) (unl).prg" size="65536" crc="e912ce65" sha1="a92278c445cf02c88652a608327a48f59fe83979" offset="00000" status="baddump" /> |
| 63499 | </dataarea> |
| 63500 | <!-- 8k VRAM on cartridge --> |
| 63501 | <dataarea name="vram" size="8192"> |
| 63502 | </dataarea> |
63376 | 63503 | <!-- 8k WRAM on cartridge --> |
63377 | 63504 | <dataarea name="wram" size="8192"> |
63378 | 63505 | </dataarea> |
63379 | 63506 | </part> |
63380 | 63507 | </software> |
63381 | 63508 | |
63382 | | <software name="othelfds" supported="no"> |
63383 | | <description>Othello (Asia, FDS conversion)</description> |
| 63509 | |
| 63510 | <!-- Are these supposed to work? --> |
| 63511 | |
| 63512 | |
| 63513 | <software name="bballfds" supported="no"> |
| 63514 | <description>Baseball (Asia, FDS conversion?)</description> |
63384 | 63515 | <year>19??</year> |
| 63516 | <publisher><unknown></publisher> |
| 63517 | <part name="cart" interface="nes_cart"> |
| 63518 | <feature name="slot" value="unknown" /> |
| 63519 | <feature name="pcb" value="UNKNOWN" /> <!-- mapper 253?!? --> |
| 63520 | <dataarea name="prg" size="81920"> |
| 63521 | <rom name="baseball.prg" size="81920" crc="30296e0c" sha1="61ccce33b50ab1d6aab46cb52ee1ecaaaa3fdf0c" offset="00000" status="baddump" /> |
| 63522 | </dataarea> |
| 63523 | <!-- 8k VRAM on cartridge --> |
| 63524 | <dataarea name="vram" size="8192"> |
| 63525 | </dataarea> |
| 63526 | <!-- 8k WRAM on cartridge --> |
| 63527 | <dataarea name="wram" size="8192"> |
| 63528 | </dataarea> |
| 63529 | </part> |
| 63530 | </software> |
| 63531 | |
| 63532 | <!-- FIXME: which board should use this game?? --> |
| 63533 | <software name="cluclud" supported="no"> |
| 63534 | <description>Clu Clu Land D (Asia, FDS conversion)</description> |
| 63535 | <year>19??</year> |
63385 | 63536 | <publisher><pirate></publisher> |
63386 | 63537 | <part name="cart" interface="nes_cart"> |
| 63538 | <feature name="slot" value="test" /> |
| 63539 | <feature name="pcb" value="UNKNOWN" /> |
| 63540 | <dataarea name="chr" size="8192"> |
| 63541 | <rom name="clu clu land d (j) (fds conversion).chr" size="8192" crc="64a75549" sha1="7c950e89e6df0915820fe0c3e6750c085a8aaf83" offset="00000" status="baddump" /> |
| 63542 | </dataarea> |
| 63543 | <dataarea name="prg" size="32768"> |
| 63544 | <rom name="clu clu land d (j) (fds conversion).prg" size="32768" crc="84594123" sha1="54fce5fbfbb3ae47ce3a62f9092c0ff204cf1cec" offset="00000" status="baddump" /> |
| 63545 | </dataarea> |
| 63546 | </part> |
| 63547 | </software> |
| 63548 | |
| 63549 | <software name="iceclfds" supported="no"> |
| 63550 | <description>Ice Climber (Asia, FDS conversion)</description> |
| 63551 | <year>19??</year> |
| 63552 | <publisher><pirate></publisher> |
| 63553 | <part name="cart" interface="nes_cart"> |
63387 | 63554 | <feature name="slot" value="nrom" /> |
63388 | 63555 | <feature name="pcb" value="NES-NROM-256" /> |
| 63556 | <dataarea name="prg" size="32768"> |
| 63557 | <rom name="ice climber (j) (fds conversion).prg" size="32768" crc="d8ec6353" sha1="7409b32043a0d23b5b44b96f14214bef5ba4d9ca" offset="00000" status="baddump" /> |
| 63558 | </dataarea> |
| 63559 | <!-- 8k VRAM on cartridge --> |
| 63560 | <dataarea name="vram" size="8192"> |
| 63561 | </dataarea> |
| 63562 | </part> |
| 63563 | </software> |
| 63564 | |
| 63565 | <software name="icehfds" supported="no"> |
| 63566 | <description>Ice Hockey (Asia, FDS conversion)</description> |
| 63567 | <year>19??</year> |
| 63568 | <publisher><pirate></publisher> |
| 63569 | <part name="cart" interface="nes_cart"> |
| 63570 | <feature name="slot" value="nrom" /> |
| 63571 | <feature name="pcb" value="NES-NROM-256" /> |
63389 | 63572 | <dataarea name="chr" size="8192"> |
63390 | | <rom name="othello (j) (fds conversion).chr" size="8192" crc="2f7856c8" sha1="4b48c4f4782ab8e13cba6073e3c7e19f51017774" offset="00000" status="baddump" /> |
| 63573 | <rom name="ice hockey (j) (fds conversion).chr" size="8192" crc="f10fc90a" sha1="1a2a657267de1f5bdf284d1b69ed7d4895dfb281" offset="00000" status="baddump" /> |
63391 | 63574 | </dataarea> |
63392 | 63575 | <dataarea name="prg" size="32768"> |
63393 | | <rom name="othello (j) (fds conversion).prg" size="32768" crc="55976042" sha1="6f7f626d3666c9890b62e64b3b5b40fd65ccc208" offset="00000" status="baddump" /> |
| 63576 | <rom name="ice hockey (j) (fds conversion).prg" size="32768" crc="c02e5f1f" sha1="5244c2d123e02914590791c9ffc5e4f945d801ff" offset="00000" status="baddump" /> |
63394 | 63577 | </dataarea> |
63395 | 63578 | </part> |
63396 | 63579 | </software> |
63397 | 63580 | |
63398 | | <software name="prowrfds"> |
63399 | | <description>ProWres - Famicom Wrestling Association (Asia, FDS conversion)</description> |
| 63581 | <software name="othelfds" supported="no"> |
| 63582 | <description>Othello (Asia, FDS conversion)</description> |
63400 | 63583 | <year>19??</year> |
63401 | 63584 | <publisher><pirate></publisher> |
63402 | 63585 | <part name="cart" interface="nes_cart"> |
63403 | | <feature name="slot" value="unl_bb" /> |
63404 | | <feature name="pcb" value="UNL-BB" /> |
63405 | | <feature name="mirroring" value="vertical" /> |
63406 | | <dataarea name="chr" size="16384"> |
63407 | | <rom name="prowres (fds conversion, le05 simplified)(unl)[u][!].chr" size="16384" crc="58d4719f" sha1="372c4873696578ab56bdc8ec8133099194a864b7" offset="00000" status="baddump" /> |
| 63586 | <feature name="slot" value="nrom" /> |
| 63587 | <feature name="pcb" value="NES-NROM-256" /> |
| 63588 | <dataarea name="chr" size="8192"> |
| 63589 | <rom name="othello (j) (fds conversion).chr" size="8192" crc="2f7856c8" sha1="4b48c4f4782ab8e13cba6073e3c7e19f51017774" offset="00000" status="baddump" /> |
63408 | 63590 | </dataarea> |
63409 | 63591 | <dataarea name="prg" size="32768"> |
63410 | | <rom name="prowres (fds conversion, le05 simplified)(unl)[u][!].prg" size="32768" crc="7d219257" sha1="d46a9d1752204069cb4e0cc04338b5aa4ca54568" offset="00000" status="baddump" /> |
| 63592 | <rom name="othello (j) (fds conversion).prg" size="32768" crc="55976042" sha1="6f7f626d3666c9890b62e64b3b5b40fd65ccc208" offset="00000" status="baddump" /> |
63411 | 63593 | </dataarea> |
63412 | 63594 | </part> |
63413 | 63595 | </software> |
r22513 | r22514 | |
63495 | 63677 | </part> |
63496 | 63678 | </software> |
63497 | 63679 | |
63498 | | <software name="tobidfds"> |
63499 | | <description>Tobidase Daisakusen (Asia, FDS conversion)</description> |
| 63680 | <software name="smb2fdsc" cloneof="smb2fds" supported="no"> |
| 63681 | <description>Super Mario Bros. 2 (FDS pirate, Alt 3)</description> |
63500 | 63682 | <year>19??</year> |
63501 | 63683 | <publisher><pirate></publisher> |
63502 | 63684 | <part name="cart" interface="nes_cart"> |
63503 | | <feature name="slot" value="tobidase" /> |
63504 | | <feature name="pcb" value="BTL-TOBIDASEDAISAKUSEN" /> |
| 63685 | <feature name="slot" value="smb2j" /> |
| 63686 | <feature name="pcb" value="UNL-SMB2J" /> |
63505 | 63687 | <feature name="mirroring" value="vertical" /> |
63506 | | <dataarea name="prg" size="98304"> |
63507 | | <rom name="tobidase daisakusen (fds conversion).prg" size="98304" crc="ee82b3ea" sha1="7fcf28158dfb991aa47d35fdec1512a7947c989e" offset="00000" status="baddump" /> |
| 63688 | <dataarea name="chr" size="8192"> |
| 63689 | <rom name="super mario bros. 2j (unl) [u].chr" size="8192" crc="f9fe2697" sha1="f5ec342a44c909d99d46ae311a4b77ed00e645eb" offset="00000" status="baddump" /> |
63508 | 63690 | </dataarea> |
63509 | | <!-- 8k VRAM on cartridge --> |
63510 | | <dataarea name="vram" size="8192"> |
| 63691 | <dataarea name="prg" size="81920"> |
| 63692 | <rom name="super mario bros. 2j (unl) [u].prg" size="81920" crc="04f65d2f" sha1="1168f5f0642dc5473c1fa5ff6ca3091cd33da860" offset="00000" status="baddump" /> |
63511 | 63693 | </dataarea> |
63512 | 63694 | </part> |
63513 | 63695 | </software> |
r22513 | r22514 | |
63563 | 63745 | </part> |
63564 | 63746 | </software> |
63565 | 63747 | |
63566 | | <software name="vballfdsa" cloneof="volley" supported="no"> |
63567 | | <description>Volleyball (Asia, FDS conversion, Alt)</description> |
63568 | | <year>19??</year> |
63569 | | <publisher><pirate></publisher> |
63570 | | <part name="cart" interface="nes_cart"> |
63571 | | <feature name="slot" value="smb2j" /> |
63572 | | <feature name="pcb" value="UNL-SMB2J" /> |
63573 | | <dataarea name="chr" size="8192"> |
63574 | | <rom name="volleyball (fds conversion) (unl) [u].chr" size="8192" crc="0101a6fb" sha1="fd7338e3802b897172f0f22e7f5a191bc68dd6d2" offset="00000" status="baddump" /> |
63575 | | </dataarea> |
63576 | | <dataarea name="prg" size="32768"> |
63577 | | <rom name="volleyball (fds conversion) (unl) [u].prg" size="32768" crc="d4fb2cd8" sha1="56cacee106de0116857421081c778ebc9d480aa0" offset="00000" status="baddump" /> |
63578 | | </dataarea> |
63579 | | </part> |
63580 | | </software> |
63581 | 63748 | |
63582 | | <software name="zanacfds" supported="no"> |
63583 | | <description>Zanac (Asia, FDS conversion)</description> |
63584 | | <year>19??</year> |
63585 | | <publisher>Whirlwind Manu</publisher> |
63586 | | <part name="cart" interface="nes_cart"> |
63587 | | <feature name="slot" value="smb2j" /> |
63588 | | <feature name="pcb" value="UNL-SMB2J" /> |
63589 | | <dataarea name="prg" size="49152"> |
63590 | | <rom name="zanac (kaiser) (fds conversion) (unl).prg0" size="32768" crc="e485c52f" sha1="257dffd53691b70b26bd2b6770dd7ca38f2b917a" offset="0x0000" status="baddump" /> |
63591 | | <rom name="zanac (kaiser) (fds conversion) (unl).prg1" size="16384" crc="bedba7cc" sha1="8d759c768b7e93ca852f107f4ce48c2c979fd618" offset="0x8000" status="baddump" /> |
63592 | | </dataarea> |
63593 | | <!-- 8k VRAM on cartridge --> |
63594 | | <dataarea name="vram" size="8192"> |
63595 | | </dataarea> |
63596 | | </part> |
63597 | | </software> |
63598 | | |
63599 | | <software name="zanacfdsa" cloneof="zanacfds"> |
63600 | | <description>Zanac (Asia, FDS conversion, Alt)</description> |
63601 | | <year>19??</year> |
63602 | | <publisher>Kaiser</publisher> |
63603 | | <part name="cart" interface="nes_cart"> |
63604 | | <feature name="slot" value="ks7012" /> |
63605 | | <feature name="pcb" value="UNL-KS7012" /> |
63606 | | <dataarea name="prg" size="65536"> |
63607 | | <rom name="zanac (kaiser) (fds conversion) (unl).prg" size="65536" crc="e912ce65" sha1="a92278c445cf02c88652a608327a48f59fe83979" offset="00000" status="baddump" /> |
63608 | | </dataarea> |
63609 | | <!-- 8k VRAM on cartridge --> |
63610 | | <dataarea name="vram" size="8192"> |
63611 | | </dataarea> |
63612 | | <!-- 8k WRAM on cartridge --> |
63613 | | <dataarea name="wram" size="8192"> |
63614 | | </dataarea> |
63615 | | </part> |
63616 | | </software> |
63617 | | |
63618 | 63749 | <!-- DR PCJR --> |
63619 | 63750 | |
63620 | 63751 | <software name="architct"> |
r22513 | r22514 | |
69285 | 69416 | </part> |
69286 | 69417 | </software> |
69287 | 69418 | |
69288 | | <software name="smb2fdsa" cloneof="smb2fds"> |
69289 | | <description>Super Mario Bros. 2 (FDS pirate, Alt)</description> |
69290 | | <year>19??</year> |
69291 | | <publisher><pirate></publisher> |
69292 | | <part name="cart" interface="nes_cart"> |
69293 | | <feature name="slot" value="smb2ja" /> |
69294 | | <feature name="pcb" value="BTL-SMB2A" /> |
69295 | | <feature name="mirroring" value="vertical" /> |
69296 | | <dataarea name="chr" size="8192"> |
69297 | | <rom name="super mario bros 2 (lost levels) (unl).chr" size="8192" crc="f9fe2697" sha1="f5ec342a44c909d99d46ae311a4b77ed00e645eb" offset="00000" status="baddump" /> |
69298 | | </dataarea> |
69299 | | <dataarea name="prg" size="65536"> |
69300 | | <rom name="super mario bros 2 (lost levels) (unl).prg" size="65536" crc="bead254c" sha1="167e2b9629edefadea54564accaeceb4c08afc55" offset="00000" status="baddump" /> |
69301 | | </dataarea> |
69302 | | </part> |
69303 | | </software> |
69304 | | |
69305 | | <software name="smb2fdsb" cloneof="smb2fds" supported="partial"> |
69306 | | <description>Super Mario Bros. 2 (FDS pirate, Alt 2)</description> |
69307 | | <year>19??</year> |
69308 | | <publisher><pirate></publisher> |
69309 | | <part name="cart" interface="nes_cart"> |
69310 | | <feature name="slot" value="smb2jb" /> |
69311 | | <feature name="pcb" value="BTL-SMB2B" /> |
69312 | | <feature name="mirroring" value="vertical" /> |
69313 | | <dataarea name="prg" size="131072"> |
69314 | | <rom name="super mario bros. (alt levels).prg" size="131072" crc="313491ed" sha1="0ffe5aa3fbee72601bd629849a30379937d170d7" offset="00000" status="baddump" /> |
69315 | | </dataarea> |
69316 | | <!-- 8k VRAM on cartridge --> |
69317 | | <dataarea name="vram" size="8192"> |
69318 | | </dataarea> |
69319 | | </part> |
69320 | | </software> |
69321 | | |
69322 | | <software name="smb2fdsc" cloneof="smb2fds" supported="no"> |
69323 | | <description>Super Mario Bros. 2 (FDS pirate, Alt 3)</description> |
69324 | | <year>19??</year> |
69325 | | <publisher><pirate></publisher> |
69326 | | <part name="cart" interface="nes_cart"> |
69327 | | <feature name="slot" value="smb2jc" /> |
69328 | | <feature name="pcb" value="UNL-SMB2J" /> |
69329 | | <feature name="mirroring" value="vertical" /> |
69330 | | <dataarea name="chr" size="8192"> |
69331 | | <rom name="super mario bros. 2j (unl) [u].chr" size="8192" crc="f9fe2697" sha1="f5ec342a44c909d99d46ae311a4b77ed00e645eb" offset="00000" status="baddump" /> |
69332 | | </dataarea> |
69333 | | <dataarea name="prg" size="81920"> |
69334 | | <rom name="super mario bros. 2j (unl) [u].prg" size="81920" crc="04f65d2f" sha1="1168f5f0642dc5473c1fa5ff6ca3091cd33da860" offset="00000" status="baddump" /> |
69335 | | </dataarea> |
69336 | | </part> |
69337 | | </software> |
69338 | | |
69339 | | <software name="smb2lf" cloneof="smb2fds" supported="no"> |
69340 | | <description>Super Mario Bros. 2 (LF36)</description> |
69341 | | <year>19??</year> |
69342 | | <publisher><pirate></publisher> |
69343 | | <part name="cart" interface="nes_cart"> |
69344 | | <feature name="slot" value="smb2jc" /> |
69345 | | <feature name="pcb" value="BTL-SMB2C" /> |
69346 | | <feature name="mirroring" value="vertical" /> |
69347 | | <dataarea name="chr" size="8192"> |
69348 | | <rom name="super mario bros. 2 (j) (lf36).chr" size="8192" crc="f9fe2697" sha1="f5ec342a44c909d99d46ae311a4b77ed00e645eb" offset="00000" status="baddump" /> |
69349 | | </dataarea> |
69350 | | <dataarea name="prg" size="81920"> |
69351 | | <rom name="super mario bros. 2 (j) (lf36).prg" size="81920" crc="25e0b714" sha1="7e7711b911f10b4ef325b7b25a770e1de188fe27" offset="00000" status="baddump" /> |
69352 | | </dataarea> |
69353 | | </part> |
69354 | | </software> |
69355 | | |
69356 | | <software name="smb2k" cloneof="smb2fds"> |
69357 | | <description>Super Mario Bros. 2 (Kaiser)</description> |
69358 | | <year>19??</year> |
69359 | | <publisher><pirate></publisher> |
69360 | | <part name="cart" interface="nes_cart"> |
69361 | | <feature name="slot" value="ks7032" /> |
69362 | | <feature name="pcb" value="UNL-KS7032" /> |
69363 | | <feature name="mirroring" value="vertical" /> |
69364 | | <dataarea name="prg" size="131072"> |
69365 | | <rom name="super mario bros. 2 (j) (kaiser).prg" size="131072" crc="281326ed" sha1="dc8ddb78cbb575623b701954df951f05e81388ea" offset="00000" status="baddump" /> |
69366 | | </dataarea> |
69367 | | <!-- 8k VRAM on cartridge --> |
69368 | | <dataarea name="vram" size="8192"> |
69369 | | </dataarea> |
69370 | | </part> |
69371 | | </software> |
69372 | | |
69373 | | <software name="smb2h" cloneof="smb"> |
69374 | | <description>Super Mario Bros. 2 (Super Mario Bros. Pirate)</description> |
69375 | | <year>19??</year> |
69376 | | <publisher><pirate></publisher> |
69377 | | <part name="cart" interface="nes_cart"> |
69378 | | <feature name="slot" value="nrom" /> |
69379 | | <feature name="pcb" value="NES-NROM-256" /> |
69380 | | <feature name="mirroring" value="vertical" /> |
69381 | | <dataarea name="chr" size="8192"> |
69382 | | <rom name="super mario bros. (title hack) (unl).chr" size="8192" crc="b5a7524b" sha1="791b1c93d58c5d94df803449a2ce3e118d1adc50" offset="00000" status="baddump" /> |
69383 | | </dataarea> |
69384 | | <dataarea name="prg" size="32768"> |
69385 | | <rom name="super mario bros. (title hack) (unl).prg" size="32768" crc="ae15ebae" sha1="dc5bbe66886c0934c16a9cdedbf474f6bc5215a1" offset="00000" status="baddump" /> |
69386 | | </dataarea> |
69387 | | </part> |
69388 | | </software> |
69389 | | |
69390 | | <software name="smb2m" cloneof="smb" supported="no"> |
69391 | | <description>Super Mario Bros Malee 2 (Super Mario Bros. Pirate)</description> |
69392 | | <year>19??</year> |
69393 | | <publisher><pirate></publisher> |
69394 | | <part name="cart" interface="nes_cart"> |
69395 | | <feature name="slot" value="mmalee2" /> |
69396 | | <feature name="pcb" value="BTL-MARIO1-MALEE2" /> |
69397 | | <feature name="mirroring" value="vertical" /> |
69398 | | <dataarea name="chr" size="8192"> |
69399 | | <rom name="super mario bros malee 2 (unl) [u].chr" size="8192" crc="b5a7524b" sha1="791b1c93d58c5d94df803449a2ce3e118d1adc50" offset="00000" status="baddump" /> |
69400 | | </dataarea> |
69401 | | <dataarea name="prg" size="34816"> |
69402 | | <rom name="super mario bros malee 2 (unl) [u].prg0" size="32768" crc="ddf910b2" sha1="3977f975b2db0fba6cce8621d7d49a2b86ff2c43" offset="0x0000" status="baddump" /> |
69403 | | <rom name="super mario bros malee 2 (unl) [u].prg1" size="2048" crc="2ee84bd0" sha1="51239bdc89ee3f1b7c9b17a63bff1fc20a36b244" offset="0x8000" status="baddump" /> |
69404 | | </dataarea> |
69405 | | <!-- 2k WRAM on cartridge --> |
69406 | | <dataarea name="wram" size="2048"> |
69407 | | </dataarea> |
69408 | | </part> |
69409 | | </software> |
69410 | | |
69411 | 69419 | <!-- could this be a hack?!? --> |
69412 | 69420 | <software name="smb3h" cloneof="smb3"> |
69413 | 69421 | <description>Super Mario Bros. 3 (Pirate)</description> |
trunk/src/mess/machine/nes_bootleg.c
r22513 | r22514 | |
49 | 49 | const device_type NES_SMB2J = &device_creator<nes_smb2j_device>; |
50 | 50 | const device_type NES_SMB2JA = &device_creator<nes_smb2ja_device>; |
51 | 51 | const device_type NES_SMB2JB = &device_creator<nes_smb2jb_device>; |
52 | | const device_type NES_SMB2JC = &device_creator<nes_smb2jc_device>; |
| 52 | const device_type NES_09034A = &device_creator<nes_09034a_device>; |
53 | 53 | const device_type NES_TOBIDASE = &device_creator<nes_tobidase_device>; |
54 | 54 | const device_type NES_LH32 = &device_creator<nes_lh32_device>; |
55 | 55 | const device_type NES_LH10 = &device_creator<nes_lh10_device>; |
r22513 | r22514 | |
110 | 110 | { |
111 | 111 | } |
112 | 112 | |
113 | | nes_smb2jc_device::nes_smb2jc_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) |
114 | | : nes_nrom_device(mconfig, NES_SMB2JC, "NES Cart Super Mario Bros. 2 Jpn (Alt 3) PCB", tag, owner, clock, "nes_smb2jc", __FILE__) |
| 113 | nes_09034a_device::nes_09034a_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) |
| 114 | : nes_nrom_device(mconfig, NES_09034A, "NES Cart 09-034A PCB", tag, owner, clock, "nes_09034a", __FILE__) |
115 | 115 | { |
116 | 116 | } |
117 | 117 | |
r22513 | r22514 | |
287 | 287 | void nes_smb2j_device::device_start() |
288 | 288 | { |
289 | 289 | common_start(); |
| 290 | save_item(NAME(m_irq_enable)); |
| 291 | save_item(NAME(m_irq_count)); |
290 | 292 | } |
291 | 293 | |
292 | 294 | void nes_smb2j_device::pcb_reset() |
293 | 295 | { |
294 | 296 | m_chr_source = m_vrom_chunks ? CHRROM : CHRRAM; |
295 | | prg32(0); |
296 | 297 | chr8(0, m_chr_source); |
| 298 | prg8_89(1); |
| 299 | prg8_ab(0); |
| 300 | prg8_cd(0); |
| 301 | prg8_ef(9); |
| 302 | |
| 303 | m_irq_enable = 0; |
| 304 | m_irq_count = 0; |
297 | 305 | } |
298 | 306 | |
299 | 307 | void nes_smb2ja_device::device_start() |
r22513 | r22514 | |
336 | 344 | m_irq_count = 0; |
337 | 345 | } |
338 | 346 | |
339 | | void nes_smb2jc_device::device_start() |
| 347 | void nes_09034a_device::device_start() |
340 | 348 | { |
341 | 349 | common_start(); |
342 | | save_item(NAME(m_irq_enable)); |
343 | | save_item(NAME(m_irq_count)); |
344 | | save_item(NAME(m_prg_base)); |
| 350 | save_item(NAME(m_reg)); |
345 | 351 | } |
346 | 352 | |
347 | | void nes_smb2jc_device::pcb_reset() |
| 353 | void nes_09034a_device::pcb_reset() |
348 | 354 | { |
349 | 355 | m_chr_source = m_vrom_chunks ? CHRROM : CHRRAM; |
| 356 | prg32(0); |
350 | 357 | chr8(0, m_chr_source); |
351 | | prg8_89(1); |
352 | | prg8_ab(0); |
353 | | prg8_cd(0); |
354 | | prg8_ef(9); |
355 | | |
356 | | m_irq_enable = 0; |
357 | | m_irq_count = 0; |
358 | | m_prg_base = 1; |
| 358 | m_reg = 0; |
359 | 359 | } |
360 | 360 | |
361 | | |
362 | 361 | void nes_tobidase_device::device_start() |
363 | 362 | { |
364 | 363 | common_start(); |
r22513 | r22514 | |
889 | 888 | Games: Super Mario Bros. 2 Pirate (LF36) |
890 | 889 | |
891 | 890 | iNES: mapper 43 |
| 891 | |
| 892 | In MESS: Supported. |
892 | 893 | |
893 | | This is actually strange. There is one variant of |
894 | | mappers 43 games which maps the PRG linearly from |
895 | | 0x5000 to 0xffff and then can switch the upper 32K |
896 | | part (0x8000-0xffff). These are games with 80K of |
897 | | PRG (SMB2 conversions only? also the Zanac FDS even |
898 | | if has smaller PRG?). |
899 | | Then there is a second variant (Volleyball FDS) with |
900 | | only 32K of PRG which do not switches PRG (no 0x4200 |
901 | | writes) and probably mirrors lower 12K in 0x5000-0x7fff. |
902 | | The Zanac FDS conversion might not belong to this |
903 | | board... |
904 | | |
905 | | In any case, for the moment we split the two variants |
906 | | in smb2j and smb2jc! |
907 | | |
908 | | In MESS: Unsupported? The only image I found is not working |
909 | | (not even in NEStopia). Partially supported the |
910 | | smb2jc variant (to be investigated...) |
911 | | |
912 | 894 | -------------------------------------------------*/ |
913 | 895 | |
914 | | /* This PCB can map PRG RAM to 0x8000-0xdfff like MMC5 */ |
915 | | void nes_smb2j_device::prgram_bank8_x(int start, int bank) |
| 896 | void nes_smb2j_device::hblank_irq(int scanline, int vblank, int blanked) |
916 | 897 | { |
917 | | assert(start < 4); |
918 | | assert(bank >= 0); |
919 | | |
920 | | bank &= (m_prgram_size / 0x2000) - 1; |
921 | | |
922 | | // PRG RAM is mapped after PRG ROM |
923 | | m_prg_bank[start] = m_prg_chunks + bank; |
924 | | m_prg_bank_mem[start]->set_entry(m_prg_bank[start]); |
925 | | } |
926 | | |
927 | | WRITE8_MEMBER(nes_smb2j_device::write_h) |
928 | | { |
929 | | int bank = (((offset >> 8) & 0x03) * 0x20) + (offset & 0x1f); |
930 | | |
931 | | LOG_MMC(("smb2j_w, offset: %04x, data: %02x\n", offset, data)); |
932 | | |
933 | | set_nt_mirroring((offset & 0x2000) ? PPU_MIRROR_HORZ : PPU_MIRROR_VERT); |
934 | | |
935 | | if (offset & 0x0800) |
936 | | { |
937 | | if (offset & 0x1000) |
938 | | { |
939 | | if (bank * 2 >= m_prg_chunks) |
940 | | { |
941 | | prgram_bank8_x(2, 0); |
942 | | prgram_bank8_x(3, 0); |
943 | | } |
944 | | else |
945 | | { |
946 | | LOG_MMC(("smb2j_w, selecting upper 16KB bank of #%02x\n", bank)); |
947 | | prg16_cdef(2 * bank + 1); |
948 | | } |
949 | | } |
950 | | else |
951 | | { |
952 | | if (bank * 2 >= m_prg_chunks) |
953 | | { |
954 | | prgram_bank8_x(0, 0); |
955 | | prgram_bank8_x(1, 0); |
956 | | } |
957 | | else |
958 | | { |
959 | | LOG_MMC(("smb2j_w, selecting lower 16KB bank of #%02x\n", bank)); |
960 | | prg16_89ab(2 * bank); |
961 | | } |
962 | | } |
963 | | } |
964 | | else |
965 | | { |
966 | | if (bank * 2 >= m_prg_chunks) |
967 | | { |
968 | | prgram_bank8_x(0, 0); |
969 | | prgram_bank8_x(1, 0); |
970 | | prgram_bank8_x(2, 0); |
971 | | prgram_bank8_x(3, 0); |
972 | | } |
973 | | else |
974 | | { |
975 | | LOG_MMC(("smb2j_w, selecting 32KB bank #%02x\n", bank)); |
976 | | prg32(bank); |
977 | | } |
978 | | } |
979 | | } |
980 | | |
981 | | |
982 | | void nes_smb2jc_device::hblank_irq(int scanline, int vblank, int blanked) |
983 | | { |
984 | 898 | if (m_irq_enable) |
985 | 899 | { |
986 | | if ((0xfff - m_irq_count) <= 114) |
| 900 | if ((0xfff - m_irq_count) < 114) |
987 | 901 | { |
988 | | m_irq_count = (m_irq_count + 1) & 0xfff; |
| 902 | m_irq_count = (m_irq_count + 114) & 0xfff; |
989 | 903 | m_irq_enable = 0; |
990 | 904 | machine().device("maincpu")->execute().set_input_line(M6502_IRQ_LINE, HOLD_LINE); |
991 | 905 | } |
r22513 | r22514 | |
993 | 907 | m_irq_count += 114; |
994 | 908 | } |
995 | 909 | } |
996 | | WRITE8_MEMBER(nes_smb2jc_device::write_l) |
| 910 | |
| 911 | WRITE8_MEMBER(nes_smb2j_device::write_l) |
997 | 912 | { |
998 | | LOG_MMC(("smb2jc write_l, offset: %04x, data: %02x\n", offset, data)); |
| 913 | LOG_MMC(("smb2j write_l, offset: %04x, data: %02x\n", offset, data)); |
999 | 914 | offset += 0x100; |
| 915 | |
| 916 | if (offset == 0x122) // $4122 |
| 917 | m_irq_enable = data & 3; // maybe also m_irq_count = 0?!? |
| 918 | } |
1000 | 919 | |
1001 | | if (offset == 0x122) |
| 920 | WRITE8_MEMBER(nes_smb2j_device::write_h) |
| 921 | { |
| 922 | LOG_MMC(("smb2j write_h, offset: %04x, data: %02x\n", offset, data)); |
| 923 | |
| 924 | if (offset == 0x122) // $8122 too? |
1002 | 925 | m_irq_enable = data & 3; |
1003 | 926 | } |
1004 | 927 | |
1005 | | WRITE8_MEMBER(nes_smb2jc_device::write_ex) |
| 928 | WRITE8_MEMBER(nes_smb2j_device::write_ex) |
1006 | 929 | { |
1007 | | LOG_MMC(("smb2jc write_ex, offset: %04x, data: %02x\n", offset, data)); |
1008 | | |
| 930 | LOG_MMC(("smb2j write_ex, offset: %04x, data: %02x\n", offset, data)); |
| 931 | |
1009 | 932 | if (offset == 2) |
1010 | 933 | { |
1011 | 934 | int temp = 0; |
1012 | | |
| 935 | |
1013 | 936 | // According to hardware tests |
1014 | 937 | if (data & 1) |
1015 | 938 | temp = 3; |
1016 | 939 | else |
1017 | 940 | temp = 4 + ((data & 7) >> 1); |
1018 | | |
| 941 | |
1019 | 942 | prg8_cd(temp); |
1020 | 943 | } |
1021 | 944 | } |
1022 | 945 | |
1023 | | READ8_MEMBER(nes_smb2jc_device::read_l) |
| 946 | READ8_MEMBER(nes_smb2j_device::read_l) |
1024 | 947 | { |
1025 | | LOG_MMC(("smb2jc read_l, offset: %04x\n", offset)); |
| 948 | LOG_MMC(("smb2j read_l, offset: %04x\n", offset)); |
1026 | 949 | offset += 0x100; |
1027 | | |
| 950 | |
1028 | 951 | if (offset >= 0x1000) |
1029 | 952 | return m_prg[0x10000 + (offset & 0x0fff)]; |
1030 | | |
1031 | | return ((offset + 0x4000) & 0xff00) >> 8; |
| 953 | |
| 954 | return ((offset + 0x4000) & 0xff00) >> 8; // open bus |
1032 | 955 | } |
1033 | 956 | |
1034 | | READ8_MEMBER(nes_smb2jc_device::read_m) |
| 957 | READ8_MEMBER(nes_smb2j_device::read_m) |
1035 | 958 | { |
1036 | | LOG_MMC(("smb2jc read_m, offset: %04x\n", offset)); |
| 959 | LOG_MMC(("smb2j read_m, offset: %04x\n", offset)); |
1037 | 960 | return m_prg[0x4000 + offset]; |
1038 | 961 | } |
1039 | 962 | |
r22513 | r22514 | |
1107 | 1030 | { |
1108 | 1031 | if (m_irq_enable) |
1109 | 1032 | { |
1110 | | if (m_irq_count < 0x1000) |
| 1033 | if ((0xfff - m_irq_count) < 114) |
1111 | 1034 | { |
1112 | | if ((0x1000 - m_irq_count) <= 114) |
1113 | | machine().device("maincpu")->execute().set_input_line(M6502_IRQ_LINE, HOLD_LINE); |
1114 | | else |
1115 | | m_irq_count += 114; |
| 1035 | m_irq_count = (m_irq_count + 114) & 0xfff; |
| 1036 | m_irq_enable = 0; |
| 1037 | machine().device("maincpu")->execute().set_input_line(M6502_IRQ_LINE, HOLD_LINE); |
1116 | 1038 | } |
1117 | 1039 | else |
1118 | 1040 | m_irq_count += 114; |
1119 | | |
1120 | | m_irq_count &= 0xffff; // according to docs is 16bit counter -> it wraps only after 0xffff? |
1121 | 1041 | } |
1122 | 1042 | } |
1123 | 1043 | |
r22513 | r22514 | |
1161 | 1081 | } |
1162 | 1082 | |
1163 | 1083 | /*------------------------------------------------- |
| 1084 | |
| 1085 | (UNL-)09-034A |
| 1086 | |
| 1087 | Games: Zanac FDS conversion with two PRG chips and |
| 1088 | no CHRROM (apparently also a Volleyball FDS conversion |
| 1089 | but the ones we have do not seem to be on this hw |
| 1090 | Originally dumps were marked as UNL-SMB2J pcb |
1164 | 1091 | |
| 1092 | |
| 1093 | iNES: |
| 1094 | |
| 1095 | In MESS: Supported (for Zanac) |
| 1096 | |
| 1097 | -------------------------------------------------*/ |
| 1098 | |
| 1099 | WRITE8_MEMBER(nes_09034a_device::write_ex) |
| 1100 | { |
| 1101 | LOG_MMC(("09-034a write_ex, offset: %04x, data: %02x\n", offset, data)); |
| 1102 | |
| 1103 | if (offset == 7) // $4027 |
| 1104 | { |
| 1105 | m_reg = data & 1; |
| 1106 | if (m_chr_source == CHRRAM) // zanac has no CHRROM and is wired differently so to access the second PRG chip |
| 1107 | m_reg += 4; |
| 1108 | } |
| 1109 | } |
| 1110 | |
| 1111 | READ8_MEMBER(nes_09034a_device::read_m) |
| 1112 | { |
| 1113 | LOG_MMC(("09-034a read_m, offset: %04x\n", offset)); |
| 1114 | return m_prg[(m_reg * 0x2000) + offset]; |
| 1115 | } |
| 1116 | |
| 1117 | /*------------------------------------------------- |
| 1118 | |
1165 | 1119 | Bootleg Board used for FDS conversion |
1166 | 1120 | |
1167 | 1121 | Games: Tobidase Daisakusen (FDS conversion) |
trunk/src/mess/machine/nes_somari.c
r22513 | r22514 | |
25 | 25 | |
26 | 26 | #define LOG_MMC(x) do { if (VERBOSE) logerror x; } while (0) |
27 | 27 | |
| 28 | #define SOMARI_VRC2_MODE 0 |
| 29 | #define SOMARI_MMC3_MODE 1 |
| 30 | #define SOMARI_MMC1_MODE 2 |
| 31 | #define SOMARI_MMC1_MODE_AGAIN 3 |
28 | 32 | |
| 33 | |
29 | 34 | //------------------------------------------------- |
30 | 35 | // constructor |
31 | 36 | //------------------------------------------------- |
r22513 | r22514 | |
53 | 58 | save_item(NAME(m_prg_mask)); |
54 | 59 | save_item(NAME(m_chr_base)); |
55 | 60 | save_item(NAME(m_chr_mask)); |
| 61 | save_item(NAME(m_mmc3_mirror_reg)); |
56 | 62 | |
57 | 63 | save_item(NAME(m_irq_enable)); |
58 | 64 | save_item(NAME(m_irq_count)); |
r22513 | r22514 | |
67 | 73 | // VRC2 |
68 | 74 | save_item(NAME(m_vrc_prg_bank)); |
69 | 75 | save_item(NAME(m_vrc_vrom_bank)); |
| 76 | save_item(NAME(m_vrc_mirror_reg)); |
70 | 77 | } |
71 | 78 | |
72 | 79 | void nes_somari_device::pcb_reset() |
r22513 | r22514 | |
84 | 91 | m_latch = 0; |
85 | 92 | m_mmc_prg_bank[0] = 0x3c; |
86 | 93 | m_mmc_prg_bank[1] = 0x3d; |
87 | | m_mmc_prg_bank[2] = 0xfe; |
88 | | m_mmc_prg_bank[3] = 0xff; |
| 94 | m_mmc_prg_bank[2] = 0x3e; |
| 95 | m_mmc_prg_bank[3] = 0x3f; |
89 | 96 | m_mmc_vrom_bank[0] = 0x00; |
90 | 97 | m_mmc_vrom_bank[1] = 0x01; |
91 | 98 | m_mmc_vrom_bank[2] = 0x04; |
r22513 | r22514 | |
144 | 151 | -------------------------------------------------*/ |
145 | 152 | |
146 | 153 | // MMC1 Mode emulation |
147 | | void nes_somari_device::mmc1_set_prg() |
148 | | { |
149 | | UINT8 prg_mode = m_mmc1_reg[0] & 0x0c; |
150 | | UINT8 prg_offset = m_mmc1_reg[1] & 0x10; |
151 | | |
152 | | switch (prg_mode) |
153 | | { |
154 | | case 0x00: |
155 | | case 0x04: |
156 | | prg32((prg_offset + m_mmc1_reg[3]) >> 1); |
157 | | break; |
158 | | case 0x08: |
159 | | prg16_89ab(prg_offset + 0); |
160 | | prg16_cdef(prg_offset + m_mmc1_reg[3]); |
161 | | break; |
162 | | case 0x0c: |
163 | | prg16_89ab(prg_offset + m_mmc1_reg[3]); |
164 | | prg16_cdef(prg_offset + 0x0f); |
165 | | break; |
166 | | } |
167 | | } |
168 | | |
169 | | void nes_somari_device::mmc1_set_chr() |
170 | | { |
171 | | UINT8 chr_mode = BIT(m_mmc1_reg[0], 4); |
172 | | |
173 | | if (chr_mode) |
174 | | { |
175 | | chr4_0(m_mmc1_reg[1] & 0x1f, m_chr_source); |
176 | | chr4_4(m_mmc1_reg[2] & 0x1f, m_chr_source); |
177 | | } |
178 | | else |
179 | | chr8((m_mmc1_reg[1] & 0x1f) >> 1, m_chr_source); |
180 | | } |
181 | | |
182 | 154 | WRITE8_MEMBER(nes_somari_device::mmc1_w) |
183 | 155 | { |
184 | 156 | assert(m_board_mode == 2); |
r22513 | r22514 | |
189 | 161 | m_mmc1_latch = 0; |
190 | 162 | |
191 | 163 | m_mmc1_reg[0] |= 0x0c; |
192 | | mmc1_set_prg(); |
| 164 | update_prg(); |
193 | 165 | return; |
194 | 166 | } |
195 | 167 | |
r22513 | r22514 | |
203 | 175 | |
204 | 176 | if (m_count == 5) |
205 | 177 | { |
206 | | switch (offset & 0x6000) |
207 | | { |
208 | | case 0x0000: |
209 | | m_mmc1_reg[0] = m_mmc1_latch; |
210 | | switch (m_mmc1_reg[0] & 0x03) |
211 | | { |
212 | | case 0: set_nt_mirroring(PPU_MIRROR_LOW); break; |
213 | | case 1: set_nt_mirroring(PPU_MIRROR_HIGH); break; |
214 | | case 2: set_nt_mirroring(PPU_MIRROR_VERT); break; |
215 | | case 3: set_nt_mirroring(PPU_MIRROR_HORZ); break; |
216 | | } |
217 | | mmc1_set_chr(); |
218 | | mmc1_set_prg(); |
219 | | break; |
220 | | case 0x2000: |
221 | | m_mmc1_reg[1] = m_mmc1_latch; |
222 | | mmc1_set_chr(); |
223 | | mmc1_set_prg(); |
224 | | break; |
225 | | case 0x4000: |
226 | | m_mmc1_reg[2] = m_mmc1_latch; |
227 | | mmc1_set_chr(); |
228 | | break; |
229 | | case 0x6000: |
230 | | m_mmc1_reg[3] = m_mmc1_latch; |
231 | | mmc1_set_prg(); |
232 | | break; |
233 | | } |
234 | | |
| 178 | m_mmc1_reg[(offset & 0x6000) >> 13] = m_mmc1_latch; |
| 179 | update_mirror(); |
| 180 | update_prg(); |
| 181 | update_chr(); |
| 182 | |
235 | 183 | m_count = 0; |
236 | 184 | } |
237 | 185 | } |
r22513 | r22514 | |
250 | 198 | m_latch = data; |
251 | 199 | |
252 | 200 | if (mmc_helper & 0x40) |
253 | | set_prg(m_prg_base, m_prg_mask); |
| 201 | update_prg(); |
254 | 202 | |
255 | 203 | if (mmc_helper & 0x80) |
256 | | set_chr(m_chr_source, m_chr_base, m_chr_mask); |
| 204 | update_chr(); |
257 | 205 | break; |
258 | 206 | |
259 | 207 | case 0x0001: |
r22513 | r22514 | |
263 | 211 | case 0: case 1: |
264 | 212 | case 2: case 3: case 4: case 5: |
265 | 213 | m_mmc_vrom_bank[cmd] = data; |
266 | | set_chr(m_chr_source, m_chr_base, m_chr_mask); |
| 214 | update_chr(); |
267 | 215 | break; |
268 | 216 | case 6: |
269 | 217 | case 7: |
270 | | m_mmc_prg_bank[cmd - 6] = data; |
271 | | set_prg(m_prg_base, m_prg_mask); |
| 218 | m_mmc_prg_bank[cmd - 6] = data & 0x3f; |
| 219 | update_prg(); |
272 | 220 | break; |
273 | 221 | } |
274 | 222 | break; |
275 | 223 | |
276 | 224 | case 0x2000: |
277 | | set_nt_mirroring(BIT(data, 0) ? PPU_MIRROR_HORZ : PPU_MIRROR_VERT); |
| 225 | m_mmc3_mirror_reg = data & 1; |
| 226 | update_mirror(); |
278 | 227 | break; |
279 | 228 | case 0x2001: break; |
280 | 229 | case 0x4000: m_irq_count_latch = data; break; |
r22513 | r22514 | |
294 | 243 | switch (offset & 0x7000) |
295 | 244 | { |
296 | 245 | case 0x0000: |
297 | | m_vrc_prg_bank[0] = data; |
298 | | prg8_89(m_vrc_prg_bank[0]); |
| 246 | m_vrc_prg_bank[0] = data & 0x1f; |
| 247 | update_prg(); |
299 | 248 | break; |
300 | 249 | |
301 | 250 | case 0x1000: |
302 | | switch (data & 0x03) |
303 | | { |
304 | | case 0x00: set_nt_mirroring(PPU_MIRROR_VERT); break; |
305 | | case 0x01: set_nt_mirroring(PPU_MIRROR_HORZ); break; |
306 | | case 0x02: set_nt_mirroring(PPU_MIRROR_LOW); break; |
307 | | case 0x03: set_nt_mirroring(PPU_MIRROR_HIGH); break; |
308 | | } |
| 251 | m_vrc_mirror_reg = data & 1; |
| 252 | update_mirror(); |
309 | 253 | break; |
310 | 254 | |
311 | 255 | case 0x2000: |
312 | | m_vrc_prg_bank[1] = data; |
313 | | prg8_ab(m_vrc_prg_bank[1]); |
| 256 | m_vrc_prg_bank[1] = data & 0x1f; |
| 257 | update_prg(); |
314 | 258 | break; |
315 | 259 | |
316 | 260 | case 0x3000: |
317 | 261 | case 0x4000: |
318 | 262 | case 0x5000: |
319 | 263 | case 0x6000: |
| 264 | // this makes no sense for vrc2 and breaks somari, but it's ok for garousp!! |
320 | 265 | bank = ((offset & 0x7000) - 0x3000) / 0x0800 + BIT(offset, 1); |
321 | 266 | shift = BIT(offset, 2) * 4; |
322 | 267 | data = (data & 0x0f) << shift; |
323 | | m_vrc_vrom_bank[bank] = data | m_chr_base; |
324 | | chr1_x(bank, m_vrc_vrom_bank[bank], CHRROM); |
| 268 | m_vrc_vrom_bank[bank] = data; |
| 269 | |
| 270 | update_chr(); |
325 | 271 | break; |
326 | 272 | } |
327 | 273 | } |
328 | 274 | |
| 275 | |
| 276 | void nes_somari_device::update_prg() |
| 277 | { |
| 278 | switch (m_board_mode) |
| 279 | { |
| 280 | case SOMARI_VRC2_MODE: |
| 281 | prg8_89(m_vrc_prg_bank[0]); |
| 282 | prg8_ab(m_vrc_prg_bank[1]); |
| 283 | prg8_cd(0x3e); |
| 284 | prg8_ef(0x3f); |
| 285 | break; |
| 286 | case SOMARI_MMC3_MODE: |
| 287 | { |
| 288 | UINT8 prg_flip = (m_latch & 0x40) ? 2 : 0; |
| 289 | prg8_x(0, m_mmc_prg_bank[0 ^ prg_flip]); |
| 290 | prg8_x(1, m_mmc_prg_bank[1]); |
| 291 | prg8_x(2, m_mmc_prg_bank[2 ^ prg_flip]); |
| 292 | prg8_x(3, m_mmc_prg_bank[3]); |
| 293 | } |
| 294 | break; |
| 295 | case SOMARI_MMC1_MODE: |
| 296 | // case SOMARI_MMC1_MODE_AGAIN: |
| 297 | { |
| 298 | UINT8 prg_offset = m_mmc1_reg[1] & 0x10; |
| 299 | |
| 300 | switch (m_mmc1_reg[0] & 0x0c) |
| 301 | { |
| 302 | case 0x00: |
| 303 | case 0x04: |
| 304 | prg32((prg_offset + m_mmc1_reg[3]) >> 1); |
| 305 | break; |
| 306 | case 0x08: |
| 307 | prg16_89ab(prg_offset + 0); |
| 308 | prg16_cdef(prg_offset + m_mmc1_reg[3]); |
| 309 | break; |
| 310 | case 0x0c: |
| 311 | prg16_89ab(prg_offset + m_mmc1_reg[3]); |
| 312 | prg16_cdef(prg_offset + 0x0f); |
| 313 | break; |
| 314 | } |
| 315 | } |
| 316 | break; |
| 317 | } |
| 318 | } |
| 319 | |
| 320 | void nes_somari_device::update_chr() |
| 321 | { |
| 322 | switch (m_board_mode) |
| 323 | { |
| 324 | case SOMARI_VRC2_MODE: |
| 325 | for (int i = 0; i < 8; i++) |
| 326 | chr1_x(i, m_chr_base | m_vrc_vrom_bank[i], CHRROM); |
| 327 | break; |
| 328 | case SOMARI_MMC3_MODE: |
| 329 | { |
| 330 | UINT8 chr_page = (m_latch & 0x80) >> 5; |
| 331 | chr1_x(chr_page ^ 0, m_chr_base | ((m_mmc_vrom_bank[0] & ~0x01)), CHRROM); |
| 332 | chr1_x(chr_page ^ 1, m_chr_base | ((m_mmc_vrom_bank[0] | 0x01)), CHRROM); |
| 333 | chr1_x(chr_page ^ 2, m_chr_base | ((m_mmc_vrom_bank[1] & ~0x01)), CHRROM); |
| 334 | chr1_x(chr_page ^ 3, m_chr_base | ((m_mmc_vrom_bank[1] | 0x01)), CHRROM); |
| 335 | chr1_x(chr_page ^ 4, m_chr_base | (m_mmc_vrom_bank[2]), CHRROM); |
| 336 | chr1_x(chr_page ^ 5, m_chr_base | (m_mmc_vrom_bank[3]), CHRROM); |
| 337 | chr1_x(chr_page ^ 6, m_chr_base | (m_mmc_vrom_bank[4]), CHRROM); |
| 338 | chr1_x(chr_page ^ 7, m_chr_base | (m_mmc_vrom_bank[5]), CHRROM); |
| 339 | } |
| 340 | break; |
| 341 | case SOMARI_MMC1_MODE: |
| 342 | // case SOMARI_MMC1_MODE_AGAIN: |
| 343 | if (BIT(m_mmc1_reg[0], 4)) |
| 344 | { |
| 345 | chr4_0(m_mmc1_reg[1] & 0x1f, CHRROM); |
| 346 | chr4_4(m_mmc1_reg[2] & 0x1f, CHRROM); |
| 347 | } |
| 348 | else |
| 349 | chr8((m_mmc1_reg[1] & 0x1f) >> 1, CHRROM); |
| 350 | break; |
| 351 | } |
| 352 | } |
| 353 | |
| 354 | void nes_somari_device::update_mirror() |
| 355 | { |
| 356 | switch (m_board_mode) |
| 357 | { |
| 358 | case SOMARI_VRC2_MODE: |
| 359 | set_nt_mirroring(m_vrc_mirror_reg ? PPU_MIRROR_HORZ : PPU_MIRROR_VERT); |
| 360 | break; |
| 361 | case SOMARI_MMC3_MODE: |
| 362 | set_nt_mirroring(m_mmc3_mirror_reg ? PPU_MIRROR_HORZ : PPU_MIRROR_VERT); |
| 363 | break; |
| 364 | case SOMARI_MMC1_MODE: |
| 365 | // case SOMARI_MMC1_MODE_AGAIN: |
| 366 | switch (m_mmc1_reg[0] & 0x03) |
| 367 | { |
| 368 | case 0x00: set_nt_mirroring(PPU_MIRROR_LOW); break; |
| 369 | case 0x01: set_nt_mirroring(PPU_MIRROR_HIGH); break; |
| 370 | case 0x02: set_nt_mirroring(PPU_MIRROR_VERT); break; |
| 371 | case 0x03: set_nt_mirroring(PPU_MIRROR_HORZ); break; |
| 372 | } |
| 373 | break; |
| 374 | } |
| 375 | } |
| 376 | |
| 377 | |
329 | 378 | WRITE8_MEMBER(nes_somari_device::write_h) |
330 | 379 | { |
331 | 380 | LOG_MMC(("somari write_h, mode %d, offset: %04x, data: %02x\n", m_board_mode, offset, data)); |
332 | 381 | |
333 | 382 | switch (m_board_mode) |
334 | 383 | { |
335 | | case 0x00: vrc2_w(space, offset, data, mem_mask); break; |
336 | | case 0x01: mmc3_w(space, offset, data, mem_mask); break; |
337 | | case 0x02: mmc1_w(space, offset, data, mem_mask); break; |
| 384 | case SOMARI_VRC2_MODE: vrc2_w(space, offset, data, mem_mask); break; |
| 385 | case SOMARI_MMC3_MODE: mmc3_w(space, offset, data, mem_mask); break; |
| 386 | case SOMARI_MMC1_MODE: mmc1_w(space, offset, data, mem_mask); break; |
338 | 387 | } |
339 | 388 | } |
340 | 389 | |
r22513 | r22514 | |
342 | 391 | { |
343 | 392 | switch (m_board_mode) |
344 | 393 | { |
345 | | case 0x00: |
346 | | prg8_89(m_vrc_prg_bank[0]); |
347 | | prg8_ab(m_vrc_prg_bank[1]); |
348 | | for (int i = 0; i < 8; i++) |
349 | | chr1_x(i, m_vrc_vrom_bank[i], CHRROM); |
| 394 | case SOMARI_VRC2_MODE: |
350 | 395 | break; |
351 | | case 0x01: |
352 | | set_prg(m_prg_base, m_prg_mask); |
353 | | set_chr(m_chr_source, m_chr_base, m_chr_mask); |
| 396 | case SOMARI_MMC3_MODE: |
354 | 397 | break; |
355 | | case 0x02: |
356 | | mmc1_set_prg(); |
357 | | mmc1_set_chr(); |
| 398 | case SOMARI_MMC1_MODE: |
358 | 399 | break; |
359 | 400 | } |
| 401 | update_mirror(); |
| 402 | update_prg(); |
| 403 | update_chr(); |
360 | 404 | } |
361 | 405 | |
362 | | WRITE8_MEMBER(nes_somari_device::write_l) |
| 406 | WRITE8_MEMBER(nes_somari_device::write_m) |
363 | 407 | { |
364 | | LOG_MMC(("somari write_l, offset: %04x, data: %02x\n", offset, data)); |
365 | | offset += 0x100; |
| 408 | LOG_MMC(("somari write_m, offset: %04x, data: %02x\n", offset, data)); |
366 | 409 | |
367 | 410 | if (offset & 0x100) |
368 | 411 | { |