(MESS) odyssey2: converted the driver to use slot devices for

cartridges, removed The Voice add-on from the main system
and emulated it as a passthru cart instead. Now, if you want to
enjoy speech in odyssey/videopac games, you must launch
emulation with
  mess.exe odyssey2 -cart voice -cart2 gamename
(the -cart2 switch becomes available when "voice" is mounted
in the first cartslot) [Fabio Priuli]
This commit is contained in:
Fabio Priuli 2014-10-07 09:27:32 +00:00
parent b83b6a0f33
commit 238c2e9e1d
14 changed files with 1022 additions and 154 deletions

8
.gitattributes vendored
View File

@ -1341,6 +1341,14 @@ src/emu/bus/nubus/pds30_procolor816.c svneol=native#text/plain
src/emu/bus/nubus/pds30_procolor816.h svneol=native#text/plain
src/emu/bus/nubus/pds30_sigmalview.c svneol=native#text/plain
src/emu/bus/nubus/pds30_sigmalview.h svneol=native#text/plain
src/emu/bus/odyssey2/chess.c svneol=native#text/plain
src/emu/bus/odyssey2/chess.h svneol=native#text/plain
src/emu/bus/odyssey2/rom.c svneol=native#text/plain
src/emu/bus/odyssey2/rom.h svneol=native#text/plain
src/emu/bus/odyssey2/slot.c svneol=native#text/plain
src/emu/bus/odyssey2/slot.h svneol=native#text/plain
src/emu/bus/odyssey2/voice.c svneol=native#text/plain
src/emu/bus/odyssey2/voice.h svneol=native#text/plain
src/emu/bus/oricext/jasmin.c svneol=native#text/plain
src/emu/bus/oricext/jasmin.h svneol=native#text/plain
src/emu/bus/oricext/microdisc.c svneol=native#text/plain

View File

@ -43,6 +43,7 @@ Interpol (USA)
<publisher>Phillips</publisher>
<info name="serial" value="58"/>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom12" />
<dataarea name="rom" size="12288">
<rom name="air battle (europe).bin" size="12288" crc="d94d4109" sha1="66837bbd0b9df12c89215f533a1ec8b5a42d5610" offset="0"/>
</dataarea>
@ -56,6 +57,7 @@ Interpol (USA)
<info name="programmer" value="Mick Rouse"/>
<info name="serial" value="48"/>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="8192">
<rom name="backgammon (europe).bin" size="8192" crc="9d2c45dc" sha1="bcb420dc1cc6fa5cf13dc46c546145953fb11643" offset="0"/>
</dataarea>
@ -69,6 +71,7 @@ Interpol (USA)
<info name="programmer" value="Ed Averett"/>
<info name="serial" value="JXA D03"/>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="8192">
<rom name="billiard americain (france).bin" size="8192" crc="4cec1404" sha1="004ea921b691db6b310f5b51c495df9b86be3aa8" offset="0"/>
</dataarea>
@ -81,6 +84,7 @@ Interpol (USA)
<publisher>Phillips</publisher>
<info name="programmer" value="Ed Averett"/>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="8192">
<rom name="billiard (europe).bin" size="8192" crc="3c949a57" sha1="4c7f1dc569e9abe829e36dbe42d91d39419bfd60" offset="0"/>
</dataarea>
@ -92,6 +96,7 @@ Interpol (USA)
<year>198?</year>
<publisher>Jopac</publisher>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="8192">
<rom name="billard electrique (france).bin" size="8192" crc="ac5c74e6" sha1="215439c1044b93888b71bd6a210ebfda93d97c22" offset="0"/>
</dataarea>
@ -103,6 +108,7 @@ Interpol (USA)
<year>198?</year>
<publisher>Jopac</publisher>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="8192">
<rom name="flipper (europe).bin" size="8192" crc="2fce9245" sha1="6510b54e3e9bf9bc7ae558d1d16fa73294701ddb" offset="0"/>
</dataarea>
@ -114,6 +120,7 @@ Interpol (USA)
<year>198?</year>
<publisher>Phillips</publisher>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="8192">
<rom name="clay pigeon (europe).bin" size="8192" crc="6fabcb7e" sha1="3f6dbef6bf13427a52f4f7324d9c33cfce52adb0" offset="0"/>
</dataarea>
@ -125,6 +132,7 @@ Interpol (USA)
<year>1983</year>
<publisher>Phillips</publisher>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="8192">
<rom name="cosmic conflict (europe).bin" size="8192" crc="a8dbed92" sha1="99932be5496a0daa7dffc70c7a3ab85bfa726043" offset="0"/>
</dataarea>
@ -136,6 +144,7 @@ Interpol (USA)
<year>1983</year>
<publisher>Jopac</publisher>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="8192">
<rom name="course de voitures - autodrome - cryptogramme (france).bin" size="8192" crc="9bc04ebb" sha1="e69e524eba10976310333787eafef1d18da6d568" offset="0"/>
</dataarea>
@ -147,6 +156,7 @@ Interpol (USA)
<year>198?</year>
<publisher>Radiola</publisher>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="8192">
<rom name="demon attack (france).bin" size="8192" crc="50af9d45" sha1="cfd1337c8d5a40f2f4e1ab49158a8963764919da" offset="0"/>
</dataarea>
@ -158,6 +168,7 @@ Interpol (USA)
<year>198?</year>
<publisher>Jopac</publisher>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="8192">
<rom name="exojet (france).bin" size="8192" crc="cfca6f39" sha1="8aafcd055a2ef45c3d85804c8a3ea04d9a9732ab" offset="0"/>
</dataarea>
@ -170,6 +181,7 @@ Interpol (USA)
<year>2004</year>
<publisher>Phillips</publisher>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="8192">
<rom name="flashpoint (usa)(proto)(pal conversion).bin" size="8192" crc="06861a9c" sha1="6810ccc1508244216860271417a866618a731ae2" offset="0"/>
</dataarea>
@ -181,6 +193,7 @@ Interpol (USA)
<year>198?</year>
<publisher>Phillips</publisher>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="8192">
<rom name="freedom fighters (europe).bin" size="8192" crc="1931f5c5" sha1="3f8d6cd5bed5244b400c69640065c77ec103a6cd" offset="0"/>
</dataarea>
@ -192,6 +205,7 @@ Interpol (USA)
<year>198?</year>
<publisher>Radiola</publisher>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="8192">
<rom name="guerre de l'espace (france).bin" size="8192" crc="105231f8" sha1="9220dc32d3bb9225292f3e709d1320b9b1052140" offset="0"/>
</dataarea>
@ -204,6 +218,7 @@ Interpol (USA)
<publisher>Phillips</publisher>
<info name="serial" value="59"/>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom16" />
<dataarea name="rom" size="16384">
<rom name="helicopter rescue (europe).bin" size="16384" crc="c4134df8" sha1="7369a2d3fb81ddc4c8086bbcd245c11ea7aaa331" offset="0"/>
</dataarea>
@ -215,6 +230,7 @@ Interpol (USA)
<year>198?</year>
<publisher>Jopac</publisher>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="8192">
<rom name="basket - bowling + (france).bin" size="8192" crc="b5fb1416" sha1="c341ed24346546b75de2ab24af1a9223ca2d1aac" offset="0"/>
</dataarea>
@ -225,6 +241,7 @@ Interpol (USA)
<year>198?</year>
<publisher>Phillips</publisher>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="8192">
<rom name="tenpin bowling - basketball (europe).bin" size="8192" crc="e5fb4260" sha1="29d5c9b252e65d257f1472e343039ed8c47eeb05" offset="0"/>
</dataarea>
@ -236,6 +253,7 @@ Interpol (USA)
<year>198?</year>
<publisher>Phillips</publisher>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="8192">
<rom name="killer bees (europe).bin" size="8192" crc="dee70b33" sha1="9253586337917bda0b7c43dbb251999b6c974f30" offset="0"/>
</dataarea>
@ -248,6 +266,7 @@ Interpol (USA)
<publisher>Phillips</publisher>
<info name="serial" value="54"/>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="8192">
<rom name="loony balloon (europe).bin" size="8192" crc="b932d584" sha1="8dd1cba7ce6622aaf5e1b432ab8d47e395d211f2" offset="0"/>
</dataarea>
@ -259,6 +278,7 @@ Interpol (USA)
<year>198?</year>
<publisher>Radiola</publisher>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="8192">
<rom name="moto-crash (france).bin" size="8192" crc="68560dc7" sha1="f6de2f95e5cf4849a4d7071b1a470c3ef0634e5f" offset="0"/>
</dataarea>
@ -271,6 +291,7 @@ Interpol (USA)
<publisher>Phillips</publisher>
<info name="serial" value="55"/>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom12" />
<dataarea name="rom" size="12288">
<rom name="neutron star (europe).bin" size="12288" crc="be11157c" sha1="fde3e0791b9cbef91a8462764ebf09a457ffe038" offset="0"/>
</dataarea>
@ -283,6 +304,7 @@ Interpol (USA)
<publisher>Phillips</publisher>
<info name="serial" value="53"/>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="8192">
<rom name="nightmare (europe).bin" size="8192" crc="26b0ff5b" sha1="c8988f13c2af7632de6ef326ed617279bf6c8221" offset="0"/>
</dataarea>
@ -296,6 +318,7 @@ Interpol (USA)
<info name="programmer" value="Andy Eltisand Jake Dowding"/>
<info name="serial" value="57"/>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="8192">
<rom name="norseman (europe).bin" size="8192" crc="a75c42f8" sha1="8e8fe23225631eef673517f3e2970eade15b7a5c" offset="0"/>
</dataarea>
@ -307,6 +330,7 @@ Interpol (USA)
<year>198?</year>
<publisher>Phillips</publisher>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="8192">
<rom name="pickaxe pete (europe).bin" size="8192" crc="b2ffb353" sha1="182829b4cd5184ab3705d26f75e3d8c497b5abf6" offset="0"/>
</dataarea>
@ -318,6 +342,7 @@ Interpol (USA)
<year>1983</year>
<publisher>Phillips</publisher>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="8192">
<rom name="race - spin-out - cryptogram (europe).bin" size="8192" crc="ee3ee642" sha1="69a73208c0c0a6d1b879e62d0ccf3a5a534510bd" offset="0"/>
</dataarea>
@ -329,6 +354,7 @@ Interpol (USA)
<year>198?</year>
<publisher>Radiola</publisher>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="8192">
<rom name="la ruche infernale (france).bin" size="8192" crc="20e2f7be" sha1="34f91468bf42b26eb237af342164043c16d173ca" offset="0"/>
</dataarea>
@ -340,6 +366,7 @@ Interpol (USA)
<year>198?</year>
<publisher>Phillips</publisher>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="8192">
<rom name="satellite attack (europe).bin" size="8192" crc="b4735e6b" sha1="8bec213886d026040ed2037f01e8e9f81fa395b9" offset="0"/>
</dataarea>
@ -351,6 +378,7 @@ Interpol (USA)
<year>198?</year>
<publisher>Phillips</publisher>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="8192">
<rom name="stone sling (europe).bin" size="8192" crc="2391c2fb" sha1="d358fcc6a0fa6469d7063114aa0dc143af14e3e9" offset="0"/>
</dataarea>
@ -362,6 +390,7 @@ Interpol (USA)
<year>198?</year>
<publisher>Phillips</publisher>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="8192">
<rom name="terrahawks (europe).bin" size="8192" crc="764894a1" sha1="0c01df9799b6d0235fef3c86fec1beac5b0b2d74" offset="0"/>
</dataarea>
@ -373,6 +402,7 @@ Interpol (USA)
<year>198?</year>
<publisher>Phillips</publisher>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom16" />
<dataarea name="rom" size="16384">
<rom name="trans american rally (europe).bin" size="16384" crc="0d2d721d" sha1="be8a9f2aa66acb4f5e288d1a77afada9565b530a" offset="0"/>
</dataarea>
@ -384,6 +414,7 @@ Interpol (USA)
<year>198?</year>
<publisher>Radiola</publisher>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="8192">
<rom name="le tresor englouti (france).bin" size="8192" crc="b2f0f0b4" sha1="c0fcaef6a18026e0acc04c3d48443d768043cb03" offset="0"/>
</dataarea>

View File

