mirror of
https://github.com/holub/mame
synced 2025-10-04 00:23:43 +03:00
Cleanups and version bump
This commit is contained in:
parent
c1230f8b9b
commit
68785dccfe
@ -4,8 +4,8 @@
|
||||
-->
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
package="org.mamedev.mame"
|
||||
android:versionCode="173"
|
||||
android:versionName="0.173"
|
||||
android:versionCode="174"
|
||||
android:versionName="0.174"
|
||||
android:installLocation="auto">
|
||||
|
||||
<!-- Android 4.0 -->
|
||||
|
@ -883,8 +883,8 @@ Compiled by K1W1
|
||||
<feature name="slot" value="a800_16k" />
|
||||
<dataarea name="rom" size="16384">
|
||||
<rom name="microsoft basic ii programming language.rom" size="16384" crc="24391ffb" sha1="9f0ee797e07bbc74d5d7b664157a80019634172d" offset="0" /> <!-- Verified -->
|
||||
</dataarea>
|
||||
</part>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="aartist">
|
||||
@ -1069,7 +1069,7 @@ Compiled by K1W1
|
||||
<feature name="slot" value="a800_ossm091" />
|
||||
<dataarea name="rom" size="16384">
|
||||
<rom name="basic xe programming language v7.2.rom" size="16384" crc="3f06b111" sha1="ac80e12fcd7e228e0329ba1a2f3408b37af0b7ff" offset="0" />
|
||||
</dataarea>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
@ -1877,7 +1877,7 @@ Compiled by K1W1
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="defendr2" cloneof="defender">
|
||||
<description>Defender Rev. 2</description>
|
||||
<!-- Appears to be an ealier prototype version. -->
|
||||
@ -2730,7 +2730,7 @@ Compiled by K1W1
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="is5000" cloneof="is7000">
|
||||
<description>INFO/soft 5000 Graphic Generator v5.3</description>
|
||||
<year>1986</year>
|
||||
@ -5041,7 +5041,7 @@ Compiled by K1W1
|
||||
<part name="cart" interface="a8bit_cart">
|
||||
<feature name="slot" value="a800_oss034m" />
|
||||
<dataarea name="rom" size="16384">
|
||||
<rom name="spectraview-ii v201 (198x)(display systems international).rom" size="16384" crc="77c75598" sha1="e7e8d8919c420770bde5da39cbb47d9d1e89a40b" offset="0" />
|
||||
<rom name="spectraview-ii v201 (198x)(display systems international).rom" size="16384" crc="77c75598" sha1="e7e8d8919c420770bde5da39cbb47d9d1e89a40b" offset="0" />
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
@ -5331,7 +5331,7 @@ Compiled by K1W1
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="synass" cloneof="synassxl">
|
||||
<description>Synassembler v4.0</description>
|
||||
<!-- This cartridge was a special order product and available on EPROM only -->
|
||||
@ -5577,7 +5577,7 @@ Compiled by K1W1
|
||||
<feature name="slot" value="a800_oss8k" />
|
||||
<dataarea name="rom" size="8192">
|
||||
<rom name="the writer's tool.rom" size="8192" crc="13bcf201" sha1="7de7b160c60f162b19f45789db07ddfd13836da2" offset="0" />
|
||||
</dataarea>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
@ -403,7 +403,7 @@
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="b1bomber">
|
||||
<description>B1-Nuclear Bomber</description>
|
||||
<year>1981</year>
|
||||
@ -415,7 +415,7 @@
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="ccchomp">
|
||||
<description>Crush, Crumble and Chomp!</description>
|
||||
<year>1981</year>
|
||||
@ -428,7 +428,7 @@
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="mbasic2x">
|
||||
<description>Microsoft BASIC II Programming Language (Extensions)</description>
|
||||
<year>1982</year>
|
||||
@ -441,7 +441,7 @@
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="basxe41x">
|
||||
<description>Basic XE Programming Language v4.1 (Extensions)</description>
|
||||
<year>1986</year>
|
||||
@ -455,7 +455,7 @@
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="writer">
|
||||
<description>The Writer's Tool</description>
|
||||
<year>1985</year>
|
||||
|
@ -1,8 +1,8 @@
|
||||
<?xml version="1.0"?>
|
||||
<!DOCTYPE softwarelist SYSTEM "softwarelist.dtd">
|
||||
<!--
|
||||
<!--
|
||||
Thanks to DCALICE (http://alice32.free.fr) for info!
|
||||
|
||||
|
||||
TODO: split Alice 4k tapes into their own softlist
|
||||
-->
|
||||
<softwarelist name="alice32" description="Matra Alice 32 cassettes">
|
||||
|
File diff suppressed because it is too large
Load Diff
368
hash/gameboy.xml
368
hash/gameboy.xml
File diff suppressed because it is too large
Load Diff
@ -1,15 +1,15 @@
|
||||
<?xml version="1.0"?>
|
||||
<!DOCTYPE softwarelist SYSTEM "softwarelist.dtd">
|
||||
|
||||
<!--
|
||||
<!--
|
||||
|
||||
Dumps are not yet verified as good, although most have been confirmed to run on a flash cart
|
||||
|
||||
|
||||
the 3-in-1 internal ROM of the system is not yet dumped: it contains the games
|
||||
|
||||
* 2003
|
||||
* Drifter
|
||||
* Miner
|
||||
* 2003
|
||||
* Drifter
|
||||
* Miner
|
||||
-->
|
||||
|
||||
<softwarelist name="gameking" description="TimeTop GameKing cartridges">
|
||||
|
40
hash/gba.xml
40
hash/gba.xml
@ -921,7 +921,7 @@ Note: In the AGB-E05-XX and AGB-E06-XX pcbs, the chip name is hidden under the b
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="metrdfsnp2" cloneof="metrdfsn">
|
||||
<description>Metroid Fusion (Euro, Prototype 20020911)</description>
|
||||
<year>2002</year>
|
||||
@ -934,7 +934,7 @@ Note: In the AGB-E05-XX and AGB-E06-XX pcbs, the chip name is hidden under the b
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="metrdfsnp1" cloneof="metrdfsn">
|
||||
<description>Metroid Fusion (Euro, Prototype 20020916)</description>
|
||||
<year>2002</year>
|
||||
@ -2204,7 +2204,7 @@ Note: In the AGB-E05-XX and AGB-E06-XX pcbs, the chip name is hidden under the b
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="metroid0up" cloneof="metroid0">
|
||||
<description>Metroid - Zero Mission (USA, Prototype)</description>
|
||||
<year>2004</year>
|
||||
@ -7082,7 +7082,7 @@ Note: In the AGB-E05-XX and AGB-E06-XX pcbs, the chip name is hidden under the b
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="boktai">
|
||||
<description>Boktai - The Sun Is in Your Hand (Euro)</description>
|
||||
<year>2004</year>
|
||||
@ -7096,14 +7096,14 @@ Note: In the AGB-E05-XX and AGB-E06-XX pcbs, the chip name is hidden under the b
|
||||
<feature name="u4" value="U4 74LV4040" /><!-- 37C7E1K -->
|
||||
<feature name="u5" value="U5 TLV272" />
|
||||
<feature name="bt1" value="CR1616" />
|
||||
|
||||
|
||||
<feature name="slot" value="gba_eeprom_64k" />
|
||||
<dataarea name="rom" size="16777216">
|
||||
<rom name="boktai - the sun is in your hand (europe) (en,fr,de,es,it).bin" size="16777216" crc="9686c36b" sha1="64f7bf0f0560f6e94da33b549d3206678b29f557" offset="000000" />
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="boktaiud" cloneof="boktai">
|
||||
<description>Boktai - The Sun Is in Your Hand (USA, Demo)</description>
|
||||
<year>2003</year>
|
||||
@ -8993,7 +8993,7 @@ Note: In the AGB-E05-XX and AGB-E06-XX pcbs, the chip name is hidden under the b
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="n_cvania">
|
||||
<description>NES Classics - Castlevania (Euro)</description>
|
||||
<year>2004</year>
|
||||
@ -11598,7 +11598,7 @@ Note: In the AGB-E05-XX and AGB-E06-XX pcbs, the chip name is hidden under the b
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="dobchobi">
|
||||
<description>Doubutsu-jima no Chobigurumi (Jpn, Rev. 1)</description>
|
||||
<year>2003</year>
|
||||
@ -13031,7 +13031,7 @@ Note: In the AGB-E05-XX and AGB-E06-XX pcbs, the chip name is hidden under the b
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="extskateu" cloneof="extskate">
|
||||
<description>Disney's Extreme Skate Adventure (USA, Rev. 1)</description>
|
||||
<year>2003</year>
|
||||
@ -14559,7 +14559,7 @@ Note: In the AGB-E05-XX and AGB-E06-XX pcbs, the chip name is hidden under the b
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="firembssjp" cloneof="firembss">
|
||||
<description>Fire Emblem - Seima no Kouseki (Jpn, Prototype)</description>
|
||||
<year>2004</year>
|
||||
@ -15502,7 +15502,7 @@ Note: In the AGB-E05-XX and AGB-E06-XX pcbs, the chip name is hidden under the b
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="v_dccol2">
|
||||
<description>Game Boy Advance Video - Disney Channel Collection - Volume 2 (USA)</description>
|
||||
<year>2004?</year>
|
||||
@ -15650,7 +15650,7 @@ Note: In the AGB-E05-XX and AGB-E06-XX pcbs, the chip name is hidden under the b
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="v_sharkta" cloneof="v_sharkt" supported="no">
|
||||
<description>Game Boy Advance Video - Shark Tale (USA, Rev. 5)</description>
|
||||
<year>2004?</year>
|
||||
@ -22608,7 +22608,7 @@ Note: In the AGB-E05-XX and AGB-E06-XX pcbs, the chip name is hidden under the b
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="marivsdkud" cloneof="marivsdk">
|
||||
<description>Mario vs. Donkey Kong (USA, Kiosk, v16)</description>
|
||||
<year>2004</year>
|
||||
@ -23740,7 +23740,7 @@ Note: In the AGB-E05-XX and AGB-E06-XX pcbs, the chip name is hidden under the b
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="metroid0p" cloneof="metroid0">
|
||||
<description>Metroid - Zero Mission (Euro, Prototype)</description>
|
||||
<year>2004</year>
|
||||
@ -25352,7 +25352,7 @@ Note: In the AGB-E05-XX and AGB-E06-XX pcbs, the chip name is hidden under the b
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="nakayouc">
|
||||
<description>Nakayoshi Youchien - Sukoyaka Enji Ikusei Game (Jpn, Rev. 1)</description>
|
||||
<year>2002</year>
|
||||
@ -25486,7 +25486,7 @@ Note: In the AGB-E05-XX and AGB-E06-XX pcbs, the chip name is hidden under the b
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="narutoks">
|
||||
<description>Naruto - Konoha Senki (Jpn, Rev. 1)</description>
|
||||
<year>2003</year>
|
||||
@ -26770,7 +26770,7 @@ Note: In the AGB-E05-XX and AGB-E06-XX pcbs, the chip name is hidden under the b
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="petpanrn">
|
||||
<description>Disney's Peter Pan - Return to Neverland (Euro, Rev. 1)</description>
|
||||
<year>2002</year>
|
||||
@ -28248,7 +28248,7 @@ Note: In the AGB-E05-XX and AGB-E06-XX pcbs, the chip name is hidden under the b
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="powrpkp4">
|
||||
<description>Power Pro Kun Pocket 4 (Jpn, Rev. 1)</description>
|
||||
<year>2002</year>
|
||||
@ -31907,7 +31907,7 @@ Note: In the AGB-E05-XX and AGB-E06-XX pcbs, the chip name is hidden under the b
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="stomv4tra" cloneof="stomv4tr">
|
||||
<description>Simple 2960 Tomodachi Series Vol. 4 - The Trump - Minna de Asoberu 12 Shurui no Trump Game (Jpn)</description>
|
||||
<year>2003</year>
|
||||
@ -39345,7 +39345,7 @@ The cart also contained a non-empty SRAM save which we currently include in the
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="yoshia" cloneof="yoshi">
|
||||
<description>Yoshi Demo (Alt?)</description>
|
||||
<year>2001?</year>
|
||||
|
@ -6706,7 +6706,7 @@ List of unconfirmed retail cartridge roms
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="daikatanp" cloneof="daikatan">
|
||||
<!-- Notes: GBC only -->
|
||||
<description>Daikatana (Prototype 20000419)</description>
|
||||
@ -23151,7 +23151,7 @@ List of unconfirmed non retail roms
|
||||
<software name="pocknaka">
|
||||
<!-- Notes: GBC only -->
|
||||
<description>Pocket no Naka no Ookoku (Jpn, Prototype)</description>
|
||||
<year>2000</year> <!-- scheduled to be released January 2001 (3/11/2000 Famitsu) -->
|
||||
<year>2000</year> <!-- scheduled to be released January 2001 (3/11/2000 Famitsu) -->
|
||||
<publisher>Hector</publisher>
|
||||
<info name="alt_title" value="ポケットの中の王国"/>
|
||||
<part name="cart" interface="gameboy_cart">
|
||||
@ -23606,7 +23606,7 @@ These were produced between 2000 and 2001 by Rocket Games, run by Datel Design
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="mc_8in1">
|
||||
<description>8 in 1 (Tw)</description>
|
||||
<year>19??</year>
|
||||
@ -23619,7 +23619,7 @@ These were produced between 2000 and 2001 by Rocket Games, run by Datel Design
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="mc_sac01" supported="no">
|
||||
<description>4 in 1 + 8 in 1 (World, 4B-001)</description>
|
||||
<year>20??</year>
|
||||
@ -23631,7 +23631,7 @@ These were produced between 2000 and 2001 by Rocket Games, run by Datel Design
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="mc_sac02" supported="no">
|
||||
<description>4 in 1 + 8 in 1 (World, 4B-002)</description>
|
||||
<year>19??</year>
|
||||
@ -23644,7 +23644,7 @@ These were produced between 2000 and 2001 by Rocket Games, run by Datel Design
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="mc_sac05" supported="no">
|
||||
<description>4 in 1 + 8 in 1 + 16 in 1 (World, 4B-005)</description>
|
||||
<year>19??</year>
|
||||
@ -23657,7 +23657,7 @@ These were produced between 2000 and 2001 by Rocket Games, run by Datel Design
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="mc_sac07" supported="no">
|
||||
<description>4 in 1 + 8 in 1 (World, 4B-007)</description>
|
||||
<year>19??</year>
|
||||
@ -23670,7 +23670,7 @@ These were produced between 2000 and 2001 by Rocket Games, run by Datel Design
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="mc_6in1">
|
||||
<description>Super 6 in 1 (Tw)</description>
|
||||
<year>19??</year>
|
||||
@ -23683,7 +23683,7 @@ These were produced between 2000 and 2001 by Rocket Games, run by Datel Design
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="mc_16in1">
|
||||
<description>Super 16 in 1 (Tw)</description>
|
||||
<year>19??</year>
|
||||
@ -23925,7 +23925,7 @@ These were produced between 2000 and 2001 by Rocket Games, run by Datel Design
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="digid3">
|
||||
<description>Chao Jin Hua - Shu Ma Bao Long - Zuan Shi Ban (Chi)</description>
|
||||
<year>200?</year>
|
||||
@ -23977,7 +23977,7 @@ These were produced between 2000 and 2001 by Rocket Games, run by Datel Design
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="taikonzs">
|
||||
<description>Taikong Zhan Shi - Jing Dian Ban (Chi)</description>
|
||||
<year>200?</year>
|
||||
@ -24209,7 +24209,7 @@ These were produced between 2000 and 2001 by Rocket Games, run by Datel Design
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="xinshdyx">
|
||||
<description>Xin Shediao Ying Xiong Chuan (Chi)</description>
|
||||
<year>200?</year>
|
||||
@ -24244,7 +24244,7 @@ These were produced between 2000 and 2001 by Rocket Games, run by Datel Design
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="xinguam2">
|
||||
<description>Xin Guangming Yu Hei'an 2 - Zhushen De Yichan (Chi)</description>
|
||||
<year>200?</year>
|
||||
@ -24278,7 +24278,7 @@ These were produced between 2000 and 2001 by Rocket Games, run by Datel Design
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="teshu2k1" cloneof="mslug2k1">
|
||||
<!-- probably developed by BDD -->
|
||||
<description>Teshu Budui 2001 (Chi, Li Cheng)</description>
|
||||
@ -24296,7 +24296,7 @@ These were produced between 2000 and 2001 by Rocket Games, run by Datel Design
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="taikond3">
|
||||
<description>Taikong Zhanshi DX3 - Zui Zhong Huan Xiang (Chi)</description>
|
||||
<year>200?</year>
|
||||
|
@ -335,7 +335,7 @@ and why some of the dumps below have weird size?
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="dremshop">
|
||||
<description>Dream Shopper</description>
|
||||
<year>1983</year>
|
||||
|
@ -9914,7 +9914,7 @@ but dumps still have to be confirmed.
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="advdaisnp" cloneof="advdaisn">
|
||||
<description>Advanced Daisenryaku - Deutsch Dengeki Sakusen (Jpn, Prototype 19910307)</description>
|
||||
<year>1991</year>
|
||||
@ -10521,7 +10521,7 @@ but dumps still have to be confirmed.
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="arielp" cloneof="ariel">
|
||||
<description>Disney's Ariel the Little Mermaid (USA, Prototype 19921010)</description>
|
||||
<year>1992</year>
|
||||
@ -11063,7 +11063,7 @@ but dumps still have to be confirmed.
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="barneyp" cloneof="barney">
|
||||
<description>Barney's Hide & Seek Game (USA, Prototype 19930918)</description>
|
||||
<year>1993</year>
|
||||
@ -11242,7 +11242,7 @@ but dumps still have to be confirmed.
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="beastwp" cloneof="beastw">
|
||||
<description>Beast Wrestler (USA, Prototype 19910913)</description>
|
||||
<year>1991</year>
|
||||
@ -12066,7 +12066,7 @@ but dumps still have to be confirmed.
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="budokanup" cloneof="budokan">
|
||||
<description>Budokan - The Martial Spirit (USA, Prototype 19900925)</description>
|
||||
<year>1990</year>
|
||||
@ -12221,7 +12221,7 @@ but dumps still have to be confirmed.
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="chakanp" cloneof="chakan">
|
||||
<description>Chakan - The Forever Man (Prototype 19921006)</description>
|
||||
<year>1992</year>
|
||||
@ -13540,7 +13540,7 @@ but dumps still have to be confirmed.
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="twinhawkp" cloneof="twinhawk">
|
||||
<description>Daisenpuu (Jpn, Prototype 19900406)</description>
|
||||
<year>1990</year>
|
||||
@ -13590,7 +13590,7 @@ but dumps still have to be confirmed.
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="darwinp" cloneof="darwin">
|
||||
<description>Darwin 4081 (Jpn, Prototype 19900221)</description>
|
||||
<year>1990</year>
|
||||
@ -13659,7 +13659,7 @@ but dumps still have to be confirmed.
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="drscjp" cloneof="drsc">
|
||||
<description>David Robinson's Supreme Court (Jpn, Prototype 19920415)</description>
|
||||
<year>1992</year>
|
||||
@ -14134,7 +14134,7 @@ but dumps still have to be confirmed.
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="ddragon2p" cloneof="ddragon2">
|
||||
<description>Double Dragon II - The Revenge (Jpn, Prototype 19911018)</description>
|
||||
<year>1991</year>
|
||||
@ -14382,7 +14382,7 @@ but dumps still have to be confirmed.
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="dyndukep" cloneof="dynduke">
|
||||
<description>Dynamite Duke (Prototype 19900621)</description>
|
||||
<year>1990</year>
|
||||
@ -14747,7 +14747,7 @@ but dumps still have to be confirmed.
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="steelempp" cloneof="empsteel">
|
||||
<description>Steel Empire (USA, Prototype 19920313)</description>
|
||||
<year>1992</year>
|
||||
@ -15038,7 +15038,7 @@ but dumps still have to be confirmed.
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="exilep" cloneof="exile">
|
||||
<description>Exile (USA, Prototype 19911213)</description>
|
||||
<year>1991</year>
|
||||
@ -15171,7 +15171,7 @@ but dumps still have to be confirmed.
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="f22p2" cloneof="f22">
|
||||
<description>F-22 Interceptor (Prototype 19910917)</description>
|
||||
<year>1991</year>
|
||||
@ -15619,7 +15619,7 @@ but dumps still have to be confirmed.
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="samesamep" cloneof="fireshrk">
|
||||
<description>Same! Same! Same! (Jpn, Prototype 19900730)</description>
|
||||
<year>1990</year>
|
||||
@ -16959,7 +16959,7 @@ but dumps still have to be confirmed.
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="finalbu" cloneof="jbdougko">
|
||||
<description>Final Blow (USA, James 'Buster' Douglas Knockout Boxing Prototype 19900116)</description>
|
||||
<year>1990</year>
|
||||
@ -17179,7 +17179,7 @@ but dumps still have to be confirmed.
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="maddenp" cloneof="madden">
|
||||
<description>John Madden Football (Prototype, 19901107)</description>
|
||||
<year>1990</year>
|
||||
@ -17302,7 +17302,7 @@ but dumps still have to be confirmed.
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="jparkp" cloneof="jpark">
|
||||
<description>Jurassic Park (Euro, Prototype 19930614)</description>
|
||||
<year>1993</year>
|
||||
@ -17324,7 +17324,7 @@ but dumps still have to be confirmed.
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="jparkup2" cloneof="jpark">
|
||||
<description>Jurassic Park (USA, Prototype 19930526)</description>
|
||||
<year>1993</year>
|
||||
@ -17728,7 +17728,7 @@ but dumps still have to be confirmed.
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="landstlkup2" cloneof="landstlk">
|
||||
<description>Landstalker - The Treasures of King Nole (USA, Prototype 19930713)</description>
|
||||
<year>1993</year>
|
||||
@ -18501,7 +18501,7 @@ but dumps still have to be confirmed.
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="mastmonsjp" cloneof="mastmons">
|
||||
<description>Master of Monsters (Jpn, Prototype 19910426)</description>
|
||||
<year>1991</year>
|
||||
@ -19446,7 +19446,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="mystdefp" cloneof="mystdef">
|
||||
<description>Mystic Defender (Prototype, 19890914)</description>
|
||||
<year>1989</year>
|
||||
@ -20483,7 +20483,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="nfl94jp" cloneof="nfl94">
|
||||
<description>NFL Football '94 Starring Joe Montana (Jpn, Prototype 19931104)</description>
|
||||
<year>1994</year>
|
||||
@ -20838,7 +20838,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="ninjabp" cloneof="ninjab">
|
||||
<description>Ninja Burai Densetsu (Jpn, Prototype 19910528)</description>
|
||||
<year>1991</year>
|
||||
@ -21429,7 +21429,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="pebblep" cloneof="pebble">
|
||||
<description>Pebble Beach Golf Links (Prototype, 19940214)</description>
|
||||
<year>1993</year>
|
||||
@ -21892,7 +21892,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="psolar">
|
||||
<description>Pier Solar and the Great Architects (World, Rev. C)</description>
|
||||
<year>2010</year>
|
||||
@ -21904,7 +21904,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="psolara" cloneof="psolar">
|
||||
<description>Pier Solar and the Great Architects (World, Rev. B)</description>
|
||||
<year>2010</year>
|
||||
@ -21916,7 +21916,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="psolarb" cloneof="psolar">
|
||||
<description>Pier Solar and the Great Architects (World, Rev. A)</description>
|
||||
<year>2010</year>
|
||||
@ -21928,7 +21928,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="psolarp" cloneof="psolar">
|
||||
<description>Pier Solar and the Great Architects (World, Prototype)</description>
|
||||
<year>2010</year>
|
||||
@ -24205,7 +24205,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="slaughtrp" cloneof="slaughtr">
|
||||
<description>Slaughter Sport (USA, Prototype 19910927)</description>
|
||||
<year>1991</year>
|
||||
@ -24302,7 +24302,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="soldeacep" cloneof="soldeace">
|
||||
<description>Sol-Deace (USA, Prototype 19920203)</description>
|
||||
<year>1992</year>
|
||||
@ -24976,7 +24976,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="sorcerkjp" cloneof="sorcerk">
|
||||
<description>Sorcer Kingdom (Jpn, 19911108)</description>
|
||||
<year>1992</year>
|
||||
@ -25277,7 +25277,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="starodys">
|
||||
<description>Star Odyssey (USA)</description>
|
||||
<year>2011</year>
|
||||
@ -25291,7 +25291,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="starodysp" cloneof="starodys">
|
||||
<description>Star Odyssey (USA, Prototype 19920116)</description>
|
||||
<year>1990</year>
|
||||
@ -25734,7 +25734,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="ssmartp" cloneof="ssmart">
|
||||
<description>Street Smart (Prototype, 19900629)</description>
|
||||
<year>1991</year>
|
||||
@ -26630,7 +26630,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="trgearthp" cloneof="trgearth">
|
||||
<description>Target Earth (USA, Prototype 19900216)</description>
|
||||
<year>1990</year>
|
||||
@ -26716,7 +26716,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="tecnocopp2" cloneof="tecnocop">
|
||||
<description>Technocop (USA, Prototype 19900912)</description>
|
||||
<year>1990</year>
|
||||
@ -27036,7 +27036,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="termintrp" cloneof="termintr">
|
||||
<description>The Terminator (Prototype, 19920414)</description>
|
||||
<year>1991</year>
|
||||
@ -27125,7 +27125,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="tf3p" cloneof="tf3">
|
||||
<description>Thunder Force III (Prototype 19900801)</description>
|
||||
<year>1990</year>
|
||||
@ -27556,7 +27556,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="traysiap" cloneof="traysia">
|
||||
<description>Traysia (USA, Prototype 19920122)</description>
|
||||
<year>1992</year>
|
||||
@ -27756,7 +27756,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="twocrudep" cloneof="twocrude">
|
||||
<description>Two Crude Dudes (Prototype, 19911124)</description>
|
||||
<year>1992</year>
|
||||
@ -27974,7 +27974,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="valisp" cloneof="valis">
|
||||
<description>Valis (USA, Prototype 19911025)</description>
|
||||
<year>1991</year>
|
||||
@ -28021,7 +28021,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="vaportrp" cloneof="vaportr">
|
||||
<description>Vapor Trail (USA, Prototype 19910526)</description>
|
||||
<year>1991</year>
|
||||
@ -28485,7 +28485,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="warsongp" cloneof="warsong">
|
||||
<description>Warsong (USA, Prototype 19911001)</description>
|
||||
<year>1991</year>
|
||||
@ -28587,7 +28587,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="whiprushp" cloneof="whiprush">
|
||||
<description>Whip Rush (USA, Prototype 19900129)</description>
|
||||
<year>1990</year>
|
||||
@ -28732,7 +28732,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="wboy5p" cloneof="wboymw">
|
||||
<description>Wonder Boy V - Monster World III (Jpn, Prototype 19910725)</description>
|
||||
<year>1991</year>
|
||||
@ -30248,7 +30248,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="ys3p" cloneof="ys3">
|
||||
<description>Ys III (USA, Prototype 19910828)</description>
|
||||
<year>1991</year>
|
||||
@ -30529,7 +30529,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="segachnj" supported="no">
|
||||
<description>Sega Channel (Jpn, v2.11)</description>
|
||||
<year>199?</year>
|
||||
@ -30540,7 +30540,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="segachnjo" cloneof="segachnj" supported="no">
|
||||
<description>Sega Channel (Jpn, v2.11 older)</description>
|
||||
<year>199?</year>
|
||||
|
@ -770,27 +770,27 @@
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
|
||||
|
||||
<!-- This fails to be recognized by floppy loading code? it shall be 2DD plain disk -->
|
||||
<software name="scobol" supported="no">
|
||||
<description>Sharp COBOL</description>
|
||||
<year>198?</year>
|
||||
<publisher>Sharp</publisher>
|
||||
|
||||
|
||||
<part name="flop1" interface="floppy_3_5">
|
||||
<dataarea name="flop" size="655360">
|
||||
<rom name="sharpcobol.hdm" size="655360" crc="898021bb" sha1="c30c5cb99acf6aadba2b7b431935d8446916c673" offset="0" />
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<!-- This fails to be recognized by floppy loading code? it shall be 2DD plain disk -->
|
||||
<software name="scpmwm" supported="no">
|
||||
<description>Personal CP/M + Wordmaster</description>
|
||||
<year>198?</year>
|
||||
<publisher>Sharp</publisher>
|
||||
|
||||
|
||||
<part name="flop1" interface="floppy_3_5">
|
||||
<dataarea name="flop" size="655360">
|
||||
<rom name="sharpcpm.hdm" size="655360" crc="9b3f1d46" sha1="7b901031873437a8824e15ac2577f175b8bffdd4" offset="0" />
|
||||
|
@ -3657,7 +3657,7 @@ patched out (+ a fix for internal checksum)
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="dukenk64p" cloneof="dukenk64">
|
||||
<description>Duke Nukem 64 (Euro, Prototype)</description>
|
||||
<year>1997</year>
|
||||
@ -6491,7 +6491,7 @@ patched out (+ a fix for internal checksum)
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="megamanp" cloneof="megaman">
|
||||
<description>Mega Man 64 (USA, Prototype)</description>
|
||||
<year>2000</year>
|
||||
|
4810
hash/neogeo.xml
4810
hash/neogeo.xml
File diff suppressed because it is too large
Load Diff
28
hash/nes.xml
28
hash/nes.xml
@ -15635,7 +15635,7 @@
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="snowwhit">
|
||||
<description>Happily Ever After Starring Snow White (USA, Prototype)</description>
|
||||
<year>1991</year>
|
||||
@ -29733,7 +29733,7 @@
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="racermt2b" cloneof="racermt2" supported="no">
|
||||
<description>RacerMate Challenge 2 (USA, v5.01.033)</description>
|
||||
<year>1996</year>
|
||||
@ -44047,7 +44047,7 @@ Also notice that VRAM, WRAM & mirror are probably incorrect for some of these se
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="brdtalejs" cloneof="brdtale">
|
||||
<description>The Bard's Tale - Tales of the Unknown (Jpn, Sample)</description>
|
||||
<year>1990</year>
|
||||
@ -44868,7 +44868,7 @@ preliminary proto for the PAL version, still running on NTSC systems) or the gfx
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="columbuss" cloneof="columbus">
|
||||
<description>Columbus - Ougon no Yoake (Jpn, Sample)</description>
|
||||
<year>1992</year>
|
||||
@ -52802,7 +52802,7 @@ preliminary proto for the PAL version, still running on NTSC systems) or the gfx
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="cosmocops" cloneof="cosmocop">
|
||||
<description>Cosmos Cop (Spa)</description>
|
||||
<year>1991</year>
|
||||
@ -61814,7 +61814,7 @@ preliminary proto for the PAL version, still running on NTSC systems) or the gfx
|
||||
<year>19??</year>
|
||||
<publisher><unknown></publisher>
|
||||
<part name="cart" interface="nes_cart">
|
||||
<feature name="slot" value="waixing_sgzlz" /> <!-- Mapper 178 in header, is it really? -->
|
||||
<feature name="slot" value="waixing_sgzlz" /> <!-- Mapper 178 in header, is it really? -->
|
||||
<feature name="pcb" value="WAIXING-SGZLZ" />
|
||||
<dataarea name="prg" size="524288">
|
||||
<rom name="gameinis pingpong (unl)[!].prg" size="524288" crc="d065b311" sha1="a74cddff12eb57735c770542b87af38171d54e8a" offset="00000" status="baddump" />
|
||||
@ -64659,7 +64659,7 @@ All musics were removed in this game.
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="magicarps" cloneof="magicarp">
|
||||
<description>Magic Carpet 1001 (Spa, Rev. 1)</description>
|
||||
<year>19??</year>
|
||||
@ -69195,7 +69195,7 @@ Also notice that VRAM & WRAM are probably incorrect for some of these sets, at t
|
||||
<year>19??</year>
|
||||
<publisher><unknown></publisher>
|
||||
<part name="cart" interface="nes_cart">
|
||||
<feature name="slot" value="edu2k" /> <!-- Marked as mapper 178 in header -->
|
||||
<feature name="slot" value="edu2k" /> <!-- Marked as mapper 178 in header -->
|
||||
<feature name="pcb" value="UNL-EDU2000" />
|
||||
<dataarea name="prg" size="524288">
|
||||
<rom name="bravesoft windows 2000 (r)[!].prg" size="524288" crc="305d75b1" sha1="b6ccfab2c38786e09da662b3488dab2431894dd2" offset="00000" status="baddump" />
|
||||
@ -74321,7 +74321,7 @@ We include them here as reference if they should coincide with later revisions o
|
||||
</dataarea>
|
||||
<dataarea name="prg" size="524288">
|
||||
<rom name="rom city rampage.prg" size="524288" crc="0dc29799" sha1="83cf38b049ea72a108462b2b51afd9c34892a49b" offset="00000" status="baddump" />
|
||||
</dataarea>
|
||||
</dataarea>
|
||||
<!-- 8k WRAM on cartridge, battery backed up -->
|
||||
<dataarea name="bwram" size="32768">
|
||||
<rom value="0x00" size="32768" offset="0" loadflag="fill" />
|
||||
@ -76426,7 +76426,7 @@ be better to redump them properly. -->
|
||||
<year>19??</year>
|
||||
<publisher><unknown></publisher>
|
||||
<part name="cart" interface="nes_cart">
|
||||
<feature name="slot" value="xiaozy" /> <!-- header give 176, but is it correct? -->
|
||||
<feature name="slot" value="xiaozy" /> <!-- header give 176, but is it correct? -->
|
||||
<feature name="pcb" value="UNL-XZY" />
|
||||
<dataarea name="chr" size="1048576">
|
||||
<rom name="125-in-1 [p1][!].chr" size="1048576" crc="56520c13" sha1="9490fdcc34bbf5905098835d748c56ec89d3d5ba" offset="00000" status="baddump" />
|
||||
@ -76918,7 +76918,7 @@ be better to redump them properly. -->
|
||||
<year>19??</year>
|
||||
<publisher><pirate></publisher>
|
||||
<part name="cart" interface="nes_cart">
|
||||
<feature name="slot" value="bmc_hik300" /> <!-- header gives 212, but is it correct? -->
|
||||
<feature name="slot" value="bmc_hik300" /> <!-- header gives 212, but is it correct? -->
|
||||
<feature name="pcb" value="BMC-SUPERHIK-300IN1" />
|
||||
<dataarea name="chr" size="65536">
|
||||
<rom name="200-in-1 (unchained melody)[p1][!].chr" size="65536" crc="aa97eff7" sha1="68ffcb379e3c3ad44b0b5ea4df47118c811d9d0d" offset="00000" status="baddump" />
|
||||
@ -76934,7 +76934,7 @@ be better to redump them properly. -->
|
||||
<year>19??</year>
|
||||
<publisher><pirate></publisher>
|
||||
<part name="cart" interface="nes_cart">
|
||||
<feature name="slot" value="bmc_gc6in1" /> <!-- header gives 217, but is it correct? -->
|
||||
<feature name="slot" value="bmc_gc6in1" /> <!-- header gives 217, but is it correct? -->
|
||||
<feature name="pcb" value="BMC-GOLDENCARD-6IN1" />
|
||||
<dataarea name="chr" size="65536">
|
||||
<rom name="2000-in-1 (no splash, no rev, alt mapper)[p1][!].chr" size="65536" crc="4a0611c1" sha1="8a1869ce3aff1c34a743c9cc3f22f01df5be2c77" offset="00000" status="baddump" />
|
||||
@ -79024,7 +79024,7 @@ be better to redump them properly. -->
|
||||
<year>19??</year>
|
||||
<publisher><pirate></publisher>
|
||||
<part name="cart" interface="nes_cart">
|
||||
<feature name="slot" value="bmc_hik300" /> <!-- header gives 212, but is it correct? -->
|
||||
<feature name="slot" value="bmc_hik300" /> <!-- header gives 212, but is it correct? -->
|
||||
<feature name="pcb" value="BMC-SUPERHIK-300IN1" />
|
||||
<dataarea name="chr" size="65536">
|
||||
<rom name="9999-in-1 (anim splash, rev 13)[p1][!].chr" size="65536" crc="9b6e8be7" sha1="4c53a3d5e510c4355041b9ad88f1e633ce85f916" offset="00000" status="baddump" />
|
||||
@ -81055,7 +81055,7 @@ that the real dumps might surface -->
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
|
||||
<!-- TO SORT AND RENAME PROPERLY!!! -->
|
||||
|
||||
|
@ -54999,7 +54999,7 @@ ExtractDisk [11]"MagicCopy3.7 " -> "magic copy 2 ver2.8-3.7_11.d88" 79b4c6af
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="magicopy33a" cloneof="magicopy">
|
||||
<description>Magic Copy II ver 3.3 (Alt)</description>
|
||||
<year>1985</year>
|
||||
@ -55021,7 +55021,7 @@ ExtractDisk [11]"MagicCopy3.7 " -> "magic copy 2 ver2.8-3.7_11.d88" 79b4c6af
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="magicopy34a" cloneof="magicopy">
|
||||
<description>Magic Copy II ver 3.4 (Alt)</description>
|
||||
<year>1986</year>
|
||||
@ -55942,13 +55942,13 @@ ExtractDisk [02]"DATA " -> "musium 3_02.d88"
|
||||
<description>Musium 3 (Alt)</description>
|
||||
<year>19??</year>
|
||||
<publisher><unknown></publisher>
|
||||
|
||||
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<dataarea name="flop" size="348848">
|
||||
<rom name="musium3_01.d88" size="348848" crc="691cb9d6" sha1="de57c4cdddcd71042fa00c88f2e107fc6024b50e" offset="0" />
|
||||
</dataarea>
|
||||
</part>
|
||||
|
||||
|
||||
<part name="flop2" interface="floppy_5_25">
|
||||
<dataarea name="flop" size="348848">
|
||||
<rom name="musium3_02.d88" size="348848" crc="cf4179af" sha1="79121bbec7e30408a9cb1f19f33ab260479d4636" offset="0" />
|
||||
@ -57217,7 +57217,7 @@ ExtractDisk [14]"EXPRESS 14 " -> "hot file_14.d88"
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="hotfil34">
|
||||
<description>Hot File Disk No.5</description>
|
||||
<year>19??</year>
|
||||
|
@ -4480,7 +4480,7 @@ only have some part of Windows file and a Video driver(CLGD?).
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="aress">
|
||||
<description>Aress Ou no Monogatari - The Story of King Aress</description>
|
||||
<year>1994</year>
|
||||
@ -41601,7 +41601,7 @@ Requires MS-DOS 5.00H plus an unknown procedure (HDD install?)
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="vga" cloneof="vg">
|
||||
<description>V.G. - Variable Geo (Alt)</description>
|
||||
<year>1993</year>
|
||||
@ -64032,7 +64032,7 @@ doujin?!?
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="yumeyare">
|
||||
<description>Yume de Yaretara</description>
|
||||
<year>19??</year>
|
||||
|
@ -192,7 +192,7 @@
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
|
||||
<!--Daisenpu -->
|
||||
<software name="daisenpu">
|
||||
<description>Daisenpu (Tourvision PCE bootleg)</description>
|
||||
|
@ -7,19 +7,19 @@
|
||||
List of software from ja.wikipedia.org (which might miss some later re-release)
|
||||
|
||||
* 進研ゼミ 中学講座
|
||||
中1数学 [dumped]
|
||||
中1数学 [dumped]
|
||||
中2数学
|
||||
実技4教科 [dumped x 2]
|
||||
実技4教科 [dumped x 2]
|
||||
中学理科 (1分野)
|
||||
中学理科 (2分野)
|
||||
中学理科パック [dumped x 2]
|
||||
中学理科パック [dumped x 2]
|
||||
中学地理
|
||||
中学歴史
|
||||
中学地理・歴史パック [dumped x 3]
|
||||
中1 ENGLISH [dumped]
|
||||
中学地理・歴史パック [dumped x 3]
|
||||
中1 ENGLISH [dumped]
|
||||
中2 ENGLISH
|
||||
中学公民
|
||||
中一国語・百人一首 [dumped]
|
||||
中一国語・百人一首 [dumped]
|
||||
中1 英数国パック
|
||||
中2 英数国パック
|
||||
中3 英・数・公民パック
|
||||
|
@ -6,31 +6,31 @@
|
||||
List of software from ja.wikipedia.org
|
||||
Notice that this list might be missing different variants (for different ages),
|
||||
and it was indeed missing the existence of two Chuugaku Koumin carts.
|
||||
|
||||
|
||||
* Shinkenzemi Koukou Kouza ~ 進研ゼミ 高校講座
|
||||
頻出英単語
|
||||
頻出英熟語 [dumped]
|
||||
頻出英熟語 [dumped]
|
||||
重要英語構文
|
||||
重要古文攻略 [dumped]
|
||||
重要古文攻略 [dumped]
|
||||
頻出世界史攻略
|
||||
頻出日本史攻略
|
||||
|
||||
|
||||
|
||||
|
||||
* Shinkenzemi Chuugaku Kouza ~ 進研ゼミ 中学講座
|
||||
中一英語
|
||||
中二英語
|
||||
中三英語
|
||||
中学理科(1分野)
|
||||
中学理科(2分野)
|
||||
中学理科パック [dumped]
|
||||
中学理科パック [dumped]
|
||||
中学歴史
|
||||
中学地理 [dumped]
|
||||
中学地理・歴史パック [dumped]
|
||||
中学公民 [dumped x2]
|
||||
高校受験(国・数) [dumped]
|
||||
高校受験(英・社・理) [dumped]
|
||||
実技4教科 [dumped]
|
||||
|
||||
中学地理 [dumped]
|
||||
中学地理・歴史パック [dumped]
|
||||
中学公民 [dumped x2]
|
||||
高校受験(国・数) [dumped]
|
||||
高校受験(英・社・理) [dumped]
|
||||
実技4教科 [dumped]
|
||||
|
||||
-->
|
||||
|
||||
|
||||
@ -57,7 +57,7 @@
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="chukomnn" supported="no" >
|
||||
<description>Shinkenzemi Chuugaku Kouza - Chuugaku Koumin (NK)</description>
|
||||
<year>2000?</year>
|
||||
@ -78,7 +78,7 @@
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="chuchi" supported="no" >
|
||||
<description>Shinkenzemi Chuugaku Kouza - Chuugaku Chiri (9C)</description>
|
||||
<year>2000?</year>
|
||||
@ -112,12 +112,12 @@
|
||||
<feature name="u2" value="74HC139A" />
|
||||
<feature name="u3" value="7W32F" />
|
||||
<feature name="u4" value="7W00F" />
|
||||
<feature name="u5" value="[unpopulated]" /> <!-- space for a TC7W04 -->
|
||||
<feature name="u6" value="[unpopulated]" /> <!-- space for a 74HC125 -->
|
||||
<feature name="u7" value="[unpopulated]" /> <!-- space for a TC7W08 -->
|
||||
<feature name="u5" value="[unpopulated]" /> <!-- space for a TC7W04 -->
|
||||
<feature name="u6" value="[unpopulated]" /> <!-- space for a 74HC125 -->
|
||||
<feature name="u7" value="[unpopulated]" /> <!-- space for a TC7W08 -->
|
||||
<feature name="u8" value="74HC573A" />
|
||||
<feature name="u9" value="PS 0BD400 00REPCS C1D1" /> <!-- mask ROM -->
|
||||
<feature name="u10" value="[unpopulated]" /> <!-- space for a second mask ROM? -->
|
||||
<feature name="u9" value="PS 0BD400 00REPCS C1D1" /> <!-- mask ROM -->
|
||||
<feature name="u10" value="[unpopulated]" /> <!-- space for a second mask ROM? -->
|
||||
<feature name="u11" value="LH52256CN-70LL" />
|
||||
<feature name="u12" value="7W00F" />
|
||||
<feature name="u13" value="946 80B" />
|
||||
@ -127,7 +127,7 @@
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="churika" supported="no" >
|
||||
<description>Shinkenzemi Chuugaku Kouza - Chuugaku Rika Pack (PL)</description>
|
||||
<year>2000?</year>
|
||||
@ -140,12 +140,12 @@
|
||||
<feature name="u2" value="74HC139A" />
|
||||
<feature name="u3" value="7W32F" />
|
||||
<feature name="u4" value="7W00F" />
|
||||
<feature name="u5" value="[unpopulated]" /> <!-- space for a TC7W04 -->
|
||||
<feature name="u6" value="[unpopulated]" /> <!-- space for a 74HC125 -->
|
||||
<feature name="u7" value="[unpopulated]" /> <!-- space for a TC7W08 -->
|
||||
<feature name="u5" value="[unpopulated]" /> <!-- space for a TC7W04 -->
|
||||
<feature name="u6" value="[unpopulated]" /> <!-- space for a 74HC125 -->
|
||||
<feature name="u7" value="[unpopulated]" /> <!-- space for a TC7W08 -->
|
||||
<feature name="u8" value="74HC573A" />
|
||||
<feature name="u9" value="PL 0BF400 00PCR C1/D1" /> <!-- mask ROM -->
|
||||
<feature name="u10" value="[unpopulated]" /> <!-- space for a second mask ROM? -->
|
||||
<feature name="u9" value="PL 0BF400 00PCR C1/D1" /> <!-- mask ROM -->
|
||||
<feature name="u10" value="[unpopulated]" /> <!-- space for a second mask ROM? -->
|
||||
<feature name="u11" value="LH52256CN-70LL" />
|
||||
<feature name="u12" value="7W00F" />
|
||||
<feature name="u13" value="012 80B" />
|
||||
@ -155,7 +155,7 @@
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="chukkjuk" supported="no" >
|
||||
<description>Shinkenzemi Chuugaku Kouza - Koukou Juken (Kuni - Suu) (0G2)</description>
|
||||
<year>2000?</year>
|
||||
@ -201,7 +201,7 @@
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="jitsugi4" supported="no" >
|
||||
<description>Shinkenzemi Chuugaku Kouza - Jitsugi 4 Kyouka (BG)</description>
|
||||
<year>2000?</year>
|
||||
@ -243,7 +243,7 @@
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="jukokor" supported="no" >
|
||||
<description>Shinkenzemi Koukou Kouza - Juuyou Kobun Kouryaku (A)</description>
|
||||
<year>2000?</year>
|
||||
@ -265,7 +265,7 @@
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
|
||||
</softwarelist>
|
||||
|
||||
|
||||
|
@ -154,7 +154,7 @@
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="produkitc" cloneof="produkit">
|
||||
<description>Productivity Kit - Introduzione al software integrato (Alt 3)</description>
|
||||
<year>1987</year>
|
||||
|
@ -194,7 +194,7 @@
|
||||
<part name="flop6" interface="floppy_3_5">
|
||||
<feature name="part_id" value="Disk 6" />
|
||||
<dataarea name="flop" size="1474560">
|
||||
<rom name="Siemens.9751.CBX.Release.9005.2.79.Disk6.img" size="1474560" crc="e750915c" sha1="70cd126b465ce38520808fd9e8285411c9d4875c" offset="0" />
|
||||
<rom name="Siemens.9751.CBX.Release.9005.2.79.Disk6.img" size="1474560" crc="e750915c" sha1="70cd126b465ce38520808fd9e8285411c9d4875c" offset="0" />
|
||||
</dataarea>
|
||||
</part>
|
||||
<part name="flop7" interface="floppy_3_5">
|
||||
|
@ -2,27 +2,27 @@
|
||||
<!DOCTYPE softwarelist SYSTEM "softwarelist.dtd">
|
||||
<softwarelist name="sat_vccart" description="Sega Saturn VideoCD cartridges">
|
||||
|
||||
<!--
|
||||
|
||||
<!--
|
||||
|
||||
These carts plug into a separate slot of the Sega Saturn and allow to watch VideoCDs in the system
|
||||
Apparently at least three more versions exist and are currently undumped
|
||||
|
||||
Note from zyrobs (the dumper):
|
||||
|
||||
Note that the standard Saturn ROM header is preceded by
|
||||
20 kbyte of encrypted SH1 code. This code is uploaded to
|
||||
the CD Block and provides the commands necessary for the
|
||||
cart to work.
|
||||
Special Thanks to James Laird for figuring out what
|
||||
this very important piece of code was.
|
||||
Note that the standard Saturn ROM header is preceded by
|
||||
20 kbyte of encrypted SH1 code. This code is uploaded to
|
||||
the CD Block and provides the commands necessary for the
|
||||
cart to work.
|
||||
Special Thanks to James Laird for figuring out what
|
||||
this very important piece of code was.
|
||||
|
||||
The Saturn sees the ROM with a 20kbyte offset shift, putting
|
||||
the standard Saturn ROM header at position 0 and the
|
||||
encrypted code looping back to the end of the ROM data.
|
||||
The Saturn sees the ROM with a 20kbyte offset shift, putting
|
||||
the standard Saturn ROM header at position 0 and the
|
||||
encrypted code looping back to the end of the ROM data.
|
||||
|
||||
If you are dumping your MPEG cart through the Saturn, make
|
||||
sure to take account of this offset shift when calculating
|
||||
checksums.
|
||||
If you are dumping your MPEG cart through the Saturn, make
|
||||
sure to take account of this offset shift when calculating
|
||||
checksums.
|
||||
|
||||
-->
|
||||
|
||||
|
@ -3192,7 +3192,7 @@ Beyond that last category are the roms waiting to be classified.
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="contra3p2" cloneof="sprobot">
|
||||
<description>Contra III - The Alien Wars (USA, Prototype, Alt)</description>
|
||||
<year>1992</year>
|
||||
@ -33842,7 +33842,7 @@ List of unclassified roms
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="ajmajonmnp" cloneof="ajmajonm">
|
||||
<description>Akagawa Jirou Majo-tachi no Nemuri (Jpn, Rev. A, NP)</description>
|
||||
<year>1995</year>
|
||||
@ -34569,7 +34569,7 @@ List of unclassified roms
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="3jigens" cloneof="ballz3d">
|
||||
<description>Ballz 3D - 3-jigen Kakutou Ballz (Jpn, Sample)</description>
|
||||
<year>1995</year>
|
||||
@ -36095,7 +36095,7 @@ List of unclassified roms
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="chibimmes" cloneof="chibimme">
|
||||
<description>Chibi Maruko-chan - Mezase! Minami no Island!! (Jpn, Sample)</description>
|
||||
<year>1995</year>
|
||||
@ -36748,7 +36748,7 @@ List of unclassified roms
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="daibakjznp" cloneof="daibakjz">
|
||||
<description>Daibakushou Jinsei Gekijou - Zukkoke Salaryman Hen (Jpn, Rev. A, NP)</description>
|
||||
<year>1995</year>
|
||||
@ -37365,7 +37365,7 @@ List of unclassified roms
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="dokap321">
|
||||
<description>Dokapon 3-2-1 - Arashi o Yobu Yuujou (Jpn, Rev. A)</description>
|
||||
<year>1994</year>
|
||||
@ -40176,7 +40176,7 @@ List of unclassified roms
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="ggoemkira" cloneof="ggoemkir">
|
||||
<description>Ganbare Goemon Kirakira Douchuu - Boku ga Dancer ni Natta Wake (Jpn, Rev. A)</description>
|
||||
<year>1995</year>
|
||||
@ -40686,7 +40686,7 @@ List of unclassified roms
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="gokuparos" cloneof="gokuparo">
|
||||
<description>Gokujou Parodius (Jpn, Sample)</description>
|
||||
<year>1994</year>
|
||||
@ -40883,7 +40883,7 @@ List of unclassified roms
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="granhists" cloneof="granhist">
|
||||
<description>Granhistoria - Genshi Sekaiki (Jpn, Sample)</description>
|
||||
<year>1995</year>
|
||||
@ -42098,7 +42098,7 @@ List of unclassified roms
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="ddanpeis" cloneof="ddanpei">
|
||||
<description>Honoo no Toukyuuji - Dodge Danpei (Jpn, Sample)</description>
|
||||
<year>1992</year>
|
||||
@ -42334,7 +42334,7 @@ List of unclassified roms
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="hypririas" cloneof="hypriria">
|
||||
<description>Hyper Iria (Jpn, Sample)</description>
|
||||
<year>1995</year>
|
||||
@ -43276,7 +43276,7 @@ List of unclassified roms
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="jikkscr2">
|
||||
<description>Jikkyou World Soccer 2 - Fighting Eleven (Jpn, Rev. A, NP)</description>
|
||||
<year>1995</year>
|
||||
@ -46168,7 +46168,7 @@ to ensure nothing has been touched in the Retro Quest cart production in 2013/20
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="lufiap" cloneof="lufia">
|
||||
<description>Lufia & The Fortress of Doom (USA, Prototype)</description>
|
||||
<year>1993</year>
|
||||
@ -46908,7 +46908,7 @@ to ensure nothing has been touched in the Retro Quest cart production in 2013/20
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="marmalads" cloneof="marmalad">
|
||||
<description>Marmalade Boy (Jpn, Sample)</description>
|
||||
<year>1995</year>
|
||||
@ -50526,7 +50526,7 @@ to ensure nothing has been touched in the Retro Quest cart production in 2013/20
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="pga96u" cloneof="pga96">
|
||||
<description>PGA Tour 96 (USA, Rev. A)</description>
|
||||
<year>1996</year>
|
||||
@ -50590,7 +50590,7 @@ to ensure nothing has been touched in the Retro Quest cart production in 2013/20
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="pgau" cloneof="pga">
|
||||
<description>PGA Tour Golf (USA, Rev. A)</description>
|
||||
<year>1992</year>
|
||||
@ -50712,7 +50712,7 @@ to ensure nothing has been touched in the Retro Quest cart production in 2013/20
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="picrosv1">
|
||||
<description>Picross NP Vol. 1 (Jpn, Rev. A, NP)</description>
|
||||
<year>1999</year>
|
||||
@ -50797,7 +50797,7 @@ to ensure nothing has been touched in the Retro Quest cart production in 2013/20
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="picrosv4">
|
||||
<description>Picross NP Vol. 4 (Jpn, Rev. A, NP)</description>
|
||||
<year>1999</year>
|
||||
@ -52977,7 +52977,7 @@ to ensure nothing has been touched in the Retro Quest cart production in 2013/20
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="ryukoken" cloneof="aof">
|
||||
<description>Ryuuko no Ken (Jpn, Rev. A)</description>
|
||||
<year>1993</year>
|
||||
@ -54180,7 +54180,7 @@ to ensure nothing has been touched in the Retro Quest cart production in 2013/20
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<!-- Can we consider this board confirmed? -->
|
||||
<software name="shodanek">
|
||||
<description>Shodai Nekketsu Kouha Kunio-kun (Jpn, Rev. A)</description>
|
||||
@ -54326,7 +54326,7 @@ to ensure nothing has been touched in the Retro Quest cart production in 2013/20
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="ninjasasp" cloneof="ninjasas">
|
||||
<description>Shounen Ninja Sasuke (Jpn, Prototype)</description>
|
||||
<year>1994</year>
|
||||
@ -55260,7 +55260,7 @@ to ensure nothing has been touched in the Retro Quest cart production in 2013/20
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="spawnp" cloneof="spawn">
|
||||
<description>Spawn (Prototype?)</description>
|
||||
<year>1995</year>
|
||||
@ -56556,7 +56556,7 @@ to ensure nothing has been touched in the Retro Quest cart production in 2013/20
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="sbombmanus" cloneof="sbombman">
|
||||
<description>Super Bomberman (USA, Sample)</description>
|
||||
<year>1993</year>
|
||||
@ -56888,7 +56888,7 @@ to ensure nothing has been touched in the Retro Quest cart production in 2013/20
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="daikokai" cloneof="unchartd">
|
||||
<description>Super Daikoukai Jidai (Jpn, Rev. A, NP)</description>
|
||||
<year>1992</year>
|
||||
@ -56944,7 +56944,7 @@ to ensure nothing has been touched in the Retro Quest cart production in 2013/20
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="sddragonp" cloneof="sddragon">
|
||||
<description>Super Double Dragon (Euro, Prototype)</description>
|
||||
<year>1992</year>
|
||||
@ -57885,7 +57885,7 @@ to ensure nothing has been touched in the Retro Quest cart production in 2013/20
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="supermjtc" cloneof="supermjt">
|
||||
<description>Super Mahjong Taikai (Jpn, Rev. B)</description>
|
||||
<year>1992</year>
|
||||
@ -58238,7 +58238,7 @@ to ensure nothing has been touched in the Retro Quest cart production in 2013/20
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="superozup" cloneof="superozu">
|
||||
<description>Super Oozumou - Nessen Ooichiban (Jpn, Prototype)</description>
|
||||
<year>1992</year>
|
||||
@ -58363,7 +58363,7 @@ to ensure nothing has been touched in the Retro Quest cart production in 2013/20
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="sprobots" cloneof="sprobot">
|
||||
<description>Super Probotector - Alien Rebels (Euro, Sample)</description>
|
||||
<year>1992</year>
|
||||
@ -58588,7 +58588,7 @@ to ensure nothing has been touched in the Retro Quest cart production in 2013/20
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="sshangha" cloneof="shangh2">
|
||||
<description>Super Shanghai - Dragon's Eye (Activision) (Jpn)</description>
|
||||
<year>1994</year>
|
||||
@ -64315,7 +64315,7 @@ to ensure nothing has been touched in the Retro Quest cart production in 2013/20
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="sgboyup" cloneof="sgboy">
|
||||
<description>Super Game Boy (USA, Prototype)</description>
|
||||
<year>199?</year>
|
||||
@ -64363,7 +64363,7 @@ to ensure nothing has been touched in the Retro Quest cart production in 2013/20
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<!-- we shall emulate the additional hardware here... -->
|
||||
<software name="nus64cc" supported="partial">
|
||||
<description>NUS-64 Cassette Checker (Jpn)</description>
|
||||
@ -64377,7 +64377,7 @@ to ensure nothing has been touched in the Retro Quest cart production in 2013/20
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<!-- we shall emulate the additional hardware here... -->
|
||||
<software name="scd" supported="partial">
|
||||
<description>Super Disc (Jpn, v0.95, Prototype)</description>
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1,6 +1,6 @@
|
||||
<?xml version="1.0"?>
|
||||
<!DOCTYPE softwarelist SYSTEM "softwarelist.dtd">
|
||||
<!--
|
||||
<!--
|
||||
Thanks to DCMOTO (http://dcmoto.free.fr) for info!
|
||||
|
||||
The BASIC 128 cartridge is useful only on a TO7/70!
|
||||
|
@ -150,17 +150,17 @@
|
||||
</software>
|
||||
|
||||
<!--
|
||||
<software name="colorpnta" cloneof="colorpnt" supported="no">
|
||||
<description>Colorpaint (Bad)</description>
|
||||
<year>1985</year>
|
||||
<publisher>France Image Logiciel (FIL)</publisher>
|
||||
<software name="colorpnta" cloneof="colorpnt" supported="no">
|
||||
<description>Colorpaint (Bad)</description>
|
||||
<year>1985</year>
|
||||
<publisher>France Image Logiciel (FIL)</publisher>
|
||||
|
||||
<part name="cart" interface="to_cart">
|
||||
<dataarea name="rom" size="32768">
|
||||
<rom name="colorpeint_memo7.rom" size="32768" crc="e1234738" sha1="3f170f1b7bc39e32edc8fa9b4a02d70d4d0a8ee2" offset="0" status="baddump" />
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
<part name="cart" interface="to_cart">
|
||||
<dataarea name="rom" size="32768">
|
||||
<rom name="colorpeint_memo7.rom" size="32768" crc="e1234738" sha1="3f170f1b7bc39e32edc8fa9b4a02d70d4d0a8ee2" offset="0" status="baddump" />
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
-->
|
||||
|
||||
<software name="colorpnt_de" cloneof="colorpnt">
|
||||
@ -394,17 +394,17 @@
|
||||
</software>
|
||||
|
||||
<!--
|
||||
<software name="scriptora" cloneof="scriptor">
|
||||
<description>Scriptor (Extra Data)</description>
|
||||
<year>1984</year>
|
||||
<publisher>TO TEK International</publisher>
|
||||
<software name="scriptora" cloneof="scriptor">
|
||||
<description>Scriptor (Extra Data)</description>
|
||||
<year>1984</year>
|
||||
<publisher>TO TEK International</publisher>
|
||||
|
||||
<part name="cart" interface="to_cart">
|
||||
<dataarea name="rom" size="16394">
|
||||
<rom name="scriptor (totek) (inconnus) (1986) (memo7).bin" size="16394" crc="46d4e43a" sha1="90c1e35468f7d629babbd529cd22116e086adb44" offset="0" status="baddump" />
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
<part name="cart" interface="to_cart">
|
||||
<dataarea name="rom" size="16394">
|
||||
<rom name="scriptor (totek) (inconnus) (1986) (memo7).bin" size="16394" crc="46d4e43a" sha1="90c1e35468f7d629babbd529cd22116e086adb44" offset="0" status="baddump" />
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
-->
|
||||
|
||||
<software name="studio">
|
||||
|
@ -35,24 +35,24 @@
|
||||
then read Cn00 to map C800-CFFF first.
|
||||
|
||||
PC RAM from 0xA0000-0xAFFFF is where the V30 BIOS is downloaded,
|
||||
plus used for general storage by the system. This is mirrored at
|
||||
plus used for general storage by the system. This is mirrored at
|
||||
Fxxxx on the V30 so that it can boot.
|
||||
RAM from 0xB8000-0xBFFFF is the CGA framebuffer as usual.
|
||||
|
||||
C800-CFFE: RAM / registers, locations as follows
|
||||
C828-C82A: bi-directional mailslots used to allow the PC to make ProDOS MLI calls,
|
||||
likely for the HDD emulation (which uses a file on a ProDOS volume
|
||||
as the PC).
|
||||
$C828 = hi 8 bits of ptr to ProDOS call info, $C829 = middle 8 bits, $C82A = lower 8 bits
|
||||
If bit 7 of $C828 is set, then the 6502 will take action.
|
||||
C832: current CGA mode index, used by 6502 @ $6869 to setup 6845, or 6845 reg index
|
||||
C833: 6845 data to write in the case where C832 is the reg index rather than a mode offset
|
||||
C860-C864: PC ports 60h-64h, used for keyboard comms
|
||||
CAC1: year for PC real-time clock
|
||||
CAC2: month for PC real-time clock
|
||||
CAC3: day for PC real-time clock
|
||||
CAC4: hour for PC real-time clock
|
||||
CAC5: minute for PC real-time clock
|
||||
C800-CFFE: RAM / registers, locations as follows
|
||||
C828-C82A: bi-directional mailslots used to allow the PC to make ProDOS MLI calls,
|
||||
likely for the HDD emulation (which uses a file on a ProDOS volume
|
||||
as the PC).
|
||||
$C828 = hi 8 bits of ptr to ProDOS call info, $C829 = middle 8 bits, $C82A = lower 8 bits
|
||||
If bit 7 of $C828 is set, then the 6502 will take action.
|
||||
C832: current CGA mode index, used by 6502 @ $6869 to setup 6845, or 6845 reg index
|
||||
C833: 6845 data to write in the case where C832 is the reg index rather than a mode offset
|
||||
C860-C864: PC ports 60h-64h, used for keyboard comms
|
||||
CAC1: year for PC real-time clock
|
||||
CAC2: month for PC real-time clock
|
||||
CAC3: day for PC real-time clock
|
||||
CAC4: hour for PC real-time clock
|
||||
CAC5: minute for PC real-time clock
|
||||
CF00: PC memory pointer (bits 0-7)
|
||||
CF01: PC memory pointer (bits 8-15)
|
||||
CF02: PC memory pointer (bits 16-23)
|
||||
@ -65,16 +65,16 @@
|
||||
CF30: control/flags: bit 4 = 1 to release reset on V30, 5 = 1 to release halt on V30
|
||||
bit 7: read for card IRQ status, write 1 to clear/disable? card IRQ
|
||||
CF31: control/flags: bit 4 = 1 to assert reset on V30, 5 = 1 to assert halt on V30
|
||||
if bit 3 is set on an IRQ, the 6502 will force color 80x25 CGA text mode.
|
||||
bit 7: write 1 to enable card IRQ
|
||||
if bit 3 is set on an IRQ, the 6502 will force color 80x25 CGA text mode.
|
||||
bit 7: write 1 to enable card IRQ
|
||||
|
||||
TODO:
|
||||
- Code at $70b0-$70c5 waits for the V30 to answer FPU presence.
|
||||
- Code at $70b0-$70c5 waits for the V30 to answer FPU presence.
|
||||
- What's going on at CF0E/CF0F? One value set for normal operation, another during
|
||||
ProDOS calls. Probably safe to ignore.
|
||||
- The manual indicates there is no ROM; special drivers installed into ProDOS 8
|
||||
provide the RAMdisk and A2-accessing-PC-drives functionality.
|
||||
|
||||
- The manual indicates there is no ROM; special drivers installed into ProDOS 8
|
||||
provide the RAMdisk and A2-accessing-PC-drives functionality.
|
||||
|
||||
*********************************************************************/
|
||||
|
||||
#include "pc_xporter.h"
|
||||
@ -104,7 +104,7 @@ static ADDRESS_MAP_START(pc_io, AS_IO, 16, a2bus_pcxporter_device )
|
||||
ADDRESS_MAP_END
|
||||
|
||||
MACHINE_CONFIG_FRAGMENT( pcxporter )
|
||||
MCFG_CPU_ADD("v30", V30, XTAL_14_31818MHz/2) // 7.16 MHz as per manual
|
||||
MCFG_CPU_ADD("v30", V30, XTAL_14_31818MHz/2) // 7.16 MHz as per manual
|
||||
MCFG_CPU_PROGRAM_MAP(pc_map)
|
||||
MCFG_CPU_IO_MAP(pc_io)
|
||||
MCFG_CPU_IRQ_ACKNOWLEDGE_DEVICE("pic8259", pic8259_device, inta_cb)
|
||||
@ -153,7 +153,7 @@ MACHINE_CONFIG_FRAGMENT( pcxporter )
|
||||
MCFG_PC_KBDC_OUT_CLOCK_CB(WRITELINE(a2bus_pcxporter_device, keyboard_clock_w))
|
||||
MCFG_PC_KBDC_OUT_DATA_CB(WRITELINE(a2bus_pcxporter_device, keyboard_data_w))
|
||||
MCFG_PC_KBDC_SLOT_ADD("pc_kbdc", "kbd", pc_xt_keyboards, STR_KBD_KEYTRONIC_PC3270)
|
||||
|
||||
|
||||
/* sound hardware */
|
||||
MCFG_SPEAKER_STANDARD_MONO("mono")
|
||||
MCFG_SOUND_ADD("speaker", SPEAKER_SOUND, 0)
|
||||
@ -224,10 +224,10 @@ void a2bus_pcxporter_device::device_start()
|
||||
save_item(NAME(m_ram));
|
||||
save_item(NAME(m_regs));
|
||||
save_item(NAME(m_offset));
|
||||
|
||||
|
||||
m_v30->space(AS_PROGRAM).install_ram(0, 0xaffff, m_ram);
|
||||
m_v30->space(AS_PROGRAM).install_rom(0xf0000, 0xfffff, &m_ram[0xa0000]);
|
||||
|
||||
|
||||
m_pcmem_space = &m_v30->space(AS_PROGRAM);
|
||||
m_pcio_space = &m_v30->space(AS_IO);
|
||||
}
|
||||
@ -323,11 +323,11 @@ UINT8 a2bus_pcxporter_device::read_c800(address_space &space, UINT16 offset)
|
||||
|
||||
case 0x704: // read w/o increment
|
||||
rv = m_ram[m_offset];
|
||||
return rv;
|
||||
|
||||
return rv;
|
||||
|
||||
default:
|
||||
//printf("Read $C800 at %x\n", offset + 0xc800);
|
||||
break;
|
||||
break;
|
||||
}
|
||||
|
||||
return m_regs[offset];
|
||||
@ -381,13 +381,13 @@ void a2bus_pcxporter_device::write_c800(address_space &space, UINT16 offset, UIN
|
||||
else if (m_offset >= 0xb8000 && m_offset <= 0xbbfff) m_pcmem_space->write_byte(m_offset, data);
|
||||
else if (m_offset >= 0xbc000 && m_offset <= 0xbffff) m_pcmem_space->write_byte(m_offset-0x4000, data);
|
||||
break;
|
||||
|
||||
case 0x72c: // CGA 6845 register select
|
||||
|
||||
case 0x72c: // CGA 6845 register select
|
||||
m_pcio_space->write_byte(0x3d6, data);
|
||||
m_6845_reg = data;
|
||||
break;
|
||||
|
||||
case 0x72d: // CGA 6845 data read/write
|
||||
|
||||
case 0x72d: // CGA 6845 data read/write
|
||||
// HACK: adjust the 40 column mode the 6502 sets to
|
||||
// be more within specs.
|
||||
switch (m_6845_reg)
|
||||
@ -416,37 +416,37 @@ void a2bus_pcxporter_device::write_c800(address_space &space, UINT16 offset, UIN
|
||||
|
||||
m_pcio_space->write_byte(0x3d7, data);
|
||||
break;
|
||||
|
||||
case 0x72e: // CGA mode select
|
||||
|
||||
case 0x72e: // CGA mode select
|
||||
m_pcio_space->write_byte(0x3d8, data);
|
||||
break;
|
||||
|
||||
case 0x72f: // CGA color select
|
||||
m_pcio_space->write_byte(0x3d9, data);
|
||||
break;
|
||||
|
||||
case 0x730: // control 1
|
||||
|
||||
case 0x730: // control 1
|
||||
if (data & 0x10) { m_v30->set_input_line(INPUT_LINE_RESET, CLEAR_LINE); m_reset_during_halt = true; }
|
||||
if (data & 0x20)
|
||||
{
|
||||
{
|
||||
if (m_reset_during_halt)
|
||||
{
|
||||
m_v30->reset();
|
||||
m_reset_during_halt = false;
|
||||
}
|
||||
|
||||
|
||||
m_v30->set_input_line(INPUT_LINE_HALT, CLEAR_LINE);
|
||||
m_v30->resume(SUSPEND_REASON_HALT | SUSPEND_REASON_DISABLE);
|
||||
}
|
||||
break;
|
||||
|
||||
case 0x731: // control 2
|
||||
|
||||
case 0x731: // control 2
|
||||
if (data & 0x10) m_v30->set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
|
||||
if (data & 0x20) m_v30->set_input_line(INPUT_LINE_HALT, ASSERT_LINE);
|
||||
break;
|
||||
|
||||
|
||||
default:
|
||||
// printf("%02x to C800 at %x\n", data, offset + 0xc800);
|
||||
// printf("%02x to C800 at %x\n", data, offset + 0xc800);
|
||||
m_regs[offset] = data;
|
||||
break;
|
||||
}
|
||||
@ -646,6 +646,3 @@ WRITE8_MEMBER( a2bus_pcxporter_device::nmi_enable_w )
|
||||
m_nmi_enabled = BIT(data,7);
|
||||
m_isabus->set_nmi_state(m_nmi_enabled);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
@ -460,11 +460,11 @@ WRITE32_MEMBER(gba_rom_eeprom64_device::write_ram)
|
||||
|
||||
/*-------------------------------------------------
|
||||
Carts with 3D Matrix Memory controller
|
||||
|
||||
|
||||
Used by Video carts with 64MB ROM chips
|
||||
Emulation based on the reverse engineering efforts
|
||||
by endrift
|
||||
|
||||
|
||||
The Memory controller basically behaves like a DMA
|
||||
chip by writing first source and destination address,
|
||||
then the number of 512K blocks to copy and finally
|
||||
@ -473,12 +473,12 @@ WRITE32_MEMBER(gba_rom_eeprom64_device::write_ram)
|
||||
the transfer, other carts might use 0x11 but currently
|
||||
they die before getting to the mapper communication
|
||||
(CPU emulation issue? cart mapping issue? still unknown)
|
||||
|
||||
|
||||
To investigate:
|
||||
- why the other carts fail
|
||||
- which addresses might be used by the mapper
|
||||
(Disney Collection 2 uses 0x08800180-0x0880018f
|
||||
but it might well be possible to issue commands
|
||||
but it might well be possible to issue commands
|
||||
in an extended range...)
|
||||
- which bus addresses can be used by the mapper
|
||||
(currently we restrict the mapping in the range
|
||||
@ -492,7 +492,7 @@ WRITE32_MEMBER(gba_rom_3dmatrix_device::write_mapper)
|
||||
switch (offset & 3)
|
||||
{
|
||||
case 0:
|
||||
if (data == 0x1) // transfer data
|
||||
if (data == 0x1) // transfer data
|
||||
memcpy((UINT8 *)m_romhlp + m_dst, (UINT8 *)m_rom + m_src, m_nblock * 0x200);
|
||||
else
|
||||
printf("Unknown mapper command 0x%X\n", data);
|
||||
|
@ -168,14 +168,14 @@ class gba_rom_3dmatrix_device : public gba_rom_device
|
||||
public:
|
||||
// construction/destruction
|
||||
gba_rom_3dmatrix_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
|
||||
|
||||
|
||||
// device-level overrides
|
||||
virtual void device_start() override;
|
||||
virtual void device_reset() override;
|
||||
|
||||
|
||||
// reading and writing
|
||||
virtual DECLARE_WRITE32_MEMBER(write_mapper) override;
|
||||
|
||||
|
||||
private:
|
||||
UINT32 m_src, m_dst, m_nblock;
|
||||
};
|
||||
|
@ -399,11 +399,11 @@ void md_eeprom_nbajam_device_alt::eeprom_i2c_init()
|
||||
m_eeprom_word_address = 0;
|
||||
m_eeprom_devsel = 0;
|
||||
m_eeprom_byte = 0;
|
||||
|
||||
|
||||
m_eeprom_sda = m_eeprom_prev_sda = 1;
|
||||
m_eeprom_scl = m_eeprom_prev_scl = 1;
|
||||
m_eeprom_cur_state = STATE_I2C_IDLE;
|
||||
|
||||
|
||||
m_eeprom_mask = 0xff;
|
||||
m_eeprom_pagewrite_mask = 0x03;
|
||||
}
|
||||
@ -438,17 +438,17 @@ void md_eeprom_nbajam_device_alt::eeprom_i2c_update(void)
|
||||
case STATE_I2C_IDLE:
|
||||
idle_devsel_check();
|
||||
break;
|
||||
|
||||
|
||||
case STATE_I2C_WAIT_STOP:
|
||||
if (!m_eeprom_prev_sda && m_eeprom_sda && m_eeprom_scl)
|
||||
m_eeprom_cur_state = STATE_I2C_IDLE;
|
||||
break;
|
||||
|
||||
|
||||
// device select: there can be up to 8 EEPROM in series, so that we start with writing 3 bits
|
||||
// to identify which device has to be accessed, followed by a Read/Write bit to specify the action
|
||||
case STATE_I2C_DEVSEL:
|
||||
idle_devsel_check();
|
||||
|
||||
|
||||
// LOW to HIGH transition of SCL = prepare to transmit, by moving to cnt = 1
|
||||
if (!m_eeprom_prev_scl && m_eeprom_scl)
|
||||
{
|
||||
@ -480,11 +480,11 @@ void md_eeprom_nbajam_device_alt::eeprom_i2c_update(void)
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
|
||||
// read operation = count 8 operations and at 9th check whether ACK has been issued
|
||||
case STATE_I2C_READ_DATA:
|
||||
idle_devsel_check();
|
||||
|
||||
|
||||
// HIGH to LOW transition of SCL
|
||||
if (m_eeprom_prev_scl && !m_eeprom_scl)
|
||||
{
|
||||
@ -493,7 +493,7 @@ void md_eeprom_nbajam_device_alt::eeprom_i2c_update(void)
|
||||
else
|
||||
m_eeprom_cnt = 1;
|
||||
}
|
||||
|
||||
|
||||
// LOW to HIGH transition of SCL
|
||||
if (!m_eeprom_prev_scl && m_eeprom_scl)
|
||||
{
|
||||
@ -506,12 +506,12 @@ void md_eeprom_nbajam_device_alt::eeprom_i2c_update(void)
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
|
||||
// For a write operation, the x24c02 requires a second address field. This address field is the
|
||||
// word address, comprised of eight bits, providing access to any one of the 256 words of memory.
|
||||
case STATE_I2C_GET_WORD_ADDR:
|
||||
idle_devsel_check();
|
||||
|
||||
|
||||
// HIGH to LOW transition of SCL
|
||||
if (m_eeprom_prev_scl && !m_eeprom_scl)
|
||||
{
|
||||
@ -526,7 +526,7 @@ void md_eeprom_nbajam_device_alt::eeprom_i2c_update(void)
|
||||
m_eeprom_word_address &= m_eeprom_mask;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// LOW to HIGH transition of SCL
|
||||
if (!m_eeprom_prev_scl && m_eeprom_scl)
|
||||
{
|
||||
@ -534,11 +534,11 @@ void md_eeprom_nbajam_device_alt::eeprom_i2c_update(void)
|
||||
m_eeprom_word_address = ((m_eeprom_word_address << 1) | m_eeprom_sda) & 0xff;
|
||||
}
|
||||
break;
|
||||
|
||||
|
||||
// write operation
|
||||
case STATE_I2C_WRITE_DATA:
|
||||
idle_devsel_check();
|
||||
|
||||
|
||||
// HIGH to LOW transition of SCL
|
||||
if (m_eeprom_prev_scl && !m_eeprom_scl)
|
||||
{
|
||||
@ -547,7 +547,7 @@ void md_eeprom_nbajam_device_alt::eeprom_i2c_update(void)
|
||||
else
|
||||
m_eeprom_cnt = 1;
|
||||
}
|
||||
|
||||
|
||||
// LOW to HIGH transition of SCL
|
||||
if (!m_eeprom_prev_scl && m_eeprom_scl)
|
||||
{
|
||||
@ -568,7 +568,7 @@ void md_eeprom_nbajam_device_alt::eeprom_i2c_update(void)
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
m_eeprom_prev_scl = m_eeprom_scl;
|
||||
m_eeprom_prev_sda = m_eeprom_sda;
|
||||
//printf("Write line : status %d SDA %x SCL %x (count %d)\n", m_eeprom_cur_state, m_eeprom_sda, m_eeprom_scl, m_eeprom_cnt);
|
||||
@ -588,7 +588,7 @@ UINT8 md_eeprom_nbajam_device_alt::eeprom_i2c_out()
|
||||
sram_address &= 0xffff;
|
||||
|
||||
res = (nvram[sram_address] >> (8 - m_eeprom_cnt)) & 1;
|
||||
|
||||
|
||||
if (m_eeprom_cnt == 8)
|
||||
{
|
||||
//printf("Read EEPROM : status %d addr %x data %x (count 8)\n", m_eeprom_cur_state, sram_address, nvram[sram_address]);
|
||||
@ -604,11 +604,11 @@ UINT8 md_eeprom_nbajam_device_alt::eeprom_i2c_out()
|
||||
if (m_eeprom_cnt == 9)
|
||||
res = 0;
|
||||
break;
|
||||
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
//printf("Read line : status %d data %x (count %d)\n", m_eeprom_cur_state, res, m_eeprom_cnt);
|
||||
return res;
|
||||
}
|
||||
@ -635,4 +635,3 @@ WRITE16_MEMBER(md_eeprom_nbajam_device_alt::write)
|
||||
eeprom_i2c_update();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -162,15 +162,15 @@ class md_eeprom_nbajam_device_alt : public md_std_eeprom_device
|
||||
public:
|
||||
// construction/destruction
|
||||
md_eeprom_nbajam_device_alt(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
|
||||
|
||||
|
||||
// device-level overrides
|
||||
// virtual machine_config_constructor device_mconfig_additions() const override;
|
||||
// virtual machine_config_constructor device_mconfig_additions() const override;
|
||||
virtual void device_start() override;
|
||||
|
||||
|
||||
// reading and writing
|
||||
virtual DECLARE_READ16_MEMBER(read) override;
|
||||
virtual DECLARE_WRITE16_MEMBER(write) override;
|
||||
|
||||
|
||||
std::vector<UINT8> m_sram;
|
||||
|
||||
void eeprom_i2c_init();
|
||||
@ -180,13 +180,13 @@ public:
|
||||
|
||||
private:
|
||||
// EEPROM runtime vars
|
||||
UINT8 m_eeprom_sda; // current SDA
|
||||
UINT8 m_eeprom_prev_sda; // previous SDA
|
||||
UINT8 m_eeprom_scl; // current SCL
|
||||
UINT8 m_eeprom_sda; // current SDA
|
||||
UINT8 m_eeprom_prev_sda; // previous SDA
|
||||
UINT8 m_eeprom_scl; // current SCL
|
||||
UINT8 m_eeprom_prev_scl; // previous SCL
|
||||
UINT8 m_eeprom_cnt; // operation count in 0-9
|
||||
UINT8 m_eeprom_readwrite; // read/write bit
|
||||
UINT16 m_eeprom_slave_mask; // dev addr
|
||||
UINT16 m_eeprom_slave_mask; // dev addr
|
||||
UINT16 m_eeprom_word_address; // memory addr
|
||||
UINT16 m_eeprom_devsel; // selected device
|
||||
UINT16 m_eeprom_byte; // byte to be written
|
||||
|
@ -837,7 +837,7 @@ int base_md_cart_slot_device::get_cart_type(UINT8 *ROM, UINT32 len)
|
||||
if (!memcmp((char *)&ROM[0x0180], "SF-002", 6)) // Legend of Wukong
|
||||
type = WUKONG;
|
||||
break;
|
||||
|
||||
|
||||
case 0x300000:
|
||||
if (!memcmp(&ROM[0x220], sdk_sig, sizeof(sdk_sig)))
|
||||
type = LIONK3;
|
||||
|
@ -1443,7 +1443,7 @@ WRITE16_MEMBER(md_rom_wukong_device::write_a13)
|
||||
/*-------------------------------------------------
|
||||
STAR ODYSSEY
|
||||
This game uses a slightly more complex mapper:
|
||||
not only RAM can be enabled / disabled, but also
|
||||
not only RAM can be enabled / disabled, but also
|
||||
ROM can be mapped in three different modes.
|
||||
In what we call Mode0 the first 256K are mirrored
|
||||
into area 0x000000-0x1fffff; in Mode1 cart gives
|
||||
@ -1457,7 +1457,7 @@ READ16_MEMBER(md_rom_starodys_device::read)
|
||||
{
|
||||
if (offset >= m_nvram_start/2 && offset <= m_nvram_end/2 && m_nvram_active && m_ram_enable)
|
||||
return m_nvram[offset & 0x3fff];
|
||||
|
||||
|
||||
if (offset < 0x200000/2)
|
||||
{
|
||||
if (m_mode == 0)
|
||||
@ -1497,7 +1497,7 @@ WRITE16_MEMBER(md_rom_starodys_device::write)
|
||||
else
|
||||
m_mode = 0;
|
||||
//printf("ROM mode %d!\n", m_mode);
|
||||
|
||||
|
||||
if (!BIT(data, 7))
|
||||
{
|
||||
//printf("LOCK BANKSWITCH!\n");
|
||||
@ -1512,7 +1512,7 @@ WRITE16_MEMBER(md_rom_starodys_device::write)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
READ16_MEMBER(md_rom_starodys_device::read_a13)
|
||||
@ -1527,9 +1527,8 @@ WRITE16_MEMBER(md_rom_starodys_device::write_a13)
|
||||
{
|
||||
m_nvram_active = BIT(data, 0);
|
||||
m_nvram_readonly = BIT(data, 1);
|
||||
|
||||
|
||||
if (m_nvram_active)
|
||||
m_nvram_handlers_installed = 1;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -552,17 +552,17 @@ class md_rom_starodys_device : public md_std_rom_device
|
||||
public:
|
||||
// construction/destruction
|
||||
md_rom_starodys_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
|
||||
|
||||
|
||||
// device-level overrides
|
||||
virtual void device_start() override;
|
||||
virtual void device_reset() override;
|
||||
|
||||
|
||||
// reading and writing
|
||||
virtual DECLARE_READ16_MEMBER(read) override;
|
||||
virtual DECLARE_WRITE16_MEMBER(write) override;
|
||||
virtual DECLARE_READ16_MEMBER(read_a13) override;
|
||||
virtual DECLARE_WRITE16_MEMBER(write_a13) override;
|
||||
|
||||
|
||||
private:
|
||||
UINT8 m_mode, m_lock, m_ram_enable, m_base;
|
||||
};
|
||||
|
@ -133,4 +133,3 @@ machine_config_constructor neogeo_matrimbl_cart::device_mconfig_additions() cons
|
||||
{
|
||||
return MACHINE_CONFIG_NAME( matrimbl_cart );
|
||||
}
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:S. Smith,David Haywood,Fabio Priuli
|
||||
/***********************************************************************************************************
|
||||
|
||||
|
||||
Neo Geo cart emulation
|
||||
The King of Fighters 10th Anniversary Bootleg cart type
|
||||
|
||||
@ -103,9 +103,9 @@ WRITE16_MEMBER(neogeo_kof10th_cart::protection_w)
|
||||
if (offset < 0x40000/2)
|
||||
{
|
||||
if (!m_cart_ram[0xffe])
|
||||
COMBINE_DATA(&m_cart_ram2[(0x00000/2) + (offset & 0xffff)]); // Write to RAM bank A
|
||||
COMBINE_DATA(&m_cart_ram2[(0x00000/2) + (offset & 0xffff)]); // Write to RAM bank A
|
||||
else
|
||||
m_fixed[offset] = BITSWAP8(data, 7,6,0,4,3,2,1,5); // Write S data on-the-fly
|
||||
m_fixed[offset] = BITSWAP8(data, 7,6,0,4,3,2,1,5); // Write S data on-the-fly
|
||||
}
|
||||
else if (offset >= 0xfe000/2)
|
||||
{
|
||||
|
@ -106,5 +106,3 @@ void neogeo_kf2k2mp2_cart::decrypt_all(DECRYPT_ALL_PARAMS)
|
||||
m_prot->sx_decrypt(fix_region, fix_region_size, 1);
|
||||
m_cmc_prot->cmc50_gfx_decrypt(spr_region, spr_region_size, KOF2002_GFX_KEY);
|
||||
}
|
||||
|
||||
|
||||
|
@ -23,7 +23,7 @@ public:
|
||||
virtual void decrypt_all(DECRYPT_ALL_PARAMS) override;
|
||||
virtual int get_fixed_bank_type(void) override { return 0; }
|
||||
virtual machine_config_constructor device_mconfig_additions() const override;
|
||||
|
||||
|
||||
private:
|
||||
required_device<cmc_prot_device> m_cmc_prot;
|
||||
required_device<pcm2_prot_device> m_pcm2_prot;
|
||||
@ -45,7 +45,7 @@ public:
|
||||
virtual void decrypt_all(DECRYPT_ALL_PARAMS) override;
|
||||
virtual int get_fixed_bank_type(void) override { return 0; }
|
||||
virtual machine_config_constructor device_mconfig_additions() const override;
|
||||
|
||||
|
||||
private:
|
||||
required_device<cmc_prot_device> m_cmc_prot;
|
||||
required_device<pcm2_prot_device> m_pcm2_prot;
|
||||
@ -66,7 +66,7 @@ public:
|
||||
virtual void decrypt_all(DECRYPT_ALL_PARAMS) override;
|
||||
virtual int get_fixed_bank_type(void) override { return 0; }
|
||||
virtual machine_config_constructor device_mconfig_additions() const override;
|
||||
|
||||
|
||||
private:
|
||||
required_device<cmc_prot_device> m_cmc_prot;
|
||||
required_device<pcm2_prot_device> m_pcm2_prot;
|
||||
|
@ -1,7 +1,7 @@
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:S. Smith,David Haywood,Fabio Priuli
|
||||
/***********************************************************************************************************
|
||||
|
||||
|
||||
Neo Geo cart emulation
|
||||
The King of Fighters 2003 Bootleg cart type
|
||||
|
||||
@ -52,7 +52,7 @@ void neogeo_kf2k3bl_cart::decrypt_all(DECRYPT_ALL_PARAMS)
|
||||
m_cmc_prot->cmc50_gfx_decrypt(spr_region, spr_region_size, KOF2003_GFX_KEY);
|
||||
m_pcm2_prot->swap(ym_region, ym_region_size, 5);
|
||||
m_prot->sx_decrypt(fix_region, fix_region_size, 1);
|
||||
|
||||
|
||||
}
|
||||
|
||||
/*************************************************
|
||||
|
@ -18,9 +18,9 @@ public:
|
||||
neogeo_kf2k3bl_cart(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
|
||||
virtual void decrypt_all(DECRYPT_ALL_PARAMS) override;
|
||||
virtual int get_fixed_bank_type(void) override { return 0; }
|
||||
|
||||
|
||||
virtual machine_config_constructor device_mconfig_additions() const override;
|
||||
|
||||
|
||||
virtual UINT32 get_bank_base(UINT16 sel) override { return m_kof2k3bl_prot->get_bank_base(); }
|
||||
virtual DECLARE_READ16_MEMBER(protection_r) override { return m_kof2k3bl_prot->protection_r(space, offset, mem_mask); }
|
||||
virtual DECLARE_WRITE16_MEMBER(protection_w) override { m_kof2k3bl_prot->kof2003_w(space, offset, data, mem_mask); }
|
||||
@ -45,7 +45,7 @@ public:
|
||||
neogeo_kf2k3pl_cart(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
|
||||
virtual void decrypt_all(DECRYPT_ALL_PARAMS) override;
|
||||
virtual int get_fixed_bank_type(void) override { return 0; }
|
||||
|
||||
|
||||
virtual machine_config_constructor device_mconfig_additions() const override;
|
||||
|
||||
virtual UINT32 get_bank_base(UINT16 sel) override { return m_kof2k3bl_prot->get_bank_base(); }
|
||||
@ -71,9 +71,9 @@ public:
|
||||
neogeo_kf2k3upl_cart(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
|
||||
virtual void decrypt_all(DECRYPT_ALL_PARAMS) override;
|
||||
virtual int get_fixed_bank_type(void) override { return 0; }
|
||||
|
||||
|
||||
virtual machine_config_constructor device_mconfig_additions() const override;
|
||||
|
||||
|
||||
virtual UINT32 get_bank_base(UINT16 sel) override { return m_kof2k3bl_prot->get_bank_base(); }
|
||||
virtual DECLARE_READ16_MEMBER(protection_r) override { return m_kof2k3bl_prot->protection_r(space, offset, mem_mask); }
|
||||
virtual DECLARE_WRITE16_MEMBER(protection_w) override { m_kof2k3bl_prot->kof2003_w(space, offset, data, mem_mask); }
|
||||
|
@ -1,7 +1,7 @@
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:S. Smith,David Haywood,Fabio Priuli
|
||||
/***********************************************************************************************************
|
||||
|
||||
|
||||
Neo Geo cart emulation
|
||||
Misc. bootleg cart types (possibly to be split further at a later stage)
|
||||
|
||||
@ -286,4 +286,3 @@ void neogeo_kog_cart::decrypt_all(DECRYPT_ALL_PARAMS)
|
||||
m_prot->sx_decrypt(fix_region, fix_region_size, 1);
|
||||
m_prot->cx_decrypt(spr_region, spr_region_size);
|
||||
}
|
||||
|
||||
|
@ -149,7 +149,7 @@ public:
|
||||
neogeo_mslug3b6_cart(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
|
||||
virtual void decrypt_all(DECRYPT_ALL_PARAMS) override;
|
||||
virtual int get_fixed_bank_type(void) override { return 0; }
|
||||
|
||||
|
||||
virtual machine_config_constructor device_mconfig_additions() const override;
|
||||
|
||||
private:
|
||||
@ -168,7 +168,7 @@ public:
|
||||
neogeo_ms5plus_cart(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
|
||||
virtual void decrypt_all(DECRYPT_ALL_PARAMS) override;
|
||||
virtual int get_fixed_bank_type(void) override { return 1; }
|
||||
|
||||
|
||||
virtual machine_config_constructor device_mconfig_additions() const override;
|
||||
|
||||
virtual DECLARE_READ16_MEMBER(protection_r) override { return m_prot->mslug5p_prot_r(space, offset, mem_mask); }
|
||||
@ -190,7 +190,7 @@ class neogeo_kog_cart : public neogeo_bootleg_cart
|
||||
{
|
||||
public:
|
||||
neogeo_kog_cart(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
|
||||
|
||||
|
||||
virtual ioport_constructor device_input_ports() const override;
|
||||
|
||||
virtual DECLARE_READ16_MEMBER(protection_r) override;
|
||||
|
@ -1,7 +1,7 @@
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:S. Smith,David Haywood,Fabio Priuli
|
||||
/***********************************************************************************************************
|
||||
|
||||
|
||||
Neo Geo cart emulation
|
||||
SNK Vs Capcom Bootleg cart type
|
||||
|
||||
|
@ -69,15 +69,15 @@ class neogeo_svcsplus_cart : public neogeo_bootleg_cart
|
||||
{
|
||||
public:
|
||||
neogeo_svcsplus_cart(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
|
||||
|
||||
|
||||
virtual machine_config_constructor device_mconfig_additions() const override;
|
||||
|
||||
|
||||
virtual UINT32 get_bank_base(UINT16 sel) override { return m_pvc_prot->get_bank_base(); }
|
||||
virtual DECLARE_READ16_MEMBER(protection_r) override { return m_pvc_prot->protection_r(space, offset, mem_mask); }
|
||||
virtual DECLARE_WRITE16_MEMBER(protection_w) override { m_pvc_prot->protection_w(space, offset, data, mem_mask); }
|
||||
virtual void decrypt_all(DECRYPT_ALL_PARAMS) override;
|
||||
virtual int get_fixed_bank_type(void) override { return 0; }
|
||||
|
||||
|
||||
private:
|
||||
required_device<pvc_prot_device> m_pvc_prot;
|
||||
};
|
||||
|
@ -24,12 +24,12 @@
|
||||
|
||||
|
||||
SLOT_INTERFACE_START(neogeo_cart)
|
||||
SLOT_INTERFACE_INTERNAL("rom", NEOGEO_ROM) // Standard cart with banking
|
||||
SLOT_INTERFACE_INTERNAL("rom", NEOGEO_ROM) // Standard cart with banking
|
||||
|
||||
SLOT_INTERFACE_INTERNAL("rom_vliner", NEOGEO_VLINER_CART) // Standard cart + RAM
|
||||
SLOT_INTERFACE_INTERNAL("rom_fatfur2", NEOGEO_FATFURY2_CART) // Custom Fatal Fury 2 protection
|
||||
SLOT_INTERFACE_INTERNAL("rom_kof98", NEOGEO_KOF98_CART) // Custom King of Fighters 98 protection
|
||||
SLOT_INTERFACE_INTERNAL("rom_mslugx", NEOGEO_MSLUGX_CART) // Custom Metal Slug X protection
|
||||
SLOT_INTERFACE_INTERNAL("rom_vliner", NEOGEO_VLINER_CART) // Standard cart + RAM
|
||||
SLOT_INTERFACE_INTERNAL("rom_fatfur2", NEOGEO_FATFURY2_CART) // Custom Fatal Fury 2 protection
|
||||
SLOT_INTERFACE_INTERNAL("rom_kof98", NEOGEO_KOF98_CART) // Custom King of Fighters 98 protection
|
||||
SLOT_INTERFACE_INTERNAL("rom_mslugx", NEOGEO_MSLUGX_CART) // Custom Metal Slug X protection
|
||||
|
||||
// only CMC42 for gfx
|
||||
SLOT_INTERFACE_INTERNAL("cmc42_zupapa", NEOGEO_CMC_ZUPAPA_CART)
|
||||
@ -45,7 +45,7 @@ SLOT_INTERFACE_START(neogeo_cart)
|
||||
// only CMC50 for gfx + audiocpu
|
||||
SLOT_INTERFACE_INTERNAL("cmc50_kof2001", NEOGEO_CMC_KOF2001_CART)
|
||||
SLOT_INTERFACE_INTERNAL("cmc50_kof2000n", NEOGEO_CMC_KOF2000N_CART)
|
||||
SLOT_INTERFACE_INTERNAL("cmc50_jockeygp", NEOGEO_CMC_JOCKEYGP_CART) // CMC50 + RAM
|
||||
SLOT_INTERFACE_INTERNAL("cmc50_jockeygp", NEOGEO_CMC_JOCKEYGP_CART) // CMC50 + RAM
|
||||
|
||||
// These use SMA for prg & CMC42 for gfx
|
||||
SLOT_INTERFACE_INTERNAL("sma_kof99", NEOGEO_SMA_KOF99_CART)
|
||||
@ -78,13 +78,13 @@ SLOT_INTERFACE_START(neogeo_cart)
|
||||
SLOT_INTERFACE_INTERNAL("boot_cthd2k3", NEOGEO_CTHD2K3_CART)
|
||||
SLOT_INTERFACE_INTERNAL("boot_ct2k3sp", NEOGEO_CT2K3SP_CART)
|
||||
SLOT_INTERFACE_INTERNAL("boot_ct2k3sa", NEOGEO_CT2K3SA_CART)
|
||||
SLOT_INTERFACE_INTERNAL("boot_matrimbl", NEOGEO_MATRIMBL_CART) // this also uses a CMC for SFIX & addditional prg scramble from kof2002
|
||||
SLOT_INTERFACE_INTERNAL("boot_matrimbl", NEOGEO_MATRIMBL_CART) // this also uses a CMC for SFIX & addditional prg scramble from kof2002
|
||||
|
||||
// Bootleg logic for SVC clones
|
||||
SLOT_INTERFACE_INTERNAL("boot_svcboot", NEOGEO_SVCBOOT_CART) // this also uses a PVC protection/encryption
|
||||
SLOT_INTERFACE_INTERNAL("boot_svcboot", NEOGEO_SVCBOOT_CART) // this also uses a PVC protection/encryption
|
||||
SLOT_INTERFACE_INTERNAL("boot_svcplus", NEOGEO_SVCPLUS_CART)
|
||||
SLOT_INTERFACE_INTERNAL("boot_svcplusa", NEOGEO_SVCPLUSA_CART)
|
||||
SLOT_INTERFACE_INTERNAL("boot_svcsplus", NEOGEO_SVCSPLUS_CART) // this also uses a PVC protection/encryption
|
||||
SLOT_INTERFACE_INTERNAL("boot_svcsplus", NEOGEO_SVCSPLUS_CART) // this also uses a PVC protection/encryption
|
||||
|
||||
// Bootleg logic for KOF2002 clones
|
||||
SLOT_INTERFACE_INTERNAL("boot_kf2k2b", NEOGEO_KOF2002B_CART)
|
||||
@ -104,8 +104,8 @@ SLOT_INTERFACE_START(neogeo_cart)
|
||||
SLOT_INTERFACE_INTERNAL("boot_kf2k4se", NEOGEO_KF2K4SE_CART)
|
||||
SLOT_INTERFACE_INTERNAL("boot_lans2004", NEOGEO_LANS2004_CART)
|
||||
SLOT_INTERFACE_INTERNAL("boot_samsho5b", NEOGEO_SAMSHO5B_CART)
|
||||
SLOT_INTERFACE_INTERNAL("boot_mslug3b6", NEOGEO_MSLUG3B6_CART) // this also uses a CMC42 for gfx
|
||||
SLOT_INTERFACE_INTERNAL("boot_ms5plus", NEOGEO_MS5PLUS_CART) // this also uses a CMC50 for gfx + audiocpu & NEOPCM2 for YM scramble
|
||||
SLOT_INTERFACE_INTERNAL("boot_mslug3b6", NEOGEO_MSLUG3B6_CART) // this also uses a CMC42 for gfx
|
||||
SLOT_INTERFACE_INTERNAL("boot_ms5plus", NEOGEO_MS5PLUS_CART) // this also uses a CMC50 for gfx + audiocpu & NEOPCM2 for YM scramble
|
||||
SLOT_INTERFACE_INTERNAL("boot_kog", NEOGEO_KOG_CART)
|
||||
|
||||
SLOT_INTERFACE_INTERNAL("boot_kf10th", NEOGEO_KOF10TH_CART)
|
||||
|
@ -1,10 +1,10 @@
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:S. Smith,David Haywood,Fabio Priuli
|
||||
/***********************************************************************************************************
|
||||
|
||||
|
||||
Neo Geo cart emulation
|
||||
CMC42 & CMC50 encrypted cart type
|
||||
|
||||
|
||||
***********************************************************************************************************/
|
||||
|
||||
|
||||
@ -264,4 +264,3 @@ void neogeo_cmc_jockeygp_cart::decrypt_all(DECRYPT_ALL_PARAMS)
|
||||
m_prot->cmc50_gfx_decrypt(spr_region, spr_region_size, JOCKEYGP_GFX_KEY);
|
||||
m_prot->sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
|
||||
}
|
||||
|
||||
|
@ -1,10 +1,10 @@
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:S. Smith,David Haywood,Fabio Priuli
|
||||
/***********************************************************************************************************
|
||||
|
||||
|
||||
Neo Geo cart emulation
|
||||
Fatal Fury 2 cart type
|
||||
|
||||
|
||||
***********************************************************************************************************/
|
||||
|
||||
|
||||
@ -50,4 +50,3 @@ machine_config_constructor neogeo_fatfury2_cart::device_mconfig_additions() cons
|
||||
{
|
||||
return MACHINE_CONFIG_NAME( fatfury2_cart );
|
||||
}
|
||||
|
||||
|
@ -1,10 +1,10 @@
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:S. Smith,David Haywood,Fabio Priuli
|
||||
/***********************************************************************************************************
|
||||
|
||||
|
||||
Neo Geo cart emulation
|
||||
The King of Fighers 2002 cart type (CMC + PCM2 + Additional CPU encryption)
|
||||
|
||||
|
||||
***********************************************************************************************************/
|
||||
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:S. Smith,David Haywood,Fabio Priuli
|
||||
/***********************************************************************************************************
|
||||
|
||||
|
||||
Neo Geo cart emulation
|
||||
The King of Fighers '98 cart type
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:S. Smith,David Haywood,Fabio Priuli
|
||||
/***********************************************************************************************************
|
||||
|
||||
|
||||
Neo Geo cart emulation
|
||||
Metal Slug X cart type
|
||||
|
||||
@ -50,4 +50,3 @@ machine_config_constructor neogeo_mslugx_cart::device_mconfig_additions() const
|
||||
{
|
||||
return MACHINE_CONFIG_NAME( mslugx_cart );
|
||||
}
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:S. Smith,David Haywood,Fabio Priuli
|
||||
/***********************************************************************************************************
|
||||
|
||||
|
||||
Neo Geo cart emulation
|
||||
PCM2 encrypted cart type
|
||||
|
||||
@ -132,4 +132,3 @@ void neogeo_pcm2_pnyaa_cart::decrypt_all(DECRYPT_ALL_PARAMS)
|
||||
m_cmc_prot->sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
|
||||
m_pcm2_prot->decrypt(ym_region, ym_region_size, 4);
|
||||
}
|
||||
|
||||
|
@ -23,9 +23,9 @@ public:
|
||||
virtual machine_config_constructor device_mconfig_additions() const override;
|
||||
|
||||
// reading and writing
|
||||
// virtual DECLARE_READ16_MEMBER(read_rom) override;
|
||||
// virtual DECLARE_READ16_MEMBER(read_rom) override;
|
||||
|
||||
// virtual void activate_cart(ACTIVATE_CART_PARAMS) override { m_banked_cart->install_banks(machine, maincpu, cpuregion, cpuregion_size); }
|
||||
// virtual void activate_cart(ACTIVATE_CART_PARAMS) override { m_banked_cart->install_banks(machine, maincpu, cpuregion, cpuregion_size); }
|
||||
virtual void decrypt_all(DECRYPT_ALL_PARAMS) override {}
|
||||
virtual int get_fixed_bank_type(void) override { return 0; }
|
||||
|
||||
|
@ -606,7 +606,7 @@ void cmc_prot_device::sfix_decrypt(UINT8* rom, UINT32 rom_size, UINT8* fixed, UI
|
||||
int tx_size = fixed_size;
|
||||
UINT8 *src = rom + rom_size - tx_size;
|
||||
UINT8 *dst = fixed;
|
||||
|
||||
|
||||
for (int i = 0; i < tx_size; i++)
|
||||
dst[i] = src[(i & ~0x1f) + ((i & 7) << 2) + ((~i & 8) >> 2) + ((i & 0x10) >> 4)];
|
||||
}
|
||||
|
@ -25,9 +25,9 @@ void cthd_prot_device::device_reset()
|
||||
|
||||
|
||||
/**************************
|
||||
|
||||
|
||||
decryption helpers
|
||||
|
||||
|
||||
**************************/
|
||||
|
||||
// descrambling information from razoola
|
||||
@ -86,9 +86,9 @@ void cthd_prot_device::cthd2003_c(UINT8* sprrom, UINT32 sprrom_size, int pow)
|
||||
}
|
||||
|
||||
/**************************
|
||||
|
||||
|
||||
protection / encryption
|
||||
|
||||
|
||||
**************************/
|
||||
|
||||
void cthd_prot_device::decrypt_cthd2003(UINT8* sprrom, UINT32 sprrom_size, UINT8* audiorom, UINT32 audiorom_size, UINT8* fixedrom, UINT32 fixedrom_size)
|
||||
@ -119,16 +119,16 @@ void cthd_prot_device::decrypt_cthd2003(UINT8* sprrom, UINT32 sprrom_size, UINT8
|
||||
/*
|
||||
WRITE16_MEMBER( ngbootleg_prot_device::cthd2003_bankswitch_w )
|
||||
{
|
||||
int bankaddress;
|
||||
static const int cthd2003_banks[8] =
|
||||
{
|
||||
1,0,1,0,1,0,3,2,
|
||||
};
|
||||
if (offset == 0)
|
||||
{
|
||||
bankaddress = 0x100000 + cthd2003_banks[data&7]*0x100000;
|
||||
m_bankdev->neogeo_set_main_cpu_bank_address(bankaddress);
|
||||
}
|
||||
int bankaddress;
|
||||
static const int cthd2003_banks[8] =
|
||||
{
|
||||
1,0,1,0,1,0,3,2,
|
||||
};
|
||||
if (offset == 0)
|
||||
{
|
||||
bankaddress = 0x100000 + cthd2003_banks[data&7]*0x100000;
|
||||
m_bankdev->neogeo_set_main_cpu_bank_address(bankaddress);
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
@ -313,7 +313,7 @@ void cthd_prot_device::matrimbl_decrypt(UINT8* sprrom, UINT32 sprrom_size, UINT8
|
||||
rom[j] = buf[i];
|
||||
}
|
||||
memcpy(rom - 0x10000, rom, 0x10000);
|
||||
|
||||
|
||||
// decrypt gfx
|
||||
cthd2003_c(sprrom,sprrom_size, 0 );
|
||||
}
|
||||
|
@ -32,7 +32,7 @@ public:
|
||||
|
||||
void patch_ct2k3sa(UINT8* cpurom, UINT32 cpurom_size);
|
||||
void decrypt_ct2k3sa(UINT8* sprrom, UINT32 sprrom_size, UINT8* audiorom, UINT32 audiorom_size);
|
||||
|
||||
|
||||
void matrimbl_decrypt(UINT8* sprrom, UINT32 sprrom_size, UINT8* audiorom, UINT32 audiorom_size);
|
||||
|
||||
protected:
|
||||
|
@ -99,4 +99,3 @@ WRITE16_MEMBER( fatfury2_prot_device::protection_w )
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -50,11 +50,11 @@ WRITE16_MEMBER(kof2k3bl_prot_device::kof2003_w)
|
||||
m_bank_base = 0x100000 + ((cr[BYTE_XOR_LE(0x1ff3)] << 16) | (cr[BYTE_XOR_LE(0x1ff2)] << 8) | cr[BYTE_XOR_LE(0x1ff1)]);
|
||||
//UINT32 address = (cr[BYTE_XOR_LE(0x1ff3)] << 16) | (cr[BYTE_XOR_LE(0x1ff2)] << 8) | cr[BYTE_XOR_LE(0x1ff1)];
|
||||
//m_bankdev->neogeo_set_main_cpu_bank_address(address+0x100000);
|
||||
|
||||
|
||||
cr[BYTE_XOR_LE(0x1ff0)] = 0xa0;
|
||||
cr[BYTE_XOR_LE(0x1ff1)] &= 0xfe;
|
||||
cr[BYTE_XOR_LE(0x1ff3)] &= 0x7f;
|
||||
|
||||
|
||||
m_overlay = (prt & 0x00ff) | (m_overlay & 0xff00);
|
||||
}
|
||||
}
|
||||
@ -69,7 +69,7 @@ WRITE16_MEMBER(kof2k3bl_prot_device::kof2003p_w)
|
||||
m_bank_base = 0x100000 + ((cr[BYTE_XOR_LE(0x1ff3)] << 16) | (cr[BYTE_XOR_LE(0x1ff2)] << 8) | cr[BYTE_XOR_LE(0x1ff0)]);
|
||||
//UINT32 address = (cr[BYTE_XOR_LE(0x1ff3)] << 16) | (cr[BYTE_XOR_LE(0x1ff2)] << 8) | cr[BYTE_XOR_LE(0x1ff0)];
|
||||
//m_bankdev->neogeo_set_main_cpu_bank_address(address+0x100000);
|
||||
|
||||
|
||||
cr[BYTE_XOR_LE(0x1ff0)] &= 0xfe;
|
||||
cr[BYTE_XOR_LE(0x1ff3)] &= 0x7f;
|
||||
|
||||
@ -96,17 +96,17 @@ void kof2k3bl_prot_device::pl_px_decrypt(UINT8* cpurom, UINT32 cpurom_size)
|
||||
{
|
||||
std::vector<UINT16> tmp(0x100000/2);
|
||||
UINT16*rom16 = (UINT16*)cpurom;
|
||||
|
||||
|
||||
for (int i = 0; i < 0x700000/2; i += 0x100000/2)
|
||||
{
|
||||
memcpy(&tmp[0], &rom16[i], 0x100000);
|
||||
for (int j = 0; j < 0x100000/2; j++)
|
||||
rom16[i+j] = tmp[BITSWAP24(j,23,22,21,20,19,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18)];
|
||||
}
|
||||
|
||||
|
||||
/* patched by Altera protection chip on PCB */
|
||||
rom16[0xf38ac/2] = 0x4e75;
|
||||
|
||||
|
||||
m_overlay = rom16[0x58196 / 2];
|
||||
}
|
||||
|
||||
@ -118,7 +118,7 @@ void kof2k3bl_prot_device::upl_px_decrypt(UINT8* cpurom, UINT32 cpurom_size)
|
||||
UINT8 *src = cpurom;
|
||||
memmove(src + 0x100000, src, 0x600000);
|
||||
memmove(src, src + 0x700000, 0x100000);
|
||||
|
||||
|
||||
UINT8 *rom = cpurom + 0xfe000;
|
||||
UINT8 *buf = cpurom + 0xd0610;
|
||||
for (int i = 0; i < 0x2000 / 2; i++)
|
||||
@ -126,8 +126,7 @@ void kof2k3bl_prot_device::upl_px_decrypt(UINT8* cpurom, UINT32 cpurom_size)
|
||||
int ofst = (i & 0xff00) + BITSWAP8((i & 0x00ff), 7, 6, 0, 4, 3, 2, 1, 5);
|
||||
memcpy(&rom[i * 2], &buf[ofst * 2], 2);
|
||||
}
|
||||
|
||||
|
||||
UINT16* rom16 = (UINT16*)cpurom;
|
||||
m_overlay = rom16[0x58196 / 2];
|
||||
}
|
||||
|
||||
|
@ -125,4 +125,3 @@ WRITE16_MEMBER( kof98_prot_device::protection_w )
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2,9 +2,9 @@
|
||||
// copyright-holders:S. Smith,David Haywood,Fabio Priuli
|
||||
|
||||
/***************************************************************************
|
||||
|
||||
|
||||
Neo-Geo hardware encryption and protection used on bootleg cartridges
|
||||
|
||||
|
||||
Many of the NeoGeo bootlegs use their own form of encryption and
|
||||
protection, presumably to make them harder for other bootleggers to
|
||||
copy. This encryption often involves non-trivial scrambling of the
|
||||
@ -12,11 +12,11 @@
|
||||
provides some kind of rom overlay, patching parts of the code.
|
||||
The graphics roms are usually scrambled in a different way to the
|
||||
official SNK cartridges too.
|
||||
|
||||
|
||||
Here we collect functions to emulate some of the protection devices used.
|
||||
|
||||
|
||||
TODO: split different devices according to the chip responsible for them!
|
||||
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
#include "emu.h"
|
||||
@ -197,10 +197,10 @@ void neoboot_prot_device::lans2004_decrypt_68k(UINT8* cpurom, UINT32 cpurom_size
|
||||
|
||||
static const int sec[] = { 0x3, 0x8, 0x7, 0xc, 0x1, 0xa, 0x6, 0xd };
|
||||
dynamic_buffer dst(0x600000);
|
||||
|
||||
|
||||
for (int i = 0; i < 8; i++)
|
||||
memcpy (&dst[i * 0x20000], src + sec[i] * 0x20000, 0x20000);
|
||||
|
||||
|
||||
memcpy (&dst[0x0bbb00], src + 0x045b00, 0x001710);
|
||||
memcpy (&dst[0x02fff0], src + 0x1a92be, 0x000010);
|
||||
memcpy (&dst[0x100000], src + 0x200000, 0x400000);
|
||||
@ -233,20 +233,20 @@ void neoboot_prot_device::samsho5b_px_decrypt(UINT8* cpurom, UINT32 cpurom_size)
|
||||
int px_size = cpurom_size;
|
||||
UINT8 *rom = cpurom;
|
||||
dynamic_buffer buf(px_size);
|
||||
|
||||
|
||||
memcpy(&buf[0], rom, px_size);
|
||||
|
||||
|
||||
for (int i = 0; i < px_size / 2; i++)
|
||||
{
|
||||
int ofst = BITSWAP8((i & 0x000ff), 7, 6, 5, 4, 3, 0, 1, 2);
|
||||
ofst += (i & 0xfffff00);
|
||||
ofst ^= 0x060005;
|
||||
|
||||
|
||||
memcpy(&rom[i * 2], &buf[ofst * 2], 0x02);
|
||||
}
|
||||
|
||||
|
||||
memcpy(&buf[0], rom, px_size);
|
||||
|
||||
|
||||
memcpy(&rom[0x000000], &buf[0x700000], 0x100000);
|
||||
memcpy(&rom[0x100000], &buf[0x000000], 0x700000);
|
||||
}
|
||||
@ -256,7 +256,7 @@ void neoboot_prot_device::samsho5b_vx_decrypt(UINT8* ymsndrom, UINT32 ymsndrom_s
|
||||
{
|
||||
int vx_size = ymsndrom_size;
|
||||
UINT8 *rom = ymsndrom;
|
||||
|
||||
|
||||
for (int i = 0; i < vx_size; i++)
|
||||
rom[i] = BITSWAP8(rom[i], 0, 1, 5, 4, 3, 2, 6, 7);
|
||||
}
|
||||
@ -276,22 +276,22 @@ READ16_MEMBER( neoboot_prot_device::mslug5p_prot_r )
|
||||
/*
|
||||
WRITE16_MEMBER( neoboot_prot_device::ms5plus_bankswitch_w )
|
||||
{
|
||||
int bankaddress;
|
||||
logerror("offset: %06x PC %06x: set banking %04x\n",offset,space.device().safe_pc(),data);
|
||||
if ((offset == 0) && (data == 0xa0))
|
||||
{
|
||||
bankaddress = 0xa0;
|
||||
m_bankdev->neogeo_set_main_cpu_bank_address(bankaddress);
|
||||
logerror("offset: %06x PC %06x: set banking %04x\n\n",offset,space.device().safe_pc(),bankaddress);
|
||||
}
|
||||
else if(offset == 2)
|
||||
{
|
||||
data = data >> 4;
|
||||
//data = data & 7;
|
||||
bankaddress = data * 0x100000;
|
||||
m_bankdev->neogeo_set_main_cpu_bank_address(bankaddress);
|
||||
logerror("offset: %06x PC %06x: set banking %04x\n\n",offset,space.device().safe_pc(),bankaddress);
|
||||
}
|
||||
int bankaddress;
|
||||
logerror("offset: %06x PC %06x: set banking %04x\n",offset,space.device().safe_pc(),data);
|
||||
if ((offset == 0) && (data == 0xa0))
|
||||
{
|
||||
bankaddress = 0xa0;
|
||||
m_bankdev->neogeo_set_main_cpu_bank_address(bankaddress);
|
||||
logerror("offset: %06x PC %06x: set banking %04x\n\n",offset,space.device().safe_pc(),bankaddress);
|
||||
}
|
||||
else if(offset == 2)
|
||||
{
|
||||
data = data >> 4;
|
||||
//data = data & 7;
|
||||
bankaddress = data * 0x100000;
|
||||
m_bankdev->neogeo_set_main_cpu_bank_address(bankaddress);
|
||||
logerror("offset: %06x PC %06x: set banking %04x\n\n",offset,space.device().safe_pc(),bankaddress);
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
@ -314,26 +314,26 @@ void neoboot_prot_device::kog_px_decrypt(UINT8* cpurom, UINT32 cpurom_size)
|
||||
dynamic_buffer dst(0x600000);
|
||||
UINT16 *rom = (UINT16 *)cpurom;
|
||||
static const int sec[] = { 0x3, 0x8, 0x7, 0xc, 0x1, 0xa, 0x6, 0xd };
|
||||
|
||||
|
||||
for (int i = 0; i < 8; i++)
|
||||
memcpy (&dst[i * 0x20000], src + sec[i] * 0x20000, 0x20000);
|
||||
|
||||
|
||||
memcpy (&dst[0x0007a6], src + 0x0407a6, 0x000006);
|
||||
memcpy (&dst[0x0007c6], src + 0x0407c6, 0x000006);
|
||||
memcpy (&dst[0x0007e6], src + 0x0407e6, 0x000006);
|
||||
memcpy (&dst[0x090000], src + 0x040000, 0x004000);
|
||||
memcpy (&dst[0x100000], src + 0x200000, 0x400000);
|
||||
memcpy (src, &dst[0], 0x600000);
|
||||
|
||||
|
||||
for (int i = 0x90000/2; i < 0x94000/2; i++)
|
||||
{
|
||||
if (((rom[i] & 0xffbf) == 0x4eb9 || rom[i] == 0x43f9) && !rom[i + 1])
|
||||
rom[i + 1] = 0x0009;
|
||||
|
||||
|
||||
if (rom[i] == 0x4eb8)
|
||||
rom[i] = 0x6100;
|
||||
}
|
||||
|
||||
|
||||
rom[0x007a8/2] = 0x0009;
|
||||
rom[0x007c8/2] = 0x0009;
|
||||
rom[0x007e8/2] = 0x0009;
|
||||
@ -363,7 +363,7 @@ void neoboot_prot_device::kog_px_decrypt(UINT8* cpurom, UINT32 cpurom_size)
|
||||
rom[0x93a58/2] = 0xfd08;
|
||||
rom[0x93a66/2] = 0xf9ca;
|
||||
rom[0x93a72/2] = 0xf9be;
|
||||
|
||||
|
||||
}
|
||||
|
||||
/* SNK vs. CAPCOM SVC CHAOS (bootleg) */
|
||||
@ -374,10 +374,10 @@ void neoboot_prot_device::svcboot_px_decrypt(UINT8* cpurom, UINT32 cpurom_size)
|
||||
int size = cpurom_size;
|
||||
UINT8 *src = cpurom;
|
||||
dynamic_buffer dst(size);
|
||||
|
||||
|
||||
for (int i = 0; i < size / 0x100000; i++)
|
||||
memcpy(&dst[i * 0x100000], &src[sec[i] * 0x100000], 0x100000);
|
||||
|
||||
|
||||
for (int i = 0; i < size / 2; i++)
|
||||
{
|
||||
int ofst = BITSWAP8((i & 0x0000ff), 7, 6, 1, 0, 3, 2, 5, 4);
|
||||
@ -400,7 +400,7 @@ void neoboot_prot_device::svcboot_cx_decrypt(UINT8* sprrom, UINT32 sprrom_size)
|
||||
int size = sprrom_size;
|
||||
UINT8 *src = sprrom;
|
||||
dynamic_buffer dst(size);
|
||||
|
||||
|
||||
memcpy(&dst[0], src, size);
|
||||
for (int i = 0; i < size / 0x80; i++)
|
||||
{
|
||||
@ -424,18 +424,18 @@ void neoboot_prot_device::svcplus_px_decrypt(UINT8* cpurom, UINT32 cpurom_size)
|
||||
int size = cpurom_size;
|
||||
UINT8 *src = cpurom;
|
||||
dynamic_buffer dst(size);
|
||||
|
||||
|
||||
memcpy(&dst[0], src, size);
|
||||
for (int i = 0; i < size / 2; i++)
|
||||
{
|
||||
int ofst = BITSWAP24((i & 0xfffff), 0x17, 0x16, 0x15, 0x14, 0x13, 0x00, 0x01, 0x02,
|
||||
0x0f, 0x0e, 0x0d, 0x0c, 0x0b, 0x0a, 0x09, 0x08,
|
||||
0x07, 0x06, 0x05, 0x04, 0x03, 0x10, 0x11, 0x12);
|
||||
0x0f, 0x0e, 0x0d, 0x0c, 0x0b, 0x0a, 0x09, 0x08,
|
||||
0x07, 0x06, 0x05, 0x04, 0x03, 0x10, 0x11, 0x12);
|
||||
ofst ^= 0x0f0007;
|
||||
ofst += (i & 0xff00000);
|
||||
memcpy(&src[i * 0x02], &dst[ofst * 0x02], 0x02);
|
||||
}
|
||||
|
||||
|
||||
memcpy(&dst[0], src, size);
|
||||
for (int i = 0; i < 6; i++)
|
||||
memcpy(&src[i * 0x100000], &dst[sec[i] * 0x100000], 0x100000);
|
||||
@ -458,7 +458,7 @@ void neoboot_prot_device::svcplusa_px_decrypt(UINT8* cpurom, UINT32 cpurom_size)
|
||||
int size = cpurom_size;
|
||||
UINT8 *src = cpurom;
|
||||
dynamic_buffer dst(size);
|
||||
|
||||
|
||||
memcpy(&dst[0], src, size);
|
||||
for (int i = 0; i < 6; i++)
|
||||
memcpy(&src[i * 0x100000], &dst[sec[i] * 0x100000], 0x100000);
|
||||
@ -473,13 +473,13 @@ void neoboot_prot_device::svcsplus_px_decrypt(UINT8* cpurom, UINT32 cpurom_size)
|
||||
int size = cpurom_size;
|
||||
UINT8 *src = cpurom;
|
||||
dynamic_buffer dst(size);
|
||||
|
||||
|
||||
memcpy(&dst[0], src, size);
|
||||
for (int i = 0; i < size / 2; i++)
|
||||
{
|
||||
int ofst = BITSWAP16((i & 0x007fff), 0x0f, 0x00, 0x08, 0x09, 0x0b, 0x0a, 0x0c, 0x0d,
|
||||
0x04, 0x03, 0x01, 0x07, 0x06, 0x02, 0x05, 0x0e);
|
||||
|
||||
0x04, 0x03, 0x01, 0x07, 0x06, 0x02, 0x05, 0x0e);
|
||||
|
||||
ofst += (i & 0x078000);
|
||||
ofst += sec[(i & 0xf80000) >> 19] << 19;
|
||||
memcpy(&src[i * 2], &dst[ofst * 2], 0x02);
|
||||
@ -513,13 +513,13 @@ void neoboot_prot_device::kof2002b_gfx_decrypt(UINT8 *src, int size)
|
||||
{ 2, 1, 0, 6, 7, 8 },
|
||||
{ 8, 0, 7, 6, 2, 1 },
|
||||
};
|
||||
|
||||
|
||||
dynamic_buffer dst(0x10000);
|
||||
|
||||
|
||||
for (int i = 0; i < size; i += 0x10000)
|
||||
{
|
||||
memcpy(&dst[0], src + i, 0x10000);
|
||||
|
||||
|
||||
for (int j = 0; j < 0x200; j++)
|
||||
{
|
||||
int n = (j & 0x38) >> 3;
|
||||
@ -536,9 +536,9 @@ void neoboot_prot_device::kf2k2mp_decrypt(UINT8* cpurom, UINT32 cpurom_size)
|
||||
{
|
||||
UINT8 *src = cpurom;
|
||||
UINT8 dst[0x80];
|
||||
|
||||
|
||||
memmove(src, src + 0x300000, 0x500000);
|
||||
|
||||
|
||||
for (int i = 0; i < 0x800000; i+=0x80)
|
||||
{
|
||||
for (int j = 0; j < 0x80 / 2; j++)
|
||||
@ -557,7 +557,7 @@ void neoboot_prot_device::kf2k2mp2_px_decrypt(UINT8* cpurom, UINT32 cpurom_size)
|
||||
{
|
||||
UINT8 *src = cpurom;
|
||||
dynamic_buffer dst(0x600000);
|
||||
|
||||
|
||||
memcpy(&dst[0x000000], &src[0x1C0000], 0x040000);
|
||||
memcpy(&dst[0x040000], &src[0x140000], 0x080000);
|
||||
memcpy(&dst[0x0C0000], &src[0x100000], 0x040000);
|
||||
@ -573,22 +573,21 @@ void neoboot_prot_device::kof10th_decrypt(UINT8* cpurom, UINT32 cpurom_size)
|
||||
{
|
||||
dynamic_buffer dst(0x900000);
|
||||
UINT8 *src = cpurom;
|
||||
|
||||
|
||||
memcpy(&dst[0x000000], src + 0x700000, 0x100000); // Correct (Verified in Uni-bios)
|
||||
memcpy(&dst[0x100000], src + 0x000000, 0x800000);
|
||||
|
||||
|
||||
for (int i = 0; i < 0x900000; i++)
|
||||
{
|
||||
int j = BITSWAP24(i,23,22,21,20,19,18,17,16,15,14,13,12,11,2,9,8,7,1,5,4,3,10,6,0);
|
||||
src[j] = dst[i];
|
||||
}
|
||||
|
||||
|
||||
// Altera protection chip patches these over P ROM
|
||||
((UINT16*)src)[0x0124/2] = 0x000d; // Enables XOR for RAM moves, forces SoftDIPs, and USA region
|
||||
((UINT16*)src)[0x0126/2] = 0xf7a8;
|
||||
|
||||
|
||||
((UINT16*)src)[0x8bf4/2] = 0x4ef9; // Run code to change "S" data
|
||||
((UINT16*)src)[0x8bf6/2] = 0x000d;
|
||||
((UINT16*)src)[0x8bf8/2] = 0xf980;
|
||||
}
|
||||
|
||||
|
@ -28,21 +28,21 @@ public:
|
||||
void kf2k5uni_px_decrypt(UINT8* cpurom, UINT32 cpurom_size);
|
||||
void kf2k5uni_sx_decrypt(UINT8* fixedrom, UINT32 fixedrom_size);
|
||||
void kf2k5uni_mx_decrypt(UINT8* audiorom, UINT32 audiorom_size);
|
||||
|
||||
|
||||
void decrypt_kof2k4se_68k(UINT8* cpurom, UINT32 cpurom_size);
|
||||
|
||||
|
||||
void lans2004_vx_decrypt(UINT8* ymsndrom, UINT32 ymsndrom_size);
|
||||
void lans2004_decrypt_68k(UINT8* cpurom, UINT32 cpurom_size);
|
||||
|
||||
|
||||
void samsho5b_px_decrypt(UINT8* cpurom, UINT32 cpurom_size);
|
||||
void samsho5b_vx_decrypt(UINT8* ymsndrom, UINT32 ymsndrom_size);
|
||||
|
||||
|
||||
DECLARE_READ16_MEMBER(mslug5p_prot_r);
|
||||
//DECLARE_WRITE16_MEMBER(ms5plus_bankswitch_w);
|
||||
UINT32 mslug5p_bank_base(UINT16 sel);
|
||||
|
||||
void kog_px_decrypt(UINT8* cpurom, UINT32 cpurom_size);
|
||||
|
||||
|
||||
void svcboot_px_decrypt(UINT8* cpurom, UINT32 cpurom_size);
|
||||
void svcboot_cx_decrypt(UINT8*sprrom, UINT32 sprrom_size);
|
||||
void svcplus_px_decrypt(UINT8* cpurom, UINT32 cpurom_size);
|
||||
|
@ -84,4 +84,3 @@ READ16_MEMBER( mslugx_prot_device::protection_r )
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
|
@ -59,10 +59,10 @@ void pvc_prot_device::pvc_write_pack_color()
|
||||
|
||||
/*void pvc_prot_device::pvc_write_bankswitch()
|
||||
{
|
||||
UINT32 bankaddress = ((m_cart_ram[0xff8] >> 8)|(m_cart_ram[0xff9] << 8));
|
||||
m_cart_ram[0xff8] = (m_cart_ram[0xff8] & 0xfe00) | 0x00a0;
|
||||
m_cart_ram[0xff9] &= 0x7fff;
|
||||
m_bankdev->neogeo_set_main_cpu_bank_address(bankaddress + 0x100000);
|
||||
UINT32 bankaddress = ((m_cart_ram[0xff8] >> 8)|(m_cart_ram[0xff9] << 8));
|
||||
m_cart_ram[0xff8] = (m_cart_ram[0xff8] & 0xfe00) | 0x00a0;
|
||||
m_cart_ram[0xff9] &= 0x7fff;
|
||||
m_bankdev->neogeo_set_main_cpu_bank_address(bankaddress + 0x100000);
|
||||
}
|
||||
*/
|
||||
|
||||
@ -87,8 +87,8 @@ WRITE16_MEMBER( pvc_prot_device::protection_w )
|
||||
else if (offset >= 0xff4 && offset <= 0xff5)
|
||||
pvc_write_pack_color();
|
||||
// FIXME: temporarily moved to the driver, through get_bank_base() above
|
||||
// else if(offset >= 0xff8)
|
||||
// pvc_write_bankswitch(space);
|
||||
// else if(offset >= 0xff8)
|
||||
// pvc_write_bankswitch(space);
|
||||
}
|
||||
|
||||
|
||||
@ -289,4 +289,3 @@ void pvc_prot_device::kof2003h_decrypt_68k(UINT8* rom, UINT32 size)
|
||||
memcpy(&rom[0x100000], &buf[0x800000], 0x100000);
|
||||
memcpy(&rom[0x200000], &buf[0x100000], 0x700000);
|
||||
}
|
||||
|
||||
|
@ -20,7 +20,7 @@ public:
|
||||
|
||||
void pvc_write_unpack_color();
|
||||
void pvc_write_pack_color();
|
||||
// void pvc_write_bankswitch(address_space &space);
|
||||
// void pvc_write_bankswitch(address_space &space);
|
||||
UINT32 get_bank_base();
|
||||
DECLARE_READ16_MEMBER(protection_r);
|
||||
DECLARE_WRITE16_MEMBER(protection_w);
|
||||
|
@ -215,7 +215,7 @@ UINT32 sma_prot_device::kof99_bank_base(UINT16 sel)
|
||||
0x588800, 0x581800, 0x599800, 0x594800,
|
||||
0x598000, /* rest not used? */
|
||||
};
|
||||
|
||||
|
||||
/* unscramble bank number */
|
||||
int data =
|
||||
(BIT(sel, 14) << 0)+
|
||||
@ -224,7 +224,7 @@ UINT32 sma_prot_device::kof99_bank_base(UINT16 sel)
|
||||
(BIT(sel, 10) << 3)+
|
||||
(BIT(sel, 12) << 4)+
|
||||
(BIT(sel, 5) << 5);
|
||||
|
||||
|
||||
int bankaddress = 0x100000 + bankoffset[data];
|
||||
return bankaddress;
|
||||
}
|
||||
@ -249,7 +249,7 @@ UINT32 sma_prot_device::garou_bank_base(UINT16 sel)
|
||||
0x5d0000, 0x5d8000, 0x5e0000, 0x5e8000, // 48
|
||||
0x5f0000, 0x5f8000, 0x600000, // rest not used?
|
||||
};
|
||||
|
||||
|
||||
// unscramble bank number
|
||||
int data =
|
||||
(BIT(sel, 5) << 0)+
|
||||
@ -258,7 +258,7 @@ UINT32 sma_prot_device::garou_bank_base(UINT16 sel)
|
||||
(BIT(sel, 6) << 3)+
|
||||
(BIT(sel, 14) << 4)+
|
||||
(BIT(sel, 12) << 5);
|
||||
|
||||
|
||||
int bankaddress = 0x100000 + bankoffset[data];
|
||||
return bankaddress;
|
||||
}
|
||||
@ -285,7 +285,7 @@ UINT32 sma_prot_device::garouh_bank_base(UINT16 sel)
|
||||
0x000000, 0x000000, 0x000000, 0x000000, // 56
|
||||
0x000000, 0x000000, 0x000000, 0x000000, // 60
|
||||
};
|
||||
|
||||
|
||||
// unscramble bank number
|
||||
int data =
|
||||
(BIT(sel, 4) << 0)+
|
||||
@ -294,7 +294,7 @@ UINT32 sma_prot_device::garouh_bank_base(UINT16 sel)
|
||||
(BIT(sel, 2) << 3)+
|
||||
(BIT(sel, 11) << 4)+
|
||||
(BIT(sel, 13) << 5);
|
||||
|
||||
|
||||
int bankaddress = 0x100000 + bankoffset[data];
|
||||
return bankaddress;
|
||||
}
|
||||
@ -318,7 +318,7 @@ UINT32 sma_prot_device::mslug3_bank_base(UINT16 sel)
|
||||
0x460000, 0x470000, 0x4a0000, 0x4b0000, // 44
|
||||
0x4c0000, // rest not used?
|
||||
};
|
||||
|
||||
|
||||
// unscramble bank number
|
||||
int data =
|
||||
(BIT(sel, 14) << 0)+
|
||||
@ -327,7 +327,7 @@ UINT32 sma_prot_device::mslug3_bank_base(UINT16 sel)
|
||||
(BIT(sel, 6) << 3)+
|
||||
(BIT(sel, 3) << 4)+
|
||||
(BIT(sel, 9) << 5);
|
||||
|
||||
|
||||
int bankaddress = 0x100000 + bankoffset[data];
|
||||
return bankaddress;
|
||||
}
|
||||
@ -347,7 +347,7 @@ UINT32 sma_prot_device::kof2000_bank_base(UINT16 sel)
|
||||
0x52d000, 0x62d000, 0x52e800, 0x62e800, // 28
|
||||
0x618000, 0x619000, 0x61a000, 0x61a800, // 32
|
||||
};
|
||||
|
||||
|
||||
// unscramble bank number
|
||||
int data =
|
||||
(BIT(sel, 15) << 0)+
|
||||
@ -356,7 +356,7 @@ UINT32 sma_prot_device::kof2000_bank_base(UINT16 sel)
|
||||
(BIT(sel, 3) << 3)+
|
||||
(BIT(sel, 10) << 4)+
|
||||
(BIT(sel, 5) << 5);
|
||||
|
||||
|
||||
int bankaddress = 0x100000 + bankoffset[data];
|
||||
return bankaddress;
|
||||
}
|
||||
@ -445,7 +445,7 @@ void sma_prot_device::garouh_decrypt_68k(UINT8* base)
|
||||
{
|
||||
// thanks to Razoola and Mr K for the info
|
||||
UINT16 *rom = (UINT16 *)(base + 0x100000);
|
||||
|
||||
|
||||
// swap data lines on the whole ROMs
|
||||
for (int i = 0; i < 0x800000/2; i++)
|
||||
rom[i] = BITSWAP16(rom[i],14,5,1,11,7,4,10,15,3,12,8,13,0,2,9,6);
|
||||
@ -471,7 +471,7 @@ void sma_prot_device::mslug3_decrypt_68k(UINT8* base)
|
||||
{
|
||||
// thanks to Razoola and Mr K for the info
|
||||
UINT16 *rom = (UINT16 *)(base + 0x100000);
|
||||
|
||||
|
||||
// swap data lines on the whole ROMs
|
||||
for (int i = 0; i < 0x800000/2; i++)
|
||||
rom[i] = BITSWAP16(rom[i],4,11,14,3,1,13,0,7,2,8,12,15,10,9,5,6);
|
||||
@ -497,7 +497,7 @@ void sma_prot_device::kof2000_decrypt_68k(UINT8* base)
|
||||
{
|
||||
// thanks to Razoola and Mr K for the info
|
||||
UINT16 *rom = (UINT16 *)(base + 0x100000);
|
||||
|
||||
|
||||
// swap data lines on the whole ROMs
|
||||
for (int i = 0; i < 0x800000/2; i++)
|
||||
rom[i] = BITSWAP16(rom[i],12,8,11,3,15,14,7,0,10,13,6,5,9,2,1,4);
|
||||
@ -516,5 +516,3 @@ void sma_prot_device::kof2000_decrypt_68k(UINT8* base)
|
||||
for (int i = 0; i < 0x0c0000/2; i++)
|
||||
rom[i] = rom[0x73a000/2 + BITSWAP24(i,23,22,21,20,19,18,8,4,15,13,3,14,16,2,6,17,7,12,10,0,5,11,1,9)];
|
||||
}
|
||||
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:S. Smith,David Haywood,Fabio Priuli
|
||||
/***********************************************************************************************************
|
||||
|
||||
|
||||
Neo Geo cart emulation
|
||||
PVC encrypted cart type (+ CMC + PCM2)
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:S. Smith,David Haywood,Fabio Priuli
|
||||
/***********************************************************************************************************
|
||||
|
||||
|
||||
Neo Geo cart emulation
|
||||
Standard cart type, possibly with bankswitch in the area beyond 0x100000
|
||||
(We also include here V-Liner, which uses a standard cart + RAM + some custom input)
|
||||
@ -85,4 +85,3 @@ void neogeo_vliner_cart::device_reset()
|
||||
{
|
||||
memset(m_cart_ram, 0, 0x2000);
|
||||
}
|
||||
|
||||
|
@ -39,15 +39,15 @@ class neogeo_vliner_cart : public neogeo_rom_device
|
||||
{
|
||||
public:
|
||||
neogeo_vliner_cart(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
|
||||
|
||||
|
||||
virtual DECLARE_READ16_MEMBER(ram_r) override { return m_cart_ram[offset]; }
|
||||
virtual DECLARE_WRITE16_MEMBER(ram_w) override { COMBINE_DATA(&m_cart_ram[offset]); }
|
||||
|
||||
virtual int get_fixed_bank_type(void) override { return 0; }
|
||||
|
||||
|
||||
virtual void device_start() override;
|
||||
virtual void device_reset() override;
|
||||
|
||||
|
||||
private:
|
||||
UINT16 m_cart_ram[0x1000];
|
||||
};
|
||||
|
@ -1,13 +1,13 @@
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:S. Smith,David Haywood,Fabio Priuli
|
||||
/***********************************************************************************************************
|
||||
|
||||
|
||||
Neo Geo cart emulation
|
||||
Super Bubble Pop cart type
|
||||
|
||||
|
||||
Note: since protection here involves accesses to ROM, we include the scrambling in this
|
||||
file rather than in a separate prot_* source
|
||||
|
||||
|
||||
***********************************************************************************************************/
|
||||
|
||||
|
||||
@ -75,7 +75,7 @@ void neogeo_sbp_cart::patch(UINT8* cpurom, UINT32 cpurom_size)
|
||||
{
|
||||
/* the game code clears the text overlay used ingame immediately after writing it.. why? protection? sloppy code that the hw ignores? imperfect emulation? */
|
||||
UINT16* rom = (UINT16*)cpurom;
|
||||
|
||||
|
||||
rom[0x2a6f8/2] = 0x4e71;
|
||||
rom[0x2a6fa/2] = 0x4e71;
|
||||
rom[0x2a6fc/2] = 0x4e71;
|
||||
|
@ -16,13 +16,13 @@ class neogeo_sbp_cart : public neogeo_rom_device
|
||||
{
|
||||
public:
|
||||
neogeo_sbp_cart(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
|
||||
|
||||
|
||||
virtual void device_start() override;
|
||||
virtual void device_reset() override;
|
||||
|
||||
virtual DECLARE_WRITE16_MEMBER(protection_w) override;
|
||||
virtual DECLARE_READ16_MEMBER(protection_r) override;
|
||||
|
||||
|
||||
virtual void decrypt_all(DECRYPT_ALL_PARAMS) override;
|
||||
virtual int get_fixed_bank_type(void) override { return 0; }
|
||||
|
||||
|
@ -3,7 +3,7 @@
|
||||
/***********************************************************************************************************
|
||||
|
||||
SNK Neo Geo cartslot emulation
|
||||
|
||||
|
||||
***********************************************************************************************************/
|
||||
|
||||
#include "slot.h"
|
||||
@ -44,15 +44,15 @@ UINT32 device_neogeo_cart_interface::get_region_mask(UINT8* rgn, UINT32 rgn_size
|
||||
// get mask based on the length rounded up to the nearest power of 2
|
||||
UINT32 mask = 0xffffffff;
|
||||
UINT32 len = rgn_size;
|
||||
|
||||
|
||||
for (UINT32 bit = 0x80000000; bit != 0; bit >>= 1)
|
||||
{
|
||||
if ((len * 2 - 1) & bit)
|
||||
break;
|
||||
|
||||
|
||||
mask >>= 1;
|
||||
}
|
||||
|
||||
|
||||
return mask;
|
||||
}
|
||||
|
||||
@ -64,7 +64,7 @@ void device_neogeo_cart_interface::optimize_sprites(UINT8* region_sprites, UINT3
|
||||
|
||||
m_sprites_opt.resize(spritegfx_address_mask + 1);
|
||||
UINT8 *dest = &m_sprites_opt[0];
|
||||
|
||||
|
||||
for (unsigned i = 0; i < region_sprites_size; i += 0x80, src += 0x80)
|
||||
{
|
||||
for (unsigned y = 0; y < 0x10; y++)
|
||||
@ -76,7 +76,7 @@ void device_neogeo_cart_interface::optimize_sprites(UINT8* region_sprites, UINT3
|
||||
(((src[0x42 | (y << 2)] >> x) & 0x01) << 1) |
|
||||
(((src[0x40 | (y << 2)] >> x) & 0x01) << 0);
|
||||
}
|
||||
|
||||
|
||||
for (unsigned x = 0; x < 8; x++)
|
||||
{
|
||||
*(dest++) = (((src[0x03 | (y << 2)] >> x) & 0x01) << 3) |
|
||||
@ -219,7 +219,7 @@ static int neogeo_get_pcb_id(const char *slot)
|
||||
if (!core_stricmp(elem.slot_option, slot))
|
||||
return elem.pcb_id;
|
||||
}
|
||||
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -87,7 +87,7 @@ public:
|
||||
// construction/destruction
|
||||
device_neogeo_cart_interface(const machine_config &mconfig, device_t &device);
|
||||
virtual ~device_neogeo_cart_interface();
|
||||
|
||||
|
||||
// reading from ROM
|
||||
virtual DECLARE_READ16_MEMBER(rom_r) { return 0xffff; }
|
||||
virtual DECLARE_WRITE16_MEMBER(banksel_w) { };
|
||||
@ -102,7 +102,7 @@ public:
|
||||
|
||||
virtual void decrypt_all(DECRYPT_ALL_PARAMS) { };
|
||||
virtual int get_fixed_bank_type(void) { return 0; }
|
||||
|
||||
|
||||
void rom_alloc(UINT32 size) { m_rom.resize(size/sizeof(UINT16)); }
|
||||
UINT16* get_rom_base() { return &m_rom[0]; }
|
||||
UINT32 get_rom_size() { return m_rom.size() * sizeof(UINT16); }
|
||||
@ -114,19 +114,19 @@ public:
|
||||
UINT32 get_fixed_size() { return m_fixed.size(); }
|
||||
UINT8* get_region_fixed_base() { if (m_region_fixed.found()) return m_region_fixed->base(); return nullptr; }
|
||||
UINT32 get_region_fixed_size() { if (m_region_fixed.found()) return m_region_fixed->bytes(); return 0; }
|
||||
|
||||
|
||||
void audio_alloc(UINT32 size) { m_audio.resize(size); }
|
||||
UINT8* get_audio_base() { return &m_audio[0]; }
|
||||
UINT32 get_audio_size() { return m_audio.size(); }
|
||||
UINT8* get_region_audio_base() { if (m_region_audio.found()) return m_region_audio->base(); return nullptr; }
|
||||
UINT32 get_region_audio_size() { if (m_region_audio.found()) return m_region_audio->bytes(); return 0; }
|
||||
|
||||
|
||||
void audiocrypt_alloc(UINT32 size) { m_audiocrypt.resize(size); }
|
||||
UINT8* get_audiocrypt_base() { if (m_audiocrypt.size() == 0) return nullptr; else return &m_audiocrypt[0]; }
|
||||
UINT32 get_audiocrypt_size() { return m_audiocrypt.size(); }
|
||||
UINT8* get_region_audiocrypt_base() { if (m_region_audiocrypt.found()) return m_region_audiocrypt->base(); return nullptr; }
|
||||
UINT32 get_region_audiocrypt_size() { if (m_region_audiocrypt.found()) return m_region_audiocrypt->bytes(); return 0; }
|
||||
|
||||
|
||||
// TODO: review sprite code later!!
|
||||
void sprites_alloc(UINT32 size) { m_sprites.resize(size); }
|
||||
UINT8* get_sprites_base() { return &m_sprites[0]; }
|
||||
@ -139,7 +139,7 @@ public:
|
||||
UINT32 get_ym_size() { return m_ym.size(); }
|
||||
UINT8* get_region_ym_base() { if (m_region_ym.found()) return m_region_ym->base(); return nullptr; }
|
||||
UINT32 get_region_ym_size() { if (m_region_ym.found()) return m_region_ym->bytes(); return 0; }
|
||||
|
||||
|
||||
void ymdelta_alloc(UINT32 size) { m_ymdelta.resize(size); }
|
||||
UINT8* get_ymdelta_base() { return &m_ymdelta[0]; }
|
||||
UINT32 get_ymdelta_size() { return m_ymdelta.size(); }
|
||||
@ -172,7 +172,7 @@ protected:
|
||||
optional_memory_region m_region_spr;
|
||||
optional_memory_region m_region_ym;
|
||||
optional_memory_region m_region_ymd;
|
||||
|
||||
|
||||
UINT32 get_region_mask(UINT8* rgn, UINT32 rgn_size);
|
||||
};
|
||||
|
||||
@ -228,7 +228,7 @@ public:
|
||||
}
|
||||
return nullptr;
|
||||
}
|
||||
UINT32 get_rom_size() {
|
||||
UINT32 get_rom_size() {
|
||||
if (m_cart) {
|
||||
if (!user_loadable()) return m_cart->get_region_rom_size(); else return m_cart->get_rom_size();
|
||||
}
|
||||
@ -240,7 +240,7 @@ public:
|
||||
}
|
||||
return nullptr;
|
||||
}
|
||||
UINT32 get_fixed_size() {
|
||||
UINT32 get_fixed_size() {
|
||||
if (m_cart) {
|
||||
if (!user_loadable()) return m_cart->get_region_fixed_size(); else return m_cart->get_fixed_size();
|
||||
}
|
||||
@ -252,7 +252,7 @@ public:
|
||||
}
|
||||
return nullptr;
|
||||
}
|
||||
UINT32 get_sprites_size() {
|
||||
UINT32 get_sprites_size() {
|
||||
if (m_cart) {
|
||||
if (!user_loadable()) return m_cart->get_region_sprites_size(); else return m_cart->get_sprites_size();
|
||||
}
|
||||
@ -264,7 +264,7 @@ public:
|
||||
}
|
||||
return nullptr;
|
||||
}
|
||||
UINT32 get_audio_size() {
|
||||
UINT32 get_audio_size() {
|
||||
if (m_cart) {
|
||||
if (!user_loadable()) return m_cart->get_region_audio_size(); else return m_cart->get_audio_size();
|
||||
}
|
||||
@ -276,7 +276,7 @@ public:
|
||||
}
|
||||
return nullptr;
|
||||
}
|
||||
UINT32 get_audiocrypt_size() {
|
||||
UINT32 get_audiocrypt_size() {
|
||||
if (m_cart) {
|
||||
if (!user_loadable()) return m_cart->get_region_audiocrypt_size(); else return m_cart->get_audiocrypt_size();
|
||||
}
|
||||
@ -288,7 +288,7 @@ public:
|
||||
}
|
||||
return nullptr;
|
||||
}
|
||||
UINT32 get_ym_size() {
|
||||
UINT32 get_ym_size() {
|
||||
if (m_cart) {
|
||||
if (!user_loadable()) return m_cart->get_region_ym_size(); else return m_cart->get_ym_size();
|
||||
}
|
||||
@ -300,7 +300,7 @@ public:
|
||||
}
|
||||
return nullptr;
|
||||
}
|
||||
UINT32 get_ymdelta_size() {
|
||||
UINT32 get_ymdelta_size() {
|
||||
if (m_cart) {
|
||||
if (!user_loadable()) return m_cart->get_region_ymdelta_size(); else return m_cart->get_ymdelta_size();
|
||||
}
|
||||
@ -310,7 +310,7 @@ public:
|
||||
UINT8* get_sprites_opt_base() {
|
||||
if (m_cart) return m_cart->get_sprites_opt_base(); else return nullptr;
|
||||
}
|
||||
UINT32 get_sprites_opt_size() {
|
||||
UINT32 get_sprites_opt_size() {
|
||||
if (m_cart) return m_cart->get_sprites_opt_size(); else return 0;
|
||||
}
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:S. Smith,David Haywood,Fabio Priuli
|
||||
/***********************************************************************************************************
|
||||
|
||||
|
||||
Neo Geo cart emulation
|
||||
SMA encrypted cart type (+ CMC42 or CMC50)
|
||||
|
||||
@ -149,4 +149,3 @@ void neogeo_sma_kof2000_cart::decrypt_all(DECRYPT_ALL_PARAMS)
|
||||
m_cmc_prot->cmc50_gfx_decrypt(spr_region, spr_region_size, KOF2000_GFX_KEY);
|
||||
m_cmc_prot->sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
|
||||
}
|
||||
|
||||
|
@ -2502,13 +2502,13 @@ WRITE8_MEMBER(nes_pjoy84_device::write_m)
|
||||
}
|
||||
|
||||
/*-------------------------------------------------
|
||||
|
||||
|
||||
COOLBOY
|
||||
|
||||
|
||||
Games: several multigame carts
|
||||
|
||||
|
||||
In MESS: Not Supported.
|
||||
|
||||
|
||||
-------------------------------------------------*/
|
||||
|
||||
void nes_coolboy_device::prg_cb(int start, int bank)
|
||||
@ -2526,7 +2526,7 @@ void nes_coolboy_device::chr_cb(int start, int bank, int source)
|
||||
WRITE8_MEMBER(nes_coolboy_device::write_m)
|
||||
{
|
||||
LOG_MMC(("coolboy write_m, offset: %04x, data: %02x\n", offset, data));
|
||||
|
||||
|
||||
m_reg[offset & 0x03] = data;
|
||||
//set_base_mask();
|
||||
set_chr(m_chr_source, m_chr_base, m_chr_mask);
|
||||
|
@ -661,17 +661,17 @@ class nes_coolboy_device : public nes_txrom_device
|
||||
public:
|
||||
// construction/destruction
|
||||
nes_coolboy_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
|
||||
|
||||
|
||||
// device-level overrides
|
||||
// virtual void device_start() override;
|
||||
// virtual void device_start() override;
|
||||
virtual DECLARE_WRITE8_MEMBER(write_m) override;
|
||||
virtual void prg_cb(int start, int bank) override;
|
||||
virtual void chr_cb(int start, int bank, int source) override;
|
||||
|
||||
// virtual void pcb_reset() override;
|
||||
|
||||
|
||||
// virtual void pcb_reset() override;
|
||||
|
||||
private:
|
||||
// inline void set_base_mask();
|
||||
// inline void set_base_mask();
|
||||
UINT8 m_reg[4];
|
||||
};
|
||||
|
||||
|
@ -1070,7 +1070,7 @@ int drcbe_c::execute(code_handle &entry)
|
||||
PARAM0 = temp32;
|
||||
break;
|
||||
|
||||
case MAKE_OPCODE_SHORT(OP_TZCNT, 4, 0): // TZCNT dst,src
|
||||
case MAKE_OPCODE_SHORT(OP_TZCNT, 4, 0): // TZCNT dst,src
|
||||
PARAM0 = tzcount32(PARAM1);
|
||||
break;
|
||||
|
||||
@ -1689,7 +1689,7 @@ int drcbe_c::execute(code_handle &entry)
|
||||
DPARAM0 = temp64;
|
||||
break;
|
||||
|
||||
case MAKE_OPCODE_SHORT(OP_TZCNT, 8, 0): // DTZCNT dst,src
|
||||
case MAKE_OPCODE_SHORT(OP_TZCNT, 8, 0): // DTZCNT dst,src
|
||||
DPARAM0 = tzcount64(DPARAM1);
|
||||
break;
|
||||
|
||||
|
@ -4303,7 +4303,7 @@ void drcbe_x64::op_add(x86code *&dst, const instruction &inst)
|
||||
|
||||
// dstp == src2p in memory
|
||||
else if (dstp.is_memory() && dstp == src2p)
|
||||
emit_add_m32_p32(dst, MABS(dstp.memory()), src1p, inst); // add [dstp],src1p
|
||||
emit_add_m32_p32(dst, MABS(dstp.memory()), src1p, inst); // add [dstp],src1p
|
||||
|
||||
// reg = reg + imm
|
||||
else if (dstp.is_int_register() && src1p.is_int_register() && src2p.is_immediate() && inst.flags() == 0)
|
||||
@ -4331,7 +4331,7 @@ void drcbe_x64::op_add(x86code *&dst, const instruction &inst)
|
||||
|
||||
// dstp == src2p in memory
|
||||
else if (dstp.is_memory() && dstp == src2p)
|
||||
emit_add_m64_p64(dst, MABS(dstp.memory()), src1p, inst); // add [dstp],src1p
|
||||
emit_add_m64_p64(dst, MABS(dstp.memory()), src1p, inst); // add [dstp],src1p
|
||||
|
||||
// reg = reg + imm
|
||||
else if (dstp.is_int_register() && src1p.is_int_register() && src2p.is_immediate() && short_immediate(src2p.immediate()) && inst.flags() == 0)
|
||||
@ -5216,7 +5216,7 @@ void drcbe_x64::op_or(x86code *&dst, const instruction &inst)
|
||||
|
||||
// dstp == src2p in memory
|
||||
else if (dstp.is_memory() && dstp == src2p)
|
||||
emit_or_m32_p32(dst, MABS(dstp.memory()), src1p, inst); // or [dstp],src1p
|
||||
emit_or_m32_p32(dst, MABS(dstp.memory()), src1p, inst); // or [dstp],src1p
|
||||
|
||||
// general case
|
||||
else
|
||||
@ -5236,7 +5236,7 @@ void drcbe_x64::op_or(x86code *&dst, const instruction &inst)
|
||||
|
||||
// dstp == src2p in memory
|
||||
else if (dstp.is_memory() && dstp == src2p)
|
||||
emit_or_m64_p64(dst, MABS(dstp.memory()), src1p, inst); // or [dstp],src1p
|
||||
emit_or_m64_p64(dst, MABS(dstp.memory()), src1p, inst); // or [dstp],src1p
|
||||
|
||||
// general case
|
||||
else
|
||||
@ -5278,11 +5278,11 @@ void drcbe_x64::op_xor(x86code *&dst, const instruction &inst)
|
||||
|
||||
// dstp == src2p in memory
|
||||
else if (dstp.is_memory() && dstp == src2p)
|
||||
emit_xor_m32_p32(dst, MABS(dstp.memory()), src1p, inst); // xor [dstp],src1p
|
||||
emit_xor_m32_p32(dst, MABS(dstp.memory()), src1p, inst); // xor [dstp],src1p
|
||||
|
||||
// dstp == src1p register
|
||||
else if (dstp.is_int_register() && dstp == src1p)
|
||||
emit_xor_r32_p32(dst, dstp.ireg(), src2p, inst); // xor dstp,src2p
|
||||
emit_xor_r32_p32(dst, dstp.ireg(), src2p, inst); // xor dstp,src2p
|
||||
|
||||
// general case
|
||||
else
|
||||
@ -5302,11 +5302,11 @@ void drcbe_x64::op_xor(x86code *&dst, const instruction &inst)
|
||||
|
||||
// dstp == src2p in memory
|
||||
else if (dstp.is_memory() && dstp == src2p)
|
||||
emit_xor_m64_p64(dst, MABS(dstp.memory()), src1p, inst); // xor [dstp],src1p
|
||||
emit_xor_m64_p64(dst, MABS(dstp.memory()), src1p, inst); // xor [dstp],src1p
|
||||
|
||||
// dstp == src1p register
|
||||
else if (dstp.is_int_register() && dstp == src1p)
|
||||
emit_xor_r64_p64(dst, dstp.ireg(), src2p, inst); // xor dstp,src2p
|
||||
emit_xor_r64_p64(dst, dstp.ireg(), src2p, inst); // xor dstp,src2p
|
||||
|
||||
// general case
|
||||
else
|
||||
@ -5374,16 +5374,16 @@ void drcbe_x64::op_tzcnt(x86code *&dst, const instruction &inst)
|
||||
|
||||
// normalize parameters
|
||||
be_parameter dstp(*this, inst.param(0), PTYPE_MR);
|
||||
be_parameter srcp(*this, inst.param(1), PTYPE_MRI);
|
||||
be_parameter srcp(*this, inst.param(1), PTYPE_MRI);
|
||||
|
||||
// 32-bit form
|
||||
if (inst.size() == 4)
|
||||
{
|
||||
int dstreg = dstp.select_register(REG_EAX);
|
||||
emit_mov_r32_p32(dst, dstreg, srcp); // mov dstreg,srcp
|
||||
emit_mov_r32_imm(dst, REG_ECX, 32); // mov ecx,32
|
||||
emit_bsf_r32_r32(dst, dstreg, dstreg); // bsf dstreg,dstreg
|
||||
emit_cmovcc_r32_r32(dst, x64emit::COND_Z, dstreg, REG_ECX); // cmovz dstreg,ecx
|
||||
emit_mov_r32_p32(dst, dstreg, srcp); // mov dstreg,srcp
|
||||
emit_mov_r32_imm(dst, REG_ECX, 32); // mov ecx,32
|
||||
emit_bsf_r32_r32(dst, dstreg, dstreg); // bsf dstreg,dstreg
|
||||
emit_cmovcc_r32_r32(dst, x64emit::COND_Z, dstreg, REG_ECX); // cmovz dstreg,ecx
|
||||
emit_mov_p32_r32(dst, dstp, dstreg); // mov dstp,dstreg
|
||||
}
|
||||
|
||||
@ -5391,11 +5391,11 @@ void drcbe_x64::op_tzcnt(x86code *&dst, const instruction &inst)
|
||||
else if (inst.size() == 8)
|
||||
{
|
||||
int dstreg = dstp.select_register(REG_RAX);
|
||||
emit_mov_r64_p64(dst, dstreg, srcp); // mov dstreg,srcp
|
||||
emit_mov_r64_imm(dst, REG_RCX, 64); // mov rcx,64
|
||||
emit_bsf_r64_r64(dst, dstreg, dstreg); // bsf dstreg,dstreg
|
||||
emit_cmovcc_r64_r64(dst, x64emit::COND_Z, dstreg, REG_RCX); // cmovz dstreg,rcx
|
||||
emit_mov_p64_r64(dst, dstp, dstreg); // mov dstp,dstreg
|
||||
emit_mov_r64_p64(dst, dstreg, srcp); // mov dstreg,srcp
|
||||
emit_mov_r64_imm(dst, REG_RCX, 64); // mov rcx,64
|
||||
emit_bsf_r64_r64(dst, dstreg, dstreg); // bsf dstreg,dstreg
|
||||
emit_cmovcc_r64_r64(dst, x64emit::COND_Z, dstreg, REG_RCX); // cmovz dstreg,rcx
|
||||
emit_mov_p64_r64(dst, dstp, dstreg); // mov dstp,dstreg
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -5492,31 +5492,31 @@ void drcbe_x86::op_tzcnt(x86code *&dst, const instruction &inst)
|
||||
be_parameter srcp(*this, inst.param(1), PTYPE_MRI);
|
||||
|
||||
int dstreg = dstp.select_register(REG_EAX);
|
||||
|
||||
|
||||
// 32-bit form
|
||||
if (inst.size() == 4)
|
||||
{
|
||||
emit_mov_r32_p32(dst, dstreg, srcp); // mov dstreg,src1p
|
||||
emit_mov_r32_imm(dst, REG_ECX, 32); // mov ecx,32
|
||||
emit_bsf_r32_r32(dst, dstreg, dstreg); // bsf dstreg,dstreg
|
||||
emit_cmovcc_r32_r32(dst, x86emit::COND_Z, dstreg, REG_ECX); // cmovz dstreg,ecx
|
||||
emit_mov_p32_r32(dst, dstp, dstreg); // mov dstp,dstreg
|
||||
emit_mov_r32_p32(dst, dstreg, srcp); // mov dstreg,src1p
|
||||
emit_mov_r32_imm(dst, REG_ECX, 32); // mov ecx,32
|
||||
emit_bsf_r32_r32(dst, dstreg, dstreg); // bsf dstreg,dstreg
|
||||
emit_cmovcc_r32_r32(dst, x86emit::COND_Z, dstreg, REG_ECX); // cmovz dstreg,ecx
|
||||
emit_mov_p32_r32(dst, dstp, dstreg); // mov dstp,dstreg
|
||||
}
|
||||
|
||||
// 64-bit form
|
||||
else if (inst.size() == 8)
|
||||
{
|
||||
emit_link skip;
|
||||
emit_mov_r64_p64(dst, REG_EDX, dstreg, srcp); // mov dstreg:edx,srcp
|
||||
emit_bsf_r32_r32(dst, dstreg, dstreg); // bsf dstreg,dstreg
|
||||
emit_jcc_short_link(dst, x86emit::COND_NZ, skip); // jnz skip
|
||||
emit_mov_r32_imm(dst, REG_ECX, 32); // mov ecx,32
|
||||
emit_bsf_r32_r32(dst, dstreg, REG_EDX); // bsf dstreg,edx
|
||||
emit_cmovcc_r32_r32(dst, x86emit::COND_Z, dstreg, REG_ECX); // cmovz dstreg,ecx
|
||||
emit_add_r32_imm(dst, dstreg, 32); // add dstreg,32
|
||||
track_resolve_link(dst, skip); // skip:
|
||||
emit_xor_r32_r32(dst, REG_EDX, REG_EDX); // xor edx,edx
|
||||
emit_mov_p64_r64(dst, dstp, dstreg, REG_EDX); // mov dstp,edx:dstreg
|
||||
emit_mov_r64_p64(dst, REG_EDX, dstreg, srcp); // mov dstreg:edx,srcp
|
||||
emit_bsf_r32_r32(dst, dstreg, dstreg); // bsf dstreg,dstreg
|
||||
emit_jcc_short_link(dst, x86emit::COND_NZ, skip); // jnz skip
|
||||
emit_mov_r32_imm(dst, REG_ECX, 32); // mov ecx,32
|
||||
emit_bsf_r32_r32(dst, dstreg, REG_EDX); // bsf dstreg,edx
|
||||
emit_cmovcc_r32_r32(dst, x86emit::COND_Z, dstreg, REG_ECX); // cmovz dstreg,ecx
|
||||
emit_add_r32_imm(dst, dstreg, 32); // add dstreg,32
|
||||
track_resolve_link(dst, skip); // skip:
|
||||
emit_xor_r32_r32(dst, REG_EDX, REG_EDX); // xor edx,edx
|
||||
emit_mov_p64_r64(dst, dstp, dstreg, REG_EDX); // mov dstp,edx:dstreg
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -146,9 +146,9 @@ void h8_device::set_current_dma(h8_dma_state *state)
|
||||
logerror("DMA done\n");
|
||||
else
|
||||
logerror("New current dma s=%x d=%x is=%d id=%d count=%x m=%d\n",
|
||||
state->source, state->dest, state->incs, state->incd,
|
||||
state->count, state->mode_16 ? 16 : 8);
|
||||
|
||||
state->source, state->dest, state->incs, state->incd,
|
||||
state->count, state->mode_16 ? 16 : 8);
|
||||
|
||||
}
|
||||
|
||||
void h8_device::set_current_dtc(h8_dtc_state *state)
|
||||
|
@ -277,7 +277,7 @@ bool h8_dma_channel_device::start_test(int vector)
|
||||
if(dte == 0)
|
||||
return false;
|
||||
|
||||
throw emu_fatalerror("%s: DMA startup test in short address mode unimplemented.\n", tag());
|
||||
throw emu_fatalerror("%s: DMA startup test in short address mode unimplemented.\n", tag());
|
||||
}
|
||||
}
|
||||
|
||||
@ -297,7 +297,7 @@ void h8_dma_channel_device::start(int submodule)
|
||||
cpu->set_current_dma(state + submodule);
|
||||
}
|
||||
} else {
|
||||
throw emu_fatalerror("%s: DMA start in short address mode unimplemented.\n", tag());
|
||||
throw emu_fatalerror("%s: DMA start in short address mode unimplemented.\n", tag());
|
||||
}
|
||||
}
|
||||
|
||||
@ -315,6 +315,6 @@ void h8_dma_channel_device::count_done(int submodule)
|
||||
throw emu_fatalerror("%s: DMA end-of-transfer interrupt in full address/normal mode unimplemented.\n", tag());
|
||||
}
|
||||
} else {
|
||||
throw emu_fatalerror("%s: DMA count done in short address mode unimplemented.\n", tag());
|
||||
throw emu_fatalerror("%s: DMA count done in short address mode unimplemented.\n", tag());
|
||||
}
|
||||
}
|
||||
|
@ -25,7 +25,7 @@ struct h8_dma_state {
|
||||
#define MCFG_H8_DMA_ADD( _tag ) \
|
||||
MCFG_DEVICE_ADD( _tag, H8_DMA, 0 )
|
||||
|
||||
#define MCFG_H8_DMA_CHANNEL_ADD( _tag, intc, irq_base, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, va, vb, vc, vd, ve, vf ) \
|
||||
#define MCFG_H8_DMA_CHANNEL_ADD( _tag, intc, irq_base, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, va, vb, vc, vd, ve, vf ) \
|
||||
MCFG_DEVICE_ADD( _tag, H8_DMA_CHANNEL, 0 ) \
|
||||
downcast<h8_dma_channel_device *>(device)->set_info(intc, irq_base, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, va, vb, vc, vd, ve, vf);
|
||||
|
||||
|
@ -131,7 +131,7 @@ void h8_dtc_device::vector_done(int vector)
|
||||
|
||||
UINT32 mode = sra & 0x0c000000;
|
||||
if(V>=1) logerror("regs at %08x sra=%08x dar=%08x cr=%08x %s mode\n", state->base, sra, dar, cr,
|
||||
mode == 0x00000000 || mode == 0x0c000000 ? "normal" : mode == 0x04000000 ? "repeat" : "block");
|
||||
mode == 0x00000000 || mode == 0x0c000000 ? "normal" : mode == 0x04000000 ? "repeat" : "block");
|
||||
state->incs = sra & 0x80000000 ?
|
||||
sra & 0x40000000 ? sra & 0x01000000 ? -2 : -1 :
|
||||
sra & 0x01000000 ? 2 : 1 :
|
||||
@ -140,7 +140,7 @@ void h8_dtc_device::vector_done(int vector)
|
||||
sra & 0x10000000 ? sra & 0x01000000 ? -2 : -1 :
|
||||
sra & 0x01000000 ? 2 : 1 :
|
||||
0;
|
||||
|
||||
|
||||
switch(mode) {
|
||||
case 0x00000000: case 0x0c0000000:
|
||||
state->count = 1;
|
||||
@ -215,7 +215,7 @@ bool h8_dtc_device::trigger_dtc(int vector)
|
||||
{
|
||||
int slot = vector_to_enable[vector];
|
||||
if(slot == -1)
|
||||
return false;
|
||||
return false;
|
||||
if(dtcer[slot >> 3] & (0x01 << (7-(slot & 7)))) {
|
||||
edge(vector);
|
||||
return true;
|
||||
@ -266,4 +266,3 @@ void h8_dtc_device::count_done(int id)
|
||||
cpu->request_state(h8_device::STATE_DTC_WRITEBACK);
|
||||
waiting_writeback.push_back(id);
|
||||
}
|
||||
|
||||
|
@ -44,13 +44,13 @@ WRITE8_MEMBER(h8_sci_device::smr_w)
|
||||
{
|
||||
smr = data;
|
||||
if(V>=2) logerror("smr_w %02x %s %c%c%c%s /%d (%06x)\n", data,
|
||||
data & SMR_CA ? "sync" : "async",
|
||||
data & SMR_CHR ? '7' : '8',
|
||||
data & SMR_PE ? data & SMR_OE ? 'o' : 'e' : 'n',
|
||||
data & SMR_STOP ? '2' : '1',
|
||||
data & SMR_MP ? " mp" : "",
|
||||
1 << 2*(data & SMR_CKS),
|
||||
cpu->pc());
|
||||
data & SMR_CA ? "sync" : "async",
|
||||
data & SMR_CHR ? '7' : '8',
|
||||
data & SMR_PE ? data & SMR_OE ? 'o' : 'e' : 'n',
|
||||
data & SMR_STOP ? '2' : '1',
|
||||
data & SMR_MP ? " mp" : "",
|
||||
1 << 2*(data & SMR_CKS),
|
||||
cpu->pc());
|
||||
clock_update();
|
||||
}
|
||||
|
||||
@ -86,14 +86,14 @@ bool h8_sci_device::has_recv_error() const
|
||||
WRITE8_MEMBER(h8_sci_device::scr_w)
|
||||
{
|
||||
if(V>=2) logerror("scr_w %02x%s%s%s%s%s%s clk=%d (%06x)\n", data,
|
||||
data & SCR_TIE ? " txi" : "",
|
||||
data & SCR_RIE ? " rxi" : "",
|
||||
data & SCR_TE ? " tx" : "",
|
||||
data & SCR_RE ? " rx" : "",
|
||||
data & SCR_MPIE ? " mpi" : "",
|
||||
data & SCR_TEIE ? " tei" : "",
|
||||
data & SCR_CKE,
|
||||
cpu->pc());
|
||||
data & SCR_TIE ? " txi" : "",
|
||||
data & SCR_RIE ? " rxi" : "",
|
||||
data & SCR_TE ? " tx" : "",
|
||||
data & SCR_RE ? " rx" : "",
|
||||
data & SCR_MPIE ? " mpi" : "",
|
||||
data & SCR_TEIE ? " tei" : "",
|
||||
data & SCR_CKE,
|
||||
cpu->pc());
|
||||
|
||||
UINT8 delta = scr ^ data;
|
||||
scr = data;
|
||||
|
@ -103,13 +103,13 @@ WRITE8_MEMBER(h8_timer16_channel_device::tier_w)
|
||||
tier = data;
|
||||
tier_update();
|
||||
if(V>=1) logerror("irq %c%c%c%c%c%c trigger=%d\n",
|
||||
ier & IRQ_A ? 'a' : '.',
|
||||
ier & IRQ_B ? 'b' : '.',
|
||||
ier & IRQ_C ? 'c' : '.',
|
||||
ier & IRQ_D ? 'd' : '.',
|
||||
ier & IRQ_V ? 'v' : '.',
|
||||
ier & IRQ_U ? 'u' : '.',
|
||||
ier & IRQ_TRIG ? 1 : 0);
|
||||
ier & IRQ_A ? 'a' : '.',
|
||||
ier & IRQ_B ? 'b' : '.',
|
||||
ier & IRQ_C ? 'c' : '.',
|
||||
ier & IRQ_D ? 'd' : '.',
|
||||
ier & IRQ_V ? 'v' : '.',
|
||||
ier & IRQ_U ? 'u' : '.',
|
||||
ier & IRQ_TRIG ? 1 : 0);
|
||||
recalc_event();
|
||||
}
|
||||
|
||||
|
@ -130,9 +130,9 @@ void h8_timer8_channel_device::update_tcr()
|
||||
}
|
||||
|
||||
if(V>=1) p += sprintf(p, ", irq=%c%c%c\n",
|
||||
tcr & TCR_CMIEB ? 'b' : '-',
|
||||
tcr & TCR_CMIEA ? 'a' : '-',
|
||||
tcr & TCR_OVIE ? 'o' : '-');
|
||||
tcr & TCR_CMIEB ? 'b' : '-',
|
||||
tcr & TCR_CMIEA ? 'a' : '-',
|
||||
tcr & TCR_OVIE ? 'o' : '-');
|
||||
logerror(buf);
|
||||
}
|
||||
|
||||
|
@ -27,7 +27,7 @@ UINT64 h8_watchdog_device::internal_update(UINT64 current_time)
|
||||
int shift = (type == S ? div_s : div_bh)[tcsr & TCSR_CKS];
|
||||
UINT64 spos = tcnt_cycle_base >> shift;
|
||||
return (spos + 0x100 - tcnt) << shift;
|
||||
|
||||
|
||||
} else
|
||||
return 0;
|
||||
}
|
||||
@ -44,7 +44,7 @@ void h8_watchdog_device::tcnt_update(UINT64 cur_time)
|
||||
int next_tcnt = tcnt + int(epos - spos);
|
||||
tcnt = next_tcnt;
|
||||
tcnt_cycle_base = cur_time;
|
||||
// logerror("%10lld tcnt %02x -> %03x shift=%d\n", cur_time, tcnt, next_tcnt, shift);
|
||||
// logerror("%10lld tcnt %02x -> %03x shift=%d\n", cur_time, tcnt, next_tcnt, shift);
|
||||
|
||||
if(next_tcnt >= 0x100) {
|
||||
logerror("watchdog triggered\n");
|
||||
@ -57,7 +57,7 @@ void h8_watchdog_device::tcnt_update(UINT64 cur_time)
|
||||
if(!(tcsr & TCSR_OVF)) {
|
||||
tcsr |= TCSR_OVF;
|
||||
intc->internal_interrupt(irq);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
} else
|
||||
@ -91,7 +91,7 @@ WRITE16_MEMBER(h8_watchdog_device::wd_w)
|
||||
if(tcsr & TCSR_TME) {
|
||||
tcnt = data & 0xff;
|
||||
tcnt_cycle_base = cpu->total_cycles();
|
||||
// logerror("%10lld tcnt = %02x\n", tcnt_cycle_base, tcnt);
|
||||
// logerror("%10lld tcnt = %02x\n", tcnt_cycle_base, tcnt);
|
||||
}
|
||||
cpu->internal_update();
|
||||
}
|
||||
|
@ -43,7 +43,7 @@
|
||||
#include "h8.h"
|
||||
#include "h8_intc.h"
|
||||
|
||||
#define MCFG_H8_WATCHDOG_ADD( _tag, intc, irq, type ) \
|
||||
#define MCFG_H8_WATCHDOG_ADD( _tag, intc, irq, type ) \
|
||||
MCFG_DEVICE_ADD( _tag, H8_WATCHDOG, 0 ) \
|
||||
downcast<h8_watchdog_device *>(device)->set_info(intc, irq, type);
|
||||
|
||||
|
@ -133,7 +133,7 @@ WRITE_LINE_MEMBER(hp_hybrid_cpu_device::flag_w)
|
||||
|
||||
UINT8 hp_hybrid_cpu_device::pa_r(void) const
|
||||
{
|
||||
return CURRENT_PA;
|
||||
return CURRENT_PA;
|
||||
}
|
||||
|
||||
hp_hybrid_cpu_device::hp_hybrid_cpu_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, const char *shortname , UINT8 addrwidth)
|
||||
@ -1092,7 +1092,7 @@ void hp_hybrid_cpu_device::handle_dma(void)
|
||||
m_icount -= 9;
|
||||
}
|
||||
|
||||
// Mystery solved: DMA is not automatically disabled at TC (test of 9845's graphic memory relies on this to work)
|
||||
// Mystery solved: DMA is not automatically disabled at TC (test of 9845's graphic memory relies on this to work)
|
||||
}
|
||||
|
||||
UINT16 hp_hybrid_cpu_device::RIO(UINT8 pa , UINT8 ic)
|
||||
|
@ -87,7 +87,7 @@ public:
|
||||
DECLARE_WRITE_LINE_MEMBER(status_w);
|
||||
DECLARE_WRITE_LINE_MEMBER(flag_w);
|
||||
|
||||
UINT8 pa_r(void) const;
|
||||
UINT8 pa_r(void) const;
|
||||
|
||||
template<class _Object> static devcb_base &set_pa_changed_func(device_t &device, _Object object) { return downcast<hp_hybrid_cpu_device &>(device).m_pa_changed_func.set_callback(object); }
|
||||
|
||||
|
@ -110,7 +110,7 @@ public:
|
||||
template<class _Object> static devcb_base &set_write_r_callback(device_t &device, _Object object) { return downcast<tms1k_base_device &>(device).m_write_r.set_callback(object); }
|
||||
template<class _Object> static devcb_base &set_power_off_callback(device_t &device, _Object object) { return downcast<tms1k_base_device &>(device).m_power_off.set_callback(object); }
|
||||
static void set_output_pla(device_t &device, const UINT16 *output_pla) { downcast<tms1k_base_device &>(device).m_output_pla_table = output_pla; }
|
||||
|
||||
|
||||
UINT8 debug_peek_o_index() { return m_o_index; } // get output PLA index, for debugging (don't use in emulation)
|
||||
|
||||
// microinstructions
|
||||
|
@ -40,7 +40,7 @@ public:
|
||||
DECLARE_WRITE8_MEMBER( clear_w );
|
||||
DECLARE_WRITE_LINE_MEMBER( preset_w );
|
||||
DECLARE_WRITE_LINE_MEMBER( clear_w );
|
||||
|
||||
|
||||
void preset_w(UINT16 value) { m_latched_value = value; }
|
||||
|
||||
protected:
|
||||
|
@ -241,7 +241,7 @@ void gt64xxx_device::map_cpu_space()
|
||||
dma_addr_map[index].low_addr = (m_reg[GREG_PCI_MEM1_LO] << 21);
|
||||
dma_addr_map[index].high_addr = (dma_addr_map[index].low_addr & 0xf0000000) | (m_reg[GREG_PCI_MEM1_HI] << 21) | 0x1fffff;
|
||||
}
|
||||
|
||||
|
||||
switch (index) {
|
||||
case proc_addr_bank::ADDR_PCI_IO:
|
||||
dma_addr_map[index].space = &this->space(AS_IO);
|
||||
@ -262,7 +262,7 @@ void gt64xxx_device::map_extra(UINT64 memory_window_start, UINT64 memory_window_
|
||||
{
|
||||
int ramIndex;
|
||||
UINT32 winStart, winEnd, winSize;
|
||||
|
||||
|
||||
// Not sure if GREG_RAS_1_0_LO should be added on PCI address map side.
|
||||
// RAS0
|
||||
ramIndex = 0;
|
||||
@ -273,7 +273,7 @@ void gt64xxx_device::map_extra(UINT64 memory_window_start, UINT64 memory_window_
|
||||
memory_space->install_write_handler(winStart, winEnd, 0, 0, write32_delegate(FUNC(gt64xxx_device::ras_0_w), this));
|
||||
if (LOG_GALILEO)
|
||||
logerror("%s: map_extra RAS0 start=%08X end=%08X size=%08X\n", tag(), winStart, winEnd, winSize);
|
||||
|
||||
|
||||
// RAS1
|
||||
ramIndex = 1;
|
||||
winStart = (m_reg[GREG_RAS_1_0_LO + 0x10 / 4 * (ramIndex / 2)] << 21) | (m_reg[GREG_RAS0_LO + 0x8 / 4 * ramIndex] << 20);
|
||||
@ -283,7 +283,7 @@ void gt64xxx_device::map_extra(UINT64 memory_window_start, UINT64 memory_window_
|
||||
memory_space->install_write_handler(winStart, winEnd, 0, 0, write32_delegate(FUNC(gt64xxx_device::ras_1_w), this));
|
||||
if (LOG_GALILEO)
|
||||
logerror("%s: map_extra RAS1 start=%08X end=%08X size=%08X\n", tag(), winStart, winEnd, winSize);
|
||||
|
||||
|
||||
// RAS2
|
||||
ramIndex = 2;
|
||||
winStart = (m_reg[GREG_RAS_1_0_LO + 0x10 / 4 * (ramIndex / 2)] << 21) | (m_reg[GREG_RAS0_LO + 0x8 / 4 * ramIndex] << 20);
|
||||
@ -293,7 +293,7 @@ void gt64xxx_device::map_extra(UINT64 memory_window_start, UINT64 memory_window_
|
||||
memory_space->install_write_handler(winStart, winEnd, 0, 0, write32_delegate(FUNC(gt64xxx_device::ras_2_w), this));
|
||||
if (LOG_GALILEO)
|
||||
logerror("%s: map_extra RAS2 start=%08X end=%08X size=%08X\n", tag(), winStart, winEnd, winSize);
|
||||
|
||||
|
||||
// RAS3
|
||||
ramIndex = 3;
|
||||
winStart = (m_reg[GREG_RAS_1_0_LO + 0x10 / 4 * (ramIndex / 2)] << 21) | (m_reg[GREG_RAS0_LO + 0x8 / 4 * ramIndex] << 20);
|
||||
@ -818,7 +818,7 @@ TIMER_CALLBACK_MEMBER (gt64xxx_device::perform_dma)
|
||||
which = (m_last_dma + i) % 4;
|
||||
if ((m_dma_active & (1 << which)) && (m_reg[GREG_DMA0_CONTROL + which] & 0x1000))
|
||||
break;
|
||||
|
||||
|
||||
}
|
||||
// Save which dma is processed for arbitration next time
|
||||
m_last_dma = which;
|
||||
|
@ -47,7 +47,7 @@
|
||||
#define TIMER_PERIOD attotime::from_hz(m_clock)
|
||||
#define PCI_BUS_CLOCK 33000000
|
||||
// Number of dma words to transfer at a time, real hardware configurable between 8-32
|
||||
#define DMA_BURST_SIZE 32
|
||||
#define DMA_BURST_SIZE 32
|
||||
#define DMA_TIMER_PERIOD attotime::from_hz(PCI_BUS_CLOCK / 48)
|
||||
|
||||
/* Galileo registers - 0x000-0x3ff */
|
||||
|
@ -8,7 +8,7 @@ Generic PCI IDE controller implementation.
|
||||
Based on datasheet for National Semiconductor PC87415
|
||||
|
||||
TODO:
|
||||
Add pci configuration write to PIF byte
|
||||
Add pci configuration write to PIF byte
|
||||
***************************************************************************/
|
||||
|
||||
#ifndef PCI_IDE_H
|
||||
|
@ -1,3 +1,2 @@
|
||||
// license:LGPL-2.1+
|
||||
// copyright-holders:Angelo Salese, R. Belmont
|
||||
|
||||
|
@ -50,7 +50,7 @@
|
||||
|
||||
#define PCI_BUS_CLOCK 33000000
|
||||
// Number of dma words to transfer at a time, real hardware bursts 8
|
||||
#define DMA_BURST_SIZE 128
|
||||
#define DMA_BURST_SIZE 128
|
||||
#define DMA_TIMER_PERIOD attotime::from_hz(PCI_BUS_CLOCK / 32)
|
||||
|
||||
#define DMA_BUSY 0x80000000
|
||||
|
@ -27,10 +27,10 @@ DONE (x) (p=partly) NMOS CMOS ESCC EMSCC
|
||||
p 5-8 bit per char Y Y Y Y
|
||||
p 1,1.5,2 stop bits Y Y Y Y
|
||||
x odd/even parity Y Y Y Y
|
||||
x x1,x16,x32,x64 Y Y Y Y
|
||||
x x1,x16,x32,x64 Y Y Y Y
|
||||
p break det/gen Y Y Y Y
|
||||
x parity, framing & Y Y Y Y
|
||||
overrun error det
|
||||
overrun error det
|
||||
-- byte oriented synchrounous features -------------------------------
|
||||
Int/ext char sync Y Y Y Y
|
||||
1/2 synch chars Y Y Y Y
|
||||
@ -81,7 +81,7 @@ DONE (x) (p=partly) NMOS CMOS ESCC EMSCC
|
||||
#define VERBOSE 0
|
||||
|
||||
#define LOG(x) do { if (VERBOSE) logerror x; } while (0)
|
||||
#define LOGR(x)
|
||||
#define LOGR(x)
|
||||
#if VERBOSE == 2
|
||||
#define logerror printf
|
||||
#endif
|
||||
@ -692,7 +692,7 @@ z80scc_channel::z80scc_channel(const machine_config &mconfig, const char *tag, d
|
||||
m_dtr(0),
|
||||
m_rts(0),
|
||||
m_sync(0)
|
||||
#if START_BIT_HUNT
|
||||
#if START_BIT_HUNT
|
||||
,m_rcv_mode(RCV_IDLE)
|
||||
#endif
|
||||
{
|
||||
@ -854,9 +854,9 @@ void z80scc_channel::device_timer(emu_timer &timer, device_timer_id id, int para
|
||||
//int brconst = m_wr13 << 8 | m_wr12 | 1; // If the counter is 1 the effect is passthrough ehh?! To avoid div0...
|
||||
if (m_wr14 & WR14_BRG_ENABLE)
|
||||
{
|
||||
// int rate = m_owner->clock() / brconst;
|
||||
// attotime attorate = attotime::from_hz(rate);
|
||||
// timer.adjust(attorate, id, attorate);
|
||||
// int rate = m_owner->clock() / brconst;
|
||||
// attotime attorate = attotime::from_hz(rate);
|
||||
// timer.adjust(attorate, id, attorate);
|
||||
txc_w(m_brg_counter & 1);
|
||||
rxc_w(m_brg_counter & 1);
|
||||
m_brg_counter++; // Will just keep track of state in timer mode, not hardware counter value.
|
||||
@ -869,11 +869,11 @@ void z80scc_channel::device_timer(emu_timer &timer, device_timer_id id, int para
|
||||
}
|
||||
break;
|
||||
default:
|
||||
logerror("Spurious timer %d event\n", id);
|
||||
logerror("Spurious timer %d event\n", id);
|
||||
}
|
||||
#else
|
||||
// TODO: Hmmm, either the above default clause is called OR the bellow call is not needed since we handled our local event anyway...?!
|
||||
// and the above default is not called unless we implement the BRG timer using diserial timer interfaces...
|
||||
// and the above default is not called unless we implement the BRG timer using diserial timer interfaces...
|
||||
device_serial_interface::device_timer(timer, id, param, ptr);
|
||||
#endif
|
||||
}
|
||||
@ -1131,7 +1131,7 @@ int z80scc_channel::get_tx_word_length()
|
||||
* Break/Abort latch. */
|
||||
UINT8 z80scc_channel::do_sccreg_rr0()
|
||||
{
|
||||
LOGR(("%s %s <- %02x\n",tag(), FUNCNAME, m_rr0));
|
||||
LOGR(("%s %s <- %02x\n",tag(), FUNCNAME, m_rr0));
|
||||
return m_rr0;
|
||||
}
|
||||
|
||||
@ -1836,7 +1836,7 @@ void z80scc_channel::do_sccreg_wr14(UINT8 data)
|
||||
if ( !(m_wr14 & WR14_BRG_ENABLE) && (data & WR14_BRG_ENABLE) ) // baud rate generator beeing enabled?
|
||||
{
|
||||
LOG(("\"%s\": %c : %s Mics Control Bits Baudrate generator enabled with \n", m_owner->tag(), 'A' + m_index, FUNCNAME));
|
||||
m_brg_const = 2 + (m_wr13 << 8 | m_wr12);
|
||||
m_brg_const = 2 + (m_wr13 << 8 | m_wr12);
|
||||
if (data & WR14_BRG_SOURCE) // Do we use the PCLK as baudrate source
|
||||
{
|
||||
int rate = m_owner->clock() / (m_brg_const == 0 ? 1 : m_brg_const);
|
||||
@ -1999,7 +1999,7 @@ UINT8 z80scc_channel::data_read()
|
||||
// trigger interrup and lock the fifo if an error is present
|
||||
if (m_rr1 & (RR1_CRC_FRAMING_ERROR | RR1_RX_OVERRUN_ERROR | RR1_PARITY_ERROR))
|
||||
{
|
||||
logerror("Rx Error %02x\n", m_rr1 & (RR1_CRC_FRAMING_ERROR | RR1_RX_OVERRUN_ERROR | RR1_PARITY_ERROR));
|
||||
logerror("Rx Error %02x\n", m_rr1 & (RR1_CRC_FRAMING_ERROR | RR1_RX_OVERRUN_ERROR | RR1_PARITY_ERROR));
|
||||
switch (m_wr1 & WR1_RX_INT_MODE_MASK)
|
||||
{
|
||||
case WR1_RX_INT_FIRST:
|
||||
@ -2074,7 +2074,7 @@ void z80scc_channel::data_write(UINT8 data)
|
||||
|
||||
if ((m_wr5 & WR5_TX_ENABLE) && is_transmit_register_empty())
|
||||
{
|
||||
LOG(("%s(%02x) \"%s\": %c : Transmit Data Byte '%02x' %c\n", FUNCNAME, data, m_owner->tag(), 'A' + m_index, m_tx_data, m_tx_data));
|
||||
LOG(("%s(%02x) \"%s\": %c : Transmit Data Byte '%02x' %c\n", FUNCNAME, data, m_owner->tag(), 'A' + m_index, m_tx_data, m_tx_data));
|
||||
transmit_register_setup(m_tx_data);
|
||||
|
||||
// empty transmit buffer
|
||||
@ -2103,7 +2103,7 @@ void z80scc_channel::receive_data(UINT8 data)
|
||||
{
|
||||
LOG(("\"%s\": %c : Receive Data Byte '%02x'\n", m_owner->tag(), 'A' + m_index, data));
|
||||
|
||||
if (m_rx_fifo_wp + 1 == m_rx_fifo_rp || ( (m_rx_fifo_wp + 1 == m_rx_fifo_sz) && (m_rx_fifo_rp == 0) ))
|
||||
if (m_rx_fifo_wp + 1 == m_rx_fifo_rp || ( (m_rx_fifo_wp + 1 == m_rx_fifo_sz) && (m_rx_fifo_rp == 0) ))
|
||||
{
|
||||
// receive overrun error detected
|
||||
m_rx_error_fifo[m_rx_fifo_wp] |= RR1_RX_OVERRUN_ERROR; // = m_rx_error;
|
||||
@ -2308,7 +2308,7 @@ WRITE_LINE_MEMBER( z80scc_channel::rxc_w )
|
||||
rx_clock_w(state);
|
||||
else if(state)
|
||||
{
|
||||
if (m_rx_clock == clocks/2 && m_rcv_mode == RCV_SAMPLING)
|
||||
if (m_rx_clock == clocks/2 && m_rcv_mode == RCV_SAMPLING)
|
||||
rx_clock_w(m_rx_clock < clocks/2);
|
||||
|
||||
m_rx_clock++;
|
||||
@ -2359,8 +2359,8 @@ void z80scc_channel::update_serial()
|
||||
else
|
||||
parity = PARITY_NONE;
|
||||
|
||||
LOG((LLFORMAT " %s() \"%s \"Channel %c setting data frame %d+%d%c%d\n", machine().firstcpu->total_cycles(), FUNCNAME, m_owner->tag(), 'A' + m_index, 1,
|
||||
data_bit_count, parity == PARITY_NONE ? 'N' : parity == PARITY_EVEN ? 'E' : 'O', (stop_bits + 1) / 2));
|
||||
LOG((LLFORMAT " %s() \"%s \"Channel %c setting data frame %d+%d%c%d\n", machine().firstcpu->total_cycles(), FUNCNAME, m_owner->tag(), 'A' + m_index, 1,
|
||||
data_bit_count, parity == PARITY_NONE ? 'N' : parity == PARITY_EVEN ? 'E' : 'O', (stop_bits + 1) / 2));
|
||||
set_data_frame(1, data_bit_count, parity, stop_bits);
|
||||
|
||||
#if START_BIT_HUNT
|
||||
|
@ -229,7 +229,7 @@ public:
|
||||
UINT8 m_rr6; // REG_RR6_LSB_OR_RR2
|
||||
UINT8 m_rr7; // REG_RR7_MSB_OR_RR3
|
||||
UINT8 m_rr8; // REG_RR8_RECEIVE_DATA
|
||||
UINT8 m_rr9; // REG_RR9_WR3_OR_RR13
|
||||
UINT8 m_rr9; // REG_RR9_WR3_OR_RR13
|
||||
UINT8 m_rr10; // REG_RR10_MISC_STATUS
|
||||
UINT8 m_rr11; // REG_RR11_WR10_OR_RR15
|
||||
UINT8 m_rr12; // REG_RR12_LO_TIME_CONST
|
||||
@ -274,239 +274,239 @@ protected:
|
||||
// Read registers
|
||||
enum
|
||||
{
|
||||
REG_RR0_STATUS = 0,
|
||||
REG_RR1_SPEC_RCV_COND = 1,
|
||||
REG_RR2_INTERRUPT_VECT = 2,
|
||||
REG_RR3_INTERUPPT_PEND = 3,
|
||||
REG_RR4_WR4_OR_RR0 = 4,
|
||||
REG_RR5_WR5_OR_RR0 = 5,
|
||||
REG_RR6_LSB_OR_RR2 = 6,
|
||||
REG_RR7_MSB_OR_RR3 = 7,
|
||||
REG_RR8_RECEIVE_DATA = 8,
|
||||
REG_RR9_WR3_OR_RR13 = 9,
|
||||
REG_RR10_MISC_STATUS = 10,
|
||||
REG_RR11_WR10_OR_RR15 = 11,
|
||||
REG_RR12_LO_TIME_CONST = 12,
|
||||
REG_RR13_HI_TIME_CONST = 13,
|
||||
REG_RR14_WR7_OR_R10 = 14,
|
||||
REG_RR15_WR15_EXT_STAT = 15
|
||||
REG_RR0_STATUS = 0,
|
||||
REG_RR1_SPEC_RCV_COND = 1,
|
||||
REG_RR2_INTERRUPT_VECT = 2,
|
||||
REG_RR3_INTERUPPT_PEND = 3,
|
||||
REG_RR4_WR4_OR_RR0 = 4,
|
||||
REG_RR5_WR5_OR_RR0 = 5,
|
||||
REG_RR6_LSB_OR_RR2 = 6,
|
||||
REG_RR7_MSB_OR_RR3 = 7,
|
||||
REG_RR8_RECEIVE_DATA = 8,
|
||||
REG_RR9_WR3_OR_RR13 = 9,
|
||||
REG_RR10_MISC_STATUS = 10,
|
||||
REG_RR11_WR10_OR_RR15 = 11,
|
||||
REG_RR12_LO_TIME_CONST = 12,
|
||||
REG_RR13_HI_TIME_CONST = 13,
|
||||
REG_RR14_WR7_OR_R10 = 14,
|
||||
REG_RR15_WR15_EXT_STAT = 15
|
||||
};
|
||||
|
||||
// Write registers
|
||||
enum
|
||||
{
|
||||
REG_WR0_COMMAND_REGPT = 0,
|
||||
REG_WR1_INT_DMA_ENABLE = 1,
|
||||
REG_WR2_INT_VECTOR = 2,
|
||||
REG_WR3_RX_CONTROL = 3,
|
||||
REG_WR4_RX_TX_MODES = 4,
|
||||
REG_WR5_TX_CONTROL = 5,
|
||||
REG_WR6_SYNC_OR_SDLC_A = 6,
|
||||
REG_WR7_SYNC_OR_SDLC_F = 7,
|
||||
REG_WR8_TRANSMIT_DATA = 8,
|
||||
REG_WR0_COMMAND_REGPT = 0,
|
||||
REG_WR1_INT_DMA_ENABLE = 1,
|
||||
REG_WR2_INT_VECTOR = 2,
|
||||
REG_WR3_RX_CONTROL = 3,
|
||||
REG_WR4_RX_TX_MODES = 4,
|
||||
REG_WR5_TX_CONTROL = 5,
|
||||
REG_WR6_SYNC_OR_SDLC_A = 6,
|
||||
REG_WR7_SYNC_OR_SDLC_F = 7,
|
||||
REG_WR8_TRANSMIT_DATA = 8,
|
||||
REG_WR9_MASTER_INT_CTRL = 9,
|
||||
REG_WR10_MSC_RX_TX_CTRL = 10,
|
||||
REG_WR11_CLOCK_MODES = 11,
|
||||
REG_WR12_LO_BAUD_GEN = 12,
|
||||
REG_WR13_HI_BAUD_GEN = 13,
|
||||
REG_WR14_MISC_CTRL = 14,
|
||||
REG_WR11_CLOCK_MODES = 11,
|
||||
REG_WR12_LO_BAUD_GEN = 12,
|
||||
REG_WR13_HI_BAUD_GEN = 13,
|
||||
REG_WR14_MISC_CTRL = 14,
|
||||
REG_WR15_EXT_ST_INT_CTRL= 15
|
||||
};
|
||||
|
||||
enum
|
||||
{
|
||||
RR0_RX_CHAR_AVAILABLE = 0x01, // SIO bit
|
||||
RR0_ZC = 0x02, // SCC bit
|
||||
RR0_TX_BUFFER_EMPTY = 0x04, // SIO
|
||||
RR0_DCD = 0x08, // SIO
|
||||
RR0_RI = 0x10, // DART bit? TODO: investigate function and remove
|
||||
RR0_SYNC_HUNT = 0x10, // SIO bit, not supported
|
||||
RR0_CTS = 0x20, // SIO bit
|
||||
RR0_TX_UNDERRUN = 0x40, // SIO bit, not supported
|
||||
RR0_BREAK_ABORT = 0x80 // SIO bit, not supported
|
||||
RR0_RX_CHAR_AVAILABLE = 0x01, // SIO bit
|
||||
RR0_ZC = 0x02, // SCC bit
|
||||
RR0_TX_BUFFER_EMPTY = 0x04, // SIO
|
||||
RR0_DCD = 0x08, // SIO
|
||||
RR0_RI = 0x10, // DART bit? TODO: investigate function and remove
|
||||
RR0_SYNC_HUNT = 0x10, // SIO bit, not supported
|
||||
RR0_CTS = 0x20, // SIO bit
|
||||
RR0_TX_UNDERRUN = 0x40, // SIO bit, not supported
|
||||
RR0_BREAK_ABORT = 0x80 // SIO bit, not supported
|
||||
};
|
||||
|
||||
enum
|
||||
{
|
||||
RR1_ALL_SENT = 0x01, // SIO/SCC bit
|
||||
RR1_RESIDUE_CODE_MASK = 0x0e, // SIO/SCC bits, not supported
|
||||
RR1_PARITY_ERROR = 0x10, // SIO/SCC bits
|
||||
RR1_RX_OVERRUN_ERROR = 0x20, // SIO/SCC bits
|
||||
RR1_CRC_FRAMING_ERROR = 0x40, // SIO/SCC bits
|
||||
RR1_END_OF_FRAME = 0x80 // SIO/SCC bits, not supported
|
||||
RR1_ALL_SENT = 0x01, // SIO/SCC bit
|
||||
RR1_RESIDUE_CODE_MASK = 0x0e, // SIO/SCC bits, not supported
|
||||
RR1_PARITY_ERROR = 0x10, // SIO/SCC bits
|
||||
RR1_RX_OVERRUN_ERROR = 0x20, // SIO/SCC bits
|
||||
RR1_CRC_FRAMING_ERROR = 0x40, // SIO/SCC bits
|
||||
RR1_END_OF_FRAME = 0x80 // SIO/SCC bits, not supported
|
||||
};
|
||||
|
||||
enum
|
||||
{ // TODO: overload SIO functionality
|
||||
RR2_INT_VECTOR_MASK = 0xff, // SCC channel A, SIO channel B (special case)
|
||||
RR2_INT_VECTOR_V1 = 0x02, // SIO (special case) /SCC Channel B
|
||||
RR2_INT_VECTOR_V2 = 0x04, // SIO (special case) /SCC Channel B
|
||||
RR2_INT_VECTOR_V3 = 0x08 // SIO (special case) /SCC Channel B
|
||||
{ // TODO: overload SIO functionality
|
||||
RR2_INT_VECTOR_MASK = 0xff, // SCC channel A, SIO channel B (special case)
|
||||
RR2_INT_VECTOR_V1 = 0x02, // SIO (special case) /SCC Channel B
|
||||
RR2_INT_VECTOR_V2 = 0x04, // SIO (special case) /SCC Channel B
|
||||
RR2_INT_VECTOR_V3 = 0x08 // SIO (special case) /SCC Channel B
|
||||
};
|
||||
|
||||
enum
|
||||
{
|
||||
RR3_CHANB_EXT_IP = 0x01, // SCC IP pending registers
|
||||
RR3_CHANB_TX_IP = 0x02, // only read in Channel A (for both channels)
|
||||
RR3_CHANB_RX_IP = 0x04, // channel B return all zero
|
||||
RR3_CHANA_EXT_IP = 0x08,
|
||||
RR3_CHANA_TX_IP = 0x10,
|
||||
RR3_CHANA_RX_IP = 0x20
|
||||
RR3_CHANB_EXT_IP = 0x01, // SCC IP pending registers
|
||||
RR3_CHANB_TX_IP = 0x02, // only read in Channel A (for both channels)
|
||||
RR3_CHANB_RX_IP = 0x04, // channel B return all zero
|
||||
RR3_CHANA_EXT_IP = 0x08,
|
||||
RR3_CHANA_TX_IP = 0x10,
|
||||
RR3_CHANA_RX_IP = 0x20
|
||||
};
|
||||
|
||||
enum // Universal Bus WR0 commands for 85X30
|
||||
{
|
||||
WR0_REGISTER_MASK = 0x07,
|
||||
WR0_COMMAND_MASK = 0x38, // COMMANDS
|
||||
WR0_NULL = 0x00, // 0 0 0
|
||||
WR0_POINT_HIGH = 0x08, // 0 0 1
|
||||
WR0_RESET_EXT_STATUS = 0x10, // 0 1 0
|
||||
WR0_SEND_ABORT = 0x18, // 0 1 1
|
||||
WR0_ENABLE_INT_NEXT_RX = 0x20, // 1 0 0
|
||||
WR0_RESET_TX_INT = 0x28, // 1 0 1
|
||||
WR0_ERROR_RESET = 0x30, // 1 1 0
|
||||
WR0_RESET_HIGHEST_IUS = 0x38, // 1 1 1
|
||||
WR0_CRC_RESET_CODE_MASK = 0xc0, // RESET
|
||||
WR0_CRC_RESET_NULL = 0x00, // 0 0
|
||||
WR0_CRC_RESET_RX = 0x40, // 0 1
|
||||
WR0_CRC_RESET_TX = 0x80, // 1 0
|
||||
WR0_REGISTER_MASK = 0x07,
|
||||
WR0_COMMAND_MASK = 0x38, // COMMANDS
|
||||
WR0_NULL = 0x00, // 0 0 0
|
||||
WR0_POINT_HIGH = 0x08, // 0 0 1
|
||||
WR0_RESET_EXT_STATUS = 0x10, // 0 1 0
|
||||
WR0_SEND_ABORT = 0x18, // 0 1 1
|
||||
WR0_ENABLE_INT_NEXT_RX = 0x20, // 1 0 0
|
||||
WR0_RESET_TX_INT = 0x28, // 1 0 1
|
||||
WR0_ERROR_RESET = 0x30, // 1 1 0
|
||||
WR0_RESET_HIGHEST_IUS = 0x38, // 1 1 1
|
||||
WR0_CRC_RESET_CODE_MASK = 0xc0, // RESET
|
||||
WR0_CRC_RESET_NULL = 0x00, // 0 0
|
||||
WR0_CRC_RESET_RX = 0x40, // 0 1
|
||||
WR0_CRC_RESET_TX = 0x80, // 1 0
|
||||
WR0_CRC_RESET_TX_UNDERRUN = 0xc0 // 1 1
|
||||
};
|
||||
|
||||
enum // ZBUS WR0 commands or 80X30
|
||||
{
|
||||
WR0_Z_COMMAND_MASK = 0x38, // COMMANDS
|
||||
WR0_Z_NULL_1 = 0x00, // 0 0 0
|
||||
WR0_Z_NULL_2 = 0x08, // 0 0 1
|
||||
WR0_Z_RESET_EXT_STATUS = 0x10, // 0 1 0
|
||||
WR0_Z_SEND_ABORT = 0x18, // 0 1 1
|
||||
WR0_Z_COMMAND_MASK = 0x38, // COMMANDS
|
||||
WR0_Z_NULL_1 = 0x00, // 0 0 0
|
||||
WR0_Z_NULL_2 = 0x08, // 0 0 1
|
||||
WR0_Z_RESET_EXT_STATUS = 0x10, // 0 1 0
|
||||
WR0_Z_SEND_ABORT = 0x18, // 0 1 1
|
||||
WR0_Z_ENABLE_INT_NEXT_RX= 0x20, // 1 0 0
|
||||
WR0_Z_RESET_TX_INT = 0x28, // 1 0 1
|
||||
WR0_Z_ERROR_RESET = 0x30, // 1 1 0
|
||||
WR0_Z_RESET_TX_INT = 0x28, // 1 0 1
|
||||
WR0_Z_ERROR_RESET = 0x30, // 1 1 0
|
||||
WR0_Z_RESET_HIGHEST_IUS = 0x38, // 1 1 1
|
||||
WR0_Z_SHIFT_MASK = 0x03, // SHIFT mode SDLC chan B
|
||||
WR0_Z_SEL_SHFT_LEFT = 0x02, // 1 0
|
||||
WR0_Z_SEL_SHFT_RIGHT = 0x03 // 1 1
|
||||
WR0_Z_SHIFT_MASK = 0x03, // SHIFT mode SDLC chan B
|
||||
WR0_Z_SEL_SHFT_LEFT = 0x02, // 1 0
|
||||
WR0_Z_SEL_SHFT_RIGHT = 0x03 // 1 1
|
||||
};
|
||||
|
||||
enum
|
||||
{
|
||||
WR1_EXT_INT_ENABLE = 0x01,
|
||||
WR1_TX_INT_ENABLE = 0x02,
|
||||
WR1_PARITY_IS_SPEC_COND = 0x04,
|
||||
WR1_RX_INT_MODE_MASK = 0x18,
|
||||
WR1_RX_INT_DISABLE = 0x00,
|
||||
WR1_RX_INT_FIRST = 0x08,
|
||||
WR1_RX_INT_ALL_PARITY = 0x10, // not supported
|
||||
WR1_RX_INT_ALL = 0x18,
|
||||
WR1_WRDY_ON_RX_TX = 0x20, // not supported
|
||||
WR1_WRDY_FUNCTION = 0x40, // not supported
|
||||
WR1_WRDY_ENABLE = 0x80 // not supported
|
||||
WR1_EXT_INT_ENABLE = 0x01,
|
||||
WR1_TX_INT_ENABLE = 0x02,
|
||||
WR1_PARITY_IS_SPEC_COND = 0x04,
|
||||
WR1_RX_INT_MODE_MASK = 0x18,
|
||||
WR1_RX_INT_DISABLE = 0x00,
|
||||
WR1_RX_INT_FIRST = 0x08,
|
||||
WR1_RX_INT_ALL_PARITY = 0x10, // not supported
|
||||
WR1_RX_INT_ALL = 0x18,
|
||||
WR1_WRDY_ON_RX_TX = 0x20, // not supported
|
||||
WR1_WRDY_FUNCTION = 0x40, // not supported
|
||||
WR1_WRDY_ENABLE = 0x80 // not supported
|
||||
};
|
||||
|
||||
enum
|
||||
{
|
||||
WR3_RX_ENABLE = 0x01,
|
||||
WR3_SYNC_CHAR_LOAD_INHIBIT = 0x02, // not supported
|
||||
WR3_ADDRESS_SEARCH_MODE = 0x04, // not supported
|
||||
WR3_RX_CRC_ENABLE = 0x08, // not supported
|
||||
WR3_ENTER_HUNT_PHASE = 0x10, // not supported
|
||||
WR3_AUTO_ENABLES = 0x20,
|
||||
WR3_RX_WORD_LENGTH_MASK = 0xc0,
|
||||
WR3_RX_WORD_LENGTH_5 = 0x00,
|
||||
WR3_RX_WORD_LENGTH_7 = 0x40,
|
||||
WR3_RX_WORD_LENGTH_6 = 0x80,
|
||||
WR3_RX_WORD_LENGTH_8 = 0xc0
|
||||
WR3_RX_ENABLE = 0x01,
|
||||
WR3_SYNC_CHAR_LOAD_INHIBIT = 0x02, // not supported
|
||||
WR3_ADDRESS_SEARCH_MODE = 0x04, // not supported
|
||||
WR3_RX_CRC_ENABLE = 0x08, // not supported
|
||||
WR3_ENTER_HUNT_PHASE = 0x10, // not supported
|
||||
WR3_AUTO_ENABLES = 0x20,
|
||||
WR3_RX_WORD_LENGTH_MASK = 0xc0,
|
||||
WR3_RX_WORD_LENGTH_5 = 0x00,
|
||||
WR3_RX_WORD_LENGTH_7 = 0x40,
|
||||
WR3_RX_WORD_LENGTH_6 = 0x80,
|
||||
WR3_RX_WORD_LENGTH_8 = 0xc0
|
||||
};
|
||||
|
||||
enum
|
||||
{
|
||||
WR4_PARITY_ENABLE = 0x01,
|
||||
WR4_PARITY_EVEN = 0x02,
|
||||
WR4_STOP_BITS_MASK = 0x0c,
|
||||
WR4_STOP_BITS_1 = 0x04,
|
||||
WR4_STOP_BITS_1_5 = 0x08, // not supported
|
||||
WR4_STOP_BITS_2 = 0x0c,
|
||||
WR4_SYNC_MODE_MASK = 0x30, // not supported
|
||||
WR4_SYNC_MODE_8_BIT = 0x00, // not supported
|
||||
WR4_SYNC_MODE_16_BIT = 0x10, // not supported
|
||||
WR4_SYNC_MODE_SDLC = 0x20, // not supported
|
||||
WR4_SYNC_MODE_EXT = 0x30, // not supported
|
||||
WR4_CLOCK_RATE_MASK = 0xc0,
|
||||
WR4_CLOCK_RATE_X1 = 0x00,
|
||||
WR4_CLOCK_RATE_X16 = 0x40,
|
||||
WR4_CLOCK_RATE_X32 = 0x80,
|
||||
WR4_CLOCK_RATE_X64 = 0xc0
|
||||
WR4_PARITY_ENABLE = 0x01,
|
||||
WR4_PARITY_EVEN = 0x02,
|
||||
WR4_STOP_BITS_MASK = 0x0c,
|
||||
WR4_STOP_BITS_1 = 0x04,
|
||||
WR4_STOP_BITS_1_5 = 0x08, // not supported
|
||||
WR4_STOP_BITS_2 = 0x0c,
|
||||
WR4_SYNC_MODE_MASK = 0x30, // not supported
|
||||
WR4_SYNC_MODE_8_BIT = 0x00, // not supported
|
||||
WR4_SYNC_MODE_16_BIT = 0x10, // not supported
|
||||
WR4_SYNC_MODE_SDLC = 0x20, // not supported
|
||||
WR4_SYNC_MODE_EXT = 0x30, // not supported
|
||||
WR4_CLOCK_RATE_MASK = 0xc0,
|
||||
WR4_CLOCK_RATE_X1 = 0x00,
|
||||
WR4_CLOCK_RATE_X16 = 0x40,
|
||||
WR4_CLOCK_RATE_X32 = 0x80,
|
||||
WR4_CLOCK_RATE_X64 = 0xc0
|
||||
};
|
||||
|
||||
enum
|
||||
{
|
||||
WR5_TX_CRC_ENABLE = 0x01, // not supported
|
||||
WR5_RTS = 0x02,
|
||||
WR5_CRC16 = 0x04, // not supported
|
||||
WR5_TX_ENABLE = 0x08,
|
||||
WR5_SEND_BREAK = 0x10,
|
||||
WR5_TX_WORD_LENGTH_MASK = 0x60,
|
||||
WR5_TX_WORD_LENGTH_5 = 0x00,
|
||||
WR5_TX_WORD_LENGTH_6 = 0x40,
|
||||
WR5_TX_WORD_LENGTH_7 = 0x20,
|
||||
WR5_TX_WORD_LENGTH_8 = 0x60,
|
||||
WR5_DTR = 0x80
|
||||
WR5_TX_CRC_ENABLE = 0x01, // not supported
|
||||
WR5_RTS = 0x02,
|
||||
WR5_CRC16 = 0x04, // not supported
|
||||
WR5_TX_ENABLE = 0x08,
|
||||
WR5_SEND_BREAK = 0x10,
|
||||
WR5_TX_WORD_LENGTH_MASK = 0x60,
|
||||
WR5_TX_WORD_LENGTH_5 = 0x00,
|
||||
WR5_TX_WORD_LENGTH_6 = 0x40,
|
||||
WR5_TX_WORD_LENGTH_7 = 0x20,
|
||||
WR5_TX_WORD_LENGTH_8 = 0x60,
|
||||
WR5_DTR = 0x80
|
||||
};
|
||||
|
||||
/* SCC specifics */
|
||||
enum
|
||||
{
|
||||
WR9_CMD_MASK = 0xC0,
|
||||
WR9_CMD_NORESET = 0x00,
|
||||
WR9_CMD_CHNB_RESET = 0x40,
|
||||
WR9_CMD_CHNA_RESET = 0x80,
|
||||
WR9_CMD_HW_RESET = 0xC0,
|
||||
WR9_BIT_VIS = 0x01,
|
||||
WR9_BIT_NV = 0x02,
|
||||
WR9_BIT_DLC = 0x04,
|
||||
WR9_BIT_MIE = 0x08,
|
||||
WR9_BIT_SHSL = 0x10,
|
||||
WR9_BIT_IACK = 0x20
|
||||
WR9_CMD_MASK = 0xC0,
|
||||
WR9_CMD_NORESET = 0x00,
|
||||
WR9_CMD_CHNB_RESET = 0x40,
|
||||
WR9_CMD_CHNA_RESET = 0x80,
|
||||
WR9_CMD_HW_RESET = 0xC0,
|
||||
WR9_BIT_VIS = 0x01,
|
||||
WR9_BIT_NV = 0x02,
|
||||
WR9_BIT_DLC = 0x04,
|
||||
WR9_BIT_MIE = 0x08,
|
||||
WR9_BIT_SHSL = 0x10,
|
||||
WR9_BIT_IACK = 0x20
|
||||
};
|
||||
|
||||
enum
|
||||
{
|
||||
WR11_RCVCLK_TYPE = 0x80,
|
||||
WR11_RCVCLK_SRC_MASK = 0x60, // RCV CLOCK
|
||||
WR11_RCVCLK_SRC_RTXC = 0x00, // 0 0
|
||||
WR11_RCVCLK_SRC_TRXC = 0x20, // 0 1
|
||||
WR11_RCVCLK_SRC_BR = 0x40, // 1 0
|
||||
WR11_RCVCLK_SRC_DPLL = 0x60, // 1 1
|
||||
WR11_TRACLK_SRC_MASK = 0x18, // TRA CLOCK
|
||||
WR11_TRACLK_SRC_RTXC = 0x00, // 0 0
|
||||
WR11_TRACLK_SRC_TRXC = 0x08, // 0 1
|
||||
WR11_TRACLK_SRC_BR = 0x10, // 1 0
|
||||
WR11_TRACLK_SRC_DPLL = 0x18, // 1 1
|
||||
WR11_TRXC_DIRECTION = 0x04,
|
||||
WR11_TRXSRC_SRC_MASK = 0x03, // TRXX CLOCK
|
||||
WR11_TRXSRC_SRC_XTAL = 0x00, // 0 0
|
||||
WR11_TRXSRC_SRC_TRA = 0x01, // 0 1
|
||||
WR11_TRXSRC_SRC_BR = 0x02, // 1 0
|
||||
WR11_TRXSRC_SRC_DPLL = 0x03 // 1 1
|
||||
WR11_RCVCLK_TYPE = 0x80,
|
||||
WR11_RCVCLK_SRC_MASK = 0x60, // RCV CLOCK
|
||||
WR11_RCVCLK_SRC_RTXC = 0x00, // 0 0
|
||||
WR11_RCVCLK_SRC_TRXC = 0x20, // 0 1
|
||||
WR11_RCVCLK_SRC_BR = 0x40, // 1 0
|
||||
WR11_RCVCLK_SRC_DPLL = 0x60, // 1 1
|
||||
WR11_TRACLK_SRC_MASK = 0x18, // TRA CLOCK
|
||||
WR11_TRACLK_SRC_RTXC = 0x00, // 0 0
|
||||
WR11_TRACLK_SRC_TRXC = 0x08, // 0 1
|
||||
WR11_TRACLK_SRC_BR = 0x10, // 1 0
|
||||
WR11_TRACLK_SRC_DPLL = 0x18, // 1 1
|
||||
WR11_TRXC_DIRECTION = 0x04,
|
||||
WR11_TRXSRC_SRC_MASK = 0x03, // TRXX CLOCK
|
||||
WR11_TRXSRC_SRC_XTAL = 0x00, // 0 0
|
||||
WR11_TRXSRC_SRC_TRA = 0x01, // 0 1
|
||||
WR11_TRXSRC_SRC_BR = 0x02, // 1 0
|
||||
WR11_TRXSRC_SRC_DPLL = 0x03 // 1 1
|
||||
};
|
||||
|
||||
enum
|
||||
{
|
||||
WR14_DPLL_CMD_MASK = 0xe0, // Command
|
||||
WR14_CMD_NULL = 0x00, // 0 0 0
|
||||
WR14_CMD_ESM = 0x20, // 0 0 1
|
||||
WR14_CMD_RMC = 0x40, // 0 1 0
|
||||
WR14_CMD_DISABLE_DPLL = 0x60, // 0 1 1
|
||||
WR14_CMD_SS_BRG = 0x80, // 1 0 0
|
||||
WR14_CMD_SS_RTXC = 0xa0, // 1 0 1
|
||||
WR14_CMD_SET_FM = 0xc0, // 1 1 0
|
||||
WR14_CMD_SET_NRZI = 0xe0, // 1 1 1
|
||||
WR14_BRG_ENABLE = 0x01,
|
||||
WR14_BRG_SOURCE = 0x02,
|
||||
WR14_DTR_REQ_FUNC = 0x04,
|
||||
WR14_AUTO_ECHO = 0x08,
|
||||
WR14_LOCAL_LOOPBACK = 0x010
|
||||
WR14_DPLL_CMD_MASK = 0xe0, // Command
|
||||
WR14_CMD_NULL = 0x00, // 0 0 0
|
||||
WR14_CMD_ESM = 0x20, // 0 0 1
|
||||
WR14_CMD_RMC = 0x40, // 0 1 0
|
||||
WR14_CMD_DISABLE_DPLL = 0x60, // 0 1 1
|
||||
WR14_CMD_SS_BRG = 0x80, // 1 0 0
|
||||
WR14_CMD_SS_RTXC = 0xa0, // 1 0 1
|
||||
WR14_CMD_SET_FM = 0xc0, // 1 1 0
|
||||
WR14_CMD_SET_NRZI = 0xe0, // 1 1 1
|
||||
WR14_BRG_ENABLE = 0x01,
|
||||
WR14_BRG_SOURCE = 0x02,
|
||||
WR14_DTR_REQ_FUNC = 0x04,
|
||||
WR14_AUTO_ECHO = 0x08,
|
||||
WR14_LOCAL_LOOPBACK = 0x010
|
||||
};
|
||||
|
||||
enum
|
||||
@ -536,40 +536,40 @@ protected:
|
||||
int get_tx_word_length();
|
||||
|
||||
// receiver state
|
||||
UINT8 m_rx_data_fifo[8]; // receive data FIFO
|
||||
UINT8 m_rx_error_fifo[8]; // receive error FIFO
|
||||
UINT8 m_rx_error; // current receive error
|
||||
//int m_rx_fifo // receive FIFO pointer
|
||||
int m_rx_fifo_rp; // receive FIFO read pointer
|
||||
int m_rx_fifo_wp; // receive FIFO write pointer
|
||||
int m_rx_fifo_sz; // receive FIFO size
|
||||
UINT8 m_rx_data_fifo[8]; // receive data FIFO
|
||||
UINT8 m_rx_error_fifo[8]; // receive error FIFO
|
||||
UINT8 m_rx_error; // current receive error
|
||||
//int m_rx_fifo // receive FIFO pointer
|
||||
int m_rx_fifo_rp; // receive FIFO read pointer
|
||||
int m_rx_fifo_wp; // receive FIFO write pointer
|
||||
int m_rx_fifo_sz; // receive FIFO size
|
||||
|
||||
int m_rx_clock; // receive clock pulse count
|
||||
int m_rx_first; // first character received
|
||||
int m_rx_break; // receive break condition
|
||||
UINT8 m_rx_rr0_latch; // read register 0 latched
|
||||
int m_rx_clock; // receive clock pulse count
|
||||
int m_rx_first; // first character received
|
||||
int m_rx_break; // receive break condition
|
||||
UINT8 m_rx_rr0_latch; // read register 0 latched
|
||||
|
||||
int m_rxd;
|
||||
int m_ri; // ring indicator latch
|
||||
int m_cts; // clear to send latch
|
||||
int m_dcd; // data carrier detect latch
|
||||
int m_ri; // ring indicator latch
|
||||
int m_cts; // clear to send latch
|
||||
int m_dcd; // data carrier detect latch
|
||||
|
||||
// transmitter state
|
||||
UINT8 m_tx_data; // transmit data register
|
||||
int m_tx_clock; // transmit clock pulse count
|
||||
UINT8 m_tx_data; // transmit data register
|
||||
int m_tx_clock; // transmit clock pulse count
|
||||
|
||||
int m_dtr; // data terminal ready
|
||||
int m_rts; // request to send
|
||||
int m_dtr; // data terminal ready
|
||||
int m_rts; // request to send
|
||||
|
||||
// synchronous state
|
||||
UINT16 m_sync; // sync character
|
||||
UINT16 m_sync; // sync character
|
||||
|
||||
int m_rcv_mode;
|
||||
int m_index;
|
||||
z80scc_device *m_uart;
|
||||
|
||||
// SCC specifics
|
||||
int m_ph; // Point high command to access regs 08-0f
|
||||
int m_ph; // Point high command to access regs 08-0f
|
||||
UINT8 m_zc;
|
||||
};
|
||||
|
||||
|
@ -90,7 +90,7 @@ void hd44780_device::device_start()
|
||||
m_cgrom.set_target(memregion("cgrom")->base(), 0x1000);
|
||||
|
||||
m_pixel_update_cb.bind_relative_to(*owner());
|
||||
|
||||
|
||||
m_busy_timer = timer_alloc(TIMER_BUSY);
|
||||
m_blink_timer = timer_alloc(TIMER_BLINKING);
|
||||
m_blink_timer->adjust(attotime::from_msec(409), 0, attotime::from_msec(409));
|
||||
|
@ -371,7 +371,7 @@ void snes_ppu_device::device_reset()
|
||||
m_beam.latch_vert = 0;
|
||||
m_beam.latch_horz = 0;
|
||||
m_beam.current_vert = 0;
|
||||
|
||||
|
||||
/* Set STAT78 to NTSC or PAL */
|
||||
m_stat78 = (ATTOSECONDS_TO_HZ(m_screen->frame_period().attoseconds()) >= 59.0) ? SNES_NTSC : SNES_PAL;
|
||||
m_beam.last_visible_line = m_stat78 & SNES_PAL ? 240 : 225;
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user