diff options
-rw-r--r-- | .gitattributes | 8 | ||||
-rw-r--r-- | hash/g7400.xml | 31 | ||||
-rw-r--r-- | hash/odyssey2.xml | 146 | ||||
-rw-r--r-- | src/emu/bus/bus.mak | 14 | ||||
-rw-r--r-- | src/emu/bus/odyssey2/chess.c | 58 | ||||
-rw-r--r-- | src/emu/bus/odyssey2/chess.h | 31 | ||||
-rw-r--r-- | src/emu/bus/odyssey2/rom.c | 95 | ||||
-rw-r--r-- | src/emu/bus/odyssey2/rom.h | 65 | ||||
-rw-r--r-- | src/emu/bus/odyssey2/slot.c | 279 | ||||
-rw-r--r-- | src/emu/bus/odyssey2/slot.h | 120 | ||||
-rw-r--r-- | src/emu/bus/odyssey2/voice.c | 101 | ||||
-rw-r--r-- | src/emu/bus/odyssey2/voice.h | 48 | ||||
-rw-r--r-- | src/mess/drivers/odyssey2.c | 179 | ||||
-rw-r--r-- | src/mess/mess.mak | 1 |
14 files changed, 1022 insertions, 154 deletions
diff --git a/.gitattributes b/.gitattributes index 622030c016d..753283463bc 100644 --- a/.gitattributes +++ b/.gitattributes @@ -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 diff --git a/hash/g7400.xml b/hash/g7400.xml index 6021f588148..b00ba1e8422 100644 --- a/hash/g7400.xml +++ b/hash/g7400.xml @@ -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> diff --git a/hash/odyssey2.xml b/hash/odyssey2.xml index a76d4dda7ec..51db3898f0e 100644 --- a/hash/odyssey2.xml +++ b/hash/odyssey2.xml @@ -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> diff --git a/src/emu/bus/bus.mak b/src/emu/bus/bus.mak index d3f7c3b7cab..a6cd026c0a8 100644 --- a/src/emu/bus/bus.mak +++ b/src/emu/bus/bus.mak @@ -545,6 +545,20 @@ 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 #------------------------------------------------- diff --git a/src/emu/bus/odyssey2/chess.c b/src/emu/bus/odyssey2/chess.c new file mode 100644 index 00000000000..6150e5f5a59 --- /dev/null +++ b/src/emu/bus/odyssey2/chess.c @@ -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 ); +} diff --git a/src/emu/bus/odyssey2/chess.h b/src/emu/bus/odyssey2/chess.h new file mode 100644 index 00000000000..622392d13a4 --- /dev/null +++ b/src/emu/bus/odyssey2/chess.h @@ -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 diff --git a/src/emu/bus/odyssey2/rom.c b/src/emu/bus/odyssey2/rom.c new file mode 100644 index 00000000000..1406129eabc --- /dev/null +++ b/src/emu/bus/odyssey2/rom.c @@ -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]; +} + diff --git a/src/emu/bus/odyssey2/rom.h b/src/emu/bus/odyssey2/rom.h new file mode 100644 index 00000000000..174e6dece30 --- /dev/null +++ b/src/emu/bus/odyssey2/rom.h @@ -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 diff --git a/src/emu/bus/odyssey2/slot.c b/src/emu/bus/odyssey2/slot.c new file mode 100644 index 00000000000..a434b32c2f5 --- /dev/null +++ b/src/emu/bus/odyssey2/slot.c @@ -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 + diff --git a/src/emu/bus/odyssey2/slot.h b/src/emu/bus/odyssey2/slot.h new file mode 100644 index 00000000000..f1f30c58587 --- /dev/null +++ b/src/emu/bus/odyssey2/slot.h @@ -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 diff --git a/src/emu/bus/odyssey2/voice.c b/src/emu/bus/odyssey2/voice.c new file mode 100644 index 00000000000..7da5d308695 --- /dev/null +++ b/src/emu/bus/odyssey2/voice.c @@ -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(); +} diff --git a/src/emu/bus/odyssey2/voice.h b/src/emu/bus/odyssey2/voice.h new file mode 100644 index 00000000000..14ffb32c407 --- /dev/null +++ b/src/emu/bus/odyssey2/voice.h @@ -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 diff --git a/src/mess/drivers/odyssey2.c b/src/mess/drivers/odyssey2.c index 117a6f7cf50..3d1e22a28ec 100644 --- a/src/mess/drivers/odyssey2.c +++ b/src/mess/drivers/odyssey2.c @@ -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 */ diff --git a/src/mess/mess.mak b/src/mess/mess.mak index ca411b1e79d..9495461e505 100644 --- a/src/mess/mess.mak +++ b/src/mess/mess.mak @@ -603,6 +603,7 @@ BUSES += MSX_SLOT BUSES += NEOGEO BUSES += NES BUSES += NUBUS +BUSES += O2 BUSES += ORICEXT BUSES += PCE BUSES += PCI |