@ -60,6 +60,7 @@ adds 16K RAM and 18K ROM, that plugs into the G7000 needs to be dumped.
<publisher>Philips</publisher>
<info name="serial" value="9"/>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="2048">
<rom name="computer programmer (europe).bin" size="2048" crc="b590cf14" sha1="913c1961dfa17b5873428f57429e3809580ff906" offset="0" />
</dataarea>
@ -72,6 +73,7 @@ adds 16K RAM and 18K ROM, that plugs into the G7000 needs to be dumped.
<publisher>Philips</publisher>
<info name="serial" value="AC9406"/>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="2048">
<rom name="computer intro (usa).bin" size="2048" crc="95efa98b" sha1="f93c448243db428a4c9e2354596844ed07bb7530" offset="0" />
</dataarea>
@ -84,6 +86,7 @@ adds 16K RAM and 18K ROM, that plugs into the G7000 needs to be dumped.
<publisher>Philips</publisher>
<info name="serial" value="A"/>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="2048">
<rom name="newscaster (europe).bin" size="2048" crc="85dfcdd7" sha1="183b3b1b70db58cc9ada575cc324353f2e89c2ce" offset="0" />
</dataarea>
@ -96,6 +99,7 @@ adds 16K RAM and 18K ROM, that plugs into the G7000 needs to be dumped.
<publisher>Philips</publisher>
<info name="serial" value="AC9433"/>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="2048">
<rom name="keyboard creations (usa).bin" size="2048" crc="688fad11" sha1="8276ca41e571478eae2dd6add7f79bc7f8bd60de" offset="0" />
</dataarea>
@ -108,6 +112,7 @@ adds 16K RAM and 18K ROM, that plugs into the G7000 needs to be dumped.
<publisher>Philips</publisher>
<info name="serial" value="31"/>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="4096">
<rom name="musician (europe).bin" size="4096" crc="afb23f89" sha1="7445f4df9017c4d2ea94542d0db335dc18c9d7ed" offset="0" />
</dataarea>
@ -121,6 +126,7 @@ adds 16K RAM and 18K ROM, that plugs into the G7000 needs to be dumped.
<info name="programmer" value="Robert L. Cheezem" />
<info name="serial" value="AC9440"/>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="4096">
<rom name="type and tell (usa).bin" size="4096" crc="b936bd78" sha1="40458eaf84a71f509b4069775e49551ce5152697" offset="0" />
</dataarea>
@ -134,6 +140,7 @@ adds 16K RAM and 18K ROM, that plugs into the G7000 needs to be dumped.
<publisher>Philips</publisher>
<info name="serial" value="AC9413 (USA) ~ 13 (Euro)"/>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="2048">
<rom name="i've got your number (usa, europe).bin" size="2048" crc="1c8368e7" sha1="498cb0882d8a692042889e83775a83cf267a1837" offset="0" />
</dataarea>
@ -147,6 +154,7 @@ adds 16K RAM and 18K ROM, that plugs into the G7000 needs to be dumped.
<info name="usage" value="Press 1 for Mathematician/Math-a-Magic, press 2 for Echo" />
<info name="serial" value="AJ9405 (USA) ~ 7 (Euro)"/>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="2048">
<rom name="math-a-magic - echo (usa, europe).bin" size="2048" crc="dc5afaa2" sha1="4dac55de1afadc1af2ac9166d7d47c462a8e797a" offset="0" />
</dataarea>
@ -159,6 +167,7 @@ adds 16K RAM and 18K ROM, that plugs into the G7000 needs to be dumped.
<publisher>Radiola</publisher>
<info name="usage" value="Press 1 for Mathématicien, press 2 for Echo" />
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="2048">
<rom name="mathematicien - echo (france).bin" size="2048" crc="0c4e4b0a" sha1="d96c65670b9a3a4feedcb720807292708951fcd5" offset="0" />
</dataarea>
@ -171,6 +180,7 @@ adds 16K RAM and 18K ROM, that plugs into the G7000 needs to be dumped.
<publisher>Philips</publisher>
<info name="serial" value="45"/>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="2048">
<rom name="morse (europe).bin" size="2048" crc="2122012c" sha1="8431f56359d80ff6a67c83c50c12fa5d8bc46ff3" offset="0" />
</dataarea>
@ -182,6 +192,7 @@ adds 16K RAM and 18K ROM, that plugs into the G7000 needs to be dumped.
<year>1983</year>
<publisher>Radiola</publisher>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="2048">
<rom name="morse (france).bin" size="2048" crc="510416b7" sha1="11065dfbc22dd9ed7609cbcc7f8c6d3bc5b004ee" offset="0" />
</dataarea>
@ -195,6 +206,7 @@ adds 16K RAM and 18K ROM, that plugs into the G7000 needs to be dumped.
<info name="programmer" value="Robert S. Harris" />
<info name="serial" value="AC9439"/>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="4096">
<rom name="nimble numbers ned (usa).bin" size="4096" crc="cf2f8e7a" sha1="01dd021a1bcdafb58cb2bcca051934f05e978c53" offset="0" />
</dataarea>
@ -208,9 +220,14 @@ adds 16K RAM and 18K ROM, that plugs into the G7000 needs to be dumped.
<info name="programmer" value="Sam Overton" />
<info name="serial" value="AC9438"/>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="4096">
<rom name="sid the spellbinder (usa).bin" size="4096" crc="1b9f2f16" sha1="dfed128d213d4192313f85fe2b8716579c2fc995" offset="0" />
</dataarea>
<!-- Additional Speech data for The Voice -->
<dataarea name="speech" size="16384">
<rom name="spr128-004.bin" size="16384" crc="e79dfb75" sha1="37f33d79ffd1739d7c2f226b010a1eac28d74ca0" offset="0" />
</dataarea>
</part>
</software>
@ -219,6 +236,7 @@ adds 16K RAM and 18K ROM, that plugs into the G7000 needs to be dumped.
<year>1982</year>
<publisher>CSV/Philips</publisher>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="2048">
<rom name="verkehrsspiele 1 (germany).bin" size="2048" crc="45e62222" sha1="e90f2a33e41d9bd4c50e96eacc483bc99e53993b" offset="0" />
</dataarea>
@ -230,6 +248,7 @@ adds 16K RAM and 18K ROM, that plugs into the G7000 needs to be dumped.
<year>1982</year>
<publisher>CSV/Philips</publisher>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="2048">
<rom name="kinder im verkehr 1 (germany).bin" size="2048" crc="9c9dddf9" sha1="9b73685f7d2008467d4449a3bfedef6e763b5948" offset="0" />
</dataarea>
@ -241,6 +260,7 @@ adds 16K RAM and 18K ROM, that plugs into the G7000 needs to be dumped.
<year>1982</year>
<publisher>CSV/Philips</publisher>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="2048">
<rom name="verkehrsspiele 2 (germany).bin" size="2048" crc="69893f7f" sha1="0904ea45c011d12857477db04b4d1c87544f27e6" offset="0" />
</dataarea>
@ -254,6 +274,7 @@ adds 16K RAM and 18K ROM, that plugs into the G7000 needs to be dumped.
<publisher>Philips</publisher>
<info name="serial" value="40"/>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="4096">
<rom name="4 in 1 row (europe).bin" size="4096" crc="3bfef56b" sha1="e9a8996c4fb87120d8620ab8876b90ddb48335db" offset="0" />
</dataarea>
@ -265,6 +286,7 @@ adds 16K RAM and 18K ROM, that plugs into the G7000 needs to be dumped.
<year>1982</year>
<publisher>Radiola</publisher>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="4096">
<rom name="4 en 1 ligne (france).bin" size="4096" crc="9b5e9356" sha1="0831c3212a9e0a588a242dcd2b136e350aaceac9" offset="0" />
</dataarea>
@ -277,6 +299,7 @@ adds 16K RAM and 18K ROM, that plugs into the G7000 needs to be dumped.
<publisher>Magnavox</publisher>
<info name="serial" value="AA9428 (USA) ~ 22 (Euro)"/>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="2048">
<rom name="alien invaders - plus! (usa, europe).bin" size="2048" crc="71ae8533" sha1="9ba0737fdee2918375725bb5230d075a2f847159" offset="0" />
</dataarea>
@ -289,6 +312,7 @@ adds 16K RAM and 18K ROM, that plugs into the G7000 needs to be dumped.
<publisher>Philips</publisher>
<info name="serial" value="AK9418 (USA) ~ 25 (Euro)"/>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="2048">
<rom name="alpine skiing (usa, europe).bin" size="2048" crc="4663c4b6" sha1="9e7e16744b44fa83fa14c211b2365cf04604e06e" offset="0" />
</dataarea>
@ -300,6 +324,7 @@ adds 16K RAM and 18K ROM, that plugs into the G7000 needs to be dumped.
<year>1979</year>
<publisher>Radiola</publisher>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="2048">
<rom name="ski (france).bin" size="2048" crc="e129490d" sha1="a6e07b727b4f48d13ce21442911995eb46b99c5d" offset="0" />
</dataarea>
@ -313,6 +338,7 @@ adds 16K RAM and 18K ROM, that plugs into the G7000 needs to be dumped.
<info name="usage" value="Press A for Armored Encounter/Air-Sea War, press 1 for Sub Chase/Battle" />
<info name="serial" value="AJ9403 (USA) ~ 4 (Euro)"/>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="2048">
<rom name="armored encounter - sub chase (usa, europe).bin" size="2048" crc="5ae57a8c" sha1="086a29eb625c935295157ce62ca9717dffff2af0" offset="0" />
</dataarea>
@ -325,6 +351,7 @@ adds 16K RAM and 18K ROM, that plugs into the G7000 needs to be dumped.
<publisher>Imagic</publisher>
<info name="programmer" value="Jeff Ronnie" />
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="4096">
<rom name="atlantis (usa, europe).bin" size="4096" crc="a7344d1f" sha1="6975cf9fed3ee1a2567477921eb851a669d42446" offset="0" />
</dataarea>
@ -337,6 +364,7 @@ adds 16K RAM and 18K ROM, that plugs into the G7000 needs to be dumped.
<publisher>Philips</publisher>
<info name="serial" value="AC9445"/>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="4096">
<rom name="attack of the timelord (usa).bin" size="4096" crc="fc5a7f08" sha1="c63ad4e9aaa903ded9fcf185caf24e76f8aaf3a9" offset="0" />
</dataarea>
@ -349,6 +377,7 @@ adds 16K RAM and 18K ROM, that plugs into the G7000 needs to be dumped.
<publisher>Philips (Euro) ~ Magnavox (USA)</publisher>
<info name="serial" value="AJ9408 (USA) ~ 8 (Euro)"/>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="2048">
<rom name="baseball (usa, europe).bin" size="2048" crc="b07748e7" sha1="14a37a38c582d8822cb78fb0aace221a2fa9a44c" offset="0" />
</dataarea>
@ -361,6 +390,7 @@ adds 16K RAM and 18K ROM, that plugs into the G7000 needs to be dumped.
<publisher>Philips</publisher>
<info name="serial" value="56"/>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="8192">
<rom name="blobbers (europe).bin" size="8192" crc="9d72d4e9" sha1="cae4e1f3ee090ec423aff89102f359b9e14dba41" offset="0" />
</dataarea>
@ -374,6 +404,7 @@ adds 16K RAM and 18K ROM, that plugs into the G7000 needs to be dumped.
<info name="usage" value="Press 0 then 1 for Blockout/Dam Buster, press 0 then 2 for Breakdown" />
<info name="serial" value="AA9427 (USA) ~ 29 (Euro)"/>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="2048">
<rom name="blockout - breakdown (usa, europe).bin" size="2048" crc="fb83171e" sha1="00ef6868724a6826534da620f34dad207fcb3800" offset="0" />
</dataarea>
@ -385,6 +416,7 @@ adds 16K RAM and 18K ROM, that plugs into the G7000 needs to be dumped.
<year>1981</year>
<publisher>Radiola</publisher>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="2048">
<rom name="mur magique, le (france).bin" size="2048" crc="d38153f6" sha1="ff0ebe9efc275011a0534fd98ca1f4112dae3dab" offset="0" />
</dataarea>
@ -398,6 +430,7 @@ adds 16K RAM and 18K ROM, that plugs into the G7000 needs to be dumped.
<info name="usage" value="Press 1 for League Night Bowling, press 2 for Tournament Play Bowling, press 3 for Basketball" />
<info name="serial" value="AJ9404 (USA) ~ 6 (Euro)"/>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="2048">
<rom name="bowling - basketball (usa, europe).bin" size="2048" crc="084ee035" sha1="2630c304b6beb0f8021578277be68e837202895d" offset="0" />
</dataarea>
@ -410,6 +443,7 @@ adds 16K RAM and 18K ROM, that plugs into the G7000 needs to be dumped.
<publisher>Radiola</publisher>
<info name="usage" value="Press 1 for (League Night Bowling), press 2 for (Tournament Play Bowling), press 3 for Basketball" />
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="2048">
<rom name="jeu de quilles - basketball (france).bin" size="2048" crc="a7e97958" sha1="30cbbec570fa0872c13e89ddc312b2f74e3749fb" offset="0" />
</dataarea>
@ -421,6 +455,7 @@ adds 16K RAM and 18K ROM, that plugs into the G7000 needs to be dumped.
<year>1984</year>
<publisher>Philips</publisher>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="8192">
<rom name="buraco negro (brazil).bin" size="8192" crc="25874b04" sha1="8414605a62e78753e3f8474fa020035596292583" offset="0" />
</dataarea>
@ -432,6 +467,7 @@ adds 16K RAM and 18K ROM, that plugs into the G7000 needs to be dumped.
<year>1983</year>
<publisher>Philips</publisher>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="8192">
<rom name="neutron star (europe) (proto).bin" size="8192" crc="d03efa86" sha1="0a91bdb293f52ac37414a63f71d90c6338a4a91a" offset="0" />
</dataarea>
@ -444,6 +480,7 @@ adds 16K RAM and 18K ROM, that plugs into the G7000 needs to be dumped.
<publisher>Magnavox</publisher>
<info name="serial" value="AA9426 (USA) ~ 23 (Euro)"/>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="2048">
<rom name="casino slot machine (usa, europe).bin" size="2048" crc="bb6e7135" sha1="052bc62eb03e2673a802bab866dd0ab3c39fd584" offset="0" />
</dataarea>
@ -455,6 +492,7 @@ adds 16K RAM and 18K ROM, that plugs into the G7000 needs to be dumped.
<year>1980</year>
<publisher>Radiola</publisher>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="2048">
<rom name="las vegas (france).bin" size="2048" crc="a0620082" sha1="b83463b7c40367d4310f142fa15d06d12061f3be" offset="0" />
</dataarea>
@ -468,6 +506,7 @@ adds 16K RAM and 18K ROM, that plugs into the G7000 needs to be dumped.
<info name="usage" value="Press 1 for Catch the Ball, press 7 for Noughts and Crosses" />
<info name="serial" value="19"/>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="2048">
<rom name="catch the ball - noughts and crosses (europe).bin" size="2048" crc="a57e1724" sha1="671a43595b867b7877e723be18825e9e5d5c4ee9" offset="0" />
</dataarea>
@ -480,6 +519,7 @@ adds 16K RAM and 18K ROM, that plugs into the G7000 needs to be dumped.
<publisher>Philips</publisher>
<info name="usage" value="Press 1 for O Malabarista, press 7 for Jogo da Velha" />
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="2048">
<rom name="o malabarista - jogo da velha (brazil).bin" size="2048" crc="e39500a6" sha1="68de402f57eb0c8afefdbc46d80d2bc5520afc68" offset="0" />
</dataarea>
@ -492,6 +532,7 @@ adds 16K RAM and 18K ROM, that plugs into the G7000 needs to be dumped.
<publisher>Philips</publisher>
<info name="serial" value="G7010"/>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_chess" />
<dataarea name="rom" size="2048">
<rom name="chess (europe).bin" size="2048" crc="77066338" sha1="7162359313f66fe759bdd8a34755a5f62f3cadfb" offset="0" />
</dataarea>
@ -515,6 +556,7 @@ adds 16K RAM and 18K ROM, that plugs into the G7000 needs to be dumped.
<publisher>Philips</publisher>
<info name="serial" value="17"/>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="2048">
<rom name="chinese logic (europe).bin" size="2048" crc="11edf25b" sha1="431bd5b4ee86e62500eab263e073a585656d16c6" offset="0" />
</dataarea>
@ -526,6 +568,7 @@ adds 16K RAM and 18K ROM, that plugs into the G7000 needs to be dumped.
<year>1980</year>
<publisher>Philips</publisher>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="2048">
<rom name="desafio chines (brazil).bin" size="2048" crc="838a2d1e" sha1="241160f0691a394afe632b5b29969dae2d8f2d34" offset="0" />
</dataarea>
@ -537,6 +580,7 @@ adds 16K RAM and 18K ROM, that plugs into the G7000 needs to be dumped.
<year>198?</year>
<publisher>Philips</publisher>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="4096">
<rom name="clay pigeon (brazil).bin" size="4096" crc="fd179f6d" sha1="c07c1206db8d4fb5142b38ead52082d4682d70be" offset="0" />
</dataarea>
@ -548,6 +592,7 @@ adds 16K RAM and 18K ROM, that plugs into the G7000 needs to be dumped.
<year>1983</year>
<publisher>Philips</publisher>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="8192">
<rom name="comando noturno (brazil).bin" size="8192" crc="26517e77" sha1="e0aa46211967c880bf7ff39836fe5e73c0302460" offset="0" />
</dataarea>
@ -559,6 +604,7 @@ adds 16K RAM and 18K ROM, that plugs into the G7000 needs to be dumped.
<year>198?</year>
<publisher>Philips</publisher>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="8192">
<rom name="nightfighter (europe) (proto).bin" size="8192" crc="7be6f1ef" sha1="ec364634c2a8160da1916a43246b76d78932be1d" offset="0" />
</dataarea>
@ -571,6 +617,7 @@ adds 16K RAM and 18K ROM, that plugs into the G7000 needs to be dumped.
<publisher>Philips</publisher>
<info name="serial" value="AB9431 (USA) ~ 41 (Euro)"/>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="4096">
<rom name="conquest of the world (usa, europe).bin" size="4096" crc="afc093fd" sha1="508d1475670ba561e7ddf961a4f0cf6d139d168c" offset="0" />
</dataarea>
@ -584,6 +631,7 @@ adds 16K RAM and 18K ROM, that plugs into the G7000 needs to be dumped.
<info name="usage" value="Uses the 2nd joystick" />
<info name="serial" value="11"/>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="2048">
<rom name="cosmic conflict (europe).bin" size="2048" crc="f4c2075e" sha1="a22f99dcc4aba3126f5b5bbbf2a3890878ac953b" offset="0" />
</dataarea>
@ -596,6 +644,7 @@ adds 16K RAM and 18K ROM, that plugs into the G7000 needs to be dumped.
<publisher>Philips</publisher>
<info name="usage" value="Uses the 2nd joystick" />
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="2048">
<rom name="conflit cosmique (canada).bin" size="2048" crc="2f6e4b46" sha1="e54fe13ee27884524255063aa6fd69e4598a5104" offset="0" />
</dataarea>
@ -608,6 +657,7 @@ adds 16K RAM and 18K ROM, that plugs into the G7000 needs to be dumped.
<publisher>Philips</publisher>
<info name="usage" value="Uses the 2nd joystick" />
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="2048">
<rom name="cosmic conflict (europe) (alt).bin" size="2048" crc="2a5f0b2b" sha1="9f8f10c9e6e1a5e07eb5a6eee4e0fe19fcaee17f" offset="0" />
</dataarea>
@ -621,6 +671,7 @@ adds 16K RAM and 18K ROM, that plugs into the G7000 needs to be dumped.
<info name="usage" value="Uses the 2nd joystick" />
<info name="serial" value="AJ9411"/>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="2048">
<rom name="cosmic conflict (usa).bin" size="2048" crc="c049e79e" sha1="dccbf881e21dd02cbaf15ec049e0801118fb9c96" offset="0" />
</dataarea>
@ -633,6 +684,7 @@ adds 16K RAM and 18K ROM, that plugs into the G7000 needs to be dumped.
<publisher>Imagic</publisher>
<info name="programmer" value="Dave Johnson" />
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="4096">
<rom name="demon attack (usa, europe).bin" size="4096" crc="9bfc3e01" sha1="2d78ccbb56e8b43bb8101b2a1932f5e778b9dbc3" offset="0" />
</dataarea>
@ -647,6 +699,7 @@ adds 16K RAM and 18K ROM, that plugs into the G7000 needs to be dumped.
<info name="serial" value="16"/>
<sharedfeat name="compatibility" value="PAL"/>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="2048">
<rom name="depth charge - marksman (europe).bin" size="2048" crc="2dcb77f0" sha1="95ccda2010f756069645e50269142a063c9aabc2" offset="0" />
</dataarea>
@ -660,6 +713,7 @@ adds 16K RAM and 18K ROM, that plugs into the G7000 needs to be dumped.
<info name="usage" value="Press 1 for Depth Charge, press 2 for Marksman; Uses the 2nd joystick" />
<sharedfeat name="compatibility" value="NTSC"/>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="2048">
<rom name="bombardeio submarino - tiro ao alvo (brazil).bin" size="2048" crc="b1109a09" sha1="e15f778efeb95530f8108854b14c404cf63f213a" offset="0" />
</dataarea>
@ -672,6 +726,7 @@ adds 16K RAM and 18K ROM, that plugs into the G7000 needs to be dumped.
<publisher>Magnavox</publisher>
<info name="serial" value="AA9423 (USA) ~ 27 (Euro)"/>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="2048">
<rom name="electronic table soccer (usa, europe).bin" size="2048" crc="89c6de2c" sha1="3a032c9be1081db58f28f906940641d74d6bae2b" offset="0" />
</dataarea>
@ -684,6 +739,7 @@ adds 16K RAM and 18K ROM, that plugs into the G7000 needs to be dumped.
<publisher>Philips</publisher>
<info name="serial" value="AJ9402 (USA) ~ 3 (Euro)"/>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="2048">
<rom name="football (usa, europe).bin" size="2048" crc="f9084aa3" sha1="364504ffce1108bcf09a5cc784f7ea2cf141f7b8" offset="0" />
</dataarea>
@ -696,6 +752,7 @@ adds 16K RAM and 18K ROM, that plugs into the G7000 needs to be dumped.
<publisher>Philips</publisher>
<info name="serial" value="AC9436 (USA) ~ 39 (Euro)"/>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="4096">
<rom name="freedom fighters (usa, europe).bin" size="4096" crc="54736b74" sha1="ad11f3fad2dfd3716445fef3b7d83d479edee0ed" offset="0" />
</dataarea>
@ -709,6 +766,7 @@ adds 16K RAM and 18K ROM, that plugs into the G7000 needs to be dumped.
<info name="usage" value="Uses the 2nd joystick" />
<info name="programmer" value="Peter Inser" />
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="8192">
<rom name="frogger (europe).bin" size="8192" crc="d0bc4ee6" sha1="0beda7b36259b3be84d34206a77a35cd3f04892f" offset="0" />
</dataarea>
@ -721,6 +779,7 @@ adds 16K RAM and 18K ROM, that plugs into the G7000 needs to be dumped.
<publisher>Parker Brothers</publisher>
<info name="usage" value="Uses the 2nd joystick" />
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="8192">
<rom name="frogger (brazil).bin" size="8192" crc="a57d84f3" sha1="bedb714c88b9aa7a02da9ebcde12446ec8350d18" offset="0" />
</dataarea>
@ -733,6 +792,7 @@ adds 16K RAM and 18K ROM, that plugs into the G7000 needs to be dumped.
<publisher>Philips</publisher>
<info name="serial" value="10"/>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="2048">
<rom name="golf (europe).bin" size="2048" crc="14b6cc76" sha1="c2bf8d92b8827e3071d6ce4c43e34b21afc54f8d" offset="0" />
</dataarea>
@ -745,6 +805,7 @@ adds 16K RAM and 18K ROM, that plugs into the G7000 needs to be dumped.
<publisher>Philips</publisher>
<info name="serial" value="AJ9410"/>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="2048">
<rom name="computer golf (usa).bin" size="2048" crc="0f870806" sha1="c8736250ebf376543256d85cf853e825475e0af6" offset="0" />
</dataarea>
@ -757,6 +818,7 @@ adds 16K RAM and 18K ROM, that plugs into the G7000 needs to be dumped.
<publisher>Philips</publisher>
<info name="serial" value="AC9434 (USA) ~ 46 (Euro)"/>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="4096">
<rom name="the great wall street fortune hunt (usa, europe).bin" size="4096" crc="881ceae4" sha1="d54b1d5667bf90368dddab55a91955b1789f177c" offset="0" />
</dataarea>
@ -768,6 +830,7 @@ adds 16K RAM and 18K ROM, that plugs into the G7000 needs to be dumped.
<year>1983</year>
<publisher>Philips</publisher>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="4096">
<rom name="wall street (brazil).bin" size="4096" crc="228842df" sha1="af9db337a2edbb3fe79a3d50f1b4ec1b007f4a52" offset="0" />
</dataarea>
@ -780,6 +843,7 @@ adds 16K RAM and 18K ROM, that plugs into the G7000 needs to be dumped.
<publisher>Philips</publisher>
<info name="serial" value="14"/>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="2048">
<rom name="gunfighter (europe).bin" size="2048" crc="abe368bf" sha1="b5ec5ed9373372de6d70620094af06282c48968d" offset="0" />
</dataarea>
@ -792,6 +856,7 @@ adds 16K RAM and 18K ROM, that plugs into the G7000 needs to be dumped.
<publisher>Philips</publisher>
<info name="serial" value="AK9416"/>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="2048">
<rom name="showdown in 2100 a.d. (usa).bin" size="2048" crc="9487c920" sha1="7163c3e0d0e926287df670bfa5d5d5c42b5b3cf6" offset="0" />
</dataarea>
@ -805,6 +870,7 @@ adds 16K RAM and 18K ROM, that plugs into the G7000 needs to be dumped.
<info name="usage" value="Move joystick when game is on screen." />
<info name="serial" value="AK9420 (USA) ~ 36 (Euro)"/>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="2048">
<rom name="hockey - soccer (usa, europe).bin" size="2048" crc="39989464" sha1="f39c9801984f97d5a685a4b7a1accd0164a49b43" offset="0" />
</dataarea>
@ -817,6 +883,7 @@ adds 16K RAM and 18K ROM, that plugs into the G7000 needs to be dumped.
<publisher>Radiola</publisher>
<info name="usage" value="Move joystick when game is on screen." />
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="2048">
<rom name="football electronique - hockey electronique (france).bin" size="2048" crc="f00f9dba" sha1="d7593ade4d60a6e314e4f18711e8ea59e3c8c3ad" offset="0" />
</dataarea>
@ -829,6 +896,7 @@ adds 16K RAM and 18K ROM, that plugs into the G7000 needs to be dumped.
<publisher>GST Video</publisher>
<info name="programmer" value="Mick Rouse" />
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="4096">
<rom name="interpol (europe) (proto).bin" size="4096" crc="69d21f8f" sha1="c0b10b79461bc1939e08e4c05166126d2b8d7dda" offset="0" />
</dataarea>
@ -842,6 +910,7 @@ adds 16K RAM and 18K ROM, that plugs into the G7000 needs to be dumped.
<info name="programmer" value="Jim Butler" />
<info name="serial" value="33"/>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="2048">
<rom name="jumping acrobats (europe).bin" size="2048" crc="6cebab74" sha1="a44587d48e76117838cb6a4cf964321d37efcde1" offset="0" />
</dataarea>
@ -854,6 +923,7 @@ adds 16K RAM and 18K ROM, that plugs into the G7000 needs to be dumped.
<publisher>Philips</publisher>
<info name="programmer" value="Jim Butler" />
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="2048">
<rom name="jumping acrobats (europe) (alt).bin" size="2048" crc="e7b26a56" sha1="ee5c0471fc192570fe4575ca65882d3d7b85350d" offset="0" />
</dataarea>
@ -867,6 +937,7 @@ adds 16K RAM and 18K ROM, that plugs into the G7000 needs to be dumped.
<info name="programmer" value="Jim Butler" />
<info name="serial" value="AC9443"/>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="4096">
<rom name="p.t. barnum's acrobats (usa).bin" size="4096" crc="874f36a4" sha1="661a73bd490cc592815f742eb33b2d3f0066be41" offset="0" />
</dataarea>
@ -879,6 +950,7 @@ adds 16K RAM and 18K ROM, that plugs into the G7000 needs to be dumped.
<publisher>Philips</publisher>
<info name="serial" value="AC9442 (USA) ~ 44 (Euro)"/>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="4096">
<rom name="k.c.'s krazy chase (usa, europe).bin" size="4096" crc="a6909a8b" sha1="3391e48c0048a2f588d8238bb202e2ec346a6ad4" offset="0" />
</dataarea>
@ -892,6 +964,7 @@ adds 16K RAM and 18K ROM, that plugs into the G7000 needs to be dumped.
<info name="programmer" value="Robert S. Harris" />
<info name="serial" value="AC9447"/>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="8192">
<rom name="killer bees (usa).bin" size="8192" crc="b096654e" sha1="b446a2730aefafe71394dbb9850d43c5cf01d367" offset="0" />
</dataarea>
@ -904,6 +977,7 @@ adds 16K RAM and 18K ROM, that plugs into the G7000 needs to be dumped.
<publisher>Philips</publisher>
<info name="serial" value="32"/>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="2048">
<rom name="a labyrinth game - supermind (europe).bin" size="2048" crc="d158eeba" sha1="85c567c8f38239350a5d04f8cfd9dd7872f448c9" offset="0" />
</dataarea>
@ -916,6 +990,7 @@ adds 16K RAM and 18K ROM, that plugs into the G7000 needs to be dumped.
<publisher>Philips</publisher>
<info name="serial" value="AJ9401 (USA) ~ 5 (Euro)"/>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="2048">
<rom name="las vegas blackjack (usa, europe).bin" size="2048" crc="6f66b1f7" sha1="3e10fc687b1d07612305f680f24590f99842e62b" offset="0" />
</dataarea>
@ -927,6 +1002,7 @@ adds 16K RAM and 18K ROM, that plugs into the G7000 needs to be dumped.
<year>1980</year>
<publisher>Radiola</publisher>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="2048">
<rom name="blackjack (france).bin" size="2048" crc="6381e402" sha1="9ec331ce8e50ef60de93e615c18327f08b4a24fb" offset="0" />
</dataarea>
@ -939,6 +1015,7 @@ adds 16K RAM and 18K ROM, that plugs into the G7000 needs to be dumped.
<publisher>Philips</publisher>
<info name="serial" value="18"/>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="2048">
<rom name="laser war (europe).bin" size="2048" crc="17be749b" sha1="3d188d49d4a2409f66ac86bcf58d90d35908032b" offset="0" />
</dataarea>
@ -950,6 +1027,7 @@ adds 16K RAM and 18K ROM, that plugs into the G7000 needs to be dumped.
<year>1980</year>
<publisher>Radiola</publisher>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="2048">
<rom name="guerre laser (france).bin" size="2048" crc="ca8ab259" sha1="12f08273e6c5e97e0a35c4033bd7527bb8a559d3" offset="0" />
</dataarea>
@ -962,6 +1040,7 @@ adds 16K RAM and 18K ROM, that plugs into the G7000 needs to be dumped.
<publisher>Philips</publisher>
<info name="serial" value="AK9414"/>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="2048">
<rom name="invaders from hyperspace (usa).bin" size="2048" crc="ad7a9a11" sha1="00032798bd4cc01323e663e98634b82a74b0dc53" offset="0" />
</dataarea>
@ -973,6 +1052,7 @@ adds 16K RAM and 18K ROM, that plugs into the G7000 needs to be dumped.
<year>1983</year>
<publisher>Philips</publisher>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="4096">
<rom name="balao travesso (brazil).bin" size="4096" crc="5b6e741a" sha1="73bf363400fece63d1a10b6b8cd9413612a1a126" offset="0" />
</dataarea>
@ -984,6 +1064,7 @@ adds 16K RAM and 18K ROM, that plugs into the G7000 needs to be dumped.
<year>1983</year>
<publisher>Philips</publisher>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="4096">
<rom name="loony balloon (europe) (proto).bin" size="4096" crc="ca23f40c" sha1="3cb324b047cbac8ec4381150b1c2aee98573841b" offset="0" />
</dataarea>
@ -996,6 +1077,7 @@ adds 16K RAM and 18K ROM, that plugs into the G7000 needs to be dumped.
<publisher>Philips</publisher>
<info name="programmer" value="Jake Dowding?" /><!-- first prototype found was named "Jake" -->
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="8192">
<rom name="martian threat (europe) (proto).bin" size="8192" crc="39e31bf0" sha1="4266ca9aa34ace118edd8153e2847cfa94a9a2f0" offset="0" />
</dataarea>
@ -1009,6 +1091,7 @@ adds 16K RAM and 18K ROM, that plugs into the G7000 needs to be dumped.
<info name="usage" value="Press 1 for Pairs 1 player, press 2 for Pairs 2 players, press 3 for Space Rendezvous, press 4 for Logic" />
<info name="serial" value="2"/>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="2048">
<rom name="pairs - space rendezvous - logic (europe).bin" size="2048" crc="a69c2c93" sha1="7ea8e5ff3b9f86914774de2aa6f7a4652adcf47a" offset="0" />
</dataarea>
@ -1022,6 +1105,7 @@ adds 16K RAM and 18K ROM, that plugs into the G7000 needs to be dumped.
<info name="usage" value="Press 1 for Matchmaker 1 player, press 2 for Matchmaker 2 players, press 3 for Buzzword, press 4 for Logix" />
<info name="serial" value="AJ9407"/>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="2048">
<rom name="matchmaker - buzzword - logix (usa).bin" size="2048" crc="bbf276a0" sha1="908387d2446f4c62019017fe262b412dfa040d10" offset="0" />
</dataarea>
@ -1034,6 +1118,7 @@ adds 16K RAM and 18K ROM, that plugs into the G7000 needs to be dumped.
<publisher>Ectron Eletrônica Ltda.</publisher>
<info name="usage" value="Press 1 for Missão Impossível, press 2 for Viagem Programada" />
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="2048">
<rom name="mission impossible (brazil).bin" size="2048" crc="655fdf57" sha1="7ff030e8ba236c9f354b903b89b283886c7455d7" offset="0" />
</dataarea>
@ -1047,6 +1132,7 @@ adds 16K RAM and 18K ROM, that plugs into the G7000 needs to be dumped.
<info name="programmer" value="Ed Averett"/>
<info name="serial" value="AB9432 (USA) ~ 37 (Euro)"/>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="4096">
<rom name="monkeyshines (usa, europe).bin" size="4096" crc="fee664f3" sha1="6d6659539934255711357537d4fa6e969c3c4754" offset="0" />
</dataarea>
@ -1059,6 +1145,7 @@ adds 16K RAM and 18K ROM, that plugs into the G7000 needs to be dumped.
<publisher>Philips</publisher>
<info name="serial" value="47"/>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="4096">
<rom name="the mousing cat (europe).bin" size="4096" crc="f390bfec" sha1="f9727e6c5a941518187c08e5f5d104460ac3b3e3" offset="0" />
</dataarea>
@ -1070,6 +1157,7 @@ adds 16K RAM and 18K ROM, that plugs into the G7000 needs to be dumped.
<year>1983</year>
<publisher>Radiola</publisher>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="4096">
<rom name="chat et souris (france).bin" size="4096" crc="61a350e6" sha1="afa67f2110647753de9dfacb268d96e75d6d8657" offset="0" />
</dataarea>
@ -1083,6 +1171,7 @@ adds 16K RAM and 18K ROM, that plugs into the G7000 needs to be dumped.
<info name="programmer" value="Ed Averett"/>
<info name="serial" value="38"/>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="4096">
<rom name="munchkin (europe).bin" size="4096" crc="4a3e2dc8" sha1="83d06385fd74e3f7c19309e6908a975fa8856f32" offset="0" />
</dataarea>
@ -1096,6 +1185,7 @@ adds 16K RAM and 18K ROM, that plugs into the G7000 needs to be dumped.
<info name="programmer" value="Ed Averett"/>
<info name="serial" value="AC9435"/>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="4096">
<rom name="k.c. munchkin (usa).bin" size="4096" crc="7108e058" sha1="d273cf993dfcbca3b65cd4959b45a3009f242bc6" offset="0" />
</dataarea>
@ -1107,6 +1197,7 @@ adds 16K RAM and 18K ROM, that plugs into the G7000 needs to be dumped.
<year>1983</year>
<publisher>Philips</publisher>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="8192">
<rom name="phantom house (europe)(proto).bin" size="8192" crc="313547eb" sha1="3cc218587116eb105e95ffce9eb1b5e268258d4a" offset="0" />
</dataarea>
@ -1120,6 +1211,7 @@ adds 16K RAM and 18K ROM, that plugs into the G7000 needs to be dumped.
<info name="usage" value="Press 3 for Out of this World, press 1 for Helicopter Rescue" />
<info name="serial" value="AC9419"/>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="2048">
<rom name="out of this world - helicopter rescue (usa).bin" size="2048" crc="0c2e4811" sha1="c6a79e721ee501d82d9a1c4f71f98bc23f1e7c7e" offset="0" />
</dataarea>
@ -1133,6 +1225,7 @@ adds 16K RAM and 18K ROM, that plugs into the G7000 needs to be dumped.
<info name="programmer" value="Ed Averett"/>
<info name="serial" value="AA9425 (USA) ~ 26 (Euro)"/>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="2048">
<rom name="pachinko (usa, europe).bin" size="2048" crc="239df97d" sha1="ffd525d5c6023409afdcdb2afbda227bc4568304" offset="0" />
</dataarea>
@ -1145,6 +1238,7 @@ adds 16K RAM and 18K ROM, that plugs into the G7000 needs to be dumped.
<publisher>Philips (Euro) ~ Magnavox (USA)</publisher>
<info name="serial" value="AC9437 (USA) ~ 43 (Euro)"/>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="4096">
<rom name="pick axe pete (usa, europe).bin" size="4096" crc="d62814a3" sha1="b979ed0c2b8947f764786fcf4444463b3d3ae87d" offset="0" />
</dataarea>
@ -1157,6 +1251,7 @@ adds 16K RAM and 18K ROM, that plugs into the G7000 needs to be dumped.
<publisher>Philips</publisher>
<info name="programmer" value="Don McGuiness"/>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="2048">
<rom name="pinball (usa) (proto).bin" size="2048" crc="6ef2471a" sha1="350a9e3f95dbf2d5e7aa1ddbd5e531300ddeeee4" offset="0" />
</dataarea>
@ -1168,6 +1263,7 @@ adds 16K RAM and 18K ROM, that plugs into the G7000 needs to be dumped.
<year>198?</year>
<publisher>Philips</publisher>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="4096">
<rom name="playtag (europe) (proto).bin" size="4096" crc="a29f0fd4" sha1="759dc0efb9dbf64034d9fd78c12207206b173c0c" offset="0" />
</dataarea>
@ -1181,6 +1277,7 @@ adds 16K RAM and 18K ROM, that plugs into the G7000 needs to be dumped.
<info name="programmer" value="Ed Averett"/>
<info name="serial" value="AC9424 (USA) ~ 35 (Euro)"/>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="2048">
<rom name="pocket billiards (usa, europe).bin" size="2048" crc="24d53e2c" sha1="8abd1057202ebac12acf3822ed4d965bba02b7de" offset="0" />
</dataarea>
@ -1193,6 +1290,7 @@ adds 16K RAM and 18K ROM, that plugs into the G7000 needs to be dumped.
<publisher>Radiola</publisher>
<info name="programmer" value="Ed Averett"/>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="2048">
<rom name="billiard americain (france).bin" size="2048" crc="a674ea27" sha1="283ae5fa1d6e89a5ac921c7f2e21a89a67dd138c" offset="0" />
</dataarea>
@ -1205,6 +1303,7 @@ adds 16K RAM and 18K ROM, that plugs into the G7000 needs to be dumped.
<publisher>Parker Brothers</publisher>
<info name="programmer" value="Gil Williamson and Charles Dear" />
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="8192">
<rom name="popeye (europe).bin" size="8192" crc="5216771a" sha1="a13e7b338ba15820949f51eb862b381ddc6870af" offset="0" />
</dataarea>
@ -1217,6 +1316,7 @@ adds 16K RAM and 18K ROM, that plugs into the G7000 needs to be dumped.
<publisher>Parker Brothers</publisher>
<info name="programmer" value="Gil Williamson and Charles Dear" />
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="8192">
<rom name="popeye (brazil).bin" size="8192" crc="1b188870" sha1="d12197942a99d5902de1352bbb5475ab4396c7d0" offset="0" />
</dataarea>
@ -1230,6 +1330,7 @@ adds 16K RAM and 18K ROM, that plugs into the G7000 needs to be dumped.
<info name="usage" value="Uses the 2nd joystick" />
<info name="serial" value="AC9448"/>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="4096">
<rom name="power lords (usa).bin" size="4096" crc="40ae062d" sha1="e81570282b8ade6b7c0d126c819a95c7011cd063" offset="0" />
</dataarea>
@ -1242,6 +1343,7 @@ adds 16K RAM and 18K ROM, that plugs into the G7000 needs to be dumped.
<publisher>Parker Brothers</publisher>
<info name="programmer" value="Gil Williamson and Charles Dear" />
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="8192">
<rom name="q-bert (europe).bin" size="8192" crc="202f2749" sha1="80d76d5c56fc716a8f7a55166390658c320e4c34" offset="0" />
</dataarea>
@ -1255,6 +1357,7 @@ adds 16K RAM and 18K ROM, that plugs into the G7000 needs to be dumped.
<info name="programmer" value="Ed Averett"/>
<info name="serial" value="AC9429 (USA) ~ 42 (Euro)"/>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="4096">
<rom name="quest for the rings (usa, europe).bin" size="4096" crc="9451be1e" sha1="32759c8d502cd8b959da5f03351db7cd46c8f96a" offset="0" />
</dataarea>
@ -1267,6 +1370,7 @@ adds 16K RAM and 18K ROM, that plugs into the G7000 needs to be dumped.
<publisher>Radiola</publisher>
<info name="programmer" value="Ed Averett"/>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="4096">
<rom name="la quete des anneaux (france).bin" size="4096" crc="a21da732" sha1="04543bdbea8112f7cc55caef5da9445d08d65e46" offset="0" />
</dataarea>
@ -1278,6 +1382,7 @@ adds 16K RAM and 18K ROM, that plugs into the G7000 needs to be dumped.
<year>198?</year>
<publisher>Philips</publisher>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="8192">
<rom name="air battle (brazil).bin" size="8192" crc="4103ee95" sha1="b6842b9264b722e2b39c8647b7963e513a0cde16" offset="0" />
</dataarea>
@ -1289,6 +1394,7 @@ adds 16K RAM and 18K ROM, that plugs into the G7000 needs to be dumped.
<year>198?</year>
<publisher>Philips</publisher>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="8192">
<rom name="red baron (europe) (proto).bin" size="8192" crc="1eeb88f5" sha1="50eba68915b0ccc95f07719f80d9011ca2cf67c9" offset="0" />
</dataarea>
@ -1300,6 +1406,7 @@ adds 16K RAM and 18K ROM, that plugs into the G7000 needs to be dumped.
<year>198?</year>
<publisher>Philips</publisher>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="8192">
<rom name="robot city (europe) (proto).bin" size="8192" crc="ef9e9c3b" sha1="ff92b024ef80919146e822ce947882d0744ac09f" offset="0" />
</dataarea>
@ -1313,6 +1420,7 @@ adds 16K RAM and 18K ROM, that plugs into the G7000 needs to be dumped.
<info name="programmer" value="Ed Averett"/>
<info name="serial" value="15"/>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="2048">
<rom name="samurai (europe).bin" size="2048" crc="7810bad5" sha1="fd354b726bd86dcbe97bcc284cf1e09485dd81ac" offset="0" />
</dataarea>
@ -1326,6 +1434,7 @@ adds 16K RAM and 18K ROM, that plugs into the G7000 needs to be dumped.
<info name="programmer" value="Ed Averett"/>
<info name="serial" value="AK9421"/>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="2048">
<rom name="dynasty (usa).bin" size="2048" crc="dc30ad3d" sha1="20c6e4035ce8dd5a8f331c18ceef1056dc9ce818" offset="0" />
</dataarea>
@ -1339,6 +1448,7 @@ adds 16K RAM and 18K ROM, that plugs into the G7000 needs to be dumped.
<info name="programmer" value="Ed Averett"/>
<info name="serial" value="34"/>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="2048">
<rom name="satellite attack (europe).bin" size="2048" crc="395629e1" sha1="e0383dd98b85dc2156a859e731ff904b6ebad95b" offset="0" />
</dataarea>
@ -1352,6 +1462,7 @@ adds 16K RAM and 18K ROM, that plugs into the G7000 needs to be dumped.
<info name="programmer" value="Ed Averett"/>
<info name="serial" value="AB9430"/>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="2048">
<rom name="ufo (usa).bin" size="2048" crc="2b1e9e19" sha1="0e819a4b0f17520da24ff79901197f5397cb9a26" offset="0" />
</dataarea>
@ -1363,6 +1474,7 @@ adds 16K RAM and 18K ROM, that plugs into the G7000 needs to be dumped.
<year>1981</year>
<publisher>Jopac</publisher>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="4096">
<rom name="syracuse (france).bin" size="4096" crc="280d08f4" sha1="37aa11cbf0a32ece89d1d2c500b74660830377df" offset="0" />
</dataarea>
@ -1375,6 +1487,7 @@ adds 16K RAM and 18K ROM, that plugs into the G7000 needs to be dumped.
<publisher>Philips</publisher>
<info name="serial" value="21"/>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="2048">
<rom name="secret of the pharaohs (europe).bin" size="2048" crc="7394e82c" sha1="9ff434312fa9d3b7b63909a9ece01d4e3e87f3b7" offset="0" />
</dataarea>
@ -1386,6 +1499,7 @@ adds 16K RAM and 18K ROM, that plugs into the G7000 needs to be dumped.
<year>198?</year>
<publisher>Philips</publisher>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="4096">
<rom name="o segredo do farao (brazil).bin" size="4096" crc="16c574c8" sha1="ba42f5e642f5dc7be231bb0e230ffa77a766c805" offset="0" />
</dataarea>
@ -1398,6 +1512,7 @@ adds 16K RAM and 18K ROM, that plugs into the G7000 needs to be dumped.
<publisher>Philips</publisher>
<info name="developer" value="Graham Conduit" />
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="8192">
<rom name="shark hunter (europe) (proto).bin" size="8192" crc="df36683f" sha1="eca31e4d8a9e198a8661f6b6e63b33c184e9b22b" offset="0" />
</dataarea>
@ -1411,6 +1526,7 @@ adds 16K RAM and 18K ROM, that plugs into the G7000 needs to be dumped.
<info name="usage" value="Press 1 for Race/Speedway, press 2 for 3-lap Spin-out, press 4 for 15-lap Spin-out, press 5 for Cryptogram/Crypto-logic" />
<info name="serial" value="AC9400 (USA) ~ 1 (Euro)"/>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="2048">
<rom name="speedway - spin-out - crypto-logic (usa, europe).bin" size="2048" crc="4eda4917" sha1="29d078f587be2afa4612800c64a5af72705e5681" offset="0" />
</dataarea>
@ -1423,6 +1539,7 @@ adds 16K RAM and 18K ROM, that plugs into the G7000 needs to be dumped.
<publisher>Radiola</publisher>
<info name="usage" value="Press 1 for Course de Voitures, press 2 for 3-lap Autodrome, press 4 for 15-lap Autodrome, press 5 for Cryptogramme" />
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="2048">
<rom name="course de voitures - autodrome - cryptogramme (france).bin" size="2048" crc="3b24e1ee" sha1="9e44ca9fc9e5def58c61b24274f0cbfb57d559ee" offset="0" />
</dataarea>
@ -1434,6 +1551,7 @@ adds 16K RAM and 18K ROM, that plugs into the G7000 needs to be dumped.
<year>198?</year>
<publisher>Parker Brothers</publisher>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="8192">
<rom name="spider-man (europe) (proto).bin" size="8192" crc="35ace4e8" sha1="4b1d675cb1fbf72ed35681e2b2e6e99fed7154cd" offset="0" />
</dataarea>
@ -1447,6 +1565,7 @@ adds 16K RAM and 18K ROM, that plugs into the G7000 needs to be dumped.
<info name="programmer" value="Robert L. Cheezem" />
<info name="serial" value="20"/>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="2048">
<rom name="stone sling (europe).bin" size="2048" crc="44d1a8a5" sha1="50763429d12206d7bf9fad6a6bd6076a34d54b51" offset="0" />
</dataarea>
@ -1460,6 +1579,7 @@ adds 16K RAM and 18K ROM, that plugs into the G7000 needs to be dumped.
<info name="programmer" value="Robert L. Cheezem" />
<info name="serial" value="AC9441"/>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="4096">
<rom name="smithereens (usa).bin" size="4096" crc="67069924" sha1="fc798f3cf770e8bf5f9a4064b6a4ca66e5a4eb71" offset="0" />
</dataarea>
@ -1473,6 +1593,7 @@ adds 16K RAM and 18K ROM, that plugs into the G7000 needs to be dumped.
<info name="programmer" value="Mick Rouse" />
<info name="serial" value="50"/>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="4096">
<rom name="super bee (europe).bin" size="4096" crc="9585d511" sha1="dfcfd9c019773e703aa130bc55f5b2f972ece8f0" offset="0" />
</dataarea>
@ -1484,6 +1605,7 @@ adds 16K RAM and 18K ROM, that plugs into the G7000 needs to be dumped.
<year>1983</year>
<publisher>Philips</publisher>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="4096">
<rom name="super bee (brazil).bin" size="4096" crc="02743352" sha1="98c1f3a9726fe1ba880d43f0ba004821c4cbec6c" offset="0" />
</dataarea>
@ -1495,6 +1617,7 @@ adds 16K RAM and 18K ROM, that plugs into the G7000 needs to be dumped.
<year>1983</year>
<publisher>Parker Brothers</publisher>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="8192">
<rom name="super cobra (europe).bin" size="8192" crc="95936b07" sha1="5521ff83e3be32c38205472b2df49eb507249dc2" offset="0" />
</dataarea>
@ -1506,6 +1629,7 @@ adds 16K RAM and 18K ROM, that plugs into the G7000 needs to be dumped.
<year>1983</year>
<publisher>Parker Brothers</publisher>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="8192">
<rom name="super cobra (brazil).bin" size="8192" crc="e58aa0ac" sha1="46716a927b902759bfe252022f84186098fb5863" offset="0" />
</dataarea>
@ -1519,6 +1643,7 @@ adds 16K RAM and 18K ROM, that plugs into the G7000 needs to be dumped.
<info name="programmer" value="Ed Averett"/>
<info name="serial" value="AJ9412 (USA) ~ 12 (Euro)"/>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="2048">
<rom name="take the money and run (usa, europe).bin" size="2048" crc="11ff50ad" sha1="8c181f4835d53a358ecb8e4385e087ee942b4b4f" offset="0" />
</dataarea>
@ -1531,6 +1656,7 @@ adds 16K RAM and 18K ROM, that plugs into the G7000 needs to be dumped.
<publisher>Radiola</publisher>
<info name="programmer" value="Ed Averett"/>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="2048">
<rom name="prendre l'argent et fuir (france).bin" size="2048" crc="ad89f799" sha1="2a55d179acfd9fe31b5f8f0ed0e2379b584f7c8a" offset="0" />
</dataarea>
@ -1543,6 +1669,7 @@ adds 16K RAM and 18K ROM, that plugs into the G7000 needs to be dumped.
<publisher>Philips (Euro) ~ Magnavox (USA)</publisher>
<info name="serial" value="AK9415 (USA) ~ 24 (Euro)"/>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="2048">
<rom name="thunderball (usa, europe).bin" size="2048" crc="2c9d1715" sha1="d0070e12d6b0f406dab6e1fa550ab01509c9362e" offset="0" />
</dataarea>
@ -1554,6 +1681,7 @@ adds 16K RAM and 18K ROM, that plugs into the G7000 needs to be dumped.
<year>1980</year>
<publisher>Radiola</publisher>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="2048">
<rom name="billard electrique (france).bin" size="2048" crc="54bf4750" sha1="d12a242d273c4f4417806c3bcd868a9a0f553854" offset="0" />
</dataarea>
@ -1567,6 +1695,7 @@ adds 16K RAM and 18K ROM, that plugs into the G7000 needs to be dumped.
<info name="programmer" value="Jim Butler" />
<info name="serial" value="49"/>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="8192">
<rom name="turtles (europe).bin" size="8192" crc="1c750349" sha1="1fdca749675f62212d0b79c5f0911bcabc4e4e11" offset="0" />
</dataarea>
@ -1580,6 +1709,7 @@ adds 16K RAM and 18K ROM, that plugs into the G7000 needs to be dumped.
<info name="programmer" value="Jim Butler" />
<info name="serial" value="AC9446"/>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="8192">
<rom name="turtles (usa).bin" size="8192" crc="9e42e766" sha1="ee456305397ecbd54fffa0bb7a894f53976d2a7c" offset="0" />
</dataarea>
@ -1592,6 +1722,7 @@ adds 16K RAM and 18K ROM, that plugs into the G7000 needs to be dumped.
<publisher>Parker Brothers</publisher>
<info name="programmer" value="Gil Williamson and Charles Dear" />
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="8192">
<rom name="tutankham (europe) (proto).bin" size="8192" crc="0b2deb61" sha1="c4985a344be7da3d78656b6473a3a1ad3ebe6497" offset="0" />
</dataarea>
@ -1605,6 +1736,7 @@ adds 16K RAM and 18K ROM, that plugs into the G7000 needs to be dumped.
<info name="programmer" value="Ed Averett" />
<info name="serial" value="AA9422 (USA) ~ 28 (Euro)"/>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="2048">
<rom name="volleyball (usa, europe).bin" size="2048" crc="d3b09fec" sha1="830c9b3628f2e9c4f8c882024dd912b9d7610765" offset="0" />
</dataarea>
@ -1617,6 +1749,7 @@ adds 16K RAM and 18K ROM, that plugs into the G7000 needs to be dumped.
<publisher>Radiola</publisher>
<info name="programmer" value="Ed Averett" />
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="2048">
<rom name="volleyball electronique (france).bin" size="2048" crc="551e38a2" sha1="9ea8d921ca03699f74e53e25b139632391838c7d" offset="0" />
</dataarea>
@ -1630,9 +1763,22 @@ adds 16K RAM and 18K ROM, that plugs into the G7000 needs to be dumped.
<info name="serial" value="AK9417 (USA) ~ 30 (Euro)"/>
<info name="programmer" value="Ed Averett" />
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="2048">
<rom name="war of nerves (usa, europe).bin" size="2048" crc="58fa6766" sha1="e56b674c832e5a7cad977cc76779548fdd2f338e" offset="0" />
</dataarea>
</part>
</software>
<software name="voice">
<description>The Voice</description>
<year>1979?</year>
<publisher>Magnavox</publisher>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_voice" />
<dataarea name="rom" size="2048">
</dataarea>
</part>
</software>
</softwarelist>

