mirror of
https://github.com/mamedev/mame.git
synced 2024-11-16 07:48:32 +01:00
nintendo/n64_gateway.cpp: New driver and software list submission [Foxhack, Angelo Salese] (#11177)
New software list items marked not working ------------------------------------------ n64_lodgenet.xml: 1080° Snowboarding, Donkey Kong 64, Dr. Mario, Excitebike 64, F-Zero X, Gauntlet Legends, Hydro Thunder, Kirby 64 - The Crystal Shards, The Legend of Zelda - Majora's Mask, The Legend of Zelda - Ocarina of Time, Mario Golf, Mario Kart 64, Mario Party 3, Mario Tennis, Midway's Greatest Arcade Hits Vol. 1, Mortal Kombat 4, The New Tetris, Paper Mario, Pilotwings 64, Pokémon Snap, Rampage 2 - Universal Tour, Ready 2 Rumble Boxing, Rush 2 - Extreme Racing USA, Star Fox 64, Star Wars - Rogue Squadron, Super Mario 64, Super Smash Bros., Virtual Chess, Virtual Pool 64, Wave Race 64, Yoshi's Story [Forest of Illusion]
This commit is contained in:
parent
ec5040453a
commit
52d75fb4c0
5 changed files with 846 additions and 27 deletions
436
hash/n64_lodgenet.xml
Normal file
436
hash/n64_lodgenet.xml
Normal file
|
@ -0,0 +1,436 @@
|
|||
<?xml version="1.0"?>
|
||||
<!DOCTYPE softwarelist SYSTEM "softwarelist.dtd">
|
||||
<!--
|
||||
license:CC0-1.0
|
||||
-->
|
||||
|
||||
<softwarelist name="n64_lodgenet" description="LodgeNet 64 software">
|
||||
|
||||
<software name="1080snow" supported="no">
|
||||
<description>1080° Snowboarding</description>
|
||||
<year>1998</year>
|
||||
<publisher>Nintendo</publisher>
|
||||
<info name="serial" value="nteg00"/>
|
||||
<part name="cart" interface="n64_cart">
|
||||
<dataarea name="rom" size="0x1000000">
|
||||
<rom name="nteg00.z64" size="0x1000000" crc="67e010d2" sha1="7266eef53af8f2c21f3e3288258121f97eddfa7e" status="baddump"/>
|
||||
<!-- <rom name="nteg00.i64" size="64" crc="57c7bfe2" sha1="23e06350c61dccf3ffaade55873163adabf747f7" status="baddump"/> -->
|
||||
</dataarea>
|
||||
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="dk64" supported="no">
|
||||
<description>Donkey Kong 64</description>
|
||||
<year>1999</year>
|
||||
<publisher>Nintendo</publisher>
|
||||
<info name="serial" value="ndog00"/>
|
||||
<info name="usage" value="Requires 16k EEPROM." />
|
||||
<info name="user_notes" value="Will crash unless you let it run up until the intro song starts to play." />
|
||||
<part name="cart" interface="n64_cart">
|
||||
<dataarea name="rom" size="0x2000000">
|
||||
<rom name="ndog00.z64" size="0x2000000" crc="acba2248" sha1="f39476827ccf7f03707de5d79949559a4dac390b" status="baddump"/>
|
||||
<!-- <rom name="ndog00.i64" size="0x40" crc="2e760dba" sha1="3ec335744c43823df3bff3dc5936f6c0611e5891" status="baddump"/> -->
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="drmar64" supported="no">
|
||||
<description>Dr. Mario 64</description>
|
||||
<year>2001</year>
|
||||
<publisher>Nintendo</publisher>
|
||||
<info name="serial" value="nn6g00"/>
|
||||
<part name="cart" interface="n64_cart">
|
||||
<dataarea name="rom" size="0x400000">
|
||||
<rom name="nn6g00.z64" size="0x400000" crc="dd5190ee" sha1="e63b10abfaa37aa8c7f37643d6d4e82fadb511fe" status="baddump"/>
|
||||
<!-- <rom name="nn6g00.i64" size="0x40" crc="8f5aa504" sha1="87ab08a44a9df500650223a00fa067b5fa616e08" status="baddump"/> -->
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="excitb64" supported="no">
|
||||
<description>Excitebike 64 (USA)</description>
|
||||
<year>2000</year>
|
||||
<publisher>Nintendo</publisher>
|
||||
<info name="serial" value="nmxg00"/>
|
||||
<info name="usage" value="Requires 16k EEPROM." />
|
||||
<part name="cart" interface="n64_cart">
|
||||
<dataarea name="rom" size="0x1000000">
|
||||
<rom name="nmxg00.z64" size="0x1000000" crc="a1895884" sha1="3a043dc4c8b1351ca56c3ab9bb061bd7fa99c312" status="baddump"/>
|
||||
<!-- <rom name="nmxg00.i64" size="0x40" crc="ddd8f443" sha1="f78929fd62668cd0f0b7146b1e55f4430cb1f997" status="baddump"/> -->
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="fzerox" supported="no">
|
||||
<description>F-Zero X</description>
|
||||
<year>1998</year>
|
||||
<publisher>Nintendo</publisher>
|
||||
<info name="serial" value="nfzg00"/>
|
||||
<part name="cart" interface="n64_cart">
|
||||
<dataarea name="rom" size="0x1000000">
|
||||
<rom name="nfzg00.z64" size="0x1000000" crc="1c753f3f" sha1="2a7cd80ce10a654f3844c602268d66cdbe78230d" status="baddump"/>
|
||||
<!-- <rom name="nfzg00.i64" size="0x40" crc="0ca548dc" sha1="4b7077c638883195ec8a0b94f5e96391c2fc68ab" status="baddump"/> -->
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="gauntleg" supported="no">
|
||||
<description>Gauntlet Legends</description>
|
||||
<year>1999</year>
|
||||
<publisher>Midway</publisher>
|
||||
<info name="serial" value="ngxg02"/>
|
||||
<part name="cart" interface="n64_cart">
|
||||
<dataarea name="rom" size="0x1000000">
|
||||
<rom name="ngxg02.z64" size="0x1000000" crc="1f030279" sha1="45a8d42e17993d1009c858d1847b311197b04f8c" status="baddump"/>
|
||||
<!-- <rom name="ngxg02.i64" size="0x40" crc="195f583f" sha1="9ab84f08b4d54ccf627080e657afa3f1893fec92" status="baddump"/> -->
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="hydroth" supported="no">
|
||||
<description>Hydro Thunder</description>
|
||||
<year>2000</year>
|
||||
<publisher>Midway</publisher>
|
||||
<info name="serial" value="nhtg01"/>
|
||||
<part name="cart" interface="n64_cart">
|
||||
<dataarea name="rom" size="0x2000000">
|
||||
<rom name="nhtg01.z64" size="0x2000000" crc="1ec49934" sha1="30794eb5c1c6a22fbb9dd530f22d153163a6ccda" status="baddump"/>
|
||||
<!-- <rom name="nhtg01.i64" size="0x40" crc="2e82689d" sha1="d77158239a249f4db34c31d6e2e15b9e3e948fe0" status="baddump"/> -->
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="kirby64" supported="no">
|
||||
<description>Kirby 64 - The Crystal Shards</description>
|
||||
<year>2000</year>
|
||||
<publisher>Nintendo</publisher>
|
||||
<info name="serial" value="nk4g00"/>
|
||||
<part name="cart" interface="n64_cart">
|
||||
<dataarea name="rom" size="0x2000000">
|
||||
<rom name="nk4g00.z64" size="0x2000000" crc="70ba28e4" sha1="f615c6e10d1044c944bd4965c5471bb3f1cf5c5b" status="baddump"/>
|
||||
<!-- <rom name="nk4g00.i64" size="0x40" crc="5a049d23" sha1="265413c4a08f7aead7ca7bd746f3897c74eb0029" status="baddump"/> -->
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="zeldamaj" supported="no">
|
||||
<description>The Legend of Zelda - Majora's Mask</description>
|
||||
<year>2000</year>
|
||||
<publisher>Nintendo</publisher>
|
||||
<info name="serial" value="nzsg00"/>
|
||||
<info name="usage" value="Requires 16k EEPROM." />
|
||||
<part name="cart" interface="n64_cart">
|
||||
<dataarea name="rom" size="0x2000000">
|
||||
<rom name="nzsg00.z64" size="0x2000000" crc="e4b47e08" sha1="ecabc86f0de743c02ba3fa0c83ab163538b00be9" status="baddump"/>
|
||||
<!-- <rom name="nzsg00.i64" size="0x40" crc="8d23977d" sha1="f882460a888b8db76e8b163fd508d89e7b2e9e00" status="baddump"/> -->
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="zeldaoot" supported="no">
|
||||
<description>The Legend of Zelda - Ocarina of Time</description>
|
||||
<year>1998</year>
|
||||
<publisher>Nintendo</publisher>
|
||||
<info name="serial" value="czlg00" />
|
||||
<part name="cart" interface="n64_cart">
|
||||
<dataarea name="rom" size="0x2000000">
|
||||
<rom name="czlg00.z64" size="0x2000000" crc="c4d2ac1d" sha1="86ff85565e0e4f78d56f50e73df51ba29d36738a" status="baddump"/>
|
||||
<!-- <rom name="czlg00.i64" size="0x40" crc="0eb0198c" sha1="45185a1938db659ee6760117cd4f742aac5e18bf" status="baddump"/> -->
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="marioglf" supported="no">
|
||||
<description>Mario Golf</description>
|
||||
<year>1999</year>
|
||||
<publisher>Nintendo</publisher>
|
||||
<info name="serial" value="nmfg00"/>
|
||||
<part name="cart" interface="n64_cart">
|
||||
<dataarea name="rom" size="0x2000000">
|
||||
<rom name="nmfg00.z64" size="0x2000000" crc="1c256575" sha1="47c5f700940bb65be1145e7d6543ddf1a816ddda" status="baddump"/>
|
||||
<!-- <rom name="nmfg00.i64" size="0x40" crc="df31532f" sha1="51db8e096b345ca306d34d114dc82bf36211db1d" status="baddump"/> -->
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="mariokrt" supported="no">
|
||||
<description>Mario Kart 64</description>
|
||||
<year>1997</year>
|
||||
<publisher>Nintendo</publisher>
|
||||
<info name="serial" value="nktg00"/>
|
||||
<part name="cart" interface="n64_cart">
|
||||
<dataarea name="rom" size="0xc00000">
|
||||
<rom name="nktg00.z64" size="0xc00000" crc="407edef1" sha1="5b0a0c8b57881f43f9314b427a84d29a46a12607" status="baddump"/>
|
||||
<!-- <rom name="nktg00.i64" size="0x40" crc="de24f369" sha1="45ffe8cdac5266f261b7b1ca3d2cca7c48877bea" status="baddump"/> -->
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="mariopr3" supported="no">
|
||||
<description>Mario Party 3</description>
|
||||
<year>2001</year>
|
||||
<publisher>Nintendo</publisher>
|
||||
<info name="serial" value="nmvg00"/>
|
||||
<info name="usage" value="Requires 16k EEPROM." />
|
||||
<part name="cart" interface="n64_cart">
|
||||
<dataarea name="rom" size="0x2000000">
|
||||
<rom name="nmvg00.z64" size="0x2000000" crc="9f929c0f" sha1="9be79ddb66a6306dec7404e934c6d9fe454f42f4" status="baddump"/>
|
||||
<!-- <rom name="nmvg00.i64" size="0x40" crc="80ee8f86" sha1="c2c18a6d2b2c098767d7015f06300a1fc5772a33" status="baddump"/> -->
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="marioten" supported="no">
|
||||
<description>Mario Tennis</description>
|
||||
<year>2000</year>
|
||||
<publisher>Nintendo</publisher>
|
||||
<info name="serial" value="nm8g00"/>
|
||||
<part name="cart" interface="n64_cart">
|
||||
<dataarea name="rom" size="0x1000000">
|
||||
<rom name="nm8g00.z64" size="0x1000000" crc="02af0a24" sha1="1f76e775c5f2e247d6550aecc2666149c6025989" status="baddump"/>
|
||||
<!-- <rom name="nm8g00.i64" size="0x40" crc="fe9453db" sha1="0c1a3f857838c2f3c6268a825b9533725aabeec8" status="baddump"/> -->
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="midwaygh" supported="no">
|
||||
<description>Midway's Greatest Arcade Hits Vol. 1</description>
|
||||
<year>2000</year>
|
||||
<publisher>Midway</publisher>
|
||||
<info name="serial" value="naig01"/>
|
||||
<part name="cart" interface="n64_cart">
|
||||
<dataarea name="rom" size="0x400000">
|
||||
<rom name="naig01.z64" size="0x400000" crc="f3c48bb7" sha1="a36131328ad707800f6841289cdede17b3b9ee16" status="baddump"/>
|
||||
<!-- <rom name="naig01.i64" size="0x40" crc="ecd08883" sha1="7ece35ed1c97dfc8c1364dbf5f4a08475237dd45" status="baddump"/> -->
|
||||
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="mk4" supported="no">
|
||||
<description>Mortal Kombat 4</description>
|
||||
<year>1998</year>
|
||||
<publisher>Midway</publisher>
|
||||
<info name="serial" value="nm4g01"/>
|
||||
<part name="cart" interface="n64_cart">
|
||||
<dataarea name="rom" size="0x1000000">
|
||||
<rom name="nm4g01.z64" size="0x1000000" crc="ea494c11" sha1="535429836cfd4b6f533dd6dda540a19286613518" status="baddump"/>
|
||||
<!-- <rom name="nm4g01.i64" size="0x40" crc="d8b7a45d" sha1="11c67fab63842aa58dc9bb41535d1924222d5a54" status="baddump"/> -->
|
||||
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="ntetris" supported="no">
|
||||
<description>The New Tetris</description>
|
||||
<year>1999</year>
|
||||
<publisher>Nintendo</publisher>
|
||||
<info name="serial" value="nrig00"/>
|
||||
<part name="cart" interface="n64_cart">
|
||||
<dataarea name="rom" size="0xc00000">
|
||||
<rom name="nrig00.z64" size="0xc00000" crc="d3523b37" sha1="cf52ba144788ecc9c1f7cfd61d7878c6173b1ef6" status="baddump"/>
|
||||
<!-- <rom name="nrig00.i64" size="0x40" crc="b120d9e4" sha1="18ebc23a139eea274333cce9635a2852bcf3ea2a" status="baddump"/> -->
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="papermar" supported="no">
|
||||
<description>Paper Mario</description>
|
||||
<year>2000</year>
|
||||
<publisher>Nintendo</publisher>
|
||||
<info name="serial" value="nmqg00"/>
|
||||
<part name="cart" interface="n64_cart">
|
||||
<dataarea name="rom" size="0x4000000">
|
||||
<rom name="nmqg00.z64" size="0x4000000" crc="f845af4e" sha1="c54905138e67daaddc6def94e76f626c4fbc81f7" status="baddump"/>
|
||||
<!-- <rom name="nmqg00.i64" size="0x40" crc="cb9f0acf" sha1="c0b890b570121defd863c1e01ef076091e0f5b44" status="baddump"/> -->
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="pilotwin" supported="no">
|
||||
<description>Pilotwings 64</description>
|
||||
<year>1996</year>
|
||||
<publisher>Nintendo</publisher>
|
||||
<info name="serial" value="npwg01"/>
|
||||
<part name="cart" interface="n64_cart">
|
||||
<dataarea name="rom" size="0x800000">
|
||||
<rom name="npwg01.z64" size="0x800000" crc="29fa9832" sha1="580d65f3d5cae595bf7c62456ff6ea60a4595798" status="baddump"/>
|
||||
<!-- <rom name="npwg01.i64" size="0x40" crc="8756a34a" sha1="7b623ec9ae5c7be5dd2830ba5d2d7c30f98ea57b" status="baddump"/> -->
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="pokesnap" supported="no">
|
||||
<description>Pokémon Snap</description>
|
||||
<year>1999</year>
|
||||
<publisher>Nintendo</publisher>
|
||||
<info name="serial" value="npfg00"/>
|
||||
<part name="cart" interface="n64_cart">
|
||||
<dataarea name="rom" size="0x1000000">
|
||||
<rom name="npfg00.z64" size="0x1000000" crc="8347c9bc" sha1="b624c57e4d9e7851b422475a200fe72a300e3b1c" status="baddump"/>
|
||||
<!-- <rom name="npfg00.i64" size="0x40" crc="a72187f0" sha1="7017d71fce3e1f9e55a143f530288caaa9ca0bb9" status="baddump"/> -->
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="rampage2" supported="no">
|
||||
<description>Rampage 2 - Universal Tour</description>
|
||||
<year>1998</year>
|
||||
<publisher>Midway</publisher>
|
||||
<info name="serial" value="n2pg01"/>
|
||||
<part name="cart" interface="n64_cart">
|
||||
<dataarea name="rom" size="0xc00000">
|
||||
<rom name="n2pg01.z64" size="0xc00000" crc="c28afc5e" sha1="0a6c390b7d1a96b93fc28faa3b11cf18400b1773" status="baddump"/>
|
||||
<!-- <rom name="n2pg01.i64" size="0x40" crc="86a3477e" sha1="5aff7233b78eb203563353089be032037c9af651" status="baddump"/> -->
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="r2rumble" supported="no">
|
||||
<description>Ready 2 Rumble Boxing</description>
|
||||
<year>1999</year>
|
||||
<publisher>Midway</publisher>
|
||||
<info name="serial" value="nrdg01"/>
|
||||
<part name="cart" interface="n64_cart">
|
||||
<dataarea name="rom" size="0x1FB5360">
|
||||
<rom name="nrdg01.z64" size="0x1FB5360" crc="6d8dab04" sha1="2ad70a3243a20cd02d24103a2717c90654c173ac" status="baddump"/>
|
||||
<!-- Dump size is 33,248,096. Underdump? -->
|
||||
<!-- <rom name="nrdg01.i64" size="0x40" crc="eda5e440" sha1="c8f691d1e88ddf1423685b593d3b6496728448ad" status="baddump"/> -->
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="rush2" supported="no">
|
||||
<description>Rush 2 - Extreme Racing USA</description>
|
||||
<year>1998</year>
|
||||
<publisher>Midway</publisher>
|
||||
<info name="serial" value="nr2g02"/>
|
||||
<part name="cart" interface="n64_cart">
|
||||
<dataarea name="rom" size="0xc00000">
|
||||
<rom name="nr2g02.z64" size="0xc00000" crc="c7e9d391" sha1="1556edd66c54bf6ec200915ac4265f078c1555a2" status="baddump"/>
|
||||
<!-- <rom name="nr2g02.i64" size="0x40" crc="889f42d1" sha1="78dff0630eba88816d0ddb45bb2af101e00b7f63" status="baddump"/> -->
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="starfox" supported="no">
|
||||
<description>Star Fox 64</description>
|
||||
<year>1997</year>
|
||||
<publisher>Nintendo</publisher>
|
||||
<info name="serial" value="nfxg01"/>
|
||||
<part name="cart" interface="n64_cart">
|
||||
<dataarea name="rom" size="0xc00000">
|
||||
<rom name="nfxg01.z64" size="0xc00000" crc="637a422d" sha1="1b759465439297fbbe21c19df0924d8e75b1aa5a" status="baddump"/>
|
||||
<!-- <rom name="nfxg01.i64" size="0x40" crc="f89ccbcf" sha1="0de280df6c5ed6dd7c529c1784123a79514b3d74" status="baddump"/> -->
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="swrogue" supported="no">
|
||||
<description>Star Wars - Rogue Squadron</description>
|
||||
<year>1998</year>
|
||||
<publisher>LucasArts</publisher>
|
||||
<info name="serial" value="nrsg00"/>
|
||||
<part name="cart" interface="n64_cart">
|
||||
<dataarea name="rom" size="0x1000000">
|
||||
<rom name="nrsg00.z64" size="0x1000000" crc="b31c4197" sha1="80cdebe735d21589b692157633aae4be0b98c08e" status="baddump"/>
|
||||
<!-- <rom name="nrsg00.i64" size="0x40" crc="b2c4fd5d" sha1="dccd8a3aaecf1b3d8148f56dd51be31dc1048f27" status="baddump"/> -->
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="sm64u" supported="no">
|
||||
<description>Super Mario 64</description>
|
||||
<year>1996</year>
|
||||
<publisher>Nintendo</publisher>
|
||||
<info name="serial" value="nsmg00"/>
|
||||
<part name="cart" interface="n64_cart">
|
||||
<dataarea name="rom" size="0x800000">
|
||||
<rom name="nsmg00.z64" size="0x800000" crc="35c02d9f" sha1="37f5ed5394d885de2aff705074bd76ddc95d3cc9" status="baddump"/>
|
||||
<!-- <rom name="nsmg00.i64" size="0x40" crc="1749981b" sha1="1530b8a818b0457847b9b79add0840c4c2fa0629" status="baddump"/> -->
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="smashbro" supported="no">
|
||||
<description>Super Smash Bros.</description>
|
||||
<year>1999</year>
|
||||
<publisher>Nintendo</publisher>
|
||||
<info name="serial" value="nalg00"/>
|
||||
<part name="cart" interface="n64_cart">
|
||||
<dataarea name="rom" size="0x1000000">
|
||||
<rom name="nalg00.z64" size="0x1000000" crc="1c001a5d" sha1="a0aea7d219443209c6580a501601d3151c58d3ac" status="baddump"/>
|
||||
<!-- <rom name="nalg00.i64" size="0x40" crc="6c30334f" sha1="7ecf5ccbc981ecca414ebaa86eef57ce721c32e8" status="baddump"/> -->
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="vchess" supported="no">
|
||||
<description>Virtual Chess 64</description>
|
||||
<year>1998</year>
|
||||
<publisher>Titus</publisher>
|
||||
<info name="serial" value="nvcg02" />
|
||||
<part name="cart" interface="n64_cart">
|
||||
<dataarea name="rom" size="0x400000">
|
||||
<rom name="nvcg02.z64" size="0x400000" crc="ac7aa76d" sha1="90a012eb6a0cb1ac158492a6c2683f181c5b0205" status="baddump"/>
|
||||
<!-- <rom name="nvcg02.i64" size="0x40" crc="e59ad6fb" sha1="8ff65140eeb055798663a0cdcac8ebcdc90cefd8" status="baddump"/> -->
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="vpool" supported="no">
|
||||
<description>Virtual Pool 64</description>
|
||||
<year>1998</year>
|
||||
<publisher>Crave Entertainment</publisher>
|
||||
<info name="serial" value="nvrg03" />
|
||||
<part name="cart" interface="n64_cart">
|
||||
<dataarea name="rom" size="0x400000">
|
||||
<rom name="nvrg03.z64" size="0x400000" crc="b58fc734" sha1="b595e31c1599d52ef363c974ea54e52f201795f2" status="baddump"/>
|
||||
<!-- <rom name="nvrg03.i64" size="0x40" crc="fdc31374" sha1="0ece94752fcb28e08c4c311bc3f5d545f3b7517a" status="baddump"/> -->
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="waverace" supported="no">
|
||||
<description>Wave Race 64</description>
|
||||
<year>1996</year>
|
||||
<publisher>Nintendo</publisher>
|
||||
<info name="serial" value="nwrg11"/>
|
||||
<part name="cart" interface="n64_cart">
|
||||
<dataarea name="rom" size="0x800000">
|
||||
<rom name="nwrg11.z64" size="0x800000" crc="6def22dc" sha1="895c70d2280d5d6cc0bd7013a135c21b688f9f80" status="baddump"/>
|
||||
<!-- <rom name="nwrg11.i64" size="0x40" crc="7940a187" sha1="7954964efb9f8cbba9d1385c2a24007714cd5966" status="baddump"/> -->
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="yoshisto" supported="no">
|
||||
<description>Yoshi's Story</description>
|
||||
<year>1997</year>
|
||||
<publisher>Nintendo</publisher>
|
||||
<info name="serial" value="nysg00"/>
|
||||
<info name="usage" value="Requires 16k EEPROM." />
|
||||
<part name="cart" interface="n64_cart">
|
||||
<dataarea name="rom" size="0x1000000">
|
||||
<rom name="nysg00.z64" size="0x1000000" crc="19a7091e" sha1="f489a3cdef729cd1ade23996096fe88501e75079" status="baddump"/>
|
||||
<!-- <rom name="nysg00.i64" size="0x40" crc="57c2cf72" sha1="0c721086f560a6faf9e8b1476d033e261d3f24cc" status="baddump"/> -->
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<!-- System utilities -->
|
||||
|
||||
<software name="eeerase" supported="no">
|
||||
<description>eeerase</description>
|
||||
<year>19??</year>
|
||||
<publisher>LodgeNet</publisher>
|
||||
<part name="cart" interface="n64_cart">
|
||||
<dataarea name="rom" size="0x120000">
|
||||
<rom name="eeerase.z64" size="0x120000" crc="2d5bc167" sha1="bcb439e41a997ee459a0b792cbbfe4a765894d67" status="baddump"/>
|
||||
<!-- <rom name="eeerase.i64" size="0x40" crc="8e89a3c6" sha1="9bc23e80b0737b0f9401f8512113f8284414538b" status="baddump"/> -->
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
</softwarelist>
|
|
@ -33757,6 +33757,9 @@ supergm3 // 1996
|
|||
n64 // Nintendo N64
|
||||
n64dd // Nintendo N64 (64DD Attachment)
|
||||
|
||||
@source:nintendo/n64_gateway.cpp
|
||||
n64_lodgenet
|
||||
|
||||
@source:nintendo/n8080.cpp
|
||||
bandido // (c) 1980 Exidy
|
||||
helifire // (c) 1980 Nintendo
|
||||
|
|
|
@ -17,6 +17,31 @@
|
|||
#include "softlist.h"
|
||||
#include "speaker.h"
|
||||
|
||||
class n64_console_state : public n64_state
|
||||
{
|
||||
public:
|
||||
n64_console_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: n64_state(mconfig, type, tag)
|
||||
{ }
|
||||
|
||||
void n64(machine_config &config);
|
||||
void n64dd(machine_config &config);
|
||||
|
||||
private:
|
||||
uint32_t dd_null_r();
|
||||
void n64_map(address_map &map);
|
||||
void n64dd_map(address_map &map);
|
||||
|
||||
DECLARE_MACHINE_START(n64dd);
|
||||
INTERRUPT_GEN_MEMBER(n64_reset_poll);
|
||||
DECLARE_DEVICE_IMAGE_LOAD_MEMBER(cart_load);
|
||||
void mempak_format(uint8_t* pak);
|
||||
std::error_condition disk_load(device_image_interface &image);
|
||||
void disk_unload(device_image_interface &image);
|
||||
void rsp_imem_map(address_map &map);
|
||||
void rsp_dmem_map(address_map &map);
|
||||
};
|
||||
|
||||
uint32_t n64_console_state::dd_null_r()
|
||||
{
|
||||
return 0xffffffff;
|
||||
|
|
|
@ -314,33 +314,6 @@ private:
|
|||
|
||||
};
|
||||
|
||||
class n64_console_state : public n64_state
|
||||
{
|
||||
public:
|
||||
n64_console_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: n64_state(mconfig, type, tag)
|
||||
{ }
|
||||
|
||||
void n64(machine_config &config);
|
||||
void n64dd(machine_config &config);
|
||||
|
||||
protected:
|
||||
void n64_map(address_map &map);
|
||||
|
||||
private:
|
||||
uint32_t dd_null_r();
|
||||
void n64dd_map(address_map &map);
|
||||
|
||||
DECLARE_MACHINE_START(n64dd);
|
||||
INTERRUPT_GEN_MEMBER(n64_reset_poll);
|
||||
DECLARE_DEVICE_IMAGE_LOAD_MEMBER(cart_load);
|
||||
void mempak_format(uint8_t* pak);
|
||||
std::error_condition disk_load(device_image_interface &image);
|
||||
void disk_unload(device_image_interface &image);
|
||||
void rsp_imem_map(address_map &map);
|
||||
void rsp_dmem_map(address_map &map);
|
||||
};
|
||||
|
||||
// device type definition
|
||||
DECLARE_DEVICE_TYPE(N64PERIPH, n64_periphs)
|
||||
|
||||
|
|
382
src/mame/nintendo/n64_gateway.cpp
Normal file
382
src/mame/nintendo/n64_gateway.cpp
Normal file
|
@ -0,0 +1,382 @@
|
|||
// license:BSD-3-Clause
|
||||
// copyright-holders:Foxhack, Angelo Salese
|
||||
/*
|
||||
Nintendo Gateway 64
|
||||
|
||||
LodgeNet was a pay-per-view system that allowed television, movie and video
|
||||
game rentals on hotels starting in 1993. They entered an agreement with
|
||||
Nintendo to allow the rental of their games on airplanes and hotels for a
|
||||
moderate fee.
|
||||
|
||||
The LodgeNet 64 system was exclusively used in hotels, and consisted of a
|
||||
set-top box with a customized N64 system inside. You could choose one of
|
||||
several games via a TV-driven menu, which would then be downloaded to your
|
||||
room's system, and you would be charged a fee for one hour of playtime.
|
||||
|
||||
The games were different from their retail counterparts; Games had to have
|
||||
their multiplayer modes, accessories and game save support removed, plus have
|
||||
additional support for the system's "halt" functions, so they would be allowed
|
||||
on the system. The game controllers were custom, with additional buttons for
|
||||
use with their rental system and a reset button, and did not allow the use of
|
||||
Rumble Paks or Memory Paks. While the hardware allowed temporary save files,
|
||||
these would be deleted from the system with a special utility before a new game
|
||||
was loaded. These files were stored in encrypted format in the LodgeNet
|
||||
servers, and were decrypted after being downloaded to the system. An extra file
|
||||
with additional info about the game, its encryption code, and EEPROM settings
|
||||
was also present.
|
||||
|
||||
While the development info released mentions a requirement for PAL versions of
|
||||
the games, none are currently known to exist.
|
||||
|
||||
38 Nintendo 64 titles were made available on the service, and 31 are currently
|
||||
dumped. The following games have not been found:
|
||||
|
||||
- Extreme-G
|
||||
- Forsaken 64
|
||||
- Iggy's Reckin' Balls
|
||||
- Milo's Astro Lanes
|
||||
- Namco Museum 64
|
||||
- San Francisco Rush: Extreme Racing
|
||||
- Turok 2: Seeds of Evil
|
||||
|
||||
These games will function, but the actual LodgeNet system is not emulated,
|
||||
so the extra controller buttons and other system functions are not
|
||||
implemented.
|
||||
|
||||
The existing roms are decrypted, and should be considered bad dumps.
|
||||
|
||||
TODO:
|
||||
- Set-top box part;
|
||||
- Extra joypad buttons;
|
||||
- Doesn't really have cartslot but rather uploads games thru a DOS/V Windows 95/98 program
|
||||
that works with encrypted files.
|
||||
\- Notice that the available dump is "patched to work on emulators",
|
||||
it normally expect a specific ISA/PCI SCSI board plus a setup/install CD-ROM;
|
||||
- Host HALT override
|
||||
\- maps thru the "cartslot" space, adds extra state signals to the joypad
|
||||
(up + down reads halts, left + right unhalts)
|
||||
|
||||
*/
|
||||
|
||||
#include "emu.h"
|
||||
#include "n64.h"
|
||||
|
||||
#include "emupal.h"
|
||||
#include "screen.h"
|
||||
#include "softlist.h"
|
||||
#include "speaker.h"
|
||||
|
||||
class n64_gateway_state : public n64_state
|
||||
{
|
||||
public:
|
||||
n64_gateway_state(const machine_config& mconfig, device_type type, const char* tag) :
|
||||
n64_state(mconfig, type, tag)
|
||||
{ }
|
||||
|
||||
void n64_lodgenet_map(address_map &map);
|
||||
void n64_lodgenet(machine_config &config);
|
||||
|
||||
private:
|
||||
void n64_map(address_map &map);
|
||||
DECLARE_DEVICE_IMAGE_LOAD_MEMBER(cart_load);
|
||||
|
||||
void rsp_imem_map(address_map &map);
|
||||
void rsp_dmem_map(address_map &map);
|
||||
};
|
||||
|
||||
void n64_gateway_state::n64_lodgenet_map(address_map &map)
|
||||
{
|
||||
map(0x00000000, 0x007fffff).ram().share("rdram"); // RDRAM
|
||||
map(0x03f00000, 0x03f00027).rw("rcp", FUNC(n64_periphs::rdram_reg_r), FUNC(n64_periphs::rdram_reg_w));
|
||||
map(0x04000000, 0x04000fff).ram().share("rsp_dmem"); // RSP DMEM
|
||||
map(0x04001000, 0x04001fff).ram().share("rsp_imem"); // RSP IMEM
|
||||
map(0x04040000, 0x040fffff).rw("rcp", FUNC(n64_periphs::sp_reg_r), FUNC(n64_periphs::sp_reg_w)); // RSP
|
||||
map(0x04100000, 0x041fffff).rw("rcp", FUNC(n64_periphs::dp_reg_r), FUNC(n64_periphs::dp_reg_w)); // RDP
|
||||
map(0x04300000, 0x043fffff).rw("rcp", FUNC(n64_periphs::mi_reg_r), FUNC(n64_periphs::mi_reg_w)); // MIPS Interface
|
||||
map(0x04400000, 0x044fffff).rw("rcp", FUNC(n64_periphs::vi_reg_r), FUNC(n64_periphs::vi_reg_w)); // Video Interface
|
||||
map(0x04500000, 0x045fffff).rw("rcp", FUNC(n64_periphs::ai_reg_r), FUNC(n64_periphs::ai_reg_w)); // Audio Interface
|
||||
map(0x04600000, 0x046fffff).rw("rcp", FUNC(n64_periphs::pi_reg_r), FUNC(n64_periphs::pi_reg_w)); // Peripheral Interface
|
||||
map(0x04700000, 0x047fffff).rw("rcp", FUNC(n64_periphs::ri_reg_r), FUNC(n64_periphs::ri_reg_w)); // RDRAM Interface
|
||||
map(0x04800000, 0x048fffff).rw("rcp", FUNC(n64_periphs::si_reg_r), FUNC(n64_periphs::si_reg_w)); // Serial Interface
|
||||
map(0x05000508, 0x0500050b).lr32(NAME([] () { return 0xffffffff; }));
|
||||
map(0x08000000, 0x0801ffff).ram().share("sram"); // Cartridge SRAM
|
||||
map(0x10000000, 0x13ffffff).rom().region("user2", 0); // Cartridge
|
||||
map(0x1fc00000, 0x1fc007bf).rom().region("user1", 0); // PIF ROM
|
||||
map(0x1fc007c0, 0x1fc007ff).rw("rcp", FUNC(n64_periphs::pif_ram_r), FUNC(n64_periphs::pif_ram_w));
|
||||
|
||||
// map(0x0ff70000, 0x0ff70003) Host HALT control
|
||||
}
|
||||
|
||||
void n64_gateway_state::rsp_imem_map(address_map &map)
|
||||
{
|
||||
map(0x00000000, 0x00000fff).ram().share("rsp_imem");
|
||||
}
|
||||
|
||||
void n64_gateway_state::rsp_dmem_map(address_map &map)
|
||||
{
|
||||
map(0x00000000, 0x00000fff).ram().share("rsp_dmem");
|
||||
}
|
||||
|
||||
|
||||
|
||||
static INPUT_PORTS_START( n64_lodgenet )
|
||||
PORT_START("input")
|
||||
PORT_CONFNAME(0x0003, 0x0001, "Controller Port 0 Device")
|
||||
PORT_CONFSETTING(0x00, "None")
|
||||
PORT_CONFSETTING(0x01, "Joypad")
|
||||
// PORT_CONFSETTING(0x02, "Mouse")
|
||||
PORT_BIT( 0xfc, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
// PORT_CONFNAME(0x000C, 0x0000, "Controller Port 1 Device")
|
||||
// PORT_CONFSETTING(0x00, "None")
|
||||
// PORT_CONFSETTING(0x04, "Joypad")
|
||||
// PORT_CONFSETTING(0x08, "Mouse")
|
||||
// PORT_CONFNAME(0x0030, 0x0000, "Controller Port 2 Device")
|
||||
// PORT_CONFSETTING(0x00, "None")
|
||||
// PORT_CONFSETTING(0x10, "Joypad")
|
||||
// PORT_CONFSETTING(0x20, "Mouse")
|
||||
// PORT_CONFNAME(0x00C0, 0x0000, "Controller Port 3 Device")
|
||||
// PORT_CONFSETTING(0x00, "None")
|
||||
// PORT_CONFSETTING(0x40, "Joypad")
|
||||
// PORT_CONFSETTING(0x80, "Mouse")
|
||||
|
||||
PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
|
||||
// PORT_CONFNAME(0x0100, 0x0000, "Disk Drive")
|
||||
// PORT_CONFSETTING(0x0000, "Retail")
|
||||
// PORT_CONFSETTING(0x0100, "Development")
|
||||
//
|
||||
|
||||
PORT_CONFNAME(0xC000, 0x8000, "EEPROM Size")
|
||||
PORT_CONFSETTING(0x0000, "None")
|
||||
PORT_CONFSETTING(0x8000, "4KB")
|
||||
PORT_CONFSETTING(0xC000, "16KB")
|
||||
|
||||
//Player 1
|
||||
// TODO: extra buttons
|
||||
PORT_START("P1")
|
||||
PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(1) PORT_NAME("P1 Button A / Left Click")
|
||||
PORT_BIT( 0x4000, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(1) PORT_NAME("P1 Button B / Right Click")
|
||||
PORT_BIT( 0x2000, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_PLAYER(1) PORT_NAME("P1 Button Z")
|
||||
PORT_BIT( 0x1000, IP_ACTIVE_HIGH, IPT_START ) PORT_PLAYER(1) PORT_NAME("P1 Start")
|
||||
PORT_BIT( 0x0800, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_PLAYER(1) PORT_NAME("P1 Joypad \xE2\x86\x91") /* Up */
|
||||
PORT_BIT( 0x0400, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_PLAYER(1) PORT_NAME("P1 Joypad \xE2\x86\x93") /* Down */
|
||||
PORT_BIT( 0x0200, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_PLAYER(1) PORT_NAME("P1 Joypad \xE2\x86\x90") /* Left */
|
||||
PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(1) PORT_NAME("P1 Joypad \xE2\x86\x92") /* Right */
|
||||
PORT_BIT( 0x00c0, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
PORT_BIT( 0x0020, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_PLAYER(1) PORT_NAME("P1 Button L")
|
||||
PORT_BIT( 0x0010, IP_ACTIVE_HIGH, IPT_BUTTON5 ) PORT_PLAYER(1) PORT_NAME("P1 Button R")
|
||||
PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_BUTTON6 ) PORT_PLAYER(1) PORT_NAME("P1 Button C \xE2\x86\x91") /* Up */
|
||||
PORT_BIT( 0x0004, IP_ACTIVE_HIGH, IPT_BUTTON7 ) PORT_PLAYER(1) PORT_NAME("P1 Button C \xE2\x86\x93") /* Down */
|
||||
PORT_BIT( 0x0002, IP_ACTIVE_HIGH, IPT_BUTTON8 ) PORT_PLAYER(1) PORT_NAME("P1 Button C \xE2\x86\x90") /* Left */
|
||||
PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_BUTTON9 ) PORT_PLAYER(1) PORT_NAME("P1 Button C \xE2\x86\x92") /* Right */
|
||||
|
||||
PORT_START("P1_ANALOG_X")
|
||||
PORT_BIT( 0xff, 0x80, IPT_AD_STICK_X ) PORT_MINMAX(0x00,0xff) PORT_SENSITIVITY(30) PORT_KEYDELTA(30) PORT_PLAYER(1)
|
||||
|
||||
PORT_START("P1_ANALOG_Y")
|
||||
PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Y ) PORT_MINMAX(0x00,0xff) PORT_SENSITIVITY(30) PORT_KEYDELTA(30) PORT_PLAYER(1) PORT_REVERSE
|
||||
|
||||
PORT_START("P1_MOUSE_X")
|
||||
PORT_BIT( 0xffff, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
|
||||
PORT_START("P1_MOUSE_Y")
|
||||
PORT_BIT( 0xffff, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
|
||||
//Player 2
|
||||
PORT_START("P2")
|
||||
PORT_BIT( 0xffff, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
|
||||
PORT_START("P2_ANALOG_X")
|
||||
PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
|
||||
PORT_START("P2_ANALOG_Y")
|
||||
PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
|
||||
PORT_START("P2_MOUSE_X")
|
||||
PORT_BIT( 0xffff, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
|
||||
PORT_START("P2_MOUSE_Y")
|
||||
PORT_BIT( 0xffff, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
|
||||
//Player 3
|
||||
PORT_START("P3")
|
||||
PORT_BIT( 0xffff, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
|
||||
PORT_START("P3_ANALOG_X")
|
||||
PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
|
||||
PORT_START("P3_ANALOG_Y")
|
||||
PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
|
||||
PORT_START("P3_MOUSE_X")
|
||||
PORT_BIT( 0xffff, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
|
||||
PORT_START("P3_MOUSE_Y")
|
||||
PORT_BIT( 0xffff, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
|
||||
//Player 4
|
||||
PORT_START("P4")
|
||||
PORT_BIT( 0xffff, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
|
||||
PORT_START("P4_ANALOG_X")
|
||||
PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
|
||||
PORT_START("P4_ANALOG_Y")
|
||||
PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
|
||||
PORT_START("P4_MOUSE_X")
|
||||
PORT_BIT( 0xffff, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
|
||||
PORT_START("P4_MOUSE_Y")
|
||||
PORT_BIT( 0xffff, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
|
||||
PORT_START("RESET")
|
||||
PORT_BIT( 0xffff, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
// no reset button available
|
||||
// PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Warm Reset") PORT_CODE(KEYCODE_3)
|
||||
|
||||
INPUT_PORTS_END
|
||||
|
||||
// TODO: c&p from n64.cpp, shouldn't have this at all
|
||||
DEVICE_IMAGE_LOAD_MEMBER(n64_gateway_state::cart_load)
|
||||
{
|
||||
int i, length;
|
||||
uint8_t *cart = memregion("user2")->base();
|
||||
|
||||
if (!image.loaded_through_softlist())
|
||||
{
|
||||
length = image.fread(cart, 0x4000000);
|
||||
}
|
||||
else
|
||||
{
|
||||
length = image.get_software_region_length("rom");
|
||||
memcpy(cart, image.get_software_region("rom"), length);
|
||||
}
|
||||
m_rcp_periphs->cart_length = length;
|
||||
|
||||
if (cart[0] == 0x37 && cart[1] == 0x80)
|
||||
{
|
||||
for (i = 0; i < length; i += 4)
|
||||
{
|
||||
uint8_t b1 = cart[i + 0];
|
||||
uint8_t b2 = cart[i + 1];
|
||||
uint8_t b3 = cart[i + 2];
|
||||
uint8_t b4 = cart[i + 3];
|
||||
cart[i + 0] = b3;
|
||||
cart[i + 1] = b4;
|
||||
cart[i + 2] = b1;
|
||||
cart[i + 3] = b2;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
for (i = 0; i < length; i += 4)
|
||||
{
|
||||
uint8_t b1 = cart[i + 0];
|
||||
uint8_t b2 = cart[i + 1];
|
||||
uint8_t b3 = cart[i + 2];
|
||||
uint8_t b4 = cart[i + 3];
|
||||
cart[i + 0] = b4;
|
||||
cart[i + 1] = b3;
|
||||
cart[i + 2] = b2;
|
||||
cart[i + 3] = b1;
|
||||
}
|
||||
}
|
||||
|
||||
m_rcp_periphs->m_nvram_image = &image.device();
|
||||
|
||||
logerror("cart length = %d\n", length);
|
||||
|
||||
device_image_interface *battery_image = dynamic_cast<device_image_interface *>(m_rcp_periphs->m_nvram_image);
|
||||
if (battery_image)
|
||||
{
|
||||
//printf("Loading\n");
|
||||
uint8_t data[0x30800];
|
||||
battery_image->battery_load(data, 0x30800, 0x00);
|
||||
if (m_sram != nullptr)
|
||||
{
|
||||
memcpy(m_sram, data, 0x20000);
|
||||
}
|
||||
memcpy(m_rcp_periphs->m_save_data.eeprom, data + 0x20000, 0x800);
|
||||
//memcpy(m_rcp_periphs->m_save_data.mempak[0], data + 0x20800, 0x8000);
|
||||
//memcpy(m_rcp_periphs->m_save_data.mempak[1], data + 0x28800, 0x8000);
|
||||
}
|
||||
|
||||
//if (m_rcp_periphs->m_save_data.mempak[0][0] == 0) // Init if new
|
||||
//{
|
||||
//memset(m_rcp_periphs->m_save_data.eeprom, 0, 0x800);
|
||||
//mempak_format(m_rcp_periphs->m_save_data.mempak[0]);
|
||||
//mempak_format(m_rcp_periphs->m_save_data.mempak[1]);
|
||||
//}
|
||||
|
||||
return std::make_pair(std::error_condition(), std::string());
|
||||
}
|
||||
|
||||
void n64_gateway_state::n64_lodgenet(machine_config &config)
|
||||
{
|
||||
VR4300BE(config, m_vr4300, 93750000);
|
||||
m_vr4300->set_force_no_drc(false);
|
||||
//m_vr4300->set_icache_size(16384);
|
||||
//m_vr4300->set_dcache_size(8192);
|
||||
//m_vr4300->set_system_clock(62500000);
|
||||
m_vr4300->set_addrmap(AS_PROGRAM, &n64_gateway_state::n64_lodgenet_map);
|
||||
// m_vr4300->set_vblank_int("screen", FUNC(n64_console_state::n64_reset_poll));
|
||||
|
||||
RSP(config, m_rsp, 62500000);
|
||||
m_rsp->set_force_no_drc(false);
|
||||
m_rsp->dp_reg_r().set(m_rcp_periphs, FUNC(n64_periphs::dp_reg_r));
|
||||
m_rsp->dp_reg_w().set(m_rcp_periphs, FUNC(n64_periphs::dp_reg_w));
|
||||
m_rsp->sp_reg_r().set(m_rcp_periphs, FUNC(n64_periphs::sp_reg_r));
|
||||
m_rsp->sp_reg_w().set(m_rcp_periphs, FUNC(n64_periphs::sp_reg_w));
|
||||
m_rsp->status_set().set(m_rcp_periphs, FUNC(n64_periphs::sp_set_status));
|
||||
m_rsp->set_addrmap(AS_PROGRAM, &n64_gateway_state::rsp_imem_map);
|
||||
m_rsp->set_addrmap(AS_DATA, &n64_gateway_state::rsp_dmem_map);
|
||||
|
||||
config.set_maximum_quantum(attotime::from_hz(500000));
|
||||
|
||||
/* video hardware */
|
||||
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
|
||||
/* Video DACRATE is for quarter pixels, so the horizontal is also given in quarter pixels. However, the horizontal and vertical timing and sizing is adjustable by register and will be reset when the registers are written. */
|
||||
screen.set_raw(DACRATE_NTSC*2,3093,0,3093,525,0,525);
|
||||
screen.set_screen_update(FUNC(n64_state::screen_update_n64));
|
||||
screen.screen_vblank().set(FUNC(n64_state::screen_vblank_n64));
|
||||
|
||||
PALETTE(config, "palette").set_entries(0x1000);
|
||||
|
||||
SPEAKER(config, "lspeaker").front_left();
|
||||
SPEAKER(config, "rspeaker").front_right();
|
||||
|
||||
DMADAC(config, "dac2").add_route(ALL_OUTPUTS, "lspeaker", 1.0);
|
||||
DMADAC(config, "dac1").add_route(ALL_OUTPUTS, "rspeaker", 1.0);
|
||||
|
||||
N64PERIPH(config, m_rcp_periphs, 0);
|
||||
|
||||
/* cartridge */
|
||||
generic_cartslot_device &cartslot(GENERIC_CARTSLOT(config, "cartslot", generic_plain_slot, "n64_cart", "v64,z64,rom,n64,bin"));
|
||||
cartslot.set_must_be_loaded(true);
|
||||
cartslot.set_device_load(FUNC(n64_gateway_state::cart_load));
|
||||
|
||||
|
||||
SOFTWARE_LIST(config, "cart_list").set_original("n64_lodgenet");
|
||||
}
|
||||
|
||||
ROM_START( n64_lodgenet )
|
||||
ROM_REGION( 0x20000, "gateway64", ROMREGION_ERASEFF )
|
||||
// unknown CPU/controller, likely multiple ROMs for set-top box & game data receiver.
|
||||
ROM_LOAD( "gateway64.bios", 0, 0x20000, NO_DUMP )
|
||||
|
||||
ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASEFF ) /* dummy region for R4300 */
|
||||
|
||||
ROM_REGION32_BE( 0x800, "user1", 0 )
|
||||
ROM_LOAD( "pifdata.bin", 0x0000, 0x0800, CRC(5ec82be9) SHA1(9174eadc0f0ea2654c95fd941406ab46b9dc9bdd) )
|
||||
|
||||
ROM_REGION32_BE( 0x4000000, "user2", ROMREGION_ERASEFF)
|
||||
|
||||
ROM_REGION16_BE( 0x80, "normpoint", 0 )
|
||||
ROM_LOAD( "normpnt.rom", 0x00, 0x80, CRC(e7f2a005) SHA1(c27b4a364a24daeee6e99fd286753fd6216362b4) )
|
||||
|
||||
ROM_REGION16_BE( 0x80, "normslope", 0 )
|
||||
ROM_LOAD( "normslp.rom", 0x00, 0x80, CRC(4f2ae525) SHA1(eab43f8cc52c8551d9cff6fced18ef80eaba6f05) )
|
||||
ROM_END
|
||||
|
||||
CONS(1997?, n64_lodgenet, n64, 0, n64_lodgenet, n64_lodgenet, n64_gateway_state, empty_init, "Nintendo / LodgeNet", "Nintendo Gateway 64", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS )
|
Loading…
Reference in a new issue