diff options
104 files changed, 2494 insertions, 892 deletions
diff --git a/hash/megacd.xml b/hash/megacd.xml index 6684c8be6c2..73baf5d63f0 100644 --- a/hash/megacd.xml +++ b/hash/megacd.xml @@ -827,7 +827,7 @@ license:CC0 </part> </software> - <software name="roadaven"> + <software name="roadaven" supported="no"> <!-- source redump.org <rom name="Road Avenger (Europe).cue" size="442" crc="c852ae6d" /> <rom name="Road Avenger (Europe) (Track 1).bin" size="317816352" crc="c15fde6f" /> @@ -838,6 +838,9 @@ license:CC0 <description>Road Avenger (Euro)</description> <year>1993</year> <publisher>Sega</publisher> + <notes><![CDATA[ +Black screen, requires sub CPU to be overclocked by 1.5x +]]></notes> <info name="serial" value="4603"/> <info name="ring_code" value="MK-4603P-00053-R1M V"/> <part name="cdrom" interface="scd_cdrom"> @@ -2434,7 +2437,7 @@ license:CC0 </part> </software> - <software name="ntrap32" cloneof="ntrap"> + <software name="ntrap32" cloneof="ntrap" supported="no"> <!-- source toseciso <rom name="Night Trap (1995)(Digital Pictures)(PAL)(Disc 1 of 2)[!][32X].cue" size="319" crc="57fec2f6" /> <rom name="Night Trap (1995)(Digital Pictures)(PAL)(Disc 1 of 2)(Track 1 of 2)[!][32X].iso" size="537303040" crc="12027282" /> @@ -2447,6 +2450,11 @@ license:CC0 <description>Night Trap (Euro, 32X)</description> <year>1995</year> <publisher>Digital Pictures</publisher> + <notes><![CDATA[ +Hangs on BIOS logo +Requires [32X] add-on +Requires [disc swap] +]]></notes> <info name="serial" value="T-16202F-50"/> <part name="cdrom1" interface="scd_cdrom"> <diskarea name="cdrom"> @@ -2940,7 +2948,7 @@ license:CC0 </part> </software> - <software name="slamcity32" cloneof="slamcity"> + <software name="slamcity32" cloneof="slamcity" supported="no"> <!-- source toseciso <rom name="Slam City with Scottie Pippen (1994)(Digital Pictures)(PAL)(Disc 1 of 4)[!][Fingers][32X].cue" size="375" crc="d6b57cf0" /> <rom name="Slam City with Scottie Pippen (1994)(Digital Pictures)(PAL)(Disc 1 of 4)(Track 1 of 2)[!][Fingers][32X].iso" size="529147904" crc="56a8ad9c" /> @@ -2961,6 +2969,11 @@ license:CC0 <description>Slam City with Scottie Pippen (Euro, 32X)</description> <year>1994</year> <publisher>Digital Pictures</publisher> + <notes><![CDATA[ +Hangs on BIOS logo +Requires [32X] add-on +Requires [disc swap] +]]></notes> <info name="serial" value="T-16204F-50"/> <part name="cdrom1" interface="scd_cdrom"> <diskarea name="cdrom"> @@ -3148,7 +3161,7 @@ license:CC0 </part> </software> - <software name="supremew32" cloneof="supremew"> + <software name="supremew32" cloneof="supremew" supported="no"> <!-- source toseciso <rom name="Supreme Warrior - Ying Heung (1995)(Digital Pictures)(PAL)(en-zh)(Disc 1 of 2)[!][Fire & Earth][32X].cue" size="397" crc="e1c77730" /> <rom name="Supreme Warrior - Ying Heung (1995)(Digital Pictures)(PAL)(en-zh)(Disc 1 of 2)(Track 1 of 2)[!][Fire & Earth][32X].iso" size="459593728" crc="d8c88078" /> @@ -3161,6 +3174,11 @@ license:CC0 <description>Supreme Warrior - Ying Heung (Euro, 32X)</description> <year>1995</year> <publisher>Digital Pictures</publisher> + <notes><![CDATA[ +Hangs on BIOS logo +Requires [32X] add-on +Requires [disc swap] +]]></notes> <info name="serial" value="T-16203F-50"/> <part name="cdrom1" interface="scd_cdrom"> <diskarea name="cdrom"> diff --git a/hash/megacdj.xml b/hash/megacdj.xml index ee9d4cc2e4e..747f6729f8c 100644 --- a/hash/megacdj.xml +++ b/hash/megacdj.xml @@ -1309,7 +1309,7 @@ license:CC0 </part> </software> - <software name="ntrap"> + <software name="ntrap" supported="no"> <!-- source redump.org <rom name="Night Trap (Japan) (Disc 1).cue" size="224" crc="f3527896" /> <rom name="Night Trap (Japan) (Disc 1) (Track 1).bin" size="615875904" crc="17744c64" /> @@ -1322,6 +1322,9 @@ license:CC0 <description>Night Trap (Jpn)</description> <year>1993</year> <publisher>Sega</publisher> + <notes><![CDATA[ +Requires [disc swap] +]]></notes> <info name="serial" value="G-6025"/> <info name="disk_ring" value="G-6025P-00148 1 (Disc 1), G-6025P-00149 1 (Disc 2)"/> <info name="release" value="19931119"/> @@ -2344,7 +2347,7 @@ license:CC0 </part> </software> - <software name="timegal"> + <software name="timegal" supported="no"> <!-- source redump.org <rom name="Time Gal (Japan).cue" size="202" crc="a50da29e" /> <rom name="Time Gal (Japan) (Track 1).bin" size="304652208" crc="1a756c12" /> @@ -2353,6 +2356,9 @@ license:CC0 <description>Time Gal (Jpn)</description> <year>1992</year> <publisher>Wolf Team</publisher> + <notes><![CDATA[ +Black screen, requires sub CPU to be overclocked by 1.5x +]]></notes> <info name="serial" value="T-32114"/> <info name="disk_ring" value="T-32114P-00031-R1M V"/> <info name="release" value="19921113"/> @@ -2832,7 +2838,7 @@ license:CC0 </part> </software> - <software name="anettfut"> + <software name="anettfut" supported="no"> <!-- source toseciso <rom name="Anett Futatabi (1993)(Wolf Team)(NTSC)(JP)(en)[!].cue" size="4562" crc="e29146cb" /> <rom name="Anett Futatabi (1993)(Wolf Team)(NTSC)(JP)(en)(Track 01 of 31)[!].iso" size="31488000" crc="ed405f82" /> @@ -2870,6 +2876,9 @@ license:CC0 <description>Anett Futatabi (Jpn)</description> <year>1993</year> <publisher>Wolf Team</publisher> + <notes><![CDATA[ +Black screen, requires sub CPU to be overclocked by 1.5x +]]></notes> <info name="serial" value="T-32104"/> <info name="release" value="19930330"/> <info name="alt_title" value="アネット再び"/> @@ -4389,7 +4398,7 @@ license:CC0 </part> </software> - <software name="prizefig"> + <software name="prizefig" supported="no"> <!-- source toseciso <rom name="Prize Fighter (1993)(Sega)(NTSC)(JP)(Disc 1 of 2)[!].cue" size="301" crc="6caf1452" /> <rom name="Prize Fighter (1993)(Sega)(NTSC)(JP)(Disc 1 of 2)(Track 1 of 2)[!].iso" size="346562560" crc="3c4783bc" /> @@ -4402,6 +4411,9 @@ license:CC0 <description>Prize Fighter (Jpn)</description> <year>1995</year> <publisher>Sega</publisher> + <notes><![CDATA[ +Requires [disc swap] +]]></notes> <info name="serial" value="G-6037"/> <info name="release" value="19950324"/> <info name="alt_title" value="プライズファイター"/> @@ -4585,7 +4597,7 @@ license:CC0 </part> </software> - <software name="rbfx"> + <software name="rbfx" supported="no"> <!-- source toseciso <rom name="Road Blaster FX (1992)(Wolf Team)(NTSC)(JP)(en)[!].cue" size="589" crc="78b59c82" /> <rom name="Road Blaster FX (1992)(Wolf Team)(NTSC)(JP)(en)(Track 1 of 4)[!].iso" size="276729856" crc="0cd3a154" /> @@ -4596,6 +4608,9 @@ license:CC0 <description>Road Blaster FX (Jpn)</description> <year>1992</year> <publisher>Wolf Team</publisher> + <notes><![CDATA[ +Black screen, requires sub CPU to be overclocked by 1.5x +]]></notes> <info name="serial" value="T-32124"/> <info name="release" value="19921218"/> <info name="alt_title" value="ロードブラスターFX"/> diff --git a/hash/megadriv.xml b/hash/megadriv.xml index ee177e51e06..b3dc6fda46c 100644 --- a/hash/megadriv.xml +++ b/hash/megadriv.xml @@ -23,6 +23,7 @@ license:CC0 OSAKA BANK MY LINE DEMO JAPAN OUTBACK JOEY - PERSONAL TRAINER ??? http://www.guardiana.net/MDG-Database/Mega%20Drive/Outback%20Joey/#v3553 PGA TOUR GOLF USA/PAL we have v1.1 and v1.2, v1.0 needed (does it exist?) + PRO VERSION ACTION REPLAY PAL Datel's 2nd Action Replay release ROAD RASH USA needs proper dump SIDE POCKET JAPAN/USA conflict in current info SMURFS PAL we have Rev A, Rev 0 needed (does it exist?) @@ -59,11 +60,11 @@ Known undumped pirates * Shizen Mahjong / Competition Mahjong (by Sachen, apparently dumped but hoarded) * Magic 7 Block - 百変七巧板 -NOTE - - * Phantasy Star (serial G-4534, released by Sega on 1994-04-02) is actually a SMS cart which works in the MD - thanks to VDP compatibility mode. Since this is currently not emulated in MAME, the dump is in sms.xml - +TODO: +- Phantasy Star (serial G-4534, pstarjmd) is actually a SMS cart in MD shell, + which works in the MD thanks to VDP compatibility mode. + The dump needs to be ported from sms.xml and a specific cart slot override needs to be added here. +- Identify the <unlicensed> games, in particular the "(Chi)" releases which most likely are actually Taiwanese. Info on Sega chip labels (from Sunbeam / Digital Corruption) @@ -103,11 +104,11 @@ The three available regions are PAL, NTSC-U and NTSC-J or a combination such as <!-- Fully documented: confirmed dumps + PCB pics --> - <!-- Game is switched on reset --> <software name="2fdizcsp"> <description>2 in 1 - Fantastic Dizzy & Cosmic Spacehead (Euro)</description> <year>1994</year> <publisher>Codemasters</publisher> + <info name="usage" value="Games are switchable with reset button"/> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_cm2in1"/> <feature name="pcb" value="SR16V7-2"/> @@ -772,7 +773,7 @@ The three available regions are PAL, NTSC-U and NTSC-J or a combination such as </software> - <software name="atptour"> + <software name="atptour" supported="yes"> <description>ATP Tour Championship Tennis (Euro)</description> <year>1994</year> <publisher>Sega</publisher> @@ -803,6 +804,7 @@ The three available regions are PAL, NTSC-U and NTSC-J or a combination such as <info name="serial" value="G-5514 (Jpn), MK-1135-50 (Euro)"/> <info name="release" value="19920717"/> <info name="alt_title" value="アイルトン・セナ スーパーモナコGP II"/> + <sharedfeat name="compatibility" value="PAL,NTSC-J"/> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_sram"/> <feature name="pcb" value="171-5955A"/> @@ -825,6 +827,7 @@ The three available regions are PAL, NTSC-U and NTSC-J or a combination such as <year>1992</year> <publisher>Sega</publisher> <info name="serial" value="MK-1135"/> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_sram"/> <feature name="pcb" value="171-5955A"/> @@ -1092,6 +1095,7 @@ The three available regions are PAL, NTSC-U and NTSC-J or a combination such as <description>Body Count (Bra)</description> <year>1994</year> <publisher>Tec Toy</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <feature name="pcb" value="171-5978B"/> <feature name="ic1" value="MPR-16252 W51"/> @@ -1122,6 +1126,7 @@ The three available regions are PAL, NTSC-U and NTSC-J or a combination such as <description>Bonkers (Euro, USA)</description> <year>1994</year> <publisher>Sega</publisher> + <!-- Compatibility not enforced --> <info name="alt_title" value="Disney's Bonkers (Box)"/> <part name="cart" interface="megadriv_cart"> <feature name="pcb" value="171-5978BA"/> @@ -1144,8 +1149,8 @@ The three available regions are PAL, NTSC-U and NTSC-J or a combination such as <feature name="ic2" value="MPR-17345-SM"/> <feature name="ic3" value="SN74HC00N"/> <dataarea name="rom" width="16" endianness="big" size="3145728"> - <rom name="mpr-17344-sm.ic1" size="2097152" crc="77fb2b16" sha1="dc8ea3d6b5f2ef513eed9af978d323b25bc8bcd2" loadflag="load16_word_swap"/> - <rom name="mpr-17345-sm.ic2" size="1048576" crc="e1f60a14" sha1="5fa9a2adcffef8aa72c3a0626cc42d06a9ca296e" offset="0x200000" loadflag="load16_word_swap"/> + <rom name="mpr-17344-sm.ic1" size="2097152" crc="77fb2b16" sha1="dc8ea3d6b5f2ef513eed9af978d323b25bc8bcd2" loadflag="load16_word"/> + <rom name="mpr-17345-sm.ic2" size="1048576" crc="e1f60a14" sha1="5fa9a2adcffef8aa72c3a0626cc42d06a9ca296e" offset="0x200000" loadflag="load16_word"/> </dataarea> </part> </software> @@ -1357,10 +1362,13 @@ The three available regions are PAL, NTSC-U and NTSC-J or a combination such as </part> </software> - <software name="cfodder"> + <software name="cfodder" supported="partial"> <description>Cannon Fodder (Euro)</description> <year>1994</year> <publisher>Virgin Interactive</publisher> + <notes><![CDATA[ +Unsupported [Sega Mouse] peripheral +]]></notes> <part name="cart" interface="megadriv_cart"> <feature name="pcb" value="171-6329A"/> <feature name="ic1" value="MPR-17322-H"/> @@ -1623,10 +1631,13 @@ The three available regions are PAL, NTSC-U and NTSC-J or a combination such as </software> - <software name="collslam"> + <software name="collslam" supported="no"> <description>College Slam (USA)</description> <year>1996</year> <publisher>Acclaim Entertainment</publisher> + <notes><![CDATA[ +[EEPROM] Blue stripes at boot +]]></notes> <info name="serial" value="T-81576"/> <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> @@ -1732,6 +1743,7 @@ The three available regions are PAL, NTSC-U and NTSC-J or a combination such as <description>Cool Spot (Euro, Prototype)</description> <year>1993</year> <publisher>Virgin Games</publisher> + <sharedfeat name="compatibility" value="PAL"/> <part name="cart" interface="megadriv_cart"> <feature name="pcb" value="171-5694-01"/> <feature name="ic1" value="IC1"/> <!-- EPROM1 --> @@ -2047,6 +2059,7 @@ The three available regions are PAL, NTSC-U and NTSC-J or a combination such as <description>Dino Dini's Soccer (Euro)</description> <year>1994</year> <publisher>Virgin Interactive</publisher> + <!-- Enforces compatibility by selecting anything in main menu --> <sharedfeat name="compatibility" value="PAL"/> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_sram"/> @@ -2202,6 +2215,9 @@ The three available regions are PAL, NTSC-U and NTSC-J or a combination such as <description>Bram Stoker's Dracula (Euro)</description> <year>1993</year> <publisher>Sony Imagesoft</publisher> + <notes><![CDATA[ +No [VDP] sprites +]]></notes> <part name="cart" interface="megadriv_cart"> <feature name="pcb" value="171-5978B"/> <feature name="u1" value="MPR-15828-F"/> <!-- location not really marked on PCB, using u1 for consistency --> @@ -2246,6 +2262,7 @@ The three available regions are PAL, NTSC-U and NTSC-J or a combination such as <description>Dragon's Fury (Euro, USA)</description> <year>1992</year> <publisher>Tengen</publisher> + <sharedfeat name="compatibility" value="NTSC-U,PAL"/> <part name="cart" interface="megadriv_cart"> <feature name="pcb" value="171-5703"/> <feature name="ic1" value="MPR-14931-SM"/> @@ -2290,6 +2307,7 @@ The three available regions are PAL, NTSC-U and NTSC-J or a combination such as <description>Dune II - Kampf um den Wüstenplaneten (Ger)</description> <year>1993</year> <publisher>Virgin Interactive</publisher> + <sharedfeat name="compatibility" value="PAL"/> <part name="cart" interface="megadriv_cart"> <feature name="pcb" value="171-5978BA"/> <feature name="u1" value="MPR-16838-F"/> <!-- location not really marked on PCB, using u1 for consistency --> @@ -2469,6 +2487,7 @@ The three available regions are PAL, NTSC-U and NTSC-J or a combination such as <description>Escape from Mars Starring Taz (Euro)</description> <year>1994</year> <publisher>Sega</publisher> + <!-- Compatibility not enforced --> <info name="alt_title" value="Taz in Escape from Mars (Box)"/> <part name="cart" interface="megadriv_cart"> <feature name="pcb" value="171-6329A"/> @@ -2485,6 +2504,7 @@ The three available regions are PAL, NTSC-U and NTSC-J or a combination such as <year>1994</year> <publisher>Sega</publisher> <info name="alt_title" value="Taz in Escape from Mars (Box)"/> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <feature name="pcb" value="171-5978B-8/16"/> <feature name="ic1" value="MPR-16913-F"/> @@ -2500,6 +2520,7 @@ The three available regions are PAL, NTSC-U and NTSC-J or a combination such as <description>ESPN Speedworld (USA, Prototype)</description> <year>1994</year> <publisher>Sony Imagesoft</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <feature name="u1" value="TC57400AD-120"/> <feature name="u2" value="TC57400AD-120"/> @@ -2521,6 +2542,7 @@ The three available regions are PAL, NTSC-U and NTSC-J or a combination such as <description>ESPN Sunday Night NFL (USA, Prototype)</description> <year>1994</year> <publisher>Sony Imagesoft</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <feature name="u1" value="TC57400AD-120"/> <feature name="u2" value="TC57400AD-120"/> @@ -2860,9 +2882,13 @@ The three available regions are PAL, NTSC-U and NTSC-J or a combination such as <!-- This was marked as rev. A on the EA sticker, but its header (and ROM markings) uses the Jpn title... weird situation :-) --> <software name="fatalrewa" cloneof="fatalrew" supported="no"> - <description>Fatal Rewind (Euro)</description> + <!-- Originally marked as Fatal Rewind, boots as The Killing Game Show --> + <description>The Killing Game Show (Euro)</description> <year>1991</year> <publisher>Electronic Arts</publisher> + <notes><![CDATA[ +Crashes after EA logo, requires better [VDP] irq handling +]]></notes> <part name="cart" interface="megadriv_cart"> <feature name="pcb" value="PWB SC40X1 REV B"/> <feature name="u1" value="KILLING GAME SHOW KIL03"/> <!-- location not really marked on PCB, using u1 for consistency --> @@ -2878,6 +2904,9 @@ The three available regions are PAL, NTSC-U and NTSC-J or a combination such as <description>Fatal Rewind (Euro, USA, Rev. A)</description> <year>1991</year> <publisher>Electronic Arts</publisher> + <notes><![CDATA[ +Crashes after EA logo, requires better [VDP] irq handling +]]></notes> <part name="cart" interface="megadriv_cart"> <feature name="pcb" value="PWB SC40X1 REV B"/> <feature name="u1" value="FATAL REWIND FAT04"/> <!-- location not really marked on PCB, using u1 for consistency --> @@ -3004,6 +3033,7 @@ The three available regions are PAL, NTSC-U and NTSC-J or a combination such as <description>FIFA 97 Gold Edition (Euro, USA)</description> <year>1996</year> <publisher>Electronic Arts</publisher> + <sharedfeat name="compatibility" value="NTSC-U,PAL"/> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_sram"/> <feature name="pcb" value="PWA P10002 REV M"/> @@ -3157,10 +3187,13 @@ The three available regions are PAL, NTSC-U and NTSC-J or a combination such as </software> - <software name="funngame"> + <software name="funngame" supported="partial"> <description>Fun 'N Games (Euro)</description> <year>1993</year> <publisher>Sony Imagesoft</publisher> + <notes><![CDATA[ +Unsupported [Sega Mouse] peripheral +]]></notes> <sharedfeat name="compatibility" value="PAL"/> <part name="cart" interface="megadriv_cart"> <feature name="pcb" value="171-5978BA"/> @@ -3225,11 +3258,13 @@ The three available regions are PAL, NTSC-U and NTSC-J or a combination such as </part> </software> - <!-- Moans about the Modem not hooked up --> <software name="gameto" supported="no"> <description>Game Toshokan (Jpn, Rev. A)</description> <year>1990</year> <publisher>Sega</publisher> + <notes><![CDATA[ +Moans about [Sega Mega Modem] not hooked up, punts to a red screen +]]></notes> <info name="serial" value="G-4503"/> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_eeprom"/> @@ -3275,6 +3310,7 @@ The three available regions are PAL, NTSC-U and NTSC-J or a combination such as <description>Garfield - Caught in the Act (Euro, USA)</description> <year>1995</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U,PAL"/> <part name="cart" interface="megadriv_cart"> <feature name="pcb" value="171-6329A"/> <feature name="ic1" value="MPR-18452-U"/> @@ -3422,7 +3458,7 @@ The three available regions are PAL, NTSC-U and NTSC-J or a combination such as <description>Gods (Euro)</description> <year>1993</year> <publisher>Accolade</publisher> - <sharedfeat name="compatibility" value="PAL,NTSC-U"/> + <sharedfeat name="compatibility" value="NTSC-U,PAL"/> <part name="cart" interface="megadriv_cart"> <feature name="pcb" value="ACSGPC291 REV.B"/> <feature name="ic1" value="ACGOSG"/> @@ -3974,7 +4010,8 @@ The three available regions are PAL, NTSC-U and NTSC-J or a combination such as <info name="serial" value="G-5526"/> <info name="release" value="19930618"/> <info name="alt_title" value="Jリーグ・オフィシャルTVゲームプロストライカー ~ J.League Pro Striker (Box)"/> - <sharedfeat name="compatibility" value="NTSC-J"/> + <!-- black screen on genesis only, explicitly skips region check if PAL region is detected (South Asia?) --> + <sharedfeat name="compatibility" value="NTSC-J,PAL"/> <part name="cart" interface="megadriv_cart"> <feature name="pcb" value="?? (Sega)"/> <feature name="ic1" value="MPR-15554A W13"/> @@ -4134,10 +4171,14 @@ The three available regions are PAL, NTSC-U and NTSC-J or a combination such as </software> - <software name="jimmywws"> + <software name="jimmywws" supported="partial"> <description>Jimmy White's Whirlwind Snooker (Euro)</description> <year>1991</year> <publisher>Virgin Games</publisher> + <notes><![CDATA[ +Unsupported [Sega Mouse] peripheral +]]></notes> + <sharedfeat name="compatibility" value="PAL"/> <part name="cart" interface="megadriv_cart"> <feature name="pcb" value="171-5703"/> <feature name="ic1" value="MPR-17299-F"/> @@ -4252,6 +4293,7 @@ The three available regions are PAL, NTSC-U and NTSC-J or a combination such as <description>Disney's The Jungle Book (Euro)</description> <year>1994</year> <publisher>Virgin Interactive</publisher> + <sharedfeat name="compatibility" value="PAL"/> <part name="cart" interface="megadriv_cart"> <feature name="pcb" value="171-6329A"/> <feature name="ic1" value="MPR-16843-U"/> @@ -4266,6 +4308,7 @@ The three available regions are PAL, NTSC-U and NTSC-J or a combination such as <description>Disney's The Jungle Book (USA)</description> <year>1994</year> <publisher>Virgin Interactive</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <feature name="pcb" value="670115 REV 4"/> <feature name="ic1" value="MPR-16923-MX"/> @@ -4613,10 +4656,13 @@ The three available regions are PAL, NTSC-U and NTSC-J or a combination such as </software> - <software name="lemming2"> + <software name="lemming2" supported="partial"> <description>Lemmings 2 - The Tribes (Euro)</description> <year>1994</year> <publisher>Psygnosis</publisher> + <notes><![CDATA[ +Unsupported [Sega Mouse] peripheral +]]></notes> <sharedfeat name="compatibility" value="PAL"/> <part name="cart" interface="megadriv_cart"> <feature name="pcb" value="171-6329A"/> @@ -4992,6 +5038,7 @@ The three available regions are PAL, NTSC-U and NTSC-J or a combination such as <description>Mega Lo Mania (Euro)</description> <year>1992</year> <publisher>Virgin Games</publisher> + <!-- Header reports 1992 Sep --> <sharedfeat name="compatibility" value="PAL"/> <part name="cart" interface="megadriv_cart"> <feature name="pcb" value="171-5978BA"/> @@ -5098,10 +5145,13 @@ The three available regions are PAL, NTSC-U and NTSC-J or a combination such as <!-- Only Euro is confirmed --> - <software name="menacer"> + <software name="menacer" supported="no"> <description>Menacer 6-Game Cartridge (Euro, USA)</description> <year>1992</year> <publisher>Sega</publisher> + <notes><![CDATA[ +Unsupported [Menacer] peripheral +]]></notes> <part name="cart" interface="megadriv_cart"> <feature name="pcb" value="171-5978B"/> <feature name="u1" value="MPR-15075-F"/> <!-- location not really marked on PCB, using u1 for consistency --> @@ -5475,10 +5525,13 @@ The three available regions are PAL, NTSC-U and NTSC-J or a combination such as <!-- Only USA is confirmed --> - <software name="nbajamte"> + <software name="nbajamte" supported="no"> <description>NBA Jam Tournament Edition (World)</description> <year>1995</year> <publisher>Acclaim Entertainment</publisher> + <notes><![CDATA[ +[EEPROM] Blue stripes at boot +]]></notes> <info name="serial" value="T-81143"/> <info name="release" value="19950224"/> <info name="alt_title" value="NBA ジャム トーナメントエディション"/> @@ -5638,6 +5691,7 @@ The three available regions are PAL, NTSC-U and NTSC-J or a combination such as <description>NBA Showdown '94 (Euro, USA)</description> <year>1994</year> <publisher>Electronic Arts</publisher> + <sharedfeat name="compatibility" value="NTSC-U,PAL"/> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_sram"/> <feature name="pcb" value="PWA P10002 REV J"/> @@ -5699,6 +5753,7 @@ The three available regions are PAL, NTSC-U and NTSC-J or a combination such as <description>NFL Football '94 Starring Joe Montana (USA)</description> <year>1993</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_sram"/> <feature name="pcb" value="171-6278A"/> @@ -5717,10 +5772,13 @@ The three available regions are PAL, NTSC-U and NTSC-J or a combination such as <!-- Only Euro is confirmed --> - <software name="nflqb"> + <software name="nflqb" supported="no"> <description>NFL Quarterback Club (World)</description> <year>1994</year> <publisher>Acclaim Entertainment</publisher> + <notes><![CDATA[ +[EEPROM] Blue stripes at boot +]]></notes> <info name="serial" value="T-81155"/> <info name="release" value="19950224"/> <info name="alt_title" value="NFLクォーターバッククラブ'95"/> @@ -5857,6 +5915,7 @@ The three available regions are PAL, NTSC-U and NTSC-J or a combination such as <description>NHL All-Star Hockey '95 (USA)</description> <year>1995</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_sram"/> <feature name="pcb" value="171-6278A"/> @@ -6109,6 +6168,7 @@ The three available regions are PAL, NTSC-U and NTSC-J or a combination such as <description>Pebble Beach Golf Links (Euro)</description> <year>1993</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="PAL"/> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_sram"/> <feature name="pcb" value="?? (Sega)"/> @@ -6334,6 +6394,7 @@ The three available regions are PAL, NTSC-U and NTSC-J or a combination such as <description>Pirates! Gold (USA)</description> <year>1993</year> <publisher>Microprose</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_sram"/> <feature name="pcb" value="171-5955A"/> @@ -6488,6 +6549,7 @@ The three available regions are PAL, NTSC-U and NTSC-J or a combination such as <description>Premier Manager (Euro)</description> <year>1995</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U,PAL"/> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_sram"/> <feature name="pcb" value="171-6021A"/> @@ -6551,6 +6613,7 @@ The three available regions are PAL, NTSC-U and NTSC-J or a combination such as <description>Prince of Persia (Euro)</description> <year>1994</year> <publisher>Domark</publisher> + <sharedfeat name="compatibility" value="PAL"/> <part name="cart" interface="megadriv_cart"> <feature name="pcb" value="171-5978B"/> <feature name="u1" value="MPR-16445 W86"/> <!-- location not really marked on PCB, using u1 for consistency --> @@ -6608,6 +6671,7 @@ The three available regions are PAL, NTSC-U and NTSC-J or a combination such as <description>The Punisher (USA)</description> <year>1994</year> <publisher>Capcom</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <feature name="pcb" value="93648-1"/> <feature name="ic1" value="PUN-GS-1"/> @@ -6946,6 +7010,7 @@ The three available regions are PAL, NTSC-U and NTSC-J or a combination such as <description>RoboCop versus The Terminator (Euro)</description> <year>1994</year> <publisher>Virgin Interactive</publisher> + <sharedfeat name="compatibility" value="PAL"/> <part name="cart" interface="megadriv_cart"> <feature name="pcb" value="171-6329A"/> <feature name="ic1" value="MPR-16027-SM"/> @@ -6991,6 +7056,7 @@ The three available regions are PAL, NTSC-U and NTSC-J or a combination such as <description>Rolling Thunder 2 (Euro)</description> <year>1991</year> <publisher>Namco</publisher> + <!-- Compatibility not enforced --> <part name="cart" interface="megadriv_cart"> <feature name="pcb" value="837-9127"/> <dataarea name="rom" width="16" endianness="big" size="1048576"> @@ -7040,6 +7106,7 @@ The three available regions are PAL, NTSC-U and NTSC-J or a combination such as <description>Saturday Night Slammasters (Euro)</description> <year>1994</year> <publisher>Capcom</publisher> + <sharedfeat name="compatibility" value="PAL"/> <part name="cart" interface="megadriv_cart"> <feature name="pcb" value="171-6570A"/> <feature name="ic1" value="MPR-17902-F"/> @@ -7057,6 +7124,7 @@ The three available regions are PAL, NTSC-U and NTSC-J or a combination such as <description>Saturday Night Slammasters (USA)</description> <year>1994</year> <publisher>Capcom</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <feature name="pcb" value="93653-2"/> <feature name="ic1" value="SLM-GS-1"/> @@ -7194,10 +7262,13 @@ The three available regions are PAL, NTSC-U and NTSC-J or a combination such as </software> - <software name="shangh2"> + <software name="shangh2" supported="partial"> <description>Shanghai II - Dragon's Eye (USA)</description> <year>1994</year> <publisher>Activision</publisher> + <notes><![CDATA[ +Unsupported [Sega Mouse] peripheral +]]></notes> <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <feature name="pcb" value="800057-02"/> @@ -7253,6 +7324,7 @@ The three available regions are PAL, NTSC-U and NTSC-J or a combination such as <description>Shining Force - The Legacy of Great Intention (Euro)</description> <year>1992</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="PAL"/> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_sram"/> <feature name="pcb" value="171-6278A"/> @@ -7399,6 +7471,7 @@ The three available regions are PAL, NTSC-U and NTSC-J or a combination such as <description>Skeleton Krew (Euro)</description> <year>1995</year> <publisher>Core Design</publisher> + <sharedfeat name="compatibility" value="PAL"/> <part name="cart" interface="megadriv_cart"> <feature name="pcb" value="171-6329A"/> <feature name="ic1" value="MPR-17922-MX"/> @@ -7496,6 +7569,7 @@ The three available regions are PAL, NTSC-U and NTSC-J or a combination such as <description>Sonic Compilation (Euro, Earlier)</description> <year>1995</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="PAL"/> <part name="cart" interface="megadriv_cart"> <feature name="pcb" value="171-6570A"/> <feature name="ic1" value="MPR-18203-MX, MPR-18203-U"/> @@ -7777,6 +7851,7 @@ The three available regions are PAL, NTSC-U and NTSC-J or a combination such as <year>1994</year> <publisher>Sega</publisher> <info name="alt_title" value="The Ren & Stimpy Show Presents Stimpy's Invention (Box)"/> + <sharedfeat name="compatibility" value="PAL"/> <part name="cart" interface="megadriv_cart"> <feature name="pcb" value="171-5978BA"/> <feature name="u1" value="MPR-16251 W85"/> <!-- location not really marked on PCB, using u1 for consistency --> @@ -7845,10 +7920,11 @@ The three available regions are PAL, NTSC-U and NTSC-J or a combination such as </software> - <software name="sracer"> + <software name="sracer" supported="yes"> <description>Street Racer (Euro)</description> <year>1995</year> <publisher>Ubi Soft</publisher> + <info name="developer" value="Vivid Image"/> <part name="cart" interface="megadriv_cart"> <feature name="pcb" value="171-5978BA"/> <feature name="u1" value="MPR-17987-F"/> <!-- location not really marked on PCB, using u1 for consistency --> @@ -7860,10 +7936,13 @@ The three available regions are PAL, NTSC-U and NTSC-J or a combination such as <!-- Only Europe and Japan are confirmed --> - <software name="sor"> + <software name="sor" supported="partial"> <description>Streets of Rage (Euro, USA, Rev. A) ~ Bare Knuckle - Ikari no Tekken (Jpn, Rev. A)</description> <year>1991</year> <publisher>Sega</publisher> + <notes><![CDATA[ +[VDP] Stage starts have player sprites in front of status bar +]]></notes> <info name="serial" value="G-4050 (JPN)"/> <info name="release" value="19910802 (JPN)"/> <info name="alt_title" value="ベア・ナックル 怒りの鉄拳"/> @@ -7878,10 +7957,13 @@ The three available regions are PAL, NTSC-U and NTSC-J or a combination such as <!-- Only Europe and Japan are confirmed --> - <software name="sora" cloneof="sor"> + <software name="sora" cloneof="sor" supported="partial"> <description>Streets of Rage (Euro, USA) ~ Bare Knuckle - Ikari no Tekken (Jpn)</description> <year>1991</year> <publisher>Sega</publisher> + <notes><![CDATA[ +[VDP] Stage starts have player sprites in front of status bar +]]></notes> <info name="serial" value="G-4050 (JPN)"/> <info name="release" value="19910802 (JPN)"/> <info name="alt_title" value="ベア・ナックル 怒りの鉄拳"/> @@ -8688,6 +8770,7 @@ The three available regions are PAL, NTSC-U and NTSC-J or a combination such as <description>Toe Jam & Earl in Panic auf Funkotron (Ger)</description> <year>1993</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="PAL"/> <part name="cart" interface="megadriv_cart"> <feature name="pcb" value="171-6329A"/> <feature name="ic1" value="MPR-16363-S"/> @@ -8702,6 +8785,7 @@ The three available regions are PAL, NTSC-U and NTSC-J or a combination such as <description>Toe Jam & Earl in Panic on Funkotron (USA)</description> <year>1993</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <feature name="pcb" value="171-6329A"/> <feature name="ic1" value="MPR-16112-H"/> @@ -9190,6 +9274,7 @@ The three available regions are PAL, NTSC-U and NTSC-J or a combination such as <description>Wimbledon Championship Tennis (Euro)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="PAL"/> <part name="cart" interface="megadriv_cart"> <feature name="pcb" value="171-5979-A"/> <feature name="ic1" value="MPR-15966-F"/> @@ -9289,7 +9374,7 @@ The three available regions are PAL, NTSC-U and NTSC-J or a combination such as <!-- Only Euro is confirmed --> - <software name="wboymw"> + <software name="wboymw" supported="yes"> <description>Wonder Boy in Monster World (Euro, USA)</description> <year>1992</year> <publisher>Sega</publisher> @@ -9748,7 +9833,7 @@ The three available regions are PAL, NTSC-U and NTSC-J or a combination such as <!-- Partially documented: confirmed dumps, missing additional info (a PCB pic would be of help to fill missing details) --> - <software name="microm96"> + <software name="microm96" supported="yes"> <description>Micro Machines Turbo Tournament 96 (Euro, v1.1, J-Cart)</description> <year>1995</year> <publisher>Codemasters</publisher> @@ -9804,10 +9889,13 @@ The three available regions are PAL, NTSC-U and NTSC-J or a combination such as <!-- Only Euro is confirmed --> - <software name="sampras"> + <software name="sampras" supported="no"> <description>Pete Sampras Tennis (Euro, USA, J-Cart)</description> <year>1994</year> <publisher>Codemasters</publisher> + <notes><![CDATA[ +Doesn't accept any input +]]></notes> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_jcart"/> <feature name="pcb" value="SRJCV1-2"/> @@ -9859,6 +9947,7 @@ The three available regions are PAL, NTSC-U and NTSC-J or a combination such as <info name="serial" value="G-5531"/> <info name="release" value="19940527"/> <info name="alt_title" value="ソニック・ザ・ヘッジホッグ3"/> + <sharedfeat name="compatibility" value="NTSC-J"/> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_fram"/> <feature name="pcb" value="171-6658A"/> @@ -9973,8 +10062,8 @@ Some carts have been partially documented, based on available pics (from Neperen but dumps still have to be confirmed. --> - <software name="13mahjan"> - <description>13 Ma Jiang - 98 Mei Shao Nu (Chi)</description> + <software name="13mahjan" supported="yes"> + <description>13 Ma Jiang - 98 Mei Shao Nu (Tw)</description> <year>1998</year> <publisher>BBD</publisher> <info name="alt_title" value="十三張麻將 98'美少女"/> @@ -9985,7 +10074,7 @@ but dumps still have to be confirmed. </part> </software> - <software name="16ton"> + <software name="16ton" supported="yes"> <description>16 Ton (Jpn, SegaNet)</description> <year>1991</year> <publisher>Sega</publisher> @@ -10020,7 +10109,7 @@ but dumps still have to be confirmed. </software> <software name="16mj2"> - <description>Shi Liu Zhang Ma Jiang II</description> + <description>Shi Liu Zhang Ma Jiang II (Chi)</description> <year>199?</year> <publisher>City Man</publisher> <info name="serial" value="GM-95003"/> @@ -10045,24 +10134,30 @@ but dumps still have to be confirmed. </part> </software> - <software name="3in1fwt"> + <software name="3in1fwt" supported="no"> <description>3 in 1 Flashback - World Championship Soccer - Tecmo World Cup 92 (Pirate)</description> <year>199?</year> <publisher><unknown></publisher> + <notes><![CDATA[ +Only Flashback portion is present in the dump, the other two entries and menu are missing. +]]></notes> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="2097152"> - <rom name="3-in-1 flashback - world champ. soccer - tecmo world cup 92 (pirate).bin" size="2097152" crc="a8fd28d7" sha1="a0dd99783667af20589d473a2054d4bbd62d943e"/> + <rom name="3-in-1 flashback - world champ. soccer - tecmo world cup 92 (pirate).bin" size="2097152" crc="a8fd28d7" sha1="a0dd99783667af20589d473a2054d4bbd62d943e" status="baddump"/> </dataarea> </part> </software> - <software name="3in1rmb"> + <software name="3in1rmb" supported="no"> <description>3 in 1 Road Rash - Ms. Pac-Man - Block Out (Pirate)</description> <year>199?</year> <publisher><unknown></publisher> + <notes><![CDATA[ +Only Road Rash portion is present in the dump, the other two entries and menu are missing. +]]></notes> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="1048576"> - <rom name="3-in-1 road rash - ms. pac-man - block out (pirate).bin" size="1048576" crc="13c96154" sha1="fd7255c2abdf90698f779a039ea1e560ca19639a"/> + <rom name="3-in-1 road rash - ms. pac-man - block out (pirate).bin" size="1048576" crc="13c96154" sha1="fd7255c2abdf90698f779a039ea1e560ca19639a" status="baddump"/> </dataarea> </part> </software> @@ -10207,6 +10302,7 @@ but dumps still have to be confirmed. <description>The Adventures of Batman & Robin (Prototype, 19950406)</description> <year>1995</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="2097152"> <rom name="adventures of batman & robin, the (prototype - apr 06, 1995).bin" size="2097152" crc="f05cf389" sha1="bb7ed12f68a7df4956891338d6db0f29acb0f5df"/> @@ -10218,6 +10314,7 @@ but dumps still have to be confirmed. <description>The Adventures of Batman & Robin (Prototype, 19950410)</description> <year>1995</year> <publisher>Sega</publisher> + <!-- Compatibility not enforced --> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="2097152"> <rom name="adventures of batman & robin, the (prototype - apr 10, 1995).bin" size="2097152" crc="d4f3a070" sha1="27b06143ca3d31504e75429610acc34be4bbe514"/> @@ -10229,6 +10326,7 @@ but dumps still have to be confirmed. <description>The Adventures of Batman & Robin (Prototype, 19950411)</description> <year>1995</year> <publisher>Sega</publisher> + <!-- Compatibility not enforced --> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="2097152"> <rom name="adventures of batman & robin, the (prototype - apr 11, 1995).bin" size="2097152" crc="b5b5a290" sha1="901fe36018b031ce6a226795ceb7fd868b28ead6"/> @@ -10240,6 +10338,7 @@ but dumps still have to be confirmed. <description>The Adventures of Batman & Robin (Prototype, 19950418)</description> <year>1995</year> <publisher>Sega</publisher> + <!-- Compatibility not enforced --> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="2097152"> <rom name="adventures of batman & robin, the (prototype - apr 18, 1995).bin" size="2097152" crc="6874142b" sha1="5cb7d30f81de290da7cd5298a38acccb7ab1f9c7"/> @@ -10251,6 +10350,7 @@ but dumps still have to be confirmed. <description>The Adventures of Batman & Robin (Prototype, 19950419)</description> <year>1995</year> <publisher>Sega</publisher> + <!-- Compatibility not enforced --> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="2097152"> <rom name="adventures of batman & robin, the (prototype - apr 19, 1995).bin" size="2097152" crc="7002da56" sha1="f76e8669934668abfe739c043a40cbf8ed24e78a"/> @@ -10262,6 +10362,7 @@ but dumps still have to be confirmed. <description>The Adventures of Batman & Robin (Prototype, 19950421)</description> <year>1995</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="2097152"> <rom name="adventures of batman & robin, the (prototype - apr 21, 1995).bin" size="2097152" crc="61f02f13" sha1="531973851bb71a589be3544952cf0f7694f8d072"/> @@ -10273,6 +10374,7 @@ but dumps still have to be confirmed. <description>The Adventures of Batman & Robin (Prototype, 19950422)</description> <year>1995</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="2097152"> <rom name="adventures of batman & robin, the (prototype - apr 22, 1995).bin" size="2097152" crc="eb8236b2" sha1="97c91de74e744ab0eb52bdcceffb79467a9c5474"/> @@ -10284,6 +10386,7 @@ but dumps still have to be confirmed. <description>The Adventures of Batman & Robin (Prototype, 19950424)</description> <year>1995</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="2097152"> <rom name="adventures of batman & robin, the (prototype - apr 24, 1995).bin" size="2097152" crc="253947f8" sha1="1dfd9a4fd06cbe6e28b2519e84b303dbe03a9674"/> @@ -10295,6 +10398,7 @@ but dumps still have to be confirmed. <description>The Adventures of Batman & Robin (Prototype, 19950426)</description> <year>1995</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-J,NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="2097152"> <rom name="adventures of batman & robin, the (prototype - apr 26, 1995).bin" size="2097152" crc="bc79f7ee" sha1="6160fd2b45be920c68b31e2a88c27a967dde6d84"/> @@ -10306,6 +10410,7 @@ but dumps still have to be confirmed. <description>The Adventures of Batman & Robin (Prototype, 19950427)</description> <year>1995</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-J,NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="2097152"> <rom name="adventures of batman & robin, the (prototype - apr 27, 1995).bin" size="2097152" crc="fdac8190" sha1="1a2bece0e3f66dcdd44b555ce45deda510b8ca3a"/> @@ -10317,6 +10422,7 @@ but dumps still have to be confirmed. <description>The Adventures of Batman & Robin (Prototype, 19950428)</description> <year>1995</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-J,NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="2097152"> <rom name="adventures of batman & robin, the (prototype - apr 28, 1995).bin" size="2097152" crc="27a1524b" sha1="2e41a3b9c64d93de1d05c830f6d8471edfc2090c"/> @@ -10328,6 +10434,7 @@ but dumps still have to be confirmed. <description>The Adventures of Batman & Robin (Prototype, 19950501)</description> <year>1995</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-J,NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="2097152"> <rom name="adventures of batman & robin, the (prototype - may 01, 1995).bin" size="2097152" crc="589aa203" sha1="10467cc121afd7d74699b3ab6b7243b370c09e47"/> @@ -10386,6 +10493,7 @@ but dumps still have to be confirmed. <description>Aero the Acro-Bat (Prototype)</description> <year>1993</year> <publisher>Sunsoft</publisher> + <sharedfeat name="compatibility" value="PAL"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="1048576"> <rom name="aero the acro-bat (beta).bin" size="1048576" crc="dcd14b10" sha1="105316ad1eb7e3386cbd3ffa2d9d841796193e65"/> @@ -10421,7 +10529,6 @@ but dumps still have to be confirmed. <description>Aerobiz (USA)</description> <year>1992</year> <publisher>Koei</publisher> - <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_sram"/> <dataarea name="rom" width="16" endianness="big" size="1048576"> @@ -10541,6 +10648,7 @@ but dumps still have to be confirmed. <description>Disney's Aladdin (USA, Prototype)</description> <year>1993</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="2097152"> <rom name="aladdin (usa) (beta).bin" size="2097152" crc="8c60ef73" sha1="1f8d4f888b761a878dcc5ffe2dc7c6fef46db1ca"/> @@ -10635,6 +10743,7 @@ but dumps still have to be confirmed. <info name="serial" value="G-4130"/> <info name="release" value="19950224"/> <info name="alt_title" value="エイリアンソルジャー"/> + <sharedfeat name="compatibility" value="NTSC-J,PAL"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="2097152"> <rom name="alien soldier (jpn).bin" size="2097152" crc="90fa1539" sha1="8f6eb584ed9487b8504fbc21d86783f58e6c9cd6"/> @@ -10815,6 +10924,7 @@ but dumps still have to be confirmed. <description>Art of Fighting (Prototype, 19940711)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="2097152"> <rom name="art of fighting (prototype - jul 11, 1994).bin" size="2097152" crc="19ce567d" sha1="221c6ee35e9dfc446f076f84762af153cc3f4208"/> @@ -10962,6 +11072,7 @@ but dumps still have to be confirmed. <description>ATP Tour Championship Tennis (Prototype, 19940802)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_sram"/> <dataarea name="rom" width="16" endianness="big" size="2097152"> @@ -10976,6 +11087,7 @@ but dumps still have to be confirmed. <description>ATP Tour Championship Tennis (Prototype, 19940805)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_sram"/> <dataarea name="rom" width="16" endianness="big" size="2097152"> @@ -10990,6 +11102,7 @@ but dumps still have to be confirmed. <description>ATP Tour Championship Tennis (Prototype, 19940808)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_sram"/> <dataarea name="rom" width="16" endianness="big" size="2097152"> @@ -11005,6 +11118,7 @@ but dumps still have to be confirmed. <description>ATP Tour Championship Tennis (Prototype, 19940719)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_sram"/> <dataarea name="rom" width="16" endianness="big" size="2097152"> @@ -11019,6 +11133,7 @@ but dumps still have to be confirmed. <description>ATP Tour Championship Tennis (Prototype, 19940723)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_sram"/> <dataarea name="rom" width="16" endianness="big" size="2097152"> @@ -11046,6 +11161,7 @@ but dumps still have to be confirmed. <description>ATP Tour Championship Tennis (Prototype, 19940509)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_sram"/> <dataarea name="rom" width="16" endianness="big" size="2097152"> @@ -11060,6 +11176,7 @@ but dumps still have to be confirmed. <description>ATP Tour Championship Tennis (Prototype, 19940908)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_sram"/> <dataarea name="rom" width="16" endianness="big" size="2097152"> @@ -11070,7 +11187,7 @@ but dumps still have to be confirmed. </part> </software> - <software name="atptouru" cloneof="atptour"> + <software name="atptouru" cloneof="atptour" supported="yes"> <description>ATP Tour Championship Tennis (USA)</description> <year>1994</year> <publisher>Sega</publisher> @@ -11089,6 +11206,7 @@ but dumps still have to be confirmed. <description>Australian Rugby League (Euro)</description> <year>1994</year> <publisher>Electronic Arts</publisher> + <sharedfeat name="compatibility" value="PAL"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="2097152"> <rom name="australian rugby league (euro).bin" size="2097152" crc="ac5bc26a" sha1="b54754180f22d52fc56bab3aeb7a1edd64c13fef"/> @@ -11100,6 +11218,7 @@ but dumps still have to be confirmed. <description>Australian Rugby League (prototype)</description> <year>1994</year> <publisher>Electronic Arts</publisher> + <!-- compatibility not enforced --> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="2097152"> <rom name="australian rugby league (prototype).bin" size="2097152" crc="51117c67" sha1="bb84be50eb4d31dbe601058bf9ea1adaaec1a1b1"/> @@ -11216,6 +11335,10 @@ but dumps still have to be confirmed. <description>Baby Boom (Prototype, 19940811)</description> <year>1994</year> <publisher><unknown></publisher> + <notes><![CDATA[ +https://segaretro.org/Baby_Boom +]]></notes> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="2097152"> <rom name="baby boom (prototype - aug 11, 1994).bin" size="2097152" crc="bd697054" sha1="7baa515001aff4fa93c871189c891e5bd2eaab11"/> @@ -11227,6 +11350,7 @@ but dumps still have to be confirmed. <description>Baby Boom (Prototype, 19940603)</description> <year>1994</year> <publisher><unknown></publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="2097152"> <rom name="baby boom (prototype - jun 03, 1994).bin" size="2097152" crc="c0d97f6f" sha1="24b5a84fb68b89a5ac4e7a9e85af95880067fc5f"/> @@ -11238,6 +11362,7 @@ but dumps still have to be confirmed. <description>Baby Boom (Prototype, 19940606)</description> <year>1994</year> <publisher><unknown></publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="2097152"> <rom name="baby boom (prototype - jun 06, 1994).bin" size="2097152" crc="6e0cf48d" sha1="22c8e6ac65de990a3f30aedf777f7336f7791e66"/> @@ -11247,8 +11372,12 @@ but dumps still have to be confirmed. <software name="babyd"> <description>Baby's Day Out (USA, Prototype)</description> - <year>199?</year> - <publisher><unknown></publisher> + <year>1994?</year> + <publisher>Hi-Tech Expression</publisher> + <notes><![CDATA[ +https://segaretro.org/Baby%27s_Day_Out +]]></notes> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="1048576"> <rom name="baby's day out (usa) (prototype).bin" size="1048576" crc="b2e7cc49" sha1="5cc32a2826b3cc5c581043fe6c481ffb753321dd"/> @@ -11256,10 +11385,14 @@ but dumps still have to be confirmed. </part> </software> - <software name="babydo" cloneof="babyd"> + <software name="babydo" cloneof="babyd" supported="partial"> <description>Baby's Day Out (USA, Prototype, Earlier)</description> - <year>199?</year> - <publisher><unknown></publisher> + <year>1994?</year> + <publisher>Hi-Tech Expression</publisher> + <notes><![CDATA[ +No sound (btanb?) +]]></notes> + <!-- compatibility not enforced --> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="1048576"> <rom name="baby's day out (usa) (prototype) (earlier).bin" size="1048576" crc="459b891c" sha1="99983282e75e1cf01a47d00f0be15e20eaae0907"/> @@ -11312,6 +11445,7 @@ but dumps still have to be confirmed. <description>Ballz 3D (USA, prototype 199406xx)</description> <year>1994</year> <publisher>Accolade</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="2097152"> <rom name="ballz 3d - fighting at its ballziest (june prototype).bin" size="2097152" crc="c89ad87e" sha1="6cd87eb8b1b585778158c6ecf5faf16365924d33"/> @@ -11369,6 +11503,7 @@ but dumps still have to be confirmed. <description>Barbie Vacation Adventure (USA, Prototype)</description> <year>1994</year> <publisher>Hi Tech Expressions</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="1048576"> <rom name="barbie vacation adventure (usa) (prototype).bin" size="1048576" crc="10e0ba69" sha1="51fe102543e0419a9ccd0f3e016150fdb3666c24"/> @@ -11418,6 +11553,7 @@ but dumps still have to be confirmed. <description>Barney's Hide & Seek Game (USA, Prototype 19930918)</description> <year>1993</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="957482"> <rom name="barney's hide & seek game (sep 18, 1993 build).bin" size="957482" crc="19d9dc81" sha1="405d1abe448e8d24786a5383f62e4e2833af392f" /> @@ -11426,10 +11562,14 @@ but dumps still have to be confirmed. </software> <software name="barver"> - <description>Barver Battle Saga - Tai Kong Zhan Shi - Mo Fa Zhan Shi (Chi)</description> + <description>Barver Battle Saga - Tai Kong Zhan Shi - Mo Fa Zhan Shi (Tw)</description> <year>1996</year> <publisher><unlicensed></publisher> + <notes><![CDATA[ +https://bootleggames.fandom.com/wiki/Barver_Battle_Saga:_Tai_Kong_Zhan_Shi +]]></notes> <info name="alt_title" value="太空戰士 魔法戰士"/> + <info name="developer" value="Chuanpu"/> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_sram"/> <dataarea name="rom" width="16" endianness="big" size="2097152"> @@ -11564,7 +11704,7 @@ but dumps still have to be confirmed. <software name="btlchess"> <description>Zhan Qi - Chinese Battle Chess (Tw)</description> <year>199?</year> - <publisher>Creaton</publisher> + <publisher>Creaton Softech</publisher> <info name="alt_title" value="戦棊 - Chinese Battle Chess"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="1048576"> @@ -11727,6 +11867,7 @@ but dumps still have to be confirmed. <description>The Berenstain Bears' Camping Adventure (Prototype, 19940801)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="1048576"> <rom name="berenstain bears' camping adventure, the (prototype - aug 01, 1994).bin" size="1048576" crc="b7cd465c" sha1="d60e4e0542d1c0a4bdbb7a433373051718549055"/> @@ -11738,6 +11879,7 @@ but dumps still have to be confirmed. <description>The Berenstain Bears' Camping Adventure (Prototype, 19940802)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="1048576"> <rom name="berenstain bears' camping adventure, the (prototype - aug 02, 1994).bin" size="1048576" crc="383ad564" sha1="faf4801049124ab2f63d514f04adc757a66382b5"/> @@ -11749,6 +11891,7 @@ but dumps still have to be confirmed. <description>The Berenstain Bears' Camping Adventure (Prototype, 19940803)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="1048576"> <rom name="berenstain bears' camping adventure, the (prototype - aug 03, 1994).bin" size="1048576" crc="18f268a6" sha1="5f496994fa770db96afac4579d7314d56a8f15d5"/> @@ -11760,6 +11903,7 @@ but dumps still have to be confirmed. <description>The Berenstain Bears' Camping Adventure (Prototype, 19940805)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="1048576"> <rom name="berenstain bears' camping adventure, the (prototype - aug 05, 1994).bin" size="1048576" crc="24159b6f" sha1="1b4e21aeffba372820c25517d98c181731bbd007"/> @@ -11771,6 +11915,7 @@ but dumps still have to be confirmed. <description>The Berenstain Bears' Camping Adventure (Prototype, 19940808)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="1048576"> <rom name="berenstain bears' camping adventure, the (prototype - aug 08, 1994).bin" size="1048576" crc="58b6b0fc" sha1="ba0e3fc9d04e37a81b37d4e9ff21097bfc4fc0f1"/> @@ -11782,6 +11927,7 @@ but dumps still have to be confirmed. <description>The Berenstain Bears' Camping Adventure (Prototype, 19940709)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="1048576"> <rom name="berenstain bears' camping adventure, the (prototype - jul 09, 1994).bin" size="1048576" crc="bf6aa405" sha1="8172369e0a73d1be60e1124a2ea8df41cfddfb55"/> @@ -11793,6 +11939,7 @@ but dumps still have to be confirmed. <description>The Berenstain Bears' Camping Adventure (Prototype, 19940716)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="1048576"> <rom name="berenstain bears' camping adventure, the (prototype - jul 16, 1994).bin" size="1048576" crc="c84aad8e" sha1="758f5e7072d8bc4bd6325fb7629ebb9f11d1ce10"/> @@ -11804,6 +11951,7 @@ but dumps still have to be confirmed. <description>The Berenstain Bears' Camping Adventure (Prototype, 19940720)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="1048576"> <rom name="berenstain bears' camping adventure, the (prototype - jul 20, 1994).bin" size="1048576" crc="abee4c5e" sha1="ebc3d134494ce02932b44bbda3720176089d7604"/> @@ -11815,6 +11963,7 @@ but dumps still have to be confirmed. <description>The Berenstain Bears' Camping Adventure (Prototype, 19940602)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="1048576"> <rom name="berenstain bears' camping adventure, the (prototype - jun 02, 1994).bin" size="1048576" crc="83cf19e4" sha1="fe2fa9060a2cf13720c79a5fc8568a33c2adad0a"/> @@ -11826,6 +11975,7 @@ but dumps still have to be confirmed. <description>The Berenstain Bears' Camping Adventure (Prototype, 19940610)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="1048576"> <rom name="berenstain bears' camping adventure, the (prototype - jun 10, 1994).bin" size="1048576" crc="a748e2cf" sha1="32ee3d750ea8ff06adb28c7b5812670f4e92d952"/> @@ -11870,6 +12020,7 @@ but dumps still have to be confirmed. <description>The Berenstain Bears' Camping Adventure (Prototype, 19940517)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="1048576"> <rom name="berenstain bears' camping adventure, the (prototype - may 17, 1994).bin" size="1048576" crc="e1855ade" sha1="391c1bdeb7546bc19c3f866cb17079f529044b3c"/> @@ -11881,6 +12032,7 @@ but dumps still have to be confirmed. <description>The Berenstain Bears' Camping Adventure (Prototype, 19940519)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="1048576"> <rom name="berenstain bears' camping adventure, the (prototype - may 19, 1994).bin" size="1048576" crc="07c9f71f" sha1="617284c4964117e2c7ac9fab8ef4ea19a89fa0ea"/> @@ -11892,6 +12044,7 @@ but dumps still have to be confirmed. <description>The Berenstain Bears' Camping Adventure (Prototype, 19940523)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="1048576"> <rom name="berenstain bears' camping adventure, the (prototype - may 23, 1994).bin" size="1048576" crc="913887b7" sha1="4b866f0b0f491a3d73d1ce1895df9720c93a79f2"/> @@ -11903,6 +12056,7 @@ but dumps still have to be confirmed. <description>The Berenstain Bears' Camping Adventure (Prototype, 19940526)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="1048576"> <rom name="berenstain bears' camping adventure, the (prototype - may 26, 1994).bin" size="1048576" crc="d33c0fa4" sha1="4315949e9c7f3c938d0ef15f0ce361e7f47042a1"/> @@ -11914,6 +12068,7 @@ but dumps still have to be confirmed. <description>The Berenstain Bears' Camping Adventure (Prototype, 19940530)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="1048576"> <rom name="berenstain bears' camping adventure, the (prototype - may 30, 1994).bin" size="1048576" crc="9c3bf429" sha1="33c292b28518f25e1d87c41fff3cf5f2da635993"/> @@ -12089,10 +12244,13 @@ but dumps still have to be confirmed. </part> </software> - <software name="blockb"> + <software name="blockb" supported="no"> <description>Blockbuster World Video Game Championship II (USA)</description> <year>1995</year> <publisher>Acclaim Entertainment</publisher> + <notes><![CDATA[ +[EEPROM] Blue stripes at boot +]]></notes> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_nbajamte"/> <dataarea name="rom" width="16" endianness="big" size="4194304"> @@ -12118,10 +12276,14 @@ but dumps still have to be confirmed. </part> </software> - <software name="bodyco"> + <software name="bodyco" supported="partial"> <description>Body Count (Euro)</description> <year>1994</year> <publisher>Sega</publisher> + <notes><![CDATA[ +Unsupported [Menacer] peripheral (joypad works) +Unsupported [Sega Mouse] peripheral +]]></notes> <sharedfeat name="compatibility" value="PAL"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="1048576"> @@ -12130,10 +12292,14 @@ but dumps still have to be confirmed. </part> </software> - <software name="bodycop" cloneof="bodyco"> + <software name="bodycop" cloneof="bodyco" supported="partial"> <description>Body Count (Euro, Prototype)</description> <year>1994</year> <publisher>Sega</publisher> + <notes><![CDATA[ +Unsupported [Menacer] peripheral (joypad works) +]]></notes> + <sharedfeat name="compatibility" value="PAL"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="1048576"> <rom name="body count (euro) (beta).bin" size="1048576" crc="b4ffb6ce" sha1="a01971cdce4d98e770d9c083a5accb8cb5260112"/> @@ -12141,10 +12307,14 @@ but dumps still have to be confirmed. </part> </software> - <software name="bodycop4" cloneof="bodyco"> + <software name="bodycop4" cloneof="bodyco" supported="partial"> <description>Body Count (USA, Prototype, 19940208)</description> <year>1994</year> <publisher>Sega</publisher> + <notes><![CDATA[ +Unsupported [Menacer] peripheral (joypad works) +]]></notes> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="1046784"> <rom name="body count (prototype - feb 08, 1994).bin" size="1046784" crc="c5fed897" sha1="1c13134c32dc620dd663f33150c82d12cc69d442"/> @@ -12164,10 +12334,15 @@ but dumps still have to be confirmed. </part> </software--> - <software name="bodycop5" cloneof="bodyco"> + <software name="bodycop5" cloneof="bodyco" supported="partial"> <description>Body Count (USA, Prototype, 19940127)</description> <year>1994</year> <publisher>Sega</publisher> + <notes><![CDATA[ +Unsupported [Menacer] peripheral (joypad works) +]]></notes> + <!-- megadrij works with this specific version only --> + <sharedfeat name="compatibility" value="NTSC-U,NTSC-J"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="1048576"> <rom name="body count (prototype - jan 27, 1994).bin" size="1048576" crc="66ca4e71" sha1="8cbea2b2c0435fadc6031a2704d7a60c1a386615"/> @@ -12175,10 +12350,14 @@ but dumps still have to be confirmed. </part> </software> - <software name="bodycop3" cloneof="bodyco"> + <software name="bodycop3" cloneof="bodyco" supported="partial"> <description>Body Count (USA, Prototype, 19940303)</description> <year>1994</year> <publisher>Sega</publisher> + <notes><![CDATA[ +Unsupported [Menacer] peripheral (joypad works) +]]></notes> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="1048576"> <rom name="body count (prototype - mar 03, 1994).bin" size="1048576" crc="6abc6e77" sha1="0c50d81ff0630fb79a600f65dfacb894dfe62f4d"/> @@ -12202,6 +12381,7 @@ but dumps still have to be confirmed. <description>Body Count (USA, Prototype, 19940308)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="1048576"> <rom name="body count (prototype - mar 08, 1994).bin" size="1048576" crc="8965213f" sha1="dbd4fec001f61c6a8414b2035e884ebfbf48b899"/> @@ -12238,6 +12418,7 @@ but dumps still have to be confirmed. <description>Bonkers (USA, Prototype, 19940328)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="1048576"> <rom name="bonkers (prototype - mar 28, 1994).bin" size="1048576" crc="cd67c588" sha1="3f08ea3bc211f4a02d216d87c9abcdab11612ccb"/> @@ -12249,6 +12430,7 @@ but dumps still have to be confirmed. <description>Bonkers (USA, Prototype, 19940503)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="1048576"> <rom name="bonkers (prototype - may 03, 1994).bin" size="1048576" crc="e4cd0d61" sha1="7c4798c73548f6992b18bf2bbd2f8c3144fcff58"/> @@ -12260,6 +12442,7 @@ but dumps still have to be confirmed. <description>Bonkers (USA, Prototype, 19941004)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="1048576"> <rom name="bonkers (prototype - oct 04, 1994).bin" size="1048576" crc="913cc834" sha1="435c0dc4c72184e0b7dd535fe5e7d5323d787571"/> @@ -12271,6 +12454,7 @@ but dumps still have to be confirmed. <description>Bonkers (USA, Prototype, 19941025)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="1048576"> <rom name="bonkers (prototype - oct 25, 1994).bin" size="1048576" crc="3e5edc4f" sha1="a1bfc26fe6ab4fe1e5b8ddbc84b840209d9cb798"/> @@ -12282,6 +12466,7 @@ but dumps still have to be confirmed. <description>Bonkers (USA, Prototype, 19941029)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="1048576"> <rom name="bonkers (prototype - oct 29, 1994).bin" size="1048576" crc="7b84793e" sha1="994a0d7f7c21edbe35e31ca2a28b3e2017683355"/> @@ -12328,6 +12513,9 @@ but dumps still have to be confirmed. <description>Bram Stoker's Dracula (USA)</description> <year>1993</year> <publisher>Sony Imagesoft</publisher> + <notes><![CDATA[ +No [VDP] sprites +]]></notes> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="1048576"> <rom name="bram stoker's dracula (usa).bin" size="1048576" crc="077084a6" sha1="4ede0e75054655acab63f2a41b8c57e1cf137e58"/> @@ -12481,14 +12669,14 @@ but dumps still have to be confirmed. <software name="bugsbunu" cloneof="bugsbun"> <description>Bugs Bunny in Double Trouble (USA)</description> - <year>1996</year> - <publisher>Sega</publisher> - <sharedfeat name="compatibility" value="NTSC-U,NTSC-J"/> - <part name="cart" interface="megadriv_cart"> - <dataarea name="rom" width="16" endianness="big" size="2097152"> - <rom name="bugs bunny in double trouble (usa).bin" size="2097152" crc="365305a2" sha1="50b18d9f9935a46854641c9cfc5b3d3b230edd5e"/> - </dataarea> - </part> + <year>1996</year> + <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U,NTSC-J"/> + <part name="cart" interface="megadriv_cart"> + <dataarea name="rom" width="16" endianness="big" size="2097152"> + <rom name="bugs bunny in double trouble (usa).bin" size="2097152" crc="365305a2" sha1="50b18d9f9935a46854641c9cfc5b3d3b230edd5e"/> + </dataarea> + </part> </software> <software name="bullvsbl"> @@ -12740,9 +12928,13 @@ but dumps still have to be confirmed. </software> <software name="cjfuweng"> - <description>Chao Ji Da Fu Weng (Chi)</description> - <year>199?</year> - <publisher>Gametec?</publisher> + <description>Chao Ji Da Fu Weng (Tw)</description> + <!-- 1994 or 1995 --> + <year>1994?</year> + <publisher>Gametec</publisher> + <notes><![CDATA[ +https://bootleggames.fandom.com/wiki/Chaoji_Dafuweng +]]></notes> <info name="alt_title" value="超級大富翁"/> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_sram"/> @@ -13040,6 +13232,7 @@ but dumps still have to be confirmed. <description>College Football USA 96 (prototype 19950621)</description> <year>1995</year> <publisher>Electronic Arts</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="2097152"> <rom name="college football usa 96 (prototype 19950621).bin" size="2097152" crc="e70bd01d" sha1="5438ba1baa3400c73905e25fdfe9d504c3604d5a"/> @@ -13081,6 +13274,7 @@ but dumps still have to be confirmed. <description>College Football's National Championship (Prototype, 19940413)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_sram"/> <dataarea name="rom" width="16" endianness="big" size="2097152"> @@ -13095,6 +13289,7 @@ but dumps still have to be confirmed. <description>College Football's National Championship (Prototype, 19940418)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_sram"/> <dataarea name="rom" width="16" endianness="big" size="2097152"> @@ -13109,6 +13304,7 @@ but dumps still have to be confirmed. <description>College Football's National Championship (Prototype, 19940419)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_sram"/> <dataarea name="rom" width="16" endianness="big" size="2097152"> @@ -13123,6 +13319,7 @@ but dumps still have to be confirmed. <description>College Football's National Championship (Prototype, 19940429)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_sram"/> <dataarea name="rom" width="16" endianness="big" size="2097152"> @@ -13137,6 +13334,7 @@ but dumps still have to be confirmed. <description>College Football's National Championship (Prototype, 19940601)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_sram"/> <dataarea name="rom" width="16" endianness="big" size="2097152"> @@ -13151,6 +13349,7 @@ but dumps still have to be confirmed. <description>College Football's National Championship (Prototype, 19940603)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_sram"/> <dataarea name="rom" width="16" endianness="big" size="2097152"> @@ -13165,6 +13364,7 @@ but dumps still have to be confirmed. <description>College Football's National Championship (Prototype, 19940607)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_sram"/> <dataarea name="rom" width="16" endianness="big" size="2097152"> @@ -13179,6 +13379,7 @@ but dumps still have to be confirmed. <description>College Football's National Championship (Prototype, 19940608)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_sram"/> <dataarea name="rom" width="16" endianness="big" size="2097152"> @@ -13193,6 +13394,7 @@ but dumps still have to be confirmed. <description>College Football's National Championship (Prototype, 19940614)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_sram"/> <dataarea name="rom" width="16" endianness="big" size="2097152"> @@ -13207,6 +13409,7 @@ but dumps still have to be confirmed. <description>College Football's National Championship (Prototype, 19940615)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_sram"/> <dataarea name="rom" width="16" endianness="big" size="2097152"> @@ -13221,6 +13424,7 @@ but dumps still have to be confirmed. <description>College Football's National Championship (Prototype, 19940618)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_sram"/> <dataarea name="rom" width="16" endianness="big" size="2097152"> @@ -13235,6 +13439,7 @@ but dumps still have to be confirmed. <description>College Football's National Championship (Prototype, 19940620)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_sram"/> <dataarea name="rom" width="16" endianness="big" size="2097152"> @@ -13249,6 +13454,7 @@ but dumps still have to be confirmed. <description>College Football's National Championship (Prototype, 19940503)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_sram"/> <dataarea name="rom" width="16" endianness="big" size="2097152"> @@ -13263,6 +13469,7 @@ but dumps still have to be confirmed. <description>College Football's National Championship (Prototype, 19940506)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_sram"/> <dataarea name="rom" width="16" endianness="big" size="2097152"> @@ -13277,6 +13484,7 @@ but dumps still have to be confirmed. <description>College Football's National Championship (Prototype, 19940511-A)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_sram"/> <dataarea name="rom" width="16" endianness="big" size="2097152"> @@ -13291,6 +13499,7 @@ but dumps still have to be confirmed. <description>College Football's National Championship (Prototype, 19940517-A)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_sram"/> <dataarea name="rom" width="16" endianness="big" size="2097152"> @@ -13305,6 +13514,7 @@ but dumps still have to be confirmed. <description>College Football's National Championship (Prototype, 19940520)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_sram"/> <dataarea name="rom" width="16" endianness="big" size="2097152"> @@ -13319,6 +13529,7 @@ but dumps still have to be confirmed. <description>College Football's National Championship (Prototype, 19940525)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_sram"/> <dataarea name="rom" width="16" endianness="big" size="2097152"> @@ -13333,6 +13544,7 @@ but dumps still have to be confirmed. <description>College Football's National Championship (Prototype, 19940531)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_sram"/> <dataarea name="rom" width="16" endianness="big" size="2097152"> @@ -13347,7 +13559,6 @@ but dumps still have to be confirmed. <description>College Football's National Championship II (USA)</description> <year>1995</year> <publisher>Sega</publisher> - <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_sram"/> <!-- Dump To Be Confirmed --> @@ -13511,6 +13722,7 @@ but dumps still have to be confirmed. <description>Comix Zone (USA, Prototype, 19950602-B)</description> <year>1995</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="2097152"> <rom name="comix zone (prototype - jun 02, 1995 - b).bin" size="2097152" crc="b5f0dae5" sha1="1d8e133a0ce52e4586593beca095ed269f01473e"/> @@ -13522,6 +13734,7 @@ but dumps still have to be confirmed. <description>Comix Zone (USA, Prototype, 19950602)</description> <year>1995</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="2097152"> <rom name="comix zone (prototype - jun 02, 1995).bin" size="2097152" crc="1a4abcf3" sha1="fa1e69531857d4146497de4ae95957d096bceb20"/> @@ -13533,6 +13746,7 @@ but dumps still have to be confirmed. <description>Comix Zone (USA, Prototype, 19950603)</description> <year>1995</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="2097152"> <rom name="comix zone (prototype - jun 03, 1995).bin" size="2097152" crc="aff32614" sha1="9cfead71b55cfa48fa6fb66d2d7c6294776fe4ed"/> @@ -13544,6 +13758,7 @@ but dumps still have to be confirmed. <description>Comix Zone (Prototype, 19950526)</description> <year>1995</year> <publisher>Sega</publisher> + <!-- Compatibility not enforced --> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="2097152"> <rom name="comix zone (prototype - may 26, 1995).bin" size="2097152" crc="36029a1f" sha1="dbce6c71b1b1c193a57416dd4ccacc876a9e64af"/> @@ -13555,6 +13770,7 @@ but dumps still have to be confirmed. <description>Comix Zone (Prototype, 19950530)</description> <year>1995</year> <publisher>Sega</publisher> + <!-- Compatibility not enforced --> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="2097152"> <rom name="comix zone (prototype - may 30, 1995).bin" size="2097152" crc="a72eca2c" sha1="c751ec1ba09abda3ea3252a3e211383f054a507c"/> @@ -13566,6 +13782,7 @@ but dumps still have to be confirmed. <description>Comix Zone (Kor, Prototype, 19950609)</description> <year>1995</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U,NTSC-J"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="2097152"> <rom name="comix zone (kor) (prototype - jun 09, 1995).bin" size="2097152" crc="e45a15f4" sha1="2427e7e3932da731eb172ae22ad779c0abfced13"/> @@ -13577,6 +13794,7 @@ but dumps still have to be confirmed. <description>Comix Zone (Sega Channel, Prototype, 19950612)</description> <year>1995</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="2097152"> <rom name="comix zone (sega channel) (prototype - jun 12, 1995).bin" size="2097152" crc="c77db9e1" sha1="5da563561e3d74f5db672c8694891083db869999"/> @@ -13628,6 +13846,7 @@ but dumps still have to be confirmed. <info name="serial" value="T-70013"/> <info name="release" value="19940218"/> <info name="alt_title" value="クールスポット"/> + <!-- compatibility not enforced, works on PAL too --> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="1048576"> <rom name="cool spot (jpn, kor).bin" size="1048576" crc="e869efb1" sha1="e32826ca9ae5173d5ef9722b52bfcb4ad390a7bb"/> @@ -13639,6 +13858,7 @@ but dumps still have to be confirmed. <description>Cool Spot (USA, Prototype)</description> <year>1994</year> <publisher>Virgin Games</publisher> + <sharedfeat name="compatibility" value="NTSC-U,NTSC-J"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="1048576"> <rom name="cool spot (usa) (beta).bin" size="1048576" crc="0ebaa4a8" sha1="9b42bb33186ddc759a469ed3e0ee12e5dee0b809"/> @@ -13770,6 +13990,7 @@ but dumps still have to be confirmed. <description>Crystal's Pony Tale (USA, Prototype, 19940701)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="1048576"> <rom name="crystal's pony tale (prototype - jul 01, 1994).bin" size="1048576" crc="16ac2e4f" sha1="37e6369f0c5f8969003fd4ec1c291e06900c617a"/> @@ -13781,6 +14002,7 @@ but dumps still have to be confirmed. <description>Crystal's Pony Tale (USA, Prototype, 19940702)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="1048576"> <rom name="crystal's pony tale (prototype - jul 02, 1994).bin" size="1048576" crc="24bc4354" sha1="fa14565f90a254bbe8cff18e62f65e9ff1da1736"/> @@ -13792,6 +14014,7 @@ but dumps still have to be confirmed. <description>Crystal's Pony Tale (USA, Prototype, 19940703)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="1048576"> <rom name="crystal's pony tale (prototype - jul 03, 1994).bin" size="1048576" crc="6d67a87c" sha1="decec86674df91d1b9d29881745e279759470125"/> @@ -13803,6 +14026,7 @@ but dumps still have to be confirmed. <description>Crystal's Pony Tale (USA, Prototype, 19940712-B)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="1048576"> <rom name="crystal's pony tale (prototype - jul 12, 1994 - b).bin" size="1048576" crc="3577dc72" sha1="db225126e319380d89c0a5ab58d9f75d97419e6a"/> @@ -13814,6 +14038,7 @@ but dumps still have to be confirmed. <description>Crystal's Pony Tale (USA, Prototype, 19940712)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="1045844"> <rom name="crystal's pony tale (prototype - jul 12, 1994).bin" size="1045844" crc="2bfc0a53" sha1="9ac7eba7cb238602925ed2a23f870b81b413991e"/> @@ -13825,6 +14050,7 @@ but dumps still have to be confirmed. <description>Crystal's Pony Tale (USA, Prototype, 19940713)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="1048576"> <rom name="crystal's pony tale (prototype - jul 13, 1994).bin" size="1048576" crc="c67b6dba" sha1="58e56c2cbb94f81205c6f38656a0c75dcf27e267"/> @@ -13836,6 +14062,7 @@ but dumps still have to be confirmed. <description>Crystal's Pony Tale (USA, Prototype, 19940601)</description> <year>1994</year> <publisher>Sega</publisher> + <!-- Compatibility not enforced --> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="1048576"> <rom name="crystal's pony tale (prototype - jun 01, 1994).bin" size="1048576" crc="14c6347c" sha1="170db22a5bfc30afe19ece372ad0cceea1961cd7"/> @@ -13847,6 +14074,7 @@ but dumps still have to be confirmed. <description>Crystal's Pony Tale (USA, Prototype, 19940606)</description> <year>1994</year> <publisher>Sega</publisher> + <!-- Compatibility not enforced --> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="1048576"> <rom name="crystal's pony tale (prototype - jun 06, 1994).bin" size="1048576" crc="83e8cac9" sha1="2941ae87e22de10eadd0b7f75bf2e003396d4c99"/> @@ -13858,6 +14086,7 @@ but dumps still have to be confirmed. <description>Crystal's Pony Tale (USA, Prototype, 19940610)</description> <year>1994</year> <publisher>Sega</publisher> + <!-- Compatibility not enforced --> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="1048576"> <rom name="crystal's pony tale (prototype - jun 10, 1994).bin" size="1048576" crc="9e1dd267" sha1="cd0ebcdca3b8fdd763c8748bc2ebc91690bebd7f"/> @@ -13869,6 +14098,7 @@ but dumps still have to be confirmed. <description>Crystal's Pony Tale (USA, Prototype, 19940623)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="1048576"> <rom name="crystal's pony tale (prototype - jun 23, 1994).bin" size="1048576" crc="4ccc19af" sha1="2220bcb6baa349f5086c3a42ead63c7efeb49631"/> @@ -13880,6 +14110,7 @@ but dumps still have to be confirmed. <description>Crystal's Pony Tale (USA, Prototype, 19940628)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="1048576"> <rom name="crystal's pony tale (prototype - jun 28, 1994).bin" size="1048576" crc="03be7f66" sha1="ca3abcc3403c34fa7b2ea6ff56b1967267d96fce"/> @@ -13891,6 +14122,7 @@ but dumps still have to be confirmed. <description>Crystal's Pony Tale (USA, Prototype, 19940630)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="1048576"> <rom name="crystal's pony tale (prototype - jun 30, 1994).bin" size="1048576" crc="dd8c73fb" sha1="4db4a0b358a88f9c04f2f3c73d7b9ce1ac87a8da"/> @@ -13902,6 +14134,7 @@ but dumps still have to be confirmed. <description>Crystal's Pony Tale (USA, Prototype, 19940511)</description> <year>1994</year> <publisher>Sega</publisher> + <!-- Compatibility not enforced --> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="1048576"> <rom name="crystal's pony tale (prototype - may 11, 1994).bin" size="1048576" crc="eac9d74b" sha1="53cd0e287b54a49ddf1d6075fab4b3a7f1ddc396"/> @@ -13913,6 +14146,7 @@ but dumps still have to be confirmed. <description>Crystal's Pony Tale (USA, Prototype, 19940519)</description> <year>1994</year> <publisher>Sega</publisher> + <!-- Compatibility not enforced --> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="1048576"> <rom name="crystal's pony tale (prototype - may 19, 1994).bin" size="1048576" crc="dc50b741" sha1="b9c271296977e2b304a8a808cb2d5e9fb44467b1"/> @@ -13924,6 +14158,7 @@ but dumps still have to be confirmed. <description>Crystal's Pony Tale (USA, Prototype, 19940526)</description> <year>1994</year> <publisher>Sega</publisher> + <!-- Compatibility not enforced --> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="1048576"> <rom name="crystal's pony tale (prototype - may 26, 1994).bin" size="1048576" crc="a2eaba55" sha1="16278beee4d39ea9f70ce6225373b193881cb2b0"/> @@ -14244,6 +14479,7 @@ but dumps still have to be confirmed. <description>Daze Before Christmas (Oceania)</description> <year>1994</year> <publisher>Sunsoft</publisher> + <sharedfeat name="compatibility" value="PAL"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="2097152"> <rom name="daze before christmas (aus).bin" size="2097152" crc="b95e25c9" sha1="240c0d9487d7659a4b2999e0394d552ab17bee8a"/> @@ -14255,7 +14491,6 @@ but dumps still have to be confirmed. <description>Daze Before Christmas (Oceania, Prototype)</description> <year>1994</year> <publisher>Sunsoft</publisher> - <sharedfeat name="compatibility" value="PAL"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="2097152"> <rom name="daze before christmas (aus) (beta).bin" size="2097152" crc="317c9491" sha1="a63cdb54c31b1c1219467987a81e761ee92feee3"/> @@ -14292,6 +14527,7 @@ but dumps still have to be confirmed. <description>The Death and Return of Superman (USA)</description> <year>1995</year> <publisher>Sunsoft</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="2097152"> <rom name="death and return of superman, the (usa).bin" size="2097152" crc="982242d3" sha1="3534d17801bd5756b10a7f8d7d95f3a8d9b74844"/> @@ -14701,6 +14937,7 @@ but dumps still have to be confirmed. <description>Dr. Robotnik's Mean Bean Machine (USA, prototype)</description> <year>1993</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="1048576"> <rom name="dr. robotnik's mean bean machine (usa) (beta).bin" size="1048576" crc="4d0e5273" sha1="312f9a283bebc5d612a63afd2cf67eb923f4f074"/> @@ -14754,10 +14991,14 @@ but dumps still have to be confirmed. </part> </software> - <software name="dbz"> + <software name="dbz" supported="partial"> <description>Dragon Ball Z - Buyuu Retsuden (Jpn)</description> <year>1994</year> <publisher>Bandai</publisher> + <notes><![CDATA[ +Sports glitchy tile during attract (Android 18 vs. Freeza), doesn't seem to happen in-game +Choppy timings during gameplay (btanb?) +]]></notes> <info name="serial" value="T-133013"/> <info name="release" value="19940401"/> <info name="alt_title" value="ドラゴンボールZ武勇烈伝"/> @@ -14889,6 +15130,7 @@ but dumps still have to be confirmed. <description>Dune - The Battle for Arrakis (Euro, prototype 19940111)</description> <year>1993</year> <publisher>Virgin Interactive</publisher> + <sharedfeat name="compatibility" value="PAL"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="1048576"> <rom name="dune ii - the battle for arrakis (prototype 19940111).bin" size="1048576" crc="781cb285" sha1="d02cf6e07071cf3d47e867182bf42d67b9e30a3e"/> @@ -15165,6 +15407,7 @@ but dumps still have to be confirmed. <description>Ecco - The Tides of Time (USA, Prototype)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="2097152"> <rom name="ecco - the tides of time (beta).bin" size="2097152" crc="8db60749" sha1="3120625e8ff6b289ae6c398b8afe1ab5ff6396e3"/> @@ -15176,6 +15419,7 @@ but dumps still have to be confirmed. <description>Ecco - The Tides of Time (USA, Prototype, Alt)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="2097152"> <rom name="ecco - the tides of time (beta, alt).bin" size="2097152" crc="1d1470ea" sha1="364523cd30615ce4a94793ebbc189c0db6adc38f"/> @@ -15187,6 +15431,7 @@ but dumps still have to be confirmed. <description>Ecco - The Tides of Time (USA, Prototype, 19940429)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="2097152"> <rom name="ecco ii - the tides of time (prototype - apr 29, 1994).bin" size="2097152" crc="5af83ecb" sha1="3c653329c897e369198425e99e76ff53688d245b"/> @@ -15201,6 +15446,7 @@ but dumps still have to be confirmed. <info name="serial" value="G-4123"/> <info name="release" value="19940826"/> <info name="alt_title" value="エコー・ザ・ドルフィン2"/> + <sharedfeat name="compatibility" value="NTSC-J"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="2097152"> <rom name="mpr-16996.bin" size="2097152" crc="062d439c" sha1="0ca535d0e0d430c67e413ab904ef867516ce9fad"/> @@ -15212,6 +15458,7 @@ but dumps still have to be confirmed. <description>Ecco - The Tides of Time (USA, Prototype X11, 19940413)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="2097152"> <rom name="ecco - the tides of time (prototype x11 - apr 13, 1994).bin" size="2097152" crc="b5d64817" sha1="6cc1ea0b6c4be29ed7a02cd5e01f9504d272323e"/> @@ -15317,10 +15564,15 @@ but dumps still have to be confirmed. </part> </software> - <software name="elit95"> + <software name="elit95" cloneof="nhl95"> <description>Elitserien 95 (Swe)</description> <year>1994</year> <publisher>Electronic Arts</publisher> + <notes><![CDATA[ +https://segaretro.org/Elitserien_95 +]]></notes> + <info name="developer" value="Neurostone"/> + <sharedfeat name="compatibility" value="PAL"/> <part name="cart" interface="megadriv_cart"> <!-- Dump To Be Confirmed, info based on pics found in the web --> <feature name="slot" value="rom_sram"/> @@ -15338,10 +15590,14 @@ but dumps still have to be confirmed. </part> </software> - <software name="elit96"> + <software name="elit96" cloneof="nhl96"> <description>Elitserien 96 (Swe)</description> <year>1995</year> <publisher>Electronic Arts</publisher> + <notes><![CDATA[ +https://segaretro.org/Elitserien_96 +]]></notes> + <info name="developer" value="Neurostone"/> <sharedfeat name="compatibility" value="PAL"/> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_sram"/> @@ -15393,6 +15649,7 @@ but dumps still have to be confirmed. <description>Escape from Mars Starring Taz (Prototype, 19940418)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="2097152"> <rom name="taz in escape from mars (prototype - apr 18, 1994).bin" size="2097152" crc="bfa776ec" sha1="e35e8019b3a89319fd22dfee444741b955820afd"/> @@ -15404,6 +15661,7 @@ but dumps still have to be confirmed. <description>Escape from Mars Starring Taz (Prototype, 19940602)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="2097152"> <rom name="taz in escape from mars (prototype - jun 02, 1994).bin" size="2097152" crc="39f345c2" sha1="1ccdb04cea4a0dfc816e8fd9552f77d201504002"/> @@ -15415,6 +15673,7 @@ but dumps still have to be confirmed. <description>Escape from Mars Starring Taz (Prototype, 19940607)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="2097152"> <rom name="taz in escape from mars (prototype - jun 07, 1994).bin" size="2097152" crc="3481e709" sha1="5ecc3a4754507410830039e6b27d81b675727d43"/> @@ -15426,6 +15685,7 @@ but dumps still have to be confirmed. <description>Escape from Mars Starring Taz (Prototype, 19940610)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="2097152"> <rom name="taz in escape from mars (prototype - jun 10, 1994).bin" size="2097152" crc="832f4cb4" sha1="48199482c13bcf49461fd5459617e75497fadcf9"/> @@ -15437,6 +15697,7 @@ but dumps still have to be confirmed. <description>Escape from Mars Starring Taz (Prototype, 19940614)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="2097152"> <rom name="taz in escape from mars (prototype - jun 14, 1994).bin" size="2097152" crc="2badb65b" sha1="74b701be56a7a7ba286dcf354fbe646d0b9ce73a"/> @@ -15448,6 +15709,7 @@ but dumps still have to be confirmed. <description>Escape from Mars Starring Taz (Prototype, 19940618-A)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="2097152"> <rom name="taz in escape from mars (prototype - jun 18, 1994 - a).bin" size="2097152" crc="3c4b1e9c" sha1="b81fe7b3656f859f51f60bd7d368ffc62c8bb615"/> @@ -15459,6 +15721,7 @@ but dumps still have to be confirmed. <description>Escape from Mars Starring Taz (Prototype, 19940620)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="2097152"> <rom name="taz in escape from mars (prototype - jun 20, 1994).bin" size="2097152" crc="f00f4203" sha1="de7927962c29477b3bf0392f27e07b44daf185c9"/> @@ -15470,6 +15733,7 @@ but dumps still have to be confirmed. <description>Escape from Mars Starring Taz (Prototype, 19940309)</description> <year>1994</year> <publisher>Sega</publisher> + <!-- Compatibility not enforced --> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="1939766"> <rom name="taz in escape from mars (prototype - mar 09, 1994).bin" size="1939766" crc="e3c2271e" sha1="587e57673dfec493231f410677e7b380484bf7d2"/> @@ -15481,6 +15745,7 @@ but dumps still have to be confirmed. <description>Escape from Mars Starring Taz (Prototype, 19940509)</description> <year>1994</year> <publisher>Sega</publisher> + <!-- Compatibility not enforced --> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="2097152"> <rom name="taz in escape from mars (prototype - may 09, 1994).bin" size="2097152" crc="11727086" sha1="a2d00ac89176dc61d4f736a8c65bd7153c184293"/> @@ -15492,6 +15757,7 @@ but dumps still have to be confirmed. <description>Escape from Mars Starring Taz (Prototype, 19940518)</description> <year>1994</year> <publisher>Sega</publisher> + <!-- Compatibility not enforced --> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="759172"> <rom name="taz in escape from mars (prototype - may 18, 1994).bin" size="759172" crc="6e2666de" sha1="c046885fbf4d654b636c0c1ea9fd65acc3b18da3"/> @@ -15503,6 +15769,7 @@ but dumps still have to be confirmed. <description>Escape from Mars Starring Taz (Prototype, 19940523)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="2097152"> <rom name="taz in escape from mars (prototype - may 23, 1994).bin" size="2097152" crc="ea344fd2" sha1="92a7563beb8e4957251d7fff29354f0dc6aa0394"/> @@ -15540,6 +15807,7 @@ but dumps still have to be confirmed. <description>ESPN National Hockey Night (USA, Prototype)</description> <year>1994</year> <publisher>Sony Imagesoft</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_sram"/> <dataarea name="rom" width="16" endianness="big" size="2097152"> @@ -15598,6 +15866,7 @@ but dumps still have to be confirmed. <description>Eternal Champions (Euro, Prototype)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="PAL"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="3145728"> <rom name="eternal champions (euro) (beta).bin" size="3145728" crc="e0665f06" sha1="c06f2d9ff29b6e6ec2dbec06eab2eac21e80e423"/> @@ -15728,6 +15997,7 @@ but dumps still have to be confirmed. <description>Exo Squad (USA, Prototype)</description> <year>1995</year> <publisher>Playmates Interactive</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="1048576"> <rom name="exo squad (usa) (beta).bin" size="1048576" crc="70edf964" sha1="d165e0057a5d290ae02ff6cae9f99c2ebc8a3f7c"/> @@ -15786,6 +16056,7 @@ but dumps still have to be confirmed. <description>F-15 Strike Eagle II (USA, Prototype, Alt)</description> <year>1993</year> <publisher>Microprose</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="2097152"> <rom name="f-15strikeeagleii.0f82.bin" size="2097152" crc="dc5f07ba" sha1="6900219ec9057ce2ef5bd1304c2c26aa678a1daa"/> @@ -16019,6 +16290,9 @@ but dumps still have to be confirmed. <description>The Killing Game Show (Jpn)</description> <year>1993</year> <publisher>Electronic Arts Victor</publisher> + <notes><![CDATA[ +Crashes after EA logo, requires better [VDP] irq handling +]]></notes> <info name="serial" value="EM20021"/> <info name="release" value="19930820"/> <info name="alt_title" value="キリング・ゲーム・ショー"/> @@ -16030,9 +16304,12 @@ but dumps still have to be confirmed. </software> <software name="fengkuan"> - <description>Feng Kuang Tao Hua Yuan (Chi)</description> + <description>Feng Kuang Tao Hua Yuan (Tw)</description> <year>199?</year> - <publisher>Creaton</publisher> + <publisher>Creaton Softech</publisher> + <notes><![CDATA[ +https://segaretro.org/Feng_Kuang_Tao_Hua_Yuan +]]></notes> <info name="alt_title" value="瘋狂桃花源"/> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_mjlov"/> @@ -16043,9 +16320,9 @@ but dumps still have to be confirmed. </software> <software name="fengkuan1" cloneof="fengkuan"> - <description>Feng Kuang Tao Hua Yuan (Chi, Unprotected)</description> + <description>Feng Kuang Tao Hua Yuan (Tw, Unprotected)</description> <year>199?</year> - <publisher>Creaton</publisher> + <publisher>Creaton Softech</publisher> <info name="alt_title" value="瘋狂桃花源"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="1048576"> @@ -16055,19 +16332,28 @@ but dumps still have to be confirmed. </software> <software name="fengshen"> - <description>Feng Shen Ying Jie Chuan (Chi)</description> + <!-- Blanked header --> + <description>Fēngshén Yīngjié Chuán (Tw)</description> <year>1996</year> <publisher>Chuanpu Technologies</publisher> + <notes><![CDATA[ +https://segaretro.org/Feng_Shen_Ying_Jie_Chuan +]]></notes> <info name="alt_title" value="封神英傑傳"/> <part name="cart" interface="megadriv_cart"> + <feature name="slot" value="rom_sram"/> <dataarea name="rom" width="16" endianness="big" size="2097152"> <rom name="feng shen ying jie chuan (chi) (unl).bin" size="2097152" crc="6a382b60" sha1="7a6e06846a94df2df2417d6509e398c29354dc68"/> </dataarea> + <dataarea name="sram" size="16384"> + </dataarea> </part> </software> <software name="fengshena" cloneof="fengshen"> - <description>Feng Shen Ying Jie Zhuan (Chi, Alt?)</description> + <!-- Hacked according to NoIntro to have SRAM declared in header --> + <!-- Has "By Ken Xie" at $130 --> + <description>Fēngshén Yīngjié Chuán (Tw, Alt?)</description> <year>1996</year> <publisher>Chuanpu Technologies</publisher> <info name="alt_title" value="封神英傑傳"/> @@ -16333,6 +16619,7 @@ but dumps still have to be confirmed. <description>Flashback - The Quest for Identity (USA, Alt)</description> <year>1993</year> <publisher>U.S. Gold</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="1572864"> <rom name="flashback - the quest for identity (usa) (alt).bin" size="1572864" crc="33cd2b65" sha1="225b405274d39541e07488fdd33de8f854624bf1"/> @@ -16439,10 +16726,13 @@ but dumps still have to be confirmed. </part> </software> - <software name="bighurt"> + <software name="bighurt" supported="no"> <description>Frank Thomas Big Hurt Baseball (Euro, USA)</description> <year>1995</year> <publisher>Acclaim Entertainment</publisher> + <notes><![CDATA[ +[EEPROM] Blue stripes at boot +]]></notes> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_cslam"/> <dataarea name="rom" width="16" endianness="big" size="4194304"> @@ -16612,6 +16902,7 @@ but dumps still have to be confirmed. <description>Gauntlet IV (Euro, USA, 199309)</description> <year>1993</year> <publisher>Tengen</publisher> + <sharedfeat name="compatibility" value="NTSC-U,PAL"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="1048576"> <rom name="gauntlet iv (euro, usa) (september 1993).bin" size="1048576" crc="f9d60510" sha1="d28e22207121f0e2980dd409b4fb24f9fb8967ae"/> @@ -16623,6 +16914,7 @@ but dumps still have to be confirmed. <description>Gauntlet IV (Euro, USA, 199308)</description> <year>1993</year> <publisher>Tengen</publisher> + <sharedfeat name="compatibility" value="NTSC-U,PAL"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="1048576"> <rom name="gauntlet iv (euro, usa) (august 1993).bin" size="1048576" crc="3bf46dce" sha1="26c26ee2bb9571d51537d9328a5fd2a91b4e9dc1"/> @@ -16634,6 +16926,7 @@ but dumps still have to be confirmed. <description>Gauntlet (Jpn)</description> <year>1993</year> <publisher>Tengen</publisher> + <!-- Compatibility not enforced --> <info name="serial" value="T-48123"/> <info name="release" value="19930917"/> <info name="alt_title" value="ガントレット"/> @@ -16820,6 +17113,10 @@ but dumps still have to be confirmed. <description>Go Net (Jpn)</description> <year>1992</year> <publisher>Sega</publisher> + <notes><![CDATA[ +https://segaretro.org/Go_Net +Unemulated [Sega Mega Modem] features +]]></notes> <info name="serial" value="G-4533"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="1048576"> @@ -16859,6 +17156,7 @@ but dumps still have to be confirmed. <description>Gods (USA, Prototype)</description> <year>1992</year> <publisher>Mindscape</publisher> + <sharedfeat name="compatibility" value="NTSC-U,PAL"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="1048576"> <rom name="gods (usa) (beta).bin" size="1048576" crc="2c06bb64" sha1="dd9c03eaf3160303775ca1bca048101614507203"/> @@ -17305,6 +17603,7 @@ but dumps still have to be confirmed. <description>Home Alone 2 - Lost in New York (USA, Prototype 19930929)</description> <year>1993</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="524288"> <rom name="home alone 2 - lost in new york (sep 29, 1993 build).bin" size="522726" crc="c2f37ae2" sha1="6a9f892b2425f4dd53bac7d43a05e2d91ebdf396"/> @@ -17398,6 +17697,7 @@ but dumps still have to be confirmed. <description>Hyper Dunk - The Playoff Edition (Jpn)</description> <year>1994</year> <publisher>Konami</publisher> + <!-- Compatibility not enforced --> <info name="serial" value="T-95083"/> <info name="release" value="19940304"/> <info name="alt_title" value="ハイパーダンク ザ プレイオフ エディション"/> @@ -17412,6 +17712,7 @@ but dumps still have to be confirmed. <description>Hyper Dunk - The Playoff Edition (Jpn, Prototype)</description> <year>1994</year> <publisher>Konami</publisher> + <!-- Compatibility not enforced --> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="2097152"> <rom name="hyper dunk - the playoff edition (jpn) (beta).bin" size="2097152" crc="db124bbb" sha1="87a2d58614fab2799e2a4456a08436fc7acc745b"/> @@ -17519,6 +17820,7 @@ but dumps still have to be confirmed. <description>Instruments of Chaos Starring Young Indiana Jones (Prototype)</description> <year>1994</year> <publisher>Sega</publisher> + <!-- Compatibility not enforced --> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="1572864"> <rom name="instruments of chaos starring young indiana jones (usa) (beta).bin" size="1572864" crc="ad6c2050" sha1="63f5ac7dddb166fba76d74c58daf320568d6b016"/> @@ -17530,6 +17832,7 @@ but dumps still have to be confirmed. <description>Instruments of Chaos Starring Young Indiana Jones (Prototype, 19941229)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="1048576"> <rom name="instruments of chaos starring young indiana jones (prototype - dec 29, 1994).bin" size="1048576" crc="94b02351" sha1="10ce37b58d423fdab76e0c53a3b2d379ae9f1221"/> @@ -17541,6 +17844,7 @@ but dumps still have to be confirmed. <description>Instruments of Chaos Starring Young Indiana Jones (Prototype, 19941228-A)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="1046332"> <rom name="instruments of chaos starring young indiana jones (prototype - dec 28, 1994 - a).bin" size="1046332" crc="f285ad46" sha1="4f0ef01ada3090d6a4004ec6d46dea5c20e34e1a"/> @@ -17552,6 +17856,7 @@ but dumps still have to be confirmed. <description>Instruments of Chaos Starring Young Indiana Jones (Prototype, 19940101)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="1048576"> <rom name="instruments of chaos starring young indiana jones (prototype - jan 01, 1994).bin" size="1048576" crc="263f1a4c" sha1="99cb157adb1b6295ab04955efdc8868ba5ac4d9f"/> @@ -17563,6 +17868,7 @@ but dumps still have to be confirmed. <description>Instruments of Chaos Starring Young Indiana Jones (Prototype, 19940103)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="1048576"> <rom name="instruments of chaos starring young indiana jones (prototype - jan 03, 1994).bin" size="1048576" crc="3c46d83d" sha1="e4afc2d09815495e7d15111a1698e8f324e5873d"/> @@ -17574,6 +17880,7 @@ but dumps still have to be confirmed. <description>Instruments of Chaos Starring Young Indiana Jones (Prototype, 19940126)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="1048576"> <rom name="instruments of chaos starring young indiana jones (prototype - jan 26, 1994).bin" size="1048576" crc="f3498542" sha1="e3dc69f339f6ec6e766578edee4cc05f429a689a"/> @@ -17585,6 +17892,7 @@ but dumps still have to be confirmed. <description>Instruments of Chaos Starring Young Indiana Jones (Prototype, 19940127)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="1048576"> <rom name="instruments of chaos starring young indiana jones (prototype - jan 27, 1994).bin" size="1048576" crc="f43112c3" sha1="2174482b62d11a73fd5edff55d111f9bcac53d97"/> @@ -17596,6 +17904,7 @@ but dumps still have to be confirmed. <description>Instruments of Chaos Starring Young Indiana Jones (Prototype, 19940923-A)</description> <year>1994</year> <publisher>Sega</publisher> + <!-- Compatibility not enforced --> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="1041348"> <rom name="instruments of chaos starring young indiana jones (prototype - sep 23, 1994 - a).bin" size="1041348" crc="14443a29" sha1="ed02300b73f66b6ca41c282a5b9ab55c30b4c7c8"/> @@ -17607,6 +17916,7 @@ but dumps still have to be confirmed. <description>Instruments of Chaos Starring Young Indiana Jones (Prototype, 19931228)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="1048576"> <rom name="instruments of chaos starring young indiana jones (prototype - dec 28, 1993).bin" size="1048576" crc="51ca641c" sha1="e6b8d13344f37aff131edea4f3f3b20100f63e72"/> @@ -17654,7 +17964,8 @@ but dumps still have to be confirmed. <info name="serial" value="G-5526"/> <info name="release" value="19930618"/> <info name="alt_title" value="Jリーグ・オフィシャルTVゲームプロストライカー ~ J.League Pro Striker (Box)"/> - <sharedfeat name="compatibility" value="NTSC-J"/> + <!-- black screen on genesis only, explicitly skips region check if PAL region is detected (South Asia?) --> + <sharedfeat name="compatibility" value="NTSC-J,PAL"/> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_sram"/> <dataarea name="rom" width="16" endianness="big" size="1048576"> @@ -17809,10 +18120,13 @@ but dumps still have to be confirmed. </part> </software> - <software name="janout"> + <software name="janout" supported="partial"> <description>Janou Touryuumon (Jpn)</description> <year>1993</year> <publisher>Sega</publisher> + <notes><![CDATA[ +Unsupported [Sega Mouse] peripheral +]]></notes> <info name="serial" value="G-4096"/> <info name="release" value="19931105"/> <info name="alt_title" value="日本プロ麻雀連盟公認 雀皇登龍門"/> @@ -18070,6 +18384,7 @@ but dumps still have to be confirmed. <description>Disney's The Jungle Book (prototype)</description> <year>1994</year> <publisher>Virgin Interactive</publisher> + <!-- Compatibility not enforced --> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="1048576"> <rom name="the jungle book (wces 1994 prototype).bin" size="1048576" crc="20b97d87" sha1="df79f4d61d1de7f9a3ed056f98a94dcad2ae8e18"/> @@ -18106,6 +18421,7 @@ but dumps still have to be confirmed. <description>Jurassic Park (Euro, Prototype 19930614)</description> <year>1993</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="PAL"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="2097152"> <rom name="jurassic park (jun 14, 1993 prototype).bin" size="2097152" crc="64b8beb5" sha1="98bf950f2542c7aa22687ecef1d4ea25498c7a4b" /> @@ -18117,6 +18433,7 @@ but dumps still have to be confirmed. <description>Jurassic Park (USA, Prototype)</description> <year>1993</year> <publisher>Sega</publisher> + <!-- Compatibility not enforced --> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="2097152"> <rom name="jurassic park (usa) (beta).bin" size="2097152" crc="cf890eed" sha1="ac2097b5f2a30787d7ca1ed8ab4eac7f4be77f0f"/> @@ -18128,6 +18445,7 @@ but dumps still have to be confirmed. <description>Jurassic Park (USA, Prototype 19930526)</description> <year>1993</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="1978944"> <rom name="jurassic park (may 26, 1993 build).bin" size="1978944" crc="b44968e7" sha1="f71745f8a98d96b0fd504728973774406aeebe4e" /> @@ -18139,6 +18457,7 @@ but dumps still have to be confirmed. <description>Jurassic Park - Rampage Edition (Prototype, 19940708)</description> <year>1994</year> <publisher>Sega</publisher> + <!-- Compatibility not enforced --> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="2097152"> <rom name="jurassic park - rampage edition (prototype - jul 08, 1994).bin" size="2097152" crc="f4c78bd0" sha1="7dca5ec1440222ce38f085663d0ab6539693feaa"/> @@ -18150,6 +18469,7 @@ but dumps still have to be confirmed. <description>Jurassic Park - Rampage Edition (Prototype, 19940713)</description> <year>1994</year> <publisher>Sega</publisher> + <!-- Compatibility not enforced --> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="2097152"> <rom name="jurassic park - rampage edition (prototype - jul 13, 1994).bin" size="2097152" crc="8475a105" sha1="b840cc1b00bf2f7e75320c1395da3dceaa637071"/> @@ -18161,6 +18481,7 @@ but dumps still have to be confirmed. <description>Jurassic Park - Rampage Edition (Prototype, 19940714)</description> <year>1994</year> <publisher>Sega</publisher> + <!-- Compatibility not enforced --> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="2097152"> <rom name="jurassic park - rampage edition (prototype - jul 14, 1994).bin" size="2097152" crc="9bf0e28d" sha1="534eea52e7c6d8d0fc0a93480c89f89568196d36"/> @@ -18172,6 +18493,7 @@ but dumps still have to be confirmed. <description>Jurassic Park - Rampage Edition (Prototype, 19940715)</description> <year>1994</year> <publisher>Sega</publisher> + <!-- Compatibility not enforced --> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="2097152"> <rom name="jurassic park - rampage edition (prototype - jul 15, 1994).bin" size="2097152" crc="d2202be5" sha1="b10fae841b410525ac83e729983f3e0cda2e7365"/> @@ -18183,6 +18505,7 @@ but dumps still have to be confirmed. <description>Jurassic Park - Rampage Edition (Prototype, 19940717)</description> <year>1994</year> <publisher>Sega</publisher> + <!-- Compatibility not enforced --> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="2097152"> <rom name="jurassic park - rampage edition (prototype - jul 17, 1994).bin" size="2097152" crc="2eae6140" sha1="2d817ad10e9b6b93b6eee23a76f788a73827bbc5"/> @@ -18194,6 +18517,7 @@ but dumps still have to be confirmed. <description>Jurassic Park - Rampage Edition (Prototype, 19940718)</description> <year>1994</year> <publisher>Sega</publisher> + <!-- Compatibility not enforced --> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="2097152"> <rom name="jurassic park - rampage edition (prototype - jul 18, 1994).bin" size="2097152" crc="1a62b826" sha1="cbb44d5d5da1263a4524c747be9afd0aa8547a63"/> @@ -18205,6 +18529,10 @@ but dumps still have to be confirmed. <description>Jurassic Park - Rampage Edition (Prototype, 19940620)</description> <year>1994</year> <publisher>Sega</publisher> + <notes><![CDATA[ +Black screen +]]></notes> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="2059872"> <rom name="jurassic park - rampage edition (prototype - jun 20, 1994).bin" size="2059872" crc="1280fa5c" sha1="f8f52d23dcd36e8167ec273cf9978ae44f21658b"/> @@ -18216,6 +18544,10 @@ but dumps still have to be confirmed. <description>Jurassic Park - Rampage Edition (Prototype, 19940622)</description> <year>1994</year> <publisher>Sega</publisher> + <notes><![CDATA[ +Black screen +]]></notes> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="2097152"> <rom name="jurassic park - rampage edition (prototype - jun 22, 1994).bin" size="2097152" crc="53582f2b" sha1="6607cdeb4a5ddb229201f1417d3e693063094a7d"/> @@ -18227,6 +18559,7 @@ but dumps still have to be confirmed. <description>Jurassic Park - Rampage Edition (Prototype, 19940630)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="2097152"> <rom name="jurassic park - rampage edition (prototype - jun 30, 1994).bin" size="2097152" crc="bff4b396" sha1="f1f763e087065483ed7ff53f95b99bac16bb8484"/> @@ -18556,6 +18889,7 @@ but dumps still have to be confirmed. <description>Landstalker - The Treasures of King Nole (USA, Prototype 19930713)</description> <year>1993</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_sram"/> <dataarea name="rom" width="16" endianness="big" size="2097152"> @@ -18682,10 +19016,13 @@ but dumps still have to be confirmed. </part> </software> - <software name="lemming2u" cloneof="lemming2"> + <software name="lemming2u" cloneof="lemming2" supported="partial"> <description>Lemmings 2 - The Tribes (USA)</description> <year>1994</year> <publisher>Psygnosis</publisher> + <notes><![CDATA[ +Unsupported [Sega Mouse] peripheral +]]></notes> <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="2097152"> @@ -18694,10 +19031,13 @@ but dumps still have to be confirmed. </part> </software> - <software name="lethalen"> + <software name="lethalen" supported="partial"> <description>Lethal Enforcers (Euro)</description> <year>1993</year> <publisher>Konami</publisher> + <notes><![CDATA[ +Unsupported [Justifier] peripheral (joypad works) +]]></notes> <sharedfeat name="compatibility" value="PAL"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="2097152"> @@ -18706,10 +19046,13 @@ but dumps still have to be confirmed. </part> </software> - <software name="lethalenj" cloneof="lethalen"> + <software name="lethalenj" cloneof="lethalen" supported="partial"> <description>Lethal Enforcers (Jpn)</description> <year>1993</year> <publisher>Konami</publisher> + <notes><![CDATA[ +Unsupported [Justifier] peripheral (joypad works) +]]></notes> <info name="serial" value="T-95073"/> <info name="release" value="19931210"/> <info name="alt_title" value="リーサルエンフォーサーズ"/> @@ -18721,10 +19064,13 @@ but dumps still have to be confirmed. </part> </software> - <software name="lethalenup" cloneof="lethalen"> + <software name="lethalenup" cloneof="lethalen" supported="partial"> <description>Lethal Enforcers (USA, Prototype)</description> <year>1993</year> <publisher>Konami</publisher> + <notes><![CDATA[ +Unsupported [Justifier] peripheral (joypad works) +]]></notes> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="2097152"> <rom name="lethalenforcers00.eadd.bin" size="2097152" crc="f4010503" sha1="01a445cf8ed57db1be4bd2aef1107d9e2fbcdb77"/> @@ -18732,10 +19078,13 @@ but dumps still have to be confirmed. </part> </software> - <software name="le2"> + <software name="le2" supported="partial"> <description>Lethal Enforcers II - Gun Fighters (Euro)</description> <year>1994</year> <publisher>Konami</publisher> + <notes><![CDATA[ +Unsupported [Justifier] peripheral (joypad works) +]]></notes> <sharedfeat name="compatibility" value="PAL"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="2097152"> @@ -18744,10 +19093,13 @@ but dumps still have to be confirmed. </part> </software> - <software name="le2u" cloneof="le2"> + <software name="le2u" cloneof="le2" supported="partial"> <description>Lethal Enforcers II - Gun Fighters (USA)</description> <year>1994</year> <publisher>Konami</publisher> + <notes><![CDATA[ +Unsupported [Justifier] peripheral (joypad works) +]]></notes> <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="2097152"> @@ -18881,13 +19233,17 @@ but dumps still have to be confirmed. </part> </software> - <software name="lordmon"> + <software name="lordmon" supported="partial"> <description>Lord Monarch - Tokoton Sentou Densetsu (Jpn)</description> <year>1994</year> <publisher>Sega</publisher> + <notes><![CDATA[ +Unsupported [Sega Mouse] peripheral +]]></notes> <info name="serial" value="G-5534"/> <info name="release" value="19940624"/> <info name="alt_title" value="ロードモナーク とことん戦闘伝説"/> + <sharedfeat name="compatibility" value="NTSC-J,PAL"/> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_sram"/> <dataarea name="rom" width="16" endianness="big" size="2097152"> @@ -18963,9 +19319,12 @@ but dumps still have to be confirmed. </software> <software name="maqiao"> - <description>Ma Qiao E Mo Ta - Devilish Mahjong Tower (Chi)</description> + <description>Ma Qiao E Mo Ta - Devilish Mahjong Tower (Tw)</description> <year>1994</year> <publisher>C&E</publisher> + <notes><![CDATA[ +https://segaretro.org/Ma_Qiao_E_Mo_Ta:_Devilish_Mahjong_Tower +]]></notes> <info name="alt_title" value="麻雀惡魔塔"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="1048576"> @@ -19107,6 +19466,7 @@ but dumps still have to be confirmed. <description>The Magic School Bus (Prototype, 19950202)</description> <year>1995</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="1048576"> <rom name="magic school bus, the (prototype - feb 02, 1995).bin" size="1048576" crc="7805b5c9" sha1="06bd39d487f63fe4bebdd651247223767540e00a"/> @@ -19129,6 +19489,7 @@ but dumps still have to be confirmed. <description>The Magic School Bus (Prototype, 19950112)</description> <year>1995</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="963300"> <rom name="magic school bus, the (prototype - jan 12, 1995).bin" size="963300" crc="946346f9" sha1="1351b74d8bdbdeb7e1d042c35e2d770bd925beb3"/> @@ -19259,10 +19620,13 @@ but dumps still have to be confirmed. </part> </software> - <software name="marblej"> + <software name="marblej" supported="partial"> <description>Marble Madness (Japan)</description> <year>1993</year> <publisher>Tengen</publisher> + <notes><![CDATA[ +Unsupported [Sega Mouse] peripheral (trackball) +]]></notes> <info name="serial" value="T-48113"/> <info name="release" value="19930813"/> <info name="alt_title" value="マーブル マッドネス"/> @@ -19555,10 +19919,13 @@ but dumps still have to be confirmed. </part> </software> - <software name="rockman1" cloneof="megaman"> + <software name="rockman1" cloneof="megaman" supported="no"> <description>Rockman Mega World (Jpn, Alt)</description> <year>1994</year> <publisher>Capcom</publisher> + <notes><![CDATA[ +Black screen +]]></notes> <info name="serial" value="T-12053"/> <info name="release" value="19941021"/> <info name="alt_title" value="ロックマン メガワールド"/> @@ -19616,6 +19983,7 @@ but dumps still have to be confirmed. <description>Mega Lo Mania (Euro, v1.1)</description> <year>1992</year> <publisher>Virgin Games</publisher> + <!-- Header reports Dec. 1992 --> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="1048576"> <rom name="mega-lo-mania (euro) (v1.1).bin" size="1048576" crc="ab9fed30" sha1="3794cb708b1f54675eb6fb272cfee01e6dbcecc1"/> @@ -19627,6 +19995,7 @@ but dumps still have to be confirmed. <description>Mega Lo Mania (Jpn)</description> <year>1993</year> <publisher>CRI</publisher> + <!-- Header reports Feb. 1993 --> <info name="serial" value="T-68053"/> <info name="release" value="19930423"/> <info name="alt_title" value="メガロマニア"/> @@ -19649,12 +20018,19 @@ but dumps still have to be confirmed. </part> </software> - <software name="menghu"> - <description>Meng Huan Shui Guo Pan - 777 Casino (Chi)</description> - <year>199?</year> + <software name="menghu" supported="no"> + <description>Meng Huan Shui Guo Pan - 777 Casino (Tw)</description> + <!-- Definitely not earlier than '94 --> + <year>1996?</year> <publisher>City Man</publisher> + <notes><![CDATA[ +https://bootleggames.fandom.com/wiki/777_Casino +Crashes when you talk with the cashier twice +Needs [megadriv_z80_z80_bank_w] workaround to work (emulator copy protection?) +]]></notes> <info name="serial" value="GM-95002"/> <info name="alt_title" value="夢幻水果盤"/> + <info name="developer" value="Gamtec"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="1048576"> <rom name="meng huan shui guo pan - 777 casino (chi) (unl).bin" size="1048576" crc="42dc03e4" sha1="df20a28d03a2cd481af134ef7602062636c3cc79"/> @@ -19924,6 +20300,7 @@ but dumps still have to be confirmed. <description>Mighty Morphin Power Rangers (USA, Prototype, 19940804)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="2097152"> <rom name="mighty morphin power rangers (prototype - aug 04, 1994).bin" size="2097152" crc="f3ae5aaf" sha1="c15f23e20aee4d0664897e6cd29b77bd39228fc7"/> @@ -19935,6 +20312,7 @@ but dumps still have to be confirmed. <description>Mighty Morphin Power Rangers (USA, Prototype, 19940808)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="2097152"> <rom name="mighty morphin power rangers (prototype - aug 08, 1994).bin" size="2097152" crc="57644549" sha1="e1651f13dd1bcedad0acc7d2c21298f9662ccf55"/> @@ -19946,6 +20324,7 @@ but dumps still have to be confirmed. <description>Mighty Morphin Power Rangers (Prototype, 19940809)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="2097152"> <rom name="mighty morphin power rangers (prototype - aug 09, 1994).bin" size="2097152" crc="4356fe0a" sha1="a91cf34ae5178696e66a71770872b3720265d61c"/> @@ -19957,6 +20336,7 @@ but dumps still have to be confirmed. <description>Mighty Morphin Power Rangers (Prototype, 19940810)</description> <year>1994</year> <publisher>Sega</publisher> + <!-- Compatibility not enforced --> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="2097152"> <rom name="mighty morphin power rangers (prototype - aug 10, 1994).bin" size="2097152" crc="e79cd214" sha1="c5e82c5786b52675d376872b3b985927d08feed2"/> @@ -20013,6 +20393,7 @@ but dumps still have to be confirmed. <description>Mighty Morphin Power Rangers - The Movie (USA, Prototype, 19950717)</description> <year>1995</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="2097152"> <rom name="mighty morphin power rangers - the movie (prototype - jul 17, 1995).bin" size="2097152" crc="579de657" sha1="480cdadf79d884319daf0d23a062555e816187ff"/> @@ -20024,6 +20405,7 @@ but dumps still have to be confirmed. <description>Mighty Morphin Power Rangers - The Movie (USA, Prototype, 19950722)</description> <year>1995</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="2097152"> <rom name="mighty morphin power rangers - the movie (prototype - jul 22, 1995).bin" size="2097152" crc="c2ca3a8b" sha1="a10a3ca13c57030b411752231da7be2c1a6e81e6"/> @@ -20035,6 +20417,7 @@ but dumps still have to be confirmed. <description>Mighty Morphin Power Rangers - The Movie (USA, Prototype, 19950724)</description> <year>1995</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="2097152"> <rom name="mighty morphin power rangers - the movie (prototype - jul 24, 1995).bin" size="2097152" crc="3429fa3a" sha1="7a567082b0314d3e8d677d07b8bccaf307c8c9c2"/> @@ -20511,6 +20894,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <year>1994</year> <publisher>Sega</publisher> <info name="alt_title" value="NBA Action '94 (Box)"/> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_sram"/> <dataarea name="rom" width="16" endianness="big" size="2097152"> @@ -20525,6 +20909,9 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>NBA Action (Prototype, 19940104)</description> <year>1994</year> <publisher>Sega</publisher> + <notes><![CDATA[ +Crashes after team selection +]]></notes> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="2097152"> <rom name="nba action (prototype - jan 04, 1994).bin" size="2097152" crc="2491df2f" sha1="af63f96417a189f5061f81ba0354d4e38b0b7d76"/> @@ -20536,6 +20923,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>NBA Action (Prototype, 19940116)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_sram"/> <dataarea name="rom" width="16" endianness="big" size="2097152"> @@ -20550,6 +20938,10 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>NBA Action (Prototype, 19940127, Broken - C08 missing)</description> <year>1994</year> <publisher>Sega</publisher> + <notes><![CDATA[ +Black screen +]]></notes> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_sram"/> <dataarea name="rom" width="16" endianness="big" size="2097152"> @@ -20564,6 +20956,9 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>NBA Action '95 (Prototype, 19941202-B)</description> <year>1994</year> <publisher>Sega</publisher> + <notes><![CDATA[ +Crashes after disclaimer +]]></notes> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_sram"/> <dataarea name="rom" width="16" endianness="big" size="2097152"> @@ -20578,6 +20973,9 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>NBA Action '95 (Prototype, 19941209)</description> <year>1994</year> <publisher>Sega</publisher> + <notes><![CDATA[ +Only Celtics vs. Lakers exibition match available (btanb) +]]></notes> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_sram"/> <dataarea name="rom" width="16" endianness="big" size="2097152"> @@ -20592,6 +20990,9 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>NBA Action '95 (Prototype, 19941215)</description> <year>1994</year> <publisher>Sega</publisher> + <notes><![CDATA[ +Black screen +]]></notes> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_sram"/> <dataarea name="rom" width="16" endianness="big" size="2097152"> @@ -20686,7 +21087,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i </part> </software> - <!-- // is the date correct?!? --> + <!-- is the date correct? --> <software name="nbaact95p02" cloneof="nbaact95"> <description>NBA Action '95 (Prototype, 19950201)</description> <year>1995</year> @@ -20719,11 +21120,15 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>NBA Action '95 (Prototype, 19950103)</description> <year>1995</year> <publisher>Sega</publisher> + <notes><![CDATA[ +Black screen, crashes at ROM+SRAM check PC=0x1df064 +]]></notes> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_sram"/> <dataarea name="rom" width="16" endianness="big" size="2097152"> <rom name="nba action '95 (prototype - jan 03, 1995).bin" size="2097152" crc="374af160" sha1="b50be710436a3cb1f7644fdfac5d5098cd9dbb2b"/> </dataarea> + <!-- TODO: smaller than other sets? --> <dataarea name="sram" size="16384"> </dataarea> </part> @@ -20733,11 +21138,15 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>NBA Action '95 (Prototype, 19950108)</description> <year>1995</year> <publisher>Sega</publisher> + <notes><![CDATA[ +Black screen, crashes at ROM+SRAM check PC=0x1df7be +]]></notes> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_sram"/> <dataarea name="rom" width="16" endianness="big" size="2097152"> <rom name="nba action '95 (prototype - jan 08, 1995).bin" size="2097152" crc="0a6b7b9e" sha1="3a60332ee684ff8accd96aef404346e66e267b6f"/> </dataarea> + <!-- TODO: smaller than other sets? --> <dataarea name="sram" size="16384"> </dataarea> </part> @@ -20747,11 +21156,15 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>NBA Action '95 (Prototype, 19950112)</description> <year>1995</year> <publisher>Sega</publisher> + <notes><![CDATA[ +Black screen, crashes at ROM+SRAM check PC=0x1defc4 +]]></notes> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_sram"/> <dataarea name="rom" width="16" endianness="big" size="2097152"> <rom name="nba action '95 (prototype - jan 12, 1995).bin" size="2097152" crc="b47ff025" sha1="9f6a2ea386d383aee3be06d6b74fda67b1ebd960"/> </dataarea> + <!-- TODO: smaller than other sets? --> <dataarea name="sram" size="16384"> </dataarea> </part> @@ -20761,6 +21174,9 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>NBA Action '95 (Prototype, 19950115-A)</description> <year>1995</year> <publisher>Sega</publisher> + <notes><![CDATA[ +Black screen, crashes at ROM+SRAM check PC=0x1defc8 +]]></notes> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_sram"/> <dataarea name="rom" width="16" endianness="big" size="2097152"> @@ -20911,10 +21327,14 @@ Notice that these are not working on real hardware due to bugged code with VDP i </part> </software> - <software name="nbahang"> + <software name="nbahang" supported="partial"> <description>NBA Hang Time (Euro)</description> <year>1996</year> <publisher>Midway</publisher> + <notes><![CDATA[ +No [EEPROM] save +]]></notes> + <sharedfeat name="compatibility" value="PAL"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="3145728"> <rom name="nba hang time (euro).bin" size="3145728" crc="edb4d4aa" sha1="4594ba338a07dd79639c11b5b96c7f1a6e283d0c"/> @@ -20922,10 +21342,14 @@ Notice that these are not working on real hardware due to bugged code with VDP i </part> </software> - <software name="nbahangu" cloneof="nbahang"> + <software name="nbahangu" cloneof="nbahang" supported="partial"> <description>NBA Hang Time (USA)</description> <year>1996</year> <publisher>Midway</publisher> + <notes><![CDATA[ +No [EEPROM] save +]]></notes> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="3145728"> <rom name="nba hang time (usa).bin" size="3145728" crc="176b0338" sha1="bff36de7e0ca875b1fab84928f00999b48ff8f02"/> @@ -20937,6 +21361,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>NBA Jam (Euro, USA, v1.1)</description> <year>1993</year> <publisher>Arena</publisher> + <sharedfeat name="compatibility" value="NTSC-U,PAL"/> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_nbajam_alt"/> <dataarea name="rom" width="16" endianness="big" size="2097152"> @@ -20952,6 +21377,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <info name="serial" value="T-81033"/> <info name="release" value="19940429"/> <info name="alt_title" value="NBA ジャム"/> + <sharedfeat name="compatibility" value="NTSC-J"/> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_nbajam_alt"/> <dataarea name="rom" width="16" endianness="big" size="2097152"> @@ -20974,10 +21400,13 @@ Notice that these are not working on real hardware due to bugged code with VDP i </part> </software> - <software name="nbajamtef" cloneof="nbajamte"> + <software name="nbajamtef" cloneof="nbajamte" supported="no"> <description>NBA Jam Tournament Edition (World, 2002 Fix Release)</description> <year>2002?</year> <publisher>Acclaim Entertainment</publisher> + <notes><![CDATA[ +[EEPROM] Blue stripes at boot +]]></notes> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_nbajamte"/> <dataarea name="rom" width="16" endianness="big" size="3145728"> @@ -21036,6 +21465,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>NBA Showdown '94 (USA, Prototype, Hacked)</description> <year>1994</year> <publisher>Electronic Arts</publisher> + <sharedfeat name="compatibility" value="NTSC-U,PAL"/> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_sram"/> <dataarea name="rom" width="16" endianness="big" size="2097152"> @@ -21046,10 +21476,13 @@ Notice that these are not working on real hardware due to bugged code with VDP i </part> </software> - <software name="ncaafin4"> + <software name="ncaafin4" supported="partial"> <description>NCAA Final Four Basketball (USA)</description> <year>1994</year> <publisher>Mindscape</publisher> + <notes><![CDATA[ +Broken Mindscape and title screen GFXs +]]></notes> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_sram"/> <dataarea name="rom" width="16" endianness="big" size="1572864"> @@ -21064,6 +21497,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>NCAA Football (USA)</description> <year>1994</year> <publisher>Mindscape</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_sram"/> <dataarea name="rom" width="16" endianness="big" size="1048576"> @@ -21295,6 +21729,9 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>NFL '95 (Prototype, 19940904)</description> <year>1994</year> <publisher>Sega</publisher> + <notes><![CDATA[ +Crashes showing a Falcons helmet +]]></notes> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_sram"/> <dataarea name="rom" width="16" endianness="big" size="2097152"> @@ -21438,6 +21875,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <info name="serial" value="G-5535"/> <info name="release" value="19940204"/> <info name="alt_title" value="NFL プロフットボール'94"/> + <sharedfeat name="compatibility" value="NTSC-J"/> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_sram"/> <dataarea name="rom" width="16" endianness="big" size="2097152"> @@ -21462,10 +21900,13 @@ Notice that these are not working on real hardware due to bugged code with VDP i </part> </software> - <software name="nflqb96"> + <software name="nflqb96" supported="no"> <description>NFL Quarterback Club 96 (Euro, USA)</description> <year>1996</year> <publisher>Acclaim Entertainment</publisher> + <notes><![CDATA[ +[EEPROM] Blue stripes at boot +]]></notes> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_nflqb96"/> <dataarea name="rom" width="16" endianness="big" size="4194304"> @@ -21495,6 +21936,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>NHL 98 (USA)</description> <year>1997</year> <publisher>Electronic Arts</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_sram"/> <dataarea name="rom" width="16" endianness="big" size="2097152"> @@ -21509,6 +21951,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>NHL All-Star Hockey '95 (Prototype, 19941201-B)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_sram"/> <dataarea name="rom" width="16" endianness="big" size="2097146"> @@ -21523,6 +21966,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>NHL All-Star Hockey '95 (Prototype, 19941201)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_sram"/> <dataarea name="rom" width="16" endianness="big" size="2097146"> @@ -21537,6 +21981,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>NHL All-Star Hockey '95 (Prototype, 19941202)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_sram"/> <dataarea name="rom" width="16" endianness="big" size="2097146"> @@ -21562,6 +22007,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>NHL All-Star Hockey '95 (Prototype, 19941109)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="2097146"> <rom name="nhl all-star hockey '95 (prototype - nov 09, 1994).bin" size="2097145" crc="82624073" sha1="668a8453bf88e8d27a6f6d123198aadda05215c5"/> @@ -21573,6 +22019,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>NHL All-Star Hockey '95 (Prototype, 19941119)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="2097152"> <rom name="nhl all-star hockey '95 (prototype - nov 19, 1994).bin" size="2097152" crc="cd0f588a" sha1="c2133c68fbc0daa9b0bd97d21dc73d03278805dd"/> @@ -21584,6 +22031,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>NHL All-Star Hockey '95 (Prototype, 19941121)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="2097152"> <rom name="nhl all-star hockey '95 (prototype - nov 21, 1994).bin" size="2097152" crc="cfe4059d" sha1="8e1806d57d2eb876543fe212e470d73f2d36a3e5"/> @@ -21595,6 +22043,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>NHL All-Star Hockey '95 (Prototype, 19941122)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="2097146"> <rom name="nhl all-star hockey '95 (prototype - nov 22, 1994).bin" size="2097146" crc="81d30fe6" sha1="5d88854550a5b69b2623b5ba74424b1e191b9682"/> @@ -21606,6 +22055,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>NHL All-Star Hockey '95 (Prototype, 19941123)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_sram"/> <dataarea name="rom" width="16" endianness="big" size="2097146"> @@ -21620,6 +22070,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>NHL All-Star Hockey '95 (Prototype, 19941127)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_sram"/> <dataarea name="rom" width="16" endianness="big" size="2097146"> @@ -21634,6 +22085,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>NHL All-Star Hockey '95 (Prototype, 19941128)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_sram"/> <dataarea name="rom" width="16" endianness="big" size="2097146"> @@ -21648,6 +22100,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>NHL All-Star Hockey '95 (Prototype, 19941129)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_sram"/> <dataarea name="rom" width="16" endianness="big" size="2097146"> @@ -21784,10 +22237,13 @@ Notice that these are not working on real hardware due to bugged code with VDP i </part> </software> - <software name="nikkan"> + <software name="nikkan" supported="no"> <description>Nikkan Sports Pro Yakyuu Van (Jpn)</description> <year>1991</year> <publisher>Sega</publisher> + <notes><![CDATA[ +Unemulated [Sega Mega Modem] features +]]></notes> <info name="serial" value="G-4522"/> <info name="release" value="19910406"/> <info name="alt_title" value="日刊スポーツ プロ野球VAN"/> @@ -21868,10 +22324,13 @@ Notice that these are not working on real hardware due to bugged code with VDP i </part> </software> - <software name="nobuhao"> + <software name="nobuhao" supported="partial"> <description>Nobunaga no Yabou - Haouden (Jpn)</description> <year>1994</year> <publisher>Koei</publisher> + <notes><![CDATA[ +Unsupported [Sega Mouse] peripheral +]]></notes> <info name="serial" value="T-76153"/> <info name="release" value="19940225"/> <info name="alt_title" value="信長の野望 覇王伝"/> @@ -21885,10 +22344,13 @@ Notice that these are not working on real hardware due to bugged code with VDP i </part> </software> - <software name="nobuamb"> + <software name="nobuamb" supported="partial"> <description>Nobunaga's Ambition (USA)</description> <year>1993</year> <publisher>Koei</publisher> + <notes><![CDATA[ +Unsupported [Sega Mouse] peripheral +]]></notes> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_sram"/> <dataarea name="rom" width="16" endianness="big" size="524288"> @@ -21899,10 +22361,13 @@ Notice that these are not working on real hardware due to bugged code with VDP i </part> </software> - <software name="nobuzenk" cloneof="nobuamb"> + <software name="nobuzenk" cloneof="nobuamb" supported="partial"> <description>Nobunaga no Yabou - Zenkokuban (Jpn)</description> <year>1993</year> <publisher>Koei</publisher> + <notes><![CDATA[ +Unsupported [Sega Mouse] peripheral +]]></notes> <info name="serial" value="T-76133"/> <info name="release" value="19930915"/> <info name="alt_title" value="信長の野望 全・国・版"/> @@ -21942,6 +22407,9 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>Olympic Gold (USA, Alt)</description> <year>1992</year> <publisher>U.S. Gold</publisher> + <notes><![CDATA[ +Black screen at intro +]]></notes> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="524288"> <rom name="olympic gold (usa) (alt).bin" size="524288" crc="af639376" sha1="089c4013e942fcb3e2e6645cf3e702cdc3f9fc36"/> @@ -22003,6 +22471,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>The Ooze (Euro, Prototype, 19950728)</description> <year>1995</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="PAL"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="1048576"> <rom name="ooze, the (euro) (prototype - jul 28, 1995).bin" size="1048576" crc="7cf868e7" sha1="1c34cb3fffbaa81d350aea0b81b74c28e86c9bf5"/> @@ -22172,6 +22641,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <info name="serial" value="T-44033"/> <info name="release" value="19930326"/> <info name="alt_title" value="アウトラン 2019"/> + <sharedfeat name="compatibility" value="NTSC-J"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="1048576"> <rom name="outrun 2019 (jpn).bin" size="1048576" crc="0eac7440" sha1="3b26b50f4194408cccd3fb9484ac83b97e94e67f"/> @@ -22235,6 +22705,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>Out Runners (USA)</description> <year>1994</year> <publisher>Data East</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="2097152"> <rom name="outrunners (usa).bin" size="2097152" crc="ede636b9" sha1="5d00ad7d9dccd9067c4bd716c2ab9c0a18930ae2"/> @@ -22249,6 +22720,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <info name="serial" value="G-4119"/> <info name="release" value="19940513"/> <info name="alt_title" value="アウトランナーズ"/> + <sharedfeat name="compatibility" value="NTSC-J"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="2097152"> <rom name="outrunners (jpn).bin" size="2097152" crc="e164a09f" sha1="4225162ed3cf51e16bfe800ae74a9b026f5dee56"/> @@ -22272,6 +22744,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>Pac-Man 2 - The New Adventures (USA)</description> <year>1994</year> <publisher>Namco</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="2097152"> <rom name="pac-man 2 - the new adventures (usa).bin" size="2097152" crc="fe7a7ed1" sha1="9ed27068b00345d04d9dd1052ba0606c172e0090"/> @@ -22452,6 +22925,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>Payne Stewart Pro Golf (USA, prototype B)</description> <year>1994</year> <publisher>Time Warner Interactive</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="2097152"> <rom name="payne stewart pro golf (prototype b).bin" size="2097152" crc="602f556a" sha1="f778e6052f9627fe18109fd650a42bdaed278492"/> @@ -22463,6 +22937,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>Pebble Beach Golf Links (USA)</description> <year>1993</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_sram"/> <dataarea name="rom" width="16" endianness="big" size="2097152"> @@ -22477,6 +22952,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>Pebble Beach Golf Links (Prototype, 19940214)</description> <year>1993</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_sram"/> <dataarea name="rom" width="16" endianness="big" size="2097152"> @@ -22494,6 +22970,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <info name="serial" value="G-5525"/> <info name="release" value="19931029"/> <info name="alt_title" value="ペブルビーチの波濤"/> + <sharedfeat name="compatibility" value="NTSC-J,PAL"/> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_sram"/> <dataarea name="rom" width="16" endianness="big" size="1572864"> @@ -22835,8 +23312,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <publisher>Sega</publisher> <info name="serial" value="G-5524"/> <info name="release" value="19931217"/> - <info name="alt_title" value="ァンタシースター ~千年紀の終りに~"/> - <sharedfeat name="compatibility" value="NTSC-J"/> + <info name="alt_title" value="ファンタシースター ~千年紀の終りに~"/> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_sram"/> <dataarea name="rom" width="16" endianness="big" size="3145728"> @@ -22851,6 +23327,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>Phantasy Star - The End of the Millennium (Prototype, 19940815)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_sram"/> <dataarea name="rom" width="16" endianness="big" size="3145728"> @@ -22865,6 +23342,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>Phantasy Star - The End of the Millennium (Prototype, 19940608)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_sram"/> <dataarea name="rom" width="16" endianness="big" size="3145728"> @@ -22879,6 +23357,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>Phantasy Star - The End of the Millennium (Prototype, 19940530)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_sram"/> <dataarea name="rom" width="16" endianness="big" size="3145728"> @@ -22893,6 +23372,9 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>Phantasy Star - The End of the Millennium (Prototype, 19941107)</description> <year>1994</year> <publisher>Sega</publisher> + <notes><![CDATA[ +Black screen +]]></notes> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_sram"/> <dataarea name="rom" width="16" endianness="big" size="3145728"> @@ -22907,6 +23389,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>Phantasy Star - The End of the Millennium (Prototype, 19941027)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_sram"/> <dataarea name="rom" width="16" endianness="big" size="3145728"> @@ -22985,7 +23468,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <dataarea name="rom" width="16" endianness="big" size="3407872"> <rom name="pier solar and the great architects (world) (beta) (unl).bin" size="3407872" crc="55ffb501" sha1="d672e456f1af120d1fa7137c3fbee1d9f62d9296" /> </dataarea> - <!-- What is the correct amount?!? --> + <!-- TODO: correct amount? --> <dataarea name="sram" size="4096"> </dataarea> </part> @@ -22995,6 +23478,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>Pink Goes to Hollywood (USA, Prototype)</description> <year>1993</year> <publisher>TecMagik</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="1048576"> <rom name="pink goes to hollywood (usa) (beta).bin" size="1048576" crc="56087cff" sha1="5f2631b1850875129efd98d501f6419eb12b9817"/> @@ -23018,6 +23502,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>The Pirates of Dark Water (USA, January 1994)</description> <year>1994</year> <publisher>Sunsoft</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="2097152"> <rom name="pirates of dark water, the (usa) (january 1994).bin" size="2097152" crc="0c45b9f7" sha1="a95eabc00ed9f4867f394c1e5e03afad0381843b"/> @@ -23029,6 +23514,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>The Pirates of Dark Water (Euro, USA, May 1994)</description> <year>1994</year> <publisher>Sunsoft</publisher> + <sharedfeat name="compatibility" value="NTSC-U,PAL"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="2097152"> <rom name="pirates of dark water, the (euro, usa) (may 1994).bin" size="2097152" crc="0a62de34" sha1="55496714f32eb7f57335201f90b3f437a1500c49"/> @@ -23243,6 +23729,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>Prince of Persia (Prototype)</description> <year>1993</year> <publisher>Tengen</publisher> + <sharedfeat name="compatibility" value="PAL"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="1048576"> <rom name="prince of persia (beta).bin" size="1048576" crc="505314b6" sha1="addd33ce2f9c022433be1c3ea803371e7f6b694b"/> @@ -23265,6 +23752,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>Prince of Persia (USA)</description> <year>1994</year> <publisher>Tengen</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="1048576"> <rom name="prince of persia (usa).bin" size="1048576" crc="13c181a4" sha1="30080c7a8617ba3aaf67587970f32cd846234611"/> @@ -23275,7 +23763,8 @@ Notice that these are not working on real hardware due to bugged code with VDP i <software name="ppersia2"> <description>Prince of Persia 2 - The Shadow and the Flame (Euro, Prototype)</description> <year>1995</year> - <publisher><unknown></publisher> + <publisher>Psygnosis</publisher> + <info name="developer" value="Microids"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="2097152"> <rom name="prince of persia 2 - the shadow and the flame (euro) (prototype).bin" size="2097152" crc="3ab44d46" sha1="ba63dc1e521bee68b4121b626061ebb203ac63c6"/> @@ -23417,6 +23906,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>The Punisher (Euro)</description> <year>1994</year> <publisher>Capcom</publisher> + <sharedfeat name="compatibility" value="PAL"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="2097152"> <rom name="punisher, the (euro).bin" size="2097152" crc="729edd17" sha1="d11ec72726498e4608eefc1ef2b8a3cadb025394"/> @@ -23621,10 +24111,15 @@ Notice that these are not working on real hardware due to bugged code with VDP i </software> <software name="qpoker"> + <!-- alt. title screen "Poker 6 in 1" (after first attract cycle, also on boxart) --> <description>Queen of Poker Club (Tw)</description> <year>199?</year> <publisher>Sachen</publisher> + <notes><![CDATA[ +https://segaretro.org/Queen_of_Poker_Club +]]></notes> <info name="alt_title" value="撲克俱樂部 Poker 6 in 1 ~ Poker Club Poker 6 in 1 (Box)"/> + <info name="developer" value="Thin Chen Enterprise"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="1048576"> <rom name="poker club (sachen).bin" size="1048576" crc="ae28d9eb" sha1="600c9b234f2559b6d101a111f7033088bd701a5d"/> @@ -23654,10 +24149,13 @@ Notice that these are not working on real hardware due to bugged code with VDP i </part> </software> - <software name="rbibb3p" cloneof="rbibb3"> + <software name="rbibb3p" cloneof="rbibb3" supported="no"> <description>R.B.I. Baseball 3 (USA, Prototype 19910718)</description> <year>1991</year> <publisher>Tengen</publisher> + <notes><![CDATA[ +Black screen +]]></notes> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="524288"> <rom name="r.b.i. baseball 3 (jul 18, 1991 prototype).bin" size="524288" crc="d0430946" sha1="e6d142f6d483f423c2d2271f3895ebf50063a6d5"/> @@ -23742,6 +24240,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>Radical Rex (Euro, prototype)</description> <year>1994</year> <publisher>Activision</publisher> + <sharedfeat name="compatibility" value="PAL"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="1048576"> <rom name="radical rex (prototype).bin" size="1048576" crc="bf2912e3" sha1="da7400580b757d531f86e62b3f211798d8663237"/> @@ -23874,8 +24373,12 @@ Notice that these are not working on real hardware due to bugged code with VDP i <software name="rastan2"> <description>Rastan Saga II (USA)</description> - <year>1990</year> + <!-- Header reports Jan 1990, boxart and title have '91 --> + <year>1991</year> <publisher>Taito</publisher> + <notes><![CDATA[ +https://segaretro.org/Rastan_Saga_II +]]></notes> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="524288"> <rom name="rastan saga ii (usa).bin" size="524288" crc="c7ee8965" sha1="adec2cb70344ffc720ecdfeb68712bb3d1d0fd9c"/> @@ -23903,6 +24406,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <year>1993</year> <publisher>Sega</publisher> <info name="alt_title" value="The Ren & Stimpy Show Presents Stimpy's Invention (Box)"/> + <sharedfeat name="compatibility" value="PAL"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="1048576"> <rom name="ren & stimpy - stimpy's invention (dec 9, 1993 build).bin" size="1045114" crc="1b475ed3" sha1="d39b2e07933060439030e9fddfaa5cd1b0e986c1"/> @@ -23915,6 +24419,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <year>1993</year> <publisher>Sega</publisher> <info name="alt_title" value="The Ren & Stimpy Show Presents Stimpy's Invention (Box)"/> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="1048576"> <rom name="ren & stimpy show presents stimpy's invention, the (usa).bin" size="1048576" crc="d9503ba5" sha1="29788359cc3311107e82f275868e908314d3d426"/> @@ -24022,10 +24527,13 @@ Notice that these are not working on real hardware due to bugged code with VDP i </part> </software> - <software name="rsbt"> + <software name="rsbt" supported="partial"> <description>Richard Scarry's BusyTown (USA)</description> <year>1994</year> <publisher>Sega</publisher> + <notes><![CDATA[ +Unsupported [Sega Mouse] peripheral +]]></notes> <sharedfeat name="compatibility" value="NTSC-U,NTSC-J"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="2097152"> @@ -24038,6 +24546,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>Richard Scarry's Busytown (Prototype, 19940809)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="2092268"> <rom name="richard scarry's busytown (prototype - aug 09, 1994).bin" size="2092268" crc="c48cbc30" sha1="10cdf9b4284586402afbcaf02f4875ec1e49cd5d"/> @@ -24049,6 +24558,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>Richard Scarry's Busytown (Prototype, 19940815)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="2097152"> <rom name="richard scarry's busytown (prototype - aug 15, 1994).bin" size="2097152" crc="650ed917" sha1="e186b2c54514653374657b6033a05f5645c6aac2"/> @@ -24060,6 +24570,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>Richard Scarry's Busytown (Prototype, 19940816-B)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="2097152"> <rom name="richard scarry's busytown (prototype - aug 16, 1994 - b).bin" size="2097152" crc="760cff62" sha1="85e5c63e0b8a536a134e20036c978724158be80e"/> @@ -24071,6 +24582,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>Richard Scarry's Busytown (Prototype, 19940817)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="2095780"> <rom name="richard scarry's busytown (prototype - aug 17, 1994).bin" size="2095780" crc="3b9c3f4a" sha1="6e70fafecdf133895715b52fd6614297e8b70763"/> @@ -24082,6 +24594,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>Richard Scarry's Busytown (Prototype, 19940825)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="2097152"> <rom name="richard scarry's busytown (prototype - aug 25, 1994).bin" size="2097152" crc="a0c013ba" sha1="8051a0961ae0003786d6b33e07f442e3b72bf771"/> @@ -24093,6 +24606,10 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>Richard Scarry's Busytown (Prototype, 19940826)</description> <year>1994</year> <publisher>Sega</publisher> + <notes><![CDATA[ +Red screen +]]></notes> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="2097152"> <rom name="richard scarry's busytown (prototype - aug 26, 1994).bin" size="2097152" crc="1ad270f3" sha1="375f358a24ae63be8b8bc1010f61b27d013f8212"/> @@ -24104,6 +24621,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>Richard Scarry's Busytown (Prototype, 19940721)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="2043912"> <rom name="richard scarry's busytown (prototype - jul 21, 1994).bin" size="2043912" crc="1e92d6ff" sha1="cae77f948369d11f0152d68d75311b80c038f36a"/> @@ -24356,6 +24874,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>RoboCop versus The Terminator (Prototype)</description> <year>1994</year> <publisher>Virgin Interactive</publisher> + <sharedfeat name="compatibility" value="PAL"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="2097152"> <rom name="robocop versus the terminator (beta).bin" size="2097152" crc="2487049f" sha1="a1625783cf1b42d808ad4f56dde5ce1b1884218a"/> @@ -24400,10 +24919,11 @@ Notice that these are not working on real hardware due to bugged code with VDP i </part> </software> - <software name="robowrek"> + <software name="robowrek" cloneof="cyborgj"> <description>Robot Wreckage (USA, Prototype)</description> <year>199?</year> <publisher><unknown></publisher> + <info name="developer" value="Novotrade"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="1048576"> <rom name="robot wreckage (usa) (prototype).bin" size="1048576" crc="c67ddb14" sha1="8cecca591f781a638b45f99f69bf2f18b7abb289"/> @@ -24454,6 +24974,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>Rocket Knight Adventures (USA, Prototype 19930615)</description> <year>1993</year> <publisher>Konami</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="1048576"> <rom name="rocketknightadventcdfb.bin" size="1048576" crc="9cbee37b" sha1="9e2335dc00f95754a2cdce1f6bc7142e467d173d"/> @@ -24491,6 +25012,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>Rolling Thunder 2 (USA)</description> <year>1991</year> <publisher>Namco</publisher> + <!-- Compatibility not enforced --> <part name="cart" interface="megadriv_cart"> <!-- Dump To Be Confirmed --> <feature name="pcb" value="?? (Namcot)"/> @@ -24706,9 +25228,13 @@ Notice that these are not working on real hardware due to bugged code with VDP i </software> <software name="sanguo5"> - <description>San Guo Zhi V (Chi)</description> + <description>San Guo Zhi V (Tw)</description> + <!-- "after '96" --> <year>199?</year> <publisher>SKOB</publisher> + <notes><![CDATA[ +https://bootleggames.fandom.com/wiki/San_Guo_Zhi_V +]]></notes> <info name="alt_title" value="三國志V"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="2097152"> @@ -24717,11 +25243,13 @@ Notice that these are not working on real hardware due to bugged code with VDP i </part> </software> - <software name="sansan"> - <!-- Notes: for use with Modem and online service --> + <software name="sansan" supported="no"> <description>San San (Jpn)</description> <year>1994</year> <publisher>San San Co.</publisher> + <notes><![CDATA[ +Unsupported [Sega Mega Modem] features +]]></notes> <info name="serial" value="T-147013"/> <info name="alt_title" value="サンサン"/> <part name="cart" interface="megadriv_cart"> @@ -24796,6 +25324,10 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>Sensible Soccer (Prototype)</description> <year>1993</year> <publisher>Renegade</publisher> + <notes><![CDATA[ +Throws "this game is [...] european megadrive system" even with megadriv system (btanb? cfr. checks at PC=18b2e and PC=18b4c, $ff0006 RAM buffer is never set other than POST init) +]]></notes> + <!-- <sharedfeat name="compatibility" value="PAL"/> --> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_sram"/> <dataarea name="rom" width="16" endianness="big" size="524288"> @@ -24810,6 +25342,9 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>Sesame Street Counting Cafe (USA)</description> <year>1994</year> <publisher>Electronic Arts</publisher> + <notes><![CDATA[ +Black screen, requires better [VDP] irq handling +]]></notes> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="1048576"> <rom name="sesame street counting cafe (usa).bin" size="1048576" crc="0a4f48c3" sha1="d5ef2b50cf1a22e07401f6a14c7946df66d8b605"/> @@ -24895,8 +25430,8 @@ Notice that these are not working on real hardware due to bugged code with VDP i <software name="shadowrnj" cloneof="shadowrn"> <description>Shadowrun (Jpn)</description> - <year>199?</year> - <publisher><unknown></publisher> + <year>1994</year> + <publisher>Sega</publisher> <sharedfeat name="compatibility" value="NTSC-J"/> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_sram"/> @@ -24912,6 +25447,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>Shadowrun (USA, Prototype, 19931228)</description> <year>1993</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_sram"/> <dataarea name="rom" width="16" endianness="big" size="2097152"> @@ -24926,6 +25462,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>Shadowrun (USA, Prototype, 19931231)</description> <year>1993</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_sram"/> <dataarea name="rom" width="16" endianness="big" size="2097152"> @@ -24940,6 +25477,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>Shadowrun (USA, Prototype, 19940125-C)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_sram"/> <dataarea name="rom" width="16" endianness="big" size="2097152"> @@ -24954,6 +25492,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>Shadowrun (USA, Prototype, 19940125)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_sram"/> <dataarea name="rom" width="16" endianness="big" size="2097152"> @@ -24979,6 +25518,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>Shanghai II - Dragon's Eye (USA, Prototype)</description> <year>1994</year> <publisher>Activision</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="1048576"> <rom name="shanghai ii - dragon's eye (beta).bin" size="1048576" crc="154aca2d" sha1="89150c5d976870868e2a11b474b4c0f9e2a786a9"/> @@ -24998,14 +25538,20 @@ Notice that these are not working on real hardware due to bugged code with VDP i </software> <software name="shijie"> - <description>Jin Guan Jun Xiong Di Xiang - Shi Jie Zhi Bang Zheng Ba Zhan (Chi)</description> + <description>Jin Guan Jun Xiong Di Xiang - Shi Jie Zhi Bang Zheng Ba Zhan (Tw)</description> <year>1994</year> <publisher>C&E</publisher> + <notes><![CDATA[ +https://segaretro.org/Shi_Jie_Zhi_Bang_Zheng_Ba_Zhan:_World_Pro_Baseball_94 +]]></notes> <info name="alt_title" value="金冠軍兄弟象 世界职棒争霸战"/> <part name="cart" interface="megadriv_cart"> + <feature name="slot" value="rom_sram"/> <dataarea name="rom" width="16" endianness="big" size="2097152"> <rom name="shi jie zhi bang zheng ba zhan - world pro baseball 94 (chi) (unl).bin" size="2097152" crc="72dd884f" sha1="d05c770312feec38c45b910ad09204b87961c01a"/> </dataarea> + <dataarea name="sram" size="65536"> + </dataarea> </part> </software> @@ -25077,6 +25623,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>Shining Force II (USA, Prototype, 19940404)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_sram"/> <dataarea name="rom" width="16" endianness="big" size="2097152"> @@ -25091,6 +25638,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>Shining Force II (USA, Prototype, 19940607)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_sram"/> <dataarea name="rom" width="16" endianness="big" size="2097152"> @@ -25151,6 +25699,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>Shinobi III - Return of the Ninja Master (USA, Prototype 19930629)</description> <year>1993</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="1048576"> <rom name="shinobi iii - return of the ninja master (jun 29, 1993 prototype).bin" size="1048576" crc="ed32899a" sha1="bb504d035612daa91c88d4a876a665ffca56efe3" /> @@ -25298,10 +25847,14 @@ Notice that these are not working on real hardware due to bugged code with VDP i </part> </software> +<!-- undumped original '96 release by Kin Tec known to exist --> <software name="shuihu"> - <description>Shui Hu - Feng Yun Zhuan (Chi)</description> + <description>Shui Hu - Feng Yun Zhuan (Tw)</description> <year>1999</year> <publisher>Never Ending Soft Team</publisher> + <notes><![CDATA[ +https://bootleggames.fandom.com/wiki/Shui_Hu_Feng_Yun_Zhuan +]]></notes> <info name="alt_title" value="水滸 風雲傳"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="2097152"> @@ -25365,6 +25918,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>Skeleton Krew (USA)</description> <year>1995</year> <publisher>Core Design</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="2097152"> <rom name="skeleton krew (usa).bin" size="2097152" crc="c2e05acb" sha1="2a6f6ea7d2fc1f3a396269f9455011ef95266ffc"/> @@ -25851,8 +26405,10 @@ Notice that these are not working on real hardware due to bugged code with VDP i </software> <software name="scrack"> + <!-- "19940401" according to title screen --> <description>Sonic Crackers (Jpn, Prototype)</description> <year>1994</year> + <!-- Sega? --> <publisher><unknown></publisher> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="1048576"> @@ -25876,6 +26432,9 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>Sonic Jam 6 (Alt)</description> <year>199?</year> <publisher><unlicensed></publisher> + <notes><![CDATA[ +Black screen, writes in ROM area then jumps to PC=1a2000 (encryption?) +]]></notes> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="2097152"> <rom name="sonic jam 6 (unl) (pirate).bin" size="2097152" crc="04f0c93e" sha1="a9e316ccde5b71f6aa85485b6897c1cfc780742d"/> @@ -25898,6 +26457,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>Sonic Spinball (Euro, prototype 19930917)</description> <year>1993</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="PAL"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="1048576"> <rom name="sonic spinball 0 md 17-9 4m.eprom" size="524288" crc="2e0e6929" sha1="d54f89dea19a1489f0297405f5a0d245f55e9e86" offset="0x000001" loadflag="load16_byte"/> <!-- Sonic Spinball 0 MD 17/9 4M --> @@ -25910,6 +26470,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>Sonic Spinball (prototype 19930922)</description> <year>1993</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="1048576"> <rom name="sonic the hedgehog spinball (sep 22, 1993 build).bin" size="1048576" crc="82c55a36" sha1="dffa4d4a996c9bf757c48584b933e16944eff86c"/> @@ -26183,6 +26744,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>Sonic the Hedgehog 3 (USA, Prototype 19931120)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_fram"/> <dataarea name="rom" width="16" endianness="big" size="2097152"> @@ -26474,6 +27036,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>Spirou (Euro, prototype)</description> <year>1996</year> <publisher>Infogrames</publisher> + <!-- Compatibility not enforced --> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="1048576"> <rom name="spirou (prototype).bin" size="1048576" crc="51bc6c35" sha1="1b03b04a1d3ae75b51e487dced305c6a729b4fa6"/> @@ -26531,11 +27094,17 @@ Notice that these are not working on real hardware due to bugged code with VDP i </part> </software> -<!-- The cart contains no menu, the second game is probably accessed through reset... --> - <software name="sportg" supported="partial"> + <software name="sportg" supported="no"> <description>Sport Games (Bra)</description> <year>199?</year> <publisher>Tec Toy</publisher> + <notes><![CDATA[ +Needs slot emulation for the other two games, has no menu but pressing reset button cycles thru them +$000000 Super Volley Ball (USA) +$100000 World Championship Soccer II (USA) +$200000 Super Real Basketball (Euro) +$040000-$0fffff, $280000-$2fffff, $380000-$3fffff - junk copies of above +]]></notes> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="4194304"> <rom name="mpr-19945-mx.ic1" size="4194304" crc="25da0747" sha1="52bcdeb464aba7da82cbb8ed07242e0910082342" loadflag="load16_word_swap"/> @@ -26547,6 +27116,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>Spot Goes to Hollywood (Euro)</description> <year>1996</year> <publisher>Virgin Interactive</publisher> + <sharedfeat name="compatibility" value="NTSC-U,PAL"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="3145728"> <rom name="mpr-18680+mpr-18681.bin" size="3145728" crc="fbe254ea" sha1="be1144c3d9d49dce2d5e1ab598ef0e2b730950b7"/> @@ -26558,6 +27128,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>Spot Goes to Hollywood (USA)</description> <year>1995</year> <publisher>Acclaim Entertainment</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="3145728"> <rom name="spot goes to hollywood (usa).bin" size="3145728" crc="bdad1cbc" sha1="064a384f745eeffee3621d55a0278c133abdbc11"/> @@ -26750,6 +27321,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>Star Trek - The Next Generation - Echoes from the Past (Prototype, 19940125)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_sram"/> <dataarea name="rom" width="16" endianness="big" size="2097152"> @@ -26857,6 +27429,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>Stone Protectors (USA, Prototype)</description> <year>1994</year> <publisher>Vic Tokai</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="2097152"> <rom name="stone protectors.bin" size="2097152" crc="fbf0d54f" sha1="6629a0299689898b1a9b54e4fd05dad1e2fd62d3"/> @@ -26969,6 +27542,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>The Story of Thor (USA, Prototype, 19941004)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_sram"/> <dataarea name="rom" width="16" endianness="big" size="3145728"> @@ -26983,6 +27557,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>The Story of Thor (USA, Prototype, 19941017)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_sram"/> <dataarea name="rom" width="16" endianness="big" size="3145728"> @@ -26997,6 +27572,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>Beyond Oasis (USA, Prototype, 19941101)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_sram"/> <dataarea name="rom" width="16" endianness="big" size="3145728"> @@ -27067,6 +27643,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>Street Fighter II' - Champion Edition (Euro, USA, prototype 19930325)</description> <year>1993</year> <publisher>Capcom</publisher> + <sharedfeat name="compatibility" value="NTSC-U,PAL"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="2097152"> <rom name="street fighter 2 md 0 25-3-93.eprom" size="262144" crc="af5cb9e7" sha1="da8941574d5fc737945b6a860c64e9ab41188977" offset="0x000001" loadflag="load16_byte"/> @@ -27085,6 +27662,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>Street Fighter II' - Champion Edition (Euro, USA, prototype 19930730)</description> <year>1993</year> <publisher>Capcom</publisher> + <sharedfeat name="compatibility" value="NTSC-U,PAL"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="2097152"> <rom name="sf2 0 4 30-7.eprom" size="524288" crc="9200685e" sha1="3e7c807d701dab4189a712d08dc1c2b4483283e6" offset="0x000001" loadflag="load16_byte"/> @@ -27096,6 +27674,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i </software> <software name="sf2pir" cloneof="sf2"> + <!-- Based off protos, with fixed status bars (later proto rev?) --> <description>Street Fighter II' Turbo (Pirate)</description> <year>1994</year> <publisher><unlicensed></publisher> @@ -27107,10 +27686,11 @@ Notice that these are not working on real hardware due to bugged code with VDP i </software> <!-- This mostly differs from final build only in the internal header... --> - <software name="sracerp" cloneof="sracer"> + <software name="sracerp" cloneof="sracer" supported="partial"> <description>Street Racer (Euro, prototype 19950321)</description> <year>1995</year> <publisher>Ubi Soft</publisher> + <info name="developer" value="Vivid Image"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="1048576"> <rom name="street racer (prototype 19950321).bin" size="1048576" crc="a439a96e" sha1="674e3c5185923a98bd8e9ae9bc0409d0c6503432"/> @@ -27171,6 +27751,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>Streets of Rage 3 (Kor)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-J,PAL"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="3145728"> <rom name="streets of rage 3 (kor).bin" size="3145728" crc="90ef991e" sha1="8c0bc5b66703efbdeef2d6ede5745aad89bd8a44"/> @@ -27182,6 +27763,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>Streets of Rage 3 (Euro, Prototype, 19940412)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="PAL"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="3145728"> <rom name="streets of rage 3 (euro) (prototype - apr 12, 1994).bin" size="3145728" crc="a17ce5ab" sha1="0b0fa81973bf2f0313e0f2041c8cdd1c220e9839"/> @@ -27193,6 +27775,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>Streets of Rage 3 (Euro, Prototype, 19940413)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="PAL"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="3145728"> <rom name="streets of rage 3 (euro) (prototype - apr 13, 1994).bin" size="3145728" crc="164e42ae" sha1="32df74ccf217e8258dee9acc50db540bbc68ca02"/> @@ -27204,6 +27787,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>Streets of Rage 3 (Euro, Prototype, 19940415)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="PAL"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="3145728"> <rom name="streets of rage 3 (euro) (prototype - apr 15, 1994).bin" size="3145728" crc="c64f1e6b" sha1="118e4a8a3891956e0b60bcf5a6dd631ba93794a3"/> @@ -27215,6 +27799,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>Streets of Rage 3 (Euro, Prototype, 19940420)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="PAL"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="3145728"> <rom name="streets of rage 3 (euro) (prototype - apr 20, 1994).bin" size="3145728" crc="6ae4bd8e" sha1="58feae0110f239ba7a58e447b86158705249b35b"/> @@ -27226,6 +27811,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>Streets of Rage 3 (Euro, Prototype, 19940425)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="PAL"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="3145728"> <rom name="streets of rage 3 (euro) (prototype - apr 25, 1994).bin" size="3145728" crc="7033878a" sha1="8a8cfc1e75f89cf72d7d783b29238f4a8b3ff568"/> @@ -27237,6 +27823,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>Streets of Rage 3 (Prototype, 19940401)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="3145728"> <rom name="streets of rage 3 (prototype - apr 01, 1994).bin" size="3145728" crc="797e75b7" sha1="9f2f64507fd11114c2bacdd54aa25aecfa4f25bb"/> @@ -27248,6 +27835,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>Streets of Rage 3 (Prototype, 19940404)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="3145728"> <rom name="streets of rage 3 (prototype - apr 04, 1994).bin" size="3145728" crc="6b968f13" sha1="e2645121252f51d1eb5ea4ffc9af0092941ad7c9"/> @@ -27259,6 +27847,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>Streets of Rage 3 (Prototype, 19940408)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="3145728"> <rom name="streets of rage 3 (prototype - apr 08, 1994).bin" size="3145728" crc="d4ba76c2" sha1="94cc6697534cf90a369b5c7dfb4e53f1de96df1c"/> @@ -27270,6 +27859,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>Streets of Rage 3 (Prototype, 19940411)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="3145728"> <rom name="streets of rage 3 (prototype - apr 11, 1994).bin" size="3145728" crc="fa5e5a82" sha1="5592e80501219dc2b5fe5f07819948520b8fa051"/> @@ -27281,6 +27871,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>Streets of Rage 3 (Prototype, 19940412)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="3145728"> <rom name="streets of rage 3 (prototype - apr 12, 1994).bin" size="3145728" crc="3f52cb72" sha1="60e47f8393a79dd30c8ad273bc448610bef602f8"/> @@ -27292,6 +27883,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>Streets of Rage 3 (Prototype, 19940413)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="3145728"> <rom name="streets of rage 3 (prototype - apr 13, 1994).bin" size="3145728" crc="6b675807" sha1="ffe3b23352b15f62f00653631bc3a606b7cda4b0"/> @@ -27336,6 +27928,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>Streets of Rage 3 (Prototype, 19940328)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="3145728"> <rom name="streets of rage 3 (prototype - mar 28, 1994).bin" size="3145728" crc="8757f797" sha1="0b5160bdb791033c51aaf924eb280f977fc387d4"/> @@ -27348,6 +27941,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>Streets of Rage 3 (USA)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="3145728"> <rom name="streets of rage 3 (usa).bin" size="3145728" crc="d5bb15d9" sha1="40a33dd6f9dab0aff26c7525c9b8f342482c7af6"/> @@ -27375,6 +27969,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <year>1994</year> <publisher>Sega</publisher> <info name="alt_title" value="ベア・ナックルIII"/> + <sharedfeat name="compatibility" value="NTSC-J,PAL"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="3145728"> <rom name="bare knuckle iii (jpn) (beta).bin" size="3145728" crc="e7ff99db" sha1="1d75372571ce970545f6ce63977cea9fa811e23f"/> @@ -27411,6 +28006,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>Striker (Euro, Prototype)</description> <year>1994</year> <publisher>Sega</publisher> + <!-- Compatibility not enforced --> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_sram"/> <dataarea name="rom" width="16" endianness="big" size="2097152"> @@ -27425,6 +28021,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>SubTerrania (Prototype)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="2097152"> <rom name="subterrania (beta).bin" size="2097152" crc="3a1022d1" sha1="57279fa2bc9baf07d701be44e51e42d7f1e0e2a2"/> @@ -27699,6 +28296,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>Super Monaco GP (USA)</description> <year>1990</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="524288"> <rom name="super monaco gp (usa).bin" size="524288" crc="725018ee" sha1="1947d41598daa3880ecb826303abae2accd1857f"/> @@ -28379,10 +28977,14 @@ Notice that these are not working on real hardware due to bugged code with VDP i </part> </software> - <software name="teddyboy"> + <software name="teddyboy" supported="partial"> <description>Teddy Boy Blues (Jpn, SegaNet)</description> <year>1991</year> <publisher>Sega</publisher> + <notes><![CDATA[ +https://mametesters.org/view.php?id=7645 +No BGMs +]]></notes> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="262144"> <rom name="teddy boy blues (jpn) (sn).bin" size="262144" crc="733d2eb3" sha1="dc858342be31ab9491acfaebf1524ece2c6ef9a3"/> @@ -28730,6 +29332,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>Tintin au Tibet (Euro, prototype)</description> <year>1995</year> <publisher>Infogrames</publisher> + <sharedfeat name="compatibility" value="PAL"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="2097152"> <rom name="tintin in tibet (prototype).bin" size="2097152" crc="5d4e0ea1" sha1="28a63f4e7c063c127b00dc7c8c3f1439eed437ba"/> @@ -28765,6 +29368,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>TNN Bass Tournament of Champions (USA)</description> <year>1993</year> <publisher>American Softworks</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_sram"/> <dataarea name="rom" width="16" endianness="big" size="1048576"> @@ -28779,6 +29383,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>TNN Outdoors Bass Tournament '96 (USA)</description> <year>1996</year> <publisher>American Softworks</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_sram"/> <dataarea name="rom" width="16" endianness="big" size="2097152"> @@ -28845,6 +29450,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>Toe Jam & Earl in Panic on Funkotron (Prototype)</description> <year>1993</year> <publisher>Sega</publisher> + <!-- Compatibility not enforced --> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="2097152"> <rom name="toejam&earl.58bd.bin" size="2097152" crc="c6a1a8dc" sha1="a9f7a493e3470a2843c632c221e238080eed2de2"/> @@ -28857,6 +29463,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>Toe Jam & Earl in Panic on Funkotron (Prototype 19930911)</description> <year>1993</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="2097152"> <rom name="toejam & earl in panic on funkotron (sep 11, 1993 build).bin" size="2097152" crc="d9dfbb5c" sha1="9959ab08c2f74cbd9009bf784fc0205ce1f7bce1"/> @@ -28987,7 +29594,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <year>1996</year> <publisher>Disney Interactive</publisher> <info name="alt_title" value="Disney's Toy Story (Box)"/> - <sharedfeat name="compatibility" value="NTSC-U,NTSC-J"/> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <!-- Dump To Be Confirmed --> <feature name="pcb" value="171-7147A"/> @@ -29080,10 +29687,12 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>Triple Play '96 (USA)</description> <year>1995</year> <publisher>Electronic Arts</publisher> + <!-- TODO: starts off with music off (still coming from the dump?) --> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_sram"/> + <!-- baddump: Sports non-default save, "Ghetto USA" instead of NY Yankees --> <dataarea name="rom" width="16" endianness="big" size="4194304"> - <rom name="triple play '96 (usa).bin" size="4194304" crc="f1748e91" sha1="c0981b524d5e1c5368f9e74a4ce9c57d87fe323a"/> + <rom name="triple play '96 (usa).bin" size="4194304" crc="f1748e91" sha1="c0981b524d5e1c5368f9e74a4ce9c57d87fe323a" status="baddump"/> </dataarea> <dataarea name="sram" size="65536"> </dataarea> @@ -29097,8 +29706,9 @@ Notice that these are not working on real hardware due to bugged code with VDP i <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_sram"/> + <!-- baddump: Sports non-default save, "TODDs Team" instead of San Francisco --> <dataarea name="rom" width="16" endianness="big" size="4194304"> - <rom name="triple play gold (usa).bin" size="4194304" crc="bbe69017" sha1="007bee242384db1887c5831657470584ff77a163"/> + <rom name="triple play gold (usa).bin" size="4194304" crc="bbe69017" sha1="007bee242384db1887c5831657470584ff77a163" status="baddump"/> </dataarea> <dataarea name="sram" size="65536"> </dataarea> @@ -29109,8 +29719,10 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>Triple Play Gold (USA, Alt)</description> <year>1995</year> <publisher>Electronic Arts</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_sram"/> + <!-- Dump seems clean unlike the other versions --> <dataarea name="rom" width="16" endianness="big" size="4194304"> <rom name="triple play gold (usa) (alt).bin" size="4194304" crc="a89638a0" sha1="cb7f4b9b89fbf6162d7d4182229c8ac473f91cf4"/> </dataarea> @@ -29797,10 +30409,13 @@ Notice that these are not working on real hardware due to bugged code with VDP i </part> </software> - <software name="wworlds"> + <software name="wworlds" supported="partial"> <description>Wacky Worlds (USA)</description> <year>1994</year> <publisher>Sega</publisher> + <notes><![CDATA[ +Unsupported [Sega Mouse] peripheral +]]></notes> <info name="alt_title" value="Wacky Worlds Creativity Studio (Box)"/> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_sram"/> @@ -29994,6 +30609,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>WaterWorld (Euro, Prototype)</description> <year>1995?</year> <publisher>Ocean</publisher> + <sharedfeat name="compatibility" value="PAL"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="2097152"> <rom name="waterworld (euro) (prototype).bin" size="2097152" crc="51c80498" sha1="35e4186654a677a43d16861f9832199c5cb5e0ef"/> @@ -30158,6 +30774,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>Wild Snake (USA, Prototype)</description> <year>1994</year> <publisher>Bullet-Proof Software</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="524288"> <rom name="wild snake (usa) (prototype).bin" size="524288" crc="0c1a49e5" sha1="68241498209c5e1f09ca335aee1b0f55ce19ff6e"/> @@ -30172,6 +30789,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <info name="serial" value="G-4110"/> <info name="release" value="19940520"/> <info name="alt_title" value="ウィンブルドンCHAMPIONSHIP TENNIS"/> + <sharedfeat name="compatibility" value="NTSC-J,PAL"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="1048576"> <rom name="wimbledon championship tennis (jpn).bin" size="1048576" crc="3e0c9daf" sha1="73a6dad0bedc5552459e8a74a9b8ae242ad5a78e"/> @@ -30195,6 +30813,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>Wimbledon Championship Tennis (USA, Prototype)</description> <year>1993</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="1048576"> <rom name="wimbledon championship tennis (usa) (beta).bin" size="1048576" crc="9febc760" sha1="402bdc507647d861ee7bb80599f528d3d5aeaf0f"/> @@ -30273,7 +30892,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i </part> </software> - <software name="wboy5" cloneof="wboymw"> + <software name="wboy5" cloneof="wboymw" supported="yes"> <description>Wonder Boy V - Monster World III (Jpn, Kor)</description> <year>1991</year> <publisher>Sega</publisher> @@ -30281,31 +30900,36 @@ Notice that these are not working on real hardware due to bugged code with VDP i <info name="release" value="19911025"/> <info name="alt_title" value="ワンダーボーイV モンスターワールドIII"/> <part name="cart" interface="megadriv_cart"> - <feature name="slot" value="rom_eeprom"/> + <!-- Explicitly hangs at title screen with "rom_eeprom" --> + <feature name="slot" value="rom_eeprom_mode1"/> <dataarea name="rom" width="16" endianness="big" size="655360"> <rom name="wonder boy v - monster world iii (jpn, kor).bin" size="655360" crc="45a50f96" sha1="1582f159e1969ff0541319a9bd7e6f7a53505d01"/> </dataarea> </part> </software> - <software name="wboy5p" cloneof="wboymw"> + <software name="wboy5p" cloneof="wboymw" supported="partial"> <description>Wonder Boy V - Monster World III (Jpn, Prototype 19910725)</description> <year>1991</year> <publisher>Sega</publisher> + <notes><![CDATA[ +[EEPROM] doesn't save (btanb?) +]]></notes> <part name="cart" interface="megadriv_cart"> - <feature name="slot" value="rom_eeprom"/> + <feature name="slot" value="rom_eeprom_mode1"/> <dataarea name="rom" width="16" endianness="big" size="786432"> <rom name="wonder boy v - monster world iii (jul 25, 1991 prototype).bin" size="786432" crc="334035f8" sha1="1677039ede9a4cf51ac182cfe27d797c864290c8" /> </dataarea> </part> </software> - <software name="turmamon" cloneof="wboymw"> + <software name="turmamon" cloneof="wboymw" supported="yes"> <description>Turma da Mônica na Terra dos Monstros (Bra)</description> <year>1996</year> <publisher>Tec Toy</publisher> <part name="cart" interface="megadriv_cart"> - <feature name="slot" value="rom_eeprom"/> + <!-- Doesn't hang but will silently fail saving --> + <feature name="slot" value="rom_eeprom_mode1"/> <dataarea name="rom" width="16" endianness="big" size="1048576"> <rom name="turma da monica na terra dos monstros (bra).bin" size="1048576" crc="f8288de1" sha1="80fc2a6a6b8b943f781598094f3b5a5fe4f05ede"/> </dataarea> @@ -30316,6 +30940,10 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>Wonder Library (Jpn)</description> <year>199?</year> <publisher>Victor</publisher> + <notes><![CDATA[ +Unsupported Mega-CD/Wondermega cart allowing EBXA format to be played back +]]></notes> + <info name="alt_title" value="ワンダーライブラリ"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="524288"> <rom name="wonder library (jpn).bin" size="524288" crc="9350e754" sha1="57b97d9ddecfa2e9a75c4a05cd2b7e821210155a"/> @@ -30585,6 +31213,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>World Heroes (USA)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="2097152"> <rom name="world heroes (usa).bin" size="2097152" crc="0f4d22ec" sha1="5a563f441c3013ac4b3f9e08d5e5a6e05efc5de0"/> @@ -30594,8 +31223,9 @@ Notice that these are not working on real hardware due to bugged code with VDP i <software name="whj" cloneof="wh"> <description>World Heroes (Jpn)</description> - <year>199?</year> - <publisher><unknown></publisher> + <year>1994</year> + <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-J"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="2097152"> <rom name="world heroes (jpn).bin" size="2097152" crc="56e3ceff" sha1="0c806b701069ae72b6cfd19b7b65a123192cff23"/> @@ -30607,6 +31237,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>World Heroes (USA, Prototype, 19940331-B)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="2097152"> <rom name="world heroes (euro) (prototype - mar 31, 1994 - b).bin" size="2097152" crc="d210aa6e" sha1="de2166ed7b4f51aca63abb63db5aee9cff381a1c"/> @@ -30618,6 +31249,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>World Heroes (USA, Prototype, 19940331)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="2097152"> <rom name="world heroes (euro) (prototype - mar 31, 1994).bin" size="2097152" crc="92e1bf14" sha1="aea91bc2c65c33a54b0ec1873be5433beb8685b8"/> @@ -30629,6 +31261,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>World Heroes (Jpn, Prototype, 19940408)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-J"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="2097152"> <rom name="world heroes (jpn) (prototype - apr 08, 1994).bin" size="2097152" crc="2bea7215" sha1="eb981388d7d2183a64673810a4a047780743c637"/> @@ -30640,6 +31273,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>World Heroes (Jpn, Prototype, 19940415)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-J"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="2097152"> <rom name="world heroes (jpn) (prototype - apr 15, 1994).bin" size="2097152" crc="6dec07b3" sha1="a47ac5e017315422194a233d4f0aec9f5cc0e71a"/> @@ -30651,6 +31285,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>World Heroes (Jpn, Prototype, 19940420-B)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-J"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="2097152"> <rom name="world heroes (jpn) (prototype - apr 20, 1994 - b).bin" size="2097152" crc="f5ffb191" sha1="f1e661306009254797fee5224d4feed4ccaa8610"/> @@ -30658,10 +31293,14 @@ Notice that these are not working on real hardware due to bugged code with VDP i </part> </software> - <software name="whjp1" cloneof="wh"> + <software name="whjp1" cloneof="wh" supported="no"> <description>World Heroes (Jpn, Prototype, 19940420, broken - C05 missing)</description> <year>1994</year> <publisher>Sega</publisher> + <notes><![CDATA[ +Black screen +]]></notes> + <sharedfeat name="compatibility" value="NTSC-J"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="2097152"> <rom name="world heroes (jpn) (prototype - apr 20, 1994) (broken - c05 missing).bin" size="2097152" crc="b43b518c" sha1="b4af1c44e32e65f2c167d8fc94e884ed8ff703d1"/> @@ -30673,6 +31312,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>World Heroes (Jpn, Prototype, 19940330)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-J"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="2097152"> <rom name="world heroes (jpn) (prototype - mar 30, 1994).bin" size="2097152" crc="3f93181a" sha1="cafdd71037782d60b41508e7db7fb5fec654ff71"/> @@ -30684,6 +31324,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>World Heroes (USA, Prototype, 19940223)</description> <year>1994</year> <publisher>Sega</publisher> + <!-- Compatibility not enforced --> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="2097152"> <rom name="world heroes (usa) (prototype - feb 23, 1994).bin" size="2097152" crc="f5db477e" sha1="154d8b2415bcbce62656eef63e4fad026ee2d8d0"/> @@ -30707,6 +31348,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>World Heroes (USA, Prototype, 19940303)</description> <year>1994</year> <publisher>Sega</publisher> + <!-- Compatibility not enforced --> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="2097152"> <rom name="world heroes (usa) (prototype - mar 03, 1994).bin" size="2097152" crc="24a63aef" sha1="0caea512a3e3a56da25ee729213427ecb3ec6380"/> @@ -30718,6 +31360,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>World Heroes (USA, Prototype, 19940307)</description> <year>1994</year> <publisher>Sega</publisher> + <!-- Compatibility not enforced --> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="2097152"> <rom name="world heroes (usa) (prototype - mar 07, 1994).bin" size="2097152" crc="45c29350" sha1="f479d845e22dd22f9adf94bf961585bec937898f"/> @@ -30729,6 +31372,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>World Heroes (USA, Prototype, 19940309)</description> <year>1994</year> <publisher>Sega</publisher> + <!-- Compatibility not enforced --> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="2097152"> <rom name="world heroes (usa) (prototype - mar 09, 1994).bin" size="2097152" crc="2c7f9e64" sha1="cf7ab91e4cca7f3ab7203d2468e8375adb8fd7c0"/> @@ -30740,6 +31384,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>World Heroes (USA, Prototype, 19940315)</description> <year>1994</year> <publisher>Sega</publisher> + <!-- Compatibility not enforced --> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="2097152"> <rom name="world heroes (usa) (prototype - mar 15, 1994).bin" size="2097152" crc="2c0b2f4f" sha1="d02031fe3130d3d313ab2262e82abb0d921a971c"/> @@ -30751,6 +31396,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>World Heroes (USA, Prototype, 19940316)</description> <year>1994</year> <publisher>Sega</publisher> + <!-- Compatibility not enforced --> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="2097152"> <rom name="world heroes (usa) (prototype - mar 16, 1994).bin" size="2097152" crc="19c74e2a" sha1="592e3500a2700059efc878c4360070c5b9f4b056"/> @@ -30762,6 +31408,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>World Heroes (USA, Prototype, 19940318)</description> <year>1994</year> <publisher>Sega</publisher> + <!-- Compatibility not enforced --> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="2097152"> <rom name="world heroes (usa) (prototype - mar 18, 1994).bin" size="2097152" crc="2bc2a6bb" sha1="fa925428f0f9b651a2037aa3bd3e05e6f22183d8"/> @@ -30773,6 +31420,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>World Heroes (USA, Prototype, 19940322, broken - C07 missing)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="2097152"> <rom name="world heroes (usa) (prototype - mar 22, 1994) (broken - c07 missing).bin" size="2097152" crc="5c3c0931" sha1="0bd56a492bc9adf862d4b745e6e66909b8acc0d2"/> @@ -30784,6 +31432,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>World Heroes (USA, Prototype, 19940323)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="2097152"> <rom name="world heroes (usa) (prototype - mar 23, 1994).bin" size="2097152" crc="587e6739" sha1="2d0fa212a52a1b418fb061926d515200b3a511fa"/> @@ -30795,6 +31444,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>World Heroes (USA, Prototype, 19940324)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="2097152"> <rom name="world heroes (usa) (prototype - mar 24, 1994).bin" size="2097152" crc="8a656942" sha1="4a03d5d1b5e629ae69f9f8c5f0cbc96bf46a3843"/> @@ -30806,6 +31456,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>World Heroes (USA, Prototype, 19940330)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="2097152"> <rom name="world heroes (usa) (prototype - mar 30, 1994).bin" size="2097152" crc="50c797cb" sha1="8c4dc2b06e0734fc8e39997f8da6295d187e316e"/> @@ -30829,6 +31480,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>World of Illusion Starring Mickey Mouse and Donald Duck (USA, Kor)</description> <year>1992</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="1048576"> <rom name="world of illusion starring mickey mouse and donald duck (usa, kor).bin" size="1048576" crc="921ebd1c" sha1="adb0a2edebb6f978c3217075a2f29003a8b025c6"/> @@ -30854,6 +31506,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>World Series Baseball '95 (USA)</description> <year>1995</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_sram"/> <dataarea name="rom" width="16" endianness="big" size="3145728"> @@ -30868,6 +31521,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>World Series Baseball '95 (USA, Prototype, 19941208)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="3145728"> <rom name="world series baseball '95 (prototype - dec 08, 1994).bin" size="3145728" crc="8846b050" sha1="aad244dcad0e5d4ca72e480cd5f18c7977d2a02f"/> @@ -30879,6 +31533,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>World Series Baseball '95 (USA, Prototype, 19941214)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="3145728"> <rom name="world series baseball '95 (prototype - dec 14, 1994).bin" size="3145728" crc="385be354" sha1="406b2d3540c4664356044c38cf4613bd8f76aefa"/> @@ -30890,6 +31545,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>World Series Baseball '95 (USA, Prototype, 19941228-SB)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_sram"/> <dataarea name="rom" width="16" endianness="big" size="3145728"> @@ -30904,6 +31560,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>World Series Baseball '95 (USA, Prototype, 19950202)</description> <year>1995</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_sram"/> <dataarea name="rom" width="16" endianness="big" size="3145728"> @@ -30918,6 +31575,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>World Series Baseball '95 (USA, Prototype, 19950203)</description> <year>1995</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_sram"/> <dataarea name="rom" width="16" endianness="big" size="3145728"> @@ -30932,6 +31590,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>World Series Baseball '95 (USA, Prototype, 19950207)</description> <year>1995</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_sram"/> <dataarea name="rom" width="16" endianness="big" size="3145728"> @@ -30946,6 +31605,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>World Series Baseball '95 (USA, Prototype, 19950209-B)</description> <year>1995</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_sram"/> <dataarea name="rom" width="16" endianness="big" size="3145728"> @@ -30960,6 +31620,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>World Series Baseball '95 (USA, Prototype, 19950209)</description> <year>1995</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_sram"/> <dataarea name="rom" width="16" endianness="big" size="3145728"> @@ -30974,6 +31635,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>World Series Baseball '95 (USA, Prototype, 19950211)</description> <year>1995</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_sram"/> <dataarea name="rom" width="16" endianness="big" size="3145728"> @@ -30988,6 +31650,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>World Series Baseball '95 (USA, Prototype, 19950212)</description> <year>1995</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_sram"/> <dataarea name="rom" width="16" endianness="big" size="3145728"> @@ -31002,6 +31665,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>World Series Baseball '95 (USA, Prototype, 19950213)</description> <year>1995</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_sram"/> <dataarea name="rom" width="16" endianness="big" size="3145728"> @@ -31016,6 +31680,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>World Series Baseball '95 (USA, Prototype, 19950214)</description> <year>1995</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_sram"/> <dataarea name="rom" width="16" endianness="big" size="3145728"> @@ -31030,6 +31695,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>World Series Baseball '95 (USA, Prototype, 19950101-TST)</description> <year>1995</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_sram"/> <dataarea name="rom" width="16" endianness="big" size="3145728"> @@ -31044,6 +31710,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>World Series Baseball '95 (USA, Prototype, 19950103-TST)</description> <year>1995</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_sram"/> <dataarea name="rom" width="16" endianness="big" size="3145728"> @@ -31058,6 +31725,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>World Series Baseball '95 (USA, Prototype, 19950105)</description> <year>1995</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_sram"/> <dataarea name="rom" width="16" endianness="big" size="3145728"> @@ -31072,6 +31740,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>World Series Baseball '95 (USA, Prototype, 19950109-TST)</description> <year>1995</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_sram"/> <dataarea name="rom" width="16" endianness="big" size="3145728"> @@ -31086,6 +31755,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>World Series Baseball '95 (USA, Prototype, 19950110)</description> <year>1995</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_sram"/> <dataarea name="rom" width="16" endianness="big" size="3145728"> @@ -31100,6 +31770,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>World Series Baseball '95 (USA, Prototype, 19950114-RM)</description> <year>1995</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="3151446"> <rom name="world series baseball '95 (prototype - jan 14, 1995 - rm).bin" size="3151445" crc="f70b07cf" sha1="b301931fdee91cf8b67f9de4e6935310e643078b"/> @@ -31111,6 +31782,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>World Series Baseball '95 (USA, Prototype, 19950116)</description> <year>1995</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_sram"/> <dataarea name="rom" width="16" endianness="big" size="3145728"> @@ -31125,6 +31797,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>World Series Baseball '95 (USA, Prototype, 19950118-RM)</description> <year>1995</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="3154900"> <rom name="world series baseball '95 (prototype - jan 18, 1995 - rm).bin" size="3154899" crc="5ce70f8f" sha1="f9e1e8424e12ca7c95e926e3bb4d24233eb09c5d"/> @@ -31136,6 +31809,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>World Series Baseball '95 (USA, Prototype, 19950120)</description> <year>1995</year> <publisher>Sega</publisher> + <!-- Compatibility not enforced --> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_sram"/> <dataarea name="rom" width="16" endianness="big" size="3145728"> @@ -31150,6 +31824,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>World Series Baseball '95 (USA, Prototype, 19950125)</description> <year>1995</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_sram"/> <dataarea name="rom" width="16" endianness="big" size="3145728"> @@ -31164,6 +31839,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>World Series Baseball '95 (USA, Prototype, 19950130)</description> <year>1995</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_sram"/> <dataarea name="rom" width="16" endianness="big" size="3145728"> @@ -31192,6 +31868,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>World Series Baseball (USA)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_sram"/> <dataarea name="rom" width="16" endianness="big" size="2097152"> @@ -31217,6 +31894,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>World Series Baseball (USA, Prototype, 19931226)</description> <year>1993</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_sram"/> <dataarea name="rom" width="16" endianness="big" size="2097152"> @@ -31231,6 +31909,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>World Series Baseball (USA, Prototype, 19931229)</description> <year>1993</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_sram"/> <dataarea name="rom" width="16" endianness="big" size="2097152"> @@ -31245,6 +31924,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>World Series Baseball (USA, Prototype, 19940218)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_sram"/> <dataarea name="rom" width="16" endianness="big" size="2097152"> @@ -31259,6 +31939,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>World Series Baseball (USA, Prototype, 19940103)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_sram"/> <dataarea name="rom" width="16" endianness="big" size="2097152"> @@ -31273,6 +31954,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>World Series Baseball (USA, Prototype, 19940106)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_sram"/> <dataarea name="rom" width="16" endianness="big" size="2097152"> @@ -31287,6 +31969,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>World Series Baseball (USA, Prototype, 19940116)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_sram"/> <dataarea name="rom" width="16" endianness="big" size="2097152"> @@ -31312,6 +31995,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>World Series Baseball (USA, Prototype, 19940527)</description> <year>1994</year> <publisher>Sega</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_sram"/> <dataarea name="rom" width="16" endianness="big" size="2097152"> @@ -31346,9 +32030,11 @@ Notice that these are not working on real hardware due to bugged code with VDP i </software> <software name="wormsp" cloneof="worms"> + <!-- TODO: Claims USA really, dumper mistake? --> <description>Worms (Euro, Prototype)</description> <year>1995</year> <publisher>Ocean</publisher> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="2097152"> <rom name="worms (euro) (beta).bin" size="2097152" crc="1d191694" sha1="23127e9b3a98eea13fb97bed2d8e206adb495d97"/> @@ -31955,11 +32641,16 @@ Notice that these are not working on real hardware due to bugged code with VDP i </part> </software> - <software name="zhuogu"> - <description>Zhuo Gui Da Shi - Ghost Hunter (Chi)</description> + <software name="zhuogu" supported="no"> + <description>Zhuo Gui Da Shi - Ghost Hunter (Tw)</description> <year>1994</year> <publisher>Senchi Technology</publisher> + <notes><![CDATA[ +https://segaretro.org/Zhuo_Gui_Da_Shi:_Ghost_Hunter +Crashes often if you use level select in options menu, particularly later on. +]]></notes> <info name="alt_title" value="抓鬼大師"/> + <info name="developer" value="Jumbo"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="524288"> <rom name="zhuo gui da shi - ghost hunter (chi) (unl).bin" size="524288" crc="76c62a8b" sha1="3424892e913c20754d2e340c6e79476a9eb6761b"/> @@ -32072,11 +32763,15 @@ Notice that these are not working on real hardware due to bugged code with VDP i </part> </software> - <!-- To be used in conjuction with a MegaCD --> - <software name="flux"> + <software name="flux" supported="no"> <description>Flux (Euro)</description> - <year>199?</year> - <publisher><unknown></publisher> + <year>1995</year> + <publisher>Virgin Interactive</publisher> + <notes><![CDATA[ +https://segaretro.org/Flux +Needs Mega CD addon +]]></notes> + <!-- TODO: check compatibility --> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="262144"> <rom name="flux (euro).bin" size="262144" crc="2a1da08c" sha1="6357f38db012278bc889c77c5780a82d535760fd"/> @@ -32084,11 +32779,14 @@ Notice that these are not working on real hardware due to bugged code with VDP i </part> </software> - <!-- To be used in conjuction with a MegaCD --> - <software name="fluxp" cloneof="flux"> + <software name="fluxp" cloneof="flux" supported="no"> <description>Flux (Euro, prototype 19950425)</description> <year>1995</year> - <publisher><unknown></publisher> + <publisher>Virgin Interactive</publisher> + <notes><![CDATA[ +https://segaretro.org/Flux +Needs Mega CD addon +]]></notes> <part name="cart" interface="megadriv_cart"> <feature name="pcb" value="171-5694-01"/> <feature name="ic1" value="M27C1000-12XF1"/> @@ -32101,10 +32799,13 @@ Notice that these are not working on real hardware due to bugged code with VDP i </part> </software> - <software name="meganser"> + <software name="meganser" supported="no"> <description>Mega Anser (Jpn)</description> <year>1989</year> <publisher><unknown></publisher> + <notes><![CDATA[ +Unemulated [Sega Mega Modem] and printer features +]]></notes> <info name="serial" value="G-4502"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="524288"> @@ -32124,10 +32825,13 @@ Notice that these are not working on real hardware due to bugged code with VDP i </part> </software> - <software name="segachnl"> + <software name="segachnl" supported="no"> <description>Sega Channel (Scientific Atlanta) (USA)</description> <year>1994</year> <publisher>Scientific Atlanta</publisher> + <notes><![CDATA[ +Black screen, needs [Sega Channel adapter] peripheral +]]></notes> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="262144"> <rom name="sega channel (usa).bin" size="262144" crc="bc79b6ed" sha1="23a32e7709fc78b1b217a9d4bf2556117d7b431a"/> @@ -32139,6 +32843,9 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>Sega Channel (General Instrument) (USA)</description> <year>1994</year> <publisher>Scientific Atlanta</publisher> + <notes><![CDATA[ +Black screen, needs [Sega Channel adapter] peripheral +]]></notes> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="524288"> <rom name="sega channel (general instruments) (usa).bin" size="524288" crc="5df93f11" sha1="9558af3bc8ebc70b83e2f3d0fc9e6df9d33e8389"/> @@ -32161,6 +32868,10 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>Sega Channel (Jpn, v2.11)</description> <year>1994</year> <publisher>Sega</publisher> + <notes><![CDATA[ +Black screen, needs [Sega Channel adapter] peripheral +Jumps to unmapped area at PC=0xffd004e8 +]]></notes> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="524288"> <rom name="bb40010501.bin" size="524288" crc="aec4706f" sha1="ff89cbda4ec8b453ee26ccd99381912625d830a3" /> @@ -32172,6 +32883,10 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>Sega Channel (Jpn, v2.11 older)</description> <year>1994</year> <publisher>Sega</publisher> + <notes><![CDATA[ +Black screen, needs [Sega Channel adapter] peripheral +Jumps to unmapped area at PC=0xffd004e8 +]]></notes> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="524288"> <rom name="bb40002456.bin" size="524288" crc="02e468e9" sha1="dfdfa94a926666508074019d4ac0ae0487f194c8" /> @@ -32231,10 +32946,13 @@ Notice that these are not working on real hardware due to bugged code with VDP i </part> </software> - <software name="chinf3"> + <software name="chinf3" supported="no"> <description>Tenchi wo Kurau III - Sanguo Wai Chuan - Chinese Fighter (Chi)</description> <year>199?</year> <publisher><unlicensed></publisher> + <notes><![CDATA[ +Crashes during attract or in character select, copy protection +]]></notes> <info name="alt_title" value="天地を喰らうⅢ三国外伝"/> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_chinf3"/> @@ -32294,11 +33012,12 @@ Notice that these are not working on real hardware due to bugged code with VDP i </software> <software name="huanle"> - <description>Huan Le Tao Qi Shu - Smart Mouse (Chi)</description> + <description>Huan Le Tao Qi Shu - Smart Mouse (Tw)</description> <year>199?</year> <publisher>Ming</publisher> <info name="serial" value="GM-95401"/> <info name="alt_title" value="歡樂淘氣鼠"/> + <info name="developer" value="Chuanpu"/> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_smouse"/> <dataarea name="rom" width="16" endianness="big" size="524288"> @@ -32423,9 +33142,13 @@ Notice that these are not working on real hardware due to bugged code with VDP i </software> <software name="rockmnx3"> - <description>Rockman X3</description> + <description>Rockman X3 (Tw)</description> <year>199?</year> + <!-- Taiwan Sankyo Fundship --> <publisher><unlicensed></publisher> + <notes><![CDATA[ +https://segaretro.org/Rockman_X3_(Mega_Drive) +]]></notes> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_rx3"/> <dataarea name="rom" width="16" endianness="big" size="2097152"> @@ -32458,9 +33181,12 @@ Notice that these are not working on real hardware due to bugged code with VDP i </software> <software name="squirrel"> - <description>Squirrel King (Chi)</description> + <description>Squirrel King (Tw)</description> <year>1995</year> - <publisher><unlicensed></publisher> + <publisher>Gamtec</publisher> + <notes><![CDATA[ +https://bootleggames.fandom.com/wiki/Squirrel_King +]]></notes> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_squir"/> <dataarea name="rom" width="16" endianness="big" size="1048576"> @@ -32496,9 +33222,13 @@ Notice that these are not working on real hardware due to bugged code with VDP i </software> <software name="suprbubl"> - <description>Super Bubble Bobble MD (Chi)</description> + <description>Super Bubble Bobble MD (Tw?)</description> <year>1995</year> + <!-- Gamtec? --> <publisher><unlicensed></publisher> + <notes><![CDATA[ +https://bootleggames.fandom.com/wiki/Super_Bubble_Bobble_MD +]]></notes> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_sbubl"/> <dataarea name="rom" width="16" endianness="big" size="1048576"> @@ -32534,9 +33264,9 @@ Notice that these are not working on real hardware due to bugged code with VDP i </software> <software name="mhpoker"> - <description>Du Shen Zhi Meng Huan Puke</description> + <description>Du Shen Zhi Meng Huan Puke (Tw)</description> <year>1995</year> - <publisher>Creaton</publisher> + <publisher>Creaton Softech</publisher> <info name="alt_title" value="赌神之梦幻扑克"/> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_mjlov"/> @@ -32623,11 +33353,12 @@ Notice that these are not working on real hardware due to bugged code with VDP i <!-- Dump with CRC a2ef16de is hacked to bypass protection. If you found it on a real cart, please let us know. --> <software name="tbolt2"> - <description>Lei Dian II - Thunderbolt II (Unl)</description> - <year>199?</year> + <description>Lei Dian II - Thunderbolt II (Tw)</description> + <year>1995</year> <publisher>Sun Green</publisher> <info name="serial" value="GM-95201"/> <info name="alt_title" value="雷電伝説II ~ Lei Dian Chuan Shuo II (Box) / 雷電II"/> + <info name="developer" value="Gamtec"/> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_smouse"/> <dataarea name="rom" width="16" endianness="big" size="524288"> @@ -32699,7 +33430,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <software name="cjmjclub"> <description>Chaoji Majiang Club (Tw)</description> <year>1995</year> - <publisher>Creaton</publisher> + <publisher>Creaton Softech</publisher> <info name="alt_title" value="超級麻將 ~ Super Majong Club"/> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_cjmjclub"/> @@ -32955,7 +33686,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i </software> <software name="tankwar"> - <description>Super Tank War</description> + <description>Super Tank War (Tw)</description> <year>199?</year> <publisher>Gamtec</publisher> <part name="cart" interface="megadriv_cart"> @@ -32970,8 +33701,13 @@ Notice that these are not working on real hardware due to bugged code with VDP i <software name="dynoblaz"> <description>Dyno Blaze (Early Prototype)</description> - <year>199?</year> - <publisher><unknown></publisher> + <year>1995?</year> + <publisher>Virgin Interactive</publisher> + <notes><![CDATA[ +https://segaretro.org/DynoBlaze +Boots to a pink screen (btanb) +]]></notes> + <info name="developer" value="Bonsai Entertainment"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="1511878"> <rom name="dyno blaze (proto).bin" size="1511878" crc="d625e584" sha1="c5f01dcfbf01d9a3b08e4d6ebe0c460cc3508413"/> @@ -33147,8 +33883,13 @@ Notice that these are not working on real hardware due to bugged code with VDP i <software name="deathcal"> <description>Death Caliber (Rus)</description> - <year>199?</year> - <publisher>Tomsoft</publisher> + <year>2002</year> + <publisher>Glorysun</publisher> + <notes><![CDATA[ +https://bootleggames.fandom.com/wiki/Death_Caliber +Unsupported lightgun or mouse? +]]></notes> + <info name="developer" value="Hummer Software, Tomsoft"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="4194304"> <rom name="death caliber.bin" size="4194304" crc="3cd2c797" sha1="414bce2fa385642fccaa4653339dae44f1913505"/> @@ -33160,6 +33901,9 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>Deer Hunter (Rus)</description> <year>199?</year> <publisher>Tomsoft</publisher> + <notes><![CDATA[ +Unsupported lightgun or mouse? +]]></notes> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="1048576"> <rom name="deer hunter.bin" size="1048576" crc="da11978b" sha1="866fb68f8398da233835d198dbfea52bae387818"/> @@ -33170,7 +33914,8 @@ Notice that these are not working on real hardware due to bugged code with VDP i <!-- Does this come from a real cart? or is it a fan hack? --> <software name="diablo" cloneof="fatallab"> <description>Diablo (Rus)</description> - <year>199?</year> + <!-- "Kudos 2010" --> + <year>2010?</year> <publisher><unknown></publisher> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="1048576"> @@ -33488,11 +34233,14 @@ Notice that these are not working on real hardware due to bugged code with VDP i </part> </software> -<!-- What is the relation with Chinese Fighter? --> +<!-- Unprotected GFX modified version of chinf3, with different character roster --> <software name="lotrgs"> <description>Lord of the Rings - The Return of the King (Rus)</description> <year>199?</year> <publisher>Glorysun</publisher> + <notes><![CDATA[ +https://bootleggames.fandom.com/wiki/The_Lord_of_the_Rings_3:_Return_of_the_King +]]></notes> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="2097152"> <rom name="lord of the rings (unl).bin" size="2097152" crc="513ea675" sha1="314fde51223fd2d315cf9c74318a1fc8470d5382"/> @@ -33533,11 +34281,17 @@ Notice that these are not working on real hardware due to bugged code with VDP i </part> </software> - <software name="mario3"> + <software name="mario3" supported="partial"> <description>Mario 3 - Vokrug Sveta (Rus)</description> <year>199?</year> - <publisher><unknown></publisher> + <!-- Kudos --> + <publisher>KDS</publisher> + <notes><![CDATA[ +https://bootleggames.fandom.com/wiki/Mario_3:_Around_the_World +BGM sometimes goes silent (does several [YM2612] 68k writes without bus) +]]></notes> <info name="alt_title" value="Mario 3 Вокруг света"/> + <info name="developer" value="BMB"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="2097152"> <rom name="mario 3 (unl)[a1].bin" size="2097152" crc="6f630ebd" sha1="167f17f3a9d24f5d3ed1fbf7d7310fae53015258"/> @@ -33545,11 +34299,16 @@ Notice that these are not working on real hardware due to bugged code with VDP i </part> </software> - <software name="mario3d" cloneof="mario3"> + <software name="mario3d" cloneof="mario3" supported="partial"> <description>Mario 3 - Vokrug Sveta (Rus, Demo?)</description> <year>199?</year> - <publisher><unknown></publisher> + <!-- Kudos --> + <publisher>KDS</publisher> + <notes><![CDATA[ +https://bootleggames.fandom.com/wiki/Mario_3:_Around_the_World +]]></notes> <info name="alt_title" value="Mario 3 Вокруг света"/> + <info name="developer" value="BMB"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="2097152"> <rom name="mario 3 (unl).bin" size="2097152" crc="69f5b02f" sha1="7c2ebe7c88503bc719d5bcecae183619a7be503c"/> @@ -33557,11 +34316,19 @@ Notice that these are not working on real hardware due to bugged code with VDP i </part> </software> - <software name="mario4"> + <software name="mario4" supported="no"> + <!-- Mario 4: A Space Odyssey --> <description>Mario 4 - Kosmicheskaya Odissyeya (Rus)</description> <year>199?</year> - <publisher><unknown></publisher> + <!-- Kudos --> + <publisher>KDS</publisher> + <notes><![CDATA[ +https://bootleggames.fandom.com/wiki/Mario_3:_Around_the_World +Crashes if you buy anything from the shop (press start) +BGM sometimes goes silent (does several [YM2612] 68k writes without bus) +]]></notes> <info name="alt_title" value="Mario 4 Космическая одиссея"/> + <info name="developer" value="BMB"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="2097152"> <rom name="mario 4 (unl).bin" size="2097152" crc="96b0ecd9" sha1="6c9444268413b76d698ea432cbceb4cdc9a6cfaf"/> @@ -33624,24 +34391,30 @@ Notice that these are not working on real hardware due to bugged code with VDP i </part> </software> - <software name="nba2k" cloneof="nbaact"> + <software name="nba2k" cloneof="nbaact95" supported="yes"> <description>NBA 2000 (Rus)</description> - <year>199?</year> - <publisher><unknown></publisher> + <year>200?</year> + <publisher>Glorysun</publisher> <part name="cart" interface="megadriv_cart"> - <dataarea name="rom" width="16" endianness="big" size="2097152"> - <rom name="nba 2000 (unl).bin" size="2097152" crc="2cef6950" sha1="c9727ca783d730d4ee35ef18023c55a0b8d101e2"/> + <feature name="slot" value="rom_sram"/> + <dataarea name="rom" width="16" endianness="big" size="0x200000"> + <rom name="nba 2000 (unl).bin" size="0x200000" crc="2cef6950" sha1="c9727ca783d730d4ee35ef18023c55a0b8d101e2" status="baddump"/> + </dataarea> + <dataarea name="sram" size="65536"> </dataarea> </part> </software> - <software name="nba2k5" cloneof="nbaact95"> + <software name="nba2k5" cloneof="nbaact95" supported="yes"> <description>NBA 2005 (Rus)</description> - <year>199?</year> + <year>200?</year> <publisher>Glorysun</publisher> <part name="cart" interface="megadriv_cart"> - <dataarea name="rom" width="16" endianness="big" size="2097152"> - <rom name="nba 2005 (unl).bin" size="2097152" crc="e8610238" sha1="5820c8db66cdf74fd926d529e469133666babb46"/> + <feature name="slot" value="rom_sram"/> + <dataarea name="rom" width="16" endianness="big" size="0x200000"> + <rom name="nba 2005 (unl).bin" size="0x200000" crc="e8610238" sha1="5820c8db66cdf74fd926d529e469133666babb46" status="baddump"/> + </dataarea> + <dataarea name="sram" size="65536"> </dataarea> </part> </software> @@ -33717,7 +34490,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <software name="prman2k5" cloneof="prmanger"> <description>Premier Manager - English Premier League 2005 (Pirate)</description> - <year>199?</year> + <year>200?</year> <publisher>Glorysun</publisher> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="1048576"> @@ -33749,10 +34522,14 @@ Notice that these are not working on real hardware due to bugged code with VDP i </part> </software> - <software name="samspir2" cloneof="samsho"> - <description>Samurai Spirits II (Pirate)</description> - <year>199?</year> + <software name="samspir2"> + <!-- Also known as Zhen Shi Hun or Samurai Spirits II --> + <description>Shin Samurai Spirits Haohmaru Jigokuhen (Tw)</description> + <year>1998</year> <publisher><unknown></publisher> + <notes><![CDATA[ +https://segaretro.org/Shin_Samurai_Spirits_Haohmaru_Jigokuhen +]]></notes> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="2097152"> <rom name="samurai spirits ii (unl).bin" size="2097152" crc="2942f180" sha1="fe5a6a28542a313f142ba938956fd43187834805"/> @@ -33820,10 +34597,16 @@ Notice that these are not working on real hardware due to bugged code with VDP i </software> <software name="spongbob" cloneof="coolspot"> - <description>Sponge Bob (Rus)</description> - <year>199?</year> + <description>SpongeBob SquarePants (Rus)</description> + <year>2012?</year> + <!-- Kudos --> <publisher><unlicensed></publisher> + <notes><![CDATA[ +https://bootleggames.fandom.com/wiki/SpongeBob_SquarePants +]]></notes> <info name="alt_title" value="Губка Боб"/> + <!-- compatibility enforced even if it's a bootleg --> + <sharedfeat name="compatibility" value="PAL"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="1048576"> <rom name="sponge bob.bin" size="1048576" crc="c5437496" sha1="1f6fc731c958957d0e28115bac0376b9fd35af81" offset="00000"/> @@ -33878,6 +34661,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <software name="smbbc"> <description>Super Mario Bros. + Battle City (Rus)</description> <year>199?</year> + <!-- Kudos --> <publisher><unlicensed></publisher> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="524288"> @@ -34018,8 +34802,12 @@ Notice that these are not working on real hardware due to bugged code with VDP i <software name="ar" supported="no"> <description>Action Replay (Euro)</description> - <year>199?</year> - <publisher><unknown></publisher> + <year>1991</year> + <publisher>Datel</publisher> + <notes><![CDATA[ +https://segaretro.org/Action_Replay_(Mega_Drive) +Needs own slot type with mountable carts +]]></notes> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="32768"> <rom name="action replay (euro).bin" size="32768" crc="95ff7c3e" sha1="1e0f246826be4ebc7b99bb3f9de7f1de347122e5"/> @@ -34029,8 +34817,11 @@ Notice that these are not working on real hardware due to bugged code with VDP i <software name="ggenie"> <description>Game Genie (Euro, USA, Rev. A)</description> - <year>199?</year> - <publisher><unknown></publisher> + <year>1992</year> + <publisher>Codemasters</publisher> + <notes><![CDATA[ +https://segaretro.org/Game_Genie_(Mega_Drive) +]]></notes> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_ggenie"/> <dataarea name="rom" width="16" endianness="big" size="32768"> @@ -34042,7 +34833,10 @@ Notice that these are not working on real hardware due to bugged code with VDP i <software name="ggenie1" cloneof="ggenie"> <description>Game Genie (Euro, USA)</description> <year>199?</year> - <publisher><unknown></publisher> + <publisher>Codemasters</publisher> + <notes><![CDATA[ +https://segaretro.org/Game_Genie_(Mega_Drive) +]]></notes> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_ggenie"/> <dataarea name="rom" width="16" endianness="big" size="32768"> @@ -34053,8 +34847,12 @@ Notice that these are not working on real hardware due to bugged code with VDP i <software name="par" supported="no"> <description>Pro Action Replay (Euro)</description> - <year>199?</year> - <publisher><unknown></publisher> + <year>1992</year> + <publisher>Datel</publisher> + <notes><![CDATA[ +https://segaretro.org/Action_Replay_(Mega_Drive) +Jumps to invalid address, needs own slot type with mountable carts +]]></notes> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="131072"> <rom name="pro action replay (euro).bin" size="131072" crc="17255224" sha1="b0bbfe0c201b2ab2fc17b37e5709785fedc07170"/> @@ -34064,8 +34862,12 @@ Notice that these are not working on real hardware due to bugged code with VDP i <software name="par2" supported="no"> <description>Pro Action Replay 2 (Euro)</description> - <year>199?</year> - <publisher><unknown></publisher> + <year>1994</year> + <publisher>Datel</publisher> + <notes><![CDATA[ +https://segaretro.org/Action_Replay_(Mega_Drive) +Jumps to invalid address, needs own slot type with mountable carts +]]></notes> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="65536"> <rom name="pro action replay 2 (euro).bin" size="65536" crc="a73abd27" sha1="c488883a0270766d8fff503fd2e4b5e25a15d523"/> @@ -34075,8 +34877,11 @@ Notice that these are not working on real hardware due to bugged code with VDP i <software name="par2a" cloneof="par2" supported="no"> <description>Pro Action Replay 2 (Euro, Alt)</description> - <year>199?</year> - <publisher><unknown></publisher> + <year>1994</year> + <publisher>Datel</publisher> + <notes><![CDATA[ +Jumps to invalid address, needs own slot type with mountable carts +]]></notes> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="65536"> <rom name="pro action replay 2 (euro) (alt).bin" size="65536" crc="e6669a61" sha1="00e4266f3cd7ab2178ca37d564bc5315efdbe967"/> @@ -34085,7 +34890,6 @@ Notice that these are not working on real hardware due to bugged code with VDP i </software> <software name="vr"> - <!-- With SVP --> <description>Virtua Racing (Euro)</description> <year>1994</year> <publisher>Sega</publisher> @@ -34106,11 +34910,13 @@ Notice that these are not working on real hardware due to bugged code with VDP i </part> </software> - <software name="vrj" cloneof="vr"> - <!-- With SVP --> + <software name="vrj" cloneof="vr" supported="partial"> <description>Virtua Racing (Jpn)</description> <year>1994</year> <publisher>Sega</publisher> + <notes><![CDATA[ +Has missing sound samples (i.e. tire screech, "time bonus" on checkpoints) +]]></notes> <info name="serial" value="G-7001"/> <info name="release" value="19940318"/> <info name="alt_title" value="バーチャ レーシング"/> @@ -34131,11 +34937,13 @@ Notice that these are not working on real hardware due to bugged code with VDP i </part> </software> - <software name="vru" cloneof="vr"> - <!-- With SVP --> + <software name="vru" cloneof="vr" supported="partial"> <description>Virtua Racing (USA)</description> <year>1994</year> <publisher>Sega</publisher> + <notes><![CDATA[ +Has missing sound samples (i.e. tire screech, "time bonus" on checkpoints) +]]></notes> <sharedfeat name="compatibility" value="NTSC-U"/> <sharedfeat name="addon" value="SVP"/> <part name="cart" interface="megadriv_cart"> @@ -34157,10 +34965,14 @@ Notice that these are not working on real hardware due to bugged code with VDP i <!-- The next development tools have been dumped by Tiido: all of them would require PC connection with Sega Loader Board and LPT cable. We still need to find the PC-side software for these dumps... --> - <software name="gems"> + <software name="gems" supported="no"> <description>GEMS v2.8</description> <year>199?</year> <publisher><unknown></publisher> + <notes><![CDATA[ +Unsupported Sega Loader Board +]]></notes> + <sharedfeat name="compatibility" value="NTSC-U"/> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="262144"> <rom name="gems.bin" size="262144" crc="98ebb058" sha1="83412622877d9df8ac7c1486b06c490dfa52ebf6"/> @@ -34168,10 +34980,13 @@ Notice that these are not working on real hardware due to bugged code with VDP i </part> </software> - <software name="sndtool"> + <software name="sndtool" supported="no"> <description>Sound Tool v2.2?</description> <year>1991</year> <publisher><unknown></publisher> + <notes><![CDATA[ +Unsupported Sega Loader Board +]]></notes> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="262144"> <rom name="sndtool.bin" size="262144" crc="ee41b452" sha1="a99238e3fdedbeca602f05a4c83f70db1bf1ba84"/> @@ -34183,6 +34998,9 @@ Notice that these are not working on real hardware due to bugged code with VDP i <description>Art Tool</description> <year>199?</year> <publisher><unknown></publisher> + <notes><![CDATA[ +Unsupported Sega Loader Board +]]></notes> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="262144"> <rom name="arttool.bin" size="262144" crc="5353f532" sha1="7f3233f4938fcd26af0733e7645d1a401999de86"/> @@ -34195,26 +35013,30 @@ Notice that these are not working on real hardware due to bugged code with VDP i <!-- Dumps of dubious nature --> -<!-- this dump is 'double interleaved' in .smd AND .md format.. it's trash --> <software name="tetris1" supported="no"> <description>Tetris (Bad?)</description> <year>199?</year> <publisher><unknown></publisher> + <notes><![CDATA[ +Dump is 'double interleaved' in .smd AND .md format +]]></notes> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="524288"> - <rom name="tetris.bin" size="524288" crc="eb024ab2" sha1="44340cd021ab9cfb0536f78d6f0d59ea0f409a40"/> + <rom name="tetris.bin" size="524288" crc="eb024ab2" sha1="44340cd021ab9cfb0536f78d6f0d59ea0f409a40" status="baddump"/> </dataarea> </part> </software> -<!-- this dump seem to be Pele World Tournament Soccer with some weird interleave... it's probably trash --> <software name="virak" supported="no"> <description>Voina Irak (Bad?)</description> <year>199?</year> <publisher><unknown></publisher> + <notes><![CDATA[ +Bad dump of a supposedly Russian version of pele2 (cfr. corrupted MD header at top) +]]></notes> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="2097152"> - <rom name="voina_irak.bin" size="2097152" crc="c7177e93" sha1="017af15b93a7f2e3c9f6310fe01c234f49c47b13"/> + <rom name="voina_irak.bin" size="2097152" crc="c7177e93" sha1="017af15b93a7f2e3c9f6310fe01c234f49c47b13" status="baddump"/> </dataarea> </part> </software> @@ -34226,7 +35048,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i <publisher><unlicensed></publisher> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="2097152"> - <rom name="super_mario_2.bin" size="2097152" crc="0da6dc4b" sha1="f6808fff565f96c0d2f619be890052c7dba3019e"/> + <rom name="super_mario_2.bin" size="2097152" crc="0da6dc4b" sha1="f6808fff565f96c0d2f619be890052c7dba3019e" status="baddump"/> </dataarea> </part> </software> @@ -34236,13 +35058,16 @@ Aborted attempt to hack out the Rockman X3 protection? rockman x3 (unl).bin [1/2] xxx3.bin [1/2] 88.159271% rockman x3 (unl).bin [2/2] xxx3.bin [2/2] IDENTICAL --> - <software name="rockmnx3b" cloneof="rockmnx3"> + <software name="rockmnx3b" cloneof="rockmnx3" supported="no"> <description>Rockman X3 (Bad? Hacked?)</description> <year>199?</year> <publisher><unlicensed></publisher> + <notes><![CDATA[ +Punts to a stack trace screen +]]></notes> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="2097152"> - <rom name="xxx3.bin" size="2097152" crc="188da9f0" sha1="808d29751b572ada0780dc35d587d99c08ba95b0"/> + <rom name="xxx3.bin" size="2097152" crc="188da9f0" sha1="808d29751b572ada0780dc35d587d99c08ba95b0" status="baddump"/> </dataarea> </part> </software> @@ -34262,6 +35087,9 @@ This dump is either a bad dump or a wrongly patched one. <description>Sonic Jam 6 (Bad?)</description> <year>199?</year> <publisher><unlicensed></publisher> + <notes><![CDATA[ +Black screen +]]></notes> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="2097152"> <rom name="sonic jam 6 (unl).bin" size="2097152" crc="bf39d897" sha1="3a6fe5a92dc2ada7e9ab17ac120c7e50d1f9a1ed"/> @@ -34315,13 +35143,15 @@ This dump is either a bad dump or a wrongly patched one. If no additional materials are listed then the results of a successful run should be mentioned here for future reference. --> - <!-- most effects currently fail --> <!-- titan-overdrivemegademo.zip --> <!-- http://www.pouet.net/prod.php?which=61724 --> - <software name="d_titovr"> + <software name="d_titovr" supported="no"> <description>Overdrive (Demo) (Euro)</description> <year>2013</year> <publisher>Titan</publisher> + <notes><![CDATA[ +Most effects fails +]]></notes> <part name="cart" interface="megadriv_cart"> <dataarea name="rom" width="16" endianness="big" size="0x400000"> <rom name="titan-overdrivemegademo.bin" size="0x3f01be" crc="3deb19a9" sha1="6085182099d6a9ad2c8242eae263507e42269b66"/> @@ -34329,13 +35159,17 @@ This dump is either a bad dump or a wrongly patched one. </part> </software> - <!-- Doesn't boot correctly. Needs emulation improvements --> <!-- titan-overdrive2.zip --> <!-- http://www.pouet.net/prod.php?which=69648 --> <software name="d_titov2" supported="no"> <description>Overdrive 2 (Demo) (Euro)</description> <year>2017</year> <publisher>Titan</publisher> + <notes><![CDATA[ +Punts to a 0d2 B50D stack trace screen +Tries to jump to jsr $a385b86.l (?) at PC=0x38b0, must be using its own mapper rather than ssf2 +]]></notes> + <sharedfeat name="compatibility" value="PAL"/> <part name="cart" interface="megadriv_cart"> <feature name="slot" value="rom_ssf2"/> <dataarea name="rom" width="16" endianness="big" size="16777216"> diff --git a/hash/pce_tourvision.xml b/hash/pce_tourvision.xml index 7d861aa88a7..fd698517f9e 100644 --- a/hash/pce_tourvision.xml +++ b/hash/pce_tourvision.xml @@ -37,6 +37,7 @@ Cyber Cross Deep Blue Eternal City F1 Circus +Galaga '88 Hatris Heavy Unit Hanii in the Sky diff --git a/hash/segacd.xml b/hash/segacd.xml index 426a73beabb..99b2ab6b163 100644 --- a/hash/segacd.xml +++ b/hash/segacd.xml @@ -736,8 +736,7 @@ See: http://rawdump.net/ </part> </software> - <!-- Requires 32x add-on! --> - <software name="corpse32" cloneof="corpse"> + <software name="corpse32" cloneof="corpse" supported="no"> <!-- Source: redump.org - http://redump.org/disc/2965/ <rom name="Corpse Killer (USA) (32X).cue" size="220" crc="5d439045" /> <rom name="Corpse Killer (USA) (32X) (Track 1).bin" size="624898176" crc="acd1f057" /> @@ -746,9 +745,14 @@ See: http://rawdump.net/ <description>Corpse Killer (USA, 32X)</description> <year>1995</year> <publisher>Digital Pictures</publisher> + <notes><![CDATA[ +Hangs on BIOS logo +Requires [32X] add-on +]]></notes> <info name="serial" value="T-16201F"/> <info name="ring_code" value="GW 02361 RE-1 SRCR##03"/> - <sharedfeat name="requirement" value="32x"/> + <!-- <sharedfeat name="requirement" value="32x"/> --> + <info name="usage" value="Requires to be run with 32x_scd"/> <part name="cdrom" interface="scd_cdrom"> <diskarea name="cdrom"> <disk name="corpse killer (usa, 32x)" sha1="68a6c75bc730025e90fa413c107090e7f4e377e0"/> @@ -802,7 +806,7 @@ See: http://rawdump.net/ </part> </software> - <software name="dracunl"> + <software name="dracunl" supported="no"> <!-- Source: redump.org - http://redump.org/disc/21040/ http://redump.org/disc/21041/ <rom name="Dracula Unleashed (USA) (Disc 1).cue" size="257" crc="93ade26e" md5="fa725eb12ee7eb683144986261c33bf1" sha1="fdb6ad28c7fc21f99e35684502bcd32dfc1abb1b"/> <rom name="Dracula Unleashed (USA) (Disc 1) (Track 1).bin" size="544372752" crc="0e728a6c" md5="282a9be8157a6167a389c7fff475ed3a" sha1="927b6d0525010265059ab1ee4d23c6a0598b7fb8"/> @@ -815,6 +819,9 @@ See: http://rawdump.net/ <description>Dracula Unleashed (USA)</description> <year>1993</year> <publisher>Sega</publisher> + <notes><![CDATA[ +Requires [disc swap] +]]></notes> <info name="serial" value="4420"/> <info name="ring_code" value="CDAC-053000 14 (Disc 1) / CDAC-053100 4 (Disc 2)"/> <part name="cdrom1" interface="scd_cdrom"> @@ -1156,7 +1163,8 @@ See: http://rawdump.net/ </software> <!-- This game came in a bundle with both a Sega CD compatible disc and one which takes advantage of the 32X expansion. --> - <software name="fahrenhe"> + <!-- TODO: where to load disc 2? Does it detects 32x automatically and just then prompt user? --> + <software name="fahrenhe" supported="partial"> <!-- Source: redump.org - http://redump.org/disc/29440/ http://redump.org/disc/29441/ <rom name="Fahrenheit (USA) (Disc 1) (Key Disc) (Sega CD).cue" size="262" crc="8982108b" md5="0b0a464fd029c7df830ad19ed1bfe099" sha1="825a83edb4966e0d9beaafc2d94233a2a0bc30f0"/> <rom name="Fahrenheit (USA) (Disc 1) (Key Disc) (Sega CD) (Track 1).bin" size="593710656" crc="e22ff784" md5="f96fdb4fc2f8a6308c46d8af793d5c21" sha1="436141455a4726ce065d37db8e39f540c303de0a"/> @@ -1169,6 +1177,9 @@ See: http://rawdump.net/ <description>Fahrenheit (USA, Sega CD & 32X CD)</description> <year>1995</year> <publisher>Sega</publisher> + <notes><![CDATA[ +Has optional unemulated [32X] mode, which in turn needs [disc swap] +]]></notes> <info name="release" value="199503xx" /> <info name="serial" value="4438"/> <info name="ring_code" value="CDAC-088300 1 (Disc 1) / CDAC-088400 1 (Disc 2)"/> @@ -1344,7 +1355,7 @@ See: http://rawdump.net/ </part> </software> - <software name="gztexas"> + <software name="gztexas" supported="no"> <!-- Source: redump.org - http://redump.org/disc/19472/ http://redump.org/disc/19473/ <rom name="Ground Zero Texas (USA) (Disc 1).cue" size="257" crc="d0c584c7" md5="113dd7490af1f86d08f70448d443ed93" sha1="2041c4c954bb0b19ede6dbef1190836c9f2c72b7"/> <rom name="Ground Zero Texas (USA) (Disc 1) (Track 1).bin" size="629355216" crc="20b937a8" md5="27eac38ea6f5deee11367f0062f55608" sha1="d151430da0d6e25af45ecd0a9133dea9a1d1d285"/> @@ -1357,6 +1368,9 @@ See: http://rawdump.net/ <description>Ground Zero Texas (USA)</description> <year>1993</year> <publisher>Sony Imagesoft</publisher> + <notes><![CDATA[ +Requires [disc swap] +]]></notes> <info name="ring_code" value="CDAC-053200 2, CDAC-053200 4 (Disc 1) / CDAC-053300 1 (Disc 2)"/> <info name="serial" value="T-93145"/> <part name="cdrom1" interface="scd_cdrom"> @@ -2233,7 +2247,6 @@ See: http://rawdump.net/ </part> </software> - <!-- Requires 32x add-on! --> <software name="ntrap32" cloneof="ntrap"> <!-- Source: redump.org - http://redump.org/disc/17550/ http://redump.org/disc/17551/ <rom name="Night Trap (USA) (Disc 1) (32X).cue" size="232" crc="40b701ce" /> @@ -2247,9 +2260,15 @@ See: http://rawdump.net/ <description>Night Trap (USA, 32X)</description> <year>1994</year> <publisher>Digital Pictures</publisher> + <notes><![CDATA[ +Hangs on BIOS logo +Requires [32X] add-on +Requires [disc swap] +]]></notes> <info name="serial" value="T-16202F"/> <info name="ring_code" value="GW 00161.1 RE-1 SRCR##02 (Disc 1) / GW 00161.2 RE-1 SRCR##02 (Disc 2)"/> - <sharedfeat name="requirement" value="32x"/> + <!--<sharedfeat name="requirement" value="32x"/>--> + <info name="usage" value="Requires to be run with 32x_scd"/> <part name="cdrom1" interface="scd_cdrom"> <feature name="part_id" value="Disc 1" /> <diskarea name="cdrom"> @@ -2266,7 +2285,7 @@ See: http://rawdump.net/ </software> <!-- This is a dump from the original edition. Investigate if the re-release is different. --> - <software name="ntrapa" cloneof="ntrap"> + <software name="ntrapa" cloneof="ntrap" supported="no"> <!-- Source: redump.org - http://redump.org/disc/17158/ http://redump.org/disc/17159/ <rom name="Night Trap (USA) (Disc 1).cue" size="91" crc="b5fae72b" /> <rom name="Night Trap (USA) (Disc 1).bin" size="616997808" crc="900cf0aa" /> @@ -2277,6 +2296,9 @@ See: http://rawdump.net/ <description>Night Trap (USA)</description> <year>1992</year> <publisher>Sega</publisher> + <notes><![CDATA[ +Required [disc swap] +]]></notes> <info name="serial" value="4903"/> <info name="release" value="199211xx" /> <info name="ring_code" value="CDRM-1027400 5 (Disc 1) / CDRM-1027410 2, CDRM-1027410 1 (Disc 2)"/> @@ -2296,7 +2318,7 @@ See: http://rawdump.net/ </software> <!-- Only the first disk is different from the parent. --> - <software name="ntrapb" cloneof="ntrap"> + <software name="ntrapb" cloneof="ntrap" supported="no"> <!-- Source: redump.org - http://redump.org/disc/20867/ http://redump.org/disc/17159/ <rom name="Night Trap (USA) (Disc 1) (Alt).cue" size="97" crc="f2950016" md5="c9261a74b06972b2e1fbf7addc5fb5a0" sha1="2456d059254e74ebaf8b8f17fc665222fa47c323"/> <rom name="Night Trap (USA) (Disc 1) (Alt).bin" size="616645008" crc="133b76ce" md5="6bfe493a225713115096d730edf77afe" sha1="9cd08d3718e17134a013cae92a52a2ac0b226b77"/> @@ -2307,6 +2329,9 @@ See: http://rawdump.net/ <description>Night Trap (USA, alt)</description> <year>1992</year> <publisher>Sega</publisher> + <notes><![CDATA[ +Requires [disc swap] +]]></notes> <info name="serial" value="4903"/> <info name="release" value="199211xx" /> <info name="ring_code" value="CDRM-1027400 3 (Disc 1) / CDRM-1027410 2, CDRM-1027410 1 (Disc 2)"/> @@ -2331,7 +2356,7 @@ See: http://rawdump.net/ Mega Drive/Genesis while playing the game, the music and sound effects will be improved. As such, this disc is not really a game in it's own right. --> - <software name="psgaesd"> + <software name="psgaesd" supported="no"> <!-- Source: redump.org - http://redump.org/disc/19787/ <rom name="Pier Solar and the Great Architects Enhanced Soundtrack Disc (USA).cue" size="622" crc="6d317fa8" md5="f0e03431664704058746f511e21c0958" sha1="ef30161fe9b6737346530bd74644996b3dc58041"/> <rom name="Pier Solar and the Great Architects Enhanced Soundtrack Disc (USA) (Track 1).bin" size="511769328" crc="59200094" md5="5861f8067b1a3b8f1f6567e844a58dd3" sha1="649ca22c941afb50613167a942fd82b0c0b93384"/> @@ -2342,10 +2367,14 @@ See: http://rawdump.net/ <description>Pier Solar and the Great Architects Enhanced Soundtrack Disc (World)</description> <year>2010</year> <publisher>WaterMelon</publisher> + <notes><![CDATA[ +No support for Mega CD cart slots +]]></notes> <info name="serial" value="T-574013, T-574016, T-574016-50"/> <info name="release" value="20101214" /> <info name="ring_code" value="Enhanced Soundtrack Disc WM WM 2234612235072235144* Enhanced Soundtrack Disc WM B"/> - <sharedfeat name="requirement" value="megadriv -psolar"/> + <!--<sharedfeat name="requirement" value="megadriv -psolar"/>--> + <info name="usage" value="Requires to be run with megadriv psolar cart"/> <part name="cdrom" interface="scd_cdrom"> <diskarea name="cdrom"> <disk name="pier solar and the great architects enhanced soundtrack disc (world)" sha1="1f26cce723ef044f449d87cdb624a2937f40f5d9"/> @@ -2608,7 +2637,7 @@ See: http://rawdump.net/ </part> </software> - <software name="roadaven"> + <software name="roadaven" supported="no"> <!-- Source: redump.org - http://redump.org/disc/29313/ <rom name="Road Avenger (USA).cue" size="453" crc="9e7d5e08" md5="840ebb398cce8d27cf3a5d253d8b575d" sha1="cd2b55540b911786886f43aae99e228d9f85efc5"/> <rom name="Road Avenger (USA) (Track 1).bin" size="317816352" crc="cf3bd177" md5="71e1578e091e0d5df4b07f4f26e4d2c9" sha1="9cf7095ab8f7a5aa5df046d0b665263f4f506f19"/> @@ -2619,6 +2648,9 @@ See: http://rawdump.net/ <description>Road Avenger (USA)</description> <year>1993</year> <publisher>Renovation</publisher> + <notes><![CDATA[ +Black screen, requires sub CPU to be overclocked by 1.5x +]]></notes> <info name="serial" value="T-6207"/> <info name="release" value="199303xx" /> <info name="ring_code" value="SEGA6207 R1D MFD BY JVC"/> @@ -2819,7 +2851,7 @@ See: http://rawdump.net/ </part> </software> - <software name="holmes2"> + <software name="holmes2" supported="no"> <!-- Source: redump.org - http://redump.org/disc/17162/ http://redump.org/disc/17163/ <rom name="Sherlock Holmes - Consulting Detective Vol. II (USA) (Disc 1).cue" size="292" crc="a33aa103" /> <rom name="Sherlock Holmes - Consulting Detective Vol. II (USA) (Disc 1) (Track 1).bin" size="529374048" crc="94a913b7" /> @@ -2832,6 +2864,9 @@ See: http://rawdump.net/ <description>Sherlock Holmes - Consulting Detective Vol. II (USA)</description> <year>1993</year> <publisher>Sega</publisher> + <notes><![CDATA[ +Requires [disc swap] +]]></notes> <info name="serial" value="4653"/> <info name="release" value="199305xx" /> <info name="ring_code" value="CDAC-041000 1 (Disc 1), CDAC-041100 2 (Disc 2)"/> @@ -2976,7 +3011,7 @@ See: http://rawdump.net/ </part> </software> - <software name="slamcity"> + <software name="slamcity" supported="no"> <!-- Source: redump.org - http://redump.org/disc/28031/ http://redump.org/disc/28032/ http://redump.org/disc/28033/ http://redump.org/disc/28034/ <rom name="Slam City with Scottie Pippen (USA) (Disc 1) (Fingers).cue" size="301" crc="3f50c8bc" md5="35ca36913af0a3df72cf8c3492eceec1" sha1="e3511c717bb78966f75e0dd4a2190b5d390faefe"/> <rom name="Slam City with Scottie Pippen (USA) (Disc 1) (Fingers) (Track 1).bin" size="587070960" crc="becd1484" md5="99a012c46ec31fec5f9538eaa510bd5a" sha1="f32cf26f6fa4acf12807e7f1064e9e202d11cff3"/> @@ -2997,6 +3032,9 @@ See: http://rawdump.net/ <description>Slam City with Scottie Pippen (USA, rev. A)</description> <year>1994</year> <publisher>Digital Pictures</publisher> + <notes><![CDATA[ +Requires [disc swap] +]]></notes> <info name="serial" value="T-162035"/> <info name="release" value="199411xx" /> <info name="ring_code" value="GW 02711.1 RE-1 SRCR##01 (Disc 1) / GW 02711.2 RE-1 SRCR**01 (Disc 2) / GW 02711.3 RE-1 SRCR##01 (Disc 3) / GW 02711.4 RE-1 SRCR##01 (Disc 4)"/> @@ -4251,7 +4289,7 @@ See: http://rawdump.net/ </part> </software> - <software name="gztexasa" cloneof="gztexas"> + <software name="gztexasa" cloneof="gztexas" supported="no"> <!-- Source: TOSEC-ISO <rom name="Ground Zero Texas (1993)(Sony Imagesoft)(NTSC)(US)(Disc 1 of 2)[!].cue" size="329" crc="b82ac042" /> <rom name="Ground Zero Texas (1993)(Sony Imagesoft)(NTSC)(US)(Disc 1 of 2)(Track 1 of 2)[!].iso" size="548009984" crc="e397fe2d" /> @@ -4264,6 +4302,9 @@ See: http://rawdump.net/ <description>Ground Zero Texas (USA, alt)</description> <year>1993</year> <publisher>Sony Imagesoft</publisher> + <notes><![CDATA[ +Requires [disc swap] +]]></notes> <info name="serial" value="T-93145"/> <info name="ring_code" value="CDAC-053300 2 (Disc 2)"/> <part name="cdrom1" interface="scd_cdrom"> @@ -4581,7 +4622,7 @@ See: http://rawdump.net/ </software> <!-- Only the first disc is dumped to redump.org standard. The second disc is a TOSEC-ISO dump. --> - <software name="prizefig"> + <software name="prizefig" supported="no"> <!-- Source: TOSEC-ISO & redump.org - http://redump.org/disc/28629/ <rom name="Prize Fighter (USA) (Disc 1).cue" size="226" crc="008693c6" md5="5d9afab480f10aff98863b7bb6e35eb2" sha1="88788d86717177eca87075169ee40d0fdc683286"/> <rom name="Prize Fighter (USA) (Disc 1) (Track 1).bin" size="410527488" crc="7d3f2a3c" md5="f8c2e9f9adc690908bd753c5c5ad1511" sha1="a310fc47ee68ba2f6c860b24b11be76ac4f08d86"/> @@ -4594,6 +4635,9 @@ See: http://rawdump.net/ <description>Prize Fighter (USA)</description> <year>1994</year> <publisher>Sega</publisher> + <notes><![CDATA[ +Requires [disc swap] +]]></notes> <info name="serial" value="MK-4206"/> <info name="ring_code" value="CDAC-052700 2 (Disc 1)"/> <part name="cdrom1" interface="scd_cdrom"> @@ -4729,7 +4773,7 @@ See: http://rawdump.net/ </part> </software> - <software name="slamcitya" cloneof="slamcity"> + <software name="slamcitya" cloneof="slamcity" supported="no"> <!-- Source: TOSEC-ISO <rom name="Slam City with Scottie Pippen (1994)(Digital Pictures)(NTSC)(US)(Disc 1 of 4)[!][Fingers][GW 02711.1].cue" size="399" crc="59d841d8" /> <rom name="Slam City with Scottie Pippen (1994)(Digital Pictures)(NTSC)(US)(Disc 1 of 4)(Track 1 of 2)[!][Fingers][GW 02711.1].iso" size="511191040" crc="6747b14f" /> @@ -4750,6 +4794,9 @@ See: http://rawdump.net/ <description>Slam City with Scottie Pippen (USA)</description> <year>1994</year> <publisher>Digital Pictures</publisher> + <notes><![CDATA[ +Requires [disc swap] +]]></notes> <info name="serial" value="T-162035"/> <info name="release" value="199411xx" /> <info name="ring_code" value="GW 02711.1 (Disc 1) / GW 02711.2 (Disc 2) / GW 02711.3 (Disc 3) / GW 02711.4 (Disc 4)"/> @@ -4782,8 +4829,7 @@ See: http://rawdump.net/ </part> </software> - <!-- Requires 32x add-on! --> - <software name="slamcity32" cloneof="slamcity"> + <software name="slamcity32" cloneof="slamcity" supported="no"> <!-- Source: TOSEC-ISO <rom name="Slam City with Scottie Pippen (1994)(Digital Pictures)(NTSC)(US)(Disc 1 of 4)[!][Fingers][32X].cue" size="385" crc="55a0b768" /> <rom name="Slam City with Scottie Pippen (1994)(Digital Pictures)(NTSC)(US)(Disc 1 of 4)(Track 1 of 2)[!][Fingers][32X].iso" size="529147904" crc="1c6665b1" /> @@ -4804,8 +4850,14 @@ See: http://rawdump.net/ <description>Slam City with Scottie Pippen (USA, 32X)</description> <year>1994</year> <publisher>Digital Pictures</publisher> + <notes><![CDATA[ +Hangs on BIOS logo +Requires [32X] add-on +Requires [disc swap] +]]></notes> <info name="serial" value="T16204F"/> - <sharedfeat name="requirement" value="32x"/> + <!-- <sharedfeat name="requirement" value="32x"/> --> + <info name="usage" value="Requires to be run with 32x_scd"/> <part name="cdrom1" interface="scd_cdrom"> <feature name="part_id" value="Disc 1 - Fingers" /> <diskarea name="cdrom"> @@ -4872,7 +4924,7 @@ See: http://rawdump.net/ </part> </software> - <software name="supremew"> + <software name="supremew" supported="no"> <!-- Source: TOSEC-ISO <rom name="Supreme Warrior - Ying Heung (1994)(Digital Pictures)(NTSC)(US)(Disc 1 of 2)[!][Fire & Earth][GW 02411.1 RE-1].cue" size="417" crc="503b570d" /> <rom name="Supreme Warrior - Ying Heung (1994)(Digital Pictures)(NTSC)(US)(Disc 1 of 2)(Track 1 of 2)[!][Fire & Earth][GW 02411.1 RE-1].iso" size="427319296" crc="c12c22aa" /> @@ -4885,6 +4937,9 @@ See: http://rawdump.net/ <description>Supreme Warrior (USA)</description> <year>1994</year> <publisher>Digital Pictures</publisher> + <notes><![CDATA[ +Requires [disc swap] +]]></notes> <info name="serial" value="T-162045"/> <info name="alt_title" value="Supreme Warrior - Ying Heung (Box)" /> <info name="ring_code" value="GW 02411.1 RE-1 (Disc 1), GW 02411.2 RE-1 (Disc 2)"/> @@ -4902,8 +4957,7 @@ See: http://rawdump.net/ </part> </software> - <!-- Requires 32x add-on! --> - <software name="supremew32" cloneof="supremew"> + <software name="supremew32" cloneof="supremew" supported="no"> <!-- Source: TOSEC-ISO <rom name="Supreme Warrior - Ying Heung (1994)(Digital Pictures)(NTSC)(US)(en-zh)(Disc 1 of 2)[!][Fire & Earth][32X].cue" size="407" crc="6c4630fc" /> <rom name="Supreme Warrior - Ying Heung (1994)(Digital Pictures)(NTSC)(US)(en-zh)(Disc 1 of 2)(Track 1 of 2)[!][Fire & Earth][32X].iso" size="459593728" crc="a65565f4" /> @@ -4916,9 +4970,15 @@ See: http://rawdump.net/ <description>Supreme Warrior (USA, 32X)</description> <year>1994</year> <publisher>Digital Pictures</publisher> + <notes><![CDATA[ +Hangs on BIOS logo +Requires [32X] add-on +Requires [disc swap] +]]></notes> <info name="serial" value="T-16203F"/> <info name="alt_title" value="Supreme Warrior - Ying Heung (Box)" /> - <sharedfeat name="requirement" value="32x"/> + <!-- <sharedfeat name="requirement" value="32x"/> --> + <info name="usage" value="Requires to be run with 32x_scd"/> <part name="cdrom1" interface="scd_cdrom"> <feature name="part_id" value="Disc 1 - Fire and Earth" /> <diskarea name="cdrom"> @@ -5470,10 +5530,13 @@ See: http://rawdump.net/ <!-- Sourced from the hiddenpalace forums - http://hiddenpalace.org/forums/viewtopic.php?t=2880 --> <!-- Marked as bad dump as it's an MP3-based dump, but probably it's also a broken dump. --> - <software name="johnnymn"> + <software name="johnnymn" supported="no"> <description>Johnny Mnemonic (USA, prototype)</description> <year>1995?</year> <publisher>Sega</publisher> + <notes><![CDATA[ +Requires [disc swap] +]]></notes> <part name="cdrom1" interface="scd_cdrom"> <feature name="part_id" value="Disc 1" /> <diskarea name="cdrom1"> @@ -5607,7 +5670,7 @@ See: http://rawdump.net/ </part> </software> - <software name="ntrap"> + <software name="ntrap" supported="no"> <!-- Source: TruRip <rom name="Media (CD-ROM)\Night Trap (Rerelease) (1994)(Digital Pictures)(US) - (Disc 1 of 2).ccd" size="934" crc="a9d84328" md5="2d6273e67c6602ac5756c3dedabe23ca" sha1="7534eaccfd1977956f36e7492516e0252a111e79"/> <rom name="Media (CD-ROM)\Night Trap (Rerelease) (1994)(Digital Pictures)(US) - (Disc 1 of 2).img" size="619613232" crc="7cb50000" md5="6061e5642a6070ca6e46269386f4cf06" sha1="53693355efedd1b5afdb24aca323697c860ffd46"/> @@ -5620,6 +5683,9 @@ See: http://rawdump.net/ <description>Night Trap (USA, Re-Release)</description> <year>1995</year> <publisher>Sega</publisher> + <notes><![CDATA[ +Requires [disc swap] +]]></notes> <info name="serial" value="T-162105"/> <part name="cdrom1" interface="scd_cdrom"> <feature name="part_id" value="Disc 1" /> @@ -5654,11 +5720,14 @@ See: http://rawdump.net/ </software> <!-- Marked as bad dump as it's an MP3-based dump. --> - <software name="pennsmok"> + <software name="pennsmok" supported="no"> <!-- Unknown source --> <description>Penn & Teller's Smoke and Mirrors (USA, prototype)</description> <year>1995?</year> <publisher>Absolute Entertainment</publisher> + <notes><![CDATA[ +Requires [disc swap] +]]></notes> <part name="cdrom1" interface="scd_cdrom"> <feature name="part_id" value="Disc 1" /> <diskarea name="cdrom"> @@ -5766,7 +5835,7 @@ See: http://rawdump.net/ </software> <!-- - <software name="surgical32x" cloneof="surgical"> + <software name="surgical32" cloneof="surgical"> <description>Surgical Strike (Bra, 32X)</description> <year>1996</year> <publisher>Sega</publisher> diff --git a/hash/sms.xml b/hash/sms.xml index bc7fd11eed7..abab45cbbef 100644 --- a/hash/sms.xml +++ b/hash/sms.xml @@ -5333,10 +5333,11 @@ license:CC0 <description>Phantasy Star (Jpn, MD / Saturn Collection CD)</description> <year>1994</year> <publisher>Sega</publisher> + <info name="serial" value="G-4534"/> <part name="cart" interface="sms_cart"> <feature name="battery" value="yes" /> <dataarea name="rom" size="524288"> - <rom name="phantasy star (j) (from saturn collection cd).bin" size="524288" crc="07301f83" sha1="b3ae447dc739256616b44cbd77cb903c9f19e980" offset="000000" /> + <rom name="phantasy star (j) (from saturn collection cd).bin" size="524288" crc="07301f83" sha1="b3ae447dc739256616b44cbd77cb903c9f19e980" offset="000000" status="baddump"/> </dataarea> <dataarea name="ram" size="8192"> </dataarea> diff --git a/hash/snes.xml b/hash/snes.xml index 1515ebd6390..6b87a1b9adc 100644 --- a/hash/snes.xml +++ b/hash/snes.xml @@ -2410,6 +2410,29 @@ Beyond that last category are the roms waiting to be classified. </part> </software> + <software name="pockyp" cloneof="pocky"> + <!-- 64history.net --> + <description>Pocky & Rocky (USA, prototype)</description> + <year>1993</year> + <publisher>Natsume</publisher> + <part name="cart" interface="snes_cart"> + <feature name="pcb" value="SHVC-2P3B-01" /> + <feature name="u1" value="U1 EPROM(J) [27C040-10]" /> + <feature name="u2" value="U2 EPROM(J) [27C040-10]" /> + <feature name="u3" value="U3 SRAM" /> + <feature name="u4" value="U4 74F139" /> + <feature name="u5" value="U5 CIC" /> + <feature name="lockout" value="D411" /> + <feature name="battery" value="BATT CR2032 [empty]" /> + <feature name="cart_model" value="no shell" /> + <feature name="slot" value="lorom" /> + <dataarea name="rom" size="1048576"> + <rom name="sample 11-24 2-1.u1" size="524288" crc="342dc7f3" sha1="48237ad874d0ab8b63ca64430edc8dfa358f4872" offset="0x000000" /> + <rom name="pocky & rocky.u2" size="524288" crc="a6e6325d" sha1="1178c8bd01b139bb1c8539b8d812d9b815aebe60" offset="0x080000" /> + </dataarea> + </part> + </software> + <software name="ppersia2p" cloneof="ppersia2"> <!-- legrospixel.com --> <description>Prince of Persia 2 - The Shadow & The Flame (Euro, prototype 19950417)</description> @@ -2439,6 +2462,30 @@ Beyond that last category are the roms waiting to be classified. </part> </software> + <software name="puggsy"> + <description>Puggsy (prototype)</description> + <year>1992?</year> + <publisher>Psygnosis?</publisher> + <part name="cart" interface="snes_cart"> + <feature name="pcb" value="SHVC-2P3B-01" /> + <feature name="u1" value="U1 EPROM(J) [TC574000D-120]" /> + <feature name="u2" value="U2 EPROM(J) [TC574000D-120]" /> + <feature name="u3" value="U3 SRAM" /> + <feature name="u4" value="U4 74F139" /> + <feature name="u5" value="U5 CIC" /> + <feature name="lockout" value="D411" /> + <feature name="battery" value="BATT CR2032" /> + <feature name="cart_model" value="no shell" /> + <feature name="slot" value="lorom" /> + <dataarea name="rom" size="1048576"> + <rom name="pug 0.u1" size="524288" crc="9dfc73b8" sha1="9874c415e0d5d1bedf9f9c37917cf091b2dc4f74" offset="0x000000" /> + <rom name="pug 1.u2" size="524288" crc="039f4621" sha1="08db807715a917678bd5cc71bbe270a474a055e2" offset="0x080000" /> + </dataarea> + <dataarea name="nvram" size="8192"> + </dataarea> + </part> + </software> + <software name="rpmp" cloneof="rpm"> <!-- Yakushi~Kabuto --> <description>Radical Psycho Machine Racing (USA, prototype 19910814)</description> @@ -2463,6 +2510,31 @@ Beyond that last category are the roms waiting to be classified. </part> </software> + <software name="radrexup1" cloneof="radrex"> + <!-- 64history.net --> + <description>Radical Rex (USA, prototype 19940318)</description> + <year>1994</year> + <publisher>Activision</publisher> + <part name="cart" interface="snes_cart"> + <feature name="pcb" value="SHVC-2P3B-01" /> + <feature name="u1" value="U1 EPROM(J) [TC574000D-150]" /> + <feature name="u2" value="U2 EPROM(J) [TC574000D-150]" /> + <feature name="u3" value="U3 SRAM" /> + <feature name="u4" value="U4 74F139" /> + <feature name="u5" value="U5 CIC" /> + <feature name="lockout" value="D411A" /> + <feature name="battery" value="BATT CR2032" /> + <feature name="cart_model" value="no shell" /> + <feature name="slot" value="lorom" /> + <dataarea name="rom" size="1048576"> + <rom name="trex 0 radical rex 3-18.u1" size="524288" crc="e3a0106b" sha1="4dd964dd8134a344f1ecc63601f68c605edf235d" offset="0x000000" /> + <rom name="trex 1 3-18.u2" size="524288" crc="53628377" sha1="a1064576be32573ae818f77bc37229ab04d6b6d5" offset="0x080000" /> + </dataarea> + <dataarea name="nvram" size="8192"> + </dataarea> + </part> + </software> + <software name="rapbaskt"> <!-- Notes: this binary was released by a developer, it isn't an image --> <description>Rap Basketball (USA, prototype)</description> @@ -2693,6 +2765,35 @@ Beyond that last category are the roms waiting to be classified. </part> </software> + <software name="prettyfgp" cloneof="prettyfg"> + <!-- 64history.net --> + <description>Seifuku Densetsu Pretty Fighter (Japan, prototype)</description> + <year>1994</year> + <publisher>Imagineer</publisher> + <info name="alt_title" value="制服伝説 プリティ・ファイター" /> + <part name="cart" interface="snes_cart"> + <feature name="pcb" value="SHVC-4PV5B-01" /> + <feature name="u1" value="U1 EPROM" /> + <feature name="u2" value="U2 EPROM" /> + <feature name="u3" value="U3 EPROM" /> + <feature name="u4" value="U4 EPROM" /> + <feature name="u5" value="U5 SRAM" /> <!-- empty socket --> + <feature name="u6" value="U6 PLD [EP330-15CN]" /> + <feature name="u7" value="U7 74LS157" /> + <feature name="u8" value="U8 CIC" /> + <feature name="lockout" value="D411A" /> + <feature name="battery" value="BATT CR2032" /> + <feature name="cart_model" value="no shell" /> + <feature name="slot" value="hirom" /> + <dataarea name="rom" size="2097152"> + <rom name="pretty fighter 0.u1" size="524288" crc="cf33d65c" sha1="574f46da653d4c0d165709f84500222f153c03ab" offset="0x000000" /> + <rom name="pretty fighter 1.u2" size="524288" crc="4a506a62" sha1="7450026953ed6c31c8ceeee4e91e59c89b3ad569" offset="0x080000" /> + <rom name="pretty fighter 2.u3" size="524288" crc="9cd7d048" sha1="b7715eea34a3c621b510290b31b0df341992f474" offset="0x100000" /> + <rom name="pretty fighter 3.u4" size="524288" crc="608d39a4" sha1="df48b16061244ce40fe0324e649bad242a00972a" offset="0x180000" /> + </dataarea> + </part> + </software> + <software name="shooterp"> <!-- nintendoplayer.com --> <description>Shooter (USA, prototype)</description> @@ -2711,6 +2812,35 @@ Beyond that last category are the roms waiting to be classified. </part> </software> + <software name="snoopyp" cloneof="snoopy"> + <!-- 64history.net --> + <description>Snoopy Concert (Japan, prototype)</description> + <year>1995</year> + <publisher>Mitsui Bussan</publisher> + <info name="alt_title" value="スヌーピーコンサート" /> + <part name="cart" interface="snes_cart"> + <feature name="slot" value="hirom" /> + <feature name="pcb" value="SHVC-4PV5B-01" /> + <feature name="u1" value="U1 EPROM" /> + <feature name="u2" value="U2 EPROM" /> + <feature name="u3" value="U3 EPROM" /> + <feature name="u4" value="U4 EPROM" /> + <feature name="u5" value="U5 SRAM" /> <!-- empty socket --> + <feature name="u6" value="U6 PLD [EP330-12CN]" /> + <feature name="u7" value="U7 74LS157" /> + <feature name="u8" value="U8 CIC" /> + <feature name="lockout" value="D411A" /> + <feature name="battery" value="BATT CR2032" /> + <feature name="cart_model" value="no shell" /> + <dataarea name="rom" size="2097152"> + <rom name="u1" size="524288" crc="af41b784" sha1="8be0fed792f7ba5b534818607a9693413b465207" offset="0x000000" /> + <rom name="u2" size="524288" crc="1c6c73fd" sha1="d2e8baef7ef6b87c93700c3c2b0a00d10075dcf8" offset="0x080000" /> + <rom name="u3" size="524288" crc="3ad432fc" sha1="c9d390d411be45992803642ac24d0083f13145a6" offset="0x100000" /> + <rom name="snoopy concert japan vers.u4" size="524288" crc="3c265a66" sha1="93bdecbae57d417af1825f7c1fceab3360c8c0b9" offset="0x180000" /> + </dataarea> + </part> + </software> + <software name="speedracp" cloneof="speedrac"> <!-- 64history.net --> <description>Speed Racer in My Most Dangerous Adventures (USA, prototype)</description> @@ -45594,6 +45724,19 @@ List of unclassified roms </part> </software> + <software name="dionp" cloneof="imperium"> + <description>Kidou Soukou Dion (Japan, prototype)</description> + <year>1992</year> + <publisher>Vic Tokai</publisher> + <info name="alt_title" value="機動装甲ダイオン" /> + <part name="cart" interface="snes_cart"> + <feature name="slot" value="lorom" /> + <dataarea name="rom" size="1048576"> + <rom name="imperium.00ff.sfc" size="1048576" crc="2c4b9492" sha1="bf4c617f7fd407847ad72cb7f843dee620180e33" offset="0x000000" /> + </dataarea> + </part> + </software> + <software name="patlabor"> <description>Kidou Keisatsu Patlabor (Jpn)</description> <year>1994</year> diff --git a/hash/specpls3_flop.xml b/hash/specpls3_flop.xml index 1714ef4146c..6a8b7c4c982 100644 --- a/hash/specpls3_flop.xml +++ b/hash/specpls3_flop.xml @@ -20232,6 +20232,24 @@ license:CC0 </part> </software> + <software name="mis5estr"> + <description>Made in Spain 5 Estrellas</description> + <year>1989</year> + <publisher>Zigurat Software</publisher> + <part name="flop1" interface="floppy_3"> + <feature name="part_id" value="Side A: Presentación, Sir Fred, Humphrey"/> + <dataarea name="flop" size="171225"> + <rom name="made in spain 5 estrellas - side 1.dsk" size="171225" crc="4be77f9d" sha1="bfba9faef9193b1fe735b5540ee558f0ea586a6e" offset="0"/> + </dataarea> + </part> + <part name="flop2" interface="floppy_3"> + <feature name="part_id" value="Side B: Fred, El Misterio del Nilo, Afteroids"/> + <dataarea name="flop" size="156579"> + <rom name="made in spain 5 estrellas - side 2.dsk" size="156579" crc="bebd4a73" sha1="00076cda545b36315fc19ce17b6666387fde81cd" offset="0"/> + </dataarea> + </part> + </software> + <software name="m3unlock"> <description>M3 Unlock</description> <year>1990</year> @@ -20527,6 +20545,17 @@ license:CC0 </part> </software> + <software name="sptenis"> + <description>Simulador Profesional de Tenis</description> + <year>1990</year> + <publisher>Dinamic Software</publisher> + <part name="flop1" interface="floppy_3"> + <dataarea name="flop" size="75255"> + <rom name="simulador profesional de tenis.dsk" size="75255" crc="b824547a" sha1="d23559d0b4505403efbeb5d7c561b0e5a1a8c425" offset="0"/> + </dataarea> + </part> + </software> + <software name="skatcraz"> <description>Skate Crazy</description> <year>1988</year> diff --git a/src/devices/bus/megadrive/jcart.cpp b/src/devices/bus/megadrive/jcart.cpp index f823fb8dfa2..d41116d762e 100644 --- a/src/devices/bus/megadrive/jcart.cpp +++ b/src/devices/bus/megadrive/jcart.cpp @@ -90,25 +90,24 @@ void md_seprom_mm96_device::device_add_mconfig(machine_config &config) static INPUT_PORTS_START( jcart_ipt ) PORT_START("JCART3") /* Joypad 3 on J-Cart (3 button + start) */ - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3) PORT_NAME("P3 B") - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(3) PORT_NAME("P3 C") - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3) PORT_NAME("P3 A") - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START ) PORT_PLAYER(3) + PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) PORT_NAME("%p Up") + PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) PORT_NAME("%p Down") + PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) PORT_NAME("%p Left") + PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) PORT_NAME("%p Right") + PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) PORT_NAME("%p B") + PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) PORT_NAME("%p C") + PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) PORT_NAME("%p A") + PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START ) PORT_PLAYER(1) PORT_NAME("%p Start") PORT_START("JCART4") /* Joypad 4 on J-Cart (3 button + start) */ - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(4) PORT_NAME("P4 B") - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(4) PORT_NAME("P4 C") - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(4) PORT_NAME("P4 A") - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START ) PORT_PLAYER(4) - + PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) PORT_NAME("%p Up") + PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) PORT_NAME("%p Down") + PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) PORT_NAME("%p Left") + PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) PORT_NAME("%p Right") + PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) PORT_NAME("%p B") + PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) PORT_NAME("%p C") + PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) PORT_NAME("%p A") + PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START ) PORT_PLAYER(2) PORT_NAME("%p Start") INPUT_PORTS_END ioport_constructor md_jcart_device::device_input_ports() const diff --git a/src/devices/cpu/h8/h8_timer16.cpp b/src/devices/cpu/h8/h8_timer16.cpp index fdb0e3ddd05..f74acb4816f 100644 --- a/src/devices/cpu/h8/h8_timer16.cpp +++ b/src/devices/cpu/h8/h8_timer16.cpp @@ -329,7 +329,7 @@ void h8_timer16_device::device_start() { memset(timer_channel, 0, sizeof(timer_channel)); for(int i=0; i<timer_count; i++) { - char tm[2]; + char tm[0x10]; sprintf(tm, "%d", i); timer_channel[i] = subdevice<h8_timer16_channel_device>(tm); } diff --git a/src/devices/cpu/pdp8/pdp8dasm.cpp b/src/devices/cpu/pdp8/pdp8dasm.cpp index ad7a886ff0e..4230eb9f20a 100644 --- a/src/devices/cpu/pdp8/pdp8dasm.cpp +++ b/src/devices/cpu/pdp8/pdp8dasm.cpp @@ -127,11 +127,17 @@ void pdp8_disassembler::dasm_memory_reference(std::ostream &stream, u16 inst, of { stream << " /AUTO-INDEX"; if (BIT(inst, 7)) - stream << "?"; // IM6100 does no auto-indexing in this case + stream << " OR CURRENT PAGE"; // IM6100 does no auto-indexing in this case } + else if (BIT(inst, 7) && (pc & 07600) == 0) + stream << " /CURRENT PAGE"; } else + { util::stream_format(stream, " %04o", addr); + if (BIT(inst, 7) && (pc & 07600) == 0) + stream << " /CURRENT PAGE"; + } } offs_t pdp8_disassembler::dasm_iot(std::ostream &stream, u16 dev, offs_t pc) diff --git a/src/devices/cpu/tx0/tx0dasm.cpp b/src/devices/cpu/tx0/tx0dasm.cpp index fedef573ce7..cc0a1b620df 100644 --- a/src/devices/cpu/tx0/tx0dasm.cpp +++ b/src/devices/cpu/tx0/tx0dasm.cpp @@ -41,7 +41,12 @@ 1.7 | 600010 (CRY) Add carry digits to AC (according to MBR) 1.8 | 603000 (HLT) Halt computer - ANL and ORL were added in the first half of 1959 (M-5001-6). + ANL and ORL were added in May 1959, along with TRA (M-5001-6). + LLR and SLR were added a few months later (M-5001-7). + + A few derived OPRs not mentioned in M-5001-27 are documented in + the listing of the updated vocabulary table for the TRA-patched + version of UT3. Mnemonics and relative timing of operate class micro-instructions after 1960 (as given in M-5001-27-3 and M-5001-27-4): @@ -77,6 +82,10 @@ 1.8 | 603000 (HLT) Halt computer Previously supported Input-Output Stop group codes were unchanged. + However, the old semantics of R1L cycling AC left after reading one + line are no longer obtainable because AMB now occurs after rather than + before IOS. Anticipation of this incompatibity (q.v. M-5001-16) is + likely why R1L is unlisted in M-5001-27. ***************************************************************************/ @@ -129,7 +138,7 @@ offs_t tx0_64kw_disassembler::disassemble(std::ostream &stream, offs_t pc, const void tx0_64kw_disassembler::dasm_opr(std::ostream &stream, u32 inst) { -switch (inst) + switch (inst) { case 0600012: stream << "cry"; @@ -159,6 +168,10 @@ switch (inst) stream << "pen"; break; + case 0600121: + stream << "cpa"; + break; + case 0600200: stream << "lro"; break; @@ -195,6 +208,10 @@ switch (inst) stream << "dsc"; break; + case 0622100: + stream << "dip"; + break; + case 0624000: stream << "prt"; break; @@ -243,6 +260,10 @@ switch (inst) stream << "tac"; break; + case 0740012: + stream << "lal"; + break; + case 0740022: stream << "lac"; break; @@ -739,7 +760,7 @@ offs_t tx0_8kw_disassembler::disassemble(std::ostream &stream, offs_t pc, const stream << "arx"; break; - case 0100000: case 0140000: + case 0100000: stream << "cla"; break; @@ -751,7 +772,7 @@ offs_t tx0_8kw_disassembler::disassemble(std::ostream &stream, offs_t pc, const stream << "lal"; break; - case 0100022: case 0140022: + case 0100022: stream << "lac"; break; @@ -759,7 +780,7 @@ offs_t tx0_8kw_disassembler::disassemble(std::ostream &stream, offs_t pc, const stream << "lacUlxr"; break; - case 0100040: case 0140040: + case 0100040: stream << "clc"; break; diff --git a/src/devices/sound/flt_vol.cpp b/src/devices/sound/flt_vol.cpp index e43da0a1ee6..6e63fa1ae1b 100644 --- a/src/devices/sound/flt_vol.cpp +++ b/src/devices/sound/flt_vol.cpp @@ -11,11 +11,11 @@ DEFINE_DEVICE_TYPE(FILTER_VOLUME, filter_volume_device, "filter_volume", "Volume // filter_volume_device - constructor //------------------------------------------------- -filter_volume_device::filter_volume_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, FILTER_VOLUME, tag, owner, clock), - device_sound_interface(mconfig, *this), - m_stream(nullptr), - m_gain(0) +filter_volume_device::filter_volume_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, FILTER_VOLUME, tag, owner, clock), + device_sound_interface(mconfig, *this), + m_stream(nullptr), + m_gain(0) { } @@ -26,8 +26,10 @@ filter_volume_device::filter_volume_device(const machine_config &mconfig, const void filter_volume_device::device_start() { - m_gain = 0x100; + m_gain = 1.0; m_stream = stream_alloc(1, 1, SAMPLE_RATE_OUTPUT_ADAPTIVE); + + save_item(NAME(m_gain)); } @@ -37,13 +39,11 @@ void filter_volume_device::device_start() void filter_volume_device::sound_stream_update(sound_stream &stream, std::vector<read_stream_view> const &inputs, std::vector<write_stream_view> &outputs) { - // no need to work here; just copy input stream to output and apply gain - outputs[0] = inputs[0]; - outputs[0].apply_gain(m_gain); + for (int i = 0; i < outputs[0].samples(); i++) + outputs[0].put(i, inputs[0].get(i) * m_gain); } - void filter_volume_device::flt_volume_set_volume(float volume) { m_stream->update(); diff --git a/src/devices/sound/flt_vol.h b/src/devices/sound/flt_vol.h index 6a3bdab17d5..022a980a6a5 100644 --- a/src/devices/sound/flt_vol.h +++ b/src/devices/sound/flt_vol.h @@ -27,8 +27,8 @@ protected: virtual void sound_stream_update(sound_stream &stream, std::vector<read_stream_view> const &inputs, std::vector<write_stream_view> &outputs) override; private: - sound_stream* m_stream; - stream_buffer::sample_t m_gain; + sound_stream* m_stream; + float m_gain; }; DECLARE_DEVICE_TYPE(FILTER_VOLUME, filter_volume_device) diff --git a/src/devices/video/315_5313.cpp b/src/devices/video/315_5313.cpp index ec0a9d8dc96..fad6d4a39de 100644 --- a/src/devices/video/315_5313.cpp +++ b/src/devices/video/315_5313.cpp @@ -3,12 +3,12 @@ /* Sega 315-5313 VDP emulation, used by Mega Drive/Genesis - TODO: - - Video, DMA timing and HV counter seem incorrect, - they need verification on real hardware. - - Support 128KB VRAM configuration, did any hardware use it? - - Is border area displayable? - - 32X overlay with H32 mode, did all known software use this? +TODO: +- Video, DMA timing and HV counter are incorrect, + they need verification on real hardware. +- Support 128KB VRAM configuration, did any hardware use it? +- Is border area displayable? +- 32X overlay with H32 mode, did all known software use this? */ #include "emu.h" @@ -168,7 +168,8 @@ static const unsigned hres_mul[4] = { 5, 5, 4, 4 }; inline u8 sega315_5313_device::get_hres() { return (MEGADRIVE_REG0C_RS0 | (MEGADRIVE_REG0C_RS1 << 1)) & 3; } int sega315_5313_device::screen_hpos() { return screen().hpos() / (m_lcm_scaling ? hres_mul[get_hres()] : 1); } -#define MAX_HPOSITION 480 // TODO: 342(H32) or 427.5(H40), each scanline used 3420 cycle +// TODO: 342(H32) or 427.5(H40), each scanline used 3420 cycle +#define MAX_HPOSITION 480 DEFINE_DEVICE_TYPE(SEGA315_5313, sega315_5313_device, "sega315_5313", "Sega 315-5313 Megadrive VDP") @@ -577,6 +578,9 @@ void sega315_5313_device::vdp_set_register(int regnum, u8 value) { m_regs[regnum] = value; +// if (regnum == 1) +// printf("%02x %02x (%lld %d %d)\n", regnum, value, screen().frame_number(), screen().hpos(), screen().vpos()); + /* We need special handling for the IRQ enable registers, some games turn off the irqs before they are taken, delaying them until the IRQ is turned back on */ @@ -585,6 +589,12 @@ void sega315_5313_device::vdp_set_register(int regnum, u8 value) { //osd_printf_debug("setting reg 0, irq enable is now %d\n", MEGADRIVE_REG0_IRQ4_ENABLE); + // fatalrew and sesame are very fussy about pending interrupts. + // Former in particular will quickly enable both after the EA logo (cfr. killshow at PC=0x2267a), + // and irq 6 will jump to illegal addresses because the correlated routine isn't set in stack + // but delayed a bit. + // Note that irq 6 is masked for about 5 frames, leaving the assumption that it mustn't + // be left on during all this time. if (m_irq4_pending) { if (MEGADRIVE_REG0_IRQ4_ENABLE) @@ -592,12 +602,6 @@ void sega315_5313_device::vdp_set_register(int regnum, u8 value) else m_lv4irqline_callback(false); } - - /* ??? Fatal Rewind needs this but I'm not sure it's accurate behavior - it causes flickering in roadrash */ - // m_irq6_pending = 0; - // m_irq4_pending = 0; - } if (regnum == 0x01) @@ -608,13 +612,7 @@ void sega315_5313_device::vdp_set_register(int regnum, u8 value) m_lv6irqline_callback(true); else m_lv6irqline_callback(false); - } - - /* ??? */ - // m_irq6_pending = 0; - // m_irq4_pending = 0; - } // if (regnum == 0x0a) @@ -648,7 +646,8 @@ inline u16 sega315_5313_device::vdp_get_word_from_68k_mem(u32 source) return m_space68k->read_word(source); else { - printf("DMA Read unmapped %06x\n", source); + // klaxp + logerror("DMA Read unmapped %06x\n", source); return machine().rand(); } } @@ -1469,7 +1468,8 @@ void sega315_5313_device::render_spriteline_to_spritebuffer(int scanline) if (pri == 1) pri = 0x80; else pri = 0x40; - /* todo: fix me, I'm sure this isn't right but sprite 0 + other sprite seem to do something.. + // FIXME: Checkout this portion + /* I'm sure this isn't right but sprite 0 + other sprite seem to do something.. maybe spritemask |= 2 should be set for anything < 0x40 ?*/ if (xpos == 0x00) spritemask |= 1; @@ -2252,6 +2252,7 @@ void sega315_5313_device::vdp_handle_scanline_callback(int scanline) { if (!m_use_alt_timing) m_scanline_counter++; // osd_printf_debug("scanline %d\n", get_scanline_counter()); + // TODO: arbitrary timing m_render_timer->adjust(attotime::from_usec(1)); if (get_scanline_counter() == m_irq6_scanline) @@ -2266,11 +2267,11 @@ void sega315_5313_device::vdp_handle_scanline_callback(int scanline) // if (get_scanline_counter() == 0) m_irq4counter = MEGADRIVE_REG0A_HINT_VALUE; // m_irq4counter = MEGADRIVE_REG0A_HINT_VALUE; - if (get_scanline_counter()<=224) + if (get_scanline_counter() <= 224) { m_irq4counter--; - if (m_irq4counter== - 1) + if (m_irq4counter == -1) { if (m_imode == 3) m_irq4counter = MEGADRIVE_REG0A_HINT_VALUE * 2; else m_irq4counter = MEGADRIVE_REG0A_HINT_VALUE; @@ -2279,9 +2280,12 @@ void sega315_5313_device::vdp_handle_scanline_callback(int scanline) if (MEGADRIVE_REG0_IRQ4_ENABLE) { + // TODO: arbitrary timing m_irq4_on_timer->adjust(attotime::from_usec(1)); //osd_printf_debug("irq4 on scanline %d reload %d\n", get_scanline_counter(), MEGADRIVE_REG0A_HINT_VALUE); } + else + m_irq4_on_timer->adjust(attotime::never); } } else @@ -2319,7 +2323,8 @@ void sega315_5313_device::vdp_handle_eof() int scr_mul = 1; m_vblank_flag = 0; - //m_irq6_pending = 0; /* NO! (breaks warlock) */ + // Not here, breaks warlock + //m_irq6_pending = 0; /* Set it to -1 here, so it becomes 0 when the first timer kicks in */ if (!m_use_alt_timing) m_scanline_counter = -1; diff --git a/src/emu/debug/debugcmd.cpp b/src/emu/debug/debugcmd.cpp index ff29281ab64..781ce93e9a5 100644 --- a/src/emu/debug/debugcmd.cpp +++ b/src/emu/debug/debugcmd.cpp @@ -1382,12 +1382,18 @@ void debugger_commands::execute_go_branch(bool sense, const std::vector<std::str void debugger_commands::execute_go_next_instruction(const std::vector<std::string> ¶ms) { u64 count = 1; + static constexpr u64 MAX_COUNT = 512; // if we have a parameter, use it instead */ if (params.size() > 0 && !validate_number_parameter(params[0], count)) return; if (count == 0) return; + if (count > MAX_COUNT) + { + m_console.printf("Too many instructions (must be %d or fewer)\n", MAX_COUNT); + return; + } device_state_interface *stateintf; device_t *cpu = m_machine.debugger().console().get_visible_cpu(); diff --git a/src/emu/debug/debughlp.cpp b/src/emu/debug/debughlp.cpp index dd2a506cde8..a62704c5472 100644 --- a/src/emu/debug/debughlp.cpp +++ b/src/emu/debug/debughlp.cpp @@ -978,7 +978,8 @@ const help_item f_static_help_list[] = "debugger until a breakpoint or watchpoint is hit, or until you manually break in using the " "assigned key. Before executing, the gni command sets a temporary unconditional breakpoint " "<count> instructions sequentially past the current one, which is automatically removed when " - "hit. If <count> is omitted, its default value is 1." + "hit. If <count> is omitted, its default value is 1. If <count> is specified as zero, the " + "command does nothing. <count> is not permitted to exceed 512 decimal." "\n" "Examples:\n" "\n" diff --git a/src/emu/debug/dvmemory.cpp b/src/emu/debug/dvmemory.cpp index 4831023d479..1f1adcb138d 100644 --- a/src/emu/debug/dvmemory.cpp +++ b/src/emu/debug/dvmemory.cpp @@ -540,16 +540,8 @@ void debug_view_memory::view_char(int chval) if (hexchar == nullptr || (m_shift_bits == 3 && chval >= '8')) break; - const debug_view_memory_source &source = downcast<const debug_view_memory_source &>(*m_source); - offs_t address = (source.m_space != nullptr) ? source.m_space->byte_to_address(pos.m_address) : pos.m_address; - u64 data; - bool ismapped = read(m_bytes_per_chunk, address, data); - if (!ismapped) - break; - - data &= ~(util::make_bitmask<u64>(m_shift_bits) << pos.m_shift); - data |= u64(hexchar - hexvals) << pos.m_shift; - write(m_bytes_per_chunk, address, data); + if (!write_digit(pos.m_address, pos.m_shift, hexchar - hexvals)) + break; // TODO: alert OSD? } // fall through to the right-arrow press [[fallthrough]]; @@ -998,6 +990,41 @@ void debug_view_memory::write(u8 size, offs_t offs, u64 data) //------------------------------------------------- +// write_digit - write one hex or octal digit +// at the given address and bit position +//------------------------------------------------- + +bool debug_view_memory::write_digit(offs_t offs, u8 pos, u8 digit) +{ + const debug_view_memory_source &source = downcast<const debug_view_memory_source &>(*m_source); + offs_t address = (source.m_space != nullptr) ? source.m_space->byte_to_address(offs) : offs; + u64 data; + bool ismapped = read(m_bytes_per_chunk, address, data); + if (!ismapped) + return false; + + // clamp to chunk size + if (m_bytes_per_chunk * 8 < pos + m_shift_bits) + { + assert(m_bytes_per_chunk * 8 > pos); + digit &= util::make_bitmask<u8>(m_bytes_per_chunk * 8 - pos); + } + + u64 write_data = (data & ~(util::make_bitmask<u64>(m_shift_bits) << pos)) | (u64(digit) << pos); + write(m_bytes_per_chunk, address, write_data); + + // verify that data reads back as it was written + if (source.m_space != nullptr) + { + read(m_bytes_per_chunk, address, data); + return data == write_data; + } + else + return true; +} + + +//------------------------------------------------- // set_expression - set the expression string // describing the home address //------------------------------------------------- diff --git a/src/emu/debug/dvmemory.h b/src/emu/debug/dvmemory.h index f2c738a6ff4..6f1ffab4e9e 100644 --- a/src/emu/debug/dvmemory.h +++ b/src/emu/debug/dvmemory.h @@ -127,6 +127,7 @@ private: // memory access bool read(u8 size, offs_t offs, u64 &data); void write(u8 size, offs_t offs, u64 data); + bool write_digit(offs_t offs, u8 pos, u8 digit); bool read(u8 size, offs_t offs, extFloat80_t &data); bool read_chunk(offs_t address, int chunknum, u64 &chunkdata); void generate_row(debug_view_char *destmin, debug_view_char *destmax, debug_view_char *destrow, offs_t address); diff --git a/src/lib/netlist/analog/nld_bjt.cpp b/src/lib/netlist/analog/nld_bjt.cpp index 1842e28c509..2ba7240e637 100644 --- a/src/lib/netlist/analog/nld_bjt.cpp +++ b/src/lib/netlist/analog/nld_bjt.cpp @@ -5,6 +5,9 @@ #include "nl_base.h" #include "nlid_twoterm.h" +// Names +// spell-checker: words Ebers, Moll + // FIXME: Remove QBJT_switch - no more use namespace netlist @@ -174,7 +177,7 @@ namespace analog NETLIB_OBJECT_DERIVED(QBJT_switch, QBJT) { NETLIB_CONSTRUCTOR(QBJT_switch) - , m_modacc(m_model) + , m_bjt_model(m_model) , m_RB(*this, "m_RB", NETLIB_DELEGATE(termhandler)) , m_RC(*this, "m_RC", NETLIB_DELEGATE(termhandler)) , m_BC(*this, "m_BC", NETLIB_DELEGATE(termhandler)) @@ -206,7 +209,7 @@ namespace analog NETLIB_UPDATE_TERMINALSI(); private: - bjt_model_t m_modacc; + bjt_model_t m_bjt_model; nld_twoterm m_RB; nld_twoterm m_RC; nld_twoterm m_BC; @@ -227,7 +230,7 @@ namespace analog { public: NETLIB_CONSTRUCTOR(QBJT_EB) - , m_modacc(m_model) + , m_bjt_model(m_model) , m_gD_BC(*this, "m_D_BC") , m_gD_BE(*this, "m_D_BE") , m_D_CB(*this, "m_D_CB", NETLIB_DELEGATE(termhandler)) @@ -245,13 +248,13 @@ namespace analog connect(m_D_EB.N(), m_D_CB.N()); connect(m_D_CB.P(), m_D_EC.N()); - if (m_modacc.m_CJE > nlconst::zero()) + if (m_bjt_model.m_CJE > nlconst::zero()) { create_and_register_subdevice(*this, "m_CJE", m_CJE); connect("B", "m_CJE.1"); connect("E", "m_CJE.2"); } - if (m_modacc.m_CJC > nlconst::zero()) + if (m_bjt_model.m_CJC > nlconst::zero()) { create_and_register_subdevice(*this, "m_CJC", m_CJC); connect("B", "m_CJC.1"); @@ -276,7 +279,7 @@ namespace analog NETLIB_UPDATE_TERMINALSI(); private: - bjt_model_t m_modacc; + bjt_model_t m_bjt_model; generic_diode<diode_e::BIPOLAR> m_gD_BC; generic_diode<diode_e::BIPOLAR> m_gD_BE; @@ -315,13 +318,13 @@ namespace analog NETLIB_UPDATE_PARAM(QBJT_switch) { - nl_fptype IS = m_modacc.m_IS; - nl_fptype BF = m_modacc.m_BF; - nl_fptype NF = m_modacc.m_NF; - //nl_fptype VJE = m_modacc.dValue("VJE", 0.75); + nl_fptype IS = m_bjt_model.m_IS; + nl_fptype BF = m_bjt_model.m_BF; + nl_fptype NF = m_bjt_model.m_NF; + //nl_fptype VJE = m_bjt_model.dValue("VJE", 0.75); // FIXME: check for PNP as well and bail out - set_qtype(m_modacc.m_type); + set_qtype(m_bjt_model.m_type); nl_fptype alpha = BF / (nlconst::one() + BF); @@ -375,12 +378,12 @@ namespace analog if (m_CJE) { m_CJE->reset(); - m_CJE->set_cap_embedded(m_modacc.m_CJE); + m_CJE->set_cap_embedded(m_bjt_model.m_CJE); } if (m_CJC) { m_CJC->reset(); - m_CJC->set_cap_embedded(m_modacc.m_CJC); + m_CJC->set_cap_embedded(m_bjt_model.m_CJC); } } @@ -412,15 +415,15 @@ namespace analog NETLIB_UPDATE_PARAM(QBJT_EB) { - nl_fptype IS = m_modacc.m_IS; - nl_fptype BF = m_modacc.m_BF; - nl_fptype NF = m_modacc.m_NF; - nl_fptype BR = m_modacc.m_BR; - nl_fptype NR = m_modacc.m_NR; - //nl_fptype VJE = m_m_modacc.dValue("VJE", 0.75); + nl_fptype IS = m_bjt_model.m_IS; + nl_fptype BF = m_bjt_model.m_BF; + nl_fptype NF = m_bjt_model.m_NF; + nl_fptype BR = m_bjt_model.m_BR; + nl_fptype NR = m_bjt_model.m_NR; + //nl_fptype VJE = m_m_bjt_model.dValue("VJE", 0.75); // FIXME: check for PNP as well and bail out - set_qtype(m_modacc.m_type); + set_qtype(m_bjt_model.m_type); m_alpha_f = BF / (nlconst::one() + BF); m_alpha_r = BR / (nlconst::one() + BR); diff --git a/src/lib/netlist/analog/nld_generic_models.h b/src/lib/netlist/analog/nld_generic_models.h index aaac759b3f9..6f58c5369d7 100644 --- a/src/lib/netlist/analog/nld_generic_models.h +++ b/src/lib/netlist/analog/nld_generic_models.h @@ -161,7 +161,7 @@ namespace netlist::analog struct generic_capacitor_const { public: - generic_capacitor_const( [[maybe_unused]] core_device_t &dev, [[maybe_unused]] const pstring &name) + generic_capacitor_const([[maybe_unused]] core_device_t &dev, [[maybe_unused]] const pstring &name) : m_gmin(nlconst::zero()) , m_vn(0) , m_in(0) diff --git a/src/lib/netlist/analog/nld_mosfet.cpp b/src/lib/netlist/analog/nld_mosfet.cpp index a07233deb2d..1e976933224 100644 --- a/src/lib/netlist/analog/nld_mosfet.cpp +++ b/src/lib/netlist/analog/nld_mosfet.cpp @@ -1,22 +1,28 @@ // license:BSD-3-Clause // copyright-holders:Couriersud +// Names +// spell-checker: words Farid, Naim, Jahn, Margraf, Habchi, Raimund, Qucs // -// nld_mosfet.cpp -// -// Formulas in here based on the following Sources: -// -// https://www.imperial.ac.uk/pls/portallive/docs/1/7292573.PDF -// http://www3.imperial.ac.uk/pls/portallive/docs/1/56133736.PDF -// https://people.rit.edu/lffeee/SPICE_MOSFET_Model_Intro.pdf -// https://people.rit.edu/lffeee/SPICE.pdf -// http://web.mit.edu/course/6/6.012/SPR98/www/lectures/S98_Lecture10.pdf -// http://homepages.rpi.edu/~sawyes/Models_review.pdf -// http://jaco.ec.t.kanazawa-u.ac.jp/edu/mix/pdf/3.pdf -// -// Farid N. Naim, Circuit Simulation (Wiley-IEEE Press, 2010). -// Stefan Jahn, Michael Margraf, Vincent Habchi and Raimund Jacob, "Qucs Technical Papers" (2007) -// +// Specific technical terms +// spell-checker: words Cgso, Cgdo, Cgbo, Cjsw, Mjsw, Ucrit, Uexp, Utra, Neff, Tnom, capval, Udsat, Utst + +/// +/// \file nld_mosfet.cpp +/// +/// Formulas in here based on the following Sources: +/// +/// https:///www.imperial.ac.uk/pls/portallive/docs/1/7292573.PDF +/// http://www3.imperial.ac.uk/pls/portallive/docs/1/56133736.PDF +/// https://people.rit.edu/lffeee/SPICE_MOSFET_Model_Intro.pdf +/// https://people.rit.edu/lffeee/SPICE.pdf +/// http://web.mit.edu/course/6/6.012/SPR98/www/lectures/S98_Lecture10.pdf +/// http://homepages.rpi.edu/~sawyes/Models_review.pdf +/// http://jaco.ec.t.kanazawa-u.ac.jp/edu/mix/pdf/3.pdf +/// +/// Farid N. Naim, Circuit Simulation (Wiley-IEEE Press, 2010). +/// Stefan Jahn, Michael Margraf, Vincent Habchi and Raimund Jacob, "Qucs Technical Papers" (2007) +/// #include "solver/nld_solver.h" #include "../nl_setup.h" @@ -35,7 +41,7 @@ namespace analog // nld_FET - Base classes // ----------------------------------------------------------------------------- - /// \brief Class representing the nmos/pmos model paramers. + /// \brief Class representing the nmos/pmos model parameters. /// /// This is the model representation of the nmos model. /// @@ -202,10 +208,10 @@ namespace analog , m_Cgb(nlconst::zero()) , m_Cgs(nlconst::zero()) , m_Cgd(nlconst::zero()) - , m_capmod(2) + , m_capacitor_model(2) , m_Vgs(*this, "m_Vgs", nlconst::zero()) , m_Vgd(*this, "m_Vgd", nlconst::zero()) - , m_modacc(m_model) + , m_model_acc(m_model) { register_subalias("S", m_SG.P()); // Source register_subalias("G", m_SG.N()); // Gate @@ -219,9 +225,9 @@ namespace analog set_qtype((m_model.type() == "NMOS_DEFAULT") ? FET_NMOS : FET_PMOS); m_polarity = (qtype() == FET_NMOS ? nlconst::one() : -nlconst::one()); - m_capmod = m_modacc.m_CAPMOD; - // printf("capmod %d %g %g\n", m_capmod, (nl_fptype)m_modacc.m_VTO, m_polarity); - nl_assert_always(m_capmod == 0 || m_capmod == 2, "Error: CAPMODEL invalid value"); + m_capacitor_model = m_model_acc.m_CAPMOD; + //# printf("capmod %d %g %g\n", m_capacitor_model, (nl_fptype)m_model_acc.m_VTO, m_polarity); + nl_assert_always(m_capacitor_model == 0 || m_capacitor_model == 2, "Error: CAPMODEL invalid value"); // // From http://ltwiki.org/LTspiceHelp/LTspiceHelp/M_MOSFET.htm : @@ -233,51 +239,51 @@ namespace analog // But couldn't find a formula for lambda anywhere // - m_lambda = m_modacc.m_LAMBDA; // FIXME: m_lambda only set once + m_lambda = m_model_acc.m_LAMBDA; // FIXME: m_lambda only set once // calculate effective channel length - m_Leff = m_modacc.m_L - 2 * m_modacc.m_LD; + m_Leff = m_model_acc.m_L - 2 * m_model_acc.m_LD; nl_assert_always(m_Leff > nlconst::zero(), "Effective Lateral diffusion would be negative for model"); - nl_fptype Cox = (m_modacc.m_TOX > nlconst::zero()) ? (constants::eps_SiO2() * constants::eps_0() / m_modacc.m_TOX) : nlconst::zero(); + nl_fptype Cox = (m_model_acc.m_TOX > nlconst::zero()) ? (constants::eps_SiO2() * constants::eps_0() / m_model_acc.m_TOX) : nlconst::zero(); // calculate DC transconductance coefficient - if (m_modacc.m_KP > nlconst::zero()) - m_beta = m_modacc.m_KP * m_modacc.m_W / m_Leff; - else if (Cox > nlconst::zero() && m_modacc.m_UO > nlconst::zero()) - m_beta = m_modacc.m_UO * nlconst::magic(1e-4) * Cox * m_modacc.m_W / m_Leff; + if (m_model_acc.m_KP > nlconst::zero()) + m_beta = m_model_acc.m_KP * m_model_acc.m_W / m_Leff; + else if (Cox > nlconst::zero() && m_model_acc.m_UO > nlconst::zero()) + m_beta = m_model_acc.m_UO * nlconst::magic(1e-4) * Cox * m_model_acc.m_W / m_Leff; else - m_beta = nlconst::magic(2e-5) * m_modacc.m_W / m_Leff; + m_beta = nlconst::magic(2e-5) * m_model_acc.m_W / m_Leff; //FIXME::UT can disappear const nl_fptype Vt = constants::T0() * constants::k_b() / constants::Q_e(); // calculate surface potential if not given - if (m_modacc.m_PHI > nlconst::zero()) - m_phi = m_modacc.m_PHI; - else if (m_modacc.m_NSUB > nlconst::zero()) + if (m_model_acc.m_PHI > nlconst::zero()) + m_phi = m_model_acc.m_PHI; + else if (m_model_acc.m_NSUB > nlconst::zero()) { - nl_assert_always(m_modacc.m_NSUB * nlconst::magic(1e6) >= constants::NiSi(), "Error calculating phi for model"); - m_phi = nlconst::two() * Vt * plib::log (m_modacc.m_NSUB * nlconst::magic(1e6) / constants::NiSi()); + nl_assert_always(m_model_acc.m_NSUB * nlconst::magic(1e6) >= constants::NiSi(), "Error calculating phi for model"); + m_phi = nlconst::two() * Vt * plib::log (m_model_acc.m_NSUB * nlconst::magic(1e6) / constants::NiSi()); } else m_phi = nlconst::magic(0.6); // calculate bulk threshold if not given - if (m_modacc.m_GAMMA > nlconst::zero()) - m_gamma = m_modacc.m_GAMMA; + if (m_model_acc.m_GAMMA > nlconst::zero()) + m_gamma = m_model_acc.m_GAMMA; else { - if (Cox > nlconst::zero() && m_modacc.m_NSUB > nlconst::zero()) + if (Cox > nlconst::zero() && m_model_acc.m_NSUB > nlconst::zero()) m_gamma = plib::sqrt (nlconst::two() * constants::Q_e() * constants::eps_Si() * constants::eps_0() - * m_modacc.m_NSUB * nlconst::magic(1e6)) / Cox; + * m_model_acc.m_NSUB * nlconst::magic(1e6)) / Cox; else m_gamma = nlconst::zero(); } - m_vto = m_modacc.m_VTO; + m_vto = m_model_acc.m_VTO; // FIXME zero conversion if(m_vto == nlconst::zero()) log().warning(MW_MOSFET_THRESHOLD_VOLTAGE(m_model.name())); @@ -285,21 +291,21 @@ namespace analog // FIXME: VTO if missing may be calculated from TPG, NSS and temperature. Usually models // specify VTO so skip this here. - m_CoxWL = Cox * m_modacc.m_W * m_Leff; + m_CoxWL = Cox * m_model_acc.m_W * m_Leff; - //printf("Cox: %g\n", m_Cox); + //#printf("Cox: %g\n", m_Cox); } - NETLIB_IS_TIMESTEP(true || m_capmod != 0) + NETLIB_IS_TIMESTEP(true || m_capacitor_model != 0) NETLIB_TIMESTEPI() { - if (m_capmod != 0) + if (m_capacitor_model != 0) { if (ts_type == timestep_type::FORWARD) { - //const nl_nl_fptype Ugd = -m_DG.deltaV() * m_polarity; // Gate - Drain - //const nl_nl_fptype Ugs = -m_SG.deltaV() * m_polarity; // Gate - Source + //#const nl_nl_fptype Ugd = -m_DG.deltaV() * m_polarity; // Gate - Drain + //#const nl_nl_fptype Ugs = -m_SG.deltaV() * m_polarity; // Gate - Source const nl_fptype Ugd = m_Vgd; // Gate - Drain const nl_fptype Ugs = m_Vgs; // Gate - Source const nl_fptype Ubs = nlconst::zero(); // Bulk - Source == 0 if connected @@ -325,9 +331,9 @@ namespace analog NETLIB_NAME(FET)::reset(); // Bulk diodes - m_D_BD.set_param(m_modacc.m_ISD, m_modacc.m_N, exec().gmin(), constants::T0()); + m_D_BD.set_param(m_model_acc.m_ISD, m_model_acc.m_N, exec().gmin(), constants::T0()); #if (!BODY_CONNECTED_TO_SOURCE) - m_D_BS.set_param(m_modacc.m_ISS, m_modacc.m_N, exec().gmin(), constants::T0()); + m_D_BS.set_param(m_model_acc.m_ISS, m_model_acc.m_N, exec().gmin(), constants::T0()); #endif } @@ -375,10 +381,10 @@ namespace analog nl_fptype m_Cgs; nl_fptype m_Cgd; - int m_capmod; + int m_capacitor_model; state_var<nl_fptype> m_Vgs; state_var<nl_fptype> m_Vgd; - fet_model_t m_modacc; + fet_model_t m_model_acc; void set_cap(generic_capacitor<capacitor_e::VARIABLE_CAPACITY> &cap, nl_fptype capval, nl_fptype V, @@ -515,7 +521,7 @@ namespace analog gds = beta * (Vctrl - absVds) + m_lambda * m_beta * absVds * (Vctrl - absVds / nlconst::two()); } - // backgate transconductance + // back gate transconductance const nl_fptype bgtc = (phi_m_Vbulk != nlconst::zero()) ? (m_gamma / phi_m_Vbulk / nlconst::two()) : nlconst::zero(); gmb = gm * bgtc; } @@ -570,7 +576,7 @@ namespace analog const nl_fptype gBS = -gbs; nl_fptype gBB = gbs + gbd; - if (m_capmod != 0) + if (m_capacitor_model != 0) { const nl_fptype Vgb = Vgs - Vbs; @@ -579,9 +585,9 @@ namespace analog else calculate_caps(Vgd, Vgs, Vth, m_Cgd, m_Cgs, m_Cgb); - set_cap(m_cap_gb, m_Cgb + m_modacc.m_CGBO * m_Leff, Vgb, gGG, gGB, gBG, gBB, IG, IB); - set_cap(m_cap_gs, m_Cgs + m_modacc.m_CGSO * m_modacc.m_W, Vgs, gGG, gGS, gSG, gSS, IG, IS); - set_cap(m_cap_gd, m_Cgd + m_modacc.m_CGDO * m_modacc.m_W, Vgd, gGG, gGD, gDG, gDD, IG, ID); + set_cap(m_cap_gb, m_Cgb + m_model_acc.m_CGBO * m_Leff, Vgb, gGG, gGB, gBG, gBB, IG, IB); + set_cap(m_cap_gs, m_Cgs + m_model_acc.m_CGSO * m_model_acc.m_W, Vgs, gGG, gGS, gSG, gSS, IG, IS); + set_cap(m_cap_gd, m_Cgd + m_model_acc.m_CGDO * m_model_acc.m_W, Vgd, gGG, gGD, gDG, gDD, IG, ID); } // Source connected to body, Diode S-B shorted! diff --git a/src/lib/netlist/analog/nlid_twoterm.h b/src/lib/netlist/analog/nlid_twoterm.h index 1cbf750eaa3..e25f985a3e0 100644 --- a/src/lib/netlist/analog/nlid_twoterm.h +++ b/src/lib/netlist/analog/nlid_twoterm.h @@ -72,7 +72,7 @@ namespace netlist::analog , m_N(*this, "2", &m_P, NETLIB_DELEGATE(termhandler)) { } - //NETLIB_CONSTRUCTOR_EX(twoterm, nldelegate owner_delegate) + //#NETLIB_CONSTRUCTOR_EX(twoterm, nldelegate owner_delegate) template <class C> NETLIB_NAME(twoterm)(C &owner, const pstring &name, nldelegate owner_delegate) \ : base_type(owner, name) @@ -233,7 +233,7 @@ namespace netlist::analog private: param_fp_t m_R; - // protect set_R ... it's a recipe to desaster when used to bypass the parameter + // protect set_R ... it's a recipe to disaster when used to bypass the parameter using NETLIB_NAME(R_base)::set_R; using NETLIB_NAME(R_base)::set_G; }; @@ -444,7 +444,7 @@ namespace netlist::analog state_var<nl_fptype> m_last_G; }; - /// \brief Class representing the diode model paramers. + /// \brief Class representing the diode model parameters. /// /// This is the model representation of the diode model. Typically, SPICE uses /// the following parameters. A "Y" in the first column indicates that the diff --git a/src/lib/netlist/build/cspell.json b/src/lib/netlist/build/cspell.json index d1035e868d4..f7297bd3f04 100644 --- a/src/lib/netlist/build/cspell.json +++ b/src/lib/netlist/build/cspell.json @@ -1,33 +1,47 @@ { "words" : [ - "MAME", - "netlist", - "netlists", + "astable", + "behavioural", "datasheet", + "datasheets", + "demultiplexer", + "demultiplexers", + "highpass", + "lowpass", + "misformatted", // not in leo + "monostable", + "presettable", // not in leo + "transconductance", + "retriggerable", // not in leo + // Names + "Chebyshev", + "Raphson", + "Schmitt", + "Schottky", + "Zener", + // Company names + "Fairchild", + "Signetics", + "Mostek", + // Technical terms "cmos", - "opamp", - "opamps", + "kaby", // Kaby Lake "mosfet", "mosfets", - "Chebyshev", - "Fairchild", - "Schmitt", - "Transconductance", "nmos", + "opamp", + "opamps", "pmos", - "retriggerable", // not in leo - "presettable", // not in leo - "misformatted", // not in leo - "monostable", - "demultiplexer", - "demultiplexers", - "behavioural", - "highpass", + // Specific project terms + "MAME", + "Couriersud", + "netlist", + "netlists", "nltool", + "nlwav", "nvcc", - "Couriersud", - "plib", // FIXME: Remove everything below here again - "ppmf" + // FIXME: Remove everything below here again + "pstring" ], "languageSettings": [ // This one works with Python @@ -53,10 +67,10 @@ // Turn off compound words, because it is only checking strings. "allowCompoundWords": false, // Only check comments and strings - "includeRegExpList": [ - "CStyleComment", - "string" - ], + //"includeRegExpList": [ + // "CStyleComment", + // "string" + //], "ignoreRegExpList": [ "/#include.*/", // Exclude includes, because they are also strings "/#pragma.*/", // Exclude pragmas, they may include strings @@ -69,7 +83,10 @@ // Project specific exclusions start here "/\/\/ copyright-holders.*/", "/\/\/- Pinalias:/", - "/\/\/#.*/" // commented source code + "/\/\/#.*/", // commented source code + "\/\/ Source:.*/", // generated code + "/\\$[A-z0-9][^\\s]*/", // everything starting with a $ + "/[A-z][^\\s]+::[^\\s]+/" // any namespace qualifier ] } ] diff --git a/src/lib/netlist/build/makefile b/src/lib/netlist/build/makefile index fab68ed5a0b..7bf75f85a87 100644 --- a/src/lib/netlist/build/makefile +++ b/src/lib/netlist/build/makefile @@ -232,7 +232,7 @@ ALLFILES = $(ALLSOURCES) $(VSFILES) $(DOCS) $(OTHERFILES) MAKEFILE_TARGETS_WITHOUT_INCLUDE := \ clang clang-5 clang-libc gcc9 mingw native nvcc \ clean depend doc generated manpages maketree \ - runtests tidy + runtests tidy fix_permissions precommit srcclean BUILD_DIRS = $(OBJDIRS) man html diff --git a/src/lib/netlist/core/analog.h b/src/lib/netlist/core/analog.h index 91686dbd7fe..33e0ec605d2 100644 --- a/src/lib/netlist/core/analog.h +++ b/src/lib/netlist/core/analog.h @@ -56,25 +56,25 @@ namespace netlist /// \brief constructor /// - /// @param dev core_devict_t object owning the terminal - /// @param aname name of this terminal - /// @param otherterm pointer to the sibling terminal - terminal_t(core_device_t &dev, const pstring &aname, terminal_t *otherterm, nldelegate delegate); + /// \param dev object owning the terminal + /// \param aname name of this terminal + /// \param other_terminal pointer to the sibling terminal + terminal_t(core_device_t &dev, const pstring &aname, terminal_t *other_terminal, nldelegate delegate); - terminal_t(core_device_t &dev, const pstring &aname, terminal_t *otherterm, + terminal_t(core_device_t &dev, const pstring &aname, terminal_t *other_terminal, const std::array<terminal_t *, 2> &splitterterms, nldelegate delegate); /// \brief Returns voltage of connected net /// - /// @return voltage of net this terminal is connected to + /// \return voltage of net this terminal is connected to nl_fptype operator ()() const noexcept { return net().Q_Analog(); } - /// @brief sets conductivity value of this terminal + /// \brief sets conductivity value of this terminal /// - /// @param G Conductivity + /// \param G Conductivity void set_conductivity(nl_fptype G) const noexcept { set_go_gt_I(-G, G, nlconst::zero()); diff --git a/src/lib/netlist/core/base_objects.h b/src/lib/netlist/core/base_objects.h index 2610dbdf72c..31fb8f8944d 100644 --- a/src/lib/netlist/core/base_objects.h +++ b/src/lib/netlist/core/base_objects.h @@ -110,7 +110,7 @@ namespace netlist::detail { private: }; - /// \brief Base class for all objects bejng owned by a netlist + /// \brief Base class for all objects being owned by a netlist /// /// The object provides adds \ref netlist_state_t and \ref netlist_t /// accessors. diff --git a/src/lib/netlist/core/device_macros.h b/src/lib/netlist/core/device_macros.h index 4f52d3848fe..798651ce284 100644 --- a/src/lib/netlist/core/device_macros.h +++ b/src/lib/netlist/core/device_macros.h @@ -33,7 +33,7 @@ class NETLIB_NAME(name) : public delegator_t<device_t> /// \brief Start a derived netlist device class. /// -/// Used to define a derived device class based on plcass. +/// Used to define a derived device class based on `plcass`. /// The simplest device without inputs or outputs would look like this: /// /// NETLIB_OBJECT_DERIVED(some_object, parent_object) diff --git a/src/lib/netlist/core/devices.h b/src/lib/netlist/core/devices.h index b5a852ab961..451c83b2274 100644 --- a/src/lib/netlist/core/devices.h +++ b/src/lib/netlist/core/devices.h @@ -24,7 +24,7 @@ namespace netlist::devices { // ----------------------------------------------------------------------------- - // mainclock + // main clock // ----------------------------------------------------------------------------- NETLIB_OBJECT(mainclock) @@ -112,7 +112,7 @@ namespace netlist::devices }; // ----------------------------------------------------------------------------- - // netlistparams + // netlist parameters // ----------------------------------------------------------------------------- NETLIB_OBJECT(netlistparams) diff --git a/src/lib/netlist/core/exec.h b/src/lib/netlist/core/exec.h index cab482ff218..a47b84df29e 100644 --- a/src/lib/netlist/core/exec.h +++ b/src/lib/netlist/core/exec.h @@ -72,13 +72,13 @@ namespace netlist // FIXME: force late type resolution template <typename X = devices::nld_solver> - nl_fptype gmin([[maybe_unused]] X *solv = nullptr) const noexcept + nl_fptype gmin([[maybe_unused]] X *solver = nullptr) const noexcept { return static_cast<X *>(m_solver)->gmin(); } - netlist_state_t &nlstate() noexcept { return m_state; } - const netlist_state_t &nlstate() const noexcept { return m_state; } + netlist_state_t &nl_state() noexcept { return m_state; } + const netlist_state_t &nl_state() const noexcept { return m_state; } log_type & log() noexcept { return m_state.log(); } const log_type &log() const noexcept { return m_state.log(); } @@ -99,7 +99,7 @@ namespace netlist // mostly rw //PALIGNAS(16) netlist_time_ext m_time; - devices::nld_mainclock * m_mainclock; + devices::nld_mainclock * m_main_clock; //PALIGNAS_CACHELINE() //PALIGNAS(16) diff --git a/src/lib/netlist/core/logic_family.h b/src/lib/netlist/core/logic_family.h index 2a3f488da41..5a225a11c3e 100644 --- a/src/lib/netlist/core/logic_family.h +++ b/src/lib/netlist/core/logic_family.h @@ -34,30 +34,30 @@ namespace netlist virtual device_arena::unique_ptr<devices::nld_base_a_to_d_proxy> create_a_d_proxy(netlist_state_t &anetlist, const pstring &name, const logic_input_t *proxied) const = 0; - nl_fptype low_thresh_V(nl_fptype VN, nl_fptype VP) const noexcept{ return VN + (VP - VN) * m_low_thresh_PCNT; } - nl_fptype high_thresh_V(nl_fptype VN, nl_fptype VP) const noexcept{ return VN + (VP - VN) * m_high_thresh_PCNT; } + nl_fptype low_threshold_V(nl_fptype VN, nl_fptype VP) const noexcept{ return VN + (VP - VN) * m_low_threshold_PCNT; } + nl_fptype high_threshold_V(nl_fptype VN, nl_fptype VP) const noexcept{ return VN + (VP - VN) * m_high_threshold_PCNT; } nl_fptype low_offset_V() const noexcept{ return m_low_VO; } nl_fptype high_offset_V() const noexcept{ return m_high_VO; } nl_fptype R_low() const noexcept{ return m_R_low; } nl_fptype R_high() const noexcept{ return m_R_high; } - bool is_above_high_thresh_V(nl_fptype V, nl_fptype VN, nl_fptype VP) const noexcept - { return V > high_thresh_V(VN, VP); } + bool is_above_high_threshold_V(nl_fptype V, nl_fptype VN, nl_fptype VP) const noexcept + { return V > high_threshold_V(VN, VP); } - bool is_below_low_thresh_V(nl_fptype V, nl_fptype VN, nl_fptype VP) const noexcept - { return V < low_thresh_V(VN, VP); } + bool is_below_low_threshold_V(nl_fptype V, nl_fptype VN, nl_fptype VP) const noexcept + { return V < low_threshold_V(VN, VP); } pstring vcc_pin() const { return pstring(m_vcc); } pstring gnd_pin() const { return pstring(m_gnd); } - nl_fptype m_low_thresh_PCNT; //!< low input threshhold offset. If the input voltage is below this value times supply voltage, a "0" input is signalled - nl_fptype m_high_thresh_PCNT; //!< high input threshhold offset. If the input voltage is above the value times supply voltage, a "0" input is signalled - nl_fptype m_low_VO; //!< low output voltage offset. This voltage is output if the ouput is "0" - nl_fptype m_high_VO; //!< high output voltage offset. The supply voltage minus this offset is output if the ouput is "1" - nl_fptype m_R_low; //!< low output resistance. Value of series resistor used for low output - nl_fptype m_R_high; //!< high output resistance. Value of series resistor used for high output - const char *m_vcc; //!< default power pin name for positive supply - const char *m_gnd; //!< default power pin name for negative supply + nl_fptype m_low_threshold_PCNT; //!< low input threshold offset. If the input voltage is below this value times supply voltage, a "0" input is signalled + nl_fptype m_high_threshold_PCNT; //!< high input threshold offset. If the input voltage is above the value times supply voltage, a "0" input is signalled + nl_fptype m_low_VO; //!< low output voltage offset. This voltage is output if the ouput is "0" + nl_fptype m_high_VO; //!< high output voltage offset. The supply voltage minus this offset is output if the ouput is "1" + nl_fptype m_R_low; //!< low output resistance. Value of series resistor used for low output + nl_fptype m_R_high; //!< high output resistance. Value of series resistor used for high output + const char *m_vcc; //!< default power pin name for positive supply + const char *m_gnd; //!< default power pin name for negative supply }; /// \brief Base class for devices, terminals, outputs and inputs which support diff --git a/src/lib/netlist/core/netlist_state.h b/src/lib/netlist/core/netlist_state.h index 7fdee87af99..0fb9dab61c9 100644 --- a/src/lib/netlist/core/netlist_state.h +++ b/src/lib/netlist/core/netlist_state.h @@ -193,7 +193,7 @@ namespace netlist nlparse_t &parser(); const nlparse_t &parser() const; - // FIXME: make a postload member and include code there + // FIXME: make a post load member and include code there void rebuild_lists(); // must be called after post_load ! static void compile_defines(std::vector<std::pair<pstring, pstring>> &defs); diff --git a/src/lib/netlist/core/nets.h b/src/lib/netlist/core/nets.h index f3f4080b86b..73b59950966 100644 --- a/src/lib/netlist/core/nets.h +++ b/src/lib/netlist/core/nets.h @@ -41,7 +41,7 @@ namespace netlist DELIVERED }; - net_t(netlist_state_t &nl, const pstring &aname, core_terminal_t *railterminal = nullptr); + net_t(netlist_state_t &nl, const pstring &aname, core_terminal_t *rail_terminal = nullptr); PCOPYASSIGNMOVE(net_t, delete) @@ -136,8 +136,8 @@ namespace netlist constexpr const netlist_time_ext &next_scheduled_time() const noexcept { return m_next_scheduled_time; } void set_next_scheduled_time(netlist_time_ext ntime) noexcept { m_next_scheduled_time = ntime; } - bool is_rail_net() const noexcept { return !(m_railterminal == nullptr); } - core_terminal_t & railterminal() const noexcept { return *m_railterminal; } + bool is_rail_net() const noexcept { return !(m_rail_terminal == nullptr); } + core_terminal_t & rail_terminal() const noexcept { return *m_rail_terminal; } void add_to_active_list(core_terminal_t &term) noexcept { @@ -149,7 +149,7 @@ namespace netlist else { m_list_active.push_front(&term); - railterminal().device().do_inc_active(); + rail_terminal().device().do_inc_active(); if (m_in_queue == queue_status::DELAYED_DUE_TO_INACTIVE) { #if (AVOID_NOOP_QUEUE_PUSHES) @@ -187,7 +187,7 @@ namespace netlist m_in_queue = queue_status::DELAYED_DUE_TO_INACTIVE; } #endif - railterminal().device().do_dec_active(); + rail_terminal().device().do_dec_active(); } } @@ -261,7 +261,7 @@ namespace netlist plib::linkedlist_t<core_terminal_t> m_list_active; state_var<netlist_time_ext> m_next_scheduled_time; - core_terminal_t * m_railterminal; + core_terminal_t * m_rail_terminal; //std::vector<core_terminal_t *> m_core_terms; // save post-start m_list ... }; @@ -271,7 +271,7 @@ namespace netlist { public: - analog_net_t(netlist_state_t &nl, const pstring &aname, detail::core_terminal_t *railterminal = nullptr); + analog_net_t(netlist_state_t &nl, const pstring &aname, detail::core_terminal_t *rail_terminal = nullptr); void reset() noexcept override; @@ -298,7 +298,7 @@ namespace netlist { public: - logic_net_t(netlist_state_t &nl, const pstring &aname, detail::core_terminal_t *railterminal = nullptr); + logic_net_t(netlist_state_t &nl, const pstring &aname, detail::core_terminal_t *rail_terminal = nullptr); using detail::net_t::Q; using detail::net_t::initial; diff --git a/src/lib/netlist/core/setup.h b/src/lib/netlist/core/setup.h index caa369796e9..896b71a1e15 100644 --- a/src/lib/netlist/core/setup.h +++ b/src/lib/netlist/core/setup.h @@ -161,7 +161,7 @@ namespace netlist return (ret != m_connected_terminals.end()) ? &ret->second : nullptr; } - // get family -> truthtable + // get family -> truth table const logic_family_desc_t *family_from_model(const pstring &model); param_ref_t find_param(const pstring ¶m_in) const; @@ -243,7 +243,7 @@ namespace netlist }; // ---------------------------------------------------------------------------------------- - // Specific netlist psource_t implementations + // Specific netlist `psource_t` implementations // ---------------------------------------------------------------------------------------- class source_netlist_t : public plib::psource_t diff --git a/src/lib/netlist/core/state_var.h b/src/lib/netlist/core/state_var.h index 90412de2cad..118088ca795 100644 --- a/src/lib/netlist/core/state_var.h +++ b/src/lib/netlist/core/state_var.h @@ -17,6 +17,7 @@ namespace netlist /// Use the state_var template to define a variable whose value is saved. /// Within a device definition use /// + /// ``` /// NETLIB_OBJECT(abc) /// { /// NETLIB_CONSTRUCTOR(abc) @@ -24,6 +25,8 @@ namespace netlist /// ... /// state_var<unsigned> m_var; /// } + /// ``` + /// template <typename T> struct state_var { diff --git a/src/lib/netlist/devices/net_lib.h b/src/lib/netlist/devices/net_lib.h index 499096cd476..f3487fc2740 100644 --- a/src/lib/netlist/devices/net_lib.h +++ b/src/lib/netlist/devices/net_lib.h @@ -13,7 +13,7 @@ #include "../nl_setup.h" #ifdef RES_R -#warning "Do not include rescap.h in a netlist environment" +#warning "Do not include `rescap.h` in a netlist environment" #endif #ifndef RES_R #define RES_R(res) (res) diff --git a/src/lib/netlist/devices/nld_74123.cpp b/src/lib/netlist/devices/nld_74123.cpp index 8f415cfa660..1d780866f0d 100644 --- a/src/lib/netlist/devices/nld_74123.cpp +++ b/src/lib/netlist/devices/nld_74123.cpp @@ -250,7 +250,7 @@ namespace netlist::devices { { return ((in[0]() ^ 1) | (in[1]() ^ 1)) & in[2](); // (~A1 | ~A2) & B } - template<typename T> static constexpr netlist_sig_t clear( [[maybe_unused]] const T &in) { return 1; } + template<typename T> static constexpr netlist_sig_t clear([[maybe_unused]] const T &in) { return 1; } }; struct desc_9602 : public desc_74123 diff --git a/src/lib/netlist/devices/nld_74153.cpp b/src/lib/netlist/devices/nld_74153.cpp index ccb693a250c..c68a8537811 100644 --- a/src/lib/netlist/devices/nld_74153.cpp +++ b/src/lib/netlist/devices/nld_74153.cpp @@ -48,7 +48,7 @@ namespace netlist::devices { // FIXME: timing is not 100% accurate, Strobe and Select inputs have a // slightly longer timing . - // FIXME: Truthtable candidate + // FIXME: Truth table candidate NETLIB_OBJECT(74153) { diff --git a/src/lib/netlist/devices/nld_7485.cpp b/src/lib/netlist/devices/nld_7485.cpp index 5c15879c10b..6d53854b4be 100644 --- a/src/lib/netlist/devices/nld_7485.cpp +++ b/src/lib/netlist/devices/nld_7485.cpp @@ -3,7 +3,7 @@ /* * nld_7485.cpp * - * FIXME: Truthtable candidate + * FIXME: Truth table candidate * * DM7485: 4-bit Magnitude Comparators * diff --git a/src/lib/netlist/devices/nld_log.cpp b/src/lib/netlist/devices/nld_log.cpp index bc57d59fe37..6df57a0eb72 100644 --- a/src/lib/netlist/devices/nld_log.cpp +++ b/src/lib/netlist/devices/nld_log.cpp @@ -151,7 +151,7 @@ namespace netlist::devices { ~NETLIB_NAME(wav)(); analog_input_t m_I; private: - // FIXME: rewrite sound/wavwrite.h to be an object ... + // FIXME: rewrite `sound/wavwrite.h` to be an object ... void *m_file; ); #endif @@ -160,7 +160,7 @@ namespace netlist::devices { // FIXME: Implement wav later, this must be clock triggered device where the input to be written - // is on a subdevice .. + // is on a sub device .. #if 0 NETLIB_START(wav) { diff --git a/src/lib/netlist/devices/nlid_proxy.cpp b/src/lib/netlist/devices/nlid_proxy.cpp index 9fb8ddc1bae..0b8862b99ea 100644 --- a/src/lib/netlist/devices/nlid_proxy.cpp +++ b/src/lib/netlist/devices/nlid_proxy.cpp @@ -93,9 +93,9 @@ namespace netlist::devices { const auto vn(m_tn->net().Q_Analog()); const auto vp(m_tp->net().Q_Analog()); - if (logic_family()->is_above_high_thresh_V(v, vn, vp)) + if (logic_family()->is_above_high_threshold_V(v, vn, vp)) out().push(1, netlist_time::quantum()); - else if (logic_family()->is_below_low_thresh_V(v, vn, vp)) + else if (logic_family()->is_below_low_threshold_V(v, vn, vp)) out().push(0, netlist_time::quantum()); else { diff --git a/src/lib/netlist/devices/nlid_proxy.h b/src/lib/netlist/devices/nlid_proxy.h index 6c4028c39bd..89ea6069b0d 100644 --- a/src/lib/netlist/devices/nlid_proxy.h +++ b/src/lib/netlist/devices/nlid_proxy.h @@ -1,16 +1,18 @@ // license:BSD-3-Clause // copyright-holders:Couriersud -/* - * nlid_proxy.h - * - * netlist proxy devices - * - * This file contains internal headers - */ #ifndef NLID_PROXY_H_ #define NLID_PROXY_H_ +/// +/// \file nlid_proxy.h +/// +/// netlist proxy devices +/// +/// This file contains internal headers +/// + + #include "analog/nlid_twoterm.h" #include "nl_base.h" diff --git a/src/lib/netlist/devices/nlid_truthtable.cpp b/src/lib/netlist/devices/nlid_truthtable.cpp index 23e573f02b1..5244814aebc 100644 --- a/src/lib/netlist/devices/nlid_truthtable.cpp +++ b/src/lib/netlist/devices/nlid_truthtable.cpp @@ -72,7 +72,7 @@ namespace netlist::devices { #endif } for (auto &q : m_Q) - if (q.has_net() && !exec().nlstate().core_terms(q.net()).empty()) + if (q.has_net() && !exec().nl_state().core_terms(q.net()).empty()) active_outputs++; set_active_outputs(active_outputs); } @@ -278,7 +278,7 @@ namespace netlist::devices { }; // ---------------------------------------------------------------------------------------- - // Truthtable parsing .... + // Truth table parsing .... // ---------------------------------------------------------------------------------------- using tt_bitset = pbitset<std::uint_least64_t>; @@ -366,7 +366,7 @@ namespace netlist::devices { }; // ---------------------------------------------------------------------------------------- - // Truthtable class .... + // Truth table class .... // ---------------------------------------------------------------------------------------- template<std::size_t m_NI, std::size_t m_NO> @@ -378,7 +378,7 @@ namespace netlist::devices { // checks nl_assert_always(io.size() == 2, "too many '|'"); std::vector<pstring> inout(plib::psplit(io[0], ',')); - nl_assert_always(inout.size() == m_num_bits, "bitcount wrong"); + nl_assert_always(inout.size() == m_num_bits, "bit count wrong"); std::vector<pstring> outputs(plib::psplit(io[1], ',')); nl_assert_always(outputs.size() == m_NO, "output count wrong"); @@ -393,18 +393,18 @@ namespace netlist::devices { { inout[i] = plib::trim(inout[i]); } - if (0 < m_NI) m_I.emplace(0, *this, inout[0]); //, nldelegate(&nld_truthtable_t<m_NI, m_NO>::update_N<0>, this)); - if (1 < m_NI) m_I.emplace(1, *this, inout[1]); //, nldelegate(&nld_truthtable_t<m_NI, m_NO>::update_N<1>, this)); - if (2 < m_NI) m_I.emplace(2, *this, inout[2]); //, nldelegate(&nld_truthtable_t<m_NI, m_NO>::update_N<2>, this)); - if (3 < m_NI) m_I.emplace(3, *this, inout[3]); //, nldelegate(&nld_truthtable_t<m_NI, m_NO>::update_N<3>, this)); - if (4 < m_NI) m_I.emplace(4, *this, inout[4]); //, nldelegate(&nld_truthtable_t<m_NI, m_NO>::update_N<4>, this)); - if (5 < m_NI) m_I.emplace(5, *this, inout[5]); //, nldelegate(&nld_truthtable_t<m_NI, m_NO>::update_N<5>, this)); - if (6 < m_NI) m_I.emplace(6, *this, inout[6]); //, nldelegate(&nld_truthtable_t<m_NI, m_NO>::update_N<6>, this)); - if (7 < m_NI) m_I.emplace(7, *this, inout[7]); //, nldelegate(&nld_truthtable_t<m_NI, m_NO>::update_N<7>, this)); - if (8 < m_NI) m_I.emplace(8, *this, inout[8]); //, nldelegate(&nld_truthtable_t<m_NI, m_NO>::update_N<8>, this)); - if (9 < m_NI) m_I.emplace(9, *this, inout[9]); //, nldelegate(&nld_truthtable_t<m_NI, m_NO>::update_N<9>, this)); - if (10 < m_NI) m_I.emplace(10, *this, inout[10]); //, nldelegate(&nld_truthtable_t<m_NI, m_NO>::update_N<10>, this)); - if (11 < m_NI) m_I.emplace(11, *this, inout[11]); //, nldelegate(&nld_truthtable_t<m_NI, m_NO>::update_N<11>, this)); + if (0 < m_NI) m_I.emplace(0, *this, inout[0]); //# nldelegate(&nld_truthtable_t<m_NI, m_NO>::update_N<0>, this)); + if (1 < m_NI) m_I.emplace(1, *this, inout[1]); //# nldelegate(&nld_truthtable_t<m_NI, m_NO>::update_N<1>, this)); + if (2 < m_NI) m_I.emplace(2, *this, inout[2]); //# nldelegate(&nld_truthtable_t<m_NI, m_NO>::update_N<2>, this)); + if (3 < m_NI) m_I.emplace(3, *this, inout[3]); //# nldelegate(&nld_truthtable_t<m_NI, m_NO>::update_N<3>, this)); + if (4 < m_NI) m_I.emplace(4, *this, inout[4]); //# nldelegate(&nld_truthtable_t<m_NI, m_NO>::update_N<4>, this)); + if (5 < m_NI) m_I.emplace(5, *this, inout[5]); //# nldelegate(&nld_truthtable_t<m_NI, m_NO>::update_N<5>, this)); + if (6 < m_NI) m_I.emplace(6, *this, inout[6]); //# nldelegate(&nld_truthtable_t<m_NI, m_NO>::update_N<6>, this)); + if (7 < m_NI) m_I.emplace(7, *this, inout[7]); //# nldelegate(&nld_truthtable_t<m_NI, m_NO>::update_N<7>, this)); + if (8 < m_NI) m_I.emplace(8, *this, inout[8]); //# nldelegate(&nld_truthtable_t<m_NI, m_NO>::update_N<8>, this)); + if (9 < m_NI) m_I.emplace(9, *this, inout[9]); //# nldelegate(&nld_truthtable_t<m_NI, m_NO>::update_N<9>, this)); + if (10 < m_NI) m_I.emplace(10, *this, inout[10]); //# nldelegate(&nld_truthtable_t<m_NI, m_NO>::update_N<10>, this)); + if (11 < m_NI) m_I.emplace(11, *this, inout[11]); //# nldelegate(&nld_truthtable_t<m_NI, m_NO>::update_N<11>, this)); #endif for (std::size_t i=0; i < m_NO; i++) { @@ -421,7 +421,7 @@ namespace netlist::devices { } // ---------------------------------------------------------------------------------------- - // Truthtable factory .... + // Truth table factory .... // ---------------------------------------------------------------------------------------- template<unsigned m_NI, unsigned m_NO> @@ -512,7 +512,7 @@ namespace netlist::devices { } // ---------------------------------------------------------------------------------------- - // parseline + // parse line // ---------------------------------------------------------------------------------------- void truthtable_parser::parseline(unsigned cur, std::vector<pstring> list, @@ -553,7 +553,7 @@ namespace netlist::devices { { // cutoff previous inputs and outputs for ignore if (m_out_state[nstate] != m_out_state.mask() && m_out_state[nstate] != val) - throw nl_exception(plib::pfmt("Error in truthtable: State {1:04} already set, {2} != {3}\n") + throw nl_exception(plib::pfmt("Error in truth table: State {1:04} already set, {2} != {3}\n") .x(nstate.as_uint())(m_out_state[nstate])(val) ); m_out_state.set(nstate, val); for (std::size_t j=0; j<m_NO; j++) @@ -593,7 +593,7 @@ namespace netlist::devices { std::vector<uint_least8_t> tindex; // - // FIXME: evaluation of outputs should be done in parseline to + // FIXME: evaluation of outputs should be done in parse_line to // enable the use of inputs for output values, i.e. "I1" or "~I1" // in addition to "0" and "1". @@ -649,7 +649,7 @@ namespace netlist::devices { for (size_t i=0; i<m_size; i++) { if (m_out_state[i] == m_out_state.mask()) - throw nl_exception(plib::pfmt("truthtable: found element not set {1}\n").x(i) ); + throw nl_exception(plib::pfmt("truth table: found element not set {1}\n").x(i) ); m_out_state.set(i, m_out_state[i] | (ign[i] << m_NO)); } } @@ -695,7 +695,7 @@ namespace netlist::factory { ENTRY(11, props); ENTRY(12, props); default: - pstring msg = plib::pfmt("unable to create truthtable<{1},{2}>")(desc.ni)(desc.no); + pstring msg = plib::pfmt("unable to create truth table<{1},{2}>")(desc.ni)(desc.no); nl_assert_always(false, putf8string(msg).c_str()); } ret->m_desc = desc.desc; diff --git a/src/lib/netlist/devices/nlid_truthtable.h b/src/lib/netlist/devices/nlid_truthtable.h index 923797ba40a..c889ba2cf48 100644 --- a/src/lib/netlist/devices/nlid_truthtable.h +++ b/src/lib/netlist/devices/nlid_truthtable.h @@ -1,9 +1,10 @@ // license:BSD-3-Clause // copyright-holders:Couriersud -/* - * nld_truthtable.h - * - */ + +/// +/// \file nld_truthtable.h +/// +/// #ifndef NLID_TRUTHTABLE_H_ #define NLID_TRUTHTABLE_H_ diff --git a/src/lib/netlist/generated/nlm_modules_lib.cpp b/src/lib/netlist/generated/nlm_modules_lib.cpp index 70597131d4b..a8a563d8b93 100644 --- a/src/lib/netlist/generated/nlm_modules_lib.cpp +++ b/src/lib/netlist/generated/nlm_modules_lib.cpp @@ -1,7 +1,7 @@ // license:CC0 // copyright-holders:Couriersud -// File programmatically created Fri May 6 11:19:43 2022 +// File programmatically created Sun May 22 09:38:02 2022 #include "devices/net_lib.h" diff --git a/src/lib/netlist/macro/modules/nlmod_icl8038_dip.cpp b/src/lib/netlist/macro/modules/nlmod_icl8038_dip.cpp index 05a4d300099..a409e490750 100644 --- a/src/lib/netlist/macro/modules/nlmod_icl8038_dip.cpp +++ b/src/lib/netlist/macro/modules/nlmod_icl8038_dip.cpp @@ -52,7 +52,7 @@ NETLIST_START(ICL8038_DIP) ALIAS(11, VI.ON) // GND ALIAS(9, V_SQR.OP) // Square out - ALIAS(3, VO.OP) // Triag out + ALIAS(3, VO.OP) // Triangle out ALIAS(8, VI.IP) // VC ALIAS(4, CI1.IP) // R1 ALIAS(5, CI2.IP) // R2 diff --git a/src/lib/netlist/macro/nlm_base_lib.cpp b/src/lib/netlist/macro/nlm_base_lib.cpp index b9c4165a46b..dfd885e2156 100644 --- a/src/lib/netlist/macro/nlm_base_lib.cpp +++ b/src/lib/netlist/macro/nlm_base_lib.cpp @@ -1,5 +1,9 @@ // license:CC0 // copyright-holders:Couriersud + +// Specific technical terms +// spell-checker: words Iave, Vishay, Zdiodes, Icrating, Vceo + #include "devices/net_lib.h" /* ---------------------------------------------------------------------------- diff --git a/src/lib/netlist/macro/nlm_cd4xxx_lib.cpp b/src/lib/netlist/macro/nlm_cd4xxx_lib.cpp index 35f5cae6374..7c3edca19df 100644 --- a/src/lib/netlist/macro/nlm_cd4xxx_lib.cpp +++ b/src/lib/netlist/macro/nlm_cd4xxx_lib.cpp @@ -648,7 +648,7 @@ NETLIST_END() //- Package: DIP //- NamingConvention: Naming conventions follow National Semiconductor datasheet //- FunctionTable: -//- pdf.datasheetcatalog.com/datasheets/185/109289_DS.pdf +//- http://pdf.datasheetcatalog.com/datasheets/185/109289_DS.pdf //- static NETLIST_START(CD4071_DIP) CD4071_GATE(A) @@ -727,7 +727,7 @@ NETLIST_END() //- Package: DIP //- NamingConvention: Naming conventions follow National Semiconductor datasheet //- FunctionTable: -//- pdf.datasheetcatalog.com/datasheets/185/109289_DS.pdf +//- http://pdf.datasheetcatalog.com/datasheets/185/109289_DS.pdf //- static NETLIST_START(CD4081_DIP) CD4081_GATE(A) diff --git a/src/lib/netlist/macro/nlm_opamp_lib.cpp b/src/lib/netlist/macro/nlm_opamp_lib.cpp index db5fba1888c..7d59217416b 100644 --- a/src/lib/netlist/macro/nlm_opamp_lib.cpp +++ b/src/lib/netlist/macro/nlm_opamp_lib.cpp @@ -627,7 +627,7 @@ NETLIST_START(opamp_lib) NET_MODEL("LM747 OPAMP(TYPE=3 VLH=1.0 VLL=1.0 FPF=5 UGF=1000k SLEW=0.5M RI=2000k RO=50 DAB=0.0017)") NET_MODEL("LM747A OPAMP(TYPE=3 VLH=2.0 VLL=2.0 FPF=5 UGF=1000k SLEW=0.7M RI=6000k RO=50 DAB=0.0015)") NET_MODEL("LM748 OPAMP(TYPE=3 VLH=2.0 VLL=2.0 FPF=5 UGF=800k SLEW=0.7M RI=800k RO=60 DAB=0.001)") - // TI and Motorola Datasheets differ - below are Motorola values, SLEW is average of LH and HL + // TI and Motorola datasheets differ - below are Motorola values, SLEW is average of LH and HL NET_MODEL("LM3900 OPAMP(TYPE=3 VLH=1.0 VLL=0.03 FPF=2k UGF=4M SLEW=10M RI=10M RO=2k DAB=0.0015)") NET_MODEL("AN6551 OPAMP(TYPE=3 VLH=1.0 VLL=0.03 FPF=20 UGF=2M SLEW=1M RI=10M RO=200 DAB=0.0015)") diff --git a/src/lib/netlist/macro/nlm_ttl74xx_lib.cpp b/src/lib/netlist/macro/nlm_ttl74xx_lib.cpp index ad005764b0c..707d57cfd9f 100644 --- a/src/lib/netlist/macro/nlm_ttl74xx_lib.cpp +++ b/src/lib/netlist/macro/nlm_ttl74xx_lib.cpp @@ -939,7 +939,7 @@ NETLIST_END() //- Title: DM54LS73A/DM74LS73A Dual Negative-Edge-Triggered Master-Slave J-K Flip-Flops with Clear and Complementary Outputs //- Pinalias: CLK1,CLR1,K1,VCC,CLK2,CLR2,J2,QQ2,Q2,K2,GND,Q1,QQ1,J1 //- Package: DIP -//- NamingConvention: Naming conventions follow National Semicouductor datasheet +//- NamingConvention: Naming conventions follow National Semiconductor datasheet //- FunctionTable: //- http://pdf.datasheetcatalog.com/datasheet/nationalsemiconductor/DS006372.PDF //- @@ -1686,7 +1686,7 @@ NETLIST_END() //- Package: DIP //- NamingConvention: Naming conventions follow National Semiconductor datasheet //- FunctionTable: -//- pdf.datasheetcatalog.com/datasheets/166/375388_DS.pdf +//- http://pdf.datasheetcatalog.com/datasheets/166/375388_DS.pdf //- //- +---+-------+-------------+ //- | E | A0 A1 | O0 O1 O2 O3 | diff --git a/src/lib/netlist/nl_base.cpp b/src/lib/netlist/nl_base.cpp index bdd9b1ac52c..920f4738237 100644 --- a/src/lib/netlist/nl_base.cpp +++ b/src/lib/netlist/nl_base.cpp @@ -73,12 +73,12 @@ namespace netlist netlist_state_t & detail::netlist_object_t::state() noexcept { - return m_netlist.nlstate(); + return m_netlist.nl_state(); } const netlist_state_t & detail::netlist_object_t::state() const noexcept { - return m_netlist.nlstate(); + return m_netlist.nl_state(); } // ---------------------------------------------------------------------------------------- @@ -89,7 +89,7 @@ namespace netlist : m_state(state) , m_solver(nullptr) , m_time(netlist_time_ext::zero()) - , m_mainclock(nullptr) + , m_main_clock(nullptr) , m_use_stats(false) , m_queue(config::max_queue_size::value, detail::queue_t::id_delegate(&netlist_state_t :: find_net_id, &state), @@ -276,7 +276,7 @@ namespace netlist void netlist_t::reset() { log().debug("Searching for main clock\n"); - m_mainclock = m_state.get_single_device<devices::NETLIB_NAME(mainclock)>("mainclock"); + m_main_clock = m_state.get_single_device<devices::NETLIB_NAME(mainclock)>("mainclock"); log().debug("Searching for solver\n"); m_solver = m_state.get_single_device<devices::NETLIB_NAME(solver)>("solver"); @@ -284,8 +284,8 @@ namespace netlist // Don't reset time //m_time = netlist_time_ext::zero(); m_queue.clear(); - if (m_mainclock != nullptr) - m_mainclock->m_Q.net().set_next_scheduled_time(m_time); + if (m_main_clock != nullptr) + m_main_clock->m_Q.net().set_next_scheduled_time(m_time); //if (m_solver != nullptr) // m_solver->reset(); @@ -376,8 +376,8 @@ namespace netlist netlist_state_t::stats_info si{m_queue, m_stat_mainloop, m_perf_out_processed}; m_state.print_stats(si); } - log().verbose("Current pool memory allocated: {1:12} kB", nlstate().pool().cur_alloc() >> 10); - log().verbose("Maximum pool memory allocated: {1:12} kB", nlstate().pool().max_alloc() >> 10); + log().verbose("Current pool memory allocated: {1:12} kB", nl_state().pool().cur_alloc() >> 10); + log().verbose("Maximum pool memory allocated: {1:12} kB", nl_state().pool().max_alloc() >> 10); } void netlist_state_t::print_stats(stats_info &si) const @@ -602,13 +602,13 @@ namespace netlist // net_t // ---------------------------------------------------------------------------------------- - detail::net_t::net_t(netlist_state_t &nl, const pstring &aname, core_terminal_t *railterminal) + detail::net_t::net_t(netlist_state_t &nl, const pstring &aname, core_terminal_t *rail_terminal) : netlist_object_t(nl.exec(), aname) , m_new_Q(*this, "m_new_Q", netlist_sig_t(0)) , m_cur_Q (*this, "m_cur_Q", netlist_sig_t(0)) , m_in_queue(*this, "m_in_queue", queue_status::DELIVERED) , m_next_scheduled_time(*this, "m_time", netlist_time_ext::zero()) - , m_railterminal(railterminal) + , m_rail_terminal(rail_terminal) { props::add(this, props::value_type()); } @@ -618,7 +618,7 @@ namespace netlist // rebuild m_list m_list_active.clear(); - for (auto & term : exec().nlstate().core_terms(*this)) + for (auto & term : exec().nl_state().core_terms(*this)) if (term->terminal_state() != logic_t::STATE_INP_PASSIVE) { m_list_active.push_back(term); @@ -643,7 +643,7 @@ namespace netlist // rebuild m_list and reset terminals to active or analog out state m_list_active.clear(); - for (core_terminal_t *ct : exec().nlstate().core_terms(*this)) + for (core_terminal_t *ct : exec().nl_state().core_terms(*this)) { ct->reset(); if (ct->terminal_state() != logic_t::STATE_INP_PASSIVE) @@ -656,8 +656,8 @@ namespace netlist // logic_net_t // ---------------------------------------------------------------------------------------- - logic_net_t::logic_net_t(netlist_state_t &nl, const pstring &aname, detail::core_terminal_t *railterminal) - : net_t(nl, aname, railterminal) + logic_net_t::logic_net_t(netlist_state_t &nl, const pstring &aname, detail::core_terminal_t *rail_terminal) + : net_t(nl, aname, rail_terminal) { } @@ -665,8 +665,8 @@ namespace netlist // analog_net_t // ---------------------------------------------------------------------------------------- - analog_net_t::analog_net_t(netlist_state_t &nl, const pstring &aname, detail::core_terminal_t *railterminal) - : net_t(nl, aname, railterminal) + analog_net_t::analog_net_t(netlist_state_t &nl, const pstring &aname, detail::core_terminal_t *rail_terminal) + : net_t(nl, aname, rail_terminal) , m_cur_Analog(*this, "m_cur_Analog", nlconst::zero()) , m_solver(nullptr) { @@ -704,20 +704,20 @@ namespace netlist // ---------------------------------------------------------------------------------------- terminal_t::terminal_t(core_device_t &dev, const pstring &aname, - terminal_t *otherterm, nldelegate delegate) - : terminal_t(dev, aname, otherterm, { nullptr, nullptr }, delegate) + terminal_t *other_terminal, nldelegate delegate) + : terminal_t(dev, aname, other_terminal, { nullptr, nullptr }, delegate) { } terminal_t::terminal_t(core_device_t &dev, const pstring &aname, - terminal_t *otherterm, const std::array<terminal_t *, 2> &splitterterms, + terminal_t *other_terminal, const std::array<terminal_t *, 2> &splitterterms, nldelegate delegate) : analog_t(dev, aname, STATE_BIDIR, delegate) , m_Idr(nullptr) , m_go(nullptr) , m_gt(nullptr) { - state().setup().register_term(*this, otherterm, splitterterms); + state().setup().register_term(*this, other_terminal, splitterterms); } void terminal_t::set_ptrs(nl_fptype *gt, nl_fptype *go, nl_fptype *Idr) noexcept(false) @@ -999,7 +999,7 @@ namespace netlist qpush(stop, nullptr); - if (m_mainclock == nullptr) + if (m_main_clock == nullptr) { m_time = m_queue.top().exec_time(); detail::net_t *obj(m_queue.top().object()); @@ -1018,8 +1018,8 @@ namespace netlist } else { - logic_net_t &mc_net(m_mainclock->m_Q.net()); - const netlist_time inc(m_mainclock->m_inc); + logic_net_t &mc_net(m_main_clock->m_Q.net()); + const netlist_time inc(m_main_clock->m_inc); netlist_time_ext mc_time(mc_net.next_scheduled_time()); do diff --git a/src/lib/netlist/nl_config.h b/src/lib/netlist/nl_config.h index 2ea84f37ba7..005f8a30252 100644 --- a/src/lib/netlist/nl_config.h +++ b/src/lib/netlist/nl_config.h @@ -7,6 +7,9 @@ #ifndef NLCONFIG_H_ #define NLCONFIG_H_ +// Names +// spell-checker: words Woodbury + #include "plib/pconfig.h" #include "plib/pexception.h" diff --git a/src/lib/netlist/nl_setup.cpp b/src/lib/netlist/nl_setup.cpp index a757456f6bf..7e8e151e01b 100644 --- a/src/lib/netlist/nl_setup.cpp +++ b/src/lib/netlist/nl_setup.cpp @@ -971,7 +971,7 @@ bool setup_t::connect_input_input(detail::core_terminal_t &t1, detail::core_term if (t1.has_net()) { if (t1.net().is_rail_net()) - ret = connect(t2, t1.net().railterminal()); + ret = connect(t2, t1.net().rail_terminal()); if (!ret) { for (auto & t : nlstate().core_terms(t1.net())) @@ -986,7 +986,7 @@ bool setup_t::connect_input_input(detail::core_terminal_t &t1, detail::core_term if (!ret && t2.has_net()) { if (t2.net().is_rail_net()) - ret = connect(t1, t2.net().railterminal()); + ret = connect(t1, t2.net().rail_terminal()); if (!ret) { for (auto & t : nlstate().core_terms(t2.net())) @@ -1491,8 +1491,8 @@ const logic_family_desc_t *setup_t::family_from_model(const pstring &model) auto ret = plib::make_unique<logic_family_std_proxy_t, host_arena>(ft); - ret->m_low_thresh_PCNT = modv.m_IVL(); - ret->m_high_thresh_PCNT = modv.m_IVH(); + ret->m_low_threshold_PCNT = modv.m_IVL(); + ret->m_high_threshold_PCNT = modv.m_IVH(); ret->m_low_VO = modv.m_OVL(); ret->m_high_VO = modv.m_OVH(); ret->m_R_low = modv.m_ORL(); @@ -1711,14 +1711,14 @@ plib::istream_uptr source_string_t::stream([[maybe_unused]] const pstring &name) return ret; } -plib::istream_uptr source_mem_t::stream( [[maybe_unused]] const pstring &name) +plib::istream_uptr source_mem_t::stream([[maybe_unused]] const pstring &name) { plib::istream_uptr ret(std::make_unique<std::istringstream>(m_str, std::ios_base::binary), name); ret->imbue(std::locale::classic()); return ret; } -plib::istream_uptr source_file_t::stream( [[maybe_unused]] const pstring &name) +plib::istream_uptr source_file_t::stream([[maybe_unused]] const pstring &name) { auto f = std::make_unique<plib::ifstream>(plib::filesystem::u8path(m_filename)); if (f->is_open()) @@ -1729,7 +1729,7 @@ plib::istream_uptr source_file_t::stream( [[maybe_unused]] const pstring &name) return plib::istream_uptr(); } -plib::istream_uptr source_pattern_t::stream( [[maybe_unused]] const pstring &name) +plib::istream_uptr source_pattern_t::stream([[maybe_unused]] const pstring &name) { pstring filename = plib::pfmt(m_pattern)(m_force_lowercase ? plib::lcase(name) : name); auto f = std::make_unique<plib::ifstream>(plib::filesystem::u8path(filename)); @@ -1753,7 +1753,7 @@ bool source_proc_t::parse(nlparse_t &setup, const pstring &name) return false; } -plib::istream_uptr source_proc_t::stream( [[maybe_unused]] const pstring &name) +plib::istream_uptr source_proc_t::stream([[maybe_unused]] const pstring &name) { return plib::istream_uptr(); } diff --git a/src/lib/netlist/nltypes.h b/src/lib/netlist/nltypes.h index 2c0ec0c1ad2..f56b1cc6248 100644 --- a/src/lib/netlist/nltypes.h +++ b/src/lib/netlist/nltypes.h @@ -154,7 +154,7 @@ namespace netlist // Types needed by various includes //============================================================ - /// \brief Timestep type. + /// \brief Time step type. /// /// May be either FORWARD or RESTORE /// diff --git a/src/lib/netlist/plib/gmres.h b/src/lib/netlist/plib/gmres.h index 91a06371b33..4fd3263b2b3 100644 --- a/src/lib/netlist/plib/gmres.h +++ b/src/lib/netlist/plib/gmres.h @@ -4,6 +4,10 @@ #ifndef PLIB_GMRES_H_ #define PLIB_GMRES_H_ +// Names +// spell-checker: words Burkardt, Saad, Yousef +// + /// /// \file gmres.h /// @@ -203,7 +207,7 @@ namespace plib plib::pmatrix_cr<FT, SIZE> m_mat; }; - // FIXME: hardcoding RESTART to 20 becomes an issue on very large + // FIXME: hard coding RESTART to 20 becomes an issue on very large // systems. template <typename FT, int SIZE, int RESTARTMAX = 16> @@ -270,7 +274,7 @@ namespace plib // ==> rho / accuracy = sqrt(y * y) // // This approach will approximate the iterative stop condition - // based |xnew - xold| pretty precisely. But it is slow, or expressed + // based `|xnew - xold|` pretty precisely. But it is slow, or expressed // differently: The invest doesn't pay off. // @@ -506,7 +510,7 @@ namespace plib } private: - //typedef typename plib::mat_cr_t<FT, SIZE>::index_type mattype; + //#typedef typename plib::mat_cr_t<FT, SIZE>::index_type mattype; plib::parray<float_type, SIZE> residual; plib::parray<float_type, SIZE> Ax; diff --git a/src/lib/netlist/plib/palloc.h b/src/lib/netlist/plib/palloc.h index f565e02d7b6..eff105e224f 100644 --- a/src/lib/netlist/plib/palloc.h +++ b/src/lib/netlist/plib/palloc.h @@ -431,6 +431,8 @@ namespace plib { } return p; #else + // see https://en.cppreference.com/w/c/memory/aligned_alloc + size = ((size + alignment - 1) / alignment) * alignment; return static_cast<gsl::owner<void *>>(aligned_alloc(alignment, size)); #endif #else diff --git a/src/lib/netlist/plib/pdynlib.cpp b/src/lib/netlist/plib/pdynlib.cpp index 52fc5effb96..e3883937b69 100644 --- a/src/lib/netlist/plib/pdynlib.cpp +++ b/src/lib/netlist/plib/pdynlib.cpp @@ -40,7 +40,7 @@ dynlib::dynlib(const pstring &libname) // printf("library <%s> not found: %s\n", libname.c_str(), dlerror()); } -dynlib::dynlib( [[maybe_unused]] const pstring &path, const pstring &libname) +dynlib::dynlib([[maybe_unused]] const pstring &path, const pstring &libname) : m_lib(nullptr) { // FIXME: implement path search diff --git a/src/lib/netlist/plib/pdynlib.h b/src/lib/netlist/plib/pdynlib.h index 4e8ce023d6f..63acc44d4eb 100644 --- a/src/lib/netlist/plib/pdynlib.h +++ b/src/lib/netlist/plib/pdynlib.h @@ -45,7 +45,7 @@ namespace plib { { public: explicit dynlib(const pstring &libname); - dynlib(/*[[maybe_unused]]*/ const pstring &path, const pstring &libname); + dynlib(const pstring &path, const pstring &libname); ~dynlib() override; diff --git a/src/lib/netlist/plib/penum.h b/src/lib/netlist/plib/penum.h index a0c5e0ee307..131fc213461 100644 --- a/src/lib/netlist/plib/penum.h +++ b/src/lib/netlist/plib/penum.h @@ -13,9 +13,10 @@ namespace plib { - //============================================================ - // penum - strongly typed enumeration - //============================================================ + /// + /// \brief strongly typed enumeration + /// + /// struct penum_base { protected: diff --git a/src/lib/netlist/plib/pgsl.h b/src/lib/netlist/plib/pgsl.h index 9d7967070db..4fcbdd527f1 100644 --- a/src/lib/netlist/plib/pgsl.h +++ b/src/lib/netlist/plib/pgsl.h @@ -118,8 +118,8 @@ namespace plib { /// \brief cast to void * /// - /// The purpose here is to help identifiy casts to void in the code. - /// These case usuallyindicate some wizard assumptioms which should be easily + /// The purpose here is to help identify casts to void in the code. + /// These case usually indicate some wizard assumptions which should be easily /// be easy to identify. template <typename T> constexpr void * void_ptr_cast(T *ptr) noexcept { return static_cast<void *>(ptr); } diff --git a/src/lib/netlist/plib/plists.h b/src/lib/netlist/plib/plists.h index 4552b441ccc..75b61201f97 100644 --- a/src/lib/netlist/plib/plists.h +++ b/src/lib/netlist/plib/plists.h @@ -39,7 +39,6 @@ namespace plib { using reverse_iterator = std::reverse_iterator<iterator>; using const_reverse_iterator = std::reverse_iterator<const_iterator>; - //uninitialised_array_t() noexcept = default; uninitialised_array() noexcept = default; uninitialised_array(const uninitialised_array &) = default; diff --git a/src/lib/netlist/plib/pomp.h b/src/lib/netlist/plib/pomp.h index d698d6ea34f..b77d3e5ee56 100644 --- a/src/lib/netlist/plib/pomp.h +++ b/src/lib/netlist/plib/pomp.h @@ -71,11 +71,6 @@ inline std::size_t get_max_threads() noexcept #endif } - -// ---------------------------------------------------------------------------------------- -// pdynlib: dynamic loading of libraries ... -// ---------------------------------------------------------------------------------------- - } // namespace plib::omp #endif // PSTRING_H_ diff --git a/src/lib/netlist/plib/ppmf.h b/src/lib/netlist/plib/ppmf.h index b188ca0cd81..44fdc45f1c5 100644 --- a/src/lib/netlist/plib/ppmf.h +++ b/src/lib/netlist/plib/ppmf.h @@ -81,6 +81,7 @@ namespace plib { #include "ptypes.h" #include <algorithm> +#include <cstddef> // ptrdiff_t #include <cstdint> // uintptr_t #include <type_traits> #include <utility> @@ -162,11 +163,31 @@ namespace plib { // extract the generic function and adjust the object pointer void convert_to_generic(generic_function &func, mfp_generic_class *&object) const; - // actual state + /// \brief Byte offset into the vtable + /// + /// On x86-64, the vtable contains pointers to code, and function pointers + /// are pointers to code. To obtain a function pointer for a virtual + /// member function, you fetch a pointer to code from the vtable. + /// + /// On traditional PPC64, the vtable contains pointers to function + /// descriptors, and function pointers are pointers to function descriptors. + /// To obtain a function pointer for a virtual member function, you + /// fetch a pointer to a function descriptor from the vtable. + /// + /// On IA64, the vtable contains function descriptors, and function + /// pointers are pointers to function descriptors. To obtain a + /// function pointer for a virtual member function, you calculate + /// the address of the function descriptor in the vtable. + /// + /// Simply adding the byte offset to the vtable pointer creates a + /// function pointer on IA64 because the vtable contains function + /// descriptors; on most other targets, the vtable contains function + /// pointers, so you need to fetch the function pointer after + /// calculating its address in the vtable. + /// uintptr_t m_function; // first item can be one of two things: - // if even, it's a pointer to the function + // if even, it's a function pointer // if odd, it's the byte offset into the vtable - // or a byte offset into the function descriptors on IA64 ptrdiff_t m_this_delta; // delta to apply to the 'this' pointer }; @@ -184,10 +205,10 @@ namespace plib { void convert_to_generic(generic_function &func, mfp_generic_class *&object) const; // actual state - uintptr_t m_function; // first item can pointer to the function or a byte offset into the vtable + uintptr_t m_function; // first item can be a function pointer or a byte offset into the vtable ptrdiff_t m_this_delta; // delta to apply to the 'this' pointer after right shifting by one bit - // m_function is the byte offset into the vtable - // On IA64 it may also be a byte offset into the function descriptors + // if even, m_function is a fuction pointer + // if odd, m_function is the byte offset into the vtable }; template <> @@ -394,6 +415,7 @@ namespace plib { /// is virtual, the vtable may not yet be fully constructed. In these cases /// the following class allows to construct the delegate later. /// + /// ``` /// plib::late_pmfp<plib::pmfp<void, pstring>> a(&nld_7493::printer); /// // Store the a object somewhere /// @@ -401,7 +423,7 @@ namespace plib { /// /// auto delegate_obj = a(this); /// delegate_obj(pstring("Hello World!")); - /// + /// ``` template<typename T> class late_pmfp { @@ -472,8 +494,8 @@ namespace plib { { typename traits::template specific_member_function<O> pFunc; static_assert(sizeof(pFunc) >= sizeof(F), "size error"); - // NOLINTNEXTLINE(cppcoreguidelines-pro-type-reinterpret-cast) - //*reinterpret_cast<F *>(&pFunc) = *mftp; + //# NOLINTNEXTLINE(cppcoreguidelines-pro-type-reinterpret-cast) + //# *reinterpret_cast<F *>(&pFunc) = *mftp; reinterpret_copy(*mftp, pFunc); raw_type mfpo(pFunc); generic_function_storage rfunc(nullptr); diff --git a/src/lib/netlist/plib/pstream.h b/src/lib/netlist/plib/pstream.h index 30c9f2b5c08..3c4aa6004d7 100644 --- a/src/lib/netlist/plib/pstream.h +++ b/src/lib/netlist/plib/pstream.h @@ -88,8 +88,7 @@ namespace plib { }; /// -/// -/// putf8reader_t digests linux & dos/windows text files +/// \brief digests linux & dos/windows text files /// // NOLINTNEXTLINE(cppcoreguidelines-special-member-functions) class putf8_reader @@ -201,9 +200,9 @@ private: std::unique_ptr<std::istream> m_strm; }; -// ----------------------------------------------------------------------------- -// putf8writer_t: writer on top of ostream -// ----------------------------------------------------------------------------- +/// +/// \brief writer on top of ostream +/// class putf8_writer { @@ -265,9 +264,9 @@ public: private: }; -// ----------------------------------------------------------------------------- -// pbinary_writer_t: writer on top of ostream -// ----------------------------------------------------------------------------- +/// +/// \brief writer on top of ostream +/// class pbinary_writer { diff --git a/src/lib/netlist/plib/ptests.h b/src/lib/netlist/plib/ptests.h index 856cbacf735..f82b614da7f 100644 --- a/src/lib/netlist/plib/ptests.h +++ b/src/lib/netlist/plib/ptests.h @@ -10,13 +10,13 @@ /// google tests compatible (hopefully) test macros. This is work in progress! /// +#include <algorithm> #include <exception> #include <functional> #include <iostream> +#include <sstream> #include <string> #include <vector> -#include <algorithm> -#include <sstream> #if defined(__clang__) #pragma clang diagnostic ignored "-Wglobal-constructors" diff --git a/src/lib/netlist/plib/ptime.h b/src/lib/netlist/plib/ptime.h index cb597aa590f..6ccafe640ba 100644 --- a/src/lib/netlist/plib/ptime.h +++ b/src/lib/netlist/plib/ptime.h @@ -60,7 +60,7 @@ namespace plib } template <typename O, typename T = std::enable_if_t<!ptime_le<ptime<O, RES>, ptime>::value, int>> - constexpr explicit ptime(const ptime<O, RES> &rhs,[[maybe_unused]] T dummy = 0) noexcept + constexpr explicit ptime(const ptime<O, RES> &rhs, [[maybe_unused]] T dummy = 0) noexcept : m_time(static_cast<TYPE>(rhs.m_time)) { } diff --git a/src/lib/netlist/plib/ptypes.h b/src/lib/netlist/plib/ptypes.h index 7f09a083793..815b4c8e404 100644 --- a/src/lib/netlist/plib/ptypes.h +++ b/src/lib/netlist/plib/ptypes.h @@ -119,7 +119,7 @@ namespace plib }; // <sys/types.h> on ubuntu system may define major and minor as macros - // That's why we use vmajor, .. here + // That's why we use `vmajor`, .. here template <std::size_t MAJOR, std::size_t MINOR> struct typed_version { @@ -159,7 +159,7 @@ namespace plib using version = typed_version<__clang_major__, __clang_minor__>; #elif defined(__GNUC__) using type = std::integral_constant<ci_compiler, ci_compiler::GCC>; - using version = typed_version< __GNUC__, __GNUC_MINOR__ >; + using version = typed_version<__GNUC__, __GNUC_MINOR__>; #elif defined(_MSC_VER) using type = std::integral_constant<ci_compiler, ci_compiler::MSC>; using version = typed_version<_MSC_VER / 100, _MSC_VER % 100>; @@ -169,10 +169,10 @@ namespace plib #endif #if defined(_LIBCPP_VERSION) using cpp_stdlib = std::integral_constant<ci_cpp_stdlib, ci_cpp_stdlib::LIBCPP>; - using cpp_stdlib_version = std::integral_constant<int, ((_LIBCPP_VERSION) / 1000) * 100 + ((_LIBCPP_VERSION) / 100) % 10>; + using cpp_stdlib_version = typed_version<(_LIBCPP_VERSION) / 1000, ((_LIBCPP_VERSION) / 100) % 10>; #elif defined(__GLIBCXX__) using cpp_stdlib = std::integral_constant<ci_cpp_stdlib, ci_cpp_stdlib::LIBSTDCXX>; - using cpp_stdlib_version = std::integral_constant<int, (_GLIBCXX_RELEASE) * 100>; + using cpp_stdlib_version = typed_version<(_GLIBCXX_RELEASE), 0>; #else using cpp_stdlib = std::integral_constant<ci_cpp_stdlib, ci_cpp_stdlib::UNKNOWN>; using cpp_stdlib_version = std::integral_constant<int, 0>; @@ -286,7 +286,7 @@ namespace plib template<typename T> struct is_floating_point : public std::is_floating_point<T> { }; - template< class T > + template<class T> struct is_arithmetic : std::integral_constant<bool, plib::is_integral<T>::value || plib::is_floating_point<T>::value> {}; @@ -350,7 +350,7 @@ namespace plib /// \brief mark arguments as not used for compiler /// - /// @tparam Ts unsused parameters + /// \tparam Ts unused parameters /// template<typename... Ts> inline void unused_var(Ts&&...) noexcept {} // NOLINT(readability-named-parameter) // FIXME: remove unused var completely @@ -377,7 +377,7 @@ namespace plib /// \brief Test if type R has a stream operator << defined /// - /// has_ostram_operator<std::ostream, int>:: value should be true + /// has_ostream_operator<std::ostream, int>:: value should be true /// /// \tparam LEFT Stream type /// \tparam RIGHT Type to check for operator overload diff --git a/src/lib/netlist/prg/nltool.cpp b/src/lib/netlist/prg/nltool.cpp index 4fced7acf27..acf035fd927 100644 --- a/src/lib/netlist/prg/nltool.cpp +++ b/src/lib/netlist/prg/nltool.cpp @@ -65,7 +65,7 @@ public: opt_grp3(*this, "Options for static command", "These options apply to static command."), opt_dir(*this, "d", "dir", "", "output directory for the generated files."), - opt_out(*this, "o", "output", "", "single output file for the generated code.\nEither --dir or --output can be specificied"), + opt_out(*this, "o", "output", "", "single output file for the generated code.\nEither --dir or --output can be specified"), opt_grp4(*this, "Options for run command", "These options are only used by the run command."), opt_ttr (*this, "t", "time_to_run", 1, "time to run the emulation (seconds)"), diff --git a/src/lib/netlist/prg/nlwav.cpp b/src/lib/netlist/prg/nlwav.cpp index 9a8d627028d..f807fd82d85 100644 --- a/src/lib/netlist/prg/nlwav.cpp +++ b/src/lib/netlist/prg/nlwav.cpp @@ -21,7 +21,7 @@ // is a common agreement in serious recording applications while // still recording the file. So a playback application can determine that the // given file is still being recorded. As soon as the recording application -// finishes the ongoing recording, it writes the correct values for RIFF lenth +// finishes the ongoing recording, it writes the correct values for RIFF length // and data chunk length to the file. // // http://de.wikipedia.org/wiki/RIFF_WAVE @@ -401,7 +401,7 @@ public: val = outsam * m_amp; } while (plib::abs(val) > 1.0); // FIXME: log this in state and provide on verbose output - //printf("dynamp adjusted to %f at %f\n", m_amp, time); + //printf("dynamic amplification adjusted to %f at %f\n", m_amp, time); } m_samples[chan] = val; } diff --git a/src/lib/netlist/solver/nld_matrix_solver.cpp b/src/lib/netlist/solver/nld_matrix_solver.cpp index 62d15d32127..8403666f61e 100644 --- a/src/lib/netlist/solver/nld_matrix_solver.cpp +++ b/src/lib/netlist/solver/nld_matrix_solver.cpp @@ -1,6 +1,12 @@ // license:BSD-3-Clause // copyright-holders:Couriersud +// Names +// spell-checker: words Raphson, Seidel +// +// Specific technical terms +// spell-checker: words vsolver + #include "nld_solver.h" #include "core/setup.h" #include "nl_setup.h" @@ -12,7 +18,7 @@ namespace netlist::solver terms_for_net_t::terms_for_net_t(analog_net_t * net) : m_net(net) - , m_railstart(0) + , m_rail_start(0) { } @@ -144,27 +150,31 @@ namespace netlist::solver m_dynamic_funcs.emplace_back(nldelegate_dyn(&core_device_t::update_terminals, d)); } + /// \brief Sort terminals + /// + /// @param sort Sort algorithm to use. + /// + /// Sort in descending order by number of connected matrix voltages. + ///The idea is, that for Gauss-Seidel algorithm the first voltage computed + /// depends on the greatest number of previous voltages thus taking into + /// account the maximum amount of information. + /// + /// This actually improves performance on popeye slightly. Average + /// GS computations reduce from 2.509 to 2.370 + /// + /// Smallest to largest : 2.613 + /// Unsorted : 2.509 + /// Largest to smallest : 2.370 + // + /// Sorting as a general matrix pre-conditioning is mentioned in + /// literature but I have found no articles about Gauss Seidel. + /// + /// For Gaussian Elimination however increasing order is better suited. + /// NOTE: Even better would be to sort on elements right of the matrix diagonal. + /// FIXME: This entry needs an update. + /// void matrix_solver_t::sort_terms(matrix_sort_type_e sort) { - // Sort in descending order by number of connected matrix voltages. - // The idea is, that for Gauss-Seidel algo the first voltage computed - // depends on the greatest number of previous voltages thus taking into - // account the maximum amout of information. - // - // This actually improves performance on popeye slightly. Average - // GS computations reduce from 2.509 to 2.370 - // - // Smallest to largest : 2.613 - // Unsorted : 2.509 - // Largest to smallest : 2.370 - // - // Sorting as a general matrix pre-conditioning is mentioned in - // literature but I have found no articles about Gauss Seidel. - // - // For Gaussian Elimination however increasing order is better suited. - // NOTE: Even better would be to sort on elements right of the matrix diagonal. - // - const std::size_t iN = m_terms.size(); switch (sort) @@ -211,7 +221,7 @@ namespace netlist::solver for (std::size_t k = 0; k < iN - 1; k++) for (std::size_t i = k+1; i < iN; i++) { - if ((static_cast<int>(m_terms[k].railstart()) - static_cast<int>(m_terms[i].railstart())) * sort_order < 0) + if ((static_cast<int>(m_terms[k].rail_start()) - static_cast<int>(m_terms[i].rail_start())) * sort_order < 0) { std::swap(m_terms[i], m_terms[k]); } @@ -238,7 +248,7 @@ namespace netlist::solver for (std::size_t k = 0; k < iN; k++) { - m_terms[k].set_railstart(m_terms[k].count()); + m_terms[k].set_rail_start(m_terms[k].count()); for (std::size_t i = 0; i < m_rails_temp[k].count(); i++) this->m_terms[k].add_terminal(m_rails_temp[k].terms()[i], m_rails_temp[k].m_connected_net_idx.data()[i], false); } @@ -259,7 +269,7 @@ namespace netlist::solver t.m_nz.clear(); - for (std::size_t i = 0; i < t.railstart(); i++) + for (std::size_t i = 0; i < t.rail_start(); i++) if (!plib::container::contains(t.m_nz, static_cast<unsigned>(other[i]))) t.m_nz.push_back(static_cast<unsigned>(other[i])); @@ -293,7 +303,7 @@ namespace netlist::solver } } - for (std::size_t i = 0; i < t.railstart(); i++) + for (std::size_t i = 0; i < t.rail_start(); i++) if (!plib::container::contains(t.m_nzrd, static_cast<unsigned>(other[i])) && other[i] >= static_cast<int>(k + 1)) t.m_nzrd.push_back(static_cast<unsigned>(other[i])); @@ -334,7 +344,7 @@ namespace netlist::solver } } } - log().verbose("Number of mults/adds for {1}: {2}", name(), m_ops); + log().verbose("Number of multiplications/additions for {1}: {2}", name(), m_ops); if ((false)) for (std::size_t k = 0; k < iN; k++) @@ -368,7 +378,7 @@ namespace netlist::solver for (std::size_t k = 0; k < iN; k++) { max_count = std::max(max_count, m_terms[k].count()); - max_rail = std::max(max_rail, m_terms[k].railstart()); + max_rail = std::max(max_rail, m_terms[k].rail_start()); } m_gtn.resize(iN, max_count); @@ -445,7 +455,7 @@ namespace netlist::solver do { update_dynamic(); - // Gauss-Seidel will revert to Gaussian elemination if steps exceeded. + // Gauss-Seidel will revert to Gaussian elimination if steps exceeded. this->m_stat_calculations++; this->vsolve_non_dynamic(); this_resched = this->check_err(); @@ -472,11 +482,11 @@ namespace netlist::solver backup(); step(timestep_type::FORWARD, netlist_time::from_fp(m_params.m_min_ts_ts())); resched = solve_nr_base(); - // update timestep calculation + // update time step calculation next_time_step = compute_next_timestep(m_params.m_min_ts_ts(), m_params.m_min_ts_ts(), m_params.m_max_timestep); delta -= netlist_time::from_fp(m_params.m_min_ts_ts()); } - // try remaining time using compute_next_timestep + // try remaining time using compute_next_time step while (delta > netlist_time::zero()) { if (next_time_step > delta) @@ -516,7 +526,7 @@ namespace netlist::solver return timestep_device_count() > 0 ? netlist_time::from_fp(m_params.m_min_timestep) : netlist_time::zero(); } - backup(); // save voltages for backup and timestep calculation + backup(); // save voltages for backup and time step calculation // update all terminals for new time step m_last_step = now; @@ -650,7 +660,7 @@ namespace netlist::solver log().verbose("Solver {1}", this->name()); log().verbose(" ==> {1} nets", this->m_terms.size()); log().verbose(" has {1} dynamic elements", this->dynamic_device_count()); - log().verbose(" has {1} timestep elements", this->timestep_device_count()); + log().verbose(" has {1} time step elements", this->timestep_device_count()); log().verbose(" {1:6.3} average newton raphson loops", static_cast<fptype>(this->m_stat_newton_raphson) / static_cast<fptype>(this->m_stat_vsolver_calls)); log().verbose(" {1:10} invocations ({2:6.0} Hz) {3:10} gs fails ({4:6.2} %) {5:6.3} average", diff --git a/src/lib/netlist/solver/nld_matrix_solver.h b/src/lib/netlist/solver/nld_matrix_solver.h index ea9f038bf8d..06bb8dcb1f3 100644 --- a/src/lib/netlist/solver/nld_matrix_solver.h +++ b/src/lib/netlist/solver/nld_matrix_solver.h @@ -4,6 +4,9 @@ #ifndef NLD_MATRIX_SOLVER_H_ #define NLD_MATRIX_SOLVER_H_ +// Names +// spell-checker: words Raphson, Seidel + /// /// \file nld_matrix_solver.h /// @@ -183,7 +186,7 @@ namespace netlist::solver std::size_t count() const noexcept { return m_terms.size(); } - std::size_t railstart() const noexcept { return m_railstart; } + std::size_t rail_start() const noexcept { return m_rail_start; } terminal_t **terms() noexcept { return m_terms.data(); } @@ -193,7 +196,7 @@ namespace netlist::solver bool is_net(const analog_net_t * net) const noexcept { return net == m_net; } - void set_railstart(std::size_t val) noexcept { m_railstart = val; } + void set_rail_start(std::size_t val) noexcept { m_rail_start = val; } PALIGNAS_VECTOROPT() @@ -205,7 +208,7 @@ namespace netlist::solver private: analog_net_t * m_net; plib::aligned_vector<terminal_t *> m_terms; - std::size_t m_railstart; + std::size_t m_rail_start; }; class proxied_analog_output_t : public analog_output_t @@ -256,7 +259,7 @@ namespace netlist::solver /// \brief Immediately solve system at current time /// /// This should only be called from update and update_param events. - /// It's purpose is to bring voltage values to the current timestep. + /// It's purpose is to bring voltage values to the current time step. /// This will be called BEFORE updating object properties. void solve_now() { @@ -316,11 +319,11 @@ namespace netlist::solver virtual void backup() = 0; virtual void restore() = 0; - std::size_t max_railstart() const noexcept + std::size_t max_rail_start() const noexcept { std::size_t max_rail = 0; for (std::size_t k = 0; k < m_terms.size(); k++) - max_rail = std::max(max_rail, m_terms[k].railstart()); + max_rail = std::max(max_rail, m_terms[k].rail_start()); return max_rail; } diff --git a/src/lib/netlist/solver/nld_matrix_solver_ext.h b/src/lib/netlist/solver/nld_matrix_solver_ext.h index b54cd9e1cdd..a77d1a40900 100644 --- a/src/lib/netlist/solver/nld_matrix_solver_ext.h +++ b/src/lib/netlist/solver/nld_matrix_solver_ext.h @@ -28,7 +28,7 @@ namespace netlist::solver : matrix_solver_t(main_solver, name, nets, params) , m_new_V(size) , m_RHS(size) - , m_mat_ptr(size, this->max_railstart() + 1) + , m_mat_ptr(size, this->max_rail_start() + 1) , m_last_V(size, nlconst::zero()) , m_DD_n_m_1(size, nlconst::zero()) , m_h_n_m_1(size, nlconst::magic(1e-6)) // we need a non zero value here @@ -46,16 +46,16 @@ namespace netlist::solver static constexpr const std::size_t SIZEABS = plib::parray<FT, SIZE>::SIZEABS(); static constexpr const std::size_t m_pitch_ABS = (((SIZEABS + 0) + 7) / 8) * 8; - //PALIGNAS_VECTOROPT() parrays define alignment already + //PALIGNAS_VECTOROPT() `parray` defines alignment already plib::parray<float_type, SIZE> m_new_V; - //PALIGNAS_VECTOROPT() parrays define alignment already + //PALIGNAS_VECTOROPT() `parray` defines alignment already plib::parray<float_type, SIZE> m_RHS; - //PALIGNAS_VECTOROPT() parrays define alignment already + //PALIGNAS_VECTOROPT() `parray` defines alignment already plib::pmatrix2d<float_type *> m_mat_ptr; template <typename T, typename M> - void log_fill(const T &fill,[[maybe_unused]] M &mat) + void log_fill(const T &fill, [[maybe_unused]] M &mat) { const std::size_t iN = fill.size(); @@ -207,7 +207,7 @@ namespace netlist::solver { std::size_t cnt(0); // build pointers into the compressed row format matrix for each terminal - for (std::size_t j=0; j< this->m_terms[k].railstart();j++) + for (std::size_t j=0; j< this->m_terms[k].rail_start();j++) { int other = this->m_terms[k].m_connected_net_idx[j]; if (other >= 0) @@ -216,8 +216,8 @@ namespace netlist::solver cnt++; } } - nl_assert_always(cnt == this->m_terms[k].railstart(), "Count and railstart mismatch"); - m_mat_ptr[k][this->m_terms[k].railstart()] = &(mat[k][k]); + nl_assert_always(cnt == this->m_terms[k].rail_start(), "Count and rail start mismatch"); + m_mat_ptr[k][this->m_terms[k].rail_start()] = &(mat[k][k]); } } @@ -245,25 +245,25 @@ namespace netlist::solver using source_type = typename decltype(m_gtn)::value_type; const std::size_t term_count = net.count(); - const std::size_t railstart = net.railstart(); + const std::size_t rail_start = net.rail_start(); const auto &go = m_gonn[k]; const auto > = m_gtn[k]; const auto &Idr = m_Idrn[k]; const auto &cnV = m_connected_net_Vn[k]; - // FIXME: gonn, gtn and Idr - which float types should they have? + //# FIXME: gonn, gtn and Idr - which float types should they have? auto gtot_t = std::accumulate(gt, gt + term_count, plib::constants<source_type>::zero()); // update diagonal element ... - *tcr_r[railstart] = static_cast<FT>(gtot_t); //mat.A[mat.diag[k]] += gtot_t; + *tcr_r[rail_start] = static_cast<FT>(gtot_t); //# mat.A[mat.diag[k]] += gtot_t; - for (std::size_t i = 0; i < railstart; i++) + for (std::size_t i = 0; i < rail_start; i++) *tcr_r[i] += static_cast<FT>(go[i]); auto RHS_t = std::accumulate(Idr, Idr + term_count, plib::constants<source_type>::zero()); - for (std::size_t i = railstart; i < term_count; i++) + for (std::size_t i = rail_start; i < term_count; i++) RHS_t += (- go[i]) * *cnV[i]; m_RHS[k] = static_cast<FT>(RHS_t); @@ -272,9 +272,9 @@ namespace netlist::solver private: // state - variable time_stepping - //PALIGNAS_VECTOROPT() parrays define alignment already + //PALIGNAS_VECTOROPT() `parray` defines alignment already plib::parray<fptype, SIZE> m_last_V; - // PALIGNAS_VECTOROPT() parrays define alignment already + //PALIGNAS_VECTOROPT() `parray` defines alignment already plib::parray<fptype, SIZE> m_DD_n_m_1; // PALIGNAS_VECTOROPT() parrays define alignment already plib::parray<fptype, SIZE> m_h_n_m_1; diff --git a/src/lib/netlist/solver/nld_ms_direct.h b/src/lib/netlist/solver/nld_ms_direct.h index dafbb592fa6..c24019d1ae5 100644 --- a/src/lib/netlist/solver/nld_ms_direct.h +++ b/src/lib/netlist/solver/nld_ms_direct.h @@ -49,7 +49,7 @@ namespace netlist::solver template <typename T> void LE_back_subst(T & x); - // PALIGNAS_VECTOROPT() parrays define alignment already + // PALIGNAS_VECTOROPT() `parray` defines alignment already plib::parray2D<FT, SIZE, m_pitch_ABS> m_A; }; @@ -86,25 +86,25 @@ namespace netlist::solver for (std::size_t i = 0; i < kN; i++) { // Find the row with the largest first value - std::size_t maxrow = i; + std::size_t max_row = i; for (std::size_t j = i + 1; j < kN; j++) { - if (plib::abs(m_A[j][i]) > plib::abs(m_A[maxrow][i])) - //if (m_A[j][i] * m_A[j][i] > m_A[maxrow][i] * m_A[maxrow][i]) - maxrow = j; + if (plib::abs(m_A[j][i]) > plib::abs(m_A[max_row][i])) + //#if (m_A[j][i] * m_A[j][i] > m_A[max_row][i] * m_A[max_row][i]) + max_row = j; } - if (maxrow != i) + if (max_row != i) { #if 0 - // Swap the maxrow and ith row + // Swap the max_row and ith row for (std::size_t k = 0; k < kN; k++) { - std::swap(m_A[i][k], m_A[maxrow][k]); + std::swap(m_A[i][k], m_A[max_row][k]); } #else - std::swap(m_A[i], m_A[maxrow]); + std::swap(m_A[i], m_A[max_row]); #endif - std::swap(this->m_RHS[i], this->m_RHS[maxrow]); + std::swap(this->m_RHS[i], this->m_RHS[max_row]); } // FIXME: Singular matrix? const auto &Ai = m_A[i]; diff --git a/src/lib/netlist/solver/nld_ms_direct_lu.h b/src/lib/netlist/solver/nld_ms_direct_lu.h index 55d5fe70114..c1cce1c47ac 100644 --- a/src/lib/netlist/solver/nld_ms_direct_lu.h +++ b/src/lib/netlist/solver/nld_ms_direct_lu.h @@ -1,13 +1,18 @@ // license:BSD-3-Clause // copyright-holders:Couriersud -/* - * nld_ms_direct.h - * - */ + +/// +/// \file nld_ms_direct.h +/// +/// #if 0 #ifndef NLD_MS_DIRECT_H_ #define NLD_MS_DIRECT_H_ +// Names +// spell-checker: words Seidel,Crout + + #include "solver/nld_solver.h" #include "solver/nld_matrix_solver.h" @@ -199,21 +204,21 @@ nl_double matrix_solver_direct_t<m_N, storage_N>::compute_next_timestep() if (new_solver_timestep > m_params.m_max_timestep) new_solver_timestep = m_params.m_max_timestep; } - //if (new_solver_timestep > 10.0 * hn) - // new_solver_timestep = 10.0 * hn; + //#if (new_solver_timestep > 10.0 * hn) + //# new_solver_timestep = 10.0 * hn; return new_solver_timestep; } template <unsigned m_N, unsigned storage_N> void matrix_solver_direct_t<m_N, storage_N>::add_term(int k, terminal_t *term) { - if (term->m_otherterm->net().isRailNet()) + if (term->m_other_terminal->net().isRailNet()) { m_rails_temp[k].add(term, -1, false); } else { - int ot = get_net_idx(&term->m_otherterm->net()); + int ot = get_net_idx(&term->m_other_terminal->net()); if (ot>=0) { m_terms[k]->add(term, ot, true); @@ -222,7 +227,7 @@ void matrix_solver_direct_t<m_N, storage_N>::add_term(int k, terminal_t *term) else // if (ot<0) { m_rails_temp[k].add(term, ot, true); - netlist().error("found term with missing othernet {1}\n", term->name()); + netlist().error("found term with missing other net {1}\n", term->name()); } } } @@ -244,7 +249,7 @@ void matrix_solver_direct_t<m_N, storage_N>::vsetup(analog_net_t::list_t &nets) for (unsigned k = 0; k < N(); k++) { - m_terms[k]->m_railstart = m_terms[k]->count(); + m_terms[k]->m_rail_start = m_terms[k]->count(); for (unsigned i = 0; i < m_rails_temp[k].count(); i++) this->m_terms[k]->add(m_rails_temp[k].terms()[i], m_rails_temp[k].connected_net_idx()[i], false); @@ -257,7 +262,7 @@ void matrix_solver_direct_t<m_N, storage_N>::vsetup(analog_net_t::list_t &nets) /* Sort in descending order by number of connected matrix voltages. * The idea is, that for Gauss-Seidel algo the first voltage computed * depends on the greatest number of previous voltages thus taking into - * account the maximum amout of information. + * account the maximum amount of information. * * This actually improves performance on popeye slightly. Average * GS computations reduce from 2.509 to 2.370 @@ -279,7 +284,7 @@ void matrix_solver_direct_t<m_N, storage_N>::vsetup(analog_net_t::list_t &nets) for (unsigned k = 0; k < N() / 2; k++) for (unsigned i = 0; i < N() - 1; i++) { - if ((m_terms[i]->m_railstart - m_terms[i+1]->m_railstart) * sort_order < 0) + if ((m_terms[i]->m_rail_start - m_terms[i+1]->m_rail_start) * sort_order < 0) { std::swap(m_terms[i],m_terms[i+1]); std::swap(m_nets[i], m_nets[i+1]); @@ -291,7 +296,7 @@ void matrix_solver_direct_t<m_N, storage_N>::vsetup(analog_net_t::list_t &nets) int *other = m_terms[k]->connected_net_idx(); for (unsigned i = 0; i < m_terms[k]->count(); i++) if (other[i] != -1) - other[i] = get_net_idx(&m_terms[k]->terms()[i]->m_otherterm->net()); + other[i] = get_net_idx(&m_terms[k]->terms()[i]->m_other_terminal->net()); } #endif @@ -325,7 +330,7 @@ void matrix_solver_direct_t<m_N, storage_N>::vsetup(analog_net_t::list_t &nets) for (unsigned j = 0; j < N(); j++) { - for (unsigned i = 0; i < t->m_railstart; i++) + for (unsigned i = 0; i < t->m_rail_start; i++) { if (!t->m_nzrd.contains(other[i]) && other[i] >= (int) (k + 1)) t->m_nzrd.add(other[i]); @@ -378,7 +383,7 @@ void matrix_solver_direct_t<m_N, storage_N>::build_LE_A() nl_double akk = 0.0; const unsigned terms_count = m_terms[k]->count(); - const unsigned railstart = m_terms[k]->m_railstart; + const unsigned rail_start = m_terms[k]->m_rail_start; const nl_double * RESTRICT gt = m_terms[k]->gt(); const nl_double * RESTRICT go = m_terms[k]->go(); const int * RESTRICT net_other = m_terms[k]->connected_net_idx(); @@ -388,7 +393,7 @@ void matrix_solver_direct_t<m_N, storage_N>::build_LE_A() A(k,k) += akk; - for (unsigned i = 0; i < railstart; i++) + for (unsigned i = 0; i < rail_start; i++) A(k, net_other[i]) -= go[i]; } } @@ -410,8 +415,8 @@ void matrix_solver_direct_t<m_N, storage_N>::build_LE_RHS(nl_double * RESTRICT r for (int i = 0; i < terms_count; i++) rhsk_a = rhsk_a + Idr[i]; - for (int i = m_terms[k]->m_railstart; i < terms_count; i++) - //rhsk = rhsk + go[i] * terms[i]->m_otherterm->net().as_analog().Q_Analog(); + for (int i = m_terms[k]->m_rail_start; i < terms_count; i++) + //#rhsk = rhsk + go[i] * terms[i]->m_other_terminal->net().as_analog().Q_Analog(); rhsk_b = rhsk_b + go[i] * *other_cur_analog[i]; rhs[k] = rhsk_a + rhsk_b; @@ -438,7 +443,7 @@ void matrix_solver_direct_t<m_N, storage_N>::LE_solve() for (j=0;j<kN;j++) if ((temp=fabs(m_A[i][j])) > big) big=temp; - //if (big == 0.0) nrerror("Singular matrix in routine LUDCMP"); + //#if (big == 0.0) nrerror("Singular matrix in routine LUDCMP"); vv[i]=1.0/big; } #endif diff --git a/src/lib/netlist/solver/nld_ms_gcr.h b/src/lib/netlist/solver/nld_ms_gcr.h index e77550a188a..70ce41782be 100644 --- a/src/lib/netlist/solver/nld_ms_gcr.h +++ b/src/lib/netlist/solver/nld_ms_gcr.h @@ -67,7 +67,7 @@ namespace netlist::solver { std::size_t cnt(0); // build pointers into the compressed row format matrix for each terminal - for (std::size_t j=0; j< this->m_terms[k].railstart();j++) + for (std::size_t j=0; j< this->m_terms[k].rail_start();j++) { int other = this->m_terms[k].m_connected_net_idx[j]; for (auto i = mat.row_idx[k]; i < mat.row_idx[k+1]; i++) @@ -78,8 +78,8 @@ namespace netlist::solver break; } } - nl_assert(cnt == this->m_terms[k].railstart()); - this->m_mat_ptr[k][this->m_terms[k].railstart()] = &mat.A[mat.diag[k]]; + nl_assert(cnt == this->m_terms[k].rail_start()); + this->m_mat_ptr[k][this->m_terms[k].rail_start()] = &mat.A[mat.diag[k]]; } this->state().log().verbose("maximum fill: {1}", gr.first); @@ -144,11 +144,11 @@ namespace netlist::solver { auto &net = this->m_terms[k]; - // FIXME: gonn, gtn and Idr - which float types should they have? + //# FIXME: gonn, gtn and Idr - which float types should they have? //auto gtot_t = std::accumulate(gt, gt + term_count, plib::constants<FT>::zero()); - //*tcr_r[railstart] = static_cast<FT>(gtot_t); //mat.A[mat.diag[k]] += gtot_t; - auto pd = this->m_mat_ptr[k][net.railstart()] - &this->mat.A[0]; + //*tcr_r[rail_start] = static_cast<FT>(gtot_t); //mat.A[mat.diag[k]] += gtot_t; + auto pd = this->m_mat_ptr[k][net.rail_start()] - &this->mat.A[0]; #if 0 pstring terms = plib::pfmt("m_A{1} = gt[{2}]")(pd, this->m_gtn.didx(k,0)); for (std::size_t i=1; i < net.count(); i++) @@ -159,10 +159,10 @@ namespace netlist::solver for (std::size_t i=0; i < net.count(); i++) strm("\tm_A{1} += gt[{2}];\n", pd, this->m_gtn.didx(k,i)); #endif - //for (std::size_t i = 0; i < railstart; i++) + //for (std::size_t i = 0; i < rail_start; i++) // *tcr_r[i] += static_cast<FT>(go[i]); - for (std::size_t i = 0; i < net.railstart(); i++) + for (std::size_t i = 0; i < net.rail_start(); i++) { auto p = this->m_mat_ptr[k][i] - &this->mat.A[0]; strm("\tm_A{1} += go[{2}];\n", p, this->m_gonn.didx(k,i)); @@ -173,10 +173,10 @@ namespace netlist::solver terms = plib::pfmt("{1} RHS{2} = Idr[{3}]")(fptype, k, this->m_Idrn.didx(k,0)); for (std::size_t i=1; i < net.count(); i++) terms += plib::pfmt(" + Idr[{1}]")(this->m_Idrn.didx(k,i)); - //for (std::size_t i = railstart; i < term_count; i++) + //for (std::size_t i = rail_start; i < term_count; i++) // RHS_t += (- go[i]) * *cnV[i]; - for (std::size_t i = net.railstart(); i < net.count(); i++) + for (std::size_t i = net.rail_start(); i < net.count(); i++) terms += plib::pfmt(" - go[{1}] * *cnV[{2}]")(this->m_gonn.didx(k,i), this->m_connected_net_Vn.didx(k,i)); strm("\t{1};\n", terms); @@ -185,10 +185,10 @@ namespace netlist::solver strm("\t{1} RHS{2} = Idr[{3}];\n", fptype, k, this->m_Idrn.didx(k,0)); for (std::size_t i=1; i < net.count(); i++) strm("\tRHS{1} += Idr[{2}];\n", k, this->m_Idrn.didx(k,i)); - //for (std::size_t i = railstart; i < term_count; i++) + //for (std::size_t i = rail_start; i < term_count; i++) // RHS_t += (- go[i]) * *cnV[i]; - for (std::size_t i = net.railstart(); i < net.count(); i++) + for (std::size_t i = net.rail_start(); i < net.count(); i++) strm("\tRHS{1} -= go[{2}] * *cnV[{3}];\n", k, this->m_gonn.didx(k,i), this->m_connected_net_Vn.didx(k,i)); #endif @@ -196,7 +196,7 @@ namespace netlist::solver for (std::size_t i = 0; i < iN - 1; i++) { - //const auto &nzbd = this->m_terms[i].m_nzbd; + //#const auto &nzbd = this->m_terms[i].m_nzbd; const auto *nzbd = mat.nzbd(i); const auto nzbd_count = mat.nzbd_count(i); diff --git a/src/lib/netlist/solver/nld_ms_gmres.h b/src/lib/netlist/solver/nld_ms_gmres.h index c7579313939..8803dda06c8 100644 --- a/src/lib/netlist/solver/nld_ms_gmres.h +++ b/src/lib/netlist/solver/nld_ms_gmres.h @@ -62,7 +62,7 @@ namespace netlist::solver for (std::size_t k=0; k<iN; k++) { std::size_t cnt = 0; - for (std::size_t j=0; j< this->m_terms[k].railstart();j++) + for (std::size_t j=0; j< this->m_terms[k].rail_start();j++) { for (std::size_t i = m_ops.m_mat.row_idx[k]; i<m_ops.m_mat.row_idx[k+1]; i++) if (this->m_terms[k].m_connected_net_idx[j] == static_cast<int>(m_ops.m_mat.col_idx[i])) @@ -72,8 +72,8 @@ namespace netlist::solver break; } } - nl_assert(cnt == this->m_terms[k].railstart()); - this->m_mat_ptr[k][this->m_terms[k].railstart()] = &m_ops.m_mat.A[m_ops.m_mat.diag[k]]; + nl_assert(cnt == this->m_terms[k].rail_start()); + this->m_mat_ptr[k][this->m_terms[k].rail_start()] = &m_ops.m_mat.A[m_ops.m_mat.diag[k]]; } } diff --git a/src/lib/netlist/solver/nld_ms_sm.h b/src/lib/netlist/solver/nld_ms_sm.h index 86669b7aef6..6d5bcc52704 100644 --- a/src/lib/netlist/solver/nld_ms_sm.h +++ b/src/lib/netlist/solver/nld_ms_sm.h @@ -22,7 +22,7 @@ /// /// The approach is iterative and applied for each row changed. /// -/// The performance for a typical circuit like kidniki compared to Gaussian +/// The performance for a typical circuit like `kidniki` compared to Gaussian /// elimination is poor: /// /// a) The code needs to be run for each row change. @@ -239,7 +239,7 @@ namespace netlist::solver auto lamba(plib::constants<FT>::zero()); std::array<float_type, m_pitch> w = {0}; - // compute w and lamba + // compute w and lambda for (std::size_t i = 0; i < iN; i++) z[i] = Ainv(i, row); // u is row'th column @@ -251,7 +251,7 @@ namespace netlist::solver std::size_t col = cols[j]; float_type f = v[col]; for (std::size_t k = 0; k < iN; k++) - w[k] += Ainv(col,k) * f; // Transpose(Ainv) * v + w[k] += Ainv(col,k) * f; //# Transpose(Ainv) * v } lamba = -plib::reciprocal(plib::constants<float_type>::one() + lamba); diff --git a/src/lib/netlist/solver/nld_ms_sor.h b/src/lib/netlist/solver/nld_ms_sor.h index ddd274337a2..d3b6b198f6d 100644 --- a/src/lib/netlist/solver/nld_ms_sor.h +++ b/src/lib/netlist/solver/nld_ms_sor.h @@ -4,6 +4,9 @@ #ifndef NLD_MS_SOR_H_ #define NLD_MS_SOR_H_ +// Names +// spell-checker: words Seidel + /// /// \file nld_ms_sor.h /// @@ -45,10 +48,10 @@ namespace netlist::solver std::vector<float_type> one_m_w; }; - // ---------------------------------------------------------------------------------------- - // matrix_solver - Gauss - Seidel - // ---------------------------------------------------------------------------------------- - + /// + /// \brief Gauss - Seidel matrix_solver + /// + /// template <typename FT, int SIZE> void matrix_solver_SOR_t<FT, SIZE>::vsolve_non_dynamic() { @@ -89,7 +92,7 @@ namespace netlist::solver RHS_t = RHS_t + Idr[i]; } - for (std::size_t i = this->m_terms[k].railstart(); i < term_count; i++) + for (std::size_t i = this->m_terms[k].rail_start(); i < term_count; i++) RHS_t = RHS_t - go[i] * *other_cur_analog[i]; this->m_RHS[k] = static_cast<float_type>(RHS_t); @@ -126,11 +129,11 @@ namespace netlist::solver for (std::size_t k = 0; k < iN; k++) { const int * net_other = this->m_terms[k].m_connected_net_idx.data(); - const std::size_t railstart = this->m_terms[k].railstart(); + const std::size_t rail_start = this->m_terms[k].rail_start(); const auto * go = this->m_gonn[k]; float_type Idrive = plib::constants<float_type>::zero(); - for (std::size_t i = 0; i < railstart; i++) + for (std::size_t i = 0; i < rail_start; i++) Idrive = Idrive - static_cast<float_type>(go[i]) * this->m_new_V[static_cast<std::size_t>(net_other[i])]; const float_type new_val = this->m_new_V[k] * one_m_w[k] + (Idrive + this->m_RHS[k]) * w[k]; diff --git a/src/lib/netlist/solver/nld_ms_sor_mat.h b/src/lib/netlist/solver/nld_ms_sor_mat.h index d06ad489c33..0c8b597fc2f 100644 --- a/src/lib/netlist/solver/nld_ms_sor_mat.h +++ b/src/lib/netlist/solver/nld_ms_sor_mat.h @@ -4,6 +4,10 @@ #ifndef NLD_MS_SOR_MAT_H_ #define NLD_MS_SOR_MAT_H_ +// Names +// spell-checker: words Seidel, +// + /// /// \file nld_ms_sor.h /// diff --git a/src/lib/netlist/solver/nld_ms_w.h b/src/lib/netlist/solver/nld_ms_w.h index ff29bc617f4..d320b6fc228 100644 --- a/src/lib/netlist/solver/nld_ms_w.h +++ b/src/lib/netlist/solver/nld_ms_w.h @@ -4,6 +4,13 @@ #ifndef NLD_MS_W_H_ #define NLD_MS_W_H_ +// Names +// spell-checker: words Woodbury, Raphson, +// +// Specific technical terms +// spell-checker: words Cgso, Cgdo, Cgbo, Cjsw, Mjsw, Ucrit, Uexp, Utra, Neff, Tnom, capval, Udsat, Utst + + /// /// \file nld_ms_direct.h /// @@ -34,8 +41,8 @@ /// for uk being unit vectors for full rank (max(k) == n) is identical to the /// inverse of A. /// -/// The approach performs relatively well for matrices up to n ~ 40 (kidniki using frontiers). -/// Kidniki without frontiers has n==88. Here, the average number of Newton-Raphson +/// The approach performs relatively well for matrices up to n ~ 40 (`kidniki` using frontiers). +/// `Kidniki` without frontiers has n==88. Here, the average number of Newton-Raphson /// loops increase to 20. It looks like that the approach for larger matrices /// introduces numerical instability. /// @@ -82,7 +89,7 @@ namespace netlist::solver template <typename T1, typename T2> float_ext_type &W(const T1 &r, const T2 &c) { return m_W[r][c]; } - // access to Ainv for fixed columns over row, there store transposed + // access to the inverted matrix for fixed columns over row, values stored transposed template <typename T1, typename T2> float_ext_type &Ainv(const T1 &r, const T2 &c) { return m_Ainv[c][r]; } template <typename T1> @@ -109,7 +116,7 @@ namespace netlist::solver array2D<float_ext_type, storage_N, m_pitch> H; std::array<unsigned, storage_N> rows; array2D<unsigned, storage_N, m_pitch> cols; - std::array<unsigned, storage_N> colcount; + std::array<unsigned, storage_N> col_count; unsigned m_cnt; }; @@ -225,7 +232,7 @@ namespace netlist::solver // determine changed rows - unsigned rowcount=0; + unsigned row_count=0; #define VT(r,c) (A(r,c) - lA(r,c)) for (unsigned row = 0; row < iN; row ++) @@ -235,20 +242,20 @@ namespace netlist::solver for (auto & col : nz) { if (A(row,col) != lA(row,col)) - cols[rowcount][cc++] = col; + cols[row_count][cc++] = col; } if (cc > 0) { - colcount[rowcount] = cc; - rows[rowcount++] = row; + col_count[row_count] = cc; + rows[row_count++] = row; } } - if (rowcount > 0) + if (row_count > 0) { // construct w = transform(V) * y - // dim: rowcount x iN + // dim: row_count x iN // - for (unsigned i = 0; i < rowcount; i++) + for (unsigned i = 0; i < row_count; i++) { const unsigned r = rows[i]; FT tmp = plib::constants<FT>::zero(); @@ -257,32 +264,32 @@ namespace netlist::solver w[i] = tmp; } - for (unsigned i = 0; i < rowcount; i++) - for (unsigned k=0; k< rowcount; k++) + for (unsigned i = 0; i < row_count; i++) + for (unsigned k=0; k< row_count; k++) H[i][k] = plib::constants<FT>::zero(); - for (unsigned i = 0; i < rowcount; i++) + for (unsigned i = 0; i < row_count; i++) H[i][i] = plib::constants<FT>::one(); // Construct H = (I + VT*Z) - for (unsigned i = 0; i < rowcount; i++) - for (unsigned k=0; k< colcount[i]; k++) + for (unsigned i = 0; i < row_count; i++) + for (unsigned k=0; k< col_count[i]; k++) { const unsigned col = cols[i][k]; float_type f = VT(rows[i],col); // FIXME: comparison to zero if (f != plib::constants<float_type>::zero()) - for (unsigned j= 0; j < rowcount; j++) + for (unsigned j= 0; j < row_count; j++) H[i][j] += f * Ainv(col,rows[j]); } // Gaussian elimination of H - for (unsigned i = 0; i < rowcount; i++) + for (unsigned i = 0; i < row_count; i++) { // FIXME: comparison to zero if (H[i][i] == plib::constants<float_type>::zero()) plib::perrlogger("{} H singular\n", this->name()); const float_type f = plib::reciprocal(H[i][i]); - for (unsigned j = i+1; j < rowcount; j++) + for (unsigned j = i+1; j < row_count; j++) { const float_type f1 = - f * H[j][i]; @@ -291,7 +298,7 @@ namespace netlist::solver { float_type *pj = &H[j][i+1]; const float_type *pi = &H[i][i+1]; - for (unsigned k = 0; k < rowcount-i-1; k++) + for (unsigned k = 0; k < row_count-i-1; k++) pj[k] += f1 * pi[k]; //H[j][k] += f1 * H[i][k]; w[j] += f1 * w[i]; @@ -300,12 +307,12 @@ namespace netlist::solver } // Back substitution //inv(H) w = t w = H t - for (unsigned j = rowcount; j-- > 0; ) + for (unsigned j = row_count; j-- > 0; ) { float_type tmp = 0; const float_type *pj = &H[j][j+1]; const float_type *tj = &t[j+1]; - for (unsigned k = 0; k < rowcount-j-1; k++) + for (unsigned k = 0; k < row_count-j-1; k++) tmp += pj[k] * tj[k]; //tmp += H[j][k] * t[k]; t[j] = (w[j] - tmp) / H[j][j]; @@ -315,7 +322,7 @@ namespace netlist::solver for (unsigned i=0; i<iN; i++) { float_type tmp = plib::constants<FT>::zero(); - for (unsigned j=0; j<rowcount;j++) + for (unsigned j=0; j<row_count;j++) { const unsigned row = rows[j]; tmp += Ainv(i,row) * t[j]; diff --git a/src/lib/netlist/solver/nld_solver.cpp b/src/lib/netlist/solver/nld_solver.cpp index 9f31872b472..f806001332b 100644 --- a/src/lib/netlist/solver/nld_solver.cpp +++ b/src/lib/netlist/solver/nld_solver.cpp @@ -1,6 +1,8 @@ // license:BSD-3-Clause // copyright-holders:Couriersud +// Names +// spell-checker: words Woodbury, #include "nl_factory.h" #include "core/setup.h" @@ -413,9 +415,9 @@ namespace netlist::devices } else { - auto *otherterm = dynamic_cast<terminal_t *>(t); - if (otherterm != nullptr) - if (state().setup().get_connected_terminal(*otherterm)->net().is_rail_net()) + auto *other_terminal = dynamic_cast<terminal_t *>(t); + if (other_terminal != nullptr) + if (state().setup().get_connected_terminal(*other_terminal)->net().is_rail_net()) railterms++; } } @@ -465,7 +467,7 @@ namespace netlist::devices log().verbose("Solver {1}", ms->name()); log().verbose(" ==> {1} nets", grp.size()); log().verbose(" has {1} dynamic elements", ms->dynamic_device_count()); - log().verbose(" has {1} timestep elements", ms->timestep_device_count()); + log().verbose(" has {1} time step elements", ms->timestep_device_count()); for (auto &n : grp) { log().verbose("Net {1}", n->name()); diff --git a/src/lib/netlist/tests/test_pfunction.cpp b/src/lib/netlist/tests/test_pfunction.cpp index c87671d8c7a..fa100e7edb2 100644 --- a/src/lib/netlist/tests/test_pfunction.cpp +++ b/src/lib/netlist/tests/test_pfunction.cpp @@ -4,7 +4,7 @@ /// /// \file test_pfunction.cpp /// -/// tests for pfunction +/// tests for `pfunction` class /// #include "plib/ptests.h" diff --git a/src/lib/netlist/tests/test_pmfp.cpp b/src/lib/netlist/tests/test_pmfp.cpp index 1d80e80bc16..19da395965e 100644 --- a/src/lib/netlist/tests/test_pmfp.cpp +++ b/src/lib/netlist/tests/test_pmfp.cpp @@ -4,7 +4,7 @@ /// /// \file test_pmfp.cpp /// -/// tests for plib::pmfp +/// tests for `plib::pmfp` class /// #include "plib/ptests.h" diff --git a/src/lib/netlist/tests/test_pmfp_multibase.cpp b/src/lib/netlist/tests/test_pmfp_multibase.cpp index 83f14b94ce0..2f2cd860425 100644 --- a/src/lib/netlist/tests/test_pmfp_multibase.cpp +++ b/src/lib/netlist/tests/test_pmfp_multibase.cpp @@ -4,7 +4,7 @@ /// /// \file test_pmfp_multibase.cpp /// -/// tests for plib::pmfp +/// tests for `plib::pmfp` /// #include "plib/ptypes.h" diff --git a/src/lib/netlist/tests/test_precommit.cpp b/src/lib/netlist/tests/test_precommit.cpp index b0f1dfa98eb..7f710dfb668 100644 --- a/src/lib/netlist/tests/test_precommit.cpp +++ b/src/lib/netlist/tests/test_precommit.cpp @@ -4,7 +4,7 @@ /// /// \file test_pmfp.cpp /// -/// tests for plib::pmfp +/// tests for `plib::pmfp` /// #include "plib/pconfig.h" diff --git a/src/lib/netlist/tools/nl_convert.cpp b/src/lib/netlist/tools/nl_convert.cpp index 31d2a657dcc..36bd58b73bf 100644 --- a/src/lib/netlist/tools/nl_convert.cpp +++ b/src/lib/netlist/tools/nl_convert.cpp @@ -340,7 +340,7 @@ void nl_convert_spice_t::convert_block(const str_list &contents) void nl_convert_spice_t::convert(const pstring &contents) { std::vector<pstring> spnl(plib::psplit(contents, '\n')); - std::vector<pstring> after_linecontinuation; + std::vector<pstring> after_line_continuation; // Add gnd net @@ -358,24 +358,24 @@ void nl_convert_spice_t::convert(const pstring &contents) line += inl.substr(1); else { - after_linecontinuation.push_back(line); + after_line_continuation.push_back(line); line = inl; } } - after_linecontinuation.push_back(line); + after_line_continuation.push_back(line); spnl.clear(); // no longer needed // Process sub circuits std::vector<std::vector<pstring>> subckts; std::vector<pstring> nl; - auto inp = after_linecontinuation.begin(); - while (inp != after_linecontinuation.end()) + auto inp = after_line_continuation.begin(); + while (inp != after_line_continuation.end()) { if (plib::startsWith(*inp, ".SUBCKT")) { std::vector<pstring> sub; - while (inp != after_linecontinuation.end()) + while (inp != after_line_continuation.end()) { auto s(*inp); sub.push_back(s); diff --git a/src/mame/drivers/amstrad.cpp b/src/mame/drivers/amstrad.cpp index 3aabbe7afa6..7034d6b2caa 100644 --- a/src/mame/drivers/amstrad.cpp +++ b/src/mame/drivers/amstrad.cpp @@ -106,6 +106,7 @@ Some bugs left : #include "imagedev/cassette.h" #include "formats/tzx_cas.h" #include "formats/msx_dsk.h" +#include "formats/ipf_dsk.h" #include "machine/ram.h" #include "softlist.h" @@ -796,6 +797,12 @@ static void amstrad_floppies(device_slot_interface &device) device.option_add("35ssdd", FLOPPY_35_DD); } +void amstrad_state::amstrad_floppy_formats(format_registration &fr) +{ + fr.add_mfm_containers(); + fr.add(FLOPPY_IPF_FORMAT); +} + static void aleste_floppies(device_slot_interface &device) { device.option_add("35dd", FLOPPY_35_DD); @@ -986,8 +993,8 @@ void amstrad_state::cpc664(machine_config &config) { amstrad_base(config); UPD765A(config, m_fdc, 16_MHz_XTAL / 4, true, true); - FLOPPY_CONNECTOR(config, "upd765:0", amstrad_floppies, "3ssdd", floppy_image_device::default_mfm_floppy_formats).enable_sound(true); - FLOPPY_CONNECTOR(config, "upd765:1", amstrad_floppies, "35ssdd", floppy_image_device::default_mfm_floppy_formats).enable_sound(true); + FLOPPY_CONNECTOR(config, "upd765:0", amstrad_floppies, "3ssdd", amstrad_state::amstrad_floppy_formats).enable_sound(true); + FLOPPY_CONNECTOR(config, "upd765:1", amstrad_floppies, "35ssdd", amstrad_state::amstrad_floppy_formats).enable_sound(true); SOFTWARE_LIST(config, "flop_list").set_original("cpc_flop"); cpc_expansion_slot_device &exp(CPC_EXPANSION_SLOT(config, "exp", 16_MHz_XTAL / 4, cpc_exp_cards, nullptr)); @@ -1005,8 +1012,8 @@ void amstrad_state::cpc6128(machine_config &config) { amstrad_base(config); UPD765A(config, m_fdc, 16_MHz_XTAL / 4, true, true); - FLOPPY_CONNECTOR(config, "upd765:0", amstrad_floppies, "3ssdd", floppy_image_device::default_mfm_floppy_formats).enable_sound(true); - FLOPPY_CONNECTOR(config, "upd765:1", amstrad_floppies, "35ssdd", floppy_image_device::default_mfm_floppy_formats).enable_sound(true); + FLOPPY_CONNECTOR(config, "upd765:0", amstrad_floppies, "3ssdd", amstrad_state::amstrad_floppy_formats).enable_sound(true); + FLOPPY_CONNECTOR(config, "upd765:1", amstrad_floppies, "35ssdd", amstrad_state::amstrad_floppy_formats).enable_sound(true); SOFTWARE_LIST(config, "flop_list").set_original("cpc_flop"); cpc_expansion_slot_device &exp(CPC_EXPANSION_SLOT(config, "exp", 16_MHz_XTAL / 4, cpc_exp_cards, nullptr)); @@ -1092,8 +1099,8 @@ void amstrad_state::cpcplus(machine_config &config) cpcplus_cartslot(config); - FLOPPY_CONNECTOR(config, "upd765:0", amstrad_floppies, "3ssdd", floppy_image_device::default_mfm_floppy_formats).enable_sound(true); - FLOPPY_CONNECTOR(config, "upd765:1", amstrad_floppies, "35ssdd", floppy_image_device::default_mfm_floppy_formats).enable_sound(true); + FLOPPY_CONNECTOR(config, "upd765:0", amstrad_floppies, "3ssdd", amstrad_state::amstrad_floppy_formats).enable_sound(true); + FLOPPY_CONNECTOR(config, "upd765:1", amstrad_floppies, "35ssdd", amstrad_state::amstrad_floppy_formats).enable_sound(true); SOFTWARE_LIST(config, "flop_list").set_original("cpc_flop"); cpc_expansion_slot_device &exp(CPC_EXPANSION_SLOT(config, "exp", 40_MHz_XTAL / 10, cpcplus_exp_cards, nullptr)); diff --git a/src/mame/drivers/arkanoid.cpp b/src/mame/drivers/arkanoid.cpp index a9a9687eb90..0356803858e 100644 --- a/src/mame/drivers/arkanoid.cpp +++ b/src/mame/drivers/arkanoid.cpp @@ -1699,6 +1699,26 @@ ROM_START( arkatour ) // Tournament version ROM_LOAD( "a75-35.ic22", 0x0400, 0x0200, CRC(38acfd3b) SHA1(2841e9db047aa039eff8567a518b6250b355507b) ) /* blue component */ ROM_END + +ROM_START( arkatour2 ) // Tournament version, newer + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "a75-36.ic16", 0x0000, 0x8000, CRC(f3b1923e) SHA1(377a417ad99c9de2eadad7338bc2c7e83d08cb2f) ) + ROM_LOAD( "a75-37.ic17", 0x8000, 0x8000, CRC(7c74987b) SHA1(fb7612ea2af87a3e1bc794c25b004881930d4dc8) ) // 1xxxxxxxxxxxxxx = 0xFF + + ROM_REGION( 0x0800, "mcu:mcu", 0 ) + ROM_LOAD( "a75_38.ic14", 0x0000, 0x0800, NO_DUMP ) + + ROM_REGION( 0x18000, "gfx1", 0 ) + ROM_LOAD( "a75-29.ic64", 0x00000, 0x8000, CRC(5ddea3cf) SHA1(58f16515898b7cc2697bf7663a60d9ca0db6da95) ) + ROM_LOAD( "a75-30.ic63", 0x08000, 0x8000, CRC(5fcf2e85) SHA1(f721f0afb0550cc64bff26681856a7576398d9b5) ) + ROM_LOAD( "a75-31.ic62", 0x10000, 0x8000, CRC(7b76b192) SHA1(a68aa08717646a6c322cf3455df07f50df9e9f33) ) + + ROM_REGION( 0x0600, "proms", 0 ) + ROM_LOAD( "a75-33.ic24", 0x0000, 0x0200, CRC(b4bf3c81) SHA1(519188937ac9728c653fabac877e37dc43c3f71a) ) // red component + ROM_LOAD( "a75-34.ic23", 0x0200, 0x0200, CRC(de85a803) SHA1(325214995996de36a0470fbfc00e4e393c0b17ad) ) // green component + ROM_LOAD( "a75-35.ic22", 0x0400, 0x0200, CRC(38acfd3b) SHA1(2841e9db047aa039eff8567a518b6250b355507b) ) // blue component +ROM_END + // Everything from here on is bootlegs ROM_START( arkanoidjbl ) // bootleg with MCU copied from real Taito code, but notice screen hacked up. @@ -2267,7 +2287,8 @@ GAME( 1988, paddle2, arkanoid, bootleg, paddle2, arkanoid_state, init_pa GAME( 1986, arkatayt, arkanoid, aysnd, arkatayt, arkanoid_state, empty_init, ROT90, "bootleg (Tayto)", "Arkanoid (Tayto bootleg)", MACHINE_SUPPORTS_SAVE ) GAME( 1986, arktayt2, arkanoid, aysnd, arktayt2, arkanoid_state, empty_init, ROT90, "bootleg (Tayto)", "Arkanoid (Tayto bootleg, harder)", MACHINE_SUPPORTS_SAVE ) // Other games -GAME( 1987, arkatour, 0, arkanoid, arkanoid, arkanoid_state, empty_init, ROT90, "Taito America Corporation (Romstar license)", "Tournament Arkanoid (US)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, arkatour, 0, arkanoid, arkanoid, arkanoid_state, empty_init, ROT90, "Taito America Corporation (Romstar license)", "Tournament Arkanoid (US, older)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, arkatour2, arkatour, arkanoid, arkanoid, arkanoid_state, empty_init, ROT90, "Taito America Corporation (Romstar license)", "Tournament Arkanoid (US, newer)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // same FRI, 6 JUN 1986, 15:49 string for both sets, but labels show this is newer GAME( 19??, tetrsark, 0, bootleg, tetrsark, arkanoid_state, init_tetrsark, ROT0, "D.R. Korea", "Tetris (D.R. Korea, set 1, encrypted)", MACHINE_SUPPORTS_SAVE ) GAME( 19??, tetrsark2, tetrsark, bootleg, tetrsark, arkanoid_state, init_tetrsark2, ROT0, "D.R. Korea", "Tetris (D.R. Korea, set 2)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/hh_hmcs40.cpp b/src/mame/drivers/hh_hmcs40.cpp index a0deea9a9c3..347d603f2fb 100644 --- a/src/mame/drivers/hh_hmcs40.cpp +++ b/src/mame/drivers/hh_hmcs40.cpp @@ -132,6 +132,7 @@ TODO: #include "video/pwm.h" #include "machine/gen_latch.h" #include "machine/timer.h" +#include "sound/flt_vol.h" #include "sound/spkrdev.h" #include "screen.h" @@ -2403,7 +2404,8 @@ class cdkong_state : public hh_hmcs40_state { public: cdkong_state(const machine_config &mconfig, device_type type, const char *tag) : - hh_hmcs40_state(mconfig, type, tag) + hh_hmcs40_state(mconfig, type, tag), + m_volume(*this, "volume") { } void cdkong(machine_config &config); @@ -2412,15 +2414,15 @@ protected: virtual void machine_start() override; private: + required_device<filter_volume_device> m_volume; + void update_display(); void plate_w(offs_t offset, u8 data); void grid_w(u16 data); void speaker_update(); TIMER_DEVICE_CALLBACK_MEMBER(speaker_decay_sim); - double m_speaker_volume = 0.0; - std::vector<double> m_speaker_levels; }; void cdkong_state::machine_start() @@ -2436,8 +2438,7 @@ void cdkong_state::speaker_update() if (m_r[1] & 8) m_speaker_volume = 1.0; - int level = (m_d & 8) ? 0x7fff : 0; - m_speaker->level_w(level * m_speaker_volume); + m_volume->flt_volume_set_volume(m_speaker_volume); } TIMER_DEVICE_CALLBACK_MEMBER(cdkong_state::speaker_decay_sim) @@ -2468,8 +2469,7 @@ void cdkong_state::plate_w(offs_t offset, u8 data) void cdkong_state::grid_w(u16 data) { // D3: speaker out - m_d = data; - speaker_update(); + m_speaker->level_w(BIT(data, 3)); // D4-D14: vfd grid m_grid = data >> 4 & 0x7ff; @@ -2514,15 +2514,10 @@ void cdkong_state::cdkong(machine_config &config) // sound hardware SPEAKER(config, "mono").front_center(); - SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 0.25); + SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "volume", 0.25); + FILTER_VOLUME(config, m_volume).add_route(ALL_OUTPUTS, "mono", 1.0); TIMER(config, "speaker_decay").configure_periodic(FUNC(cdkong_state::speaker_decay_sim), attotime::from_msec(1)); - - // set volume levels (set_output_gain is too slow for sub-frame intervals) - m_speaker_levels.resize(0x8000); - for (int i = 0; i < 0x8000; i++) - m_speaker_levels[i] = double(i) / 32768.0; - m_speaker->set_levels(0x8000, &m_speaker_levels[0]); } // roms diff --git a/src/mame/drivers/hh_pic16.cpp b/src/mame/drivers/hh_pic16.cpp index 1a523f7d399..3a35e746c8c 100644 --- a/src/mame/drivers/hh_pic16.cpp +++ b/src/mame/drivers/hh_pic16.cpp @@ -60,6 +60,7 @@ TODO: #include "video/pwm.h" #include "machine/clock.h" #include "machine/timer.h" +#include "sound/flt_vol.h" #include "sound/spkrdev.h" #include "speaker.h" @@ -680,7 +681,8 @@ class flash_state : public hh_pic16_state { public: flash_state(const machine_config &mconfig, device_type type, const char *tag) : - hh_pic16_state(mconfig, type, tag) + hh_pic16_state(mconfig, type, tag), + m_volume(*this, "volume") { } void flash(machine_config &config); @@ -689,12 +691,14 @@ protected: virtual void machine_start() override; private: + required_device<filter_volume_device> m_volume; + void update_display(); void write_b(u8 data); u8 read_c(); void write_c(u8 data); - void speaker_decay_reset(); + void speaker_update(); TIMER_DEVICE_CALLBACK_MEMBER(speaker_decay_sim); double m_speaker_volume = 0.0; }; @@ -707,21 +711,20 @@ void flash_state::machine_start() // handlers -void flash_state::speaker_decay_reset() +void flash_state::speaker_update() { if (~m_b & 0x40) - m_speaker_volume = 20.0; + m_speaker_volume = 50.0; // it takes a bit before it actually starts fading - double vol = (m_speaker_volume > 1.0) ? 1.0 : m_speaker_volume; - m_speaker->set_output_gain(0, vol); + m_volume->flt_volume_set_volume(std::min(m_speaker_volume, 1.0)); } TIMER_DEVICE_CALLBACK_MEMBER(flash_state::speaker_decay_sim) { // volume decays when speaker is off (divisor and timer period determine duration) - speaker_decay_reset(); - m_speaker_volume /= 1.15; + speaker_update(); + m_speaker_volume /= 1.0075; } void flash_state::update_display() @@ -736,10 +739,11 @@ void flash_state::write_b(u8 data) m_b = data; update_display(); - // B6: speaker on // B7: speaker out - speaker_decay_reset(); - m_speaker->level_w(data >> 7 & 1); + m_speaker->level_w(BIT(data, 7)); + + // B6: speaker on + speaker_update(); } u8 flash_state::read_c() @@ -790,8 +794,10 @@ void flash_state::flash(machine_config &config) // sound hardware SPEAKER(config, "mono").front_center(); - SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 0.25); - TIMER(config, "speaker_decay").configure_periodic(FUNC(flash_state::speaker_decay_sim), attotime::from_msec(25)); + SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "volume", 0.25); + FILTER_VOLUME(config, m_volume).add_route(ALL_OUTPUTS, "mono", 1.0); + + TIMER(config, "speaker_decay").configure_periodic(FUNC(flash_state::speaker_decay_sim), attotime::from_msec(1)); } // roms @@ -1113,7 +1119,8 @@ class leboom_state : public hh_pic16_state { public: leboom_state(const machine_config &mconfig, device_type type, const char *tag) : - hh_pic16_state(mconfig, type, tag) + hh_pic16_state(mconfig, type, tag), + m_volume(*this, "volume") { } void leboom(machine_config &config); @@ -1122,11 +1129,13 @@ protected: virtual void machine_start() override; private: + required_device<filter_volume_device> m_volume; + u8 read_a(); void write_b(u8 data); void write_c(u8 data); - void speaker_decay_reset(); + void speaker_update(); TIMER_DEVICE_CALLBACK_MEMBER(speaker_decay_sim); double m_speaker_volume = 0.0; }; @@ -1139,19 +1148,19 @@ void leboom_state::machine_start() // handlers -void leboom_state::speaker_decay_reset() +void leboom_state::speaker_update() { if (~m_c & 0x80) m_speaker_volume = 1.0; - m_speaker->set_output_gain(0, m_speaker_volume); + m_volume->flt_volume_set_volume(m_speaker_volume); } TIMER_DEVICE_CALLBACK_MEMBER(leboom_state::speaker_decay_sim) { // volume decays when speaker is off (divisor and timer period determine duration) - speaker_decay_reset(); - m_speaker_volume /= 1.015; + speaker_update(); + m_speaker_volume /= 1.005; } u8 leboom_state::read_a() @@ -1169,14 +1178,14 @@ void leboom_state::write_b(u8 data) void leboom_state::write_c(u8 data) { // C4: single led - m_display->matrix(1, data >> 4 & 1); + m_display->matrix(1, BIT(data, 4)); + + // C6: speaker out + m_speaker->level_w(BIT(data, 6)); // C7: speaker on m_c = data; - speaker_decay_reset(); - - // C6: speaker out - m_speaker->level_w(data >> 6 & 1); + speaker_update(); } // config @@ -1234,8 +1243,10 @@ void leboom_state::leboom(machine_config &config) // sound hardware SPEAKER(config, "mono").front_center(); - SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 0.25); - TIMER(config, "speaker_decay").configure_periodic(FUNC(leboom_state::speaker_decay_sim), attotime::from_msec(25)); + SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "volume", 0.25); + FILTER_VOLUME(config, m_volume).add_route(ALL_OUTPUTS, "mono", 1.0); + + TIMER(config, "speaker_decay").configure_periodic(FUNC(leboom_state::speaker_decay_sim), attotime::from_msec(5)); } // roms diff --git a/src/mame/drivers/hh_sm510.cpp b/src/mame/drivers/hh_sm510.cpp index f594e819864..7f65e88ec8a 100644 --- a/src/mame/drivers/hh_sm510.cpp +++ b/src/mame/drivers/hh_sm510.cpp @@ -1454,6 +1454,7 @@ ROM_END ИМ-50 Космический полёт Kosmicheskiy polyot Space Flight The Model ID is the same as Весёлая арифметика (Vesyolaya arithmetika, export version: Amusing Arithmetic) (not emulated in MAME) ИМ-51 Морская атака Morskaya ataka - - ИМ-53 Атака астероидов Ataka asteroidov - Graphics are very similar to ИМ-50 + - Цирк Circus (Tsirk) - Unknown Model ID ***************************************************************************/ @@ -1478,6 +1479,7 @@ public: void kosmicpt(machine_config &config); void morataka(machine_config &config); void atakaast(machine_config &config); + void ecircus(machine_config &config); }; // config @@ -1584,6 +1586,11 @@ void gnw_mmouse_state::atakaast(machine_config &config) kb1013vk12_common(config, 1620, 1080); // R mask option ? } +void gnw_mmouse_state::ecircus(machine_config &config) +{ + kb1013vk12_common(config, 1657, 1080); // R mask option ? +} + // roms ROM_START( gnw_mmouse ) @@ -1698,6 +1705,14 @@ ROM_START( atakaast ) ROM_LOAD( "atakaast.svg", 0, 105570, CRC(3d79aacc) SHA1(bc25969f4d6fa75b320130c920ac0bdc8fb44cbd) ) ROM_END +ROM_START( ecircus ) + ROM_REGION( 0x800, "maincpu", 0 ) + ROM_LOAD( "ecircus.bin", 0x0000, 0x0740, CRC(cb820c32) SHA1(7e94fc255f32db725d5aa9e196088e490c1a1443) ) + + ROM_REGION( 124643, "screen", 0) + ROM_LOAD( "ecircus.svg", 0, 124643, CRC(079f25db) SHA1(defa784c80e01ce6affbb424930674114275bea1) ) +ROM_END + @@ -9990,6 +10005,7 @@ CONS( 19??, nochnyev, gnw_mmouse, 0, nochnyev, gnw_mmouse, gnw_mmouse CONS( 19??, kosmicpt, gnw_mmouse, 0, kosmicpt, gnw_mmouse, gnw_mmouse_state, empty_init, "bootleg (Elektronika)", "Kosmicheskiy polyot", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK ) CONS( 19??, morataka, gnw_mmouse, 0, morataka, gnw_mmouse, gnw_mmouse_state, empty_init, "bootleg (Elektronika)", "Morskaja ataka", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK ) CONS( 1992, atakaast, gnw_mmouse, 0, atakaast, gnw_mmouse, gnw_mmouse_state, empty_init, "bootleg (Elektronika)", "Ataka asteroidov", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK ) +CONS( 19??, ecircus, gnw_mmouse, 0, ecircus, gnw_mmouse, gnw_mmouse_state, empty_init, "bootleg (Elektronika)", "Circus (Elektronika)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK ) CONS( 1989, kosmicmt, gnw_fire, 0, kosmicmt, gnw_fire, gnw_fire_state, empty_init, "bootleg (Elektronika)", "Kosmicheskiy most", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK ) CONS( 1990, auslalom, 0, 0, auslalom, auslalom, auslalom_state, empty_init, "Elektronika", "Autoslalom", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK ) diff --git a/src/mame/drivers/hh_tms1k.cpp b/src/mame/drivers/hh_tms1k.cpp index 2fb8d005bda..03faef7e99f 100644 --- a/src/mame/drivers/hh_tms1k.cpp +++ b/src/mame/drivers/hh_tms1k.cpp @@ -101,7 +101,7 @@ on Joerg Woerner's datamath.org: http://www.datamath.org/IC_List.htm @MP1218 TMS1100 1980, Entex Basketball 2 (6010) @MP1219 TMS1100 1980, U.S. Games Super Sports-4 @MP1221 TMS1100 1980, Entex Raise The Devil (6011) - *MP1228 TMS1100 1980, Entex Musical Marvin (6014) + @MP1228 TMS1100 1980, Entex Musical Marvin (6014) @MP1231 TMS1100 1984, Tandy 3 in 1 Sports Arena (model 60-2178) @MP1296 TMS1100 1982, Entex Black Knight Pinball (6081) @MP1311 TMS1100 1981, Bandai TC7: Air Traffic Control @@ -201,6 +201,7 @@ on Joerg Woerner's datamath.org: http://www.datamath.org/IC_List.htm #include "machine/tmc0999.h" #include "machine/tms1024.h" #include "sound/beep.h" +#include "sound/flt_vol.h" #include "sound/s14001a.h" #include "sound/sn76477.h" #include "video/hlcd0515.h" @@ -5059,6 +5060,179 @@ ROM_END /*************************************************************************** + Entex Musical Marvin + * TMS1100 MP1228 (no decap) + * 1 7seg LED, 8 other leds, 1-bit sound with volume decay + * dials for speed, tone (volume decay), volume (also off/on switch) + + The design patent was assigned to Hanzawa (Japan), so it's probably + manufactured by them. + +***************************************************************************/ + +class mmarvin_state : public hh_tms1k_state +{ +public: + mmarvin_state(const machine_config &mconfig, device_type type, const char *tag) : + hh_tms1k_state(mconfig, type, tag), + m_volume(*this, "volume"), + m_speed_timer(*this, "speed") + { } + + void mmarvin(machine_config &config); + +protected: + virtual void machine_start() override; + +private: + required_device<filter_volume_device> m_volume; + required_device<timer_device> m_speed_timer; + + void update_display(); + void write_r(u16 data); + void write_o(u16 data); + u8 read_k(); + + TIMER_DEVICE_CALLBACK_MEMBER(speaker_decay_sim); + double m_speaker_volume = 0.0; +}; + +void mmarvin_state::machine_start() +{ + hh_tms1k_state::machine_start(); + save_item(NAME(m_speaker_volume)); +} + +// handlers + +TIMER_DEVICE_CALLBACK_MEMBER(mmarvin_state::speaker_decay_sim) +{ + m_volume->flt_volume_set_volume(m_speaker_volume); + + // volume decays when speaker is off, decay scale is determined by tone dial + double step = (1.01 - 1.003) / 255.0; // approximation + m_speaker_volume /= 1.01 - (double)(u8)m_inputs[5]->read() * step; +} + +void mmarvin_state::update_display() +{ + u8 digit = bitswap<7>(m_o,6,2,1,0,5,4,3); // 7seg is upside-down + m_display->matrix(m_r, (m_o << 1 & 0x100) | (m_r & 0x80) | digit); +} + +void mmarvin_state::write_r(u16 data) +{ + // R2-R5: input mux + m_inp_mux = data >> 2 & 0xf; + + // R6: trigger speed dial timer + if (m_r & 0x40 && ~data & 0x40) + { + double step = (2100 - 130) / 255.0; // duration range is around 0.13s to 2.1s + m_speed_timer->adjust(attotime::from_msec(2100 - (u8)m_inputs[4]->read() * step)); + } + + // R10: speaker out + m_speaker->level_w(BIT(m_r, 10)); + + // R9: trigger speaker on + if (m_r & 0x200 && ~data & 0x200) + m_volume->flt_volume_set_volume(m_speaker_volume = 1.0); + + // R0,R1: digit/led select + // R7: digit DP + m_r = data; + update_display(); +} + +void mmarvin_state::write_o(u16 data) +{ + // O0-O7: led data + m_o = data; + update_display(); +} + +u8 mmarvin_state::read_k() +{ + // K1-K4: multiplexed inputs + // K8: speed dial state + return (read_inputs(4) & 7) | (m_speed_timer->enabled() ? 0 : 8); +} + +// config + +static INPUT_PORTS_START( mmarvin ) + PORT_START("IN.0") // R2 + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED ) + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_M) PORT_NAME("Mode") + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED ) + + PORT_START("IN.1") // R3 + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_1) PORT_NAME("Button Do 1") + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_2) PORT_NAME("Button Re") + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_3) PORT_NAME("Button Mi") + + PORT_START("IN.2") // R4 + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_4) PORT_NAME("Button Fa") + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_5) PORT_NAME("Button Sol") + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_6) PORT_NAME("Button La") + + PORT_START("IN.3") // R5 + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_7) PORT_NAME("Button Ti") + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_8) PORT_NAME("Button Do 2") + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_S) PORT_NAME("Space") + + PORT_START("IN.4") + PORT_BIT( 0xff, 0x80, IPT_PADDLE ) PORT_SENSITIVITY(15) PORT_KEYDELTA(15) PORT_CENTERDELTA(0) PORT_PLAYER(1) PORT_NAME("Speed Dial") + + PORT_START("IN.5") + PORT_BIT( 0xff, 0x80, IPT_PADDLE ) PORT_SENSITIVITY(15) PORT_KEYDELTA(15) PORT_CENTERDELTA(0) PORT_PLAYER(2) PORT_NAME("Tone Dial") +INPUT_PORTS_END + +void mmarvin_state::mmarvin(machine_config &config) +{ + // basic machine hardware + TMS1100(config, m_maincpu, 300000); // approximation - RC osc. R=51K, C=47pF + m_maincpu->k().set(FUNC(mmarvin_state::read_k)); + m_maincpu->r().set(FUNC(mmarvin_state::write_r)); + m_maincpu->o().set(FUNC(mmarvin_state::write_o)); + + TIMER(config, "speed").configure_generic(nullptr); + + // video hardware + PWM_DISPLAY(config, m_display).set_size(2, 9); + m_display->set_segmask(1, 0xff); + //config.set_default_layout(layout_mmarvin); + + // sound hardware + SPEAKER(config, "mono").front_center(); + SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "volume", 0.25); + FILTER_VOLUME(config, m_volume).add_route(ALL_OUTPUTS, "mono", 1.0); + + TIMER(config, "speaker_decay").configure_periodic(FUNC(mmarvin_state::speaker_decay_sim), attotime::from_msec(1)); +} + +// roms + +ROM_START( mmarvin ) + ROM_REGION( 0x0800, "maincpu", 0 ) + ROM_LOAD( "mp1228", 0x0000, 0x0800, CRC(68ce3ab6) SHA1(15f7fb3f438116bf6128f11c981bdc0852d5a4ec) ) + + ROM_REGION( 867, "maincpu:mpla", 0 ) + ROM_LOAD( "tms1100_common2_micro.pla", 0, 867, BAD_DUMP CRC(7cc90264) SHA1(c6e1cf1ffb178061da9e31858514f7cd94e86990) ) // not verified + ROM_REGION( 365, "maincpu:opla", ROMREGION_ERASE00 ) + ROM_LOAD( "tms1100_mmarvin_output.pla", 0, 365, NO_DUMP ) + + ROM_REGION16_LE( 0x40, "maincpu:opla_b", ROMREGION_ERASE00 ) // verified, electronic dump + ROM_LOAD16_BYTE( "tms1100_mmarvin_output.bin", 0, 0x20, CRC(a274951f) SHA1(7e91ddd42c132942a32351649eaf1107b5b0285c) ) +ROM_END + + + + + +/*************************************************************************** + Fonas 2 Player Baseball * PCB label CA-014 (probably Cassia) * TMS1000NLL MP0154 (die label 1000B, MP0154) @@ -14195,6 +14369,7 @@ CONS( 1980, efootb4 , 0, 0, efootb4, efootb4, efootb4_state, emp CONS( 1980, ebaskb2 , 0, 0, ebaskb2, ebaskb2, ebaskb2_state, empty_init, "Entex", "Electronic Basketball 2 (Entex)", MACHINE_SUPPORTS_SAVE ) CONS( 1980, raisedvl, 0, 0, raisedvl, raisedvl, raisedvl_state, empty_init, "Entex", "Raise The Devil Pinball", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK ) CONS( 1982, ebknight, 0, 0, ebknight, raisedvl, raisedvl_state, empty_init, "Entex", "Black Knight Pinball (Entex)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK ) +CONS( 1980, mmarvin, 0, 0, mmarvin, mmarvin, mmarvin_state, empty_init, "Entex", "Musical Marvin", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) CONS( 1979, f2pbball, 0, 0, f2pbball, f2pbball, f2pbball_state, empty_init, "Fonas", "2 Player Baseball (Fonas)", MACHINE_SUPPORTS_SAVE ) CONS( 1979, f3in1, 0, 0, f3in1, f3in1, f3in1_state, empty_init, "Fonas", "3 in 1: Football, Basketball, Soccer", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK ) diff --git a/src/mame/drivers/kingdrby.cpp b/src/mame/drivers/kingdrby.cpp index c794d463b1b..47cd382e3c8 100644 --- a/src/mame/drivers/kingdrby.cpp +++ b/src/mame/drivers/kingdrby.cpp @@ -284,6 +284,7 @@ uint32_t kingdrby_state::screen_update_kingdrby(screen_device &screen, bitmap_rg /* maybe it needs two window tilemaps? (one at the top, the other at the bottom)*/ clip.set(visarea.min_x, 255, 192, visarea.max_y); + clip &= cliprect; /*TILEMAP_DRAW_CATEGORY + TILEMAP_DRAW_OPAQUE doesn't suit well?*/ m_sc0_tilemap->draw(screen, bitmap, cliprect, 0,0); diff --git a/src/mame/drivers/megadriv_acbl.cpp b/src/mame/drivers/megadriv_acbl.cpp index 5c0250dd0b5..7299c40b9e4 100644 --- a/src/mame/drivers/megadriv_acbl.cpp +++ b/src/mame/drivers/megadriv_acbl.cpp @@ -367,13 +367,38 @@ uint16_t md_boot_state::barek2mb_r() return 0x0000; } -uint16_t md_boot_state::sonic3mb_r() +void md_sonic3bl_state::prot_w(u8 data) { - if (m_maincpu->pc() == 0x1688) return 0x0300; // TODO: should work but doesn't? debug: just put 0x0300 at 0xfffffc during the first startup check to succesfully boot. Coins are stored in the same location + m_prot_cmd = data; +} - // logerror("sonic3mb_r : %06x\n", m_maincpu->pc()); +// PIC simulation, it just handles coinage and DSWs +uint16_t md_sonic3bl_state::prot_r() +{ + u16 res = 0; + switch (m_prot_cmd) + { + // POST, upper 8-bits part is fixed and needed for booting game, + // lower is DSW, cfr. PC=0x16c0/0x16c6 subroutines, lower 4 bits not actually handled by 68k side + case 0x33: res = 0x0300 | (m_in_mcu->read() & 0xff); break; + case 0x00: + // TODO: coinage + // lower 8-bits is adder for coins (i.e. with 0x202 will add 2 credits to the counter), + // bit 9 is coin state, active high + res = m_in_coin->read() & 0x88 ? 0x201 : 0; + break; + case 0x66: + // handshake or coin status after reading from commands 0x33 or 0x00, + // if bit 0 is high will tight loop until it's low + // we currently go the coin status route to not bother handling coin off manually. + res = m_in_coin->read() ? 1 : 0; + break; + default: + logerror("Unhandled %04x prot command\n", m_prot_cmd); + break; + } - return 0x0000; + return res; } uint16_t md_boot_state::dsw_r(offs_t offset) @@ -721,6 +746,26 @@ INPUT_PORTS_START( twinktmb ) PORT_BIT( 0xff00, IP_ACTIVE_HIGH, IPT_UNUSED ) INPUT_PORTS_END +INPUT_PORTS_START( sonic3mb ) + PORT_INCLUDE( twinktmb ) + + PORT_MODIFY("MCU") + // TODO: actual diplocations + // lower 4 bits is for coinage? Not read by 68k + PORT_BIT( 0x0f, IP_ACTIVE_HIGH, IPT_UNKNOWN ) + PORT_DIPNAME( 0x30, 0x10, DEF_STR( Lives ) ) + PORT_DIPSETTING( 0x30, "1" ) + PORT_DIPSETTING( 0x20, "2" ) + PORT_DIPSETTING( 0x10, "3" ) + PORT_DIPSETTING( 0x00, "4" ) + PORT_DIPNAME( 0xc0, 0x00, "Time Limit" ) + PORT_DIPSETTING( 0xc0, "1:00" ) + PORT_DIPSETTING( 0x80, "2:00" ) + PORT_DIPSETTING( 0x40, "3:00" ) + PORT_DIPSETTING( 0x00, "4:00" ) +INPUT_PORTS_END + + // Verified from M68000 code INPUT_PORTS_START( srmdb ) PORT_INCLUDE( md_common ) @@ -1331,10 +1376,10 @@ void md_boot_state::init_sonic2mb() init_megadrij(); } -void md_boot_state::init_sonic3mb() +void md_sonic3bl_state::init_sonic3mb() { - // m_maincpu->space(AS_PROGRAM).install_write_handler(0x200000, 0x200001, write16smo_delegate(*this, FUNC(md_boot_state::sonic3mb_w))); // seems to write to PIC from here - m_maincpu->space(AS_PROGRAM).install_read_handler(0x300000, 0x300001, read16smo_delegate(*this, FUNC(md_boot_state::sonic3mb_r))); // reads from PIC from here + m_maincpu->space(AS_PROGRAM).install_write_handler(0x200000, 0x200000, write8smo_delegate(*this, FUNC(md_sonic3bl_state::prot_w))); + m_maincpu->space(AS_PROGRAM).install_read_handler(0x300000, 0x300001, read16smo_delegate(*this, FUNC(md_sonic3bl_state::prot_r))); init_megadrij(); } @@ -1541,7 +1586,7 @@ GAME( 1993, srmdb, 0, megadrvb, srmdb, md_boot_state, init_srmdb, R GAME( 1995, topshoot, 0, md_bootleg, topshoot, md_boot_state, init_topshoot, ROT0, "Sun Mixing", "Top Shooter", 0 ) GAME( 1996, sbubsm, 0, md_bootleg, sbubsm, md_boot_state, init_sbubsm, ROT0, "Sun Mixing", "Super Bubble Bobble (Sun Mixing, Mega Drive clone hardware)", 0 ) GAME( 1993, sonic2mb, 0, md_bootleg, sonic2mb, md_boot_state, init_sonic2mb, ROT0, "bootleg / Sega", "Sonic The Hedgehog 2 (bootleg of Mega Drive version)", 0 ) // Flying wires going through the empty PIC space aren't completely understood -GAME( 1993, sonic3mb, 0, md_bootleg, twinktmb, md_boot_state, init_sonic3mb, ROT0, "bootleg / Sega", "Sonic The Hedgehog 3 (bootleg of Mega Drive version)", MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING ) // undumped PIC +GAME( 1993, sonic3mb, 0, md_bootleg, sonic3mb, md_sonic3bl_state, init_sonic3mb, ROT0, "bootleg / Sega", "Sonic The Hedgehog 3 (bootleg of Mega Drive version)", MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING ) // undumped PIC GAME( 1994, barek2mb, 0, md_bootleg, barek2, md_boot_state, init_barek2, ROT0, "bootleg / Sega", "Bare Knuckle II (bootleg of Mega Drive version)", MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING ) // Needs PIC hook up GAME( 1994, barek3mb, 0, megadrvb, barek3, md_boot_state, init_barek3, ROT0, "bootleg / Sega", "Bare Knuckle III (bootleg of Mega Drive version)", 0 ) GAME( 1994, bk3ssrmb, 0, megadrvb_6b, bk3ssrmb, md_boot_6button_state, init_bk3ssrmb, ROT0, "bootleg / Sega", "Bare Knuckle III / Sunset Riders (bootleg of Mega Drive versions)", MACHINE_NOT_WORKING ) // Currently boots as Bare Knuckle III, mechanism to switch game not found yet diff --git a/src/mame/drivers/nyny.cpp b/src/mame/drivers/nyny.cpp index 64a58146644..9db28f5898f 100644 --- a/src/mame/drivers/nyny.cpp +++ b/src/mame/drivers/nyny.cpp @@ -748,4 +748,4 @@ ROM_END GAME( 1980, nyny, 0, nyny, nyny, nyny_state, empty_init, ROT270, "Sigma Enterprises Inc.", "New York! New York!", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) GAME( 1980, nynyg, nyny, nyny, nyny, nyny_state, empty_init, ROT270, "Sigma Enterprises Inc. (Gottlieb license)", "New York! New York! (Gottlieb)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 1980, warcadia,nyny, nyny, nyny, nyny_state, empty_init, ROT270, "Sigma Enterprises Inc.", "Waga Seishun no Arcadia", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1982, warcadia,nyny, nyny, nyny, nyny_state, empty_init, ROT270, "Sigma Enterprises Inc.", "Waga Seishun no Arcadia", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/segae.cpp b/src/mame/drivers/segae.cpp index a4608dc99b0..1a24c4f2976 100644 --- a/src/mame/drivers/segae.cpp +++ b/src/mame/drivers/segae.cpp @@ -199,7 +199,7 @@ ROMs: Game IC2 IC3 IC4 IC5 IC7 --------------------------------------------------------------------------------- -Megumi Rescue* IC-2 IC-3 IC-4 IC-5 IC-7 +Megumi Rescue V10.30 IC-2 V10.30 IC-3 V10.30 IC-4 V10.30 IC-5 V10.30 IC-7 Hang-On Jr. EPR-7261 EPR-7260 EPR-7259 EPR-7258 EPR-7257B Transformer EPR-7350 EPR-7606 EPR-7348 EPR-7347 EPR-7605 /Astro Flash EPR-7350 EPR-7349 EPR-7348 EPR-7347 EPR-7723 @@ -210,13 +210,6 @@ Opa Opa (encrypted) EPR-11220 EPR-11221 EPR-11222 EPR-11223 EPR-112 Fantasy Zone 2 EPR-11412 EPR-11413 EPR-11414 EPR-11415 EPR-11416 Tetris - - EPR-12211 EPR-12212 EPR-12213 -* Only one board for Megumi Rescue has been seen (from an eBay auction), ROM labels where in this form: - -MEGUMI RESCUE -IC-7 -(C)1987 SEGA/EXA - - A System E PCB can run all of the games simply by swapping the EPROMs plus CPU. Well, in theory anyway. To run the non-encrypted games, just swap EPROMs and they will work. @@ -856,6 +849,22 @@ static INPUT_PORTS_START( ridleofp ) /* Used By Riddle Of Pythagoras */ //"SW2:8" unused INPUT_PORTS_END +static INPUT_PORTS_START( megrescu ) + PORT_INCLUDE( segae_ridleofp_generic ) + + PORT_MODIFY("e0") + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 ) + + PORT_MODIFY("f3") + PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW2:3,4") + PORT_DIPSETTING( 0x00, "Cheat" ) // unlimited? + PORT_DIPSETTING( 0x0c, "2" ) + PORT_DIPSETTING( 0x08, "3" ) + PORT_DIPSETTING( 0x04, "4" ) + PORT_DIPNAME(0x10, 0x00, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SW2:5") + PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) + PORT_DIPSETTING( 0x10, DEF_STR( Cocktail ) ) +INPUT_PORTS_END uint32_t systeme_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { @@ -1128,6 +1137,30 @@ ROM_START( astrofl ) ROM_LOAD( "epr-7350.ic2", 0x28000, 0x08000, CRC(0052165d) SHA1(cf4b5dffa54238e513515b3fc90faa7ce0b65d34) ) ROM_END +//************************************************************************************************************************* +// Megumi Rescue +// Game ID# 833-6200 +// +// ROMs have no SEGA EPR codes but are all marked +// +// Megumi Rescue +// V10.30 +// Final Version +// IC-x +// (c)1987SEGA/EXA +// +// (where -x is the IC position on the PCB) + +ROM_START( megrescu ) + ROM_REGION( 0x30000, "maincpu", 0 ) + ROM_LOAD( "v10_30ic.7", 0x00000, 0x08000, CRC(490d0059) SHA1(de4e23eb862ef3c29b2fbdceba14360eb6e2a8ef) ) /* Fixed Code */ + + ROM_LOAD( "v10_30ic.5", 0x10000, 0x08000, CRC(278caba8) SHA1(809e504f6c680f742f0a5968d6bb16c2f67f851c) ) + ROM_LOAD( "v10_30ic.4", 0x18000, 0x08000, CRC(bda242d1) SHA1(3704da98fe91d9e7f4380ea5e1f897b6b7049466) ) + ROM_LOAD( "v10_30ic.3", 0x20000, 0x08000, CRC(56e36f85) SHA1(84aa78bc628bce64b1b990a8c9fcca25e5940bd3) ) + ROM_LOAD( "v10_30ic.2", 0x28000, 0x08000, CRC(5b74c767) SHA1(dbc82a4e046f01130c72bbd7a81190d7f0ca209c) ) +ROM_END + // YEAR, NAME, PARENT, MACHINE, INPUT, STATE INIT, MONITOR,COMPANY,FULLNAME,FLAGS GAME( 1985, hangonjr, 0, hangonjr, hangonjr, systeme_state, empty_init, ROT0, "Sega", "Hang-On Jr. (Rev. B)", MACHINE_SUPPORTS_SAVE ) @@ -1139,3 +1172,4 @@ GAME( 1987, opaopa, 0, systemeb, opaopa, systeme_state, init GAME( 1987, opaopan, opaopa, systeme, opaopa, systeme_state, empty_init, ROT0, "Sega", "Opa Opa (Rev A, unprotected)", MACHINE_SUPPORTS_SAVE ) GAME( 1988, fantzn2, 0, systemex, fantzn2, systeme_state, init_fantzn2, ROT0, "Sega", "Fantasy Zone II - The Tears of Opa-Opa (MC-8123, 317-0057)", MACHINE_SUPPORTS_SAVE ) GAME( 1988, tetrisse, 0, systeme, tetrisse, systeme_state, empty_init, ROT0, "Sega", "Tetris (Japan, System E)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, megrescu, 0, ridleofp, megrescu, systeme_state, empty_init, ROT90, "Sega / Exa", "Megumi Rescue", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/specpls3.cpp b/src/mame/drivers/specpls3.cpp index 08ee79c4ecd..842f7ea006f 100644 --- a/src/mame/drivers/specpls3.cpp +++ b/src/mame/drivers/specpls3.cpp @@ -154,6 +154,7 @@ http://www.z88forever.org.uk/zxplus3e/ #include "screen.h" #include "softlist_dev.h" +#include "formats/ipf_dsk.h" #include "formats/tzx_cas.h" #define VERBOSE 0 @@ -371,6 +372,12 @@ static void specpls3_floppies(device_slot_interface &device) device.option_add("3ssdd", FLOPPY_3_SSDD); } +void specpls3_state::floppy_formats(format_registration &fr) +{ + fr.add_mfm_containers(); + fr.add(FLOPPY_IPF_FORMAT); +} + bool specpls3_state::is_contended(offs_t offset) { u8 bank = m_bank_ram[3]->entry(); @@ -418,8 +425,8 @@ void specpls3_state::spectrum_plus3(machine_config &config) UPD765A(config, m_upd765, 16_MHz_XTAL / 4, true, false); // clocked through SED9420 m_upd765->us_wr_callback().set(FUNC(specpls3_state::plus3_us_w)); - FLOPPY_CONNECTOR(config, "upd765:0", specpls3_floppies, "3ssdd", floppy_image_device::default_mfm_floppy_formats); // internal drive - FLOPPY_CONNECTOR(config, "upd765:1", specpls3_floppies, "3ssdd", floppy_image_device::default_mfm_floppy_formats); // external drive + FLOPPY_CONNECTOR(config, "upd765:0", specpls3_floppies, "3ssdd", specpls3_state::floppy_formats); // internal drive + FLOPPY_CONNECTOR(config, "upd765:1", specpls3_floppies, "3ssdd", specpls3_state::floppy_formats); // external drive SOFTWARE_LIST(config, "flop_list").set_original("specpls3_flop"); } diff --git a/src/mame/drivers/wildfire.cpp b/src/mame/drivers/wildfire.cpp index e107c30534b..a680974da95 100644 --- a/src/mame/drivers/wildfire.cpp +++ b/src/mame/drivers/wildfire.cpp @@ -37,8 +37,10 @@ TODO: *******************************************************************************/ #include "emu.h" + #include "cpu/amis2000/amis2000.h" #include "machine/timer.h" +#include "sound/flt_vol.h" #include "sound/spkrdev.h" #include "video/pwm.h" #include "speaker.h" @@ -55,7 +57,8 @@ public: driver_device(mconfig, type, tag), m_maincpu(*this, "maincpu"), m_display(*this, "display"), - m_speaker(*this, "speaker") + m_speaker(*this, "speaker"), + m_volume(*this, "volume") { } void wildfire(machine_config &config); @@ -67,20 +70,18 @@ private: required_device<amis2000_base_device> m_maincpu; required_device<pwm_display_device> m_display; required_device<speaker_sound_device> m_speaker; + required_device<filter_volume_device> m_volume; void update_display(); void write_d(u8 data); void write_a(u16 data); - DECLARE_WRITE_LINE_MEMBER(write_f); void speaker_update(); TIMER_DEVICE_CALLBACK_MEMBER(speaker_decay_sim); double m_speaker_volume = 0.0; - std::vector<double> m_speaker_levels; u16 m_a = 0; u8 m_d = 0; - int m_f = 0; }; void wildfire_state::machine_start() @@ -88,7 +89,6 @@ void wildfire_state::machine_start() // register for savestates save_item(NAME(m_a)); save_item(NAME(m_d)); - save_item(NAME(m_f)); save_item(NAME(m_speaker_volume)); } @@ -103,7 +103,7 @@ void wildfire_state::speaker_update() if (~m_a & 0x1000) m_speaker_volume = 1.0; - m_speaker->level_w(m_f * 0x7fff * m_speaker_volume); + m_volume->flt_volume_set_volume(m_speaker_volume); } TIMER_DEVICE_CALLBACK_MEMBER(wildfire_state::speaker_decay_sim) @@ -136,13 +136,6 @@ void wildfire_state::write_a(u16 data) speaker_update(); } -WRITE_LINE_MEMBER(wildfire_state::write_f) -{ - // F: speaker out - m_f = state; - speaker_update(); -} - /******************************************************************************* @@ -178,7 +171,7 @@ void wildfire_state::wildfire(machine_config &config) m_maincpu->read_i().set_ioport("IN.0"); m_maincpu->write_d().set(FUNC(wildfire_state::write_d)); m_maincpu->write_a().set(FUNC(wildfire_state::write_a)); - m_maincpu->write_f().set(FUNC(wildfire_state::write_f)); + m_maincpu->write_f().set(m_speaker, FUNC(speaker_sound_device::level_w)); // video hardware PWM_DISPLAY(config, m_display).set_size(12, 8); @@ -188,15 +181,10 @@ void wildfire_state::wildfire(machine_config &config) // sound hardware SPEAKER(config, "mono").front_center(); - SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 0.25); + SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "volume", 0.25); + FILTER_VOLUME(config, m_volume).add_route(ALL_OUTPUTS, "mono", 1.0); TIMER(config, "speaker_decay").configure_periodic(FUNC(wildfire_state::speaker_decay_sim), attotime::from_usec(100)); - - // set volume levels (set_output_gain is too slow for sub-frame intervals) - m_speaker_levels.resize(0x8000); - for (int i = 0; i < 0x8000; i++) - m_speaker_levels[i] = double(i) / 32768.0; - m_speaker->set_levels(0x8000, &m_speaker_levels[0]); } diff --git a/src/mame/includes/amstrad.h b/src/mame/includes/amstrad.h index 4f8b8976243..fa6718a73eb 100644 --- a/src/mame/includes/amstrad.h +++ b/src/mame/includes/amstrad.h @@ -256,6 +256,7 @@ private: DECLARE_WRITE_LINE_MEMBER( cpc_romdis ); void rom_select(uint8_t data); + static void amstrad_floppy_formats(format_registration &fr); static void aleste_floppy_formats(format_registration &fr); IRQ_CALLBACK_MEMBER(amstrad_cpu_acknowledge_int); diff --git a/src/mame/includes/megadriv_acbl.h b/src/mame/includes/megadriv_acbl.h index 2f64b1ed890..49a296976e2 100644 --- a/src/mame/includes/megadriv_acbl.h +++ b/src/mame/includes/megadriv_acbl.h @@ -8,7 +8,7 @@ class md_boot_state : public md_base_state { public: md_boot_state(const machine_config &mconfig, device_type type, const char *tag) - : md_base_state(mconfig, type, tag) { m_protcount = 0;} + : md_base_state(mconfig, type, tag) { m_protcount = 0; } void megadrvb(machine_config &config); void md_bootleg(machine_config &config); @@ -28,7 +28,6 @@ public: void init_barekch(); void init_bk3ssrmb(); void init_sonic2mb(); - void init_sonic3mb(); void init_twinktmb(); void init_jparkmb(); void init_sbubsm(); @@ -40,7 +39,6 @@ private: uint16_t aladmdb_r(); uint16_t barek2mb_r(); uint16_t jparkmb_r(); - uint16_t sonic3mb_r(); uint16_t twinktmb_r(); uint16_t dsw_r(offs_t offset); uint16_t topshoot_200051_r(); @@ -60,6 +58,27 @@ private: int m_protcount; }; +class md_sonic3bl_state : public md_boot_state +{ +public: + md_sonic3bl_state(const machine_config &mconfig, device_type type, const char *tag) + : md_boot_state(mconfig, type, tag) + , m_in_coin(*this, "COIN") + , m_in_mcu(*this, "MCU") + { } + + void init_sonic3mb(); + +private: + required_ioport m_in_coin; + required_ioport m_in_mcu; + + void prot_w(u8 data); + uint16_t prot_r(); + + u8 m_prot_cmd = 0; +}; + class md_boot_6button_state : public md_boot_state { public: diff --git a/src/mame/includes/specpls3.h b/src/mame/includes/specpls3.h index 1391f68a92b..986880fa6fd 100644 --- a/src/mame/includes/specpls3.h +++ b/src/mame/includes/specpls3.h @@ -49,6 +49,8 @@ private: void plus3_io(address_map &map); void plus3_mem(address_map &map); + static void floppy_formats(format_registration &fr); + optional_device<upd765a_device> m_upd765; optional_device_array<floppy_connector, 2> m_flop; }; diff --git a/src/mame/machine/megacd.cpp b/src/mame/machine/megacd.cpp index a1b74c69cd7..6780593dcb7 100644 --- a/src/mame/machine/megacd.cpp +++ b/src/mame/machine/megacd.cpp @@ -16,26 +16,6 @@ #define DMA_PRG (0x0500) #define DMA_WRAM (0x0700) -// irq3 timer -#define CHECK_SCD_LV3_INTERRUPT \ - if (m_lc89510_temp->get_segacd_irq_mask() & 0x08) \ - { \ - m_scdcpu->set_input_line(3, HOLD_LINE); \ - } -// from master -#define CHECK_SCD_LV2_INTERRUPT \ - if (m_lc89510_temp->get_segacd_irq_mask() & 0x04) \ - { \ - m_scdcpu->set_input_line(2, HOLD_LINE); \ - } - -// gfx convert -#define CHECK_SCD_LV1_INTERRUPT \ - if (m_lc89510_temp->get_segacd_irq_mask() & 0x02) \ - { \ - m_scdcpu->set_input_line(1, HOLD_LINE); \ - } - #define SEGACD_IRQ3_TIMER_SPEED (attotime::from_nsec(m_irq3_timer_reg*30720)) @@ -60,16 +40,19 @@ IRQ_CALLBACK_MEMBER(sega_segacd_device::segacd_sub_int_callback) TIMER_DEVICE_CALLBACK_MEMBER( sega_segacd_device::irq3_timer_callback ) { - CHECK_SCD_LV3_INTERRUPT + if (m_lc89510_temp->get_segacd_irq_mask() & 0x08) + m_scdcpu->set_input_line(3, HOLD_LINE); + m_irq3_timer->adjust(SEGACD_IRQ3_TIMER_SPEED); } - +// GFX conversion TIMER_DEVICE_CALLBACK_MEMBER( sega_segacd_device::stamp_timer_callback ) { //printf("stamp_timer_callback\n"); - CHECK_SCD_LV1_INTERRUPT + if (m_lc89510_temp->get_segacd_irq_mask() & 0x02) + m_scdcpu->set_input_line(1, HOLD_LINE); segacd_conversion_active = 0; @@ -513,10 +496,9 @@ void sega_segacd_device::scd_a12000_halt_reset_w(offs_t offset, uint16_t data, u if (ACCESSING_BITS_8_15) { - if (m_a12000_halt_reset_reg & 0x0100) - { - CHECK_SCD_LV2_INTERRUPT - } + // from master CPU + if (m_a12000_halt_reset_reg & 0x0100 && m_lc89510_temp->get_segacd_irq_mask() & 0x04) + m_scdcpu->set_input_line(2, HOLD_LINE); if (m_a12000_halt_reset_reg & 0x8000) { @@ -1802,13 +1784,13 @@ void sega_segacd_device::device_reset() m_total_scanlines = 262; - // HACK!!!! timegal, anettfut, roadaven end up with the SubCPU waiting in a loop for *something* + // HACK!!!! timegal, anettfut, roadaven/rbfx end up with the SubCPU waiting in a loop for *something* // overclocking the CPU, even at the point where the game is hung, allows them to continue and boot // I'm not sure what the source of this timing problem is, it's not using IRQ3 or StopWatch at the // time. Changing the CDHock timer to 50hz from 75hz also stops the hang, but then the video is // too slow and has bad sound. -- Investigate! - - m_scdcpu->set_clock_scale(1.5000f); + // Update: removed, otherwise megacdj and megacd2j will black screen with no cdrom inserted. + //m_scdcpu->set_clock_scale(1.5000f); // initialize some stuff on reset diff --git a/src/mame/machine/megadriv.cpp b/src/mame/machine/megadriv.cpp index c0a76898b71..3f4d649db2c 100644 --- a/src/mame/machine/megadriv.cpp +++ b/src/mame/machine/megadriv.cpp @@ -27,22 +27,40 @@ Known Non-Issues (confirmed on Real Genesis) #include "includes/megadriv.h" #include "speaker.h" +#define LOG_AUDIOBANK (1U << 1) // z80 to 68k space window access at $8000-$ffff +#define LOG_AUDIOBUS (1U << 2) // z80 bus grants +#define LOG_AUDIORESET (1U << 3) // z80 reset line + +#define VERBOSE (0) + +#include "logmacro.h" + +#define LOGAUDIOBANK(...) LOGMASKED(LOG_AUDIOBANK, __VA_ARGS__) +#define LOGAUDIOBUS(...) LOGMASKED(LOG_AUDIOBUS, __VA_ARGS__) +#define LOGAUDIORESET(...) LOGMASKED(LOG_AUDIORESET, __VA_ARGS__) + void md_base_state::megadriv_z80_bank_w(uint16_t data) { + // TODO: menghu crashes here + // Tries to setup a bank of 0xff0000 from z80 side (PC=1131) after you talk with the cashier twice. + // Without a guard over it game will trash 68k memory causing a crash, works on real HW with everdrive + // so not coming from a cart copy protection. + // Update: it breaks cfodder BGM on character select at least, therefore we current don't guard against it + // Apparently reading 68k RAM from z80 is not recommended by Sega, so *writing* isn't possible lacking bus grant? m_genz80.z80_bank_addr = ((m_genz80.z80_bank_addr >> 1) | (data << 23)) & 0xff8000; } void md_base_state::megadriv_68k_z80_bank_write(uint16_t data) { - //logerror("%06x: 68k writing bit to bank register %01x\n", m_maincpu->pc(),data&0x01); megadriv_z80_bank_w(data & 0x01); } void md_base_state::megadriv_z80_z80_bank_w(uint8_t data) { - //logerror("%04x: z80 writing bit to bank register %01x\n", m_maincpu->pc(),data&0x01); + LOGAUDIOBANK("%s: port $6000 write 0x%02x ", machine().describe_context(), data); megadriv_z80_bank_w(data & 0x01); + LOGAUDIOBANK("Current bank %08x\n", m_genz80.z80_bank_addr); } uint8_t md_base_state::megadriv_68k_YM2612_read(offs_t offset, uint8_t mem_mask) @@ -54,7 +72,7 @@ uint8_t md_base_state::megadriv_68k_YM2612_read(offs_t offset, uint8_t mem_mask) } else { - logerror("%s: 68000 attempting to access YM2612 (read) without bus\n", machine().describe_context()); + LOG("%s: 68000 attempting to access YM2612 (read) without bus\n", machine().describe_context()); return 0; } @@ -72,7 +90,7 @@ void md_base_state::megadriv_68k_YM2612_write(offs_t offset, uint8_t data, uint8 } else { - logerror("%s: 68000 attempting to access YM2612 (write) without bus\n", machine().describe_context()); + LOG("%s: 68000 attempting to access YM2612 (write) without bus\n", machine().describe_context()); } } @@ -309,8 +327,10 @@ uint16_t md_base_state::megadriv_68k_io_read(offs_t offset) switch (offset) { case 0: - logerror("%06x read version register\n", m_maincpu->pc()); - retdata = m_version_hi_nibble | 0x01; // Version number contained in bits 3-0 + LOG("%06x read version register\n", m_maincpu->pc()); + // Version number contained in bits 3-0 + // TODO: non-TMSS BIOSes must return 0 here + retdata = m_version_hi_nibble | 0x01; break; /* Joystick Port Registers */ @@ -486,15 +506,13 @@ uint16_t md_base_state::megadriv_68k_read_z80_ram(offs_t offset, uint16_t mem_ma } else { - logerror("%06x: 68000 attempting to access Z80 (read) address space without bus\n", m_maincpu->pc()); + LOG("%06x: 68000 attempting to access Z80 (read) address space without bus\n", m_maincpu->pc()); return machine().rand(); } } void md_base_state::megadriv_68k_write_z80_ram(offs_t offset, uint16_t data, uint16_t mem_mask) { - //logerror("write z80 ram\n"); - if ((m_genz80.z80_has_bus == 0) && (m_genz80.z80_is_reset == 0)) { if (!ACCESSING_BITS_0_7) // byte (MSB) access @@ -505,30 +523,33 @@ void md_base_state::megadriv_68k_write_z80_ram(offs_t offset, uint16_t data, uin { m_genz80.z80_prgram[(offset<<1)^1] = (data & 0x00ff); } - else // for WORD access only the MSB is used, LSB is ignored + else { + // for WORD access only the MSB is used, LSB is ignored m_genz80.z80_prgram[(offset<<1)] = (data & 0xff00) >> 8; } } else { - logerror("%06x: 68000 attempting to access Z80 (write) address space without bus\n", m_maincpu->pc()); + LOG("%06x: 68000 attempting to access Z80 (write) address space without bus\n", m_maincpu->pc()); } } - +/* + * ddragon, beast, superoff, and timekill have buggy sound programs. + * They request the bus, then have a loop which waits for the bus + * to be unavailable, checking for a 0 value due to bad coding. The real hardware + * appears to return bits of the next instruction in the unused bits, thus meaning + * the value is never zero. Time Killers is the most fussy, and doesn't like the + * read_next_instruction function from system16, so I just return a random value + * in the unused bits + */ uint16_t md_base_state::megadriv_68k_check_z80_bus(offs_t offset, uint16_t mem_mask) { uint16_t retvalue; - /* Double Dragon, Shadow of the Beast, Super Off Road, and Time Killers have buggy - sound programs. They request the bus, then have a loop which waits for the bus - to be unavailable, checking for a 0 value due to bad coding. The real hardware - appears to return bits of the next instruction in the unused bits, thus meaning - the value is never zero. Time Killers is the most fussy, and doesn't like the - read_next_instruction function from system16, so I just return a random value - in the unused bits */ - uint16_t nextvalue = machine().rand();//read_next_instruction(space)&0xff00; + + uint16_t nextvalue = machine().rand(); //read_next_instruction(space)&0xff00; /* Check if the 68k has the z80 bus */ @@ -537,13 +558,13 @@ uint16_t md_base_state::megadriv_68k_check_z80_bus(offs_t offset, uint16_t mem_m if (m_genz80.z80_has_bus || m_genz80.z80_is_reset) retvalue = nextvalue | 0x0100; else retvalue = (nextvalue & 0xfeff); - //logerror("%06x: 68000 check z80 Bus (byte MSB access) returning %04x mask %04x\n", m_maincpu->pc(),retvalue, mem_mask); + LOGAUDIOBUS("%06x: 68000 check z80 Bus (byte MSB access) returning %04x mask %04x\n", m_maincpu->pc(),retvalue, mem_mask); return retvalue; } else if (!ACCESSING_BITS_8_15) // is this valid? { - //logerror("%06x: 68000 check z80 Bus (byte LSB access) %04x\n", m_maincpu->pc(),mem_mask); + LOGAUDIOBUS("%06x: 68000 check z80 Bus (byte LSB access) %04x\n", m_maincpu->pc(), mem_mask); if (m_genz80.z80_has_bus || m_genz80.z80_is_reset) retvalue = 0x0001; else retvalue = 0x0000; @@ -551,7 +572,7 @@ uint16_t md_base_state::megadriv_68k_check_z80_bus(offs_t offset, uint16_t mem_m } else { - //logerror("%06x: 68000 check z80 Bus (word access) %04x\n", m_maincpu->pc(),mem_mask); + LOGAUDIOBUS("%06x: 68000 check z80 Bus (word access) %04x\n", m_maincpu->pc(),mem_mask); if (m_genz80.z80_has_bus || m_genz80.z80_is_reset) retvalue = nextvalue | 0x0100; else retvalue = (nextvalue & 0xfeff); @@ -564,6 +585,7 @@ uint16_t md_base_state::megadriv_68k_check_z80_bus(offs_t offset, uint16_t mem_m TIMER_CALLBACK_MEMBER(md_base_state::megadriv_z80_run_state) { /* Is the z80 RESET line pulled? */ + // TODO: Z80 /RESET if (m_genz80.z80_is_reset) { m_z80snd->reset(); @@ -573,6 +595,7 @@ TIMER_CALLBACK_MEMBER(md_base_state::megadriv_z80_run_state) else { /* Check if z80 has the bus */ + // TODO: Z80 /BUSREQ if (m_genz80.z80_has_bus) m_z80snd->resume(SUSPEND_REASON_HALT); else @@ -588,12 +611,12 @@ void md_base_state::megadriv_68k_req_z80_bus(offs_t offset, uint16_t data, uint1 { if (data & 0x0100) { - //logerror("%06x: 68000 request z80 Bus (byte MSB access) %04x %04x\n", m_maincpu->pc(),data,mem_mask); + LOGAUDIOBUS("%06x: 68000 request z80 Bus (byte MSB access) %04x %04x\n", m_maincpu->pc(),data,mem_mask); m_genz80.z80_has_bus = 0; } else { - //logerror("%06x: 68000 return z80 Bus (byte MSB access) %04x %04x\n", m_maincpu->pc(),data,mem_mask); + LOGAUDIOBUS("%06x: 68000 return z80 Bus (byte MSB access) %04x %04x\n", m_maincpu->pc(),data,mem_mask); m_genz80.z80_has_bus = 1; } } @@ -601,12 +624,12 @@ void md_base_state::megadriv_68k_req_z80_bus(offs_t offset, uint16_t data, uint1 { if (data & 0x0001) { - //logerror("%06x: 68000 request z80 Bus (byte LSB access) %04x %04x\n", m_maincpu->pc(),data,mem_mask); + LOGAUDIOBUS("%06x: 68000 request z80 Bus (byte LSB access) %04x %04x\n", m_maincpu->pc(),data,mem_mask); m_genz80.z80_has_bus = 0; } else { - //logerror("%06x: 68000 return z80 Bus (byte LSB access) %04x %04x\n", m_maincpu->pc(),data,mem_mask); + LOGAUDIOBUS("%06x: 68000 return z80 Bus (byte LSB access) %04x %04x\n", m_maincpu->pc(),data,mem_mask); m_genz80.z80_has_bus = 1; } } @@ -614,12 +637,12 @@ void md_base_state::megadriv_68k_req_z80_bus(offs_t offset, uint16_t data, uint1 { if (data & 0x0100) { - //logerror("%06x: 68000 request z80 Bus (word access) %04x %04x\n", m_maincpu->pc(),data,mem_mask); + LOGAUDIOBUS("%06x: 68000 request z80 Bus (word access) %04x %04x\n", m_maincpu->pc(),data,mem_mask); m_genz80.z80_has_bus = 0; } else { - //logerror("%06x: 68000 return z80 Bus (byte LSB access) %04x %04x\n", m_maincpu->pc(),data,mem_mask); + LOGAUDIOBUS("%06x: 68000 return z80 Bus (byte LSB access) %04x %04x\n", m_maincpu->pc(),data,mem_mask); m_genz80.z80_has_bus = 1; } } @@ -635,12 +658,12 @@ void md_base_state::megadriv_68k_req_z80_reset(offs_t offset, uint16_t data, uin { if (data & 0x0100) { - //logerror("%06x: 68000 clear z80 reset (byte MSB access) %04x %04x\n", m_maincpu->pc(),data,mem_mask); + LOGAUDIORESET("%06x: 68000 clear z80 reset (byte MSB access) %04x %04x\n", m_maincpu->pc(),data,mem_mask); m_genz80.z80_is_reset = 0; } else { - //logerror("%06x: 68000 start z80 reset (byte MSB access) %04x %04x\n", m_maincpu->pc(),data,mem_mask); + LOGAUDIORESET("%06x: 68000 start z80 reset (byte MSB access) %04x %04x\n", m_maincpu->pc(),data,mem_mask); m_genz80.z80_is_reset = 1; } } @@ -648,12 +671,12 @@ void md_base_state::megadriv_68k_req_z80_reset(offs_t offset, uint16_t data, uin { if (data & 0x0001) { - //logerror("%06x: 68000 clear z80 reset (byte LSB access) %04x %04x\n", m_maincpu->pc(),data,mem_mask); + LOGAUDIORESET("%06x: 68000 clear z80 reset (byte LSB access) %04x %04x\n", m_maincpu->pc(),data,mem_mask); m_genz80.z80_is_reset = 0; } else { - //logerror("%06x: 68000 start z80 reset (byte LSB access) %04x %04x\n", m_maincpu->pc(),data,mem_mask); + LOGAUDIORESET("%06x: 68000 start z80 reset (byte LSB access) %04x %04x\n", m_maincpu->pc(),data,mem_mask); m_genz80.z80_is_reset = 1; } } @@ -661,12 +684,12 @@ void md_base_state::megadriv_68k_req_z80_reset(offs_t offset, uint16_t data, uin { if (data & 0x0100) { - //logerror("%06x: 68000 clear z80 reset (word access) %04x %04x\n", m_maincpu->pc(),data,mem_mask); + LOGAUDIORESET("%06x: 68000 clear z80 reset (word access) %04x %04x\n", m_maincpu->pc(),data,mem_mask); m_genz80.z80_is_reset = 0; } else { - //logerror("%06x: 68000 start z80 reset (byte LSB access) %04x %04x\n", m_maincpu->pc(),data,mem_mask); + LOGAUDIORESET("%06x: 68000 start z80 reset (byte LSB access) %04x %04x\n", m_maincpu->pc(),data,mem_mask); m_genz80.z80_is_reset = 1; } } @@ -756,7 +779,7 @@ void md_base_state::megadriv_z80_map(address_map &map) void md_base_state::megadriv_z80_io_map(address_map &map) { map.global_mask(0xff); - map(0x0000, 0xff).noprw(); + map(0x00, 0xff).noprw(); } uint32_t md_base_state::screen_update_megadriv(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) diff --git a/src/mame/mame.lst b/src/mame/mame.lst index eedc43efdef..0a33a1f9197 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -2146,7 +2146,8 @@ arkanoidjbl2 // bootleg (Beta) arkanoidu // A75 (c) 1986 Taito America Corporation + Romstar license (US) arkanoiduo // A75 (c) 1986 Taito America Corporation + Romstar license (US) arkatayt // bootleg -arkatour // ??? (c) 1987 Taito America Corporation + Romstar license (US) +arkatour // A75 (c) 1987 Taito America Corporation + Romstar license (US) +arkatour2 // A75 (c) 1987 Taito America Corporation + Romstar license (US) arkbloc2 // bootleg arkbloc3 // bootleg arkblock // bootleg @@ -16588,6 +16589,7 @@ atakaast // Elektronika auslalom // Elektronika bassmate // Telko biathlon // Elektronika +ecircus // Elektronika ehockey // Elektronika gnw_ball // Nintendo gnw_bfight // Nintendo @@ -16793,6 +16795,7 @@ mbdtower // Milton Bradley mdndclab // Mattel merlin // Parker Bros merlina // Parker Bros +mmarvin // Entex mmerlin // Parker Bros monkeysee // Tandy Corporation palmf31 // Canon @@ -37774,6 +37777,7 @@ westdrm // astrofl // 834-5803 (c) 1986 fantzn2 // (c) 1988 hangonjr // (c) 1985 +megrescu // (c) 1987 opaopa // (c) 1987 opaopan // (c) 1987 ridleofp // (c) 1986 Sega / Nasco |