View File

@ -543,6 +543,20 @@ BUSOBJS += $(BUSOBJ)/kc/ram.o
BUSOBJS += $(BUSOBJ)/kc/rom.o
endif
#-------------------------------------------------
#
#@src/emu/bus/odyssey2/slot.h,BUSES += O2
#-------------------------------------------------
ifneq ($(filter O2,$(BUSES)),)
OBJDIRS += $(BUSOBJ)/odyssey2
BUSOBJS += $(BUSOBJ)/odyssey2/slot.o
BUSOBJS += $(BUSOBJ)/odyssey2/rom.o
BUSOBJS += $(BUSOBJ)/odyssey2/chess.o
BUSOBJS += $(BUSOBJ)/odyssey2/voice.o
endif
#-------------------------------------------------
#
#@src/emu/bus/pc_joy/pc_joy.h,BUSES += PC_JOY

View File

@ -0,0 +1,58 @@
/***********************************************************************************************************
Videopac Chess Module emulation
TODO:
- this code is just a stub... hence, almost everything is still to do!
***********************************************************************************************************/
#include "emu.h"
#include "chess.h"
//-------------------------------------------------
// o2_chess_device - constructor
//-------------------------------------------------
const device_type O2_ROM_CHESS = &device_creator<o2_chess_device>;
o2_chess_device::o2_chess_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
: o2_rom_device(mconfig, O2_ROM_CHESS, "Odyssey 2 BASIC Carts", tag, owner, clock, "o2_chess", __FILE__),
m_cpu(*this, "subcpu")
{
}
//-------------------------------------------------
// MACHINE_CONFIG_FRAGMENT( o2chess )
//-------------------------------------------------
static ADDRESS_MAP_START(chess_mem, AS_PROGRAM, 8, o2_chess_device)
AM_RANGE(0x0000, 0x07ff) AM_READ(read_rom04)
ADDRESS_MAP_END
static ADDRESS_MAP_START(chess_io, AS_IO, 8, o2_chess_device)
ADDRESS_MAP_UNMAP_HIGH
ADDRESS_MAP_GLOBAL_MASK(0xff)
ADDRESS_MAP_END
static MACHINE_CONFIG_FRAGMENT( o2chess )
MCFG_CPU_ADD("subcpu", NSC800, XTAL_4MHz)
MCFG_CPU_PROGRAM_MAP(chess_mem)
MCFG_CPU_IO_MAP(chess_io)
MACHINE_CONFIG_END
//-------------------------------------------------
// machine_config_additions - device-specific
// machine configurations
//-------------------------------------------------
machine_config_constructor o2_chess_device::device_mconfig_additions() const
{
return MACHINE_CONFIG_NAME( o2chess );
}

