summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--hash/megacd.xml26
-rw-r--r--hash/megacdj.xml25
-rw-r--r--hash/megadriv.xml1252
-rw-r--r--hash/pce_tourvision.xml1
-rw-r--r--hash/segacd.xml127
-rw-r--r--hash/sms.xml3
-rw-r--r--hash/snes.xml143
-rw-r--r--hash/specpls3_flop.xml29
-rw-r--r--src/devices/bus/megadrive/jcart.cpp33
-rw-r--r--src/devices/cpu/h8/h8_timer16.cpp2
-rw-r--r--src/devices/cpu/pdp8/pdp8dasm.cpp8
-rw-r--r--src/devices/cpu/tx0/tx0dasm.cpp31
-rw-r--r--src/devices/sound/flt_vol.cpp20
-rw-r--r--src/devices/sound/flt_vol.h4
-rw-r--r--src/devices/video/315_5313.cpp53
-rw-r--r--src/emu/debug/debugcmd.cpp6
-rw-r--r--src/emu/debug/debughlp.cpp3
-rw-r--r--src/emu/debug/dvmemory.cpp47
-rw-r--r--src/emu/debug/dvmemory.h1
-rw-r--r--src/lib/netlist/analog/nld_bjt.cpp43
-rw-r--r--src/lib/netlist/analog/nld_generic_models.h2
-rw-r--r--src/lib/netlist/analog/nld_mosfet.cpp114
-rw-r--r--src/lib/netlist/analog/nlid_twoterm.h6
-rw-r--r--src/lib/netlist/build/cspell.json67
-rw-r--r--src/lib/netlist/build/makefile2
-rw-r--r--src/lib/netlist/core/analog.h16
-rw-r--r--src/lib/netlist/core/base_objects.h2
-rw-r--r--src/lib/netlist/core/device_macros.h2
-rw-r--r--src/lib/netlist/core/devices.h4
-rw-r--r--src/lib/netlist/core/exec.h8
-rw-r--r--src/lib/netlist/core/logic_family.h28
-rw-r--r--src/lib/netlist/core/netlist_state.h2
-rw-r--r--src/lib/netlist/core/nets.h16
-rw-r--r--src/lib/netlist/core/setup.h4
-rw-r--r--src/lib/netlist/core/state_var.h3
-rw-r--r--src/lib/netlist/devices/net_lib.h2
-rw-r--r--src/lib/netlist/devices/nld_74123.cpp2
-rw-r--r--src/lib/netlist/devices/nld_74153.cpp2
-rw-r--r--src/lib/netlist/devices/nld_7485.cpp2
-rw-r--r--src/lib/netlist/devices/nld_log.cpp4
-rw-r--r--src/lib/netlist/devices/nlid_proxy.cpp4
-rw-r--r--src/lib/netlist/devices/nlid_proxy.h16
-rw-r--r--src/lib/netlist/devices/nlid_truthtable.cpp44
-rw-r--r--src/lib/netlist/devices/nlid_truthtable.h9
-rw-r--r--src/lib/netlist/generated/nlm_modules_lib.cpp2
-rw-r--r--src/lib/netlist/macro/modules/nlmod_icl8038_dip.cpp2
-rw-r--r--src/lib/netlist/macro/nlm_base_lib.cpp4
-rw-r--r--src/lib/netlist/macro/nlm_cd4xxx_lib.cpp4
-rw-r--r--src/lib/netlist/macro/nlm_opamp_lib.cpp2
-rw-r--r--src/lib/netlist/macro/nlm_ttl74xx_lib.cpp4
-rw-r--r--src/lib/netlist/nl_base.cpp46
-rw-r--r--src/lib/netlist/nl_config.h3
-rw-r--r--src/lib/netlist/nl_setup.cpp16
-rw-r--r--src/lib/netlist/nltypes.h2
-rw-r--r--src/lib/netlist/plib/gmres.h10
-rw-r--r--src/lib/netlist/plib/palloc.h2
-rw-r--r--src/lib/netlist/plib/pdynlib.cpp2
-rw-r--r--src/lib/netlist/plib/pdynlib.h2
-rw-r--r--src/lib/netlist/plib/penum.h7
-rw-r--r--src/lib/netlist/plib/pgsl.h4
-rw-r--r--src/lib/netlist/plib/plists.h1
-rw-r--r--src/lib/netlist/plib/pomp.h5
-rw-r--r--src/lib/netlist/plib/ppmf.h40
-rw-r--r--src/lib/netlist/plib/pstream.h15
-rw-r--r--src/lib/netlist/plib/ptests.h4
-rw-r--r--src/lib/netlist/plib/ptime.h2
-rw-r--r--src/lib/netlist/plib/ptypes.h14
-rw-r--r--src/lib/netlist/prg/nltool.cpp2
-rw-r--r--src/lib/netlist/prg/nlwav.cpp4
-rw-r--r--src/lib/netlist/solver/nld_matrix_solver.cpp72
-rw-r--r--src/lib/netlist/solver/nld_matrix_solver.h15
-rw-r--r--src/lib/netlist/solver/nld_matrix_solver_ext.h30
-rw-r--r--src/lib/netlist/solver/nld_ms_direct.h20
-rw-r--r--src/lib/netlist/solver/nld_ms_direct_lu.h43
-rw-r--r--src/lib/netlist/solver/nld_ms_gcr.h26
-rw-r--r--src/lib/netlist/solver/nld_ms_gmres.h6
-rw-r--r--src/lib/netlist/solver/nld_ms_sm.h6
-rw-r--r--src/lib/netlist/solver/nld_ms_sor.h17
-rw-r--r--src/lib/netlist/solver/nld_ms_sor_mat.h4
-rw-r--r--src/lib/netlist/solver/nld_ms_w.h53
-rw-r--r--src/lib/netlist/solver/nld_solver.cpp10
-rw-r--r--src/lib/netlist/tests/test_pfunction.cpp2
-rw-r--r--src/lib/netlist/tests/test_pmfp.cpp2
-rw-r--r--src/lib/netlist/tests/test_pmfp_multibase.cpp2
-rw-r--r--src/lib/netlist/tests/test_precommit.cpp2
-rw-r--r--src/lib/netlist/tools/nl_convert.cpp12
-rw-r--r--src/mame/drivers/amstrad.cpp19
-rw-r--r--src/mame/drivers/arkanoid.cpp23
-rw-r--r--src/mame/drivers/hh_hmcs40.cpp23
-rw-r--r--src/mame/drivers/hh_pic16.cpp63
-rw-r--r--src/mame/drivers/hh_sm510.cpp16
-rw-r--r--src/mame/drivers/hh_tms1k.cpp177
-rw-r--r--src/mame/drivers/kingdrby.cpp1
-rw-r--r--src/mame/drivers/megadriv_acbl.cpp61
-rw-r--r--src/mame/drivers/nyny.cpp2
-rw-r--r--src/mame/drivers/segae.cpp50
-rw-r--r--src/mame/drivers/specpls3.cpp11
-rw-r--r--src/mame/drivers/wildfire.cpp30
-rw-r--r--src/mame/includes/amstrad.h1
-rw-r--r--src/mame/includes/megadriv_acbl.h25
-rw-r--r--src/mame/includes/specpls3.h2
-rw-r--r--src/mame/machine/megacd.cpp42
-rw-r--r--src/mame/machine/megadriv.cpp95
-rw-r--r--src/mame/mame.lst6
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 &amp; 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 &amp; 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 &amp; 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 &amp; 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>&lt;unknown&gt;</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>&lt;unknown&gt;</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 &amp; 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 &amp; 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 &amp; 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 &amp; 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 &amp; 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 &amp; 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 &amp; 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 &amp; 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 &amp; 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 &amp; 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 &amp; 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 &amp; 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 &amp; 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 &amp; 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 &amp; 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 &amp; 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 &amp; 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 &amp; 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 &amp; 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 &amp; 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 &amp; 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 &amp; 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 &amp; 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 &amp; 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>&lt;unknown&gt;</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>&lt;unknown&gt;</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>&lt;unknown&gt;</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>&lt;unknown&gt;</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>&lt;unknown&gt;</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 &amp; 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 &amp; 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>&lt;unlicensed&gt;</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&amp;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>&lt;unknown&gt;</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 &amp; 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 &amp; 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 &amp; 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 &amp; 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>&lt;unknown&gt;</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>&lt;unknown&gt;</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&amp;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>&lt;unknown&gt;</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>&lt;unlicensed&gt;</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>&lt;unlicensed&gt;</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 &amp; 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&amp;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 &amp; 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 &amp; 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>&lt;unknown&gt;</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>&lt;unknown&gt;</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>&lt;unknown&gt;</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>&lt;unknown&gt;</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>&lt;unlicensed&gt;</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>&lt;unlicensed&gt;</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>&lt;unlicensed&gt;</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>&lt;unlicensed&gt;</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>&lt;unknown&gt;</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>&lt;unknown&gt;</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>&lt;unknown&gt;</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>&lt;unknown&gt;</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>&lt;unknown&gt;</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>&lt;unknown&gt;</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>&lt;unknown&gt;</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>&lt;unlicensed&gt;</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>&lt;unlicensed&gt;</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>&lt;unknown&gt;</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>&lt;unknown&gt;</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>&lt;unknown&gt;</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>&lt;unknown&gt;</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>&lt;unknown&gt;</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>&lt;unknown&gt;</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>&lt;unknown&gt;</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>&lt;unknown&gt;</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>&lt;unknown&gt;</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>&lt;unknown&gt;</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>&lt;unknown&gt;</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>&lt;unlicensed&gt;</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>&lt;unlicensed&gt;</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>&lt;unlicensed&gt;</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 &amp; 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 &amp; 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 &amp; 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 &amp; 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 &amp; 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> &params)
{
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 &param_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 &gt = 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