View File

@ -0,0 +1,31 @@
#ifndef __O2_CHESS_H
#define __O2_CHESS_H
#include "slot.h"
#include "rom.h"
#include "cpu/z80/z80.h"
// ======================> o2_chess_device
class o2_chess_device : public o2_rom_device
{
virtual machine_config_constructor device_mconfig_additions() const;
// virtual const rom_entry *device_rom_region() const;
public:
// construction/destruction
o2_chess_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
private:
required_device<nsc800_device> m_cpu;
};
// device type definition
extern const device_type O2_ROM_CHESS;
#endif

View File

@ -0,0 +1,95 @@
/***********************************************************************************************************
Magnavox Odyssey cart emulation
***********************************************************************************************************/
#include "emu.h"
#include "rom.h"
//-------------------------------------------------
// o2_rom_device - constructor
//-------------------------------------------------
const device_type O2_ROM_STD = &device_creator<o2_rom_device>;
const device_type O2_ROM_12K = &device_creator<o2_rom12_device>;
const device_type O2_ROM_16K = &device_creator<o2_rom16_device>;
o2_rom_device::o2_rom_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, const char *shortname, const char *source)
: device_t(mconfig, type, name, tag, owner, clock, shortname, source),
device_o2_cart_interface( mconfig, *this )
{
}
o2_rom_device::o2_rom_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
: device_t(mconfig, O2_ROM_STD, "Odyssey 2 Standard Carts", tag, owner, clock, "o2_rom", __FILE__),
device_o2_cart_interface( mconfig, *this )
{
}
o2_rom12_device::o2_rom12_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
: o2_rom_device(mconfig, O2_ROM_12K, "Odyssey 2 12K Carts", tag, owner, clock, "o2_rom12", __FILE__)
{
}
o2_rom16_device::o2_rom16_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
: o2_rom_device(mconfig, O2_ROM_16K, "Odyssey 2 16K Carts", tag, owner, clock, "o2_rom16", __FILE__)
{
}
//-------------------------------------------------
// device_start/device_reset - device-specific startup
//-------------------------------------------------
void o2_rom_device::device_start()
{
save_item(NAME(m_bank_base));
}
void o2_rom_device::device_reset()
{
m_bank_base = 0;
}
/*-------------------------------------------------
mapper specific handlers
-------------------------------------------------*/
void o2_rom_device::write_bank(int bank)
{
m_bank_base = bank;
}
READ8_MEMBER(o2_rom_device::read_rom04)
{
return m_rom[(offset + (m_bank_base & 0x03) * 0x800) & (m_rom_size - 1)];
}
READ8_MEMBER(o2_rom_device::read_rom0c)
{
return m_rom[(offset + (m_bank_base & 0x03) * 0x800) & (m_rom_size - 1)];
}
READ8_MEMBER(o2_rom12_device::read_rom04)
{
return m_rom[offset + (m_bank_base & 0x03) * 0xc00];
}
READ8_MEMBER(o2_rom12_device::read_rom0c)
{
return m_rom[offset + 0x800 + (m_bank_base & 0x03) * 0xc00];
}
READ8_MEMBER(o2_rom16_device::read_rom04)
{
return m_rom[offset + 0x400 + (m_bank_base & 0x03) * 0x1000];
}
READ8_MEMBER(o2_rom16_device::read_rom0c)
{
return m_rom[offset + 0xc00 + (m_bank_base & 0x03) * 0x1000];
}

View File

@ -0,0 +1,65 @@
#ifndef __O2_ROM_H
#define __O2_ROM_H
#include "slot.h"
// ======================> o2_rom_device
class o2_rom_device : public device_t,
public device_o2_cart_interface
{
public:
// construction/destruction
o2_rom_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, const char *shortname, const char *source);
o2_rom_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
// device-level overrides
virtual void device_start();
virtual void device_reset();
// reading and writing
virtual DECLARE_READ8_MEMBER(read_rom04);
virtual DECLARE_READ8_MEMBER(read_rom0c);
virtual void write_bank(int bank);
protected:
int m_bank_base;
};
// ======================> o2_rom12_device
class o2_rom12_device : public o2_rom_device
{
public:
// construction/destruction
o2_rom12_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
// reading and writing
virtual DECLARE_READ8_MEMBER(read_rom04);
virtual DECLARE_READ8_MEMBER(read_rom0c);
};
// ======================> o2_rom16_device
class o2_rom16_device : public o2_rom_device
{
public:
// construction/destruction
o2_rom16_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
// reading and writing
virtual DECLARE_READ8_MEMBER(read_rom04);
virtual DECLARE_READ8_MEMBER(read_rom0c);
};
// device type definition
extern const device_type O2_ROM_STD;
extern const device_type O2_ROM_12K;
extern const device_type O2_ROM_16K;
#endif

279
src/emu/bus/odyssey2/slot.c Normal file
View File

@ -0,0 +1,279 @@
/***********************************************************************************************************
Magnavox Odyssey 2 cart emulation
(through slot devices)
***********************************************************************************************************/
#include "emu.h"
#include "slot.h"
//**************************************************************************
// GLOBAL VARIABLES
//**************************************************************************
const device_type O2_CART_SLOT = &device_creator<o2_cart_slot_device>;
//**************************************************************************
// Odyssey 2 Cartridges Interface
//**************************************************************************
//-------------------------------------------------
// device_o2_cart_interface - constructor
//-------------------------------------------------
device_o2_cart_interface::device_o2_cart_interface(const machine_config &mconfig, device_t &device)
: device_slot_card_interface(mconfig, device),
m_rom(NULL),
m_rom_size(0)
{
}
//-------------------------------------------------
// ~device_o2_cart_interface - destructor
//-------------------------------------------------
device_o2_cart_interface::~device_o2_cart_interface()
{
}
//-------------------------------------------------
// rom_alloc - alloc the space for the cart
//-------------------------------------------------
void device_o2_cart_interface::rom_alloc(UINT32 size, const char *tag)
{
if (m_rom == NULL)
{
astring tempstring(tag);
tempstring.cat(O2SLOT_ROM_REGION_TAG);
m_rom = device().machine().memory().region_alloc(tempstring, size, 1, ENDIANNESS_LITTLE)->base();
m_rom_size = size;
}
}
//-------------------------------------------------
// ram_alloc - alloc the space for the ram
//-------------------------------------------------
void device_o2_cart_interface::ram_alloc(UINT32 size)
{
m_ram.resize(size);
}
//**************************************************************************
// LIVE DEVICE
//**************************************************************************
//-------------------------------------------------
// o2_cart_slot_device - constructor
//-------------------------------------------------
o2_cart_slot_device::o2_cart_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) :
device_t(mconfig, O2_CART_SLOT, "Odyssey 2 Cartridge Slot", tag, owner, clock, "o2_cart_slot", __FILE__),
device_image_interface(mconfig, *this),
device_slot_interface(mconfig, *this),
m_type(O2_STD)
{
}
//-------------------------------------------------
// o2_cart_slot_device - destructor
//-------------------------------------------------
o2_cart_slot_device::~o2_cart_slot_device()
{
}
//-------------------------------------------------
// device_start - device-specific startup
//-------------------------------------------------
void o2_cart_slot_device::device_start()
{
m_cart = dynamic_cast<device_o2_cart_interface *>(get_card_device());
}
//-------------------------------------------------
// device_config_complete - perform any
// operations now that the configuration is
// complete
//-------------------------------------------------
void o2_cart_slot_device::device_config_complete()
{
// set brief and instance name
update_names();
}
//-------------------------------------------------
// O2 PCB
//-------------------------------------------------
struct o2_slot
{
int pcb_id;
const char *slot_option;
};
// Here, we take the feature attribute from .xml (i.e. the PCB name) and we assign a unique ID to it
static const o2_slot slot_list[] =
{
{ O2_STD, "o2_rom" },
{ O2_ROM12, "o2_rom12" },
{ O2_ROM16, "o2_rom16" },
{ O2_CHESS, "o2_chess" },
{ O2_VOICE, "o2_voice" }
};
static int o2_get_pcb_id(const char *slot)
{
for (int i = 0; i < ARRAY_LENGTH(slot_list); i++)
{
if (!core_stricmp(slot_list[i].slot_option, slot))
return slot_list[i].pcb_id;
}
return 0;
}
static const char *o2_get_slot(int type)
{
for (int i = 0; i < ARRAY_LENGTH(slot_list); i++)
{
if (slot_list[i].pcb_id == type)
return slot_list[i].slot_option;
}
return "o2_rom";
}
/*-------------------------------------------------
call load
-------------------------------------------------*/
bool o2_cart_slot_device::call_load()
{
if (m_cart)
{
UINT32 size = (software_entry() == NULL) ? length() : get_software_region_length("rom");
m_cart->rom_alloc(size, tag());
if (software_entry() == NULL)
fread(m_cart->get_rom_base(), size);
else
memcpy(m_cart->get_rom_base(), get_software_region("rom"), size);
if (software_entry() == NULL)
{
m_type = O2_STD;
if (size == 12288)
m_type = O2_ROM12;
if (size == 16384)
m_type = O2_ROM16;
}
else
{
const char *pcb_name = get_feature("slot");
if (pcb_name)
m_type = o2_get_pcb_id(pcb_name);
}
//printf("Type: %s\n", o2_get_slot(m_type));
return IMAGE_INIT_PASS;
}
return IMAGE_INIT_PASS;
}
/*-------------------------------------------------
call softlist load
-------------------------------------------------*/
bool o2_cart_slot_device::call_softlist_load(software_list_device &swlist, const char *swname, const rom_entry *start_entry)
{
load_software_part_region(*this, swlist, swname, start_entry);
return TRUE;
}
/*-------------------------------------------------
get default card software
-------------------------------------------------*/
void o2_cart_slot_device::get_default_card_software(astring &result)
{
if (open_image_file(mconfig().options()))
{
const char *slot_string = "o2_rom";
UINT32 size = core_fsize(m_file);
int type = O2_STD;
if (size == 12288)
type = O2_ROM12;
if (size == 16384)
type = O2_ROM16;
slot_string = o2_get_slot(type);
//printf("type: %s\n", slot_string);
clear();
result.cpy(slot_string);
return;
}
software_get_default_slot(result, "o2_rom");
}
/*-------------------------------------------------
read_rom**
-------------------------------------------------*/
READ8_MEMBER(o2_cart_slot_device::read_rom04)
{
if (m_cart)
return m_cart->read_rom04(space, offset);
else
return 0xff;
}
READ8_MEMBER(o2_cart_slot_device::read_rom0c)
{
if (m_cart)
return m_cart->read_rom0c(space, offset);
else
return 0xff;
}
/*-------------------------------------------------
io_write
-------------------------------------------------*/
WRITE8_MEMBER(o2_cart_slot_device::io_write)
{
if (m_cart)
m_cart->io_write(space, offset, data);
}
#include "bus/odyssey2/rom.h"
#include "bus/odyssey2/chess.h"
#include "bus/odyssey2/voice.h"
SLOT_INTERFACE_START(o2_cart)
SLOT_INTERFACE_INTERNAL("o2_rom", O2_ROM_STD)
SLOT_INTERFACE_INTERNAL("o2_rom12", O2_ROM_12K)
SLOT_INTERFACE_INTERNAL("o2_rom16", O2_ROM_16K)
SLOT_INTERFACE_INTERNAL("o2_chess", O2_ROM_CHESS)
SLOT_INTERFACE_INTERNAL("o2_voice", O2_ROM_VOICE)
SLOT_INTERFACE_END

120
src/emu/bus/odyssey2/slot.h Normal file
View File

@ -0,0 +1,120 @@
#ifndef __O2_SLOT_H
#define __O2_SLOT_H
/***************************************************************************
TYPE DEFINITIONS
***************************************************************************/
/* PCB */
enum
{
O2_STD = 0,
O2_ROM12,
O2_ROM16,
O2_CHESS,
O2_VOICE
};
// ======================> device_o2_cart_interface
class device_o2_cart_interface : public device_slot_card_interface
{
public:
// construction/destruction
device_o2_cart_interface(const machine_config &mconfig, device_t &device);
virtual ~device_o2_cart_interface();
// reading and writing
virtual DECLARE_READ8_MEMBER(read_rom04) { return 0xff; }
virtual DECLARE_READ8_MEMBER(read_rom0c) { return 0xff; }
virtual void write_bank(int bank) {}
virtual DECLARE_WRITE8_MEMBER(io_write) {}
virtual DECLARE_READ8_MEMBER(t0_read) { return 0; }
void rom_alloc(UINT32 size, const char *tag);
void ram_alloc(UINT32 size);
UINT8* get_rom_base() { return m_rom; }
UINT8* get_ram_base() { return m_ram; }
UINT32 get_rom_size() { return m_rom_size; }
UINT32 get_ram_size() { return m_ram.count(); }
protected:
// internal state
UINT8 *m_rom;
UINT32 m_rom_size;
dynamic_buffer m_ram;
};
// ======================> o2_cart_slot_device
class o2_cart_slot_device : public device_t,
public device_image_interface,
public device_slot_interface
{
public:
// construction/destruction
o2_cart_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
virtual ~o2_cart_slot_device();
// device-level overrides
virtual void device_start();
virtual void device_config_complete();
// image-level overrides
virtual bool call_load();
virtual void call_unload() {}
virtual bool call_softlist_load(software_list_device &swlist, const char *swname, const rom_entry *start_entry);
int get_type() { return m_type; }
virtual iodevice_t image_type() const { return IO_CARTSLOT; }
virtual bool is_readable() const { return 1; }
virtual bool is_writeable() const { return 0; }
virtual bool is_creatable() const { return 0; }
virtual bool must_be_loaded() const { return 0; }
virtual bool is_reset_on_load() const { return 1; }
virtual const option_guide *create_option_guide() const { return NULL; }
virtual const char *image_interface() const { return "odyssey_cart"; }
virtual const char *file_extensions() const { return "bin,rom"; }
// slot interface overrides
virtual void get_default_card_software(astring &result);
// reading and writing
virtual DECLARE_READ8_MEMBER(read_rom04);
virtual DECLARE_READ8_MEMBER(read_rom0c);
virtual DECLARE_WRITE8_MEMBER(io_write);
virtual DECLARE_READ8_MEMBER(t0_read) { if (m_cart) return m_cart->t0_read(space, offset); else return 0; }
virtual void write_bank(int bank) { if (m_cart) m_cart->write_bank(bank); }
protected:
int m_type;
device_o2_cart_interface* m_cart;
};
// device type definition
extern const device_type O2_CART_SLOT;
/***************************************************************************
DEVICE CONFIGURATION MACROS
***************************************************************************/
#define O2SLOT_ROM_REGION_TAG ":cart:rom"
#define MCFG_O2_CARTRIDGE_ADD(_tag,_slot_intf,_def_slot) \
MCFG_DEVICE_ADD(_tag, O2_CART_SLOT, 0) \
MCFG_DEVICE_SLOT_INTERFACE(_slot_intf, _def_slot, false) \
SLOT_INTERFACE_EXTERN(o2_cart);
#endif

View File

@ -0,0 +1,101 @@
/***********************************************************************************************************
Magnavox The Voice emulation
TODO:
- load speech ROM from softlist
- move external speech rom for S.I.D. the Spellbinder into the softlist entry
***********************************************************************************************************/
#include "emu.h"
#include "voice.h"
//-------------------------------------------------
// o2_voice_device - constructor
//-------------------------------------------------
const device_type O2_ROM_VOICE = &device_creator<o2_voice_device>;
o2_voice_device::o2_voice_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
: o2_rom_device(mconfig, O2_ROM_VOICE, "Odyssey 2 The Voice Passthrough Cart", tag, owner, clock, "o2_voice", __FILE__),
m_speech(*this, "sp0256_speech"),
m_subslot(*this, "subslot"),
m_lrq_state(0)
{
}
void o2_voice_device::device_start()
{
save_item(NAME(m_lrq_state));
}
//-------------------------------------------------
// MACHINE_CONFIG_FRAGMENT( sub_slot )
//-------------------------------------------------
static MACHINE_CONFIG_FRAGMENT( o2voice )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("sp0256_speech", SP0256, 3120000)
MCFG_SP0256_DATA_REQUEST_CB(WRITELINE(o2_voice_device, lrq_callback))
// The Voice uses a speaker with its own volume control so the relative volumes to use are subjective, these sound good
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00)
MCFG_O2_CARTRIDGE_ADD("subslot", o2_cart, NULL)
MACHINE_CONFIG_END
//-------------------------------------------------
// machine_config_additions - device-specific
// machine configurations
//-------------------------------------------------
machine_config_constructor o2_voice_device::device_mconfig_additions() const
{
return MACHINE_CONFIG_NAME( o2voice );
}
ROM_START( o2voice )
ROM_REGION( 0x10000, "sp0256_speech", 0 )
// SP0256B-019 Speech chip w/2KiB mask rom
ROM_LOAD( "sp0256b-019.bin", 0x1000, 0x0800, CRC(4bb43724) SHA1(49f5326ad45392dc96c89d1d4e089a20bd21e609) )
/* A note about "The Voice": Two versions of "The Voice" exist:
* An earlier version with eight 2KiB speech roms, spr016-??? through spr016-??? on a small daughterboard
<note to self: fill in numbers later>
* A later version with one 16KiB speech rom, spr128-003, mounted directly on the mainboard
The rom contents of these two versions are EXACTLY the same.
Both versions have an sp0256b-019 speech chip, which has 2KiB of its own internal speech data
Thanks to kevtris for this info. - LN
*/
// External 16KiB speech ROM (spr128-003) from "The Voice"
ROM_LOAD( "spr128-003.bin", 0x4000, 0x4000, CRC(509367b5) SHA1(0f31f46bc02e9272885779a6dd7102c78b18895b) )
// Additional External 16KiB speech ROM (spr128-004) from S.I.D. the Spellbinder
ROM_LOAD( "spr128-004.bin", 0x8000, 0x4000, CRC(e79dfb75) SHA1(37f33d79ffd1739d7c2f226b010a1eac28d74ca0) )
ROM_END
const rom_entry *o2_voice_device::device_rom_region() const
{
return ROM_NAME( o2voice );
}
WRITE_LINE_MEMBER(o2_voice_device::lrq_callback)
{
m_lrq_state = state;
}
WRITE8_MEMBER(o2_voice_device::io_write)
{
if (data & 0x20)
m_speech->ald_w(space, 0, offset & 0x7f);
else
m_speech->reset();
}

View File

@ -0,0 +1,48 @@
#ifndef __O2_VOICE_H
#define __O2_VOICE_H
#include "slot.h"
#include "rom.h"
#include "sound/sp0256.h"
// ======================> o2_voice_device
class o2_voice_device : public o2_rom_device
{
public:
// construction/destruction
o2_voice_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
// device-level overrides
virtual void device_start();
virtual void device_reset() {}
virtual machine_config_constructor device_mconfig_additions() const;
virtual const rom_entry *device_rom_region() const;
// reading and writing
virtual DECLARE_READ8_MEMBER(read_rom04) { if (m_subslot->exists()) return m_subslot->read_rom04(space, offset); else return 0xff; }
virtual DECLARE_READ8_MEMBER(read_rom0c) { if (m_subslot->exists()) return m_subslot->read_rom0c(space, offset); else return 0xff; }
virtual void write_bank(int bank) { if (m_subslot->exists()) m_subslot->write_bank(bank); }
DECLARE_WRITE_LINE_MEMBER(lrq_callback);
DECLARE_WRITE8_MEMBER(io_write);
DECLARE_READ8_MEMBER(t0_read) { return m_speech->lrq_r() ? 0 : 1; }
private:
required_device<sp0256_device> m_speech;
required_device<o2_cart_slot_device> m_subslot;
int m_lrq_state;
};
// device type definition
extern const device_type O2_ROM_VOICE;
#endif

View File

@ -14,12 +14,12 @@
#include "emu.h"
#include "cpu/mcs48/mcs48.h"
#include "imagedev/cartslot.h"
#include "sound/sp0256.h"
#include "video/i8244.h"
#include "machine/i8243.h"
#include "video/ef9340_1.h"
#include "bus/odyssey2/slot.h"
class odyssey2_state : public driver_device
{
@ -28,24 +28,18 @@ public:
: driver_device(mconfig, type, tag),
m_maincpu(*this, "maincpu"),
m_i8244(*this, "i8244"),
m_sp0256(*this, "sp0256_speech"),
m_user1(*this, "user1"),
m_bank1(*this, "bank1"),
m_bank2(*this, "bank2"),
m_cart(*this, "cartslot"),
m_keyboard(*this, "KEY"),
m_joysticks(*this, "JOY") { }
required_device<cpu_device> m_maincpu;
required_device<i8244_device> m_i8244;
required_device<sp0256_device> m_sp0256;
required_device<o2_cart_slot_device> m_cart;
int m_the_voice_lrq_state;
UINT8 m_ram[256];
UINT8 m_p1;
UINT8 m_p2;
int m_cart_size;
UINT8 m_lum;
DECLARE_READ8_MEMBER(t0_read);
DECLARE_READ8_MEMBER(io_read);
DECLARE_WRITE8_MEMBER(io_write);
DECLARE_READ8_MEMBER(bus_read);
@ -60,7 +54,6 @@ public:
virtual void machine_reset();
DECLARE_PALETTE_INIT(odyssey2);
UINT32 screen_update_odyssey2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
DECLARE_WRITE_LINE_MEMBER(the_voice_lrq_callback);
DECLARE_WRITE_LINE_MEMBER(irq_callback);
DECLARE_WRITE16_MEMBER(scanline_postprocess);
@ -76,15 +69,8 @@ protected:
static const UINT8 P1_VDC_COPY_MODE_ENABLE = 0x40;
static const UINT8 P2_KEYBOARD_SELECT_MASK = 0x07; /* select row to scan */
required_memory_region m_user1;
required_memory_bank m_bank1;
required_memory_bank m_bank2;
required_ioport_array<6> m_keyboard;
required_ioport_array<2> m_joysticks;
void switch_banks();
};
class g7400_state : public odyssey2_state
@ -115,9 +101,9 @@ protected:
static ADDRESS_MAP_START( odyssey2_mem , AS_PROGRAM, 8, odyssey2_state )
AM_RANGE(0x0000, 0x03FF) AM_ROM
AM_RANGE(0x0400, 0x0BFF) AM_RAMBANK("bank1")
AM_RANGE(0x0C00, 0x0FFF) AM_RAMBANK("bank2")
AM_RANGE(0x0000, 0x03ff) AM_ROM
AM_RANGE(0x0400, 0x0bff) AM_DEVREAD("cartslot", o2_cart_slot_device, read_rom04)
AM_RANGE(0x0c00, 0x0fff) AM_DEVREAD("cartslot", o2_cart_slot_device, read_rom0c)
ADDRESS_MAP_END
@ -126,7 +112,7 @@ static ADDRESS_MAP_START( odyssey2_io , AS_IO, 8, odyssey2_state )
AM_RANGE(MCS48_PORT_P1, MCS48_PORT_P1) AM_READWRITE(p1_read, p1_write)
AM_RANGE(MCS48_PORT_P2, MCS48_PORT_P2) AM_READWRITE(p2_read, p2_write)
AM_RANGE(MCS48_PORT_BUS, MCS48_PORT_BUS) AM_READWRITE(bus_read, bus_write)
AM_RANGE(MCS48_PORT_T0, MCS48_PORT_T0) AM_READ(t0_read)
AM_RANGE(MCS48_PORT_T0, MCS48_PORT_T0) AM_DEVREAD("cartslot", o2_cart_slot_device, t0_read)
AM_RANGE(MCS48_PORT_T1, MCS48_PORT_T1) AM_READ(t1_read)
ADDRESS_MAP_END
@ -136,7 +122,7 @@ static ADDRESS_MAP_START( g7400_io , AS_IO, 8, g7400_state )
AM_RANGE(MCS48_PORT_P1, MCS48_PORT_P1) AM_READWRITE(p1_read, p1_write)
AM_RANGE(MCS48_PORT_P2, MCS48_PORT_P2) AM_READWRITE(p2_read, p2_write)
AM_RANGE(MCS48_PORT_BUS, MCS48_PORT_BUS) AM_READWRITE(bus_read, bus_write)
AM_RANGE(MCS48_PORT_T0, MCS48_PORT_T0) AM_READ(t0_read)
AM_RANGE(MCS48_PORT_T0, MCS48_PORT_T0) AM_DEVREAD("cartslot", o2_cart_slot_device, t0_read)
AM_RANGE(MCS48_PORT_T1, MCS48_PORT_T1) AM_READ(t1_read)
AM_RANGE(MCS48_PORT_PROG, MCS48_PORT_PROG) AM_DEVWRITE("i8243", i8243_device, i8243_prog_w);
ADDRESS_MAP_END
@ -298,67 +284,15 @@ WRITE_LINE_MEMBER(odyssey2_state::irq_callback)
}
void odyssey2_state::switch_banks()
{
switch ( m_cart_size )
{
case 12288:
/* 12KB cart support (for instance, KTAA as released) */
m_bank1->set_base( m_user1->base() + (m_p1 & 0x03) * 0xC00 );
m_bank2->set_base( m_user1->base() + (m_p1 & 0x03) * 0xC00 + 0x800 );
break;
case 16384:
/* 16KB cart support (for instance, full sized version KTAA) */
m_bank1->set_base( m_user1->base() + (m_p1 & 0x03) * 0x1000 + 0x400 );
m_bank2->set_base( m_user1->base() + (m_p1 & 0x03) * 0x1000 + 0xC00 );
break;
default:
m_bank1->set_base( m_user1->base() + (m_p1 & 0x03) * 0x800 );
m_bank2->set_base( m_user1->base() + (m_p1 & 0x03) * 0x800 );
break;
}
}
WRITE_LINE_MEMBER(odyssey2_state::the_voice_lrq_callback)
{
m_the_voice_lrq_state = state;
}
READ8_MEMBER(odyssey2_state::t0_read)
{
return m_sp0256->lrq_r() ? 0 : 1;
}
DRIVER_INIT_MEMBER(odyssey2_state,odyssey2)
{
int i;
int size = 0;
UINT8 *gfx = memregion("gfx1")->base();
device_image_interface *image = dynamic_cast<device_image_interface *>(machine().device("cart"));
for (i = 0; i < 256; i++)
for (int i = 0; i < 256; i++)
{
gfx[i] = i; /* TODO: Why i and not 0? */
m_ram[i] = 0;
}
if (image->exists())
{
if (image->software_entry() == NULL)
{
size = image->length();
}
else
{
size = image->get_software_region_length("rom");
}
}
m_cart_size = size;
}
@ -367,9 +301,7 @@ void odyssey2_state::machine_start()
save_pointer(NAME(m_ram),256);
save_item(NAME(m_p1));
save_item(NAME(m_p2));
save_item(NAME(m_cart_size));
save_item(NAME(m_lum));
save_item(NAME(m_the_voice_lrq_state));
}
@ -378,9 +310,9 @@ void odyssey2_state::machine_reset()
m_lum = 0;
/* jump to "last" bank, will work for all sizes due to being mirrored */
m_p1 = 0xFF;
m_p2 = 0xFF;
switch_banks();
m_p1 = 0xff;
m_p2 = 0xff;
m_cart->write_bank(m_p1);
}
@ -426,17 +358,10 @@ WRITE8_MEMBER(odyssey2_state::io_write)
if ((m_p1 & (P1_EXT_RAM_ENABLE | P1_VDC_COPY_MODE_ENABLE)) == 0x00)
{
m_ram[offset] = data;
if ( offset & 0x80 )
if (offset & 0x80)
{
if ( data & 0x20 )
{
logerror("voice write %02X, data = %02X (p1 = %02X)\n", offset, data, m_p1 );
m_sp0256->ald_w(space, 0, offset & 0x7f);
}
else
{
m_sp0256->reset();
}
logerror("voice write %02X, data = %02X (p1 = %02X)\n", offset, data, m_p1);
m_cart->io_write(space, offset, data);
}
}
else if (!(m_p1 & P1_VDC_ENABLE))
@ -470,6 +395,11 @@ WRITE8_MEMBER(g7400_state::io_write)
if ((m_p1 & (P1_EXT_RAM_ENABLE | P1_VDC_COPY_MODE_ENABLE)) == 0x00)
{
m_ram[offset] = data;
if (offset & 0x80)
{
logerror("voice write %02X, data = %02X (p1 = %02X)\n", offset, data, m_p1);
m_cart->io_write(space, offset, data);
}
}
else if (!(m_p1 & P1_VDC_ENABLE))
{
@ -567,8 +497,7 @@ WRITE8_MEMBER(odyssey2_state::p1_write)
{
m_p1 = data;
m_lum = ( data & 0x80 ) >> 4;
switch_banks();
m_cart->write_bank(m_p1);
}
@ -735,11 +664,10 @@ static GFXDECODE_START( odyssey2 )
GFXDECODE_END
static MACHINE_CONFIG_FRAGMENT( odyssey2_cartslot )
MCFG_CARTSLOT_ADD("cart")
MCFG_CARTSLOT_EXTENSION_LIST("bin,rom")
MCFG_CARTSLOT_NOT_MANDATORY
MCFG_CARTSLOT_INTERFACE("odyssey_cart")
MCFG_O2_CARTRIDGE_ADD("cartslot", o2_cart, NULL)
MCFG_SOFTWARE_LIST_ADD("cart_list","odyssey2")
MACHINE_CONFIG_END
@ -766,11 +694,6 @@ static MACHINE_CONFIG_START( odyssey2, odyssey2_state )
MCFG_I8244_ADD( "i8244", XTAL_7_15909MHz/2 * 2, "screen", WRITELINE( odyssey2_state, irq_callback ), WRITE16( odyssey2_state, scanline_postprocess ) )
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.40)
MCFG_SOUND_ADD("sp0256_speech", SP0256, 3120000)
MCFG_SP0256_DATA_REQUEST_CB(WRITELINE(odyssey2_state, the_voice_lrq_callback))
/* The Voice uses a speaker with its own volume control so the relative volumes to use are subjective, these sound good */
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00)
MCFG_FRAGMENT_ADD(odyssey2_cartslot)
MACHINE_CONFIG_END
@ -797,10 +720,6 @@ static MACHINE_CONFIG_START( videopac, odyssey2_state )
MCFG_I8245_ADD( "i8244", XTAL_17_73447MHz/5 * 2, "screen", WRITELINE( odyssey2_state, irq_callback ), WRITE16( odyssey2_state, scanline_postprocess ) )
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.40)
MCFG_SOUND_ADD("sp0256_speech", SP0256, 3120000)
MCFG_SP0256_DATA_REQUEST_CB(WRITELINE(odyssey2_state, the_voice_lrq_callback))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00)
MCFG_FRAGMENT_ADD(odyssey2_cartslot)
MACHINE_CONFIG_END
@ -830,10 +749,6 @@ static MACHINE_CONFIG_START( g7400, g7400_state )
MCFG_I8245_ADD( "i8244", 3540000 * 2, "screen", WRITELINE( odyssey2_state, irq_callback ), WRITE16( g7400_state, scanline_postprocess ) )
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.40)
MCFG_SOUND_ADD("sp0256_speech", SP0256, 3120000)
MCFG_SP0256_DATA_REQUEST_CB(WRITELINE(odyssey2_state, the_voice_lrq_callback))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00)
MCFG_FRAGMENT_ADD(odyssey2_cartslot)
MCFG_DEVICE_REMOVE("cart_list")
MCFG_SOFTWARE_LIST_ADD("cart_list","g7400")
@ -866,10 +781,6 @@ static MACHINE_CONFIG_START( odyssey3, g7400_state )
MCFG_I8244_ADD( "i8244", 3540000 * 2, "screen", WRITELINE( odyssey2_state, irq_callback ), WRITE16( g7400_state, scanline_postprocess ) )
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.40)
MCFG_SOUND_ADD("sp0256_speech", SP0256, 3120000)
MCFG_SP0256_DATA_REQUEST_CB(WRITELINE(odyssey2_state, the_voice_lrq_callback))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00)
MCFG_FRAGMENT_ADD(odyssey2_cartslot)
MCFG_DEVICE_REMOVE("cart_list")
MCFG_SOFTWARE_LIST_ADD("cart_list","g7400")
@ -881,26 +792,6 @@ ROM_START (odyssey2)
ROM_REGION(0x10000,"maincpu",0) /* safer for the memory handler/bankswitching??? */
ROM_LOAD ("o2bios.rom", 0x0000, 0x0400, CRC(8016a315) SHA1(b2e1955d957a475de2411770452eff4ea19f4cee))
ROM_REGION(0x100, "gfx1", ROMREGION_ERASEFF)
ROM_REGION(0x4000, "user1", 0)
ROM_CART_LOAD("cart", 0x0000, 0x4000, ROM_MIRROR)
ROM_REGION( 0x10000, "sp0256_speech", 0 )
/* SP0256B-019 Speech chip w/2KiB mask rom */
ROM_LOAD( "sp0256b-019.bin", 0x1000, 0x0800, CRC(4bb43724) SHA1(49f5326ad45392dc96c89d1d4e089a20bd21e609) )
/* A note about "The Voice": Two versions of "The Voice" exist:
* An earlier version with eight 2KiB speech roms, spr016-??? through spr016-??? on a small daughterboard
<note to self: fill in numbers later>
* A later version with one 16KiB speech rom, spr128-003, mounted directly on the mainboard
The rom contents of these two versions are EXACTLY the same.
Both versions have an sp0256b-019 speech chip, which has 2KiB of its own internal speech data
Thanks to kevtris for this info. - LN
*/
/* External 16KiB speech ROM (spr128-003) from "The Voice" */
ROM_LOAD( "spr128-003.bin", 0x4000, 0x4000, CRC(509367b5) SHA1(0f31f46bc02e9272885779a6dd7102c78b18895b) )
/* Additional External 16KiB ROM (spr128-004) from S.I.D. the Spellbinder */
ROM_LOAD( "spr128-004.bin", 0x8000, 0x4000, CRC(e79dfb75) SHA1(37f33d79ffd1739d7c2f226b010a1eac28d74ca0) )
ROM_END
@ -911,17 +802,6 @@ ROM_START (videopac)
ROM_SYSTEM_BIOS( 1, "c52", "c52" )
ROMX_LOAD ("c52.bin", 0x0000, 0x0400, CRC(a318e8d6) SHA1(a6120aed50831c9c0d95dbdf707820f601d9452e), ROM_BIOS(2))
ROM_REGION(0x100, "gfx1", ROMREGION_ERASEFF)
ROM_REGION(0x4000, "user1", 0)
ROM_CART_LOAD("cart", 0x0000, 0x4000, ROM_MIRROR)
ROM_REGION( 0x10000, "sp0256_speech", 0 )
/* SP0256B-019 Speech chip w/2KiB mask rom */
ROM_LOAD( "sp0256b-019.bin", 0x1000, 0x0800, CRC(4bb43724) SHA1(49f5326ad45392dc96c89d1d4e089a20bd21e609) )
/* External 16KiB speech ROM (spr128-003) from "The Voice" */
ROM_LOAD( "spr128-003.bin", 0x4000, 0x4000, CRC(509367b5) SHA1(0f31f46bc02e9272885779a6dd7102c78b18895b) )
/* Additional External 16KiB speech ROM (spr128-004) from S.I.D. the Spellbinder */
ROM_LOAD( "spr128-004.bin", 0x8000, 0x4000, CRC(e79dfb75) SHA1(37f33d79ffd1739d7c2f226b010a1eac28d74ca0) )
ROM_END
@ -929,9 +809,6 @@ ROM_START (g7400)
ROM_REGION(0x10000,"maincpu",0) /* safer for the memory handler/bankswitching??? */
ROM_LOAD ("g7400.bin", 0x0000, 0x0400, CRC(e20a9f41) SHA1(5130243429b40b01a14e1304d0394b8459a6fbae))
ROM_REGION(0x100, "gfx1", ROMREGION_ERASEFF)
ROM_REGION(0x4000, "user1", 0)
ROM_CART_LOAD("cart", 0x0000, 0x4000, ROM_MIRROR)
ROM_END
@ -939,9 +816,6 @@ ROM_START (jopac)
ROM_REGION(0x10000,"maincpu",0) /* safer for the memory handler/bankswitching??? */
ROM_LOAD ("jopac.bin", 0x0000, 0x0400, CRC(11647ca5) SHA1(54b8d2c1317628de51a85fc1c424423a986775e4))
ROM_REGION(0x100, "gfx1", ROMREGION_ERASEFF)
ROM_REGION(0x4000, "user1", 0)
ROM_CART_LOAD("cart", 0x0000, 0x4000, ROM_MIRROR)
ROM_END
@ -950,9 +824,6 @@ ROM_START (odyssey3)
ROM_LOAD ("odyssey3.bin", 0x0000, 0x0400, CRC(e2b23324) SHA1(0a38c5f2cea929d2fe0a23e5e1a60de9155815dc))
ROM_REGION(0x100, "gfx1", ROMREGION_ERASEFF)
ROM_REGION(0x4000, "user1", 0)
ROM_CART_LOAD("cart", 0x000, 0x4000, ROM_MIRROR)
ROM_END
/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */

View File

@ -603,6 +603,7 @@ BUSES += MSX_SLOT
BUSES += NEOGEO
BUSES += NES
BUSES += NUBUS
BUSES += O2
BUSES += ORICEXT
BUSES += PCE
BUSES += PCI