summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Fabio Priuli <etabeta78@users.noreply.github.com>2014-08-24 08:45:33 +0000
committer Fabio Priuli <etabeta78@users.noreply.github.com>2014-08-24 08:45:33 +0000
commita1cd7776c53ee19ae7cd53c574a3185253336769 (patch)
tree53b84334e7c87315d563aaccd2b07976187c2782
parent9ffe9e8bbaf66fbfe851a2b0abc29aa21c493ac3 (diff)
(MESS) a2600.c: converted Atari VCS carts to be slot devices, cleaned up
the implementation and removed Supercharger tapes from the main system. The -cass media switch (to load the tape file) will become available only when you mount the Supercharger cart. [Fabio Priuli]
-rw-r--r--.gitattributes10
-rw-r--r--hash/a2600.xml492
-rw-r--r--src/emu/bus/bus.mak31
-rw-r--r--src/emu/bus/vcs/compumat.c51
-rw-r--r--src/emu/bus/vcs/compumat.h33
-rw-r--r--src/emu/bus/vcs/dpc.c282
-rw-r--r--src/emu/bus/vcs/dpc.h93
-rwxr-xr-xsrc/emu/bus/vcs/rom.c1054
-rwxr-xr-xsrc/emu/bus/vcs/rom.h389
-rw-r--r--src/emu/bus/vcs/scharger.c212
-rw-r--r--src/emu/bus/vcs/scharger.h45
-rwxr-xr-xsrc/emu/bus/vcs/vcs_slot.c838
-rwxr-xr-xsrc/emu/bus/vcs/vcs_slot.h154
-rw-r--r--src/mess/drivers/a2600.c1725
14 files changed, 3795 insertions, 1614 deletions
diff --git a/.gitattributes b/.gitattributes
index 949fcc0ec52..e4df589bace 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -1526,6 +1526,16 @@ src/emu/bus/tvc/hbf.c svneol=native#text/plain
src/emu/bus/tvc/hbf.h svneol=native#text/plain
src/emu/bus/tvc/tvc.c svneol=native#text/plain
src/emu/bus/tvc/tvc.h svneol=native#text/plain
+src/emu/bus/vcs/compumat.c svneol=native#text/plain
+src/emu/bus/vcs/compumat.h svneol=native#text/plain
+src/emu/bus/vcs/dpc.c svneol=native#text/plain
+src/emu/bus/vcs/dpc.h svneol=native#text/plain
+src/emu/bus/vcs/rom.c svneol=native#text/plain
+src/emu/bus/vcs/rom.h svneol=native#text/plain
+src/emu/bus/vcs/scharger.c svneol=native#text/plain
+src/emu/bus/vcs/scharger.h svneol=native#text/plain
+src/emu/bus/vcs/vcs_slot.c svneol=native#text/plain
+src/emu/bus/vcs/vcs_slot.h svneol=native#text/plain
src/emu/bus/vcs_ctrl/ctrl.c svneol=native#text/plain
src/emu/bus/vcs_ctrl/ctrl.h svneol=native#text/plain
src/emu/bus/vcs_ctrl/joybooster.c svneol=native#text/plain
diff --git a/hash/a2600.xml b/hash/a2600.xml
index e9b3081be2b..d5b26a1ab84 100644
--- a/hash/a2600.xml
+++ b/hash/a2600.xml
@@ -15,6 +15,7 @@ Info from Atariage and Atarimania
<sharedfeat name="compatibility" value="PAL" />
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F6" />
+ <feature name="slot" value="a26_f6" />
<dataarea name="rom" size="16384">
<rom name="2 pak special (black) - challenge, surfing.bin" size="16384" crc="07bfb506" sha1="05664dcc45d02ce585cd79d551c5c20fc2c7a833" offset="0" />
</dataarea>
@@ -29,6 +30,7 @@ Info from Atariage and Atarimania
<sharedfeat name="compatibility" value="PAL" />
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F6" />
+ <feature name="slot" value="a26_f6" />
<dataarea name="rom" size="16384">
<rom name="2 pak special (black) - challenge, surfing (alt).bin" size="16384" crc="e2532342" sha1="f2fa7573b250c804ff2a19da43517687fe310c3f" offset="0" />
</dataarea>
@@ -43,6 +45,7 @@ Info from Atariage and Atarimania
<sharedfeat name="compatibility" value="PAL" />
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F6" />
+ <feature name="slot" value="a26_f6" />
<dataarea name="rom" size="16384">
<rom name="2 pak special (blue)- dungeon master, creature strike.bin" size="16384" crc="c9920339" sha1="96e42866669225c1a8c078c263e16703d080ffdf" offset="0" />
</dataarea>
@@ -59,6 +62,7 @@ Info from Atariage and Atarimania
<sharedfeat name="compatibility" value="PAL" />
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F6" />
+ <feature name="slot" value="a26_f6" />
<dataarea name="rom" size="16384">
<rom name="2 pak special (dark blue) - planet patrol, wall-defender.bin" size="16384" crc="0c8c40f3" sha1="40058f86488c905a67cfb3f6595dbb4d62150011" offset="0" />
</dataarea>
@@ -73,6 +77,7 @@ Info from Atariage and Atarimania
<sharedfeat name="compatibility" value="PAL" />
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F6" />
+ <feature name="slot" value="a26_f6" />
<dataarea name="rom" size="16384">
<rom name="2 pak special - dolphin, oink.bin" size="16384" crc="ddbc3ed4" sha1="0c5ed716e4477f8e22f6dd5e62756cd618ac154b" offset="0" />
</dataarea>
@@ -88,6 +93,7 @@ Info from Atariage and Atarimania
<sharedfeat name="compatibility" value="PAL" />
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F6" />
+ <feature name="slot" value="a26_f6" />
<dataarea name="rom" size="16384">
<rom name="2 pak special (green) - dolphin, pigs 'n wolf.bin" size="16384" crc="0b8e3332" sha1="e4a26a828572ac877e50862fd92c21315c7f2ed2" offset="0" />
</dataarea>
@@ -102,6 +108,7 @@ Info from Atariage and Atarimania
<sharedfeat name="compatibility" value="PAL" />
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F6" />
+ <feature name="slot" value="a26_f6" />
<dataarea name="rom" size="16384">
<rom name="2 pak special (light green) - hoppy, alien force.bin" size="16384" crc="38c5b48f" sha1="b08c6e94becadd76a7be0d473622a698f00255ef" offset="0" />
</dataarea>
@@ -117,6 +124,7 @@ Info from Atariage and Atarimania
<sharedfeat name="compatibility" value="PAL" />
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F6" />
+ <feature name="slot" value="a26_f6" />
<dataarea name="rom" size="16384">
<rom name="2 pak special (magenta) - cavern blaster, city war.bin" size="16384" crc="00500b31" sha1="bf069a4dd5b65403beea6cc60d91206577ea1c0e" offset="0" />
</dataarea>
@@ -132,6 +140,7 @@ Info from Atariage and Atarimania
<sharedfeat name="compatibility" value="PAL" />
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F6" />
+ <feature name="slot" value="a26_f6" />
<dataarea name="rom" size="16384">
<rom name="2 pak special (orange) - space voyage, fire alert.bin" size="16384" crc="989cd871" sha1="6ad5c412304ef92af37ede1d8fe42ec484dac004" offset="0" />
</dataarea>
@@ -147,6 +156,7 @@ Info from Atariage and Atarimania
<sharedfeat name="compatibility" value="PAL" />
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F6" />
+ <feature name="slot" value="a26_f6" />
<dataarea name="rom" size="16384">
<rom name="2 pak special (red) - motocross, boom bang.bin" size="16384" crc="0a05d00c" sha1="bfcc35feee3713f5028122844d027c88a84772b6" offset="0" />
</dataarea>
@@ -162,6 +172,7 @@ Info from Atariage and Atarimania
<sharedfeat name="compatibility" value="PAL" />
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F6" />
+ <feature name="slot" value="a26_f6" />
<dataarea name="rom" size="16384">
<rom name="2 pak special (yellow) - star warrior, frogger.bin" size="16384" crc="cb78caec" sha1="f4885610503bff2c4ca816f4f28d1fe517b92f35" offset="0" />
</dataarea>
@@ -243,6 +254,7 @@ Info from Atariage and Atarimania
<info name="serial" value="CX26163P" />
<sharedfeat name="compatibility" value="PAL" />
<part name="cart" interface="a2600_cart">
+ <feature name="slot" value="a26_32in1" />
<dataarea name="rom" size="65536">
<rom name="32 in 1.bin" size="65536" crc="eaef28ea" sha1="97ffc252438a5c9361096a1151bdbf79bd717cb3" offset="0" />
</dataarea>
@@ -255,6 +267,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<sharedfeat name="compatibility" value="PAL" />
<part name="cart" interface="a2600_cart">
+ <feature name="slot" value="a26_32in1" />
<dataarea name="rom" size="65536">
<rom name="32 in 1 console rom (prototype) (02-10-1989).bin" size="65536" crc="05438099" sha1="8dccc90be602903a0196e85962eda62f99181a17" offset="0" />
</dataarea>
@@ -269,6 +282,7 @@ Info from Atariage and Atarimania
<sharedfeat name="compatibility" value="NTSC" />
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="4in1" />
+ <feature name="slot" value="a26_4in1" />
<dataarea name="rom" size="8192">
<rom name="4 in 1 - canyon bomber, home run, night driver, sky diver (02-19-1987) (atari) (cx26137) (prototype).bin" size="8192" crc="8b304851" sha1="bc60987b668d6fa26c49f5aba5815622710140d9" offset="0" />
</dataarea>
@@ -283,6 +297,7 @@ Info from Atariage and Atarimania
<sharedfeat name="compatibility" value="PAL" />
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="4in1" />
+ <feature name="slot" value="a26_4in1" />
<dataarea name="rom" size="16384">
<rom name="4 game in one - rodeo champ, open sesame, bobby is going home, festival.bin" size="16384" crc="69ca1a92" sha1="b6193826df511f39077013369e625e56577f2f36" offset="0" />
</dataarea>
@@ -296,6 +311,7 @@ Info from Atariage and Atarimania
<sharedfeat name="compatibility" value="PAL" />
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="4in1" />
+ <feature name="slot" value="a26_4in1" />
<dataarea name="rom" size="16384">
<rom name="4 game in one - ice hockey, phantom ufo, spy vs. spy, cosmic avenger.bin" size="16384" crc="caf86fa7" sha1="724c1ce352d0219699892f7c78083f825a71ac1a" offset="0" />
</dataarea>
@@ -310,6 +326,7 @@ Info from Atariage and Atarimania
<info name="serial" value="CX26193" />
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="8in1" />
+ <feature name="slot" value="a26_8in1" />
<dataarea name="rom" size="65536">
<rom name="8 in 1 (prototype).bin" size="65536" crc="5ddf79f5" sha1="c066942446c3fc7075ee8430a381d5da4adaec41" offset="0" />
</dataarea>
@@ -325,6 +342,7 @@ Info from Atariage and Atarimania
<sharedfeat name="compatibility" value="NTSC" />
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="a-team, the (prototype) (3-30-84).bin" size="8192" crc="74ea91dd" sha1="53413577afe7def1d390e3892c45822405513c07" offset="0" />
</dataarea>
@@ -340,6 +358,7 @@ Info from Atariage and Atarimania
<sharedfeat name="compatibility" value="NTSC" />
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="a-team, the (prototype) (05-08-84).bin" size="8192" crc="389bd695" sha1="bcbd36389c56e9b408e8fc4bc595dc731aaf0e02" offset="0" />
</dataarea>
@@ -355,6 +374,7 @@ Info from Atariage and Atarimania
<sharedfeat name="compatibility" value="PAL" />
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="a-team, the (prototype) (pal).bin" size="8192" crc="b2fd509a" sha1="a65f487740069640952803218b70580b2fb724b7" offset="0" />
</dataarea>
@@ -395,6 +415,7 @@ Info from Atariage and Atarimania
<sharedfeat name="compatibility" value="PAL" />
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F6" />
+ <feature name="slot" value="a26_f6" />
<dataarea name="rom" size="16384">
<rom name="acid drop.bin" size="16384" crc="14cddac7" sha1="d7c62df8300a68b21ce672cfaa4d0f2f4b3d0ce1" offset="0" />
</dataarea>
@@ -424,6 +445,7 @@ Info from Atariage and Atarimania
<info name="programmer" value="David Crane" />
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="FE" />
+ <feature name="slot" value="a26_fe" />
<dataarea name="rom" size="8192">
<rom name="activision decathlon.bin" size="8192" crc="3feb39b1" sha1="e0d47565df935c064bc4055636f37a0432ab3727" offset="0" />
</dataarea>
@@ -682,6 +704,7 @@ Info from Atariage and Atarimania
<sharedfeat name="compatibility" value="PAL" />
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<feature name="peripheral" value="kidscontroller" />
<dataarea name="rom" size="8192">
<rom name="alpha beam with ernie (pal).bin" size="8192" crc="d1ed3112" sha1="4be3ff4904fc75e047c72ec7e1b1b361c7ae6d50" offset="0" />
@@ -698,6 +721,7 @@ Info from Atariage and Atarimania
<sharedfeat name="compatibility" value="NTSC" />
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<feature name="peripheral" value="kidscontroller" />
<dataarea name="rom" size="8192">
<rom name="alpha beam with ernie.bin" size="8192" crc="27c6b897" sha1="a1f660827ce291f19719a5672f2c5d277d903b03" offset="0" />
@@ -714,6 +738,7 @@ Info from Atariage and Atarimania
<sharedfeat name="compatibility" value="NTSC" />
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<feature name="peripheral" value="kidscontroller" />
<dataarea name="rom" size="8192">
<rom name="alpha beam with ernie (prototype).bin" size="8192" crc="85f1cb08" sha1="7118f2401a0d34996762d9838d2f4bacf745fde3" offset="0" />
@@ -730,6 +755,7 @@ Info from Atariage and Atarimania
<sharedfeat name="compatibility" value="PAL" />
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<feature name="peripheral" value="kidscontroller" />
<dataarea name="rom" size="8192">
<rom name="alpha beam with ernie (prototype) (pal).bin" size="8192" crc="1651f45e" sha1="ea1124a3eac39133f59d664545c33cc514022067" offset="0" />
@@ -773,6 +799,7 @@ Info from Atariage and Atarimania
<info name="programmer" value="Michael Case, Lenny Carlson" />
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="androman on the moon (prototype).bin" size="8192" crc="18344a20" sha1="3d3623fa0d87ea02f2a080d959a127223e757b3f" offset="0" />
</dataarea>
@@ -850,6 +877,7 @@ Info from Atariage and Atarimania
<sharedfeat name="compatibility" value="NTSC" />
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="aquaventure (prototype).bin" size="8192" crc="87a8cb8b" sha1="7d132ab776ff755b86bf4f204165aa54e9e1f1cf" offset="0" />
</dataarea>
@@ -865,6 +893,7 @@ Info from Atariage and Atarimania
<sharedfeat name="compatibility" value="NTSC" />
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="aquaventure.bin" size="8192" crc="7fa61fa0" sha1="cb400de2653e125e704abd8b0fe5dddb43e3438b" offset="0" />
</dataarea>
@@ -908,6 +937,7 @@ Info from Atariage and Atarimania
<sharedfeat name="compatibility" value="NTSC" />
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="artillery duel.bin" size="8192" crc="1d0f7e8d" sha1="8c249e9eaa83fc6be16039f05ec304efdf987beb" offset="0" />
</dataarea>
@@ -924,6 +954,7 @@ Info from Atariage and Atarimania
<sharedfeat name="compatibility" value="PAL" />
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="artillery duel (pal).bin" size="8192" crc="1708647c" sha1="013142aa1338d132724876c1d55a322a1d049380" offset="0" />
</dataarea>
@@ -1006,6 +1037,7 @@ Info from Atariage and Atarimania
<sharedfeat name="compatibility" value="PAL" />
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="asterix (pal).bin" size="8192" crc="2e3deb79" sha1="ff31d885ea3d96850547fdb8978d12d0965a2c1f" offset="0" />
</dataarea>
@@ -1020,6 +1052,7 @@ Info from Atariage and Atarimania
<info name="programmer" value="Steve Woita" />
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="asterix.bin" size="8192" crc="b238706d" sha1="1a094f92e46a8127d9c29889b5389865561c0a6f" offset="0" />
</dataarea>
@@ -1035,6 +1068,7 @@ Info from Atariage and Atarimania
<sharedfeat name="compatibility" value="NTSC" />
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="taz.bin" size="8192" crc="c9d7ec9b" sha1="fa4aee79487036656aabb432d7c6e13ec21e3a3c" offset="0" />
</dataarea>
@@ -1050,6 +1084,7 @@ Info from Atariage and Atarimania
<sharedfeat name="compatibility" value="NTSC" />
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="asteroids.bin" size="8192" crc="c7d64c94" sha1="d68937e57a367e61eaa4b44550ae8b9d69456661" offset="0" />
</dataarea>
@@ -1065,6 +1100,7 @@ Info from Atariage and Atarimania
<sharedfeat name="compatibility" value="PAL" />
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="asteroids (pal).bin" size="8192" crc="0a2f8288" sha1="1cb8f057acad6dc65fef07d3202088ff4ae355cd" offset="0" />
</dataarea>
@@ -1081,6 +1117,7 @@ Info from Atariage and Atarimania
<sharedfeat name="compatibility" value="PAL" />
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="asteroids (pal) (older).bin" size="8192" crc="ffcb5e99" sha1="7c0f522d5796c4f307dccf9ce515ab022778b3c7" offset="0" />
</dataarea>
@@ -1607,6 +1644,7 @@ Info from Atariage and Atarimania
<info name="programmer" value="Michael Feinstein" />
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="battlezone.bin" size="8192" crc="9155dd1d" sha1="e4134a3b4a065c856802bc935c12fa7e9868110a" offset="0" />
</dataarea>
@@ -1621,6 +1659,7 @@ Info from Atariage and Atarimania
<info name="programmer" value="Michael Feinstein" />
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="battlezone (pal).bin" size="8192" crc="5cc921f6" sha1="d33a367fc4890bea8c2d9a7283d84720b20cabf8" offset="0" />
</dataarea>
@@ -1635,6 +1674,7 @@ Info from Atariage and Atarimania
<info name="programmer" value="Michael Feinstein" />
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="battlezone (proto).bin" size="8192" crc="c1e6d7cf" sha1="fafd522e36a4888dfc2a40b1d5879ee8a33d7931" offset="0" />
</dataarea>
@@ -1649,6 +1689,7 @@ Info from Atariage and Atarimania
<info name="programmer" value="Michael Feinstein" />
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="battlezone (proto 19830512).bin" size="8192" crc="63f31af6" sha1="3e226d8ffa975b937d808f73f79b3f052c3b067e" offset="0" />
</dataarea>
@@ -1663,6 +1704,7 @@ Info from Atariage and Atarimania
<info name="programmer" value="Dave Rolfe" />
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="beamrider.bin" size="8192" crc="1618565b" sha1="47619edb352f7f955f811cbb03a00746c8e099b1" offset="0" />
</dataarea>
@@ -1677,6 +1719,7 @@ Info from Atariage and Atarimania
<info name="programmer" value="Dave Rolfe" />
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="beamrider (pal).bin" size="8192" crc="6ed2e636" sha1="0ae5d0f01e63e053baba4bdaaed8a82e59334aaf" offset="0" />
</dataarea>
@@ -1756,6 +1799,7 @@ Info from Atariage and Atarimania
<info name="serial" value="2658" />
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="berenstain bears.bin" size="8192" crc="29d28baf" sha1="c3afd7909b72b49ca7d4485465b622d5e55f8913" offset="0" />
</dataarea>
@@ -1881,6 +1925,7 @@ Info from Atariage and Atarimania
<info name="programmer" value="Christopher H. Omarzu" />
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<feature name="peripheral" value="Kid's Controller" />
<dataarea name="rom" size="8192">
<rom name="big bird's egg catch.bin" size="8192" crc="96dc9a9c" sha1="5e4517db83c061926130ab65975e3b83d9401cc9" offset="0" />
@@ -1908,6 +1953,7 @@ Info from Atariage and Atarimania
<publisher>Activision</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="FE" />
+ <feature name="slot" value="a26_fe" />
<dataarea name="rom" size="8192">
<rom name="activision decathlon, the (1983) (activision, david crane) (ag-930-04, az-030).bin" size="8192" crc="91b8f1b2" sha1="717656f561823edaa69240471c3106963f5c307e" offset="0" />
</dataarea>
@@ -1920,6 +1966,7 @@ Info from Atariage and Atarimania
<publisher>Activision</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="FE" />
+ <feature name="slot" value="a26_fe" />
<dataarea name="rom" size="8192">
<rom name="activision decathlon, the - zehnkampf (1983) (activision, david crane - ariola) (eaz-030, eaz-030-04b, eaz-030-04i - 711 030-725) (pal).bin" size="8192" crc="2452adab" sha1="082fc914d6ebf415926fbb6cf781de209a4d052d" offset="0" />
</dataarea>
@@ -1976,6 +2023,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="asteroids (1981) (atari, brad stewart - sears) (cx2649 - 49-75163) [no copyright].bin" size="8192" crc="70a59647" sha1="8423f99092b454aed89f89f5d7da658caf7af016" offset="0" />
</dataarea>
@@ -2055,6 +2103,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="big bird's egg catch (grover's egg catch) (kid's controller) (children's computer workshop) (1983) (atari, christopher h. omarzu) (cx26104) (pal).bin" size="8192" crc="b0555578" sha1="fd9822ec54add04569b629d631182d9deac7184d" offset="0" />
</dataarea>
@@ -2067,6 +2116,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="big bird's egg catch (grover's egg catch) (kid's controller) (children's computer workshop) (05-17-1983) (atari, christopher h. omarzu) (cx26104) (prototype).bin" size="8192" crc="3a4038ac" sha1="e2b0304de695cea7c98344642254b7f181e928d2" offset="0" />
</dataarea>
@@ -2079,6 +2129,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="big bird's egg catch (grover's egg catch) (kid's controller) (children's computer workshop) (05-02-1983) (atari, christopher h. omarzu) (cx26104) (prototype).bin" size="8192" crc="eeb65efa" sha1="aafb88ef8f95b1051cb8b6a153b165215c95c7bd" offset="0" />
</dataarea>
@@ -2091,6 +2142,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="big bird's egg catch (grover's egg catch) (kid's controller) (children's computer workshop) (12-08-1982) (atari, christopher h. omarzu) (cx26104) (prototype).bin" size="8192" crc="9de03520" sha1="a3ab3699d945ac356aeff637046f197f9d6f7063" offset="0" />
</dataarea>
@@ -2125,6 +2177,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="bionic breakthrough (headband - super breakout) (mindlink controller) (06-22-1984) (atari, paul donaldson) (prototype).bin" size="8192" crc="347b9516" sha1="eeed5312b62f9a5c2bce785956bd61c421dd4431" offset="0" />
</dataarea>
@@ -2137,6 +2190,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="bionic breakthrough (headband - super breakout) (mindlink controller) (1984) (atari, paul donaldson) (prototype).bin" size="8192" crc="928e4b47" sha1="f6a41507b8cf890ab7c59bb1424f0500534385ce" offset="0" />
</dataarea>
@@ -2207,6 +2261,7 @@ Info from Atariage and Atarimania
<publisher>CBS Electronics</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="blueprint (1983) (cbs electronics, tom didomenico) (4l 2486 5000).bin" size="8192" crc="da7b9dfa" sha1="0fadef01ce28192880f745b23a5fbb64c5a96efe" offset="0" />
</dataarea>
@@ -2219,6 +2274,7 @@ Info from Atariage and Atarimania
<publisher>CBS Electronics</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="blueprint (1983) (cbs electronics, tom didomenico) (4l2477, 4l2482, 4l2485, 4l4171) (pal).bin" size="8192" crc="71139a5e" sha1="1b7bdc477b5b8488fc1c5566ca910297dc81f488" offset="0" />
</dataarea>
@@ -2231,6 +2287,7 @@ Info from Atariage and Atarimania
<publisher>CBS Electronics</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="blueprint (1983) (cbs electronics, tom didomenico) (4l 2486 5000) (prototype).bin" size="8192" crc="5a95a4f4" sha1="66753a7fffaa432bdacdb18e7dcf0976e27d8abe" offset="0" />
</dataarea>
@@ -2243,6 +2300,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F6" />
+ <feature name="slot" value="a26_f6" />
<dataarea name="rom" size="16384">
<rom name="bmx air master (1990) (atari) (cx26190).bin" size="16384" crc="b4017ee3" sha1="ff25ed062dcc430448b358d2ac745787410e1169" offset="0" />
</dataarea>
@@ -2255,6 +2313,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F6" />
+ <feature name="slot" value="a26_f6" />
<dataarea name="rom" size="16384">
<rom name="bmx air master (1990) (atari) (cx26190) (pal).bin" size="16384" crc="db722dd7" sha1="30d52041c59a240a8ebe2749e4de32bbc74988ee" offset="0" />
</dataarea>
@@ -2267,6 +2326,7 @@ Info from Atariage and Atarimania
<publisher>TNT Games</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F6" />
+ <feature name="slot" value="a26_f6" />
<dataarea name="rom" size="16384">
<rom name="bmx air master (1989) (tnt games, adam clayton) (26192) (pal).bin" size="16384" crc="02838b54" sha1="b54ab700ec9441aeb72665d095475035a155aa22" offset="0" />
</dataarea>
@@ -2461,6 +2521,7 @@ Info from Atariage and Atarimania
<sharedfeat name="compatibility" value="PAL" />
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="boom bang (aka crackpots) (hes) (pal).bin" size="8192" crc="5979b0f8" sha1="29547a5b632060fbbc935267b709811a77fff127" offset="0" />
</dataarea>
@@ -2665,6 +2726,7 @@ Info from Atariage and Atarimania
<publisher>Sega</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="buck rogers - planet of zoom (1983) (sega) (005-01).bin" size="8192" crc="2030f686" sha1="a65dea2d9790f3eb308c048a01566e35e8c24549" offset="0" />
</dataarea>
@@ -2677,6 +2739,7 @@ Info from Atariage and Atarimania
<publisher>Sega</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="buck rogers - planet of zoom (1983) (sega - teldec) (005-01) (pal).bin" size="8192" crc="f8b140fa" sha1="70f6310a522da76c18f3dedc050ef44217efb771" offset="0" />
</dataarea>
@@ -2711,6 +2774,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="bugs bunny (08-04-1983) (atari, alan j. murphy, robert c. polaro) (cx26100) (prototype).bin" size="8192" crc="bd164019" sha1="b3ff124891de0fb3d44c35115d838fd7e135ca04" offset="0" />
</dataarea>
@@ -2723,6 +2787,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="bugs bunny (1983) (atari, alan j. murphy, robert c. polaro) (cx26100) (prototype).bin" size="8192" crc="272b8856" sha1="9c0e13af336a986c271fe828fafdca250afba647" offset="0" />
</dataarea>
@@ -2735,6 +2800,7 @@ Info from Atariage and Atarimania
<publisher>M Network</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="E7" />
+ <feature name="slot" value="a26_e7" />
<dataarea name="rom" size="16384">
<rom name="bump 'n' jump (1983) (m network, david akers, joe 'ferreira' king, patricia lewis du long, jeff ratcliff - intv) (mt7045).bin" size="16384" crc="df2bc303" sha1="1819ef408c1216c83dcfeceec28d13f6ea5ca477" offset="0" />
</dataarea>
@@ -2747,6 +2813,7 @@ Info from Atariage and Atarimania
<publisher>Telegames</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="bump 'n' jump (1989) (telegames) (7045 a015) (pal).bin" size="8192" crc="194f3576" sha1="35bc4048f58bb170313872a0bce44fb1ca3217cc" offset="0" />
</dataarea>
@@ -2781,6 +2848,7 @@ Info from Atariage and Atarimania
<publisher>M Network</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="E7" />
+ <feature name="slot" value="a26_e7" />
<dataarea name="rom" size="16384">
<rom name="burgertime (1983) (m network, patricia lewis du long, ron surratt - intv) (mt4518).bin" size="16384" crc="c183fbbc" sha1="49e01b8048ae344cb65838f6b1c1de0e1f416f29" offset="0" />
</dataarea>
@@ -2826,6 +2894,7 @@ Info from Atariage and Atarimania
<publisher>Coleco</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="cbpark0-atari-5-24-65ec-rev1.bin" size="8192" crc="2545ff14" sha1="9b922b590f1ae041f1473336068cdca765a62e6e" offset="0" />
</dataarea>
@@ -2838,6 +2907,7 @@ Info from Atariage and Atarimania
<publisher>Coleco</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="cbpark1-atari-6-14-a64d-rev2.bin.bin" size="8192" crc="e6c20f74" sha1="33ee9f36608e9e8bb879a27235d04226121c5f6b" offset="0" />
</dataarea>
@@ -2850,6 +2920,7 @@ Info from Atariage and Atarimania
<publisher>Coleco</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="cpkadv-rev2-1-2600-a527.bin" size="8192" crc="0958f84e" sha1="a4ecf3757b78282dac1d16668f3820ca9da41ad9" offset="0" />
</dataarea>
@@ -2862,6 +2933,7 @@ Info from Atariage and Atarimania
<publisher>Coleco</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="cbpark2-atari-7-3-ad79-rev3.bin" size="8192" crc="ea375b62" sha1="cd7f18bf865501e7b918522e00ddbe434fd57e21" offset="0" />
</dataarea>
@@ -2874,6 +2946,7 @@ Info from Atariage and Atarimania
<publisher>&lt;unknown&gt;</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="cpkadv-rev4-atari-7-27-84-8aed.bin" size="8192" crc="3d5f4684" sha1="159b2ead2e5455c87264565c628396cca997a7f3" offset="0" />
</dataarea>
@@ -2886,6 +2959,7 @@ Info from Atariage and Atarimania
<publisher>Coleco</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="cbpark5-atari-8-21.bin" size="8192" crc="bc0462a8" sha1="63ce3795f48a2b1f5988f01d8bf7cc10f311223e" offset="0" />
</dataarea>
@@ -2898,6 +2972,7 @@ Info from Atariage and Atarimania
<publisher>Coleco</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="cbpark6-atari-9-4.bin" size="8192" crc="19658587" sha1="8c7e04c6ed084d8dedc1e8eae12b72161c04f536" offset="0" />
</dataarea>
@@ -2910,6 +2985,7 @@ Info from Atariage and Atarimania
<publisher>Coleco</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="cbpark7-atari-9-7.bin" size="8192" crc="1aab5dc9" sha1="2a12324f04e22c86fd4f9933a223936c1117bba2" offset="0" />
</dataarea>
@@ -2922,6 +2998,7 @@ Info from Atariage and Atarimania
<publisher>Coleco</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="cbpark8-atari-9-13.bin" size="8192" crc="dd46ed32" sha1="521035afc427e4be5c85a5c1a4b84126c49bd10f" offset="0" />
</dataarea>
@@ -2934,6 +3011,7 @@ Info from Atariage and Atarimania
<publisher>Coleco</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="cbpark9-atari-9-13.bin" size="8192" crc="7025d30d" sha1="ffdba8ae22784ccc81a5a2e81a236ace09e5b7f4" offset="0" />
</dataarea>
@@ -2968,6 +3046,7 @@ Info from Atariage and Atarimania
<publisher>Epyx</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F6" />
+ <feature name="slot" value="a26_f6" />
<dataarea name="rom" size="16384">
<rom name="california games (1988) (epyx, steven a. baker, peter engelbrite) (80561-00286).bin" size="16384" crc="e9a3fdc3" sha1="609c20365c3a71ce45cb277c66ec3ce6b2c50980" offset="0" />
</dataarea>
@@ -2980,6 +3059,7 @@ Info from Atariage and Atarimania
<publisher>Epyx</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F6" />
+ <feature name="slot" value="a26_f6" />
<dataarea name="rom" size="16384">
<rom name="california games (1988) (epyx, steven a. baker, peter engelbrite) (80561-00286) (pal).bin" size="16384" crc="c53d0352" sha1="def9502c5a37700ae03461b2d7cf2f73e91b4cec" offset="0" />
</dataarea>
@@ -3118,6 +3198,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="centipede (1982) (atari - gcc) (cx2676).bin" size="8192" crc="77396102" sha1="0b5914bc1526a9beaf54d7fd11408175cd8fcc72" offset="0" />
</dataarea>
@@ -3130,6 +3211,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="centipede (1982) (atari - gcc) (cx2676) (pal).bin" size="8192" crc="44d16280" sha1="1841ce27fc14cc2aa741d67e91f64f7924e3bf3e" offset="0" />
</dataarea>
@@ -3175,6 +3257,7 @@ Info from Atariage and Atarimania
<publisher>HES</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="FV" />
+ <feature name="slot" value="a26_fv" />
<dataarea name="rom" size="8192">
<rom name="challenge (hes) (pal).bin" size="8192" crc="38902fbc" sha1="1191ed3cac491bab487ab3c3b52ecf56bd817b58" offset="0" />
</dataarea>
@@ -3420,6 +3503,7 @@ Info from Atariage and Atarimania
<publisher>Xonox</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="chuck norris superkicks (1983) (xonox - k-tel software, robert weatherby) (6230, 06002, 06003, 99003).bin" size="8192" crc="96210c6c" sha1="1637b6b9cd1a918339ec054cf95b924e7ce4789a" offset="0" />
</dataarea>
@@ -3575,6 +3659,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="combat two (1982) (atari - gcc) (cx26156) (prototype).bin" size="8192" crc="8cabe1fd" sha1="66014de1f8e9f39483ee3f97ca0d97d026ffc3bb" offset="0" />
</dataarea>
@@ -3587,6 +3672,7 @@ Info from Atariage and Atarimania
<publisher>Activision</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F6" />
+ <feature name="slot" value="a26_f6" />
<dataarea name="rom" size="16384">
<rom name="commando (1988) (activision, mike riedel) (ak-043-04).bin" size="16384" crc="8d3025dc" sha1="68a7cb3ff847cd987a551f3dd9cda5f90ce0a3bf" offset="0" />
</dataarea>
@@ -3599,6 +3685,7 @@ Info from Atariage and Atarimania
<publisher>Activision</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F6" />
+ <feature name="slot" value="a26_f6" />
<dataarea name="rom" size="16384">
<rom name="commando (1988) (activision, mike riedel) (ak-043-04) [different logo].bin" size="16384" crc="2c698b31" sha1="e47de0536a874a500bd6586eb6ec819e14b47f12" offset="0" />
</dataarea>
@@ -3611,6 +3698,7 @@ Info from Atariage and Atarimania
<publisher>Activision</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F6" />
+ <feature name="slot" value="a26_f6" />
<dataarea name="rom" size="16384">
<rom name="commando (1988) (activision, mike riedel) (eak-043-04i) (pal).bin" size="16384" crc="b898762d" sha1="de4a12036650577b544c2fc091b981f18f771e34" offset="0" />
</dataarea>
@@ -3711,6 +3799,7 @@ Info from Atariage and Atarimania
<publisher>Sega</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="congo bongo (1983) (sega, steve beck, phat ho - beck-tech) (006-01).bin" size="8192" crc="3f6e7e0c" sha1="3a77db43b6583e8689435f0f14aa04b9e57bdded" offset="0" />
</dataarea>
@@ -3723,6 +3812,7 @@ Info from Atariage and Atarimania
<publisher>Sega</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="congo bongo (1983) (sega, steve beck, phat ho - beck-tech) (006-01) [a].bin" size="8192" crc="ff7ed640" sha1="3ec21fcdc14bdb6e9caee1f7d9b81107703da55b" offset="0" />
</dataarea>
@@ -3746,6 +3836,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="cookie monster munch (cokie monster's maze, cookie monster's garden) (kid's controller) (children's computer workshop) (1983) (atari, gary stark) (cx26102).bin" size="8192" crc="97ba488f" sha1="f4a62ba0ff59803c5f40d59eeed1e126fe37979b" offset="0" />
</dataarea>
@@ -3758,6 +3849,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="cookie monster munch (cokie monster's maze, cookie monster's garden) (kid's controller) (children's computer workshop) (1983) (atari, gary stark) (cx26102) (pal).bin" size="8192" crc="8ee4c319" sha1="fd47df700820295ead34a9d9cf5c73eccf1101bd" offset="0" />
</dataarea>
@@ -3770,6 +3862,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="cookie monster munch (cokie monster's maze, cookie monster's garden) (kid's controller) (children's computer workshop) (1983) (atari, gary stark) (cx26102) (pal) [a].bin" size="8192" crc="cb377c19" sha1="3e03319ac9fdb095ace67ca1586be2cd1dbbbf64" offset="0" />
</dataarea>
@@ -4029,6 +4122,7 @@ Info from Atariage and Atarimania
<part name="cart" interface="a2600_cart">
<!-- SuperChip -->
<feature name="mapper" value="F6" />
+ <feature name="slot" value="a26_f6" />
<dataarea name="rom" size="16384">
<rom name="crack'ed (11-28-1988) (atari, randy bowker) (cx26142) (prototype).bin" size="16384" crc="1b5e52a7" sha1="d226e8af4e38d1d4eb8bb69cdf6bccdad561c804" offset="0" />
</dataarea>
@@ -4141,6 +4235,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="crazy climber (1982) (atari, joe gaucher, alex leavens) (cx2683).bin" size="8192" crc="a3a3c009" sha1="70e723aa67d68f8549d9bd8f96d8b1262cbdac3c" offset="0" />
</dataarea>
@@ -4197,6 +4292,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F6" />
+ <feature name="slot" value="a26_f6" />
<dataarea name="rom" size="16384">
<rom name="crossbow (1987) (atari) (cx26139).bin" size="16384" crc="1f233140" sha1="5da3d089ccda960ce244adb855975877c670e615" offset="0" />
</dataarea>
@@ -4209,6 +4305,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F6" />
+ <feature name="slot" value="a26_f6" />
<dataarea name="rom" size="16384">
<rom name="crossbow (1987) (atari) (cx26139p) (pal).bin" size="16384" crc="d40e0ffc" sha1="1e3326143441f2e6f9709f81781978220555288f" offset="0" />
</dataarea>
@@ -4244,6 +4341,7 @@ Info from Atariage and Atarimania
<part name="cart" interface="a2600_cart">
<!-- SuperChip -->
<feature name="mapper" value="F6" />
+ <feature name="slot" value="a26_f6" />
<dataarea name="rom" size="16384">
<rom name="crystal castles (1984) (atari, michael kosaka, peter c. niday, robert vieira) (cx26110).bin" size="16384" crc="9007b5ac" sha1="2e4ee5ee040b08be1fe568602d1859664e607efb" offset="0" />
</dataarea>
@@ -4256,6 +4354,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F6" />
+ <feature name="slot" value="a26_f6" />
<dataarea name="rom" size="16384">
<rom name="crystal castles (01-04-1984) (atari, michael kosaka, peter c. niday, robert vieira) (cx26110) (prototype).bin" size="16384" crc="16f88336" sha1="9d0b6e70de5ba3830f21fa477438be15eac484ed" offset="0" />
</dataarea>
@@ -4269,6 +4368,7 @@ Info from Atariage and Atarimania
<part name="cart" interface="a2600_cart">
<!-- SuperChip -->
<feature name="mapper" value="F6" />
+ <feature name="slot" value="a26_f6" />
<dataarea name="rom" size="16384">
<rom name="crystal castles (1984) (atari, michael kosaka, peter c. niday, robert vieira) (cx26110) (pal).bin" size="16384" crc="d5622d0b" sha1="3311ea53afc8901d665e487036e7da0ae1cdb276" offset="0" />
</dataarea>
@@ -4381,6 +4481,7 @@ Info from Atariage and Atarimania
<part name="cart" interface="a2600_cart">
<!-- SuperChip -->
<feature name="mapper" value="F6" />
+ <feature name="slot" value="a26_f6" />
<dataarea name="rom" size="16384">
<rom name="dark chambers (dungeon, dungeon masters) (1988) (atari, adam clayton, john howard palevich) (cx26151).bin" size="16384" crc="83900281" sha1="fbb4814973fcb4e101521515e04daa6424c45f5c" offset="0" />
</dataarea>
@@ -4394,6 +4495,7 @@ Info from Atariage and Atarimania
<part name="cart" interface="a2600_cart">
<!-- SuperChip -->
<feature name="mapper" value="F6" />
+ <feature name="slot" value="a26_f6" />
<dataarea name="rom" size="16384">
<rom name="dark chambers (dungeon, dungeon masters) (1988) (atari, adam clayton, john howard palevich) (cx26151, cx26151p) (pal).bin" size="16384" crc="844ba468" sha1="0ea0dea570acedc806aae630a92f68b3e1d63868" offset="0" />
</dataarea>
@@ -4407,6 +4509,7 @@ Info from Atariage and Atarimania
<part name="cart" interface="a2600_cart">
<!-- SuperChip -->
<feature name="mapper" value="F6" />
+ <feature name="slot" value="a26_f6" />
<dataarea name="rom" size="16384">
<rom name="dark chambers (dungeon, dungeon masters) (1988) (atari, adam clayton, john howard palevich) (cx26151, cx26151p) (prototype) (pal).bin" size="16384" crc="19e38e50" sha1="72563f872ebfd285ef51b9f2fe7d3a8f55f1b0fa" offset="0" />
</dataarea>
@@ -4452,6 +4555,7 @@ Info from Atariage and Atarimania
<publisher>HES</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F6" />
+ <feature name="slot" value="a26_f6" />
<dataarea name="rom" size="16384">
<rom name="decathlon (aka activision decathlon, the) (hes) (pal) (16k).bin" size="16384" crc="71afa4d4" sha1="7a89163982d0b3c89ed87371334b6a10c56e1d2a" offset="0" />
</dataarea>
@@ -4531,6 +4635,7 @@ Info from Atariage and Atarimania
<part name="cart" interface="a2600_cart">
<!-- SuperChip -->
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="defender ii (aka stargate) (1988) (atari, bill aspromonte, andrew fuchs) (cx26120).bin" size="8192" crc="93217704" sha1="d7b506b84f28e1b917a2978753d5a40eb197537a" offset="0" />
</dataarea>
@@ -4544,6 +4649,7 @@ Info from Atariage and Atarimania
<part name="cart" interface="a2600_cart">
<!-- SuperChip -->
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="defender ii (aka stargate) (1988) (atari, bill aspromonte, andrew fuchs) (cx26120) (pal).bin" size="8192" crc="8d348d62" sha1="aba4e94d01b10cdf9b882f25e620a126dd80df19" offset="0" />
</dataarea>
@@ -4756,6 +4862,7 @@ Info from Atariage and Atarimania
<part name="cart" interface="a2600_cart">
<!-- SuperChip -->
<feature name="mapper" value="F6" />
+ <feature name="slot" value="a26_f6" />
<dataarea name="rom" size="16384">
<rom name="desert falcon (nile flyer, sphinx) (1987) (atari, robert c. polaro) (cx26140).bin" size="16384" crc="caa0054e" sha1="ccea2d5095441d7e1b1468e3879a6ab556dc8b7a" offset="0" />
</dataarea>
@@ -4769,6 +4876,7 @@ Info from Atariage and Atarimania
<part name="cart" interface="a2600_cart">
<!-- SuperChip -->
<feature name="mapper" value="F6" />
+ <feature name="slot" value="a26_f6" />
<dataarea name="rom" size="16384">
<rom name="desert falcon (nile flyer, sphinx) (1987) (atari, robert c. polaro) (cx26140, cx26140p) (pal).bin" size="16384" crc="711d6648" sha1="b6ed9257bd542acfa8c4a3426094f46adbc6a93b" offset="0" />
</dataarea>
@@ -4782,6 +4890,7 @@ Info from Atariage and Atarimania
<part name="cart" interface="a2600_cart">
<!-- SuperChip -->
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="desert falcon (nile flyer, sphinx) (05-27-1987) (atari, robert c. polaro) (cx26140, cx26140p) (prototype) (pal).bin" size="8192" crc="85a0be98" sha1="5d9619410fd058ab8315f25910a38f4805c4b1c2" offset="0" />
</dataarea>
@@ -4894,6 +5003,7 @@ Info from Atariage and Atarimania
<part name="cart" interface="a2600_cart">
<!-- SuperChip -->
<feature name="mapper" value="F6" />
+ <feature name="slot" value="a26_f6" />
<dataarea name="rom" size="16384">
<rom name="dig dug (1983) (atari - gcc, douglas b. macrae) (cx2677).bin" size="16384" crc="ee7b80d1" sha1="79e746524520da546249149c33614fc23a4f2a51" offset="0" />
</dataarea>
@@ -4907,6 +5017,7 @@ Info from Atariage and Atarimania
<part name="cart" interface="a2600_cart">
<!-- SuperChip -->
<feature name="mapper" value="F6" />
+ <feature name="slot" value="a26_f6" />
<dataarea name="rom" size="16384">
<rom name="dig dug (1983) (atari - gcc, douglas b. macrae) (cx2677, cx2677p) (pal).bin" size="16384" crc="de5c5553" sha1="816abcef9cc8fca5007cc400534e84d00285f199" offset="0" />
</dataarea>
@@ -5007,6 +5118,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="donald duck's speedboat (donald duck's regatta) (04-12-1983) (atari) (cx26108) (prototype).bin" size="8192" crc="8db92c76" sha1="4606c0751f560200aede6598ec9c8e6249a105f5" offset="0" />
</dataarea>
@@ -5019,6 +5131,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="donald duck's speedboat (donald duck's regatta) (04-18-1983) (atari) (cx26108) (prototype) (pal).bin" size="8192" crc="6f71547f" sha1="b496e540dbc84b19185e2e597d559868cb1b10bc" offset="0" />
</dataarea>
@@ -5075,6 +5188,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="donkey kong junior (1987) (atari) (cx26144).bin" size="8192" crc="9ef649e5" sha1="98f98ac0728c68de66afda6500cafbdffe8ab50a" offset="0" />
</dataarea>
@@ -5087,6 +5201,7 @@ Info from Atariage and Atarimania
<publisher>CBS Electronics</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="donkey kong junior (1983) (cbs electronics, harley h. puthuff jr.) (4l1802) (pal).bin" size="8192" crc="ae444f76" sha1="f64d68964bc22b6a4217b779c1d58bc204a54307" offset="0" />
</dataarea>
@@ -5099,6 +5214,7 @@ Info from Atariage and Atarimania
<publisher>CCE</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="donkey kong jr (aka donkey kong junior) (1983) (cce) (c-1003).bin" size="8192" crc="a1434a22" sha1="3bc35ae032f19f785706330c19ac117674787815" offset="0" />
</dataarea>
@@ -5111,6 +5227,7 @@ Info from Atariage and Atarimania
<publisher>Tron</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="donkey kong jr. (aka donkey kong junior) (tron).bin" size="8192" crc="0404ea34" sha1="615c74880c48c99b8961642c4e5a96f6c63c6a31" offset="0" />
</dataarea>
@@ -5123,6 +5240,7 @@ Info from Atariage and Atarimania
<publisher>Activision</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F6" />
+ <feature name="slot" value="a26_f6" />
<dataarea name="rom" size="16384">
<rom name="double dragon (1989) (activision, dan kitchen) (ak-050-04).bin" size="16384" crc="8320bb37" sha1="cc99dba0a78fedd171387f492e9810f3037a5f05" offset="0" />
</dataarea>
@@ -5135,6 +5253,7 @@ Info from Atariage and Atarimania
<publisher>Activision</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F6" />
+ <feature name="slot" value="a26_f6" />
<dataarea name="rom" size="16384">
<rom name="double dragon (1989) (activision, dan kitchen) (eak-050-04) (pal).bin" size="16384" crc="5b3d8284" sha1="3f482acc1914c6bc92fd1fd823d6ed10c7ca65a8" offset="0" />
</dataarea>
@@ -5147,6 +5266,7 @@ Info from Atariage and Atarimania
<publisher>CCE</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F6" />
+ <feature name="slot" value="a26_f6" />
<dataarea name="rom" size="16384">
<rom name="double dragon (cce) (pal).bin" size="16384" crc="aa79a0e8" sha1="fc334fede2eb506a6c5b557e0109cd61f7a30919" offset="0" />
</dataarea>
@@ -5159,6 +5279,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F6" />
+ <feature name="slot" value="a26_f6" />
<dataarea name="rom" size="16384">
<rom name="double dunk (super basketball) (1989) (atari, matthew l. hubbard) (cx26159).bin" size="16384" crc="208f6c20" sha1="8e2ea320b23994dc87abe69d61249489f3a0fccc" offset="0" />
</dataarea>
@@ -5171,6 +5292,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F6" />
+ <feature name="slot" value="a26_f6" />
<dataarea name="rom" size="16384">
<rom name="double dunk (super basketball) (1989) (atari, matthew l. hubbard) (cx26159) (pal).bin" size="16384" crc="c22cd3bc" sha1="78bba6d28b86f5ec080a6eae17d20ee5b25d63d7" offset="0" />
</dataarea>
@@ -5271,6 +5393,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F6" />
+ <feature name="slot" value="a26_f6" />
<dataarea name="rom" size="16384">
<rom name="dukes of hazzard (1983) (atari, mark r. hahn) (cx2678).bin" size="16384" crc="2db406dc" sha1="c061d753435dcb7275a8764f4ad003b05fa100ed" offset="0" />
</dataarea>
@@ -5294,6 +5417,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="dumbo's flying circus (05-05-1983) (atari, jerome domurat, peter c. niday) (cx26115) (prototype).bin" size="8192" crc="ae915725" sha1="fa8b32359035c51df9baca2881582bb09ab4a3d4" offset="0" />
</dataarea>
@@ -5306,6 +5430,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="dumbo's flying circus (1983) (atari, jerome domurat, peter c. niday) (cx26115) (prototype) (pal).bin" size="8192" crc="66b9100a" sha1="97be2338afd40e9092de374ca86a754046dad556" offset="0" />
</dataarea>
@@ -5318,6 +5443,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="dumbo's flying circus (07-11-1983) (atari, jerome domurat, peter c. niday) (cx26115) (prototype) (pal).bin" size="8192" crc="47a78fad" sha1="d16eba13ab1313f375e86b488181567f846f1dc4" offset="0" />
</dataarea>
@@ -5330,6 +5456,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="dune (07-10-1984) (atari, bruce poehlman, gary stark) (prototype).bin" size="8192" crc="f01f7c55" sha1="5e2b2d07dba3692db0ec0582b0a2cb4c2b6ad31f" offset="0" />
</dataarea>
@@ -5353,6 +5480,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="e.t. - the extra-terrestrial (1982) (atari, jerome domurat, howard scott warshaw) (cx2674).bin" size="8192" crc="6d0a475f" sha1="9e34f9ca51573c92918720f8a259b9449a0cd65e" offset="0" />
</dataarea>
@@ -5365,6 +5493,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="e.t. - the extra-terrestrial (1982) (atari, jerome domurat, howard scott warshaw) (cx2674) (pal).bin" size="8192" crc="56cacf65" sha1="54828526fc7bb796bb42eb5413e049fcb34e21d7" offset="0" />
</dataarea>
@@ -5455,6 +5584,7 @@ Info from Atariage and Atarimania
<part name="cart" interface="a2600_cart">
<!-- SuperChip -->
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="elevator action (1983) (atari, dan hitchens) (cx26126) (prototype).bin" size="8192" crc="dc5a9d77" sha1="bab872ee41695cefe41d88e4932132eca6c4e69c" offset="0" />
</dataarea>
@@ -5478,6 +5608,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="elk attack (1987) (atari, mark r. hahn) (prototype).bin" size="8192" crc="02ddde9f" sha1="3983e109fc0b38c0b559a09a001f3e5f2bb1dc2a" offset="0" />
</dataarea>
@@ -5655,6 +5786,7 @@ Info from Atariage and Atarimania
<publisher>Tigervision</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="3F" />
+ <feature name="slot" value="a26_3f" />
<dataarea name="rom" size="8192">
<rom name="espial (1984) (tigervision) (7-012).bin" size="8192" crc="1f95351a" sha1="5db168bb450dc82f618dfa60b9f271ade3a057c7" offset="0" />
</dataarea>
@@ -5667,6 +5799,7 @@ Info from Atariage and Atarimania
<publisher>Tigervision</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="3F" />
+ <feature name="slot" value="a26_3f" />
<dataarea name="rom" size="8192">
<rom name="espial (1984) (tigervision - teldec) (7-012 - 3.60016 vc) (pal).bin" size="8192" crc="34b80a97" sha1="27d925d482553deff23f0889b3051091977d6920" offset="0" />
</dataarea>
@@ -5701,6 +5834,7 @@ Info from Atariage and Atarimania
<publisher>Absolute Entertainment</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F6" />
+ <feature name="slot" value="a26_f6" />
<dataarea name="rom" size="16384">
<rom name="f-14 tomcat (1988) (absolute entertainment, dan kitchen) (pal).bin" size="16384" crc="0966e8ed" sha1="684275b22f2bac7d577cf48cf42fa14fa6f69678" offset="0" />
</dataarea>
@@ -5813,6 +5947,7 @@ Info from Atariage and Atarimania
<part name="cart" interface="a2600_cart">
<!-- SuperChip -->
<feature name="mapper" value="F4" />
+ <feature name="slot" value="a26_f4" />
<dataarea name="rom" size="32768">
<rom name="fatal run (ultimate driving) (1989) (atari - sculptured software, steve aguirre) (cx26162) (pal).bin" size="32768" crc="991d2348" sha1="d0bb58ea1fc37e929e5f7cdead037bb14a166451" offset="0" />
</dataarea>
@@ -5826,6 +5961,7 @@ Info from Atariage and Atarimania
<part name="cart" interface="a2600_cart">
<!-- SuperChip -->
<feature name="mapper" value="F4" />
+ <feature name="slot" value="a26_f4" />
<dataarea name="rom" size="32768">
<rom name="fatal run (ultimate driving) (1989) (atari - sculptured software, steve aguirre) (cx26162) (prototype).bin" size="32768" crc="60b08497" sha1="59d004547e693aa05bb3333f055163ade2c9ea95" offset="0" />
</dataarea>
@@ -5838,6 +5974,7 @@ Info from Atariage and Atarimania
<publisher>Imagic</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="fathom (1983) (imagic, wilfredo 'willy' aguilar, michael becker, rob fulop) (720111-1a, 03205).bin" size="8192" crc="93da13cc" sha1="686427cc47b69980d292d04597270347942773ff" offset="0" />
</dataarea>
@@ -5850,6 +5987,7 @@ Info from Atariage and Atarimania
<publisher>Imagic</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="fathom (1983) (imagic, wilfredo 'willy' aguilar, michael becker, rob fulop) (720111-2a, 13205) (pal).bin" size="8192" crc="cd27a95c" sha1="806e3eb977dffe86fb09ad2d8d4e1766fb7aa539" offset="0" />
</dataarea>
@@ -5907,6 +6045,7 @@ Info from Atariage and Atarimania
<publisher>Video Game Program</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="fire bird (aka phoenix) (video game program) (pal).bin" size="8192" crc="e6bec83c" sha1="e2843b86da000d6e4a6fe683243a7b3e3e160c77" offset="0" />
</dataarea>
@@ -6194,6 +6333,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="frog pond (08-27-1982) (atari, nick 'sandy maiwald' turner) (cx2665) (prototype).bin" size="8192" crc="5874385a" sha1="0d6a96f857ae0e813b4d493866e2420cc5c4bad5" offset="0" />
</dataarea>
@@ -6206,6 +6346,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="frog pond (1982) (atari, nick 'sandy maiwald' turner) (cx2665) (prototype).bin" size="8192" crc="65a0380d" sha1="de6fc1b51d41b34dcda92f579b2aa4df8eccf586" offset="0" />
</dataarea>
@@ -6240,6 +6381,7 @@ Info from Atariage and Atarimania
<publisher>Parker Brothers</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="E0" />
+ <feature name="slot" value="a26_e0" />
<dataarea name="rom" size="8192">
<rom name="frogger ii - threeedeep! (1984) (parker brothers, mark lesser) (pb5590).bin" size="8192" crc="3ba0d9bf" sha1="6b9e591cc53844795725fc66c564f0364d1fbe40" offset="0" />
</dataarea>
@@ -6252,6 +6394,7 @@ Info from Atariage and Atarimania
<publisher>Parker Brothers</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="E0" />
+ <feature name="slot" value="a26_e0" />
<dataarea name="rom" size="8192">
<rom name="frogger ii - threeedeep! (1984) (parker brothers, mark lesser) (pb5590) (pal).bin" size="8192" crc="09cdd3ea" sha1="bce92de22fc8950f0eebb643d96fe9fa5dba2b72" offset="0" />
</dataarea>
@@ -6286,6 +6429,7 @@ Info from Atariage and Atarimania
<publisher>Coleco</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="front line (1984) (coleco, ed temple) (2665).bin" size="8192" crc="c352f290" sha1="cf32bfcd7f2c3b7d2a6ad2f298aea2dfad8242e7" offset="0" />
</dataarea>
@@ -6408,6 +6552,7 @@ Info from Atariage and Atarimania
<publisher>UA Limited</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="UA" />
+ <feature name="slot" value="a26_ua" />
<dataarea name="rom" size="8192">
<rom name="funky fish (1983) (ua limited) (prototype).bin" size="8192" crc="b53b33f1" sha1="fba461d2a2d1395945806c883f4dca925712885e" offset="0" />
</dataarea>
@@ -6464,6 +6609,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="galaxian (1983) (atari - gcc, mark ackerman, glenn parker) (cx2684).bin" size="8192" crc="4e9fe271" sha1="b081b327ac32d951c36cb4b3ff812be95685d52f" offset="0" />
</dataarea>
@@ -6476,6 +6622,7 @@ Info from Atariage and Atarimania
<publisher>CCE</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="galaxian (cce).bin" size="8192" crc="7a63690f" sha1="49e3fdc8e48605aa1fab37ce3ec0e26371822fa5" offset="0" />
</dataarea>
@@ -6488,6 +6635,7 @@ Info from Atariage and Atarimania
<publisher>Digivision</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="galaxian (digivision).bin" size="8192" crc="563eeb0f" sha1="ee0b91eec32bd737ac09e3ea1fea8434f0253114" offset="0" />
</dataarea>
@@ -6500,6 +6648,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="galaxian (1983) (atari - gcc, mark ackerman, glenn parker) (cx2684, cx2684p) (pal).bin" size="8192" crc="a27cc28e" sha1="fb3b3248d9705a883fcd79c23dc6075976c20646" offset="0" />
</dataarea>
@@ -6512,6 +6661,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="galaxian (01-05-1983) (atari - gcc, mark ackerman, glenn parker) (cx2684) (prototype).bin" size="8192" crc="c209c7f9" sha1="6fa526da7173ae77f1d35f197bde5f21c9151fbf" offset="0" />
</dataarea>
@@ -6524,6 +6674,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="galaxian (02-04-1983) (atari - gcc, mark ackerman, glenn parker) (cx2684) (prototype).bin" size="8192" crc="6542cc75" sha1="a7c9c525632a8e5c3f7acc5c9b095138a8441f57" offset="0" />
</dataarea>
@@ -6591,6 +6742,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F6" />
+ <feature name="slot" value="a26_f6" />
<dataarea name="rom" size="16384">
<rom name="garfield (garfield on the run) (06-21-1984) (atari, mimi nyden, steve woita) (cx26132) (prototype).bin" size="16384" crc="f20cadcf" sha1="bc0d1edc251d8d4db3d5234ec83dee171642a547" offset="0" />
</dataarea>
@@ -6669,6 +6821,7 @@ Info from Atariage and Atarimania
<publisher>Xonox</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="ghost manor (1983) (xonox - k-tel software - beck-tech) (6210, 06002, 06004, 99002).bin" size="8192" crc="6fc46219" sha1="4b533776dcd9d538f9206ad1e28b30116d08df1e" offset="0" />
</dataarea>
@@ -6681,6 +6834,7 @@ Info from Atariage and Atarimania
<publisher>Xonox</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="ghost manor (1983) (xonox - k-tel software - beck-tech) (6210, 06002, 06004, 99002) (pal).bin" size="8192" crc="71367efe" sha1="12d2f7e75e9107093182dfcf3fb74370b0167c42" offset="0" />
</dataarea>
@@ -6693,6 +6847,7 @@ Info from Atariage and Atarimania
<publisher>Activision</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="ghostbusters (1985) (activision, david crane, dan kitchen) (az-108-04).bin" size="8192" crc="45443d13" sha1="5ed0b2cb346d20720e3c526da331551aa16a23a4" offset="0" />
</dataarea>
@@ -6705,6 +6860,7 @@ Info from Atariage and Atarimania
<publisher>Activision</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="ghostbusters (1985) (activision, david crane, dan kitchen) (eag-108-04, eaz-108-04b) (pal).bin" size="8192" crc="439fade2" sha1="9a4f19b0eb7f3c76ea0646c6b8e098586369618c" offset="0" />
</dataarea>
@@ -6717,6 +6873,7 @@ Info from Atariage and Atarimania
<publisher>Salu</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F6" />
+ <feature name="slot" value="a26_f6" />
<dataarea name="rom" size="16384">
<rom name="ghostbusters ii (1992) (salu - avantgarde software, michael buetepage) (460741) (pal).bin" size="16384" crc="a3c342b8" sha1="e032876305647a95b622e5c4971f7096ef72acdb" offset="0" />
</dataarea>
@@ -6729,6 +6886,7 @@ Info from Atariage and Atarimania
<publisher>Salu</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F6" />
+ <feature name="slot" value="a26_f6" />
<dataarea name="rom" size="16384">
<rom name="ghostbusters ii (1992) (salu - avantgarde software, michael buetepage) (460741) (pal) [different tune].bin" size="16384" crc="34375964" sha1="1bcf03e1129015a46ad7028e0e74253653944e86" offset="0" />
</dataarea>
@@ -6917,6 +7075,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="gravitar (1983) (atari, dan hitchens) (cx2685).bin" size="8192" crc="c87fccbe" sha1="a372d4dd3d95b3866553cae2336e4565e00cc25b" offset="0" />
</dataarea>
@@ -6929,6 +7088,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="gravitar (04-12-1983) (atari, dan hitchens) (cx2685) (prototype).bin" size="8192" crc="a4cac249" sha1="acf83fcd64b326d7e2f0cd397473e44b6168c10c" offset="0" />
</dataarea>
@@ -6941,6 +7101,7 @@ Info from Atariage and Atarimania
<publisher>CCE</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="gravitar (cce).bin" size="8192" crc="5a46d197" sha1="afddeef096b770f19c829c0153dc767ec6e274be" offset="0" />
</dataarea>
@@ -6964,6 +7125,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="gremlins (gargoyle) (1984) (atari, mimi nyden, scott smith, robert vieira) (cx26127).bin" size="8192" crc="48d5991f" sha1="7a027329309e018b0d51adcb6ae13c9d13e54f4a" offset="0" />
</dataarea>
@@ -6976,6 +7138,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="gremlins (gargoyle) (03-12-1984) (atari, mimi nyden, scott smith, robert vieira) (cx26127) (prototype).bin" size="8192" crc="1ff838aa" sha1="df506a506eb333295e56cb9e4204e327ef63127d" offset="0" />
</dataarea>
@@ -6999,6 +7162,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="grover's music maker (monkey music) (kid's controller) (children's computer workshop) (01-18-1983) (atari, stephan r. keith, preston stuart) (cx26106) (prototype).bin" size="8192" crc="e1372b28" sha1="b9760ffba05139bca0fac3f7d3dc1e5d57600eda" offset="0" />
</dataarea>
@@ -7011,6 +7175,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="grover's music maker (monkey music) (kid's controller) (children's computer workshop) (12-29-1982) (atari, stephan r. keith, preston stuart) (cx26106) (prototype).bin" size="8192" crc="f9e70731" sha1="c90acaee066f97efc6a520deb7fa3e5760a471fa" offset="0" />
</dataarea>
@@ -7045,6 +7210,7 @@ Info from Atariage and Atarimania
<publisher>Parker Brothers</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="E0" />
+ <feature name="slot" value="a26_e0" />
<dataarea name="rom" size="8192">
<rom name="gyruss (1984) (parker brothers) (pb5080).bin" size="8192" crc="0d78e8a9" sha1="4bd87ba8b3b6d7850e3ea41b4d494c3b12659f27" offset="0" />
</dataarea>
@@ -7057,6 +7223,7 @@ Info from Atariage and Atarimania
<publisher>Parker Brothers</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="E0" />
+ <feature name="slot" value="a26_e0" />
<dataarea name="rom" size="8192">
<rom name="gyruss (1984) (parker brothers) (pb5080) (pal).bin" size="8192" crc="ba14b37b" sha1="598f710b7474ed6e4e7c13cc0294a4deba8faa87" offset="0" />
</dataarea>
@@ -7069,6 +7236,7 @@ Info from Atariage and Atarimania
<publisher>Activision</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="h.e.r.o. (1984) (activision, john van ryzin) (az-036-04).bin" size="8192" crc="721e95b7" sha1="282f94817401e3725c622b73a0c05685ce761783" offset="0" />
</dataarea>
@@ -7081,6 +7249,7 @@ Info from Atariage and Atarimania
<publisher>CCE</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="h.e.r.o. (cce).bin" size="8192" crc="272d3860" sha1="9e599284cdc8ad4aa803210a19c0485f1412b35f" offset="0" />
</dataarea>
@@ -7093,6 +7262,7 @@ Info from Atariage and Atarimania
<publisher>Tron</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="h.e.r.o. (tron).bin" size="8192" crc="9785fe8b" sha1="9d1f48fd30026f84f6c1c08fe69d423fa437f40f" offset="0" />
</dataarea>
@@ -7105,6 +7275,7 @@ Info from Atariage and Atarimania
<publisher>Activision</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="h.e.r.o. - helicopter-held (1984) (activision, john van ryzin - ariola) (eaz-036-04, eaz-036-04b, eaz-036-04i - 711 036-720) (pal).bin" size="8192" crc="4a5f82ba" sha1="5e4f98210ef5a6682581b60a9fc939fce6b22d97" offset="0" />
</dataarea>
@@ -7250,6 +7421,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="holey moley (honker bonker) (kid's controller) (02-29-1984) (atari, robert c. polaro) (cx26130) (prototype).bin" size="8192" crc="3bb2e71d" sha1="8196209ef7048c5494dbdc932adbf1c7abf79f4e" offset="0" />
</dataarea>
@@ -7298,6 +7470,7 @@ Info from Atariage and Atarimania
<publisher>HES</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F6" />
+ <feature name="slot" value="a26_f6" />
<dataarea name="rom" size="16384">
<rom name="hot action pak - ghostbusters, tennis, plaque attack (1990) (hes - activision) (542) (pal).bin" size="16384" crc="e6862972" sha1="1f369c7676e33a11596fac07620980b9747122d2" offset="0" />
</dataarea>
@@ -7431,6 +7604,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F6" />
+ <feature name="slot" value="a26_f6" />
<dataarea name="rom" size="16384">
<rom name="ikari warriors (1989) (atari) (cx26177).bin" size="16384" crc="5b7ce555" sha1="d8f7b908f60fe49667c7c55d48ce15a05ad95a28" offset="0" />
</dataarea>
@@ -7443,6 +7617,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F6" />
+ <feature name="slot" value="a26_f6" />
<dataarea name="rom" size="16384">
<rom name="ikari warriors (1989) (atari) (cx26177) (pal).bin" size="16384" crc="f80684a9" sha1="5ced92d13f8becd96d175b38d179e353f8c33660" offset="0" />
</dataarea>
@@ -7598,6 +7773,7 @@ Info from Atariage and Atarimania
<publisher>Sega</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="ixion (1984) (sega, jeff lorenz) (prototype).bin" size="8192" crc="b311e13f" sha1="a11538157529b42a2840f518b95af5c59143cced" offset="0" />
</dataarea>
@@ -7610,6 +7786,7 @@ Info from Atariage and Atarimania
<publisher>Parker Brothers</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="E0" />
+ <feature name="slot" value="a26_e0" />
<dataarea name="rom" size="8192">
<rom name="james bond 007 (james bond agent 007) (1983) (parker brothers, joe gaucher, louis marbel) (pb5110).bin" size="8192" crc="34d3ffc8" sha1="2bbc124cead9aa49b364268735dad8cb1eb6594f" offset="0" />
</dataarea>
@@ -7688,6 +7865,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="joust (1983) (atari - gcc, mike feinstein, kevin osborn) (cx2691).bin" size="8192" crc="a07b3304" sha1="cb94dc316cba282a0036871db2417257e960786b" offset="0" />
</dataarea>
@@ -7700,6 +7878,7 @@ Info from Atariage and Atarimania
<publisher>&lt;unknown&gt;</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="joust (1983) (atari - gcc, mike feinstein, kevin osborn) (cx2691, cx2691p) (pal).bin" size="8192" crc="d27a003f" sha1="033fa9ecad9eb4d5cfebf6505cb76a2126de6567" offset="0" />
</dataarea>
@@ -7712,6 +7891,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="joust (08-09-1983) (atari - gcc, mike feinstein, kevin osborn) (cx2691) (prototype).bin" size="8192" crc="78a4d4f4" sha1="51881d226c33cad7d429d3a56b7ee644ad053e57" offset="0" />
</dataarea>
@@ -7725,6 +7905,7 @@ Info from Atariage and Atarimania
<part name="cart" interface="a2600_cart">
<!-- SuperChip -->
<feature name="mapper" value="F6" />
+ <feature name="slot" value="a26_f6" />
<dataarea name="rom" size="16384">
<rom name="jr. pac-man (1984) (atari - gcc, ava-robin cohen) (cx26123).bin" size="16384" crc="5c345bac" sha1="cd2cf245d6e924ff2100cc93d20223c4a231e160" offset="0" />
</dataarea>
@@ -7738,6 +7919,7 @@ Info from Atariage and Atarimania
<part name="cart" interface="a2600_cart">
<!-- SuperChip -->
<feature name="mapper" value="F6" />
+ <feature name="slot" value="a26_f6" />
<dataarea name="rom" size="16384">
<rom name="jr. pac-man (1984) (atari - gcc, ava-robin cohen) (cx26123, cx26123p) (pal).bin" size="16384" crc="a1aa87dd" sha1="a343d6553fa0367f49752ff8389116cee3605451" offset="0" />
</dataarea>
@@ -7773,6 +7955,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="jungle hunt (1983) (atari - gcc, mike feinstein, john allred) (cx2688).bin" size="8192" crc="9c3e8734" sha1="83a32a2d686355438c915540cfe0bb13b76c1113" offset="0" />
</dataarea>
@@ -7785,6 +7968,7 @@ Info from Atariage and Atarimania
<publisher>CCE</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="jungle hunt (1983) (cce) (c-1007).bin" size="8192" crc="dcf3dd69" sha1="fe52af1b54e146be187e425fef229751212eeee1" offset="0" />
</dataarea>
@@ -7797,6 +7981,7 @@ Info from Atariage and Atarimania
<publisher>CCE</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="jungle hunt (1983) (cce) (c-1007) [a].bin" size="8192" crc="86ae30bb" sha1="8903aada563b4f5735274092d4e1b246f3d0f76d" offset="0" />
</dataarea>
@@ -7809,6 +7994,7 @@ Info from Atariage and Atarimania
<publisher>&lt;unknown&gt;</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="jungle hunt (1983) (atari - gcc, mike feinstein, john allred) (cx2688, cx2688p) (pal).bin" size="8192" crc="cce0a94a" sha1="b3ab5b0c1c4929dcca777fe2441f0c8aba03944f" offset="0" />
</dataarea>
@@ -7821,6 +8007,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="jungle hunt (02-03-1983) (atari - gcc, mike feinstein, john allred) (cx2688) (prototype).bin" size="8192" crc="35804e38" sha1="304b22919ce4a278fa5560a70901f0af08114e8d" offset="0" />
</dataarea>
@@ -7833,6 +8020,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="jungle hunt (02-25-1983) (atari - gcc, mike feinstein, john allred) (cx2688) (prototype).bin" size="8192" crc="a26630cf" sha1="1a911b08c48721e9280e0df07d7df4f7bfecb724" offset="0" />
</dataarea>
@@ -7900,6 +8088,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="kangaroo (1983) (atari - gcc, kevin osborn) (cx2689).bin" size="8192" crc="b9ab57e6" sha1="01fd30311e028944eafb6d14bb001035f816ced7" offset="0" />
</dataarea>
@@ -7912,6 +8101,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="kangaroo (1983) (atari - gcc, kevin osborn) (cx2689, cx2689p) (pal).bin" size="8192" crc="b3b2a251" sha1="dac53b95626b68d3686430ccfda8c1a10946bad2" offset="0" />
</dataarea>
@@ -7924,6 +8114,7 @@ Info from Atariage and Atarimania
<publisher>Zirok</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="kanguru (aka kangaroo) (1983) (zirok).bin" size="8192" crc="e81eafe8" sha1="166902bf07013ad2983c11547226d33d72740236" offset="0" />
</dataarea>
@@ -8157,6 +8348,7 @@ Info from Atariage and Atarimania
<part name="cart" interface="a2600_cart">
<!-- SuperChip -->
<feature name="mapper" value="F6" />
+ <feature name="slot" value="a26_f6" />
<dataarea name="rom" size="16384">
<rom name="klax (1990) (atari - axlon, steve defrisco) (cx26192) (pal).bin" size="16384" crc="a8aaf68b" sha1="45623a1c8fb5074de98c37f005edd5b1d0937dae" offset="0" />
</dataarea>
@@ -8170,6 +8362,7 @@ Info from Atariage and Atarimania
<part name="cart" interface="a2600_cart">
<!-- SuperChip -->
<feature name="mapper" value="F6" />
+ <feature name="slot" value="a26_f6" />
<dataarea name="rom" size="16384">
<rom name="klax (08-18-1990) (atari - axlon, steve defrisco) (cx26192) (prototype).bin" size="16384" crc="6bc47721" sha1="3162259c6dbfbb57a2ea41d849155702151ee39b" offset="0" />
</dataarea>
@@ -8183,6 +8376,7 @@ Info from Atariage and Atarimania
<part name="cart" interface="a2600_cart">
<!-- SuperChip -->
<feature name="mapper" value="F6" />
+ <feature name="slot" value="a26_f6" />
<dataarea name="rom" size="16384">
<rom name="klax (06-14-1990) (atari - axlon, steve defrisco) (cx26192) (prototype).bin" size="16384" crc="ce778afd" sha1="991089a63734a859c89eb465f3fc074e57c3ee4d" offset="0" />
</dataarea>
@@ -8228,6 +8422,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="krull (1983) (atari, jerome domurat, dave staugas) (cx2682).bin" size="8192" crc="1a67e6ed" sha1="4bdf1cf73316bdb0002606facf11b6ddcb287207" offset="0" />
</dataarea>
@@ -8240,6 +8435,7 @@ Info from Atariage and Atarimania
<publisher>CCE</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="krull (cce).bin" size="8192" crc="632e5244" sha1="07a1c1b1a2297c4edde0e16f610b5ec23c775217" offset="0" />
</dataarea>
@@ -8252,6 +8448,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="krull (05-27-1983) (atari, jerome domurat, dave staugas) (cx2682) (prototype).bin" size="8192" crc="8dcff2e8" sha1="fb7402ff554d32441ea93066288a465a1cc694b9" offset="0" />
</dataarea>
@@ -8275,6 +8472,7 @@ Info from Atariage and Atarimania
<publisher>Telegames</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="kung fu superkicks - pursuit of the ninja (aka chuck norris superkicks) (1989) (telegames) (6082 a145) (pal).bin" size="8192" crc="b3091531" sha1="061e5196af3b559766d4158a13faef04f7365cd5" offset="0" />
</dataarea>
@@ -8287,6 +8485,7 @@ Info from Atariage and Atarimania
<publisher>Activision</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="kung-fu master (1987) (activision, dan kitchen) (ag-039-04).bin" size="8192" crc="5fea6e51" sha1="3b93a34ba2a6b7db387ea588c48d939eee5d71a1" offset="0" />
</dataarea>
@@ -8299,6 +8498,7 @@ Info from Atariage and Atarimania
<publisher>CCE</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="kung fu master (cce).bin" size="8192" crc="b9215ec6" sha1="13240d0decd944f7d5d7a87a7d1b47578f489711" offset="0" />
</dataarea>
@@ -8311,6 +8511,7 @@ Info from Atariage and Atarimania
<publisher>Activision</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="kung-fu master (1987) (activision, dan kitchen) (eax-039-04b, eax-039-04i) (pal).bin" size="8192" crc="7bb76266" sha1="81abed650600ede00a00e23491b79d46a9b4f173" offset="0" />
</dataarea>
@@ -8510,6 +8711,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F6" />
+ <feature name="slot" value="a26_f6" />
<dataarea name="rom" size="16384">
<rom name="last starfighter, the (universe) (solaris beta) (1984) (atari, douglas 'solaris' neubauer) (cx26134) (prototype).bin" size="16384" crc="7e30ddc0" sha1="1ae05ee1954db2a1a586a5922b210622d8063d12" offset="0" />
</dataarea>
@@ -8577,6 +8779,7 @@ Info from Atariage and Atarimania
<publisher>Coleco</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="looping (1983) (coleco, ed temple) (2654) (prototype).bin" size="8192" crc="f9b23f09" sha1="5e04fa0320167434dab932f6b73183daf1a50ec7" offset="0" />
</dataarea>
@@ -8589,6 +8792,7 @@ Info from Atariage and Atarimania
<publisher>Parker Brothers</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="E0" />
+ <feature name="slot" value="a26_e0" />
<dataarea name="rom" size="8192">
<rom name="lord of the rings, the - journey to rivendell (the lord of the rings i) (1983) (parker brothers, mark lesser) (pb5950) (prototype).bin" size="8192" crc="59b96db3" sha1="ef02fdb94ac092247bfcd5f556e01a68c06a4832" offset="0" />
</dataarea>
@@ -8601,6 +8805,7 @@ Info from Atariage and Atarimania
<publisher>Parker Brothers</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="E0" />
+ <feature name="slot" value="a26_e0" />
<dataarea name="rom" size="8192">
<rom name="lord of the rings, the - journey to rivendell (the lord of the rings i) (1983) (parker brothers, mark lesser) (pb5950) (prototype) [a].bin" size="8192" crc="e735bb54" sha1="9010530904f78ad10a6164174cb657d1f4717337" offset="0" />
</dataarea>
@@ -8702,6 +8907,7 @@ Info from Atariage and Atarimania
<publisher>CommaVid</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="CV" />
+ <feature name="slot" value="a26_cv" />
<dataarea name="rom" size="2048">
<rom name="magicard (keyboard controller) (1981) (computer magic - commavid, john bronstein) (cm-001).bin" size="2048" crc="14f126c0" sha1="4c66b84ab0d25e46729bbcf23f985d59ca8520ad" offset="0" />
</dataarea>
@@ -8805,6 +9011,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="mario bros. (1983) (atari, dan hitchens) (cx2697).bin" size="8192" crc="8fbf7e90" sha1="49425ff154b92ca048abb4ce5e8d485c24935035" offset="0" />
</dataarea>
@@ -8817,6 +9024,7 @@ Info from Atariage and Atarimania
<publisher>CCE</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="mario's bros. (aka mario bros.) (1983) (cce) (c-1004).bin" size="8192" crc="a88ccfa1" sha1="6ae41e84534dbe0c8cffdbf013d136754f239e9f" offset="0" />
</dataarea>
@@ -8829,6 +9037,7 @@ Info from Atariage and Atarimania
<publisher>Zirok</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="mario bros. (zirok).bin" size="8192" crc="99c20f2d" sha1="6282da81472c2c95f8efc1e20e0eebade7be8cc1" offset="0" />
</dataarea>
@@ -8842,6 +9051,7 @@ Info from Atariage and Atarimania
<sharedfeat name="compatibility" value="PAL" />
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="mario bros. (1983) (atari, dan hitchens) (cx2697, cx2697p) (pal).bin" size="8192" crc="26442d60" sha1="a83f5f9a075ccfee1e7b74c8082ec2ff3d7e1f78" offset="0" />
</dataarea>
@@ -8877,6 +9087,7 @@ Info from Atariage and Atarimania
<publisher>M Network</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="E7" />
+ <feature name="slot" value="a26_e7" />
<dataarea name="rom" size="16384">
<rom name="masters of the universe - the power of he-man (1983) (m network, connie goldman, joe king, patricia lewis du long, gerald moore, mike sanders, jossef wagner - intv) (mt4319).bin" size="16384" crc="0603e177" sha1="6db8fa65755db86438ada3d90f4c39cc288dcf84" offset="0" />
</dataarea>
@@ -8993,6 +9204,7 @@ Info from Atariage and Atarimania
<sharedfeat name="compatibility" value="PAL" />
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F6" />
+ <feature name="slot" value="a26_f6" />
<dataarea name="rom" size="16384">
<rom name="mega funpak - gorf, p. patrol, pacman, skeet shoot (hes) (pal).bin" size="16384" crc="b35af763" sha1="864f5c82f055c3d21c3f10b6ee892493b36b835a" offset="0" />
</dataarea>
@@ -9005,6 +9217,7 @@ Info from Atariage and Atarimania
<publisher>Dynacom</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="DC" />
+ <feature name="slot" value="a26_dc" />
<dataarea name="rom" size="65536">
<rom name="megaboy (dynacom).bin" size="65536" crc="26914ce0" sha1="46977baf0e1ee6124b524258879c46f80d624fae" offset="0" />
</dataarea>
@@ -9133,6 +9346,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F6" />
+ <feature name="slot" value="a26_f6" />
<dataarea name="rom" size="16384">
<rom name="midnight magic (pinball wizard) (1984) (atari, glenn axworthy) (cx26129).bin" size="16384" crc="5c5447b9" sha1="7fcf95459ea597a332bf5b6f56c8f891307b45b4" offset="0" />
</dataarea>
@@ -9146,6 +9360,7 @@ Info from Atariage and Atarimania
<sharedfeat name="compatibility" value="PAL" />
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F6" />
+ <feature name="slot" value="a26_f6" />
<dataarea name="rom" size="16384">
<rom name="midnight magic (pinball wizard) (1984) (atari, glenn axworthy) (cx26129) (pal).bin" size="16384" crc="6cf038fa" sha1="dfdcbba166396faeab1ffc40f167189498dfc113" offset="0" />
</dataarea>
@@ -9170,6 +9385,7 @@ Info from Atariage and Atarimania
<part name="cart" interface="a2600_cart">
<!-- SuperChip -->
<feature name="mapper" value="F6" />
+ <feature name="slot" value="a26_f6" />
<dataarea name="rom" size="16384">
<rom name="millipede (1984) (atari, jerome domurat, andrew fuchs, dave staugas, robert vieira) (cx26118).bin" size="16384" crc="ccc82dd0" sha1="0616f0dde6d697816dda92ed9e5a4c3d77a39408" offset="0" />
</dataarea>
@@ -9183,6 +9399,7 @@ Info from Atariage and Atarimania
<part name="cart" interface="a2600_cart">
<!-- SuperChip -->
<feature name="mapper" value="f6" />
+ <feature name="slot" value="a26_f6" />
<dataarea name="rom" size="16384">
<rom name="millipede (01-04-1984) (atari, jerome domurat, andrew fuchs, dave staugas, robert vieira) (cx26118) (prototype).bin" size="16384" crc="82d88744" sha1="6be6c8c8193e43e9fd0fd37e5344848d5a42bb4f" offset="0" />
</dataarea>
@@ -9196,6 +9413,7 @@ Info from Atariage and Atarimania
<part name="cart" interface="a2600_cart">
<!-- SuperChip -->
<feature name="mapper" value="F6" />
+ <feature name="slot" value="a26_f6" />
<dataarea name="rom" size="16384">
<rom name="millipede (1984) (atari, jerome domurat, andrew fuchs, dave staugas, robert vieira) (cx26118) (prototype).bin" size="16384" crc="41332631" sha1="42e97d1ba19781187e605430fd70049f0450ef75" offset="0" />
</dataarea>
@@ -9210,6 +9428,7 @@ Info from Atariage and Atarimania
<part name="cart" interface="a2600_cart">
<!-- SuperChip -->
<feature name="mapper" value="F6" />
+ <feature name="slot" value="a26_f6" />
<dataarea name="rom" size="16384">
<rom name="millipede (1984) (atari, jerome domurat, andrew fuchs, dave staugas, robert vieira) (cx26118, cx26118p) (pal).bin" size="16384" crc="eea33418" sha1="7ba2e2c0b3b66a50692f4dece817368527e29180" offset="0" />
</dataarea>
@@ -9224,6 +9443,7 @@ Info from Atariage and Atarimania
<part name="cart" interface="a2600_cart">
<!-- SuperChip -->
<feature name="mapper" value="f6" />
+ <feature name="slot" value="a26_f6" />
<dataarea name="rom" size="16384">
<rom name="millipede (1984) (atari - gcc) (cx26118) (prototype) (pal).bin" size="16384" crc="dcb13020" sha1="06092998a30e816a97fe9e4d3f27085b913ec9f9" offset="0" />
</dataarea>
@@ -9236,6 +9456,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="mind maze (mind race) (mindlink controller) (10-10-1984) (atari, peter c. niday, howard scott warshaw) (prototype).bin" size="8192" crc="7cc6c991" sha1="3844b79dbec5ffc99eaa2c9f5fa4f0a26c08c06d" offset="0" />
</dataarea>
@@ -9248,6 +9469,7 @@ Info from Atariage and Atarimania
<publisher>Tigervision</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="3F" />
+ <feature name="slot" value="a26_3f" />
<dataarea name="rom" size="8192">
<rom name="miner 2049er - starring bounty bob (1982) (tigervision) (7-008).bin" size="8192" crc="bd08d915" sha1="0e56b48e88f69d405eabf544e57663bd180b3b1e" offset="0" />
</dataarea>
@@ -9260,6 +9482,7 @@ Info from Atariage and Atarimania
<publisher>Tigervision</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="3F" />
+ <feature name="slot" value="a26_3f" />
<dataarea name="rom" size="8192">
<rom name="miner 2049er - starring bounty bob (1982) (tigervision) (7-008) (prototype).bin" size="8192" crc="67d2837b" sha1="78606c2f3dd418e903a0760746d11714e74a55a6" offset="0" />
</dataarea>
@@ -9272,6 +9495,7 @@ Info from Atariage and Atarimania
<publisher>Tigervision</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="3F" />
+ <feature name="slot" value="a26_3f" />
<dataarea name="rom" size="8192">
<rom name="miner 2049er - starring bounty bob (1982) (tigervision - teldec) (7-008 - 3.60006 vg) (pal).bin" size="8192" crc="f9851d21" sha1="c44b2f87695440828d6844ae630d3f975b582385" offset="0" />
</dataarea>
@@ -9284,6 +9508,7 @@ Info from Atariage and Atarimania
<publisher>Tigervision</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="3F" />
+ <feature name="slot" value="a26_3f" />
<dataarea name="rom" size="8192">
<rom name="miner 2049er volume ii (1983) (tigervision) (7-011).bin" size="8192" crc="71e814e9" sha1="575faad92cb38944b9882ffb69073e0af9460aba" offset="0" />
</dataarea>
@@ -9297,6 +9522,7 @@ Info from Atariage and Atarimania
<sharedfeat name="compatibility" value="PAL" />
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="3F" />
+ <feature name="slot" value="a26_3f" />
<dataarea name="rom" size="8192">
<rom name="miner 2049er volume ii (1983) (tigervision - teldec) (7-011 - 3.60015 vg) (pal).bin" size="8192" crc="bfa477cd" sha1="5edbf8a24fcba9763983befe20e2311f61b986d4" offset="0" />
</dataarea>
@@ -9368,6 +9594,7 @@ Info from Atariage and Atarimania
<sharedfeat name="compatibility" value="PAL" />
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="miss pack man (aka ms. pac-man) (video game program) (pal).bin" size="8192" crc="b649c1dc" sha1="1e9443c7e6517f649b47e0081aaa635e271e0aef" offset="0" />
</dataarea>
@@ -9380,6 +9607,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="miss piggy's wedding (06-24-1983) (atari, suki lee) (cx26113) (prototype) (8k).bin" size="8192" crc="b1497e10" sha1="f721d1f750e19b9e1788eed5e3872923ab46a91d" offset="0" />
</dataarea>
@@ -9555,6 +9783,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="monster cise (kid's controller) (1984) (atari) (cx26131) (prototype).bin" size="8192" crc="ab0f6091" sha1="81a4d56820b1e00130e368a3532c409929aff5fb" offset="0" />
</dataarea>
@@ -9567,6 +9796,7 @@ Info from Atariage and Atarimania
<publisher>Parker Brothers</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="E0" />
+ <feature name="slot" value="a26_e0" />
<dataarea name="rom" size="8192">
<rom name="montezuma's revenge - featuring panama joe (1984) (parker brothers, robert jaeger) (pb5760).bin" size="8192" crc="e680a1c9" sha1="7dfeb1a8ec863c1e0f297113a1cc4185c215e81c" offset="0" />
</dataarea>
@@ -9579,6 +9809,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="moon patrol (1983) (atari - gcc, mark ackerman, noellie alito) (cx2692).bin" size="8192" crc="d641ef2d" sha1="dce778f397a325113f035722b7769492645d69eb" offset="0" />
</dataarea>
@@ -9591,6 +9822,7 @@ Info from Atariage and Atarimania
<publisher>CCE</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="moon patrol (1983) (cce) (c-1006).bin" size="8192" crc="82600233" sha1="ab799fcf48946d41f071fc7e2ed2512ef23b07be" offset="0" />
</dataarea>
@@ -9603,6 +9835,7 @@ Info from Atariage and Atarimania
<publisher>Intellivision</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="moon patrol (canal 3 - intellivision) (c 3004).bin" size="8192" crc="2fbab601" sha1="cc6054ffef91ab98fbef24b450a4470b598ec17e" offset="0" />
</dataarea>
@@ -9615,6 +9848,7 @@ Info from Atariage and Atarimania
<publisher>Tron</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="moon patrol (tron).bin" size="8192" crc="5f774d1d" sha1="7c14ae45ed08c59af7c1c3ee4629d4ed02f6a187" offset="0" />
</dataarea>
@@ -9628,6 +9862,7 @@ Info from Atariage and Atarimania
<sharedfeat name="compatibility" value="PAL" />
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="moon patrol (1983) (atari - gcc, mark ackerman, noellie alito) (cx2692, cx2692p) (pal).bin" size="8192" crc="373c3a82" sha1="723ef7da21660fe75d14d0f84eba5901aadbc4c2" offset="0" />
</dataarea>
@@ -9640,6 +9875,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="moon patrol (05-16-1983) (atari - gcc, mark ackerman, noellie alito) (cx2692) (prototype).bin" size="8192" crc="28467ee2" sha1="e082923c89418ce7c49a770369a73a39d2bb1583" offset="0" />
</dataarea>
@@ -9652,6 +9888,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="moon patrol (06-15-1983) (atari - gcc, mark ackerman, noellie alito) (cx2692) (prototype).bin" size="8192" crc="85361ff8" sha1="1499f3b78756e0728b9cf66df147d4263a8b61fa" offset="0" />
</dataarea>
@@ -9664,6 +9901,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="moon patrol (07-04-1983) (atari - gcc, mark ackerman, noellie alito) (cx2692) (prototype).bin" size="8192" crc="4b2ad69d" sha1="57e1f0989f8a045267b4d1cb9e599b2c155611cd" offset="0" />
</dataarea>
@@ -9676,6 +9914,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="moon patrol (07-26-1983) (atari - gcc, mark ackerman, noellie alito) (cx2692) (prototype).bin" size="8192" crc="f6536071" sha1="2286929461dc07bbdc709245011663ba65db9f14" offset="0" />
</dataarea>
@@ -9688,6 +9927,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="moon patrol (07-31-1983) (atari - gcc, mark ackerman, noellie alito) (cx2692) (prototype).bin" size="8192" crc="c9d631a0" sha1="7c0b22e8dc7a0b85ff6e67b7493684dc652d0e27" offset="0" />
</dataarea>
@@ -9700,6 +9940,7 @@ Info from Atariage and Atarimania
<publisher>Imagic</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="moonsweeper (1983) (imagic, bob smith) (720114-1a, 03207, iz-001-04).bin" size="8192" crc="450b5c57" sha1="05ab04dc30eae31b98ebf6f43fec6793a53e0a23" offset="0" />
</dataarea>
@@ -9712,6 +9953,7 @@ Info from Atariage and Atarimania
<publisher>Activision</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="moonsweeper (1988) (activision) (aiz-001).bin" size="8192" crc="bb513282" sha1="2bb48d52aa43b10cdd29a1ceb2bd0c83aefbf96a" offset="0" />
</dataarea>
@@ -9725,6 +9967,7 @@ Info from Atariage and Atarimania
<sharedfeat name="compatibility" value="PAL" />
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="moonsweeper (1983) (imagic, bob smith) (720114-2a, 13207, eiz-001-04i) (pal).bin" size="8192" crc="b72fc86a" sha1="173d7427d6ab024cc9ef75a0281a85fd4ee013dd" offset="0" />
</dataarea>
@@ -9748,6 +9991,7 @@ Info from Atariage and Atarimania
<publisher>Joystik</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="motocross (aka motocross racer) (joystik).bin" size="8192" crc="1bd58e61" sha1="d8a1eb094851ff067e0775fd39da5c0b790d8273" offset="0" />
</dataarea>
@@ -9784,6 +10028,7 @@ Info from Atariage and Atarimania
<publisher>Xonox</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="motocross racer (1983) (xonox - k-tel software, anthony r. henderson) (99008, 6240).bin" size="8192" crc="0d1bc1cb" sha1="c4d495d42ea5bd354af04e1f2b68cce0fb43175d" offset="0" />
</dataarea>
@@ -9796,6 +10041,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F6" />
+ <feature name="slot" value="a26_f6" />
<dataarea name="rom" size="16384">
<rom name="motorodeo (motor olympics, motor rodeo) (1990) (atari - axlon, steve defrisco) (cx26171).bin" size="16384" crc="89998e29" sha1="dea1506ba107b9544cd9b179f83bc61ced9101ac" offset="0" />
</dataarea>
@@ -9820,6 +10066,7 @@ Info from Atariage and Atarimania
<publisher>CBS Electronics</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="FA" />
+ <feature name="slot" value="a26_fa" />
<dataarea name="rom" size="12288">
<rom name="mountain king (1983) (cbs electronics, e.f. dreyer, ed salvo) (4l 2738 0000).bin" size="12288" crc="ed778991" sha1="0a84b0a6bd0e79f5fa0b1bb9112160cb564ab836" offset="0" />
</dataarea>
@@ -9867,6 +10114,7 @@ Info from Atariage and Atarimania
<publisher>Coleco</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="mr. do! (1983) (coleco, ed english) (2656).bin" size="8192" crc="860a47a1" sha1="e4c912199779bba25f1b9950007f14dca3d19c84" offset="0" />
</dataarea>
@@ -9880,6 +10128,7 @@ Info from Atariage and Atarimania
<sharedfeat name="compatibility" value="PAL" />
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="mr. do! (1983) (cbs electronics, ed english) (4l4478) (pal).bin" size="8192" crc="9fedc6ae" sha1="85c693ef75fb62f26f9977acf63790a00cc0cb5e" offset="0" />
</dataarea>
@@ -9892,6 +10141,7 @@ Info from Atariage and Atarimania
<publisher>Parker Brothers</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="E0" />
+ <feature name="slot" value="a26_e0" />
<dataarea name="rom" size="8192">
<rom name="mr. do!'s castle (1984) (parker brothers) (pb5820).bin" size="8192" crc="044735b9" sha1="330c2c67399e07c40f4101f9e18670fef070475e" offset="0" />
</dataarea>
@@ -9949,6 +10199,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="ms. pac-man (1982) (atari - gcc, mark ackerman, glenn parker) (cx2675).bin" size="8192" crc="b2d08fc9" sha1="62b933cdd8844bb1816ce57889203954fe782603" offset="0" />
</dataarea>
@@ -9961,6 +10212,7 @@ Info from Atariage and Atarimania
<publisher>CCE</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="ms. pac-man (cce).bin" size="8192" crc="215b16b1" sha1="63b79bd237a4f4883320c6726518f6140491cdbd" offset="0" />
</dataarea>
@@ -9974,6 +10226,7 @@ Info from Atariage and Atarimania
<sharedfeat name="compatibility" value="PAL" />
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="ms. pac-man (1982) (atari - gcc, mark ackerman, glenn parker) (cx2675, cx2675p) (pal).bin" size="8192" crc="24cbf34c" sha1="fab9f82ac3f039f787095a915ac7914af04ce7d4" offset="0" />
</dataarea>
@@ -9986,6 +10239,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="ms. pac-man (1982) (atari - gcc, mark ackerman, glenn parker) (cx2675) (prototype).bin" size="8192" crc="f0834d11" sha1="ccd4313a8643008581d303185d601ad2fdad3d51" offset="0" />
</dataarea>
@@ -10010,6 +10264,7 @@ Info from Atariage and Atarimania
<sharedfeat name="compatibility" value="PAL" />
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="my golf (1990) (hes, david lubar) (535) (pal).bin" size="8192" crc="5f5da13b" sha1="250fbd63a80f2ddc034b73de7ce60a5ad49a09c7" offset="0" />
</dataarea>
@@ -10023,6 +10278,7 @@ Info from Atariage and Atarimania
<sharedfeat name="compatibility" value="PAL" />
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="my golf (1990) (hes, david lubar) (535) (pal) [fixed].bin" size="8192" crc="0d2cbd53" sha1="b2df23b1bf6df9d253ad0705592d3fce352a837b" offset="0" />
</dataarea>
@@ -10036,6 +10292,7 @@ Info from Atariage and Atarimania
<sharedfeat name="compatibility" value="PAL" />
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="my golf (cce) (pal).bin" size="8192" crc="e9e0c511" sha1="2c2ceb9f279c8c70db43e6512bc78c6d6342c725" offset="0" />
</dataarea>
@@ -10251,6 +10508,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="obelix (1983) (atari, andrew fuchs, jeffrey gusman, dave jolly, suki lee) (cx26117).bin" size="8192" crc="29a51ea4" sha1="9155f7fa57480a12a03c6a84213cc5dc7be739b5" offset="0" />
</dataarea>
@@ -10263,6 +10521,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="obelix (1983) (atari, andrew fuchs, jeffrey gusman, dave jolly, suki lee) (cx26117) (pal).bin" size="8192" crc="a835d5c2" sha1="f5f8619035c73ef35a6fa197b39bc504e1a09b88" offset="0" />
</dataarea>
@@ -10298,6 +10557,7 @@ Info from Atariage and Atarimania
<part name="cart" interface="a2600_cart">
<!-- SuperChip -->
<feature name="mapper" value="F6" />
+ <feature name="slot" value="a26_f6" />
<dataarea name="rom" size="16384">
<rom name="off the wall (bizarre breakout, peasant king, zip 'n' zap) (1989) (atari - axlon) (cx26168).bin" size="16384" crc="a09779ea" sha1="3dcfe93399044148561586056288c6f8e5c96e2b" offset="0" />
</dataarea>
@@ -10311,6 +10571,7 @@ Info from Atariage and Atarimania
<part name="cart" interface="a2600_cart">
<!-- SuperChip -->
<feature name="mapper" value="f6" />
+ <feature name="slot" value="a26_f6" />
<dataarea name="rom" size="16384">
<rom name="off the wall (bizarre breakout, peasant king, zip 'n' zap) (1989) (atari - axlon) (cx26168) (pal).bin" size="16384" crc="182af080" sha1="9ebc01bd86faceef87432597f1fc5fb6ce088ef5" offset="0" />
</dataarea>
@@ -10378,6 +10639,7 @@ Info from Atariage and Atarimania
<publisher>CBS Electronics</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="FA" />
+ <feature name="slot" value="a26_fa" />
<dataarea name="rom" size="12288">
<rom name="omega race (booster grip) (1983) (cbs electronics) (4l 2737 0000).bin" size="12288" crc="e9876116" sha1="dcaab259e7617c7ac7d349893451896a9ca0e292" offset="0" />
</dataarea>
@@ -10412,6 +10674,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="oscar's trash race (kid's controller) (children's computer workshop) (1983) (atari, christopher h. omarzu, preston stuart, bruce williams) (cx26101).bin" size="8192" crc="34721d7b" sha1="7905709fcc85cbcfc28ca2ed543ffa737a5483ae" offset="0" />
</dataarea>
@@ -10424,6 +10687,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="oscar's trash race (kid's controller) (children's computer workshop) (1983) (atari, christopher h. omarzu, preston stuart, bruce williams) (cx26101) (pal).bin" size="8192" crc="4cc88058" sha1="98007f26356b4032a2ae4e9fddea5a38a988eb13" offset="0" />
</dataarea>
@@ -10436,6 +10700,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="oscar's trash race (kid's controller) (children's computer workshop) (03-30-1983) (atari, christopher h. omarzu, preston stuart, bruce williams) (cx26101) (prototype).bin" size="8192" crc="3b06e5b1" sha1="52028232f4f30800a2131d53fca49b05f6148868" offset="0" />
</dataarea>
@@ -10448,6 +10713,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="oscar's trash race (kid's controller) (children's computer workshop) (12-03-1982) (atari, christopher h. omarzu, preston stuart, bruce williams) (cx26101) (prototype).bin" size="8192" crc="06191c30" sha1="de79ef324d63b2bcadfc845f36b6535793a3b260" offset="0" />
</dataarea>
@@ -10704,6 +10970,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="pengo (1984) (atari, andrew fuchs, courtney granner, jeffrey gusman, mark r. hahn) (cx2690).bin" size="8192" crc="7667e739" sha1="89b991a7a251f78f422bcdf9cf7d4475fdf33e97" offset="0" />
</dataarea>
@@ -10716,6 +10983,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="pengo (1984) (atari, andrew fuchs, courtney granner, jeffrey gusman, mark r. hahn) (cx2690) (pal).bin" size="8192" crc="f99f2cfb" sha1="5e2a8ae2545091227b024e478c138b341211298b" offset="0" />
</dataarea>
@@ -10728,6 +10996,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="pengo (1983) (atari, andrew fuchs, courtney granner, jeffrey gusman, mark r. hahn) (cx2690) (prototype).bin" size="8192" crc="46b53f35" sha1="461c2ea3e4d24f86ec02215c1f4743d250796c11" offset="0" />
</dataarea>
@@ -10751,6 +11020,7 @@ Info from Atariage and Atarimania
<publisher>Absolute Entertainment</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F6" />
+ <feature name="slot" value="a26_f6" />
<dataarea name="rom" size="16384">
<rom name="pete rose baseball (1988) (absolute entertainment, alex demeo) (ag-045-04, ak-045-04).bin" size="16384" crc="d0c6fc32" sha1="19c3ad034466c0433501a415a996ed7155d6063a" offset="0" />
</dataarea>
@@ -10895,6 +11165,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="phoenix (1982) (atari - gcc, mike feinstein, john mracek) (cx2673).bin" size="8192" crc="6ae1b66c" sha1="010d51e3f522ba60f021d56819437d7c85897cdd" offset="0" />
</dataarea>
@@ -10907,6 +11178,7 @@ Info from Atariage and Atarimania
<publisher>CCE</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="phoenix (1983) (cce) (c-1012).bin" size="8192" crc="f43e6ab4" sha1="d14b17841fd2bcbf69140a9978b24820d1e0579a" offset="0" />
</dataarea>
@@ -10919,6 +11191,7 @@ Info from Atariage and Atarimania
<publisher>&lt;unknown&gt;</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="phoenix (unknown).bin" size="8192" crc="d76a8618" sha1="99d3fed58047aa61b49ef0e069f4fa76bc1be18f" offset="0" />
</dataarea>
@@ -10931,6 +11204,7 @@ Info from Atariage and Atarimania
<publisher>Zirok</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="phoenix (zirok).bin" size="8192" crc="99d5b4bf" sha1="20830d1748ad3f880eb6a4d6b307dc73fec7a01c" offset="0" />
</dataarea>
@@ -10943,6 +11217,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="phoenix (1982) (atari - gcc, mike feinstein, john mracek) (cx2673, cx2673p) (pal).bin" size="8192" crc="743cfaac" sha1="837a0f07c4ece7e64bbd088605859f7b6dade57d" offset="0" />
</dataarea>
@@ -10955,6 +11230,7 @@ Info from Atariage and Atarimania
<publisher>Ubi Soft</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F6" />
+ <feature name="slot" value="a26_f6" />
<dataarea name="rom" size="16384">
<rom name="pick 'n' pile (1990) (salu - ubi soft, dennis m. kiss) (460673) (pal).bin" size="16384" crc="cb76a9d4" sha1="a5917537cf1093aa350903d85d9e271e8a11d2cf" offset="0" />
</dataarea>
@@ -11011,6 +11287,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="pigs in space - starring miss piggy (1983) (atari, bill aspromonte, john russell, michael sierchio, robert zdybel) (cx26114).bin" size="8192" crc="27673d7c" sha1="d08b30ca2e5e351cac3bd3fb760b87a1a30aa300" offset="0" />
</dataarea>
@@ -11023,6 +11300,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="pigs in space - starring miss piggy (1983) (atari, bill aspromonte, john russell, michael sierchio, robert zdybel) (cx26114) (pal).bin" size="8192" crc="2adb9a1f" sha1="aee08324bc209f39c14658980fee06343d0d8b63" offset="0" />
</dataarea>
@@ -11035,6 +11313,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="pigs in space - starring miss piggy (1983) (atari, bill aspromonte, john russell, michael sierchio, robert zdybel) (cx26114) (prototype).bin" size="8192" crc="86a5b934" sha1="21a614365d63ff101af2f9cc9cb5f819229ec8db" offset="0" />
</dataarea>
@@ -11058,6 +11337,7 @@ Info from Atariage and Atarimania
<publisher>Activision</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="DPC" />
+ <feature name="slot" value="a26_dpc" />
<dataarea name="rom" size="10495">
<rom name="pitfall ii - lost caverns (1983) (activision, david crane) (ab-035-04).bin" size="10495" crc="097ce7ad" sha1="920cfbd517764ad3fa6a7425c031bd72dc7d927c" offset="0" />
</dataarea>
@@ -11070,6 +11350,7 @@ Info from Atariage and Atarimania
<publisher>Activision</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="DPC" />
+ <feature name="slot" value="a26_dpc" />
<dataarea name="rom" size="10495">
<rom name="pitfall ii - lost caverns (1984) (activision, david crane) (ab-035-04) [a].bin" size="10495" crc="39918cae" sha1="b307c24c4002a4a1138e44212095ba53e9463aab" offset="0" />
</dataarea>
@@ -11082,6 +11363,7 @@ Info from Atariage and Atarimania
<publisher>Activision</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="DPC" />
+ <feature name="slot" value="a26_dpc" />
<dataarea name="rom" size="10495">
<rom name="pitfall ii - lost caverns (1983) (activision, david crane - ariola) (eab-035-04 - 711 035-720) (pal).bin" size="10495" crc="f29cf61d" sha1="3ee18a1be7155900c2a01a104563657254d3a9a9" offset="0" />
</dataarea>
@@ -11381,6 +11663,7 @@ Info from Atariage and Atarimania
<publisher>UA Limited</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="UA" />
+ <feature name="slot" value="a26_ua" />
<dataarea name="rom" size="8192">
<rom name="pleiades (1983) (ua limited) (prototype).bin" size="8192" crc="35589cec" sha1="63c12146c183bccbf05c0044a961dc40790e3212" offset="0" />
</dataarea>
@@ -11404,6 +11687,7 @@ Info from Atariage and Atarimania
<publisher>Tigervision</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="3F" />
+ <feature name="slot" value="a26_3f" />
<dataarea name="rom" size="8192">
<rom name="polaris (1983) (tigervision, robert h. o'neil) (7-007).bin" size="8192" crc="25b78f89" sha1="b76ab69118b579ca0acbbb8ebe8003eed5cbcb4a" offset="0" />
</dataarea>
@@ -11416,6 +11700,7 @@ Info from Atariage and Atarimania
<publisher>Tigervision</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="3F" />
+ <feature name="slot" value="a26_3f" />
<dataarea name="rom" size="8192">
<rom name="polaris (1983) (tigervision, robert h. o'neil - teldec) (7-007 - 3.60005 vg) (pal).bin" size="8192" crc="db376663" sha1="2410931a8a18b915993b6982fbabab0f437967a4" offset="0" />
</dataarea>
@@ -11439,6 +11724,7 @@ Info from Atariage and Atarimania
<publisher>Tigervision</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="3F" />
+ <feature name="slot" value="a26_3f" />
<dataarea name="rom" size="8192">
<rom name="polaris (1983) (tigervision, robert h. o'neil) (7-007) (prototype).bin" size="8192" crc="acf49e9b" sha1="8727630ca840dd7643bfc5762a6f597194ecdda3" offset="0" />
</dataarea>
@@ -11451,6 +11737,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="pole position (realsports driving) (1983) (atari - gcc, betty ryan tylko, douglas b. macrae) (cx2694).bin" size="8192" crc="bd822518" sha1="b7122f478a343cffac17b765e9642893587e99a1" offset="0" />
</dataarea>
@@ -11463,6 +11750,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="pole position (realsports driving) (1983) (atari - gcc, betty ryan tylko, douglas b. macrae) (cx2694) [a].bin" size="8192" crc="a0eb1b3b" sha1="9d334da07352a9399cbbd9b41c6923232d0cdcd3" offset="0" />
</dataarea>
@@ -11475,6 +11763,7 @@ Info from Atariage and Atarimania
<publisher>CCE</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="pole position (1983) (cce) (c-1002).bin" size="8192" crc="7852d5b4" sha1="9afdc3b6756aaf60e4949f414037239c7a4f7fd1" offset="0" />
</dataarea>
@@ -11487,6 +11776,7 @@ Info from Atariage and Atarimania
<publisher>Tron</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="pole position (tron).bin" size="8192" crc="44567b43" sha1="e981b07a3bbce3ea187c7fd21bf4b8bea0630785" offset="0" />
</dataarea>
@@ -11499,6 +11789,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="pole position (realsports driving) (1983) (atari - gcc, betty ryan tylko, douglas b. macrae) (cx2694, cx2694p) (pal).bin" size="8192" crc="a2a5b071" sha1="bf89876abac4fa300ed6862a0ae87a6c5fe84c13" offset="0" />
</dataarea>
@@ -11511,6 +11802,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="pole position (realsports driving) (05-15-1983) (atari - gcc, betty ryan tylko, douglas b. macrae) (cx2694) (prototype).bin" size="8192" crc="d16f2a66" sha1="4665c45c83bb64289b35782c3b59afed5ec2150c" offset="0" />
</dataarea>
@@ -11578,6 +11870,7 @@ Info from Atariage and Atarimania
<publisher>Parker Brothers</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="E0" />
+ <feature name="slot" value="a26_e0" />
<dataarea name="rom" size="8192">
<rom name="popeye (1983) (parker brothers, joe gaucher) (pb5370).bin" size="8192" crc="7d287f20" sha1="1772a22df3e9a1f3842387ac63eeddff7f04b01c" offset="0" />
</dataarea>
@@ -11590,6 +11883,7 @@ Info from Atariage and Atarimania
<publisher>Parker Brothers</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="E0" />
+ <feature name="slot" value="a26_e0" />
<dataarea name="rom" size="8192">
<rom name="popeye (1983) (parker brothers, joe gaucher) (931519) (pal).bin" size="8192" crc="742ac749" sha1="fbfca822962b623c3ac5a4585c8d0404b61d8ccf" offset="0" />
</dataarea>
@@ -11602,6 +11896,7 @@ Info from Atariage and Atarimania
<publisher>20th Century Fox Video Games</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="porky's (1983) (20th century fox video games - lazer micro systems - dunhill electronic media corp., b. winston hendrickson, randy hyde, mark v. rhoads, john simonds) (11013).bin" size="8192" crc="add0b98a" sha1="70afc2cc870be546dc976fa0c6811f7e01ebc471" offset="0" />
</dataarea>
@@ -11614,6 +11909,7 @@ Info from Atariage and Atarimania
<publisher>Activision</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="pressure cooker (1983) (activision, garry kitchen) (az-032).bin" size="8192" crc="ccf597d8" sha1="8b001373be485060f88182e9a7afcf55b4d07a57" offset="0" />
</dataarea>
@@ -11626,6 +11922,7 @@ Info from Atariage and Atarimania
<publisher>CCE</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="pressure cooker (cce).bin" size="8192" crc="a0a671d9" sha1="bb4ebcb7a2528c5bebf7a9570cf3c20705307c43" offset="0" />
</dataarea>
@@ -11638,6 +11935,7 @@ Info from Atariage and Atarimania
<publisher>Activision</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="pressure cooker (1983) (activision, garry kitchen - ariola) (eaz-032 - 771 032-712) (pal).bin" size="8192" crc="50aad095" sha1="8116d0ab3585caf1da042907c2a555112d033f49" offset="0" />
</dataarea>
@@ -11650,6 +11948,7 @@ Info from Atariage and Atarimania
<publisher>Activision</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="private eye (1983) (activision, bob whitehead) (ag-034-04).bin" size="8192" crc="ea3bff1c" sha1="1ea6bea907a6b5607c76f222730f812a99cd1015" offset="0" />
</dataarea>
@@ -11662,6 +11961,7 @@ Info from Atariage and Atarimania
<publisher>&lt;unknown&gt;</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="private eye (cce).bin" size="8192" crc="a21ceceb" sha1="c4de1af8468a8110894f4b080c66dcb452eb4deb" offset="0" />
</dataarea>
@@ -11674,6 +11974,7 @@ Info from Atariage and Atarimania
<publisher>Activision</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="private eye (1983) (activision, bob whitehead) (eaz-034-04, eaz-034-04i) (pal).bin" size="8192" crc="7bdd9912" sha1="24ab03a51bdd113a9845132476045b73532224dd" offset="0" />
</dataarea>
@@ -11763,6 +12064,7 @@ Info from Atariage and Atarimania
<publisher>Parker Brothers</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="E0" />
+ <feature name="slot" value="a26_e0" />
<dataarea name="rom" size="8192">
<rom name="q-bert's qubes (1984) (parker brothers, todd marshall) (pb5550).bin" size="8192" crc="d9f499c5" sha1="a61be3702437b5d16e19c0d2cd92393515d42f23" offset="0" />
</dataarea>
@@ -11775,6 +12077,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="quadrun (1983) (atari, frank hausman, steve woita) (cx2686).bin" size="8192" crc="8d3c887b" sha1="b8d6f508edbf713e52f0cbf235d5e17add2fbf2e" offset="0" />
</dataarea>
@@ -11798,6 +12101,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="quadrun (1983) (atari, frank hausman, steve woita) (cx2686) (prototype).bin" size="8192" crc="35592d43" sha1="1e634a8733cbc50462d363562b80013343d2fac3" offset="0" />
</dataarea>
@@ -11810,6 +12114,7 @@ Info from Atariage and Atarimania
<publisher>Sunrise Software</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="quest for quintana roo (1984) (sunrise software) (1603).bin" size="8192" crc="f9f58dd3" sha1="d83c740d2968343e6401828d62f58be6aea8e858" offset="0" />
</dataarea>
@@ -11822,6 +12127,7 @@ Info from Atariage and Atarimania
<publisher>Telegames</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="quest for quintana roo (1989) (telegames) (6057 a227) (pal).bin" size="8192" crc="929c8065" sha1="6c0b91852314b293f675c889e4cf547eb9497452" offset="0" />
</dataarea>
@@ -11856,6 +12162,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="rabbit transit (08-29-1983) (atari) (prototype).bin" size="8192" crc="dd1e5638" sha1="7bf945ea667e683ec24a4ed779e88bbe55dc4b26" offset="0" />
</dataarea>
@@ -11945,6 +12252,7 @@ Info from Atariage and Atarimania
<publisher>HES</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F6" />
+ <feature name="slot" value="a26_f6" />
<dataarea name="rom" size="16384">
<rom name="rad action pak - kung-fu master, freeway, frostbite (1990) (hes - activision) (559) (pal).bin" size="16384" crc="47c8c308" sha1="f00d108e7f1c7716e8ebee9201599f82103b52ff" offset="0" />
</dataarea>
@@ -11969,6 +12277,7 @@ Info from Atariage and Atarimania
<part name="cart" interface="a2600_cart">
<!-- SuperChip -->
<feature name="mapper" value="F6" />
+ <feature name="slot" value="a26_f6" />
<dataarea name="rom" size="16384">
<rom name="radar lock (dog fight) (1989) (atari, douglas neubauer) (cx26176).bin" size="16384" crc="c29f7285" sha1="33f016c941fab01e1e2d0d7ba7930e3bcd8feaa3" offset="0" />
</dataarea>
@@ -11982,6 +12291,7 @@ Info from Atariage and Atarimania
<part name="cart" interface="a2600_cart">
<!-- SuperChip -->
<feature name="mapper" value="F6" />
+ <feature name="slot" value="a26_f6" />
<dataarea name="rom" size="16384">
<rom name="radar lock (dog fight) (1989) (atari, douglas neubauer) (cx26176) (pal).bin" size="16384" crc="d7c72da0" sha1="cb36828a2a23eaf8d736af4790ffd7e948ebbf1e" offset="0" />
</dataarea>
@@ -12005,6 +12315,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="raiders of the lost ark (1982) (atari, jerome domurat, howard scott warshaw) (cx2659).bin" size="8192" crc="e05fe273" sha1="7ae70783969709318e56f189cf03da92320a6aba" offset="0" />
</dataarea>
@@ -12017,6 +12328,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="raiders of the lost ark (1982) (atari, jerome domurat, howard scott warshaw) (cx2659) (pal).bin" size="8192" crc="61110158" sha1="66803476a70a527741a35637b99bae3b7d20d00b" offset="0" />
</dataarea>
@@ -12073,6 +12385,7 @@ Info from Atariage and Atarimania
<publisher>Activision</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F6" />
+ <feature name="slot" value="a26_f6" />
<dataarea name="rom" size="16384">
<rom name="rampage! (1989) (activision, robert c. polaro) (ak-049-04).bin" size="16384" crc="f0b446ac" sha1="7bb7df255829d5fbbee0d944915e50f89a5e7075" offset="0" />
</dataarea>
@@ -12085,6 +12398,7 @@ Info from Atariage and Atarimania
<publisher>Activision</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F6" />
+ <feature name="slot" value="a26_f6" />
<dataarea name="rom" size="16384">
<rom name="rampage! (1989) (activision, robert c. polaro) (eak-049-04b) (pal).bin" size="16384" crc="5b2c2f22" sha1="c42f6da3aa0c8b5db68dd25ac5d6aa56d59baf48" offset="0" />
</dataarea>
@@ -12119,6 +12433,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="realsports baseball (foxbat) (1982) (atari, eric manghise, joseph tung) (cx2640).bin" size="8192" crc="3c5a1b5f" sha1="ace97b89b8b6ab947434dbfd263951c6c0b349ac" offset="0" />
</dataarea>
@@ -12131,6 +12446,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="realsports baseball (foxbat) (07-09-1982) (atari, eric manghise, joseph tung) (cx2640) (prototype).bin" size="8192" crc="1257afde" sha1="3a43e03969b01559d424a5d4a7f78dc96799c037" offset="0" />
</dataarea>
@@ -12143,6 +12459,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="realsports baseball (foxbat) (1982) (atari, eric manghise, joseph tung) (cx2640) (prototype).bin" size="8192" crc="2e585d2f" sha1="e9b06b567ddf802306d5c83b89d3da802ef2e16f" offset="0" />
</dataarea>
@@ -12155,6 +12472,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="realsports basketball (1983) (atari, joe gaucher) (cx2679) (prototype) (pal).bin" size="8192" crc="364feaa6" sha1="bc2e6bdaa950bc06be040899dfeb9ad0938f4e98" offset="0" />
</dataarea>
@@ -12167,6 +12485,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F6" />
+ <feature name="slot" value="a26_f6" />
<dataarea name="rom" size="16384">
<rom name="realsports boxing (1987) (atari) (cx26135).bin" size="16384" crc="3398a1b2" sha1="22dedbfce6cc9055a6c4caec013ca80200e51971" offset="0" />
</dataarea>
@@ -12179,6 +12498,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F6" />
+ <feature name="slot" value="a26_f6" />
<dataarea name="rom" size="16384">
<rom name="realsports boxing (1987) (atari) (cx26135, cx26135p) (pal).bin" size="16384" crc="36f5b4bb" sha1="6b940d543284c6837a31eaa328ca458cc77c1a73" offset="0" />
</dataarea>
@@ -12191,6 +12511,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="realsports football (football ii) (1982) (atari, alan j. murphy, robert zdybel) (cx2668).bin" size="8192" crc="f89f64ef" sha1="200d04c1e7f41a5a3730287ed0c3f9293628f195" offset="0" />
</dataarea>
@@ -12203,6 +12524,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="realsports football (football ii) (1982) (atari, alan j. murphy, robert zdybel) (cx2668) (prototype).bin" size="8192" crc="d5e2141d" sha1="0028d8cf46c4205f665ca05ad115c1a54a85aa9f" offset="0" />
</dataarea>
@@ -12215,6 +12537,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="realsports soccer - football - realsports soccer (1983) (atari, jerome domurat, michael sierchio) (cx2667).bin" size="8192" crc="02d89819" sha1="e3d964d918b7f2c420776acd3370ec1ee62744ea" offset="0" />
</dataarea>
@@ -12228,6 +12551,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="realsports soccer - football - realsports soccer (1983) (atari, jerome domurat, michael sierchio) (cx2667) [no opening tune].bin" size="8192" crc="0cbaa09c" sha1="9c88e0dbb287d27c0e2c32f6e85d829133bbe8a3" offset="0" />
</dataarea>
@@ -12240,6 +12564,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="realsports soccer - football - realsports soccer (1983) (atari, jerome domurat, michael sierchio) (cx2667, cx2667p) (pal).bin" size="8192" crc="eb790199" sha1="f7d34f0278a7500d43252067adae529a751aed9d" offset="0" />
</dataarea>
@@ -12252,6 +12577,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="realsports soccer - football - realsports soccer (1983) (atari, jerome domurat, michael sierchio) (cx2667) (prototype).bin" size="8192" crc="94ecfbe7" sha1="d7f2e53deb3fc4d2f8d819ccf0fbfd7f510fdbee" offset="0" />
</dataarea>
@@ -12264,6 +12590,7 @@ Info from Atariage and Atarimania
<publisher>&lt;unknown&gt;</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="realsports tennis (1983) (atari - gcc) (cx2680).bin" size="8192" crc="379001a0" sha1="702c1c7d985d0d22f935265bd284d1ed50df2527" offset="0" />
</dataarea>
@@ -12276,6 +12603,7 @@ Info from Atariage and Atarimania
<publisher>&lt;unknown&gt;</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="realsports tennis (1983) (atari - gcc) (cx2680, cx2680p) (pal).bin" size="8192" crc="e4731615" sha1="0467559378cfba949be579cadaf2dead6e25a55c" offset="0" />
</dataarea>
@@ -12288,6 +12616,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="realsports tennis (1982) (atari - gcc) (cx2680) (prototype).bin" size="8192" crc="6e65c077" sha1="ddb414770376332bb96bdd8b70e5ba68c3128aa7" offset="0" />
</dataarea>
@@ -12344,6 +12673,7 @@ Info from Atariage and Atarimania
<publisher>CCE</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="resgate espacial (aka moonsweeper) (cce).bin" size="8192" crc="0c139bb8" sha1="c29a06c2950c79ede34905de5dea27b12ef1f8bf" offset="0" />
</dataarea>
@@ -12389,6 +12719,7 @@ Info from Atariage and Atarimania
<publisher>Tigervision</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="3F" />
+ <feature name="slot" value="a26_3f" />
<dataarea name="rom" size="8192">
<rom name="river patrol (1984) (tigervision) (7-004).bin" size="8192" crc="c820bd75" sha1="6715493dce54b22362741229078815b3360988ae" offset="0" />
</dataarea>
@@ -12555,6 +12886,7 @@ Info from Atariage and Atarimania
<publisher>Activision</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F6" />
+ <feature name="slot" value="a26_f6" />
<dataarea name="rom" size="16384">
<rom name="river raid ii (1988) (activision, david lubar) (ak-048-04).bin" size="16384" crc="27d2df2c" sha1="a08c3eae3368334c937a5e03329782e95f7b57c7" offset="0" />
</dataarea>
@@ -12600,6 +12932,7 @@ Info from Atariage and Atarimania
<publisher>Activision</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F6" />
+ <feature name="slot" value="a26_f6" />
<dataarea name="rom" size="16384">
<rom name="river raid ii (1988) (activision, david lubar) (eak-048-04, eak-048-04b) (pal).bin" size="16384" crc="d9759ebc" sha1="3b838681fc05276170c60e38fec1dec629cb0687" offset="0" />
</dataarea>
@@ -12634,6 +12967,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F6" />
+ <feature name="slot" value="a26_f6" />
<dataarea name="rom" size="16384">
<rom name="road runner (1989) (atari, robert c. polaro) (cx2663).bin" size="16384" crc="cb79c061" sha1="8be5f9c2a11f78ac536e598e3e3b7d37130154ec" offset="0" />
</dataarea>
@@ -12646,6 +12980,7 @@ Info from Atariage and Atarimania
<publisher>CCE</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F6" />
+ <feature name="slot" value="a26_f6" />
<dataarea name="rom" size="16384">
<rom name="road runner (cce).bin" size="16384" crc="ea58c541" sha1="e3bb8dcb02e1fca0771e6d5009d27e3a62fa0256" offset="0" />
</dataarea>
@@ -12658,6 +12993,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F6" />
+ <feature name="slot" value="a26_f6" />
<dataarea name="rom" size="16384">
<rom name="road runner (1989) (atari, robert c. polaro) (cx2663) (pal).bin" size="16384" crc="7a423931" sha1="eea478ef7ff8f579dd4d9077d325b9b6cb865470" offset="0" />
</dataarea>
@@ -12670,6 +13006,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="road runner (06-25-1984) (atari, robert c. polaro) (cx2663) (prototype).bin" size="8192" crc="2fd86554" sha1="ee6940c018b34877e172576234d3d7b408c0203a" offset="0" />
</dataarea>
@@ -12682,6 +13019,7 @@ Info from Atariage and Atarimania
<publisher>Xonox</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="robin hood (1983) (xonox - k-tel software) (99005, 6220, 6250).bin" size="8192" crc="df96102b" sha1="7f9c2321c9f22cf2cdbcf1b3f0e563a1c53f68ca" offset="0" />
</dataarea>
@@ -12694,6 +13032,7 @@ Info from Atariage and Atarimania
<publisher>Xonox</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="robin hood (1983) (xonox - k-tel software) (99005, 6220, 6250) (pal).bin" size="8192" crc="c04d402b" sha1="9807027508bb36937e14cdce10376ab087017cc0" offset="0" />
</dataarea>
@@ -12717,6 +13056,7 @@ Info from Atariage and Atarimania
<publisher>Activision</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="FE" />
+ <feature name="slot" value="a26_fe" />
<dataarea name="rom" size="8192">
<rom name="robot tank (robotank) (1983) (activision, alan miller) (az-028, ag-028-04).bin" size="8192" crc="e127c012" sha1="21a3ee57cb622f410ffd51986ab80acadb8d44b7" offset="0" />
</dataarea>
@@ -12729,6 +13069,7 @@ Info from Atariage and Atarimania
<publisher>Activision</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="FE" />
+ <feature name="slot" value="a26_fe" />
<dataarea name="rom" size="8192">
<rom name="robot tank - rebellion der roboter (robotank) (1983) (activision, alan miller - ariola) (eaz-028 - 711 028-725) (pal).bin" size="8192" crc="cded5569" sha1="413341c947157197ad4c9dd3cef7d0da7b2e9361" offset="0" />
</dataarea>
@@ -12741,6 +13082,7 @@ Info from Atariage and Atarimania
<publisher>Coleco</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="roc 'n rope (1984) (coleco, ed english) (2667).bin" size="8192" crc="9d51c969" sha1="0abf0a292d4a24df5a5ebe19a9729f3a8f883c8b" offset="0" />
</dataarea>
@@ -12753,6 +13095,7 @@ Info from Atariage and Atarimania
<publisher>CBS Electronics</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="roc 'n rope (1984) (cbs electronics, ed english) (4l1751) (pal).bin" size="8192" crc="505890ab" sha1="ec030ffa9ff574b2ad10e0cecff9af2b1f0ca254" offset="0" />
</dataarea>
@@ -12897,6 +13240,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="saboteur (sabotage) (05-20-1983) (atari, jerome domurat, howard scott warshaw) (cx26119) (prototype).bin" size="8192" crc="7403592b" sha1="2d5419bfed2ccabb09fa2522edb3a84a8ceabae2" offset="0" />
</dataarea>
@@ -12909,6 +13253,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="saboteur (sabotage) (06-09-1983) (atari, jerome domurat, howard scott warshaw) (cx26119) (prototype).bin" size="8192" crc="6ca12211" sha1="c20d42ee01bc1aef24c14b84f9b00e33b7c1bae3" offset="0" />
</dataarea>
@@ -12921,6 +13266,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="saboteur (sabotage) (06-15-1983) (atari, jerome domurat, howard scott warshaw) (cx26119) (prototype).bin" size="8192" crc="2e43af7b" sha1="3394ea0e9bd79cb6ea4f0642bd07250ecb587160" offset="0" />
</dataarea>
@@ -12933,6 +13279,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="saboteur (sabotage) (09-02-1983) (atari, jerome domurat, howard scott warshaw) (cx26119) (prototype).bin" size="8192" crc="c359c13d" sha1="85752ac6eb7045a9083425cd166609882a1c2c58" offset="0" />
</dataarea>
@@ -12945,6 +13292,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="saboteur (sabotage) (12-20-1983) (atari, jerome domurat, howard scott warshaw) (cx26119) (prototype).bin" size="8192" crc="7efe0286" sha1="90cd987ccaffb428e53ffd98563dbbe3babd2e73" offset="0" />
</dataarea>
@@ -12957,6 +13305,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F6" />
+ <feature name="slot" value="a26_f6" />
<dataarea name="rom" size="16384">
<rom name="save mary! (saving mary) (04-03-1989) (atari - axlon, tod frye) (cx26178) (prototype).bin" size="16384" crc="ef858ab2" sha1="1ddedcf4ffe4fc96a2870e11d9cca5fc73e93f59" offset="0" />
</dataarea>
@@ -12970,6 +13319,7 @@ Info from Atariage and Atarimania
<part name="cart" interface="a2600_cart">
<!-- SuperChip -->
<feature name="mapper" value="F6" />
+ <feature name="slot" value="a26_f6" />
<dataarea name="rom" size="16384">
<rom name="save mary! (saving mary) (10-24-1991) (atari - axlon, tod frye) (cx26178) (prototype) (pal).bin" size="16384" crc="eb2e801d" sha1="44357b828b3214441d702d4912a1949951d80472" offset="0" />
</dataarea>
@@ -12983,6 +13333,7 @@ Info from Atariage and Atarimania
<part name="cart" interface="a2600_cart">
<!-- SuperChip -->
<feature name="mapper" value="F6" />
+ <feature name="slot" value="a26_f6" />
<dataarea name="rom" size="16384">
<rom name="save mary! (saving mary) (11-21-1989) (atari - axlon, tod frye) (cx26178) (prototype).bin" size="16384" crc="01e18f53" sha1="ecd8ef49ae23ddd3e10ec60839b95c8e7764ea27" offset="0" />
</dataarea>
@@ -13282,6 +13633,7 @@ Info from Atariage and Atarimania
<part name="cart" interface="a2600_cart">
<!-- SuperChip -->
<feature name="mapper" value="F6" />
+ <feature name="slot" value="a26_f6" />
<dataarea name="rom" size="16384">
<rom name="secret quest (1989) (atari - axlon, steve defrisco) (cx26170).bin" size="16384" crc="93c9eb47" sha1="af11f1666d345267196a1c35223727e2ef93483a" offset="0" />
</dataarea>
@@ -13295,6 +13647,7 @@ Info from Atariage and Atarimania
<part name="cart" interface="a2600_cart">
<!-- SuperChip -->
<feature name="mapper" value="F6" />
+ <feature name="slot" value="a26_f6" />
<dataarea name="rom" size="16384">
<rom name="secret quest (1989) (atari - axlon, steve defrisco) (cx26170, cx26170p) (pal).bin" size="16384" crc="f4337a77" sha1="8439f2f829152a4bac27736102ae131eac376d0e" offset="0" />
</dataarea>
@@ -13318,6 +13671,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F6" />
+ <feature name="slot" value="a26_f6" />
<dataarea name="rom" size="16384">
<rom name="sentinel (light gun) (1990) (atari, david lubar) (cx26183).bin" size="16384" crc="d457b245" sha1="fcf5f8a7d6e59a339c2002e3d4084d87deb670fe" offset="0" />
</dataarea>
@@ -13364,6 +13718,7 @@ Info from Atariage and Atarimania
<part name="cart" interface="a2600_cart">
<!-- SuperChip -->
<feature name="mapper" value="F6" />
+ <feature name="slot" value="a26_f6" />
<dataarea name="rom" size="16384">
<rom name="shooting arcade (light gun) (09-19-1989) (atari - axlon, tod frye) (cx26169) (prototype).bin" size="16384" crc="6f6fb3d6" sha1="6e6daa34878d3e331c630359c7125a4ffba1b22d" offset="0" />
</dataarea>
@@ -13377,6 +13732,7 @@ Info from Atariage and Atarimania
<part name="cart" interface="a2600_cart">
<!-- SuperChip -->
<feature name="mapper" value="F6" />
+ <feature name="slot" value="a26_f6" />
<dataarea name="rom" size="16384">
<rom name="shooting arcade (light gun) (01-16-1990) (atari - axlon, tod frye) (cx26169) (prototype) (pal).bin" size="16384" crc="1aee6f09" sha1="f20ab57ad7ca60c566376409c8f94c9f1b4003bd" offset="0" />
</dataarea>
@@ -13400,6 +13756,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="sinistar (02-13-1984) (atari, tod frye) (cx26122) (prototype).bin" size="8192" crc="8e81a2a4" sha1="242fc23def80da96da22c2c7238d48635489abb0" offset="0" />
</dataarea>
@@ -13412,6 +13769,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="sinistar (01-23-1984) (atari, tod frye) (cx26122) (prototype).bin" size="8192" crc="da33fda7" sha1="ccd50f0e4ddfae2142e4d06bee70e6084fbc4cde" offset="0" />
</dataarea>
@@ -13424,6 +13782,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="sinistar (01-04-1984) (atari, tod frye) (cx26122) (prototype).bin" size="8192" crc="81e73728" sha1="9c01b7577ff3d4e74b91705db8d8c97ada331087" offset="0" />
</dataarea>
@@ -13436,6 +13795,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="sinistar (1984) (atari, tod frye) (cx26122) (prototype).bin" size="8192" crc="9721c332" sha1="9d342c3fb5449f887fc4e452e31ffcb0c99e83cf" offset="0" />
</dataarea>
@@ -13448,6 +13808,7 @@ Info from Atariage and Atarimania
<publisher>Xonox</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="sir lancelot (1983) (xonox - k-tel software, anthony r. henderson) (99006, 6220).bin" size="8192" crc="eb792891" sha1="fb4008b13cb9957ce5e2ce1555c7aecac9e773cc" offset="0" />
</dataarea>
@@ -13460,6 +13821,7 @@ Info from Atariage and Atarimania
<publisher>Xonox</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="sir lancelot (1983) (xonox - k-tel software, anthony r. henderson) (99006, 6220) (pal).bin" size="8192" crc="bb4d1430" sha1="cfac3bbe45af5f2027abe32c3a59d2fad29ef9b4" offset="0" />
</dataarea>
@@ -13472,6 +13834,7 @@ Info from Atariage and Atarimania
<publisher>Absolute Entertainment</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="skate boardin' (1987) (absolute entertainment, david crane) (ag-042-02, ag-042-04).bin" size="8192" crc="6ee721f7" sha1="a26fe0b5a43fe8116ab0ae6656d6b11644d871ec" offset="0" />
</dataarea>
@@ -13484,6 +13847,7 @@ Info from Atariage and Atarimania
<publisher>Absolute Entertainment</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="skate boardin' (1987) (absolute entertainment, david crane) (eaz-042-04b, eaz-042-04i) (pal).bin" size="8192" crc="28180111" sha1="24a0eb23dedc8ecc4e3b6cef642d3704824fd1ec" offset="0" />
</dataarea>
@@ -13606,6 +13970,7 @@ Info from Atariage and Atarimania
<publisher>Imagic</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="sky patrol (aerial ace) (1982) (imagic, brad stewart) (720106-1a, ia3409) (prototype).bin" size="8192" crc="a1ecdf0e" sha1="fc5f1e30db3b2469c9701dadfa95f3268fd1e4cb" offset="0" />
</dataarea>
@@ -13684,6 +14049,7 @@ Info from Atariage and Atarimania
<publisher>HES</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F6" />
+ <feature name="slot" value="a26_f6" />
<dataarea name="rom" size="16384">
<rom name="smash hit pak - frogger, boxing, seaquest, skiing, stampede (hes) (498) (pal).bin" size="16384" crc="8d3417f5" sha1="d5f7da871d8e2af6f474f05700bd62826b01d8cd" offset="0" />
</dataarea>
@@ -13696,6 +14062,7 @@ Info from Atariage and Atarimania
<publisher>Coleco</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="smurf - rescue in gargamel's castle (smurf, smurf action) (1982) (coleco, henry will iv) (2465).bin" size="8192" crc="e0624a7f" sha1="530c7883fed4c5b9d78e35d48770b56e328999a3" offset="0" />
</dataarea>
@@ -13708,6 +14075,7 @@ Info from Atariage and Atarimania
<publisher>CBS Electronics</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="smurf - schtroumpfs - pitufo (1982) (cbs electronics, henry will iv) (4l1767, 4l1768, 4l1769, 4l1770) (pal).bin" size="8192" crc="d8666b94" sha1="716ac30bf2fc998851d3ad1d69bcd8c1ca2b3a5b" offset="0" />
</dataarea>
@@ -13720,6 +14088,7 @@ Info from Atariage and Atarimania
<publisher>Coleco</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="smurfs save the day (kid vid voice module) (1983) (coleco) (2511).bin" size="8192" crc="ad89c697" sha1="c0ae3965fcfab0294f770af0af57d7d1adc17750" offset="0" />
</dataarea>
@@ -13776,6 +14145,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="snoopy and the red baron (1983) (atari, richard dobbis, nick 'sandy maiwald' turner) (cx26111).bin" size="8192" crc="d1039967" sha1="972bc0a77e76f3e4e1270ec1c2fc395e9826bc07" offset="0" />
</dataarea>
@@ -13788,6 +14158,7 @@ Info from Atariage and Atarimania
<publisher>Intellivision</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="snoopy and the red baron (canal 3 - intellivision) (c 3007).bin" size="8192" crc="5cd16af5" sha1="6163d36632a5e313bf4439ed2d3b9bf9b372da23" offset="0" />
</dataarea>
@@ -13800,6 +14171,7 @@ Info from Atariage and Atarimania
<publisher>CCE</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="snoopy and the red baron (cce).bin" size="8192" crc="576c6c44" sha1="687a0c9b90bd47d9e0562ac95636af09705198a4" offset="0" />
</dataarea>
@@ -13812,6 +14184,7 @@ Info from Atariage and Atarimania
<publisher>Digivision</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="snoopy (aka snoopy and the red baron) (digivision).bin" size="8192" crc="0ecf6fc4" sha1="8b016e23faaebb6d096abd7a6436b6d5ce9fb0bc" offset="0" />
</dataarea>
@@ -13824,6 +14197,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="snoopy and the red baron (1983) (atari, richard dobbis, nick 'sandy maiwald' turner) (cx26111) (pal).bin" size="8192" crc="82947a46" sha1="0dabf54ff855418fbce2a70badf7161d985e4fe5" offset="0" />
</dataarea>
@@ -13836,6 +14210,7 @@ Info from Atariage and Atarimania
<publisher>Century</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="snoopy (aka snoopy and the red baron) (1983) (century) (pal).bin" size="8192" crc="35310cbd" sha1="85d72072bfe2219fef912b7e2cf36d851e5efe86" offset="0" />
</dataarea>
@@ -13848,6 +14223,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="snoopy and the red baron (05-27-1983) (atari, richard dobbis, nick 'sandy maiwald' turner) (cx26111) (prototype).bin" size="8192" crc="ca0fedaa" sha1="a44b8d17b64a53d60aaca21324b540d3d11d2833" offset="0" />
</dataarea>
@@ -13860,6 +14236,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8sw" />
<dataarea name="rom" size="8192">
<rom name="snow white and the seven dwarfs (02-09-1983) (atari, greg easter, mimi nyden) (cx26107) (prototype).bin" size="8192" crc="4736c654" sha1="2c35fd54cd18e1a8b4eb26126875cb0cf8a58b19" offset="0" />
</dataarea>
@@ -13872,6 +14249,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="snow white and the seven dwarfs (11-09-1982) (atari, greg easter, mimi nyden) (cx26107) (prototype).bin" size="8192" crc="38598a9a" sha1="5c968c6dc0db6564f4ea83a543c0bd7c3efd1032" offset="0" />
</dataarea>
@@ -13895,6 +14273,7 @@ Info from Atariage and Atarimania
<publisher>CBS Electronics</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="solar fox (1983) (cbs electronics, bob curtiss) (4l 2487 5000).bin" size="8192" crc="d2ca6ce8" sha1="09ea74f14db8d21ea785d0c8209ed670e4ce88be" offset="0" />
</dataarea>
@@ -13907,6 +14286,7 @@ Info from Atariage and Atarimania
<publisher>CBS Electronics</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="solar fox (1983) (cbs electronics, bob curtiss) (4l1845, 4l1852, 4l1853, 4l1854) (pal).bin" size="8192" crc="990046f2" sha1="83c45b60ba4d175cad6d6559ecfc62f92fdd3c22" offset="0" />
</dataarea>
@@ -13941,6 +14321,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F6" />
+ <feature name="slot" value="a26_f6" />
<dataarea name="rom" size="16384">
<rom name="solaris (universe, the last starfighter) (1986) (atari, douglas neubauer) (cx26136).bin" size="16384" crc="2b87850e" sha1="33b16fbc95c2cdc52d84d98ca471f10dae3f9dbf" offset="0" />
</dataarea>
@@ -13953,6 +14334,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F6" />
+ <feature name="slot" value="a26_f6" />
<dataarea name="rom" size="16384">
<rom name="solaris (universe, the last starfighter) (1986) (atari, douglas neubauer) (cx26136) (pal).bin" size="16384" crc="b1e6acb6" sha1="260aac37ff3d6152209c24efe82669fe871a1342" offset="0" />
</dataarea>
@@ -13976,6 +14358,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="sorcerer's apprentice (1983) (atari, jerome domurat, peter c. niday, robert vieira) (cx26109).bin" size="8192" crc="e5dbfed1" sha1="ae3009e921f23254bb71f67c8cb2d7d6de2845a5" offset="0" />
</dataarea>
@@ -13988,6 +14371,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="sorcerer's apprentice (1983) (atari, jerome domurat, peter c. niday, robert vieira) (cx26109) (prototype) [a].bin" size="8192" crc="22682f1e" sha1="5df004890ce6d8af1986d3c7c2934f7aa85159b9" offset="0" />
</dataarea>
@@ -14000,6 +14384,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="sorcerer's apprentice (1983) (atari, jerome domurat, peter c. niday, robert vieira) (cx26109) (pal).bin" size="8192" crc="b8892afc" sha1="33f2c1454f28974d0e1f67ef2ce216c9cf8202c8" offset="0" />
</dataarea>
@@ -14012,6 +14397,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="sorcerer's apprentice (1983) (atari, jerome domurat, peter c. niday, robert vieira) (cx26109) (prototype).bin" size="8192" crc="efc5943f" sha1="73335561c65984d722d77b424221da7d302b241d" offset="0" />
</dataarea>
@@ -14256,6 +14642,7 @@ Info from Atariage and Atarimania
<publisher>Activision</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="space shuttle - a journey into space (1983) (activision, steve 'jessica' kitchen) (az-033, az-033-04).bin" size="8192" crc="dd210cf3" sha1="bcec5a66f8dff1a751769626b0fce305fab44ca2" offset="0" />
</dataarea>
@@ -14268,6 +14655,7 @@ Info from Atariage and Atarimania
<publisher>Activision</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="FE" />
+ <feature name="slot" value="a26_fe" />
<dataarea name="rom" size="8192">
<rom name="space shuttle - a journey into space (1983) (activision, steve 'jessica' kitchen) (az-033, az-033-04) [fe bankswitching].bin" size="8192" crc="123f2a0b" sha1="8c905ec69e8831c18addc5f72a47323cd24c17bd" offset="0" />
</dataarea>
@@ -14280,6 +14668,7 @@ Info from Atariage and Atarimania
<publisher>Activision</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="FE" />
+ <feature name="slot" value="a26_fe" />
<dataarea name="rom" size="8192">
<rom name="space shuttle - a journey into space - eine reise ins all (1983) (activision, steve 'jessica' kitchen - ariola) (eaz-033 - 711 033-725) (pal).bin" size="8192" crc="600e7c77" sha1="3e9cd06cba4d79a9bc04faf79977b01d4947f935" offset="0" />
</dataarea>
@@ -14578,6 +14967,7 @@ Info from Atariage and Atarimania
<publisher>Xonox</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="spike's peak (1983) (xonox - k-tel software - beck-tech) (6210, 7210, 06003. 99001).bin" size="8192" crc="50efea8d" sha1="205241a12778829981e9281d9c6fa137f11e1376" offset="0" />
</dataarea>
@@ -14590,6 +14980,7 @@ Info from Atariage and Atarimania
<publisher>Xonox</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="spike's peak (1983) (xonox - k-tel software - beck-tech) (6210, 7210, 06003. 99001) (pal).bin" size="8192" crc="13537536" sha1="3b9868cf925a5e5ee5ddee5f2582d5e1899dade2" offset="0" />
</dataarea>
@@ -14646,6 +15037,7 @@ Info from Atariage and Atarimania
<publisher>HES</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F6" />
+ <feature name="slot" value="a26_f6" />
<dataarea name="rom" size="16384">
<rom name="sports action pak - enduro, ice hockey, fishing derby, dragster (1988) (hes - activision) (pal).bin" size="16384" crc="cf886fa5" sha1="2988421b5d6121bce71469b8e4f37b0c4b970974" offset="0" />
</dataarea>
@@ -14658,6 +15050,7 @@ Info from Atariage and Atarimania
<publisher>Tigervision</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="3F" />
+ <feature name="slot" value="a26_3f" />
<dataarea name="rom" size="8192">
<rom name="springer (1982) (tigervision) (7-006).bin" size="8192" crc="dd183a4f" sha1="6da0aa8aa40cd9c78dc014deb9074529688d91d0" offset="0" />
</dataarea>
@@ -14670,6 +15063,7 @@ Info from Atariage and Atarimania
<publisher>Tigervision</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="3F" />
+ <feature name="slot" value="a26_3f" />
<dataarea name="rom" size="8192">
<rom name="springer (1982) (tigervision - teldec) (7-006 - 3.60008 vg) (pal).bin" size="8192" crc="3025541e" sha1="ca0dcbd92e9dbfebc5bc211d7ace0e5c7c238331" offset="0" />
</dataarea>
@@ -14683,6 +15077,7 @@ Info from Atariage and Atarimania
<part name="cart" interface="a2600_cart">
<!-- SuperChip -->
<feature name="mapper" value="F6" />
+ <feature name="slot" value="a26_f6" />
<dataarea name="rom" size="16384">
<rom name="sprint master (sprint 88, sprint 2600) (1988) (atari, robert c. polaro) (cx26155).bin" size="16384" crc="c495904e" sha1="c0e29b86fc1cc41a1c8afa37572c3c5698ae70b2" offset="0" />
</dataarea>
@@ -14696,6 +15091,7 @@ Info from Atariage and Atarimania
<part name="cart" interface="a2600_cart">
<!-- SuperChip -->
<feature name="mapper" value="F6" />
+ <feature name="slot" value="a26_f6" />
<dataarea name="rom" size="16384">
<rom name="sprint master (sprint 88, sprint 2600) (1988) (atari, robert c. polaro) (cx26155p) (pal).bin" size="16384" crc="040f0b14" sha1="dcaac1fac0fe15aaa4553c2fa02b923a6dfb6880" offset="0" />
</dataarea>
@@ -14708,6 +15104,7 @@ Info from Atariage and Atarimania
<publisher>&lt;unknown&gt;</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="spy hunter (dual control module) (1984) (sega, jeff lorenz - bally midway) (011-01, 011-02).bin" size="8192" crc="4f804e49" sha1="1d0acf064d06a026a04b6028285db78c834e9854" offset="0" />
</dataarea>
@@ -14852,6 +15249,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="star raiders (video touch pad) (1982) (atari, carla meninsky - sears) (cx2660 - 49-75187).bin" size="8192" crc="2ae193ee" sha1="e10cce1a438c82bd499e1eb31a3f07d7254198f5" offset="0" />
</dataarea>
@@ -14864,6 +15262,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="star raiders (video touch pad) (1982) (atari, carla meninsky) (cx2660) (pal).bin" size="8192" crc="ff59b8e2" sha1="7c2a2ddbdef639ed2985ce66ae717b2285a94ae0" offset="0" />
</dataarea>
@@ -14920,6 +15319,7 @@ Info from Atariage and Atarimania
<publisher>Sega</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="star trek - strategic operations simulator (1983) (sega, jeff lorenz) (004-01).bin" size="8192" crc="820ea8a2" sha1="61a3ebbffa0bfb761295c66e189b62915f4818d9" offset="0" />
</dataarea>
@@ -14932,6 +15332,7 @@ Info from Atariage and Atarimania
<publisher>Sega</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="star trek - strategic operations simulator (1983) (sega, jeff lorenz - teldec) (004-01) (pal).bin" size="8192" crc="031e509f" sha1="667a528e8cf3fd7f533cf67993f48bcc3c100e0d" offset="0" />
</dataarea>
@@ -15010,6 +15411,7 @@ Info from Atariage and Atarimania
<publisher>Parker Brothers</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="E0" />
+ <feature name="slot" value="a26_e0" />
<dataarea name="rom" size="8192">
<rom name="star wars - return of the jedi - death star battle (revenge of the jedi - game ii) (1983) (parker brothers, ray miller, todd marshall) (pb5060).bin" size="8192" crc="0886a55d" sha1="2ad9db4b5aec2da36ecc3178599b02619c3c462e" offset="0" />
</dataarea>
@@ -15022,6 +15424,7 @@ Info from Atariage and Atarimania
<publisher>Parker Brothers</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="E0" />
+ <feature name="slot" value="a26_e0" />
<dataarea name="rom" size="8192">
<rom name="star wars - return of the jedi - death star battle (revenge of the jedi - game ii) (1983) (parker brothers, ray miller, todd marshall) (931513) (pal).bin" size="8192" crc="2a2bd248" sha1="19447d7eabdecd9984be1a2ad500ba34251c458a" offset="0" />
</dataarea>
@@ -15034,6 +15437,7 @@ Info from Atariage and Atarimania
<publisher>Parker Brothers</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="E0" />
+ <feature name="slot" value="a26_e0" />
<dataarea name="rom" size="8192">
<rom name="star wars - return of the jedi - ewok adventure (revenge of the jedi - game i) (1983) (parker brothers, larry gelberg, gary goltz) (pb5065) (prototype) (pal).bin" size="8192" crc="d113f5fe" sha1="c9d201935bbe6373793241ba9c03cc02f1df31c9" offset="0" />
</dataarea>
@@ -15046,6 +15450,7 @@ Info from Atariage and Atarimania
<publisher>Parker Brothers</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="E0" />
+ <feature name="slot" value="a26_e0" />
<dataarea name="rom" size="8192">
<rom name="star wars - return of the jedi - ewok adventure (revenge of the jedi - game i) (1983) (parker brothers, larry gelberg, gary goltz) (pb5065) (prototype).bin" size="8192" crc="939550e7" sha1="b759eabf0dcb112c94b9fd66451a882130667860" offset="0" />
</dataarea>
@@ -15058,6 +15463,7 @@ Info from Atariage and Atarimania
<publisher>Parker Brothers</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="E0" />
+ <feature name="slot" value="a26_e0" />
<dataarea name="rom" size="8192">
<rom name="star wars - the arcade game (1984) (parker brothers, wilfredo 'willy' aguilar, michael becker, neil mckenzie, bob smith, brad stewart) (pb5540).bin" size="8192" crc="65c31ca4" sha1="8823fe3d8e3aeadc6b61ca51914e3b15aa13801c" offset="0" />
</dataarea>
@@ -15070,6 +15476,7 @@ Info from Atariage and Atarimania
<publisher>Parker Brothers</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="E0" />
+ <feature name="slot" value="a26_e0" />
<dataarea name="rom" size="8192">
<rom name="star wars - the arcade game (1984) (parker brothers, wilfredo 'willy' aguilar, michael becker, neil mckenzie, bob smith, brad stewart) (pb5540) (pal).bin" size="8192" crc="273bda48" sha1="914eb4529f5fa044516ba2cf5a606e847cbf0d15" offset="0" />
</dataarea>
@@ -15093,6 +15500,7 @@ Info from Atariage and Atarimania
<publisher>Parker Brothers</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="E0" />
+ <feature name="slot" value="a26_e0" />
<dataarea name="rom" size="8192">
<rom name="star wars - the arcade game (04-05-1984) (parker brothers, wilfredo 'willy' aguilar, michael becker, neil mckenzie, bob smith, brad stewart) (pb5540) (prototype) (8k).bin" size="8192" crc="47efd61d" sha1="e3c6f3dd4390fb60d88a05ef084947574d313ba5" offset="0" />
</dataarea>
@@ -15161,6 +15569,7 @@ Info from Atariage and Atarimania
<part name="cart" interface="a2600_cart">
<!-- SuperChip -->
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="stargate (1984) (atari, andrew fuchs) (cx26120).bin" size="8192" crc="cde3530e" sha1="4f87be0ef16a1d0389226d1fbda9b4c16b06e13e" offset="0" />
</dataarea>
@@ -15174,6 +15583,7 @@ Info from Atariage and Atarimania
<part name="cart" interface="a2600_cart">
<!-- SuperChip -->
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="stargate (1984) (atari, bill aspromonte, andrew fuchs) (cx26120) (pal).bin" size="8192" crc="d3f6a968" sha1="07920046ed55519797274117f2f8c8c7e530f623" offset="0" />
</dataarea>
@@ -15450,6 +15860,7 @@ Info from Atariage and Atarimania
<publisher>Imagic</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="subterranea (tarantula) (1983) (imagic, mark klein) (720112-1a, 03213).bin" size="8192" crc="2ab951f7" sha1="2abc6bbcab27985f19e42915530fd556b6b1ae23" offset="0" />
</dataarea>
@@ -15462,6 +15873,7 @@ Info from Atariage and Atarimania
<publisher>Imagic</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="subterranea (tarantula) (1983) (imagic, mark klein) (eiz-003-04i) (pal).bin" size="8192" crc="6c74afed" sha1="47a846bce53f739ec2cf5774fe09d70e755111af" offset="0" />
</dataarea>
@@ -15474,6 +15886,7 @@ Info from Atariage and Atarimania
<publisher>Epyx</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F6" />
+ <feature name="slot" value="a26_f6" />
<dataarea name="rom" size="16384">
<rom name="summer games (1987) (epyx, steven a. baker, tod frye, peter engelbrite) (80561-00250).bin" size="16384" crc="b9cd3f86" sha1="65f4a708e6af565f1f75d0fbdc8942cb149cf299" offset="0" />
</dataarea>
@@ -15486,6 +15899,7 @@ Info from Atariage and Atarimania
<publisher>Epyx</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F6" />
+ <feature name="slot" value="a26_f6" />
<dataarea name="rom" size="16384">
<rom name="summer games (1987) (epyx, steven a. baker, tod frye, peter engelbrite) (80561-00250) (pal).bin" size="16384" crc="0c3c5ba9" sha1="3b5345fa194e449b27d014cc9934b662493dc9ba" offset="0" />
</dataarea>
@@ -15498,6 +15912,7 @@ Info from Atariage and Atarimania
<publisher>HES</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F6" />
+ <feature name="slot" value="a26_f6" />
<dataarea name="rom" size="16384">
<rom name="super action pak - pitfall, barnstorming, grand prix, laser blast (1988) (hes - activision) (223) (pal).bin" size="16384" crc="f305ba47" sha1="0fd7b46d7e1c5eeea68108d0bb92ec3872ab3d56" offset="0" />
</dataarea>
@@ -15510,6 +15925,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F6" />
+ <feature name="slot" value="a26_f6" />
<dataarea name="rom" size="16384">
<rom name="super baseball (1988) (atari, joseph tung) (cx26152).bin" size="16384" crc="2245f170" sha1="b066a60ea1df1db0a55271c7608b0e19e4d18a1e" offset="0" />
</dataarea>
@@ -15522,6 +15938,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F6" />
+ <feature name="slot" value="a26_f6" />
<dataarea name="rom" size="16384">
<rom name="super baseball (1988) (atari, joseph tung) (cx26152) (pal).bin" size="16384" crc="c3704b73" sha1="4c83731258126ecc7044155d17995601109a6f69" offset="0" />
</dataarea>
@@ -15534,6 +15951,7 @@ Info from Atariage and Atarimania
<publisher>CCE</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="super baseball (aka realsports baseball) (cce).bin" size="8192" crc="bff44c80" sha1="8c8738fabdc3b42046e3c9c219f38dd5b7051952" offset="0" />
</dataarea>
@@ -15546,6 +15964,7 @@ Info from Atariage and Atarimania
<publisher>CCE</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F6" />
+ <feature name="slot" value="a26_f6" />
<dataarea name="rom" size="16384">
<rom name="super box (aka realsports boxing) (cce).bin" size="16384" crc="0b629d9b" sha1="bdc2b5517072a15f65683c662ea5344bcba8a092" offset="0" />
</dataarea>
@@ -15602,6 +16021,7 @@ Info from Atariage and Atarimania
<publisher>Arcadia Corporation ~ Starpath Corporation</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="SS" />
+ <feature name="slot" value="a26_ss" />
<dataarea name="rom" size="2048">
<rom name="starpath supercharger.bin" size="2048" crc="c3a3f073" sha1="cd9d030a59f5bdcc88f1f80a6cc9fc2cd932f7db" offset="0" />
</dataarea>
@@ -15614,6 +16034,7 @@ Info from Atariage and Atarimania
<publisher>Parker Brothers</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="E0" />
+ <feature name="slot" value="a26_e0" />
<dataarea name="rom" size="8192">
<rom name="super cobra (1982) (parker brothers, mike brodie) (pb5320).bin" size="8192" crc="de97103d" sha1="bac0a0256509f8fd1feea93d74ba4c7d82c1edc6" offset="0" />
</dataarea>
@@ -15626,6 +16047,7 @@ Info from Atariage and Atarimania
<publisher>Parker Brothers</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="E0" />
+ <feature name="slot" value="a26_e0" />
<dataarea name="rom" size="8192">
<rom name="super cobra (1982) (parker brothers, mike brodie) (931505) (pal).bin" size="8192" crc="380d78b3" sha1="3ea967933740da36f47c04b269587da134a93c34" offset="0" />
</dataarea>
@@ -15672,6 +16094,7 @@ Info from Atariage and Atarimania
<part name="cart" interface="a2600_cart">
<!-- SuperChip -->
<feature name="mapper" value="F6" />
+ <feature name="slot" value="a26_f6" />
<dataarea name="rom" size="16384">
<rom name="super football (1988) (atari, douglas neubauer) (cx26154).bin" size="16384" crc="c9b16f3c" sha1="eaca6b474fd552ab4aaf75526618828165a91934" offset="0" />
</dataarea>
@@ -15684,6 +16107,7 @@ Info from Atariage and Atarimania
<publisher>CCE</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="super futebol (aka realsports football) (cce).bin" size="8192" crc="676a7a8f" sha1="c80d497a99b2fe1e3ce6ea635f71a2337e67c3d5" offset="0" />
</dataarea>
@@ -15697,6 +16121,7 @@ Info from Atariage and Atarimania
<part name="cart" interface="a2600_cart">
<!-- SuperChip -->
<feature name="mapper" value="F6" />
+ <feature name="slot" value="a26_f6" />
<dataarea name="rom" size="16384">
<rom name="super football (1988) (atari, douglas neubauer) (cx26154, cx26154p) (pal).bin" size="16384" crc="d3004956" sha1="fa8db954eff4302ec518aaf7a477a073c1967a08" offset="0" />
</dataarea>
@@ -15709,6 +16134,7 @@ Info from Atariage and Atarimania
<publisher>CCE</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="super futebol (aka realsports soccer) (cce).bin" size="8192" crc="dd18b531" sha1="484d97e78ff832edca5382f31e084497e591cc72" offset="0" />
</dataarea>
@@ -15721,6 +16147,7 @@ Info from Atariage and Atarimania
<publisher>HES</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F6" />
+ <feature name="slot" value="a26_f6" />
<dataarea name="rom" size="16384">
<rom name="super hit pak - river raid, sky jinks, grand prix, fishing derby, checkers (hes - activision) (pal).bin" size="16384" crc="c82fec7c" sha1="c078eb24cc8c9a504089147e80586a4edb303e0e" offset="0" />
</dataarea>
@@ -15733,6 +16160,7 @@ Info from Atariage and Atarimania
<publisher>Xonox</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="super kung-fu (1983) (xonox - k-tel software) (6230, 6250) (pal).bin" size="8192" crc="2c94f6e8" sha1="50164dddbae3172bfa3a6ed2aaf3d5387ed7314d" offset="0" />
</dataarea>
@@ -15745,6 +16173,7 @@ Info from Atariage and Atarimania
<publisher>Digivision</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="super soccer (aka realsports soccer) (digivision).bin" size="8192" crc="c1f30e80" sha1="b7df23296af495bb453cefb8e92ed84e4bc45c14" offset="0" />
</dataarea>
@@ -15757,6 +16186,7 @@ Info from Atariage and Atarimania
<publisher>VGS</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="super tenis (aka realsports tennis) (vgs).bin" size="8192" crc="107de061" sha1="2541d87fa902f04ef373823561f4973ffaa34940" offset="0" />
</dataarea>
@@ -15769,6 +16199,7 @@ Info from Atariage and Atarimania
<publisher>CCE</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="super tennis (aka realsports tennis) (1983) (cce) (c-1005).bin" size="8192" crc="7070af33" sha1="bab9297ee2baf770f4649b8555e52edf579d6191" offset="0" />
</dataarea>
@@ -15781,6 +16212,7 @@ Info from Atariage and Atarimania
<publisher>Tron</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="super tennis (aka realsports tennis) (tron).bin" size="8192" crc="8203b40e" sha1="ed90365800db9467fda66462b9ac83eb04a40eab" offset="0" />
</dataarea>
@@ -15870,6 +16302,7 @@ Info from Atariage and Atarimania
<publisher>Amiga</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="surf's up (joyboard) (1983) (amiga) (3125) (prototype).bin" size="8192" crc="0cfd04d9" sha1="cf84e21ada55730d689cfac7d26e2295317222bc" offset="0" />
</dataarea>
@@ -15882,6 +16315,7 @@ Info from Atariage and Atarimania
<publisher>Amiga</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="surf's up (joyboard) (1983) (amiga) (3125) (prototype) [a].bin" size="8192" crc="f5030c8c" sha1="9c11b5b0f75b11eea116cc80f60d49e20289637b" offset="0" />
</dataarea>
@@ -15960,6 +16394,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="swordquest - earthworld (adventure i, swordquest i - earthworld) (1982) (atari, dan hitchens) (cx2656).bin" size="8192" crc="9031a479" sha1="3deb650ae26b86e250aea8f7ca6d0674e6498ebb" offset="0" />
</dataarea>
@@ -15972,6 +16407,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="swordquest - earthworld (adventure i, swordquest i - earthworld) (1982) (atari, dan hitchens) (cx2656) (pal).bin" size="8192" crc="425a9e41" sha1="d89ff9b3f548fa496c215cde4c18bc2f3ccef3ef" offset="0" />
</dataarea>
@@ -15984,6 +16420,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="swordquest - fireworld (adventure ii, swordquest ii - fireworld) (1982) (atari, tod frye) (cx2657).bin" size="8192" crc="6ae46a0c" sha1="5c3cf976edbea5ded66634a284787f965616d97e" offset="0" />
</dataarea>
@@ -15996,6 +16433,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="swordquest - fireworld (adventure ii, swordquest ii - fireworld) (1982) (atari, tod frye) (cx2657) (pal).bin" size="8192" crc="78aba21c" sha1="a6fa78edff6b7b61c7b527fe7b6978eb371081ed" offset="0" />
</dataarea>
@@ -16008,6 +16446,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="swordquest - waterworld (1983) (atari, tod frye) (cx2671).bin" size="8192" crc="ca7b4685" sha1="569fcb67ca1674b48e2f3a2e7af7077a374402de" offset="0" />
</dataarea>
@@ -16108,6 +16547,7 @@ Info from Atariage and Atarimania
<publisher>Sega</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="tapper (1984) (sega - bally midway - beck-tech) (010-01).bin" size="8192" crc="d28afb2c" sha1="e986e1818e747beb9b33ce4dff1cdc6b55bdb620" offset="0" />
</dataarea>
@@ -16164,6 +16604,7 @@ Info from Atariage and Atarimania
<publisher>American Videogame</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="tax avoiders (1982) (american videogame - dunhill electronics, darrell wagner, todd clark holm, john simonds).bin" size="8192" crc="468d734c" sha1="7aaf6be610ba6ea1205bdd5ed60838ccb8280d57" offset="0" />
</dataarea>
@@ -16176,6 +16617,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="taz (tazz) (07-15-1983) (atari, jerome domurat, steve woita) (cx2699) (prototype).bin" size="8192" crc="8e4df9d5" sha1="670b3dede2702c96494636b6d7f4ae8112501cb4" offset="0" />
</dataarea>
@@ -16188,6 +16630,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="taz (tazz) (07-13-1983) (atari, jerome domurat, steve woita) (cx2699) (prototype).bin" size="8192" crc="abbdc217" sha1="ffa79f03bb93d51ce6801d675a6221dcd0df4d61" offset="0" />
</dataarea>
@@ -16200,6 +16643,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="taz (tazz) (1983) (atari, jerome domurat, steve woita) (cx2699) (prototype).bin" size="8192" crc="dcd3e0de" sha1="0bcfd8aa6c33d601c2240850f1188407e2f47331" offset="0" />
</dataarea>
@@ -16212,6 +16656,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="taz (tazz) (1983) (atari, jerome domurat, steve woita) (cx2699) (prototype) [a].bin" size="8192" crc="e6862a1c" sha1="c85ef597d56ee08d291597ecf6808427d93059c9" offset="0" />
</dataarea>
@@ -16224,6 +16669,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="taz (tazz) (06-15-1983) (atari, jerome domurat, steve woita) (cx2699) (prototype) (pal).bin" size="8192" crc="144b44eb" sha1="2725ee79a5574243302e7a3d32de433696f597e5" offset="0" />
</dataarea>
@@ -16247,6 +16693,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="telepathy (mindlink controller) (1983) (atari, dan oliver) (prototype).bin" size="8192" crc="a0996a0d" sha1="7efc0ebe334dde84e25fa020ecde4fddcbea9e8f" offset="0" />
</dataarea>
@@ -16270,6 +16717,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="tempest (01-05-1984) (atari, carla meninsky) (cx2687) (prototype).bin" size="8192" crc="711647f6" sha1="bf4d570c1c738a4d6d00237e25c62e9c3225f98f" offset="0" />
</dataarea>
@@ -16436,6 +16884,7 @@ Info from Atariage and Atarimania
<publisher>Activision</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="FE" />
+ <feature name="slot" value="a26_fe" />
<dataarea name="rom" size="8192">
<rom name="thwocker (04-09-1984) (activision, charlie heath) (prototype).bin" size="8192" crc="b60ab310" sha1="53ee70d4b35ee3df3ffb95fa360bddb4f2f56ab2" offset="0" />
</dataarea>
@@ -16448,6 +16897,7 @@ Info from Atariage and Atarimania
<publisher>Coleco</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="time pilot (1983) (coleco, harley h. puthuff jr.) (2663).bin" size="8192" crc="21ee7db4" sha1="387358514964d0b6b55f9431576a59b55869f7ab" offset="0" />
</dataarea>
@@ -16526,6 +16976,7 @@ Info from Atariage and Atarimania
<publisher>Absolute Entertainment</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="title match pro wrestling (1987) (absolute entertainment, alex demeo) (ag-041-04).bin" size="8192" crc="ef708c03" sha1="979d9b0b0f32b40c0a0568be65a0bc5ef36ca6d0" offset="0" />
</dataarea>
@@ -16538,6 +16989,7 @@ Info from Atariage and Atarimania
<publisher>Absolute Entertainment</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="title match pro wrestling - pro wrestling (1987) (absolute entertainment, alex demeo) (eaz-041-04i) (pal).bin" size="8192" crc="a2943d1b" sha1="b5e9e207d02456e7eccf3ae9b7df60777bb3fb67" offset="0" />
</dataarea>
@@ -16572,6 +17024,7 @@ Info from Atariage and Atarimania
<publisher>Xonox</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="tomarc the barbarian (thundarr the barbarian) (1983) (99007, 6240) (xonox - k-tel software, anthony r. henderson).bin" size="8192" crc="b5b5ac84" sha1="489c9b572535721a0516a2b759e0b9c7f7a5b3cc" offset="0" />
</dataarea>
@@ -16584,6 +17037,7 @@ Info from Atariage and Atarimania
<publisher>Absolute Entertainment</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F6" />
+ <feature name="slot" value="a26_f6" />
<dataarea name="rom" size="16384">
<rom name="tomcat - the f-14 fighter simulator (1988) (absolute entertainment, dan kitchen) (ak-046-04).bin" size="16384" crc="8987c473" sha1="5b2742281fea96ab6a3a2f30e676352bcf424390" offset="0" />
</dataarea>
@@ -16596,6 +17050,7 @@ Info from Atariage and Atarimania
<publisher>DSD-Camelot</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="E0" />
+ <feature name="slot" value="a26_e0" />
<dataarea name="rom" size="8192">
<rom name="tooth protectors (1983) (dsd-camelot - johnson &amp; johnson).bin" size="8192" crc="fd8c81e5" sha1="d82ac7237df54cc8688e3074b58433a7dd6b7d11" offset="0" />
</dataarea>
@@ -16630,6 +17085,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F6" />
+ <feature name="slot" value="a26_f6" />
<dataarea name="rom" size="16384">
<rom name="track and field (los angeles 1984 games) (track &amp; field controller) (1984) (atari - gcc, jaques hugon, seth lipkin) (cx26125, cx26127).bin" size="16384" crc="21827056" sha1="005a6a53f5a856f0bdbca519af1ef236aaa1494d" offset="0" />
</dataarea>
@@ -16719,6 +17175,7 @@ Info from Atariage and Atarimania
<publisher>CBS Electronics</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="FA" />
+ <feature name="slot" value="a26_fa" />
<dataarea name="rom" size="12288">
<rom name="tunnel runner (black box) (1983) (cbs electronics, richard k. balaska jr., andy frank, stuart ross) (4l 2520 5000).bin" size="12288" crc="a02745f8" sha1="fc1a0b58765a7dcbd8e33562e1074ddd9e0ac624" offset="0" />
</dataarea>
@@ -16731,6 +17188,7 @@ Info from Atariage and Atarimania
<publisher>CBS Electronics</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="FA" />
+ <feature name="slot" value="a26_fa" />
<dataarea name="rom" size="12288">
<rom name="tunnel runner (black box) (1983) (cbs electronics, richard k. balaska jr., andy frank, stuart ross) (4l 2520 5000) (prototype).bin" size="12288" crc="bd2d975a" sha1="af202ee515b41113660bdf4500802108b12f85a3" offset="0" />
</dataarea>
@@ -16776,6 +17234,7 @@ Info from Atariage and Atarimania
<publisher>Parker Brothers</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="E0" />
+ <feature name="slot" value="a26_e0" />
<dataarea name="rom" size="8192">
<rom name="tutankham (1983) (parker brothers, dave engman, dawn stockbridge) (pb5340).bin" size="8192" crc="ec959bf2" sha1="a4d6bac854a70d2c55946932f1511cc62db7d4aa" offset="0" />
</dataarea>
@@ -16788,6 +17247,7 @@ Info from Atariage and Atarimania
<publisher>Parker Brothers</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="E0" />
+ <feature name="slot" value="a26_e0" />
<dataarea name="rom" size="8192">
<rom name="tutankham (1983) (parker brothers, dave engman, dawn stockbridge) (931509) (pal).bin" size="8192" crc="8fbe2b84" sha1="d205e4c73c64335e1878b78f970c5fb52060c7db" offset="0" />
</dataarea>
@@ -16866,6 +17326,7 @@ Info from Atariage and Atarimania
<publisher>Universal</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="unknown universal game (1983) (universal) (prototype).bin" size="8192" crc="0748817d" sha1="3da6a2cc699945f708dac4e880ff6e085c635bbd" offset="0" />
</dataarea>
@@ -16878,6 +17339,7 @@ Info from Atariage and Atarimania
<publisher>Sega</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="up 'n down (1984) (sega, phat ho - bally midway - beck-tech) (009-01).bin" size="8192" crc="c04c2b58" sha1="6bde671a50330af154ed15e73fdba3fa55f23d87" offset="0" />
</dataarea>
@@ -16890,6 +17352,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="vanguard (1982) (atari - gcc, dave payne) (cx2669).bin" size="8192" crc="c4bec521" sha1="01475d037cb7a2a892be09d67083102fa9159216" offset="0" />
</dataarea>
@@ -16902,6 +17365,7 @@ Info from Atariage and Atarimania
<publisher>CCE</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="vanguard (cce).bin" size="8192" crc="df029ac5" sha1="5e01dba1f423bb3b32b51b15fc31827d25d4f8df" offset="0" />
</dataarea>
@@ -16914,6 +17378,7 @@ Info from Atariage and Atarimania
<publisher>VGS</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="vanguard (vgs).bin" size="8192" crc="40f2636c" sha1="44920bd0599873c77ab17f36ff49e215cbf92917" offset="0" />
</dataarea>
@@ -16926,6 +17391,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="vanguard (1982) (atari - gcc, dave payne) (cx2669, cx2669p) (pal).bin" size="8192" crc="f8ca90ae" sha1="1a44918fa764da8dde97a7543a181ccf6756868b" offset="0" />
</dataarea>
@@ -16938,6 +17404,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="vanguard (1982) (atari - gcc, dave payne) (cx2669) (prototype).bin" size="8192" crc="434b17db" sha1="e41c37d2f5cca3c788f9d47a9fa642e01d35a827" offset="0" />
</dataarea>
@@ -17082,6 +17549,7 @@ Info from Atariage and Atarimania
<publisher>CommaVid</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="CV" />
+ <feature name="slot" value="a26_cv" />
<dataarea name="rom" size="2048">
<rom name="video life (1981) (commavid, john bronstein) (cm-002).bin" size="2048" crc="34b0b5c2" sha1="3b18db73933747851eba9a0ffa3c12b9f602a95c" offset="0" />
</dataarea>
@@ -17095,6 +17563,7 @@ Info from Atariage and Atarimania
<publisher>CommaVid</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="CV" />
+ <feature name="slot" value="a26_cv" />
<dataarea name="rom" size="2048">
<rom name="video life (1981) (commavid, john bronstein) (cm-002) [higher sounds].bin" size="2048" crc="bb1249a9" sha1="08c7c4ab5b25c008cc8a87fb1406b7d12df56124" offset="0" />
</dataarea>
@@ -17294,6 +17763,7 @@ Info from Atariage and Atarimania
<publisher>HES</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="wall defender (aka wall break) (hes) (pal).bin" size="8192" crc="0427d55e" sha1="009a42d71262d3267ae315a392519664cc2f24b4" offset="0" />
</dataarea>
@@ -17394,6 +17864,7 @@ Info from Atariage and Atarimania
<publisher>Imagic</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="wing war (flap) (1983) (imagic, michael greene) (eiz-002-04i) (pal).bin" size="8192" crc="cfebef9e" sha1="1ce2426a1a71ebac81709c88eb30e461b29158e2" offset="0" />
</dataarea>
@@ -17406,6 +17877,7 @@ Info from Atariage and Atarimania
<publisher>CBS Electronics</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="FA" />
+ <feature name="slot" value="a26_fa" />
<dataarea name="rom" size="12288">
<rom name="wings (10-10-1983) (cbs electronics, stuart ross) (prototype) (pal).bin" size="12288" crc="dd0aa66f" sha1="3e63feca31fb98cc46fdfe90ec69e4937f9defa6" offset="0" />
</dataarea>
@@ -17418,6 +17890,7 @@ Info from Atariage and Atarimania
<publisher>CBS Electronics</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="FA" />
+ <feature name="slot" value="a26_fa" />
<dataarea name="rom" size="12288">
<rom name="wings (06-03-1983) (cbs electronics, stuart ross) (prototype).bin" size="12288" crc="5e89b8af" sha1="419e7dd24c810afb8b8e555ed8489853b0bf05d8" offset="0" />
</dataarea>
@@ -17430,6 +17903,7 @@ Info from Atariage and Atarimania
<publisher>Epyx</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F6" />
+ <feature name="slot" value="a26_f6" />
<dataarea name="rom" size="16384">
<rom name="winter games (1987) (epyx, steven a. baker, tod frye, peter engelbrite) (80561-00251).bin" size="16384" crc="ddff6850" sha1="6850d329e8ab403bdae38850665a2eff91278e92" offset="0" />
</dataarea>
@@ -17442,6 +17916,7 @@ Info from Atariage and Atarimania
<publisher>Epyx</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F6" />
+ <feature name="slot" value="a26_f6" />
<dataarea name="rom" size="16384">
<rom name="winter games (1987) (epyx, steven a. baker, tod frye, peter engelbrite) (80561-00251) (pal).bin" size="16384" crc="964ff099" sha1="b5d3d0c0841697b940fe80eae249a884d6a889c8" offset="0" />
</dataarea>
@@ -17619,6 +18094,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F6" />
+ <feature name="slot" value="a26_f6" />
<dataarea name="rom" size="16384">
<rom name="xenophobe (1990) (atari) (cx26172).bin" size="16384" crc="f875c406" sha1="160b6e36437ad6acbc2686fbde1002e2fa88c5fb" offset="0" />
</dataarea>
@@ -17631,6 +18107,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F6" />
+ <feature name="slot" value="a26_f6" />
<dataarea name="rom" size="16384">
<rom name="xenophobe (1990) (atari) (cx26172) (pal).bin" size="16384" crc="3835c5c1" sha1="75039127cb7c53fa09d1c223729a4c5a521aedef" offset="0" />
</dataarea>
@@ -17643,6 +18120,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="xevious (08-02-1983) (atari, tod frye) (cx2695) (prototype).bin" size="8192" crc="2ef09f4a" sha1="73133b81196e5cbc1cec99eefc1223ddb8f4ca83" offset="0" />
</dataarea>
@@ -17655,6 +18133,7 @@ Info from Atariage and Atarimania
<publisher>Atari</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="xevious (05-25-1983) (atari, tod frye) (cx2695) (prototype).bin" size="8192" crc="d6867b22" sha1="fac29f21b711d31e3ffc21dfdcafef05aafabf02" offset="0" />
</dataarea>
@@ -17667,6 +18146,7 @@ Info from Atariage and Atarimania
<publisher>CCE</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="xevious (cce).bin" size="8192" crc="8bd51ecc" sha1="c4f956cc6a78f3d7b5c2fb16de58ed7cdb6c82a8" offset="0" />
</dataarea>
@@ -17736,6 +18216,7 @@ Info from Atariage and Atarimania
<publisher>Coleco</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="zaxxon (1982) (coleco) (2454).bin" size="8192" crc="265aa87f" sha1="58c2f6abc5599cd35c0e722f24bcc128ac8f9a30" offset="0" />
</dataarea>
@@ -17748,6 +18229,7 @@ Info from Atariage and Atarimania
<publisher>CBS Electronics</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F8" />
+ <feature name="slot" value="a26_f8" />
<dataarea name="rom" size="8192">
<rom name="zaxxon (1982) (cbs electronics) (4l1784, 4l1786, 4l2277) (pal).bin" size="8192" crc="e8785b76" sha1="fe5e7f026b3154a222244fe595cfebbf8a080fcb" offset="0" />
</dataarea>
@@ -17765,26 +18247,26 @@ Info from Atariage and Atarimania
</part>
</software>
- <!-- This is here as a placeholder. It's a add-on for the a2600 and is a "bios" and need to be made into a slot-device for it -->
-
- <software name="compumat" supported="no">
+ <software name="compumatp" cloneof="compumat" supported="no">
<description>CompuMate (PAL)</description>
<year>1983</year>
<publisher>Spectravideo</publisher>
<part name="cart" interface="a2600_cart">
<feature name="mapper" value="F6" />
+ <feature name="slot" value="a26_cm" />
<dataarea name="rom" size="16384">
<rom name="compumate (1983) (spectravideo - universum) (sv-010) (pal).bin" size="16384" crc="bed37e4f" sha1="d85daed1b5397a779e8832628979f5396650090d" offset="0" />
</dataarea>
</part>
</software>
- <software name="compumata" cloneof="compumat" supported="no">
- <description>Compumate</description>
+ <software name="compumat" supported="no">
+ <description>CompuMate</description>
<year>1983</year>
<publisher>Spectravideo</publisher>
<info name="serial" value="SV-010" />
<part name="cart" interface="a2600_cart">
+ <feature name="slot" value="a26_cm" />
<dataarea name="rom" size="16384">
<rom name="compumate (1983) (spectravideo) (sv-010) ~.bin" size="16384" crc="bbe1f661" sha1="1947b26419fadfc6b2c9b5d552fd3d2bd220bc61" offset="0" />
</dataarea>
diff --git a/src/emu/bus/bus.mak b/src/emu/bus/bus.mak
index 99475416480..9fa91b00075 100644
--- a/src/emu/bus/bus.mak
+++ b/src/emu/bus/bus.mak
@@ -562,18 +562,33 @@ endif
#-------------------------------------------------
#
-#@src/emu/bus/vcs/ctrl.h,BUSES += VCS
+#@src/emu/bus/vcs/vcs_slot.h,BUSES += VCS
#-------------------------------------------------
ifneq ($(filter VCS,$(BUSES)),)
OBJDIRS += $(BUSOBJ)/vcs
-BUSOBJS += $(BUSOBJ)/vcs/ctrl.o
-BUSOBJS += $(BUSOBJ)/vcs/joystick.o
-BUSOBJS += $(BUSOBJ)/vcs/joybooster.o
-BUSOBJS += $(BUSOBJ)/vcs/keypad.o
-BUSOBJS += $(BUSOBJ)/vcs/lightpen.o
-BUSOBJS += $(BUSOBJ)/vcs/paddles.o
-BUSOBJS += $(BUSOBJ)/vcs/wheel.o
+BUSOBJS += $(BUSOBJ)/vcs/vcs_slot.o
+BUSOBJS += $(BUSOBJ)/vcs/rom.o
+BUSOBJS += $(BUSOBJ)/vcs/compumat.o
+BUSOBJS += $(BUSOBJ)/vcs/dpc.o
+BUSOBJS += $(BUSOBJ)/vcs/scharger.o
+endif
+
+
+#-------------------------------------------------
+#
+#@src/emu/bus/vcs/ctrl.h,BUSES += VCS_CTRL
+#-------------------------------------------------
+
+ifneq ($(filter VCS_CTRL,$(BUSES)),)
+OBJDIRS += $(BUSOBJ)/vcs_ctrl
+BUSOBJS += $(BUSOBJ)/vcs_ctrl/ctrl.o
+BUSOBJS += $(BUSOBJ)/vcs_ctrl/joystick.o
+BUSOBJS += $(BUSOBJ)/vcs_ctrl/joybooster.o
+BUSOBJS += $(BUSOBJ)/vcs_ctrl/keypad.o
+BUSOBJS += $(BUSOBJ)/vcs_ctrl/lightpen.o
+BUSOBJS += $(BUSOBJ)/vcs_ctrl/paddles.o
+BUSOBJS += $(BUSOBJ)/vcs_ctrl/wheel.o
endif
diff --git a/src/emu/bus/vcs/compumat.c b/src/emu/bus/vcs/compumat.c
new file mode 100644
index 00000000000..fe67e120c41
--- /dev/null
+++ b/src/emu/bus/vcs/compumat.c
@@ -0,0 +1,51 @@
+/***************************************************************************
+
+ Atari 2600 cart Spectravideo Compumate (Cart + keyboard!)
+
+ This is tricky to implement and it is only a skeleton ATM.
+ The device needs to interface with both the TIA and the RIOT.
+
+***************************************************************************/
+
+
+#include "emu.h"
+#include "compumat.h"
+
+const device_type A26_ROM_COMPUMATE = &device_creator<a26_rom_cm_device>;
+
+
+a26_rom_cm_device::a26_rom_cm_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
+ : a26_rom_f6_device(mconfig, A26_ROM_COMPUMATE, "Atari 2600 ROM Cart Compumate", tag, owner, clock, "a2600_cm", __FILE__)
+{
+}
+
+//-------------------------------------------------
+// mapper specific start/reset
+//-------------------------------------------------
+
+void a26_rom_cm_device::device_start()
+{
+ save_item(NAME(m_base_bank));
+}
+
+void a26_rom_cm_device::device_reset()
+{
+ m_base_bank = 3;
+}
+
+
+static INPUT_PORTS_START( keyboard )
+INPUT_PORTS_END
+
+
+ioport_constructor a26_rom_cm_device::device_input_ports() const
+{
+ return INPUT_PORTS_NAME( keyboard );
+}
+
+
+
+READ8_MEMBER(a26_rom_cm_device::read_rom)
+{
+ return m_rom[offset + (m_base_bank * 0x1000)];
+}
diff --git a/src/emu/bus/vcs/compumat.h b/src/emu/bus/vcs/compumat.h
new file mode 100644
index 00000000000..d2d81fc83f0
--- /dev/null
+++ b/src/emu/bus/vcs/compumat.h
@@ -0,0 +1,33 @@
+#ifndef __VCS_COMPUMAT_H
+#define __VCS_COMPUMAT_H
+
+#include "rom.h"
+
+//**************************************************************************
+// TYPE DEFINITIONS
+//**************************************************************************
+
+// ======================> a26_rom_cm_device
+
+class a26_rom_cm_device : public a26_rom_f6_device
+{
+public:
+ // construction/destruction
+ a26_rom_cm_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
+
+ // device-level overrides
+ virtual void device_start();
+ virtual ioport_constructor device_input_ports() const;
+ virtual void device_reset();
+
+ // reading and writing
+ virtual DECLARE_READ8_MEMBER(read_rom);
+
+private:
+};
+
+
+// device type definition
+extern const device_type A26_ROM_COMPUMATE;
+
+#endif
diff --git a/src/emu/bus/vcs/dpc.c b/src/emu/bus/vcs/dpc.c
new file mode 100644
index 00000000000..85d8689067d
--- /dev/null
+++ b/src/emu/bus/vcs/dpc.c
@@ -0,0 +1,282 @@
+/***************************************************************************
+
+
+ Atari 2600 cart with DPC chip (Pitfall II)
+
+***************************************************************************/
+
+
+#include "emu.h"
+#include "dpc.h"
+
+
+// DPC device
+
+const device_type ATARI_DPC = &device_creator<dpc_device>;
+
+
+dpc_device::dpc_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
+ : device_t(mconfig, ATARI_DPC, "Atari DCP", tag, owner, clock, "atari_dcp", __FILE__),
+ m_displaydata(NULL)
+{
+}
+
+
+void dpc_device::device_start()
+{
+ m_oscillator = timer_alloc(TIMER_OSC);
+ m_oscillator->reset();
+}
+
+void dpc_device::device_reset()
+{
+ for (int data_fetcher = 0; data_fetcher < 8; data_fetcher++)
+ {
+ m_df[data_fetcher].osc_clk = 0;
+ m_df[data_fetcher].flag = 0;
+ m_df[data_fetcher].music_mode = 0;
+ }
+ m_oscillator->adjust(attotime::from_hz(18400), 0, attotime::from_hz(18400));
+
+}
+
+void dpc_device::check_flag(UINT8 data_fetcher)
+{
+ /* Set flag when low counter equals top */
+ if (m_df[data_fetcher].low == m_df[data_fetcher].top)
+ m_df[data_fetcher].flag = 1;
+
+ /* Reset flag when low counter equals bottom */
+ if (m_df[data_fetcher].low == m_df[data_fetcher].bottom)
+ m_df[data_fetcher].flag = 0;
+}
+
+void dpc_device::decrement_counter(UINT8 data_fetcher)
+{
+ m_df[data_fetcher].low -= 1;
+ if (m_df[data_fetcher].low == 0xff)
+ {
+ m_df[data_fetcher].high -= 1;
+ if (data_fetcher > 4 && m_df[data_fetcher].music_mode)
+ m_df[data_fetcher].low = m_df[data_fetcher].top;
+ }
+
+ check_flag(data_fetcher);
+}
+
+
+//-------------------------------------------------
+// device_timer - handler timer events
+//-------------------------------------------------
+
+void dpc_device::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr)
+{
+ if (id == TIMER_OSC)
+ {
+ // callback
+ for (int data_fetcher = 5; data_fetcher < 8; data_fetcher++)
+ {
+ if (m_df[data_fetcher].osc_clk)
+ {
+ decrement_counter(data_fetcher);
+ }
+ }
+ }
+}
+
+
+//-------------------------------------------------
+// Read / Write accesses
+//-------------------------------------------------
+
+READ8_MEMBER(dpc_device::read)
+{
+ static const UINT8 dpc_amplitude[8] = { 0x00, 0x04, 0x05, 0x09, 0x06, 0x0a, 0x0b, 0x0f };
+ UINT8 data_fetcher = offset & 0x07;
+ UINT8 data = 0xff;
+
+ //logerror("%04X: Read from DPC offset $%02X\n", machine().device<cpu_device>("maincpu")->pc(), offset);
+ if (offset < 0x08)
+ {
+ switch(offset & 0x06)
+ {
+ case 0x00: // Random number generator
+ case 0x02:
+ return m_shift_reg;
+ case 0x04: // Sound value, MOVAMT value AND'd with Draw Line Carry; with Draw Line Add
+ m_latch_62 = m_latch_64;
+ case 0x06: // Sound value, MOVAMT value AND'd with Draw Line Carry; without Draw Line Add
+ m_latch_64 = m_latch_62 + m_df[4].top;
+ m_dlc = (m_latch_62 + m_df[4].top > 0xff) ? 1 : 0;
+ data = 0;
+ if (m_df[5].music_mode && m_df[5].flag)
+ data |= 0x01;
+
+ if (m_df[6].music_mode && m_df[6].flag)
+ data |= 0x02;
+
+ if (m_df[7].music_mode && m_df[7].flag)
+ data |= 0x04;
+
+ return (m_dlc ? m_movamt & 0xf0 : 0) | dpc_amplitude[data];
+ }
+ }
+ else
+ {
+ UINT8 display_data = m_displaydata[(~((m_df[data_fetcher].low | (m_df[data_fetcher].high << 8))) & 0x7ff)];
+
+ switch (offset & 0x38)
+ {
+ case 0x08: // display data
+ data = display_data;
+ break;
+ case 0x10: // display data AND'd w/flag
+ data = m_df[data_fetcher].flag ? display_data : 0x00;
+ break;
+ case 0x18: // display data AND'd w/flag, nibbles swapped
+ data = m_df[data_fetcher].flag ? BITSWAP8(display_data,3,2,1,0,7,6,5,4) : 0x00;
+ break;
+ case 0x20: // display data AND'd w/flag, byte reversed
+ data = m_df[data_fetcher].flag ? BITSWAP8(display_data,0,1,2,3,4,5,6,7) : 0x00;
+ break;
+ case 0x28: // display data AND'd w/flag, rotated right
+ data = m_df[data_fetcher].flag ? (display_data >> 1) : 0x00;
+ break;
+ case 0x30: // display data AND'd w/flag, rotated left
+ data = m_df[data_fetcher].flag ? (display_data << 1) : 0x00;
+ break;
+ case 0x38: // flag
+ data = m_df[data_fetcher].flag ? 0xff : 0x00;
+ break;
+ }
+
+ if (data_fetcher < 5 || !m_df[data_fetcher].osc_clk)
+ {
+ decrement_counter(data_fetcher);
+ }
+ }
+ return data;
+}
+
+WRITE8_MEMBER(dpc_device::write)
+{
+ UINT8 data_fetcher = offset & 0x07;
+
+ switch (offset & 0x38)
+ {
+ case 0x00: // Top count
+ m_df[data_fetcher].top = data;
+ m_df[data_fetcher].flag = 0;
+ check_flag(data_fetcher);
+ break;
+ case 0x08: // Bottom count
+ m_df[data_fetcher].bottom = data;
+ check_flag(data_fetcher);
+ break;
+ case 0x10: // Counter low
+ m_df[data_fetcher].low = data;
+ if (data_fetcher == 4)
+ m_latch_64 = data;
+
+ if (data_fetcher > 4 && m_df[data_fetcher].music_mode)
+ m_df[data_fetcher].low = m_df[data_fetcher].top;
+
+ check_flag(data_fetcher);
+ break;
+ case 0x18: // Counter high
+ m_df[data_fetcher].high = data;
+ m_df[data_fetcher].music_mode = data & 0x10;
+ m_df[data_fetcher].osc_clk = data & 0x20;
+ if (data_fetcher > 4 && m_df[data_fetcher].music_mode && m_df[data_fetcher].low == 0xff)
+ {
+ m_df[data_fetcher].low = m_df[data_fetcher].top;
+ check_flag(data_fetcher);
+ }
+ break;
+ case 0x20: // Draw line movement value / MOVAMT
+ m_movamt = data;
+ break;
+ case 0x28: // Not used
+ logerror("%04X: Write to unused DPC register $%02X, data $%02X\n", machine().device<cpu_device>("maincpu")->pc(), offset, data);
+ break;
+ case 0x30: // Random number generator reset
+ m_shift_reg = 0;
+ break;
+ case 0x38: // Not used
+ logerror("%04X: Write to unused DPC register $%02X, data $%02X\n", machine().device<cpu_device>("maincpu")->pc(), offset, data);
+ break;
+ }
+}
+
+
+
+// cart device
+
+const device_type A26_ROM_DPC = &device_creator<a26_rom_dpc_device>;
+
+
+a26_rom_dpc_device::a26_rom_dpc_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
+ : a26_rom_f8_device(mconfig, A26_ROM_DPC, "Atari 2600 ROM Cart Pitfall II", tag, owner, clock, "a2600_dcp", __FILE__),
+ m_dpc(*this, "dpc")
+{
+}
+
+//-------------------------------------------------
+// mapper specific start/reset
+//-------------------------------------------------
+
+void a26_rom_dpc_device::device_start()
+{
+ save_item(NAME(m_base_bank));
+}
+
+void a26_rom_dpc_device::device_reset()
+{
+ m_base_bank = 0;
+}
+
+void a26_rom_dpc_device::setup_addon_ptr(UINT8 *ptr)
+{
+ m_dpc->set_display_data(ptr);
+}
+
+
+static MACHINE_CONFIG_FRAGMENT( a26_dpc )
+ MCFG_DEVICE_ADD("dpc", ATARI_DPC, 0)
+MACHINE_CONFIG_END
+
+machine_config_constructor a26_rom_dpc_device::device_mconfig_additions() const
+{
+ return MACHINE_CONFIG_NAME( a26_dpc );
+}
+
+
+READ8_MEMBER(a26_rom_dpc_device::read_rom)
+{
+ if (offset < 0x40)
+ return m_dpc->read(space, offset);
+ else
+ return a26_rom_f8_device::read_rom(space, offset);
+}
+
+WRITE8_MEMBER(a26_rom_dpc_device::write_bank)
+{
+ if (offset >= 0x40 && offset < 0x80)
+ m_dpc->write(space, offset, data);
+ else
+ a26_rom_f8_device::write_bank(space, offset, data);
+}
+
+DIRECT_UPDATE_MEMBER(a26_rom_dpc_device::cart_opbase)
+{
+ if (!direct.space().debugger_access())
+ {
+ UINT8 new_bit;
+ new_bit = (m_dpc->m_shift_reg & 0x80) ^ ((m_dpc->m_shift_reg & 0x20) << 2);
+ new_bit = new_bit ^ (((m_dpc->m_shift_reg & 0x10) << 3) ^ ((m_dpc->m_shift_reg & 0x08) << 4));
+ new_bit = new_bit ^ 0x80;
+ m_dpc->m_shift_reg = new_bit | (m_dpc->m_shift_reg >> 1);
+ }
+ return address;
+}
+
diff --git a/src/emu/bus/vcs/dpc.h b/src/emu/bus/vcs/dpc.h
new file mode 100644
index 00000000000..8cf12d893eb
--- /dev/null
+++ b/src/emu/bus/vcs/dpc.h
@@ -0,0 +1,93 @@
+#ifndef __VCS_DCP_H
+#define __VCS_DCP_H
+
+#include "rom.h"
+
+//**************************************************************************
+// TYPE DEFINITIONS
+//**************************************************************************
+
+// TO DO: DPC should be made a separate device!
+
+struct df_t {
+ UINT8 top;
+ UINT8 bottom;
+ UINT8 low;
+ UINT8 high;
+ UINT8 flag;
+ UINT8 music_mode; /* Only used by data fetchers 5,6, and 7 */
+ UINT8 osc_clk; /* Only used by data fetchers 5,6, and 7 */
+};
+
+// m_dpc.oscillator = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(a2600_state::modeDPC_timer_callback),this));
+
+class dpc_device : public device_t
+{
+public:
+ // construction/destruction
+ dpc_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
+
+ df_t m_df[8];
+ UINT8 m_movamt;
+ UINT8 m_latch_62;
+ UINT8 m_latch_64;
+ UINT8 m_dlc;
+ UINT8 m_shift_reg;
+ UINT8 *m_displaydata;
+ void set_display_data(UINT8 *data) { m_displaydata = data; }
+
+ virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr);
+
+ // device-level overrides
+ virtual void device_start();
+ virtual void device_reset();
+
+ virtual DECLARE_READ8_MEMBER(read);
+ virtual DECLARE_WRITE8_MEMBER(write);
+
+private:
+
+ void decrement_counter(UINT8 data_fetcher);
+ void check_flag(UINT8 data_fetcher);
+
+ static const device_timer_id TIMER_OSC = 0;
+ emu_timer *m_oscillator;
+};
+
+
+// device type definition
+extern const device_type ATARI_DPC;
+
+
+
+// ======================> a26_rom_dpc_device
+
+class a26_rom_dpc_device : public a26_rom_f8_device
+{
+public:
+ // construction/destruction
+ a26_rom_dpc_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
+
+ // device-level overrides
+ virtual void device_start();
+ virtual machine_config_constructor device_mconfig_additions() const;
+ virtual void device_reset();
+
+ required_device<dpc_device> m_dpc;
+
+ // reading and writing
+ virtual DECLARE_READ8_MEMBER(read_rom);
+ virtual DECLARE_WRITE8_MEMBER(write_bank);
+ virtual DECLARE_DIRECT_UPDATE_MEMBER(cart_opbase);
+
+ virtual void setup_addon_ptr(UINT8 *ptr);
+
+protected:
+// int m_reset_bank;
+};
+
+
+// device type definition
+extern const device_type A26_ROM_DPC;
+
+#endif
diff --git a/src/emu/bus/vcs/rom.c b/src/emu/bus/vcs/rom.c
new file mode 100755
index 00000000000..2953f705e2c
--- /dev/null
+++ b/src/emu/bus/vcs/rom.c
@@ -0,0 +1,1054 @@
+/***********************************************************************************************************
+
+ A2600 VCS ROM cart emulation
+ Simple cart hardware with no additional hw
+
+ Mapper implementation based on the wonderful docs by Kevtris
+ http://blog.kevtris.org/blogfiles/Atari%202600%20Mappers.txt
+
+ (also inspired by previous work by Wilbert Pol et al.)
+
+ ***********************************************************************************************************/
+
+
+#include "emu.h"
+#include "rom.h"
+
+
+//-------------------------------------------------
+// a26_rom_*k_device - constructor
+//-------------------------------------------------
+
+const device_type A26_ROM_2K = &device_creator<a26_rom_2k_device>;
+const device_type A26_ROM_4K = &device_creator<a26_rom_4k_device>;
+const device_type A26_ROM_F4 = &device_creator<a26_rom_f4_device>;
+const device_type A26_ROM_F6 = &device_creator<a26_rom_f6_device>;
+const device_type A26_ROM_F8 = &device_creator<a26_rom_f8_device>;
+const device_type A26_ROM_F8_SW = &device_creator<a26_rom_f8_sw_device>;
+const device_type A26_ROM_FA = &device_creator<a26_rom_fa_device>;
+const device_type A26_ROM_FE = &device_creator<a26_rom_fe_device>;
+const device_type A26_ROM_3E = &device_creator<a26_rom_3e_device>;
+const device_type A26_ROM_3F = &device_creator<a26_rom_3f_device>;
+const device_type A26_ROM_E0 = &device_creator<a26_rom_e0_device>;
+const device_type A26_ROM_E7 = &device_creator<a26_rom_e7_device>;
+const device_type A26_ROM_UA = &device_creator<a26_rom_ua_device>;
+const device_type A26_ROM_CV = &device_creator<a26_rom_cv_device>;
+const device_type A26_ROM_DC = &device_creator<a26_rom_dc_device>;
+const device_type A26_ROM_FV = &device_creator<a26_rom_fv_device>;
+const device_type A26_ROM_JVP = &device_creator<a26_rom_jvp_device>;
+const device_type A26_ROM_4IN1 = &device_creator<a26_rom_4in1_device>;
+const device_type A26_ROM_8IN1 = &device_creator<a26_rom_8in1_device>;
+const device_type A26_ROM_32IN1 = &device_creator<a26_rom_32in1_device>;
+
+
+a26_rom_2k_device::a26_rom_2k_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_vcs_cart_interface( mconfig, *this )
+{
+}
+
+a26_rom_2k_device::a26_rom_2k_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
+ : device_t(mconfig, A26_ROM_2K, "Atari VCS 2600 2K ROM Carts", tag, owner, clock, "vcs_2k", __FILE__),
+ device_vcs_cart_interface( mconfig, *this )
+{
+}
+
+
+a26_rom_4k_device::a26_rom_4k_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
+ : a26_rom_2k_device(mconfig, A26_ROM_4K, "Atari VCS 2600 4K ROM Carts", tag, owner, clock, "vcs_4k", __FILE__)
+{
+}
+
+
+a26_rom_f6_device::a26_rom_f6_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)
+ : a26_rom_2k_device(mconfig, type, name, tag, owner, clock, shortname, source),
+ m_base_bank(-1) // set to -1 to help the Xin1 multicart...
+{
+}
+
+a26_rom_f6_device::a26_rom_f6_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
+ : a26_rom_2k_device(mconfig, A26_ROM_F6, "Atari VCS 2600 ROM Carts w/F6 bankswitch", tag, owner, clock, "vcs_f6", __FILE__),
+ m_base_bank(-1) // set to -1 to help the Xin1 multicart...
+{
+}
+
+
+a26_rom_f4_device::a26_rom_f4_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
+ : a26_rom_f6_device(mconfig, A26_ROM_F4, "Atari VCS 2600 ROM Carts w/F4 bankswitch", tag, owner, clock, "vcs_f4", __FILE__)
+{
+}
+
+
+a26_rom_f8_device::a26_rom_f8_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)
+ : a26_rom_f6_device(mconfig, type, name, tag, owner, clock, shortname, source)
+{
+}
+
+a26_rom_f8_device::a26_rom_f8_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
+ : a26_rom_f6_device(mconfig, A26_ROM_F8, "Atari VCS 2600 ROM Carts w/F8 bankswitch", tag, owner, clock, "vcs_f8", __FILE__)
+{
+}
+
+a26_rom_f8_sw_device::a26_rom_f8_sw_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
+ : a26_rom_f8_device(mconfig, A26_ROM_F8_SW, "Atari VCS 2600 ROM Cart Snow White", tag, owner, clock, "vcs_f8_sw", __FILE__)
+{
+}
+
+a26_rom_fa_device::a26_rom_fa_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
+ : a26_rom_f6_device(mconfig, A26_ROM_FA, "Atari VCS 2600 ROM Carts w/FA bankswitch", tag, owner, clock, "vcs_fa", __FILE__)
+{
+}
+
+
+a26_rom_fe_device::a26_rom_fe_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
+ : a26_rom_2k_device(mconfig, A26_ROM_FE, "Atari VCS 2600 ROM Carts w/FE bankswitch", tag, owner, clock, "vcs_fe", __FILE__)
+{
+}
+
+
+a26_rom_3e_device::a26_rom_3e_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
+ : a26_rom_f6_device(mconfig, A26_ROM_3E, "Atari VCS 2600 ROM Carts w/3E bankswitch", tag, owner, clock, "vcs_3e", __FILE__)
+{
+}
+
+
+a26_rom_3f_device::a26_rom_3f_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
+ : a26_rom_f6_device(mconfig, A26_ROM_3F, "Atari VCS 2600 ROM Carts w/3F bankswitch", tag, owner, clock, "vcs_3f", __FILE__)
+{
+}
+
+
+a26_rom_e0_device::a26_rom_e0_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
+ : a26_rom_f6_device(mconfig, A26_ROM_E0, "Atari VCS 2600 ROM Carts w/E0 bankswitch", tag, owner, clock, "vcs_e0", __FILE__)
+{
+}
+
+
+a26_rom_e7_device::a26_rom_e7_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
+ : a26_rom_f6_device(mconfig, A26_ROM_E7, "Atari VCS 2600 ROM Carts w/E7 bankswitch", tag, owner, clock, "vcs_e7", __FILE__)
+{
+}
+
+
+a26_rom_ua_device::a26_rom_ua_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
+ : a26_rom_f6_device(mconfig, A26_ROM_UA, "Atari VCS 2600 ROM Carts w/UA bankswitch", tag, owner, clock, "vcs_ua", __FILE__)
+{
+}
+
+
+a26_rom_cv_device::a26_rom_cv_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
+ : a26_rom_2k_device(mconfig, A26_ROM_CV, "Atari VCS 2600 ROM Carts w/Commavid bankswitch", tag, owner, clock, "vcs_cv", __FILE__)
+{
+}
+
+
+a26_rom_dc_device::a26_rom_dc_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
+ : a26_rom_f6_device(mconfig, A26_ROM_DC, "Atari VCS 2600 ROM Carts w/Dynacom bankswitch", tag, owner, clock, "vcs_dc", __FILE__)
+{
+}
+
+
+a26_rom_fv_device::a26_rom_fv_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
+ : a26_rom_f6_device(mconfig, A26_ROM_FV, "Atari VCS 2600 ROM Carts w/FV bankswitch", tag, owner, clock, "vcs_fv", __FILE__)
+{
+}
+
+
+a26_rom_jvp_device::a26_rom_jvp_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
+ : a26_rom_f6_device(mconfig, A26_ROM_JVP, "Atari VCS 2600 ROM Carts w/JVP bankswitch", tag, owner, clock, "vcs_jvp", __FILE__)
+{
+}
+
+
+a26_rom_4in1_device::a26_rom_4in1_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
+ : a26_rom_f6_device(mconfig, A26_ROM_4IN1, "Atari VCS 2600 ROM Cart 4 in 1", tag, owner, clock, "vcs_4in1", __FILE__)
+{
+}
+
+
+a26_rom_8in1_device::a26_rom_8in1_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
+ : a26_rom_f8_device(mconfig, A26_ROM_8IN1, "Atari VCS 2600 ROM Cart 8 in 1", tag, owner, clock, "vcs_8in1", __FILE__)
+{
+}
+
+
+a26_rom_32in1_device::a26_rom_32in1_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
+ : a26_rom_f6_device(mconfig, A26_ROM_32IN1, "Atari VCS 2600 ROM Cart 32 in 1", tag, owner, clock, "vcs_32in1", __FILE__)
+{
+}
+
+
+void a26_rom_2k_device::device_start()
+{
+}
+
+void a26_rom_2k_device::device_reset()
+{
+}
+
+void a26_rom_f6_device::device_start()
+{
+ save_item(NAME(m_base_bank));
+}
+
+void a26_rom_f6_device::device_reset()
+{
+ m_base_bank = 0;
+}
+
+void a26_rom_f4_device::device_reset()
+{
+ m_base_bank = 7;
+}
+
+void a26_rom_f8_sw_device::device_reset()
+{
+ // Snow White proto starts from bank 1!!!
+ m_base_bank = 1;
+}
+
+void a26_rom_fe_device::device_start()
+{
+ save_item(NAME(m_base_bank));
+ save_item(NAME(m_trigger_on_next_access));
+}
+
+void a26_rom_fe_device::device_reset()
+{
+ m_base_bank = 0;
+ m_trigger_on_next_access = 0;
+}
+
+void a26_rom_3e_device::device_start()
+{
+ save_item(NAME(m_base_bank));
+ save_item(NAME(m_ram_bank));
+ save_item(NAME(m_ram_enable));
+}
+
+void a26_rom_3e_device::device_reset()
+{
+ m_num_bank = m_rom.count() / 0x800;
+ m_base_bank = m_num_bank - 1;
+ m_ram_bank = 0;
+ m_ram_enable = 0;
+}
+
+void a26_rom_3f_device::device_reset()
+{
+ m_num_bank = m_rom.count() / 0x800;
+ m_base_bank = m_num_bank - 1;
+}
+
+void a26_rom_e0_device::device_start()
+{
+ save_item(NAME(m_base_banks));
+}
+
+void a26_rom_e0_device::device_reset()
+{
+ m_base_banks[0] = 4;
+ m_base_banks[1] = 5;
+ m_base_banks[2] = 6;
+ m_base_banks[3] = 7;
+}
+
+void a26_rom_e7_device::device_start()
+{
+ save_item(NAME(m_base_bank));
+ save_item(NAME(m_ram_bank));
+}
+
+void a26_rom_e7_device::device_reset()
+{
+ m_base_bank = 0;
+ m_ram_bank = 0;
+}
+
+void a26_rom_ua_device::device_reset()
+{
+ m_base_bank = 0;
+}
+
+void a26_rom_fv_device::device_start()
+{
+ save_item(NAME(m_base_bank));
+ save_item(NAME(m_locked));
+}
+
+void a26_rom_fv_device::device_reset()
+{
+ m_base_bank = 0;
+ m_locked = 0;
+}
+
+
+void a26_rom_4in1_device::device_reset()
+{
+ m_base_bank++;
+ m_base_bank &= 3;
+}
+
+
+void a26_rom_8in1_device::device_start()
+{
+ save_item(NAME(m_base_bank));
+ save_item(NAME(m_reset_bank));
+}
+
+void a26_rom_8in1_device::device_reset()
+{
+ // we use here two different bank counter: the main one for the 8x8K chunks,
+ // and the usual one (m_base_bank) for the 4K bank of the current game
+ m_reset_bank++;
+ m_reset_bank &= 7;
+ m_base_bank = 0;
+}
+
+
+void a26_rom_32in1_device::device_reset()
+{
+ m_base_bank++;
+ m_base_bank &= 0x1f;
+}
+
+
+/*-------------------------------------------------
+ mapper specific handlers
+ -------------------------------------------------*/
+
+/*-------------------------------------------------
+ BASE 2K & 4K Carts:
+ no bankswitch
+
+ GAMES: a large majority
+ -------------------------------------------------*/
+
+READ8_MEMBER(a26_rom_2k_device::read_rom)
+{
+ // Super Chip RAM reads are mapped in 0x1080-0x10ff
+ if (m_ram && offset >= 0x80 && offset < 0x100)
+ {
+ return m_ram[offset & (m_ram.count() - 1)];
+ }
+
+ return m_rom[offset & (m_rom.count() - 1)];
+}
+
+/*-------------------------------------------------
+ "F4 Bankswitch" Carts:
+ read/write access to 0x1ff4-0x1ffb determines the
+ 4K ROM bank to be read
+
+ GAMES: Fatal Run
+ -------------------------------------------------*/
+
+READ8_MEMBER(a26_rom_f4_device::read_rom)
+{
+ // Super Chip RAM reads are mapped in 0x1080-0x10ff
+ if (m_ram && offset >= 0x80 && offset < 0x100)
+ {
+ return m_ram[offset & (m_ram.count() - 1)];
+ }
+
+ // update banks
+ if (!space.debugger_access())
+ {
+ switch (offset)
+ {
+ case 0x0ff4:
+ case 0x0ff5:
+ case 0x0ff6:
+ case 0x0ff7:
+ case 0x0ff8:
+ case 0x0ff9:
+ case 0x0ffa:
+ case 0x0ffb:
+ m_base_bank = offset - 0x0ff4;
+ break;
+ }
+ }
+
+ return m_rom[offset + (m_base_bank * 0x1000)];
+}
+
+WRITE8_MEMBER(a26_rom_f4_device::write_bank)
+{
+ // Super Chip RAM writes are mapped in 0x1000-0x107f
+ if (m_ram && offset < 0x80)
+ {
+ m_ram[offset & (m_ram.count() - 1)] = data;
+ return;
+ }
+
+ switch (offset)
+ {
+ case 0x0ff4:
+ case 0x0ff5:
+ case 0x0ff6:
+ case 0x0ff7:
+ case 0x0ff8:
+ case 0x0ff9:
+ case 0x0ffa:
+ case 0x0ffb:
+ m_base_bank = offset - 0x0ff4;
+ break;
+ default:
+ logerror("Write Bank outside expected range (0x%X).\n", offset + 0x1000);
+ break;
+ }
+}
+
+/*-------------------------------------------------
+ "F6 Bankswitch" Carts:
+ read/write access to 0x1ff6-0x1ff9 determines the
+ 4K ROM bank to be read
+
+ GAMES: Atari 16K games, like Crossbow, Crystal
+ Castles and the 2-in-1 carts
+
+ -------------------------------------------------*/
+
+READ8_MEMBER(a26_rom_f6_device::read_rom)
+{
+ // Super Chip RAM reads are mapped in 0x1080-0x10ff
+ if (m_ram && offset >= 0x80 && offset < 0x100)
+ {
+ return m_ram[offset & (m_ram.count() - 1)];
+ }
+
+ // update banks
+ if (!space.debugger_access())
+ {
+ switch (offset)
+ {
+ case 0x0ff6:
+ case 0x0ff7:
+ case 0x0ff8:
+ case 0x0ff9:
+ m_base_bank = offset - 0x0ff6;
+ break;
+ }
+ }
+
+ return m_rom[offset + (m_base_bank * 0x1000)];
+}
+
+WRITE8_MEMBER(a26_rom_f6_device::write_bank)
+{
+ // Super Chip RAM writes are mapped in 0x1000-0x107f
+ if (m_ram && offset < 0x80)
+ {
+ m_ram[offset & (m_ram.count() - 1)] = data;
+ return;
+ }
+
+ switch (offset)
+ {
+ case 0x0ff6:
+ case 0x0ff7:
+ case 0x0ff8:
+ case 0x0ff9:
+ m_base_bank = offset - 0x0ff6;
+ break;
+ default:
+ logerror("Write Bank outside expected range (0x%X).\n", offset + 0x1000);
+ break;
+ }
+}
+
+DIRECT_UPDATE_MEMBER(a26_rom_f6_device::cart_opbase)
+{
+ if ((address & 0x1fff) >= 0x1ff6 && (address & 0x1fff) <= 0x1ff9)
+ {
+ if (!direct.space().debugger_access())
+ write_bank(direct.space(), (address & 0x1fff) - 0x1ff6, 0);
+ }
+ return address;
+}
+
+/*-------------------------------------------------
+ "F8 Bankswitch" Carts:
+ read/write access to 0x1ff8-0x1ff9 determines the
+ 4K ROM bank to be read
+
+ GAMES: Atari 8K games, like Asteroids, Battlezone
+ and Taz
+
+ -------------------------------------------------*/
+
+READ8_MEMBER(a26_rom_f8_device::read_rom)
+{
+ // Super Chip RAM reads are mapped in 0x1080-0x10ff
+ if (m_ram && offset >= 0x80 && offset < 0x100)
+ {
+ return m_ram[offset & (m_ram.count() - 1)];
+ }
+
+ // update banks
+ if (!space.debugger_access())
+ {
+ switch (offset)
+ {
+ case 0x0ff8:
+ case 0x0ff9:
+ m_base_bank = offset - 0x0ff8;
+ break;
+ }
+ }
+
+ return m_rom[offset + (m_base_bank * 0x1000)];
+}
+
+WRITE8_MEMBER(a26_rom_f8_device::write_bank)
+{
+ // Super Chip RAM writes are mapped in 0x1000-0x107f
+ if (m_ram && offset < 0x80)
+ {
+ m_ram[offset & (m_ram.count() - 1)] = data;
+ return;
+ }
+
+ switch (offset)
+ {
+ case 0x0ff8:
+ case 0x0ff9:
+ m_base_bank = offset - 0x0ff8;
+ break;
+ default:
+ logerror("Write Bank outside expected range (0x%X).\n", offset + 0x1000);
+ break;
+ }
+}
+
+/*-------------------------------------------------
+ "FA Bankswitch" Carts:
+ read/write access to 0x1ff8-0x1ffa determines the
+ 4K ROM bank to be read
+ These games contained the CBS RAM+ chip (256bytes
+ of RAM)
+
+ GAMES: CBS RAM Plus games like Omega Race and Tunnel
+ Runner
+
+ -------------------------------------------------*/
+
+READ8_MEMBER(a26_rom_fa_device::read_rom)
+{
+ // CBS RAM+ reads are mapped in 0x1100-0x11ff
+ if (m_ram && offset >= 0x100 && offset < 0x200)
+ {
+ return m_ram[offset & (m_ram.count() - 1)];
+ }
+
+ // update banks
+ if (!space.debugger_access())
+ {
+ switch (offset)
+ {
+ case 0x0ff8:
+ case 0x0ff9:
+ case 0x0ffa:
+ m_base_bank = offset - 0x0ff8;
+ break;
+ }
+ }
+
+ return m_rom[offset + (m_base_bank * 0x1000)];
+}
+
+WRITE8_MEMBER(a26_rom_fa_device::write_bank)
+{
+ // CBS RAM+ writes are mapped in 0x1000-0x10ff
+ if (m_ram && offset < 0x100)
+ {
+ m_ram[offset & (m_ram.count() - 1)] = data;
+ }
+
+ switch (offset)
+ {
+ case 0x0ff8:
+ case 0x0ff9:
+ case 0x0ffa:
+ m_base_bank = offset - 0x0ff8;
+ break;
+ default:
+ logerror("Write Bank outside expected range (0x%X).\n", offset + 0x1000);
+ break;
+ }
+}
+
+/*-------------------------------------------------
+ "FE Bankswitch" Carts:
+ read/write access to 0x01fe-0x1ff determines the
+ 4K ROM bank to be read
+
+ GAMES: Activision 8K games like Decathlon
+
+ -------------------------------------------------*/
+/*
+
+ There seems to be a kind of lag between the writing to address 0x1FE and the
+ Activision switcher springing into action. It waits for the next byte to arrive
+ on the data bus, which is the new PCH in the case of a JSR, and the PCH of the
+ stored PC on the stack in the case of an RTS.
+
+ depending on last byte & 0x20 -> 0x00 -> switch to bank #1
+ -> 0x20 -> switch to bank #0
+
+ */
+
+READ8_MEMBER(a26_rom_fe_device::read_rom)
+{
+ UINT8 data;
+
+ // Super Chip RAM reads are mapped in 0x1080-0x10ff
+ if (m_ram && offset >= 0x80 && offset < 0x100)
+ {
+ return m_ram[offset & (m_ram.count() - 1)];
+ }
+
+ data = m_rom[offset + (m_base_bank * 0x1000)];
+
+ if (!space.debugger_access())
+ {
+ if (m_trigger_on_next_access)
+ {
+ m_base_bank = BIT(data, 5) ? 0 : 1;
+ m_trigger_on_next_access = 0;
+ }
+ }
+
+ return data;
+}
+
+WRITE8_MEMBER(a26_rom_fe_device::write_ram)
+{
+ // Super Chip RAM writes are mapped in 0x1000-0x107f
+ if (m_ram && offset < 0x80)
+ {
+ m_ram[offset & (m_ram.count() - 1)] = data;
+ }
+}
+
+READ8_MEMBER(a26_rom_fe_device::read_bank)
+{
+ UINT8 data = space.read_byte(0xfe + offset);
+
+ if (!space.debugger_access())
+ {
+ switch (offset & 1)
+ {
+ case 0:
+ // The next byte on the data bus determines which bank to switch to
+ m_trigger_on_next_access = 1;
+ break;
+
+ case 1:
+ if (m_trigger_on_next_access)
+ {
+ m_base_bank = BIT(data, 5) ? 0 : 1;
+ m_trigger_on_next_access = 0;
+ }
+ break;
+ }
+ }
+ return data;
+}
+
+WRITE8_MEMBER(a26_rom_fe_device::write_bank)
+{
+ space.write_byte(0xfe, data);
+ if (!space.debugger_access())
+ {
+ // The next byte on the data bus determines which bank to switch to
+ m_trigger_on_next_access = 1;
+ }
+}
+
+/*-------------------------------------------------
+ "3E Bankswitch" Carts:
+ write access to 0x3e determines the 2K ROM bank to
+ be read, write access to 0x3f determines the RAM bank
+ to be read
+
+ GAMES: Boulder Dash (Homebrew)
+
+ -------------------------------------------------*/
+
+READ8_MEMBER(a26_rom_3e_device::read_rom)
+{
+ if (m_ram && m_ram_enable && offset >= 0x400 && offset < 0x600)
+ {
+ offset -= 0x400;
+ return m_ram[offset + (m_ram_bank * 0x200)];
+ }
+
+ if (offset >= 0x800)
+ return m_rom[offset + (m_num_bank - 1) * 0x800];
+ else
+ return m_rom[offset + m_base_bank * 0x800];
+}
+
+WRITE8_MEMBER(a26_rom_3e_device::write_bank)
+{
+ if (offset) // 0x3f
+ {
+ m_base_bank = data & (m_num_bank - 1);
+ m_ram_enable = 0;
+ }
+ else // 0x3e
+ {
+ m_ram_bank = data & 0x3f;
+ m_ram_enable = 1;
+ }
+}
+
+WRITE8_MEMBER(a26_rom_3e_device::write_ram)
+{
+ if (m_ram && m_ram_enable && offset >= 0x400 && offset < 0x600)
+ {
+ offset -= 0x400;
+ m_ram[offset + (m_ram_bank * 0x200)] = data;
+ }
+}
+
+/*-------------------------------------------------
+ "3F Bankswitch" Carts:
+ write access to 0x00-0x3f determines the 2K ROM bank
+ to be read
+
+ GAMES: Tigervision 8K games like Espial and Miner
+ 2049er. Extended version with bankswitch up to 512K
+ shall be supported as well (but we lack a test case)
+
+ -------------------------------------------------*/
+
+READ8_MEMBER(a26_rom_3f_device::read_rom)
+{
+ if (offset >= 0x800)
+ return m_rom[(offset & 0x7ff) + (m_num_bank - 1) * 0x800];
+ else
+ return m_rom[offset + m_base_bank * 0x800];
+}
+
+WRITE8_MEMBER(a26_rom_3f_device::write_bank)
+{
+ m_base_bank = data & (m_num_bank - 1);
+}
+
+/*-------------------------------------------------
+ "E0 Bankswitch" Carts:
+ read/write access to 0x1fe0-0x1ff8 determines the
+ 1K ROM bank to be read in each 1K chunk (0x1c00-0x1fff
+ always points to the last 1K of the ROM)
+
+ GAMES: Parker Bros. 8K games like Gyruss and Popeye
+
+ -------------------------------------------------*/
+
+READ8_MEMBER(a26_rom_e0_device::read_rom)
+{
+ // update banks
+ if (!space.debugger_access())
+ {
+ if (offset >= 0xfe0 && offset <= 0xff8)
+ m_base_banks[(offset >> 3) & 3] = offset & 7;
+ }
+
+ return m_rom[(offset & 0x3ff) + (m_base_banks[(offset >> 10) & 3] * 0x400)];
+}
+
+WRITE8_MEMBER(a26_rom_e0_device::write_bank)
+{
+ if (offset >= 0xfe0 && offset <= 0xff8)
+ m_base_banks[(offset >> 3) & 3] = offset & 7;
+}
+
+
+/*-------------------------------------------------
+ "E7 Bankswitch" Carts:
+ this PCB can handle up to 16K of ROM and 2K of RAM,
+ with the following layout
+ 1000-17ff is selectable bank
+ 1800-19ff is RAM
+ 1a00-1fff is fixed to the last 0x600 of ROM
+
+ The selectable bank can be ROM (if selected by
+ 0x1fe0-0x1fe6 access) or a first 1K of RAM (if
+ selected by 0x1fe7 access).
+ The other 256byte RAM bank can be one of the
+ four different chunks forming the other 1K of RAM
+ (the bank is selected by accessing 0x1fe8-0x1feb)
+
+ GAMES: M Network 16K games like Burgertime and
+ Bump'n Jump
+
+ -------------------------------------------------*/
+
+READ8_MEMBER(a26_rom_e7_device::read_rom)
+{
+ // update banks
+ if (!space.debugger_access())
+ {
+ if (offset >= 0xfe0 && offset <= 0xfe7)
+ m_base_bank = offset - 0xfe0;
+ if (offset >= 0xfe8 && offset <= 0xfeb)
+ m_ram_bank = offset - 0xfe8;
+ }
+
+ if (m_ram)
+ {
+ // 1K of RAM
+ if (m_base_bank == 0x07 && offset >= 0x400 && offset < 0x800)
+ return m_ram[0x400 + (offset & 0x3ff)];
+ // the other 1K of RAM
+ if (offset >= 0x900 && offset < 0xa00)
+ {
+ offset -= 0x900;
+ return m_ram[offset + (m_ram_bank * 0x100)];
+ }
+ }
+
+ if (offset > 0x800)
+ return m_rom[(offset & 0x7ff) + 0x3800];
+ else
+ return m_rom[(offset & 0x7ff) + (m_base_bank * 0x800)];
+}
+
+WRITE8_MEMBER(a26_rom_e7_device::write_bank)
+{
+ if (offset >= 0xfe0 && offset <= 0xfe7)
+ m_base_bank = offset - 0xfe0;
+ if (offset >= 0xfe8 && offset <= 0xfeb)
+ m_ram_bank = offset - 0xfe8;
+
+ if (m_ram)
+ {
+ // 1K of RAM
+ if (m_base_bank == 0x07 && offset < 0x400)
+ m_ram[0x400 + (offset & 0x3ff)] = data;
+ // the other 1K of RAM
+ if (offset >= 0x800 && offset < 0x900)
+ {
+ offset -= 0x800;
+ m_ram[offset + (m_ram_bank * 0x100)] = data;
+ }
+ }
+}
+
+/*-------------------------------------------------
+ "UA Bankswitch" Carts:
+ read/write access to 0x200-0x27f determines the
+ 4K ROM bank to be read (0x220-0x23f for low 4K,
+ 0x240-0x27f for high 4K)
+
+ GAMES: UA Ltd. 8K games like Funky Flash and
+ Pleaides
+
+ -------------------------------------------------*/
+
+READ8_MEMBER(a26_rom_ua_device::read_rom)
+{
+ return m_rom[(offset + (m_base_bank * 0x1000)) & (m_rom.count() - 1)];
+}
+
+READ8_MEMBER(a26_rom_ua_device::read_bank)
+{
+ if (!space.debugger_access())
+ m_base_bank = offset >> 6;
+
+ return 0;
+}
+
+WRITE8_MEMBER(a26_rom_ua_device::write_bank)
+{
+ m_base_bank = offset >> 6;
+}
+
+
+/*-------------------------------------------------
+ Commavid Carts:
+ It allows for both ROM and RAM on the cartridge,
+ without using bankswitching. There's 2K of ROM
+ and 1K of RAM.
+
+ GAMES: Magicard and Video Life by Commavid
+
+ -------------------------------------------------*/
+
+READ8_MEMBER(a26_rom_cv_device::read_rom)
+{
+ if (m_ram && offset < 0x400)
+ {
+ return m_ram[offset & (m_ram.count() - 1)];
+ }
+
+ // games shall not read from 0x1400-0x17ff (RAM write)
+ // but we fall back to ROM just in case...
+ return m_rom[offset & 0x7ff];
+}
+
+WRITE8_MEMBER(a26_rom_cv_device::write_bank)
+{
+ if (m_ram && offset >= 0x400 && offset < 0x800)
+ {
+ m_ram[offset & (m_ram.count() - 1)] = data;
+ }
+}
+
+
+/*-------------------------------------------------
+ Dynacom Megaboy Carts (aka "F0 Banswitch"):
+ read/write access to 0x1ff0 determines the 4K ROM
+ bank to be read (each access increases the bank index
+ up to 16, since the cart was 64K wide)
+
+ GAMES: Megaboy by Dynacom
+
+ -------------------------------------------------*/
+
+READ8_MEMBER(a26_rom_dc_device::read_rom)
+{
+ if (!space.debugger_access())
+ {
+ if (offset == 0xff0)
+ m_base_bank = (m_base_bank + 1) & 0x0f;
+ }
+
+ if (offset == 0xfec)
+ return m_base_bank;
+
+ return m_rom[offset + (m_base_bank * 0x1000)];
+}
+
+WRITE8_MEMBER(a26_rom_dc_device::write_bank)
+{
+ if (offset == 0xff0)
+ m_base_bank = (m_base_bank + 1) & 0x0f;
+}
+
+
+/*-------------------------------------------------
+ "FV Bankswitch" Carts:
+ The first access to 0x1fd0 switch the bank, but
+ only if pc() & 0x1f00 == 0x1f00!
+
+ GAMES: Challenge by HES
+
+ -------------------------------------------------*/
+
+READ8_MEMBER(a26_rom_fv_device::read_rom)
+{
+ if (!space.debugger_access())
+ {
+ if (offset == 0xfd0)
+ {
+ if (!m_locked && (machine().device<cpu_device>("maincpu")->pc() & 0x1f00) == 0x1f00)
+ {
+ m_locked = 1;
+ m_base_bank = m_base_bank ^ 0x01;
+ }
+ }
+ }
+
+ return m_rom[offset + (m_base_bank * 0x1000)];
+}
+
+WRITE8_MEMBER(a26_rom_fv_device::write_bank)
+{
+ if (offset == 0xfd0)
+ {
+ if (!m_locked && (machine().device<cpu_device>("maincpu")->pc() & 0x1f00) == 0x1f00)
+ {
+ m_locked = 1;
+ m_base_bank = m_base_bank ^ 0x01;
+ }
+ }
+}
+
+
+/*-------------------------------------------------
+ "JVP Bankswitch" Carts:
+ read/write access to 0x0fa0-0x0fc0 determines the
+ 4K ROM bank to be read (notice that this overlaps
+ the RIOT, currently handled in the main driver until
+ I can better investigate the behavior)
+
+ GAMES: No test case!?!
+
+ -------------------------------------------------*/
+
+READ8_MEMBER(a26_rom_jvp_device::read_rom)
+{
+ return m_rom[offset + (m_base_bank * 0x1000)];
+}
+
+WRITE8_MEMBER(a26_rom_jvp_device::write_bank)
+{
+ switch (offset)
+ {
+ case 0x00:
+ case 0x20:
+ m_base_bank ^= 1;
+ break;
+ default:
+ //printf("%04X: write to unknown mapper address %02X\n", m_maincpu->pc(), 0xfa0 + offset);
+ break;
+ }
+}
+
+
+/*-------------------------------------------------
+ 4 in 1 Carts (Reset based):
+ the 4K bank changes at each reset
+
+ GAMES: 4 in 1 carts
+
+ -------------------------------------------------*/
+
+READ8_MEMBER(a26_rom_4in1_device::read_rom)
+{
+ return m_rom[offset + (m_base_bank * 0x1000)];
+}
+
+
+/*-------------------------------------------------
+ 8 in 1 Carts (Reset based):
+ the 8K banks change at each reset, and internally
+ each game runs as a F8-bankswitched cart
+
+ GAMES: 8 in 1 cart
+
+ -------------------------------------------------*/
+
+READ8_MEMBER(a26_rom_8in1_device::read_rom)
+{
+ if (!space.debugger_access())
+ {
+ switch (offset)
+ {
+ case 0x0ff8:
+ case 0x0ff9:
+ m_base_bank = offset - 0x0ff8;
+ break;
+ }
+ }
+
+ return m_rom[offset + (m_base_bank * 0x1000) + (m_reset_bank * 0x2000)];
+}
+
+
+/*-------------------------------------------------
+ 32 in 1 Carts (Reset based):
+ the 2K banks change at each reset
+
+ GAMES: 32 in 1 cart
+
+ -------------------------------------------------*/
+
+READ8_MEMBER(a26_rom_32in1_device::read_rom)
+{
+ return m_rom[(offset & 0x7ff) + (m_base_bank * 0x800)];
+}
+
diff --git a/src/emu/bus/vcs/rom.h b/src/emu/bus/vcs/rom.h
new file mode 100755
index 00000000000..33b00d0b5ea
--- /dev/null
+++ b/src/emu/bus/vcs/rom.h
@@ -0,0 +1,389 @@
+#ifndef __VCS_ROM_H
+#define __VCS_ROM_H
+
+#include "vcs_slot.h"
+
+
+// ======================> a26_rom_2k_device
+
+class a26_rom_2k_device : public device_t,
+ public device_vcs_cart_interface
+{
+public:
+ // construction/destruction
+ a26_rom_2k_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);
+ a26_rom_2k_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_rom);
+};
+
+
+// ======================> a26_rom_4k_device
+
+class a26_rom_4k_device : public a26_rom_2k_device
+{
+public:
+ // construction/destruction
+ a26_rom_4k_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
+
+ // reading and writing
+
+ // accesses just use the 2K ones, since it is just direct access to ROM/RAM
+ // masked with its size!
+};
+
+
+// ======================> a26_rom_f6_device
+
+class a26_rom_f6_device : public a26_rom_2k_device
+{
+public:
+ // construction/destruction
+ a26_rom_f6_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);
+ a26_rom_f6_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_rom);
+ virtual DECLARE_WRITE8_MEMBER(write_bank);
+ virtual DECLARE_DIRECT_UPDATE_MEMBER(cart_opbase);
+
+protected:
+ int m_base_bank;
+};
+
+
+// ======================> a26_rom_f4_device
+
+class a26_rom_f4_device : public a26_rom_f6_device
+{
+public:
+ // construction/destruction
+ a26_rom_f4_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
+
+ // device-level overrides
+ virtual void device_reset();
+
+ // reading and writing
+ virtual DECLARE_READ8_MEMBER(read_rom);
+ virtual DECLARE_WRITE8_MEMBER(write_bank);
+};
+
+
+// ======================> a26_rom_f8_device
+
+class a26_rom_f8_device : public a26_rom_f6_device
+{
+public:
+ // construction/destruction
+ a26_rom_f8_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);
+ a26_rom_f8_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
+
+ // reading and writing
+ virtual DECLARE_READ8_MEMBER(read_rom);
+ virtual DECLARE_WRITE8_MEMBER(write_bank);
+};
+
+
+// ======================> a26_rom_f8_sw_device
+
+class a26_rom_f8_sw_device : public a26_rom_f8_device
+{
+public:
+ // construction/destruction
+ a26_rom_f8_sw_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
+
+ // device-level overrides
+ virtual void device_reset();
+};
+
+
+// ======================> a26_rom_fa_device
+
+class a26_rom_fa_device : public a26_rom_f6_device
+{
+public:
+ // construction/destruction
+ a26_rom_fa_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
+
+ // reading and writing
+ virtual DECLARE_READ8_MEMBER(read_rom);
+ virtual DECLARE_WRITE8_MEMBER(write_bank);
+};
+
+
+// ======================> a26_rom_fe_device
+
+class a26_rom_fe_device : public a26_rom_2k_device
+{
+public:
+ // construction/destruction
+ a26_rom_fe_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_rom);
+ virtual DECLARE_READ8_MEMBER(read_bank);
+ virtual DECLARE_WRITE8_MEMBER(write_ram);
+ virtual DECLARE_WRITE8_MEMBER(write_bank);
+
+protected:
+ int m_base_bank;
+ int m_trigger_on_next_access;
+};
+
+
+// ======================> a26_rom_3e_device
+
+class a26_rom_3e_device : public a26_rom_f6_device
+{
+public:
+ // construction/destruction
+ a26_rom_3e_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_rom);
+ virtual DECLARE_WRITE8_MEMBER(write_bank);
+ virtual DECLARE_WRITE8_MEMBER(write_ram);
+
+protected:
+ int m_num_bank;
+ int m_ram_bank;
+ int m_ram_enable;
+};
+
+
+// ======================> a26_rom_3f_device
+
+class a26_rom_3f_device : public a26_rom_f6_device
+{
+public:
+ // construction/destruction
+ a26_rom_3f_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
+
+ // device-level overrides
+ virtual void device_reset();
+
+ // reading and writing
+ virtual DECLARE_READ8_MEMBER(read_rom);
+ virtual DECLARE_WRITE8_MEMBER(write_bank);
+
+protected:
+ int m_num_bank;
+};
+
+
+// ======================> a26_rom_e0_device
+
+class a26_rom_e0_device : public a26_rom_f6_device
+{
+public:
+ // construction/destruction
+ a26_rom_e0_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_rom);
+ virtual DECLARE_WRITE8_MEMBER(write_bank);
+
+protected:
+ int m_base_banks[4];
+};
+
+
+// ======================> a26_rom_e7_device
+
+class a26_rom_e7_device : public a26_rom_f6_device
+{
+public:
+ // construction/destruction
+ a26_rom_e7_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_rom);
+ virtual DECLARE_WRITE8_MEMBER(write_bank);
+
+protected:
+ int m_ram_bank;
+};
+
+
+// ======================> a26_rom_ua_device
+
+class a26_rom_ua_device : public a26_rom_f6_device
+{
+public:
+ // construction/destruction
+ a26_rom_ua_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
+
+ // device-level overrides
+ virtual void device_reset();
+
+ // reading and writing
+ virtual DECLARE_READ8_MEMBER(read_rom);
+ virtual DECLARE_READ8_MEMBER(read_bank);
+ virtual DECLARE_WRITE8_MEMBER(write_bank);
+};
+
+
+// ======================> a26_rom_cv_device
+
+class a26_rom_cv_device : public a26_rom_2k_device
+{
+public:
+ // construction/destruction
+ a26_rom_cv_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
+
+ // reading and writing
+ virtual DECLARE_READ8_MEMBER(read_rom);
+ virtual DECLARE_WRITE8_MEMBER(write_bank);
+};
+
+
+// ======================> a26_rom_dc_device
+
+class a26_rom_dc_device : public a26_rom_f6_device
+{
+public:
+ // construction/destruction
+ a26_rom_dc_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
+
+ // reading and writing
+ virtual DECLARE_READ8_MEMBER(read_rom);
+ virtual DECLARE_WRITE8_MEMBER(write_bank);
+};
+
+
+// ======================> a26_rom_fv_device
+
+class a26_rom_fv_device : public a26_rom_f6_device
+{
+public:
+ // construction/destruction
+ a26_rom_fv_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_rom);
+ virtual DECLARE_WRITE8_MEMBER(write_bank);
+
+protected:
+ int m_locked;
+};
+
+
+// ======================> a26_rom_jvp_device
+
+class a26_rom_jvp_device : public a26_rom_f6_device
+{
+public:
+ // construction/destruction
+ a26_rom_jvp_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
+
+ // reading and writing
+ virtual DECLARE_READ8_MEMBER(read_rom);
+ virtual DECLARE_WRITE8_MEMBER(write_bank);
+};
+
+
+// ======================> a26_rom_4in1_device
+
+class a26_rom_4in1_device : public a26_rom_f6_device
+{
+public:
+ // construction/destruction
+ a26_rom_4in1_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
+
+ // device-level overrides
+ virtual void device_reset();
+
+ // reading and writing
+ virtual DECLARE_READ8_MEMBER(read_rom);
+};
+
+
+// ======================> a26_rom_8in1_device
+
+class a26_rom_8in1_device : public a26_rom_f8_device
+{
+public:
+ // construction/destruction
+ a26_rom_8in1_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_rom);
+
+protected:
+ int m_reset_bank;
+};
+
+
+// ======================> a26_rom_32in1_device
+
+class a26_rom_32in1_device : public a26_rom_f6_device
+{
+public:
+ // construction/destruction
+ a26_rom_32in1_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
+
+ // device-level overrides
+ virtual void device_reset();
+
+ // reading and writing
+ virtual DECLARE_READ8_MEMBER(read_rom);
+};
+
+
+// device type definition
+extern const device_type A26_ROM_2K;
+extern const device_type A26_ROM_4K;
+extern const device_type A26_ROM_F4;
+extern const device_type A26_ROM_F6;
+extern const device_type A26_ROM_F8;
+extern const device_type A26_ROM_F8_SW;
+extern const device_type A26_ROM_FA;
+extern const device_type A26_ROM_FE;
+extern const device_type A26_ROM_3E;
+extern const device_type A26_ROM_3F;
+extern const device_type A26_ROM_E0;
+extern const device_type A26_ROM_E7;
+extern const device_type A26_ROM_UA;
+extern const device_type A26_ROM_CV;
+extern const device_type A26_ROM_DC;
+extern const device_type A26_ROM_FV;
+extern const device_type A26_ROM_JVP;
+extern const device_type A26_ROM_4IN1;
+extern const device_type A26_ROM_8IN1;
+extern const device_type A26_ROM_32IN1;
+
+
+#endif
diff --git a/src/emu/bus/vcs/scharger.c b/src/emu/bus/vcs/scharger.c
new file mode 100644
index 00000000000..efd685a5969
--- /dev/null
+++ b/src/emu/bus/vcs/scharger.c
@@ -0,0 +1,212 @@
+/***************************************************************************
+
+ Atari 2600 cart Starpath Supercharger (Cart + Tape drive!)
+
+
+
+ From kevtris notes ( http://blog.kevtris.org/blogfiles/Atari%202600%20Mappers.txt ):
+
+
+ - Control register [0x1ff8]
+
+ 7 0
+ ---------
+ 1FF8: DDDB BBWE
+
+ D: write delay (see below)
+ B: bankswitching mode (see below)
+ W: RAM write enable (1 = enabled, 0 = disabled)
+ E: ROM power enable (0 = enabled, 1 = turn off ROM)
+
+ - Audio input register [0x1ff9]
+
+ 7 0
+ ---------
+ 1FF9: 0000 000A
+
+ A: Supercharger audio data. 0 = low input, 1 = high input.
+
+
+***************************************************************************/
+
+
+#include "emu.h"
+#include "scharger.h"
+#include "sound/wave.h"
+#include "formats/a26_cas.h"
+
+const device_type A26_ROM_SUPERCHARGER = &device_creator<a26_rom_ss_device>;
+
+
+a26_rom_ss_device::a26_rom_ss_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
+ : a26_rom_f6_device(mconfig, A26_ROM_SUPERCHARGER, "Atari 2600 ROM Cart Supercharger", tag, owner, clock, "a2600_ss", __FILE__),
+ m_cassette(*this, "cassette")
+{
+}
+
+//-------------------------------------------------
+// mapper specific start/reset
+//-------------------------------------------------
+
+void a26_rom_ss_device::device_start()
+{
+ m_maincpu = machine().device<cpu_device>("maincpu");
+
+ save_item(NAME(m_base_banks));
+ save_item(NAME(m_reg));
+ save_item(NAME(m_write_delay));
+ save_item(NAME(m_ram_write_enabled));
+ save_item(NAME(m_rom_enabled));
+ save_item(NAME(m_byte_started));
+ save_item(NAME(m_last_address));
+ save_item(NAME(m_diff_adjust));
+}
+
+void a26_rom_ss_device::device_reset()
+{
+ // banks = 0, 1, 2 are 2K chunk of RAM (of the available 6K), banks = 3 is ROM!
+ m_base_banks[0] = 2;
+ m_base_banks[1] = 3;
+ m_ram_write_enabled = 0;
+ m_byte_started = 0;
+ m_reg = 0;
+ m_write_delay = 0;
+ m_rom_enabled = 1;
+ m_last_address = 0;
+ m_diff_adjust = 0;
+}
+
+
+static MACHINE_CONFIG_FRAGMENT( a26_ss )
+ MCFG_CASSETTE_ADD("cassette")
+ MCFG_CASSETTE_FORMATS(a26_cassette_formats)
+ MCFG_CASSETTE_DEFAULT_STATE(CASSETTE_STOPPED | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_ENABLED)
+ MCFG_CASSETTE_INTERFACE("a2600_cass")
+
+// MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette")
+// MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
+MACHINE_CONFIG_END
+
+machine_config_constructor a26_rom_ss_device::device_mconfig_additions() const
+{
+ return MACHINE_CONFIG_NAME( a26_ss );
+}
+
+inline UINT8 a26_rom_ss_device::read_byte(UINT32 offset)
+{
+ if (offset < 0x800)
+ return m_ram[(offset & 0x7ff) + (m_base_banks[0] * 0x800)];
+ else if (m_base_banks[1] != 3)
+ return m_ram[(offset & 0x7ff) + (m_base_banks[1] * 0x800)];
+ else if (m_rom_enabled)
+ return m_rom[offset & 0x7ff];
+ else
+ return 0xff;
+}
+
+READ8_MEMBER(a26_rom_ss_device::read_rom)
+{
+ if (space.debugger_access())
+ return read_byte(offset);
+
+ // Bankswitch
+ if (offset == 0xff8)
+ {
+ //logerror("%04X: Access to control register data = %02X\n", m_maincpu->pc(), m_modeSS_byte);
+ m_write_delay = m_reg >> 5;
+ m_ram_write_enabled = BIT(m_reg, 1);
+ m_rom_enabled = !BIT(m_reg, 0);
+
+ // compensate time spent in this access to avoid spurious RAM write
+ m_byte_started -= 5;
+
+ // handle bankswitch
+ switch (m_reg & 0x1c)
+ {
+ case 0x00:
+ m_base_banks[0] = 2;
+ m_base_banks[1] = 3;
+ break;
+ case 0x04:
+ m_base_banks[0] = 0;
+ m_base_banks[1] = 3;
+ break;
+ case 0x08:
+ m_base_banks[0] = 2;
+ m_base_banks[1] = 0;
+ break;
+ case 0x0c:
+ m_base_banks[0] = 0;
+ m_base_banks[1] = 2;
+ break;
+ case 0x10:
+ m_base_banks[0] = 2;
+ m_base_banks[1] = 3;
+ break;
+ case 0x14:
+ m_base_banks[0] = 1;
+ m_base_banks[1] = 3;
+ break;
+ case 0x18:
+ m_base_banks[0] = 2;
+ m_base_banks[1] = 1;
+ break;
+ case 0x1c:
+ m_base_banks[0] = 1;
+ m_base_banks[1] = 2;
+ break;
+ }
+
+ return read_byte(offset);
+ }
+ // Cassette port read
+ else if (offset == 0xff9)
+ {
+ //logerror("%04X: Cassette port read, tap_val = %f\n", m_maincpu->pc(), tap_val);
+ double tap_val = m_cassette->input();
+
+ // compensate time spent in this access to avoid spurious RAM write
+ m_byte_started -= 5;
+
+ if (tap_val < 0)
+ return 0x00;
+ else
+ return 0x01;
+ }
+ // Possible RAM write
+ else
+ {
+ if (m_ram_write_enabled)
+ {
+ /* Check for dummy read from same address */
+ if (m_last_address == offset)
+ m_diff_adjust++;
+
+ int diff = m_maincpu->total_cycles() - m_byte_started;
+ //logerror("%04X: offset = %04X, %d\n", m_maincpu->pc(), offset, diff);
+
+ if (diff - m_diff_adjust == 5)
+ {
+ //logerror("%04X: RAM write offset = %04X, data = %02X\n", m_maincpu->pc(), offset, m_modeSS_byte );
+ if (offset < 0x800)
+ m_ram[(offset & 0x7ff) + (m_base_banks[0] * 0x800)] = m_reg;
+ else if (m_base_banks[1] != 3)
+ m_ram[(offset & 0x7ff) + (m_base_banks[1] * 0x800)] = m_reg;
+ }
+ else if (offset < 0x0100)
+ {
+ m_reg = offset;
+ m_byte_started = m_maincpu->total_cycles();
+ m_diff_adjust = 0;
+ }
+ }
+ else if (offset < 0x0100)
+ {
+ m_reg = offset;
+ m_byte_started = m_maincpu->total_cycles();
+ m_diff_adjust = 0;
+ }
+ m_last_address = offset;
+ return read_byte(offset);
+ }
+}
diff --git a/src/emu/bus/vcs/scharger.h b/src/emu/bus/vcs/scharger.h
new file mode 100644
index 00000000000..d13d8e5b6d7
--- /dev/null
+++ b/src/emu/bus/vcs/scharger.h
@@ -0,0 +1,45 @@
+#ifndef __VCS_SCHARGER_H
+#define __VCS_SCHARGER_H
+
+#include "rom.h"
+#include "imagedev/cassette.h"
+
+//**************************************************************************
+// TYPE DEFINITIONS
+//**************************************************************************
+
+// ======================> a26_rom_ss_device
+
+class a26_rom_ss_device : public a26_rom_f6_device
+{
+public:
+ // construction/destruction
+ a26_rom_ss_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
+
+ // device-level overrides
+ virtual void device_start();
+ virtual machine_config_constructor device_mconfig_additions() const;
+ virtual void device_reset();
+
+ required_device<cassette_image_device> m_cassette;
+
+ // reading and writing
+ virtual DECLARE_READ8_MEMBER(read_rom);
+
+private:
+ cpu_device *m_maincpu;
+ inline UINT8 read_byte(UINT32 offset);
+
+ int m_base_banks[2];
+ UINT8 m_reg;
+ UINT8 m_write_delay, m_ram_write_enabled, m_rom_enabled;
+ UINT32 m_byte_started;
+ UINT16 m_last_address;
+ UINT32 m_diff_adjust;
+};
+
+
+// device type definition
+extern const device_type A26_ROM_SUPERCHARGER;
+
+#endif
diff --git a/src/emu/bus/vcs/vcs_slot.c b/src/emu/bus/vcs/vcs_slot.c
new file mode 100755
index 00000000000..114c02b1743
--- /dev/null
+++ b/src/emu/bus/vcs/vcs_slot.c
@@ -0,0 +1,838 @@
+/***********************************************************************************************************
+
+
+ Atari VCS 2600 cart emulation
+ (through slot devices)
+
+ Emulation of the cartslot for Atari 2600
+ Several banking schemes have been used for larger roms,
+ and some carts contained RAM (so called "Special Chip")
+
+ Mapper identification routines based on Cowering's code.
+
+ ***********************************************************************************************************/
+
+
+#include "emu.h"
+#include "vcs_slot.h"
+
+//**************************************************************************
+// GLOBAL VARIABLES
+//**************************************************************************
+
+const device_type VCS_CART_SLOT = &device_creator<vcs_cart_slot_device>;
+
+
+//-------------------------------------------------
+// device_vcs_cart_interface - constructor
+//-------------------------------------------------
+
+device_vcs_cart_interface::device_vcs_cart_interface(const machine_config &mconfig, device_t &device)
+ : device_slot_card_interface(mconfig, device)
+{
+}
+
+
+//-------------------------------------------------
+// ~device_vcs_cart_interface - destructor
+//-------------------------------------------------
+
+device_vcs_cart_interface::~device_vcs_cart_interface()
+{
+}
+
+//-------------------------------------------------
+// rom_alloc - alloc the space for the cart
+//-------------------------------------------------
+
+void device_vcs_cart_interface::rom_alloc(UINT32 size)
+{
+ if (m_rom == NULL)
+ m_rom.resize(size);
+}
+
+//-------------------------------------------------
+// ram_alloc - alloc the space for the on-cart RAM
+//-------------------------------------------------
+
+void device_vcs_cart_interface::ram_alloc(UINT32 size)
+{
+ if (m_ram == NULL)
+ m_ram.resize(size);
+}
+
+
+
+//**************************************************************************
+// LIVE DEVICE
+//**************************************************************************
+
+//-------------------------------------------------
+// vcs_cart_slot_device - constructor
+//-------------------------------------------------
+vcs_cart_slot_device::vcs_cart_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) :
+ device_t(mconfig, VCS_CART_SLOT, "Atari VCS 2600 Cartridge Slot", tag, owner, clock, "vcs_cart_slot", __FILE__),
+ device_image_interface(mconfig, *this),
+ device_slot_interface(mconfig, *this)
+{
+}
+
+
+//-------------------------------------------------
+// vcs_cart_slot_device - destructor
+//-------------------------------------------------
+
+vcs_cart_slot_device::~vcs_cart_slot_device()
+{
+}
+
+//-------------------------------------------------
+// device_start - device-specific startup
+//-------------------------------------------------
+
+void vcs_cart_slot_device::device_start()
+{
+ m_cart = dynamic_cast<device_vcs_cart_interface *>(get_card_device());
+}
+
+//-------------------------------------------------
+// device_config_complete - perform any
+// operations now that the configuration is
+// complete
+//-------------------------------------------------
+
+void vcs_cart_slot_device::device_config_complete()
+{
+ // set brief and instance name
+ update_names();
+}
+
+
+
+/*-------------------------------------------------
+ call load
+ -------------------------------------------------*/
+
+//-------------------------------------------------
+// VCS PCBs
+//-------------------------------------------------
+
+struct vcs_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 vcs_slot slot_list[] =
+{
+ { A26_2K, "a26_2k" },
+ { A26_4K, "a26_4k" },
+ { A26_F4, "a26_f4" },
+ { A26_F6, "a26_f6" },
+ { A26_F8, "a26_f8" },
+ { A26_F8SW, "a26_f8sw" },
+ { A26_FA, "a26_fa" },
+ { A26_FE, "a26_fe" },
+ { A26_E0, "a26_e0" },
+ { A26_E7, "a26_e7" },
+ { A26_3E, "a26_3e" },
+ { A26_3F, "a26_3f" },
+ { A26_UA, "a26_ua" },
+ { A26_CV, "a26_cv" },
+ { A26_DC, "a26_dc" },
+ { A26_FV, "a26_fv" },
+ { A26_JVP, "a26_jvp" },
+ { A26_CM, "a26_cm" },
+ { A26_SS, "a26_ss" },
+ { A26_DPC, "a26_dpc" },
+ { A26_4IN1, "a26_4in1" },
+ { A26_8IN1, "a26_8in1" },
+ { A26_32IN1, "a26_32in1" },
+};
+
+static int vcs_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 *vcs_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 "a26_4k";
+}
+
+bool vcs_cart_slot_device::call_load()
+{
+ UINT8 *ROM;
+ UINT32 len;
+
+ if (software_entry() != NULL)
+ len = get_software_region_length("rom");
+ else
+ len = length();
+
+ //printf("Size: 0x%X\n", len);
+
+ // check that filesize is among the supported ones
+ switch (len)
+ {
+ case 0x00800:
+ case 0x01000:
+ case 0x02000:
+ case 0x028ff:
+ case 0x02900:
+ case 0x03000:
+ case 0x04000:
+ case 0x08000:
+ case 0x10000:
+ case 0x80000:
+ break;
+
+ default:
+ seterror(IMAGE_ERROR_UNSUPPORTED, "Invalid rom file size" );
+ return IMAGE_INIT_FAIL;
+ }
+
+ m_cart->rom_alloc(len);
+ ROM = m_cart->get_rom_base();
+
+ if (software_entry() != NULL)
+ {
+ const char *pcb_name;
+ memcpy(ROM, get_software_region("rom"), len);
+
+ if ((pcb_name = get_feature("slot")) != NULL)
+ m_type = vcs_get_pcb_id(pcb_name);
+ else
+ {
+ // identify type based on size
+ switch (len)
+ {
+ case 0x800:
+ m_type = A26_2K;
+ break;
+ case 0x1000:
+ m_type = A26_4K;
+ break;
+ case 0x2000:
+ m_type = A26_F8;
+ break;
+ case 0x28ff:
+ case 0x2900:
+ m_type = A26_DPC;
+ break;
+ case 0x3000:
+ m_type = A26_FA;
+ break;
+ case 0x4000:
+ m_type = A26_F6;
+ break;
+ case 0x8000:
+ m_type = A26_F4;
+ break;
+ case 0x10000:
+ m_type = A26_32IN1;
+ break;
+ case 0x80000:
+ m_type = A26_3F;
+ break;
+ default:
+ m_type = A26_4K;
+ printf("Unrecognized cart type!\n");
+ break;
+ }
+
+ }
+ }
+ else
+ {
+ fread(ROM, len);
+ m_type = identify_cart_type(ROM, len);
+ }
+
+ //printf("Type: %s\n", vcs_get_slot(m_type));
+
+ // check for Special Chip (128bytes of RAM)
+ if (len == 0x2000 || len == 0x4000 || len == 0x8000)
+ if (detect_super_chip(ROM, len))
+ {
+ m_cart->ram_alloc(0x80);
+ //printf("Super Chip detected!\n");
+ }
+ // Super chip games:
+ // dig dig, crystal castles, millipede, stargate, defender ii, jr. Pac Man,
+ // desert falcon, dark chambers, super football, sprintmaster, fatal run,
+ // off the wall, shooting arcade, secret quest, radar lock, save mary, klax
+
+ // add CBS RAM+ (128bytes of RAM)
+ if (m_type == A26_FA)
+ m_cart->ram_alloc(0x100);
+ // add M Network RAM
+ else if (m_type == A26_E7)
+ m_cart->ram_alloc(0x800);
+ // add Commavid RAM
+ else if (m_type == A26_CV)
+ m_cart->ram_alloc(0x400);
+ // add Starpath Superchager RAM
+ else if (m_type == A26_SS)
+ m_cart->ram_alloc(0x1800);
+ // add Boulder Dash RAM
+ else if (m_type == A26_3E)
+ m_cart->ram_alloc(0x8000);
+
+ // pass a pointer to the now allocated ROM for the DPC chip
+ if (m_type == A26_DPC)
+ m_cart->setup_addon_ptr((UINT8 *)m_cart->get_rom_base() + 0x2000);
+
+ return IMAGE_INIT_PASS;
+}
+
+
+/*-------------------------------------------------
+ call_unload
+ -------------------------------------------------*/
+
+void vcs_cart_slot_device::call_unload()
+{
+}
+
+
+
+/*-------------------------------------------------
+ call softlist load
+ -------------------------------------------------*/
+
+bool vcs_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;
+}
+
+
+/*-------------------------------------------------
+ detection helper routines
+ -------------------------------------------------*/
+
+int vcs_cart_slot_device::detect_modeDC(UINT8 *cart, UINT32 len)
+{
+ int numfound = 0;
+ // signature is also in 'video reflex'.. maybe figure out that controller port someday...
+ static const unsigned char signature[3] = { 0x8d, 0xf0, 0xff };
+
+ if (len == 0x10000)
+ {
+ for (int i = 0; i < len - sizeof signature; i++)
+ {
+ if (!memcmp(&cart[i], signature, sizeof signature))
+ {
+ numfound = 1;
+ }
+ }
+ }
+ if (numfound)
+ return 1;
+ return 0;
+}
+
+int vcs_cart_slot_device::detect_modeF6(UINT8 *cart, UINT32 len)
+{
+ int numfound = 0;
+ static const unsigned char signature[3] = { 0x8d, 0xf6, 0xff };
+
+ if (len == 0x4000)
+ {
+ for (int i = 0; i < len - sizeof signature; i++)
+ {
+ if (!memcmp(&cart[i], signature, sizeof signature))
+ {
+ numfound = 1;
+ }
+ }
+ }
+ if (numfound)
+ return 1;
+ return 0;
+}
+
+int vcs_cart_slot_device::detect_snowhite(UINT8 *cart, UINT32 len)
+{
+ static const unsigned char snowwhite[] = { 0x10, 0xd0, 0xff, 0xff }; // Snow White Proto
+
+ if (len == 0x2000 && !memcmp(&cart[0x1ffc], snowwhite, sizeof(snowwhite)))
+ return 1;
+ return 0;
+}
+
+int vcs_cart_slot_device::detect_mode3E(UINT8 *cart, UINT32 len)
+{
+ // this one is a little hacky... looks for STY $3e, which is unique to
+ // 'not boulderdash', but is the only example I have (cow)
+ // Would have used STA $3e, but 'Alien' and 'Star Raiders' do that for unknown reasons
+ int numfound = 0;
+ static const unsigned char signature[3] = { 0x84, 0x3e, 0x9d };
+
+ if (len == 0x0800 || len == 0x1000)
+ {
+ for (int i = 0; i < len - sizeof signature; i++)
+ {
+ if (!memcmp(&cart[i], signature, sizeof signature))
+ {
+ numfound = 1;
+ }
+ }
+ }
+ if (numfound)
+ return 1;
+ return 0;
+}
+
+int vcs_cart_slot_device::detect_modeSS(UINT8 *cart, UINT32 len)
+{
+ int numfound = 0;
+ static const unsigned char signature[5] = { 0xbd, 0xe5, 0xff, 0x95, 0x81 };
+
+ if (len == 0x0800 || len == 0x1000)
+ {
+ for (int i = 0; i < len - sizeof signature; i++)
+ {
+ if (!memcmp(&cart[i], signature, sizeof signature))
+ {
+ numfound = 1;
+ }
+ }
+ }
+ if (numfound)
+ return 1;
+ return 0;
+}
+
+int vcs_cart_slot_device::detect_modeFE(UINT8 *cart, UINT32 len)
+{
+ int numfound = 0;
+ static const unsigned char signatures[][5] = {
+ { 0x20, 0x00, 0xd0, 0xc6, 0xc5 },
+ { 0x20, 0xc3, 0xf8, 0xa5, 0x82 },
+ { 0xd0, 0xfb, 0x20, 0x73, 0xfe },
+ { 0x20, 0x00, 0xf0, 0x84, 0xd6 }
+ };
+
+ if (len == 0x2000)
+ {
+ for (int i = 0; i < len - (sizeof signatures/sizeof signatures[0]); i++)
+ {
+ for (int j = 0; j < (sizeof signatures/sizeof signatures[0]) && !numfound; j++)
+ {
+ if (!memcmp(&cart[i], &signatures[j], sizeof signatures[0]))
+ {
+ numfound = 1;
+ }
+ }
+ }
+ }
+ if (numfound)
+ return 1;
+ return 0;
+}
+
+int vcs_cart_slot_device::detect_modeE0(UINT8 *cart, UINT32 len)
+{
+ int numfound = 0;
+ static const unsigned char signatures[][3] = {
+ { 0x8d, 0xe0, 0x1f },
+ { 0x8d, 0xe0, 0x5f },
+ { 0x8d, 0xe9, 0xff },
+ { 0xad, 0xe9, 0xff },
+ { 0xad, 0xed, 0xff },
+ { 0xad, 0xf3, 0xbf }
+ };
+
+ if (len == 0x2000)
+ {
+ for (int i = 0; i < len - (sizeof signatures/sizeof signatures[0]); i++)
+ {
+ for (int j = 0; j < (sizeof signatures/sizeof signatures[0]) && !numfound; j++)
+ {
+ if (!memcmp(&cart[i], &signatures[j], sizeof signatures[0]))
+ {
+ numfound = 1;
+ }
+ }
+ }
+ }
+ if (numfound)
+ return 1;
+ return 0;
+}
+
+int vcs_cart_slot_device::detect_modeCV(UINT8 *cart, UINT32 len)
+{
+ int numfound = 0;
+ static const unsigned char signatures[][3] = {
+ { 0x9d, 0xff, 0xf3 },
+ { 0x99, 0x00, 0xf4 }
+ };
+
+ if (len == 0x0800 || len == 0x1000)
+ {
+ for (int i = 0; i < len - (sizeof signatures/sizeof signatures[0]); i++)
+ {
+ for (int j = 0; j < (sizeof signatures/sizeof signatures[0]) && !numfound; j++)
+ {
+ if (!memcmp(&cart[i], &signatures[j], sizeof signatures[0]))
+ {
+ numfound = 1;
+ }
+ }
+ }
+ }
+ if (numfound)
+ return 1;
+ return 0;
+}
+
+int vcs_cart_slot_device::detect_modeFV(UINT8 *cart, UINT32 len)
+{
+ int numfound = 0;
+ static const unsigned char signatures[][3] = { { 0x2c, 0xd0, 0xff } };
+
+ if (len == 0x2000)
+ {
+ for (int i = 0; i < len - (sizeof signatures/sizeof signatures[0]); i++)
+ {
+ for (int j = 0; j < (sizeof signatures/sizeof signatures[0]) && !numfound; j++)
+ {
+ if (!memcmp(&cart[i], &signatures[j], sizeof signatures[0]))
+ {
+ numfound = 1;
+ }
+ }
+ }
+ }
+ if (numfound)
+ return 1;
+ return 0;
+}
+
+int vcs_cart_slot_device::detect_modeJVP(UINT8 *cart, UINT32 len)
+{
+ int numfound = 0;
+ static const unsigned char signatures[][4] = {
+ { 0x2c, 0xc0, 0xef, 0x60 },
+ { 0x8d, 0xa0, 0x0f, 0xf0 }
+ };
+
+ if (len == 0x4000 || len == 0x2000)
+ {
+ for (int i = 0; i < len - (sizeof signatures/sizeof signatures[0]); i++)
+ {
+ for (int j = 0; j < (sizeof signatures/sizeof signatures[0]) && !numfound; j++)
+ {
+ if (!memcmp(&cart[i], &signatures[j], sizeof signatures[0]))
+ {
+ numfound = 1;
+ }
+ }
+ }
+ }
+ if (numfound)
+ return 1;
+ return 0;
+}
+
+int vcs_cart_slot_device::detect_modeE7(UINT8 *cart, UINT32 len)
+{
+ int numfound = 0;
+ static const unsigned char signatures[][3] = {
+ { 0xad, 0xe5, 0xff },
+ { 0x8d, 0xe7, 0xff }
+ };
+
+ if (len == 0x2000 || len == 0x4000)
+ {
+ for (int i = 0; i < len - (sizeof signatures/sizeof signatures[0]); i++)
+ {
+ for (int j = 0; j < (sizeof signatures/sizeof signatures[0]) && !numfound; j++)
+ {
+ if (!memcmp(&cart[i], &signatures[j], sizeof signatures[0]))
+ {
+ numfound = 1;
+ }
+ }
+ }
+ }
+ if (numfound)
+ return 1;
+ return 0;
+}
+
+int vcs_cart_slot_device::detect_modeUA(UINT8 *cart, UINT32 len)
+{
+ int numfound = 0;
+ static const unsigned char signature[3] = { 0x8d, 0x40, 0x02 };
+
+ if (len == 0x2000)
+ {
+ for (int i = 0; i < len - sizeof signature; i++)
+ {
+ if (!memcmp(&cart[i], signature, sizeof signature))
+ {
+ numfound = 1;
+ }
+ }
+ }
+ if (numfound)
+ return 1;
+ return 0;
+}
+
+int vcs_cart_slot_device::detect_8K_mode3F(UINT8 *cart, UINT32 len)
+{
+ int numfound = 0;
+ static const unsigned char signature1[4] = { 0xa9, 0x01, 0x85, 0x3f };
+ static const unsigned char signature2[4] = { 0xa9, 0x02, 0x85, 0x3f };
+ // have to look for two signatures because 'not boulderdash' gives false positive otherwise
+
+ if (len == 0x2000)
+ {
+ for (int i = 0; i < len - sizeof signature1; i++)
+ {
+ if (!memcmp(&cart[i], signature1, sizeof signature1))
+ {
+ numfound |= 0x01;
+ }
+ if (!memcmp(&cart[i], signature2, sizeof signature2))
+ {
+ numfound |= 0x02;
+ }
+ }
+ }
+ if (numfound == 0x03)
+ return 1;
+ return 0;
+}
+
+int vcs_cart_slot_device::detect_32K_mode3F(UINT8 *cart, UINT32 len)
+{
+ int numfound = 0;
+ static const unsigned char signature[4] = { 0xa9, 0x0e, 0x85, 0x3f };
+
+ if (len >= 0x8000)
+ {
+ for (int i = 0; i < len - sizeof signature; i++)
+ {
+ if (!memcmp(&cart[i], signature, sizeof signature))
+ {
+ numfound++;
+ }
+ }
+ }
+ if (numfound > 1)
+ return 1;
+ return 0;
+}
+
+int vcs_cart_slot_device::detect_super_chip(UINT8 *cart, UINT32 len)
+{
+ static const unsigned char signatures[][5] = {
+ { 0xa2, 0x7f, 0x9d, 0x00, 0xf0 }, // dig dug
+ { 0xae, 0xf6, 0xff, 0x4c, 0x00 } // off the wall
+ };
+
+ if (len == 0x4000)
+ {
+ for (int i = 0; i < len - (sizeof signatures/sizeof signatures[0]); i++)
+ {
+ for (int j = 0; j < (sizeof signatures/sizeof signatures[0]); j++)
+ {
+ if (!memcmp(&cart[i], &signatures[j], sizeof signatures[0]))
+ {
+ return 1;
+ }
+ }
+ }
+ }
+ for (int i = 0x1000; i < len; i += 0x1000)
+ {
+ if (memcmp(cart, cart + i, 0x100))
+ {
+ return 0;
+ }
+ }
+ /* Check the reset vector does not point into the super chip RAM area */
+ if ((((cart[0x0ffd] << 8) | cart[0x0ffc]) & 0x0fff) < 0x0100)
+ {
+ return 0;
+ }
+ return 1;
+}
+
+
+/*-------------------------------------------------
+ identify_cart_type - code to detect cart type from
+ fullpath
+ -------------------------------------------------*/
+
+// 4in1 & 8in1 are not currently detected from fullpath...
+int vcs_cart_slot_device::identify_cart_type(UINT8 *ROM, UINT32 len)
+{
+ int type = 0xff;
+
+ // auto-detect bank mode
+ if (detect_modeDC(ROM, len))
+ type = A26_DC;
+ else if (detect_mode3E(ROM, len))
+ type = A26_3E;
+ else if (detect_modeFE(ROM, len))
+ type = A26_FE;
+ else if (detect_modeSS(ROM, len))
+ type = A26_SS;
+ else if (detect_modeE0(ROM, len))
+ type = A26_E0;
+ else if (detect_modeCV(ROM, len))
+ type = A26_CV;
+ else if (detect_modeFV(ROM, len))
+ type = A26_FV;
+ else if (detect_modeJVP(ROM, len))
+ type = A26_JVP;
+ else if (detect_modeUA(ROM, len))
+ type = A26_UA;
+ else if (detect_8K_mode3F(ROM, len))
+ type = A26_3F;
+ else if (detect_32K_mode3F(ROM, len))
+ type = A26_3F;
+ else if (detect_modeE7(ROM, len))
+ type = A26_E7;
+ else if (detect_snowhite(ROM, len))
+ type = A26_F8SW;
+
+ // otherwise, choose based on size
+ if (type == 0xff)
+ {
+ switch (len)
+ {
+ case 0x800:
+ type = A26_2K;
+ break;
+ case 0x1000:
+ type = A26_4K;
+ break;
+ case 0x2000:
+ type = A26_F8;
+ break;
+ case 0x28ff:
+ case 0x2900:
+ type = A26_DPC;
+ break;
+ case 0x3000:
+ type = A26_FA;
+ break;
+ case 0x4000:
+ type = A26_F6;
+ break;
+ case 0x8000:
+ type = A26_F4;
+ break;
+ case 0x10000:
+ type = A26_32IN1;
+ break;
+ case 0x80000:
+ type = A26_3F;
+ break;
+ default:
+ type = A26_4K;
+ printf("Unrecognized cart type!\n");
+ break;
+ }
+ }
+
+ return type;
+}
+
+/*-------------------------------------------------
+ get default card software
+ -------------------------------------------------*/
+
+void vcs_cart_slot_device::get_default_card_software(astring &result)
+{
+ if (open_image_file(mconfig().options()))
+ {
+ const char *slot_string = "a26_4k";
+ UINT32 len = core_fsize(m_file);
+ dynamic_buffer rom(len);
+ int type;
+
+ core_fread(m_file, rom, len);
+
+ type = identify_cart_type(rom, len);
+ slot_string = vcs_get_slot(type);
+
+ clear();
+
+ result.cpy(slot_string);
+ }
+ else
+ software_get_default_slot(result, "a26_4k");
+}
+
+
+/*-------------------------------------------------
+ read
+ -------------------------------------------------*/
+
+READ8_MEMBER(vcs_cart_slot_device::read_rom)
+{
+ if (m_cart)
+ return m_cart->read_rom(space, offset, mem_mask);
+ else
+ return 0xff;
+}
+
+READ8_MEMBER(vcs_cart_slot_device::read_bank)
+{
+ if (m_cart)
+ return m_cart->read_bank(space, offset, mem_mask);
+ else
+ return 0xff;
+}
+
+
+/*-------------------------------------------------
+ write
+ -------------------------------------------------*/
+
+WRITE8_MEMBER(vcs_cart_slot_device::write_bank)
+{
+ if (m_cart)
+ m_cart->write_bank(space, offset, data, mem_mask);
+}
+
+WRITE8_MEMBER(vcs_cart_slot_device::write_ram)
+{
+ if (m_cart)
+ m_cart->write_ram(space, offset, data, mem_mask);
+}
+
+
+/*-------------------------------------------------
+ direct update
+ -------------------------------------------------*/
+
+DIRECT_UPDATE_MEMBER(vcs_cart_slot_device::cart_opbase)
+{
+ if (m_cart)
+ return m_cart->cart_opbase(direct, address);
+ else
+ return address;
+}
diff --git a/src/emu/bus/vcs/vcs_slot.h b/src/emu/bus/vcs/vcs_slot.h
new file mode 100755
index 00000000000..ce7b020d483
--- /dev/null
+++ b/src/emu/bus/vcs/vcs_slot.h
@@ -0,0 +1,154 @@
+#ifndef __VCS_SLOT_H
+#define __VCS_SLOT_H
+
+
+/***************************************************************************
+ TYPE DEFINITIONS
+ ***************************************************************************/
+
+
+/* PCB */
+enum
+{
+ A26_2K = 0,
+ A26_4K,
+ A26_F4,
+ A26_F6,
+ A26_F8,
+ A26_F8SW,
+ A26_FA,
+ A26_FE,
+ A26_3E, // to test
+ A26_3F,
+ A26_E0,
+ A26_E7,
+ A26_UA,
+ A26_DC,
+ A26_CV,
+ A26_FV,
+ A26_JVP, // to test
+ A26_32IN1,
+ A26_8IN1,
+ A26_4IN1,
+ A26_DPC,
+ A26_SS,
+ A26_CM
+};
+
+
+// ======================> device_vcs_cart_interface
+
+class device_vcs_cart_interface : public device_slot_card_interface
+{
+public:
+ // construction/destruction
+ device_vcs_cart_interface(const machine_config &mconfig, device_t &device);
+ virtual ~device_vcs_cart_interface();
+
+ // reading from ROM
+ virtual DECLARE_READ8_MEMBER(read_rom) { return 0xff; }
+ // writing to RAM chips (sometimes it is in a different range than write_bank!)
+ virtual DECLARE_WRITE8_MEMBER(write_ram) {}
+
+ // read/write to bankswitch address
+ virtual DECLARE_READ8_MEMBER(read_bank) { return 0xff; }
+ virtual DECLARE_WRITE8_MEMBER(write_bank) {}
+
+ // direct update handler
+ virtual DECLARE_DIRECT_UPDATE_MEMBER(cart_opbase) { return address; }
+
+ virtual void setup_addon_ptr(UINT8 *ptr) {}
+
+ void rom_alloc(UINT32 size);
+ 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.bytes(); }
+ UINT32 get_ram_size() { return m_ram.bytes(); }
+
+protected:
+ // internal state
+ dynamic_buffer m_rom;
+ dynamic_buffer m_ram;
+};
+
+
+// ======================> vcs_cart_slot_device
+
+class vcs_cart_slot_device : public device_t,
+ public device_image_interface,
+ public device_slot_interface
+{
+public:
+ // construction/destruction
+ vcs_cart_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
+ virtual ~vcs_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_cart_type() { return m_type; };
+ int identify_cart_type(UINT8 *ROM, UINT32 len);
+
+ 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 1; }
+ 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 "a2600_cart"; }
+ virtual const char *file_extensions() const { return "bin,a26"; }
+
+ // slot interface overrides
+ virtual void get_default_card_software(astring &result);
+
+ // reading and writing
+ virtual DECLARE_READ8_MEMBER(read_rom);
+ virtual DECLARE_READ8_MEMBER(read_bank);
+ virtual DECLARE_WRITE8_MEMBER(write_bank);
+ virtual DECLARE_WRITE8_MEMBER(write_ram);
+ virtual DECLARE_DIRECT_UPDATE_MEMBER(cart_opbase);
+
+private:
+ device_vcs_cart_interface* m_cart;
+ int m_type;
+
+ int detect_snowhite(UINT8 *cart, UINT32 len);
+ int detect_modeDC(UINT8 *cart, UINT32 len);
+ int detect_modeF6(UINT8 *cart, UINT32 len);
+ int detect_mode3E(UINT8 *cart, UINT32 len);
+ int detect_modeSS(UINT8 *cart, UINT32 len);
+ int detect_modeFE(UINT8 *cart, UINT32 len);
+ int detect_modeE0(UINT8 *cart, UINT32 len);
+ int detect_modeCV(UINT8 *cart, UINT32 len);
+ int detect_modeFV(UINT8 *cart, UINT32 len);
+ int detect_modeJVP(UINT8 *cart, UINT32 len);
+ int detect_modeE7(UINT8 *cart, UINT32 len);
+ int detect_modeUA(UINT8 *cart, UINT32 len);
+ int detect_8K_mode3F(UINT8 *cart, UINT32 len);
+ int detect_32K_mode3F(UINT8 *cart, UINT32 len);
+ int detect_super_chip(UINT8 *cart, UINT32 len);
+};
+
+
+// device type definition
+extern const device_type VCS_CART_SLOT;
+
+
+/***************************************************************************
+ DEVICE CONFIGURATION MACROS
+ ***************************************************************************/
+
+#define MCFG_VCS_CARTRIDGE_ADD(_tag,_slot_intf,_def_slot) \
+ MCFG_DEVICE_ADD(_tag, VCS_CART_SLOT, 0) \
+ MCFG_DEVICE_SLOT_INTERFACE(_slot_intf, _def_slot, false)
+
+
+#endif
diff --git a/src/mess/drivers/a2600.c b/src/mess/drivers/a2600.c
index a165be50b88..c2f2dfea7cc 100644
--- a/src/mess/drivers/a2600.c
+++ b/src/mess/drivers/a2600.c
@@ -11,39 +11,18 @@ TODO:
#include "emu.h"
#include "machine/6532riot.h"
#include "cpu/m6502/m6502.h"
-#include "sound/wave.h"
#include "sound/tiaintf.h"
-#include "imagedev/cartslot.h"
-#include "imagedev/cassette.h"
-#include "formats/a26_cas.h"
#include "video/tia.h"
-#include "bus/vcs/ctrl.h"
-#include "hashfile.h"
+#include "bus/vcs/vcs_slot.h"
+#include "bus/vcs/rom.h"
+#include "bus/vcs/dpc.h"
+#include "bus/vcs/scharger.h"
+#include "bus/vcs/compumat.h"
+#include "bus/vcs_ctrl/ctrl.h"
#define CONTROL1_TAG "joyport1"
#define CONTROL2_TAG "joyport2"
-struct df_t {
- UINT8 top;
- UINT8 bottom;
- UINT8 low;
- UINT8 high;
- UINT8 flag;
- UINT8 music_mode; /* Only used by data fetchers 5,6, and 7 */
- UINT8 osc_clk; /* Only used by data fetchers 5,6, and 7 */
-};
-
-struct dpc_t
-{
- df_t df[8];
- UINT8 movamt;
- UINT8 latch_62;
- UINT8 latch_64;
- UINT8 dlc;
- UINT8 shift_reg;
- emu_timer *oscillator;
-};
-
class a2600_state : public driver_device
{
@@ -51,1224 +30,54 @@ public:
a2600_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag),
m_riot_ram(*this, "riot_ram"),
- m_banking_mode(0xff),
m_joy1(*this, CONTROL1_TAG),
m_joy2(*this, CONTROL2_TAG) ,
+ m_cartslot(*this, "cartslot"),
m_maincpu(*this, "maincpu"),
- m_cassette(*this, "cassette"),
- m_modeFE_trigger_on_next_access(false),
m_screen(*this, "screen") { }
- dpc_t m_dpc;
- memory_region* m_extra_RAM;
- UINT8* m_bank_base[5];
- UINT8* m_ram_base;
required_shared_ptr<UINT8> m_riot_ram;
- UINT8 m_banking_mode;
- unsigned m_cart_size;
- unsigned m_number_banks;
- unsigned m_current_bank;
- unsigned m_current_reset_bank_counter;
- unsigned m_mode3E_ram_enabled;
- UINT8 m_modeSS_byte;
- UINT32 m_modeSS_byte_started;
- unsigned m_modeSS_write_delay;
- unsigned m_modeSS_write_enabled;
- unsigned m_modeSS_high_ram_enabled;
- unsigned m_modeSS_diff_adjust;
- UINT16 m_modeSS_last_address;
- unsigned m_FVlocked;
UINT16 m_current_screen_height;
- DECLARE_DIRECT_UPDATE_MEMBER(modeF6_opbase);
- DECLARE_DIRECT_UPDATE_MEMBER(modeDPC_opbase_handler);
- DECLARE_READ8_MEMBER(modeF8_switch_r);
- DECLARE_READ8_MEMBER(modeFA_switch_r);
- DECLARE_READ8_MEMBER(modeF6_switch_r);
- DECLARE_READ8_MEMBER(modeF4_switch_r);
- DECLARE_READ8_MEMBER(modeE0_switch_r);
- DECLARE_READ8_MEMBER(modeE7_switch_r);
- DECLARE_READ8_MEMBER(modeE7_RAM_switch_r);
- DECLARE_READ8_MEMBER(modeUA_switch_r);
- DECLARE_READ8_MEMBER(modeDC_switch_r);
- DECLARE_READ8_MEMBER(modeFV_switch_r);
- DECLARE_READ8_MEMBER(modeJVP_switch_r);
- DECLARE_WRITE8_MEMBER(modeF8_switch_w);
- DECLARE_WRITE8_MEMBER(modeFA_switch_w);
- DECLARE_WRITE8_MEMBER(modeF6_switch_w);
- DECLARE_WRITE8_MEMBER(modeF4_switch_w);
- DECLARE_WRITE8_MEMBER(modeE0_switch_w);
- DECLARE_WRITE8_MEMBER(modeE7_switch_w);
- DECLARE_WRITE8_MEMBER(modeE7_RAM_switch_w);
- DECLARE_WRITE8_MEMBER(mode3F_switch_w);
- DECLARE_WRITE8_MEMBER(modeUA_switch_w);
- DECLARE_WRITE8_MEMBER(modeDC_switch_w);
- DECLARE_WRITE8_MEMBER(mode3E_switch_w);
- DECLARE_WRITE8_MEMBER(mode3E_RAM_switch_w);
- DECLARE_WRITE8_MEMBER(mode3E_RAM_w);
- DECLARE_WRITE8_MEMBER(modeFV_switch_w);
- DECLARE_WRITE8_MEMBER(modeJVP_switch_w);
- DECLARE_READ8_MEMBER(modeSS_r);
- DECLARE_READ8_MEMBER(modeDPC_r);
- DECLARE_WRITE8_MEMBER(modeDPC_w);
- DECLARE_READ8_MEMBER(modeFE_switch_r);
- DECLARE_WRITE8_MEMBER(modeFE_switch_w);
- DECLARE_READ8_MEMBER(modeFE_rom_r);
- DECLARE_READ8_MEMBER(current_bank_r);
- DECLARE_READ16_MEMBER(a2600_read_input_port);
- DECLARE_READ8_MEMBER(a2600_get_databus_contents);
- DECLARE_WRITE16_MEMBER(a2600_tia_vsync_callback);
- DECLARE_WRITE16_MEMBER(a2600_tia_vsync_callback_pal);
- void modeDPC_check_flag(UINT8 data_fetcher);
- void modeDPC_decrement_counter(UINT8 data_fetcher);
- virtual void machine_reset();
DECLARE_MACHINE_START(a2600);
- TIMER_CALLBACK_MEMBER(modeDPC_timer_callback);
DECLARE_WRITE8_MEMBER(switch_A_w);
DECLARE_READ8_MEMBER(switch_A_r);
DECLARE_WRITE8_MEMBER(switch_B_w);
DECLARE_WRITE_LINE_MEMBER(irq_callback);
DECLARE_READ8_MEMBER(riot_input_port_8_r);
- DECLARE_DEVICE_IMAGE_LOAD_MEMBER( a2600_cart );
+ DECLARE_READ16_MEMBER(a2600_read_input_port);
+ DECLARE_READ8_MEMBER(a2600_get_databus_contents);
+ DECLARE_WRITE16_MEMBER(a2600_tia_vsync_callback);
+ DECLARE_WRITE16_MEMBER(a2600_tia_vsync_callback_pal);
+ // investigate how the carts mapped here (Mapper JVP) interact with the RIOT device
+ DECLARE_READ8_MEMBER(cart_over_riot_r);
+ DECLARE_WRITE8_MEMBER(cart_over_riot_w);
protected:
required_device<vcs_control_port_device> m_joy1;
required_device<vcs_control_port_device> m_joy2;
- int next_bank();
- void modeF8_switch(UINT16 offset, UINT8 data);
- void modeFA_switch(UINT16 offset, UINT8 data);
- void modeF6_switch(UINT16 offset, UINT8 data);
- void modeF4_switch(UINT16 offset, UINT8 data);
- void mode3F_switch(UINT16 offset, UINT8 data);
- void modeUA_switch(UINT16 offset, UINT8 data);
- void modeE0_switch(UINT16 offset, UINT8 data);
- void modeE7_switch(UINT16 offset, UINT8 data);
- void modeE7_RAM_switch(UINT16 offset, UINT8 data);
- void modeDC_switch(UINT16 offset, UINT8 data);
- void mode3E_switch(UINT16 offset, UINT8 data);
- void mode3E_RAM_switch(UINT16 offset, UINT8 data);
- void modeFV_switch(UINT16 offset, UINT8 data);
- void modeJVP_switch(UINT16 offset, UINT8 data);
- void install_banks(int count, unsigned init);
-
- UINT8 *m_cart;
- int detect_modeDC();
- int detect_modef6();
- int detect_mode3E();
- int detect_modeSS();
- int detect_modeFE();
- int detect_modeE0();
- int detect_modeCV();
- int detect_modeFV();
- int detect_modeJVP();
- int detect_modeE7();
- int detect_modeUA();
- int detect_8K_mode3F();
- int detect_32K_mode3F();
- int detect_super_chip();
+ required_device<vcs_cart_slot_device> m_cartslot;
+
unsigned long detect_2600controllers();
required_device<m6502_device> m_maincpu;
- required_device<cassette_image_device> m_cassette;
- bool m_modeFE_trigger_on_next_access;
required_device<screen_device> m_screen;
};
-#define CART machine().root_device().memregion("user1")->base()
-
#define MASTER_CLOCK_NTSC 3579545
#define MASTER_CLOCK_PAL 3546894
#define CATEGORY_SELECT 16
-enum
-{
- mode2K,
- mode4K,
- modeF8,
- modeFA,
- modeF6,
- modeF4,
- modeFE,
- modeE0,
- mode3F,
- modeUA,
- modeE7,
- modeDC,
- modeCV,
- mode3E,
- modeSS,
- modeFV,
- modeDPC,
- mode32in1,
- modeJVP,
- mode8in1,
- mode4in1
-};
-
static const UINT16 supported_screen_heights[4] = { 262, 312, 328, 342 };
-int a2600_state::detect_modeDC()
-{
- int i,numfound = 0;
- // signature is also in 'video reflex'.. maybe figure out that controller port someday...
- static const unsigned char signature[3] = { 0x8d, 0xf0, 0xff };
- if (m_cart_size == 0x10000)
- {
- UINT8 *cart = CART;
- for (i = 0; i < m_cart_size - sizeof signature; i++)
- {
- if (!memcmp(&cart[i], signature,sizeof signature))
- {
- numfound = 1;
- }
- }
- }
- if (numfound) return 1;
- return 0;
-}
-
-int a2600_state::detect_modef6()
-{
- int i, numfound = 0;
- static const unsigned char signature[3] = { 0x8d, 0xf6, 0xff };
- if (m_cart_size == 0x4000)
- {
- UINT8 *cart = CART;
- for (i = 0; i < m_cart_size - sizeof signature; i++)
- {
- if (!memcmp(&cart[i], signature, sizeof signature))
- {
- numfound = 1;
- }
- }
- }
- if (numfound) return 1;
- return 0;
-}
-
-int a2600_state::detect_mode3E()
-{
- // this one is a little hacky.. looks for STY $3e, which is unique to
- // 'not boulderdash', but is the only example i have (cow)
- // Would have used STA $3e, but 'Alien' and 'Star Raiders' do that for unknown reasons
-
- int i,numfound = 0;
- static const unsigned char signature[3] = { 0x84, 0x3e, 0x9d };
- if (m_cart_size == 0x0800 || m_cart_size == 0x1000)
- {
- UINT8 *cart = CART;
- for (i = 0; i < m_cart_size - sizeof signature; i++)
- {
- if (!memcmp(&cart[i], signature,sizeof signature))
- {
- numfound = 1;
- }
- }
- }
- if (numfound) return 1;
- return 0;
-}
-
-int a2600_state::detect_modeSS()
-{
- int i,numfound = 0;
- static const unsigned char signature[5] = { 0xbd, 0xe5, 0xff, 0x95, 0x81 };
- if (m_cart_size == 0x0800 || m_cart_size == 0x1000)
- {
- UINT8 *cart = CART;
- for (i = 0; i < m_cart_size - sizeof signature; i++)
- {
- if (!memcmp(&cart[i], signature,sizeof signature))
- {
- numfound = 1;
- }
- }
- }
- if (numfound) return 1;
- return 0;
-}
-
-int a2600_state::detect_modeFE()
-{
- int i,j,numfound = 0;
- static const unsigned char signatures[][5] = {
- { 0x20, 0x00, 0xd0, 0xc6, 0xc5 },
- { 0x20, 0xc3, 0xf8, 0xa5, 0x82 },
- { 0xd0, 0xfb, 0x20, 0x73, 0xfe },
- { 0x20, 0x00, 0xf0, 0x84, 0xd6 }
- };
- if (m_cart_size == 0x2000)
- {
- UINT8 *cart = CART;
- for (i = 0; i < m_cart_size - (sizeof signatures/sizeof signatures[0]); i++)
- {
- for (j = 0; j < (sizeof signatures/sizeof signatures[0]) && !numfound; j++)
- {
- if (!memcmp(&cart[i], &signatures[j],sizeof signatures[0]))
- {
- numfound = 1;
- }
- }
- }
- }
- if (numfound) return 1;
- return 0;
-}
-
-int a2600_state::detect_modeE0()
-{
- int i,j,numfound = 0;
- static const unsigned char signatures[][3] = {
- { 0x8d, 0xe0, 0x1f },
- { 0x8d, 0xe0, 0x5f },
- { 0x8d, 0xe9, 0xff },
- { 0xad, 0xe9, 0xff },
- { 0xad, 0xed, 0xff },
- { 0xad, 0xf3, 0xbf }
- };
- if (m_cart_size == 0x2000)
- {
- UINT8 *cart = CART;
- for (i = 0; i < m_cart_size - (sizeof signatures/sizeof signatures[0]); i++)
- {
- for (j = 0; j < (sizeof signatures/sizeof signatures[0]) && !numfound; j++)
- {
- if (!memcmp(&cart[i], &signatures[j],sizeof signatures[0]))
- {
- numfound = 1;
- }
- }
- }
- }
- if (numfound) return 1;
- return 0;
-}
-
-int a2600_state::detect_modeCV()
-{
- int i,j,numfound = 0;
- static const unsigned char signatures[][3] = {
- { 0x9d, 0xff, 0xf3 },
- { 0x99, 0x00, 0xf4 }
- };
- if (m_cart_size == 0x0800 || m_cart_size == 0x1000)
- {
- UINT8 *cart = CART;
- for (i = 0; i < m_cart_size - (sizeof signatures/sizeof signatures[0]); i++)
- {
- for (j = 0; j < (sizeof signatures/sizeof signatures[0]) && !numfound; j++)
- {
- if (!memcmp(&cart[i], &signatures[j],sizeof signatures[0]))
- {
- numfound = 1;
- }
- }
- }
- }
- if (numfound) return 1;
- return 0;
-}
-
-int a2600_state::detect_modeFV()
-{
- int i,j,numfound = 0;
- static const unsigned char signatures[][3] = {
- { 0x2c, 0xd0, 0xff }
- };
- if (m_cart_size == 0x2000)
- {
- UINT8 *cart = CART;
- for (i = 0; i < m_cart_size - (sizeof signatures/sizeof signatures[0]); i++)
- {
- for (j = 0; j < (sizeof signatures/sizeof signatures[0]) && !numfound; j++)
- {
- if (!memcmp(&cart[i], &signatures[j],sizeof signatures[0]))
- {
- numfound = 1;
- }
- }
- }
- m_FVlocked = 0;
- }
- if (numfound) return 1;
- return 0;
-}
-
-int a2600_state::detect_modeJVP()
-{
- int i,j,numfound = 0;
- static const unsigned char signatures[][4] = {
- { 0x2c, 0xc0, 0xef, 0x60 },
- { 0x8d, 0xa0, 0x0f, 0xf0 }
- };
- if (m_cart_size == 0x4000 || m_cart_size == 0x2000)
- {
- UINT8 *cart = CART;
- for (i = 0; i < m_cart_size - (sizeof signatures/sizeof signatures[0]); i++)
- {
- for (j = 0; j < (sizeof signatures/sizeof signatures[0]) && !numfound; j++)
- {
- if (!memcmp(&cart[i], &signatures[j],sizeof signatures[0]))
- {
- numfound = 1;
- }
- }
- }
- }
- if (numfound) return 1;
- return 0;
-}
-
-int a2600_state::detect_modeE7()
-{
- int i,j,numfound = 0;
- static const unsigned char signatures[][3] = {
- { 0xad, 0xe5, 0xff },
- { 0x8d, 0xe7, 0xff }
- };
- if (m_cart_size == 0x2000 || m_cart_size == 0x4000)
- {
- UINT8 *cart = CART;
- for (i = 0; i < m_cart_size - (sizeof signatures/sizeof signatures[0]); i++)
- {
- for (j = 0; j < (sizeof signatures/sizeof signatures[0]) && !numfound; j++)
- {
- if (!memcmp(&cart[i], &signatures[j],sizeof signatures[0]))
- {
- numfound = 1;
- }
- }
- }
- }
- if (numfound) return 1;
- return 0;
-}
-
-int a2600_state::detect_modeUA()
-{
- int i,numfound = 0;
- static const unsigned char signature[3] = { 0x8d, 0x40, 0x02 };
- if (m_cart_size == 0x2000)
- {
- UINT8 *cart = CART;
- for (i = 0; i < m_cart_size - sizeof signature; i++)
- {
- if (!memcmp(&cart[i], signature,sizeof signature))
- {
- numfound = 1;
- }
- }
- }
- if (numfound) return 1;
- return 0;
-}
-
-int a2600_state::detect_8K_mode3F()
-{
- int i,numfound = 0;
- static const unsigned char signature1[4] = { 0xa9, 0x01, 0x85, 0x3f };
- static const unsigned char signature2[4] = { 0xa9, 0x02, 0x85, 0x3f };
- // have to look for two signatures because 'not boulderdash' gives false positive otherwise
- if (m_cart_size == 0x2000)
- {
- UINT8 *cart = CART;
- for (i = 0; i < m_cart_size - sizeof signature1; i++)
- {
- if (!memcmp(&cart[i], signature1,sizeof signature1))
- {
- numfound |= 0x01;
- }
- if (!memcmp(&cart[i], signature2,sizeof signature2))
- {
- numfound |= 0x02;
- }
- }
- }
- if (numfound == 0x03) return 1;
- return 0;
-}
-
-int a2600_state::detect_32K_mode3F()
-{
- int i,numfound = 0;
- static const unsigned char signature[4] = { 0xa9, 0x0e, 0x85, 0x3f };
- if (m_cart_size >= 0x8000)
- {
- UINT8 *cart = CART;
- for (i = 0; i < m_cart_size - sizeof signature; i++)
- {
- if (!memcmp(&cart[i], signature,sizeof signature))
- {
- numfound++;
- }
- }
- }
- if (numfound > 1) return 1;
- return 0;
-}
-
-int a2600_state::detect_super_chip()
-{
- int i,j;
- UINT8 *cart = CART;
- static const unsigned char signatures[][5] = {
- { 0xa2, 0x7f, 0x9d, 0x00, 0xf0 }, // dig dug
- { 0xae, 0xf6, 0xff, 0x4c, 0x00 } // off the wall
- };
-
- if (m_cart_size == 0x4000)
- {
- for (i = 0; i < m_cart_size - (sizeof signatures/sizeof signatures[0]); i++)
- {
- for (j = 0; j < (sizeof signatures/sizeof signatures[0]); j++)
- {
- if (!memcmp(&cart[i], &signatures[j],sizeof signatures[0]))
- {
- return 1;
- }
- }
- }
- }
- for (i = 0x1000; i < m_cart_size; i += 0x1000)
- {
- if (memcmp(cart, cart + i, 0x100))
- {
- return 0;
- }
- }
- /* Check the reset vector does not point into the super chip RAM area */
- i = ( cart[0x0FFD] << 8 ) | cart[0x0FFC];
- if ( ( i & 0x0FFF ) < 0x0100 )
- {
- return 0;
- }
- return 1;
-}
-
-
-DEVICE_IMAGE_LOAD_MEMBER( a2600_state, a2600_cart )
-{
- UINT8 *cart = memregion("user1")->base();
-
- if (image.software_entry() == NULL)
- m_cart_size = image.length();
- else
- m_cart_size = image.get_software_region_length("rom");
-
- switch (m_cart_size)
- {
- case 0x00800:
- case 0x01000:
- case 0x02000:
- case 0x028ff:
- case 0x02900:
- case 0x03000:
- case 0x04000:
- case 0x08000:
- case 0x10000:
- case 0x80000:
- break;
-
- default:
- image.seterror(IMAGE_ERROR_UNSUPPORTED, "Invalid rom file size" );
- return 1; /* unsupported image format */
- }
-
- m_current_bank = 0;
-
- if (image.software_entry() == NULL)
- {
- image.fread(cart, m_cart_size);
- }
- else
- {
- memcpy(cart, image.get_software_region("rom"), m_cart_size);
-
- const char *mapper = image.get_feature("mapper");
-
- if ( mapper != NULL )
- {
- static const struct { const char *mapper_name; int mapper_type; } mapper_types[] =
- {
- { "F8", modeF8 },
- { "FA", modeFA },
- { "F6", modeF6 },
- { "F4", modeF4 },
- { "FE", modeFE },
- { "E0", modeE0 },
- { "3F", mode3F },
- { "UA", modeUA },
- { "E7", modeE7 },
- { "DC", modeDC },
- { "CV", modeCV },
- { "3E", mode3E },
- { "SS", modeSS },
- { "FV", modeFV },
- { "DPC", modeDPC },
- { "32in1", mode32in1 },
- { "JVP", modeJVP },
- { "4in1", mode4in1 },
- { "8in1", mode8in1 },
- };
-
- for (int i = 0; i < ARRAY_LENGTH(mapper_types) && m_banking_mode == 0xff; i++)
- {
- if (!core_stricmp(mapper, mapper_types[i].mapper_name))
- {
- m_banking_mode = mapper_types[i].mapper_type;
- }
- }
- }
- }
-
- if (!(m_cart_size == 0x4000 && detect_modef6()))
- {
- while (m_cart_size > 0x00800)
- {
- if (!memcmp(cart, &cart[m_cart_size/2],m_cart_size/2)) m_cart_size /= 2;
- else break;
- }
- }
-
- return 0;
-}
-
-
-int a2600_state::next_bank()
-{
- return m_current_bank = (m_current_bank + 1) % 16;
-}
-
-
-void a2600_state::modeF8_switch(UINT16 offset, UINT8 data)
-{
- m_bank_base[1] = m_cart + 0x2000 * m_current_reset_bank_counter + 0x1000 * offset;
- membank("bank1")->set_base(m_bank_base[1]);
-}
-
-void a2600_state::modeFA_switch(UINT16 offset, UINT8 data)
-{
- m_bank_base[1] = m_cart + 0x1000 * offset;
- membank("bank1")->set_base(m_bank_base[1]);
-}
-
-void a2600_state::modeF6_switch(UINT16 offset, UINT8 data)
-{
- m_bank_base[1] = m_cart + 0x1000 * offset;
- membank("bank1")->set_base(m_bank_base[1]);
-}
-
-void a2600_state::modeF4_switch(UINT16 offset, UINT8 data)
-{
- m_bank_base[1] = m_cart + 0x1000 * offset;
- membank("bank1")->set_base(m_bank_base[1]);
-}
-
-void a2600_state::mode3F_switch(UINT16 offset, UINT8 data)
-{
- m_bank_base[1] = m_cart + 0x800 * (data & (m_number_banks - 1));
- membank("bank1")->set_base(m_bank_base[1]);
-}
-
-void a2600_state::modeUA_switch(UINT16 offset, UINT8 data)
-{
- m_bank_base[1] = m_cart + (offset >> 6) * 0x1000;
- membank("bank1")->set_base(m_bank_base[1]);
-}
-
-void a2600_state::modeE0_switch(UINT16 offset, UINT8 data)
-{
- int bank = 1 + (offset >> 3);
- char bank_name[10];
- sprintf(bank_name,"bank%d",bank);
- m_bank_base[bank] = m_cart + 0x400 * (offset & 7);
- membank(bank_name)->set_base(m_bank_base[bank]);
-}
-
-void a2600_state::modeE7_switch(UINT16 offset, UINT8 data)
-{
- m_bank_base[1] = m_cart + 0x800 * offset;
- membank("bank1")->set_base(m_bank_base[1]);
-}
-
-void a2600_state::modeE7_RAM_switch(UINT16 offset, UINT8 data)
-{
- membank("bank9")->set_base(m_extra_RAM->base() + (4 + offset) * 256 );
-}
-
-void a2600_state::modeDC_switch(UINT16 offset, UINT8 data)
-{
- m_bank_base[1] = m_cart + 0x1000 * next_bank();
- membank("bank1")->set_base(m_bank_base[1]);
-}
-
-void a2600_state::mode3E_switch(UINT16 offset, UINT8 data)
-{
- m_bank_base[1] = m_cart + 0x800 * (data & (m_number_banks - 1));
- membank("bank1")->set_base(m_bank_base[1]);
- m_mode3E_ram_enabled = 0;
-}
-
-void a2600_state::mode3E_RAM_switch(UINT16 offset, UINT8 data)
-{
- m_ram_base = m_extra_RAM->base() + 0x200 * ( data & 0x3F );
- membank("bank1")->set_base(m_ram_base);
- m_mode3E_ram_enabled = 1;
-}
-
-void a2600_state::modeFV_switch(UINT16 offset, UINT8 data)
-{
- if (!m_FVlocked && ( m_maincpu->pc() & 0x1F00 ) == 0x1F00 )
- {
- m_FVlocked = 1;
- m_current_bank = m_current_bank ^ 0x01;
- m_bank_base[1] = m_cart + 0x1000 * m_current_bank;
- membank("bank1")->set_base(m_bank_base[1]);
- }
-}
-
-void a2600_state::modeJVP_switch(UINT16 offset, UINT8 data)
-{
- switch( offset )
- {
- case 0x00:
- case 0x20:
- m_current_bank ^= 1;
- break;
- default:
- printf("%04X: write to unknown mapper address %02X\n", m_maincpu->pc(), 0xfa0 + offset );
- break;
- }
- m_bank_base[1] = m_cart + 0x1000 * m_current_bank;
- membank("bank1")->set_base(m_bank_base[1] );
-}
-
-
-/* These read handlers will return the byte from the new bank */
-READ8_MEMBER(a2600_state::modeF8_switch_r)
-{
- if ( !space.debugger_access() )
- {
- modeF8_switch(offset, 0);
- }
- return m_bank_base[1][0xff8 + offset];
-}
-
-READ8_MEMBER(a2600_state::modeFA_switch_r)
-{
- if ( !space.debugger_access() )
- {
- modeFA_switch(offset, 0);
- }
- return m_bank_base[1][0xff8 + offset];
-}
-
-READ8_MEMBER(a2600_state::modeF6_switch_r)
-{
- if ( ! space.debugger_access() )
- {
- modeF6_switch(offset, 0);
- }
- return m_bank_base[1][0xff6 + offset];
-}
-
-READ8_MEMBER(a2600_state::modeF4_switch_r)
-{
- if ( ! space.debugger_access() )
- {
- modeF4_switch(offset, 0);
- }
- return m_bank_base[1][0xff4 + offset];
-}
-
-READ8_MEMBER(a2600_state::modeE0_switch_r)
-{
- if ( ! space.debugger_access() )
- {
- modeE0_switch(offset, 0);
- }
- return m_bank_base[4][0x3e0 + offset];
-}
-
-READ8_MEMBER(a2600_state::modeE7_switch_r)
-{
- if ( ! space.debugger_access() )
- {
- modeE7_switch(offset, 0);
- }
- return m_bank_base[1][0xfe0 + offset];
-}
-
-READ8_MEMBER(a2600_state::modeE7_RAM_switch_r)
-{
- if ( ! space.debugger_access() )
- {
- modeE7_RAM_switch(offset, 0);
- }
- return 0;
-}
-
-READ8_MEMBER(a2600_state::modeUA_switch_r)
-{
- if ( ! space.debugger_access() )
- {
- modeUA_switch(offset, 0);
- }
- return 0;
-}
-
-READ8_MEMBER(a2600_state::modeDC_switch_r)
-{
- if ( ! space.debugger_access() )
- {
- modeDC_switch(offset, 0);
- }
- return m_bank_base[1][0xff0 + offset];
-}
-
-READ8_MEMBER(a2600_state::modeFV_switch_r)
-{
- if ( ! space.debugger_access() )
- {
- modeFV_switch(offset, 0);
- }
- return m_bank_base[1][0xfd0 + offset];
-}
-
-READ8_MEMBER(a2600_state::modeJVP_switch_r)
-{
- if ( ! space.debugger_access() )
- {
- modeJVP_switch(offset, 0);
- }
- return m_riot_ram[ 0x20 + offset ];
-}
-
-
-WRITE8_MEMBER(a2600_state::modeF8_switch_w){ modeF8_switch(offset, data); }
-WRITE8_MEMBER(a2600_state::modeFA_switch_w){ modeFA_switch(offset, data); }
-WRITE8_MEMBER(a2600_state::modeF6_switch_w){ modeF6_switch(offset, data); }
-WRITE8_MEMBER(a2600_state::modeF4_switch_w){ modeF4_switch(offset, data); }
-WRITE8_MEMBER(a2600_state::modeE0_switch_w){ modeE0_switch(offset, data); }
-WRITE8_MEMBER(a2600_state::modeE7_switch_w){ modeE7_switch(offset, data); }
-WRITE8_MEMBER(a2600_state::modeE7_RAM_switch_w){ modeE7_RAM_switch(offset, data); }
-WRITE8_MEMBER(a2600_state::mode3F_switch_w){ mode3F_switch(offset, data); }
-WRITE8_MEMBER(a2600_state::modeUA_switch_w){ modeUA_switch(offset, data); }
-WRITE8_MEMBER(a2600_state::modeDC_switch_w){ modeDC_switch(offset, data); }
-WRITE8_MEMBER(a2600_state::mode3E_switch_w){ mode3E_switch(offset, data); }
-WRITE8_MEMBER(a2600_state::mode3E_RAM_switch_w){ mode3E_RAM_switch(offset, data); }
-WRITE8_MEMBER(a2600_state::mode3E_RAM_w)
-{
- if ( m_mode3E_ram_enabled )
- {
- m_ram_base[offset] = data;
- }
-}
-WRITE8_MEMBER(a2600_state::modeFV_switch_w){ modeFV_switch(offset, data); }
-WRITE8_MEMBER(a2600_state::modeJVP_switch_w)
-{
- modeJVP_switch(offset, data); m_riot_ram[ 0x20 + offset ] = data;
-}
-
-
-DIRECT_UPDATE_MEMBER(a2600_state::modeF6_opbase)
-{
- if ( ( address & 0x1FFF ) >= 0x1FF6 && ( address & 0x1FFF ) <= 0x1FF9 )
- {
- if ( ! direct.space().debugger_access() )
- {
- modeF6_switch_w(m_maincpu->space(AS_PROGRAM), ( address & 0x1FFF ) - 0x1FF6, 0 );
- }
- }
- return address;
-}
-
-
-READ8_MEMBER(a2600_state::modeSS_r)
-{
- UINT8 data = ( offset & 0x800 ) ? m_bank_base[2][offset & 0x7FF] : m_bank_base[1][offset];
-
- if ( space.debugger_access() )
- {
- return data;
- }
-
- //logerror("%04X: read from modeSS area offset = %04X\n", m_maincpu->pc(), offset);
- /* Check for control register "write" */
- if ( offset == 0xFF8 )
- {
- //logerror("%04X: write to modeSS control register data = %02X\n", m_maincpu->pc(), m_modeSS_byte);
- m_modeSS_write_enabled = m_modeSS_byte & 0x02;
- m_modeSS_write_delay = m_modeSS_byte >> 5;
- switch ( m_modeSS_byte & 0x1C )
- {
- case 0x00:
- m_bank_base[1] = m_extra_RAM->base() + 2 * 0x800;
- m_bank_base[2] = ( m_modeSS_byte & 0x01 ) ? memregion("maincpu")->base() + 0x1800 : memregion("user1")->base();
- m_modeSS_high_ram_enabled = 0;
- break;
- case 0x04:
- m_bank_base[1] = m_extra_RAM->base();
- m_bank_base[2] = ( m_modeSS_byte & 0x01 ) ? memregion("maincpu")->base() + 0x1800 : memregion("user1")->base();
- m_modeSS_high_ram_enabled = 0;
- break;
- case 0x08:
- m_bank_base[1] = m_extra_RAM->base() + 2 * 0x800;
- m_bank_base[2] = m_extra_RAM->base();
- m_modeSS_high_ram_enabled = 1;
- break;
- case 0x0C:
- m_bank_base[1] = m_extra_RAM->base();
- m_bank_base[2] = m_extra_RAM->base() + 2 * 0x800;
- m_modeSS_high_ram_enabled = 1;
- break;
- case 0x10:
- m_bank_base[1] = m_extra_RAM->base() + 2 * 0x800;
- m_bank_base[2] = ( m_modeSS_byte & 0x01 ) ? memregion("maincpu")->base() + 0x1800 : memregion("user1")->base();
- m_modeSS_high_ram_enabled = 0;
- break;
- case 0x14:
- m_bank_base[1] = m_extra_RAM->base() + 0x800;
- m_bank_base[2] = ( m_modeSS_byte & 0x01 ) ? memregion("maincpu")->base() + 0x1800 : memregion("user1")->base();
- m_modeSS_high_ram_enabled = 0;
- break;
- case 0x18:
- m_bank_base[1] = m_extra_RAM->base() + 2 * 0x800;
- m_bank_base[2] = m_extra_RAM->base() + 0x800;
- m_modeSS_high_ram_enabled = 1;
- break;
- case 0x1C:
- m_bank_base[1] = m_extra_RAM->base() + 0x800;
- m_bank_base[2] = m_extra_RAM->base() + 2 * 0x800;
- m_modeSS_high_ram_enabled = 1;
- break;
- }
- membank("bank1")->set_base(m_bank_base[1] );
- membank("bank2")->set_base(m_bank_base[2] );
- // Make sure we do not trigger a spurious RAM write
- m_modeSS_byte_started -= 5;
- }
- else if ( offset == 0xFF9 )
- {
- /* Cassette port read */
- double tap_val = m_cassette->input();
- //logerror("%04X: Cassette port read, tap_val = %f\n", m_maincpu->pc(), tap_val);
- if ( tap_val < 0 )
- {
- data = 0x00;
- }
- else
- {
- data = 0x01;
- }
- // Make sure we do not trigger a spurious RAM write
- m_modeSS_byte_started -= 5;
- }
- else
- {
- /* Possible RAM write */
- if ( m_modeSS_write_enabled )
- {
- /* Check for dummy read from same address */
- if ( m_modeSS_last_address == offset )
- {
- m_modeSS_diff_adjust += 1;
- }
-
- int diff = m_maincpu->total_cycles() - m_modeSS_byte_started;
- //logerror("%04X: offset = %04X, %d\n", m_maincpu->pc(), offset, diff);
- if ( diff - m_modeSS_diff_adjust == 5 )
- {
- //logerror("%04X: RAM write offset = %04X, data = %02X\n", m_maincpu->pc(), offset, m_modeSS_byte );
- if ( offset & 0x800 )
- {
- if ( m_modeSS_high_ram_enabled )
- {
- m_bank_base[2][offset & 0x7FF] = m_modeSS_byte;
- data = m_modeSS_byte;
- }
- }
- else
- {
- m_bank_base[1][offset] = m_modeSS_byte;
- data = m_modeSS_byte;
- }
- }
- else if ( offset < 0x0100 )
- {
- m_modeSS_byte = offset;
- m_modeSS_byte_started = m_maincpu->total_cycles();
- m_modeSS_diff_adjust = 0;
- }
- m_modeSS_last_address = offset;
- }
- else if ( offset < 0x0100 )
- {
- m_modeSS_byte = offset;
- m_modeSS_byte_started = m_maincpu->total_cycles();
- m_modeSS_last_address = offset;
- m_modeSS_diff_adjust = 0;
- }
- }
- return data;
-}
-
-void a2600_state::modeDPC_check_flag(UINT8 data_fetcher)
-{
- /* Set flag when low counter equals top */
- if ( m_dpc.df[data_fetcher].low == m_dpc.df[data_fetcher].top )
- {
- m_dpc.df[data_fetcher].flag = 1;
- }
- /* Reset flag when low counter equals bottom */
- if ( m_dpc.df[data_fetcher].low == m_dpc.df[data_fetcher].bottom )
- {
- m_dpc.df[data_fetcher].flag = 0;
- }
-}
-
-void a2600_state::modeDPC_decrement_counter(UINT8 data_fetcher)
-{
- m_dpc.df[data_fetcher].low -= 1;
- if ( m_dpc.df[data_fetcher].low == 0xFF )
- {
- m_dpc.df[data_fetcher].high -= 1;
- if ( data_fetcher > 4 && m_dpc.df[data_fetcher].music_mode )
- {
- m_dpc.df[data_fetcher].low = m_dpc.df[data_fetcher].top;
- }
- }
-
- modeDPC_check_flag(data_fetcher );
-}
-
-TIMER_CALLBACK_MEMBER(a2600_state::modeDPC_timer_callback)
-{
- int data_fetcher;
- for( data_fetcher = 5; data_fetcher < 8; data_fetcher++ )
- {
- if ( m_dpc.df[data_fetcher].osc_clk )
- {
- modeDPC_decrement_counter(data_fetcher );
- }
- }
-}
-
-DIRECT_UPDATE_MEMBER(a2600_state::modeDPC_opbase_handler)
-{
- if ( ! direct.space().debugger_access() )
- {
- UINT8 new_bit;
- new_bit = ( m_dpc.shift_reg & 0x80 ) ^ ( ( m_dpc.shift_reg & 0x20 ) << 2 );
- new_bit = new_bit ^ ( ( ( m_dpc.shift_reg & 0x10 ) << 3 ) ^ ( ( m_dpc.shift_reg & 0x08 ) << 4 ) );
- new_bit = new_bit ^ 0x80;
- m_dpc.shift_reg = new_bit | ( m_dpc.shift_reg >> 1 );
- }
- return address;
-}
-
-READ8_MEMBER(a2600_state::modeDPC_r)
-{
- static const UINT8 dpc_amplitude[8] = { 0x00, 0x04, 0x05, 0x09, 0x06, 0x0A, 0x0B, 0x0F };
- UINT8 data_fetcher = offset & 0x07;
- UINT8 data = 0xFF;
-
- logerror("%04X: Read from DPC offset $%02X\n", m_maincpu->pc(), offset);
- if ( offset < 0x08 )
- {
- switch( offset & 0x06 )
- {
- case 0x00: /* Random number generator */
- case 0x02:
- return m_dpc.shift_reg;
- case 0x04: /* Sound value, MOVAMT value AND'd with Draw Line Carry; with Draw Line Add */
- m_dpc.latch_62 = m_dpc.latch_64;
- case 0x06: /* Sound value, MOVAMT value AND'd with Draw Line Carry; without Draw Line Add */
- m_dpc.latch_64 = m_dpc.latch_62 + m_dpc.df[4].top;
- m_dpc.dlc = ( m_dpc.latch_62 + m_dpc.df[4].top > 0xFF ) ? 1 : 0;
- data = 0;
- if ( m_dpc.df[5].music_mode && m_dpc.df[5].flag )
- {
- data |= 0x01;
- }
- if ( m_dpc.df[6].music_mode && m_dpc.df[6].flag )
- {
- data |= 0x02;
- }
- if ( m_dpc.df[7].music_mode && m_dpc.df[7].flag )
- {
- data |= 0x04;
- }
- return ( m_dpc.dlc ? m_dpc.movamt & 0xF0 : 0 ) | dpc_amplitude[data];
- }
- }
- else
- {
- UINT8 display_data = memregion("user1")->base()[0x2000 + ( ~ ( ( m_dpc.df[data_fetcher].low | ( m_dpc.df[data_fetcher].high << 8 ) ) ) & 0x7FF ) ];
-
- switch( offset & 0x38 )
- {
- case 0x08: /* display data */
- data = display_data;
- break;
- case 0x10: /* display data AND'd w/flag */
- data = m_dpc.df[data_fetcher].flag ? display_data : 0x00;
- break;
- case 0x18: /* display data AND'd w/flag, nibbles swapped */
- data = m_dpc.df[data_fetcher].flag ? BITSWAP8(display_data,3,2,1,0,7,6,5,4) : 0x00;
- break;
- case 0x20: /* display data AND'd w/flag, byte reversed */
- data = m_dpc.df[data_fetcher].flag ? BITSWAP8(display_data,0,1,2,3,4,5,6,7) : 0x00;
- break;
- case 0x28: /* display data AND'd w/flag, rotated right */
- data = m_dpc.df[data_fetcher].flag ? ( display_data >> 1 ) : 0x00;
- break;
- case 0x30: /* display data AND'd w/flag, rotated left */
- data = m_dpc.df[data_fetcher].flag ? ( display_data << 1 ) : 0x00;
- break;
- case 0x38: /* flag */
- data = m_dpc.df[data_fetcher].flag ? 0xFF : 0x00;
- break;
- }
-
- if ( data_fetcher < 5 || ! m_dpc.df[data_fetcher].osc_clk )
- {
- modeDPC_decrement_counter(data_fetcher );
- }
- }
- return data;
-}
-
-WRITE8_MEMBER(a2600_state::modeDPC_w)
-{
- UINT8 data_fetcher = offset & 0x07;
-
- switch( offset & 0x38 )
- {
- case 0x00: /* Top count */
- m_dpc.df[data_fetcher].top = data;
- m_dpc.df[data_fetcher].flag = 0;
- modeDPC_check_flag(data_fetcher );
- break;
- case 0x08: /* Bottom count */
- m_dpc.df[data_fetcher].bottom = data;
- modeDPC_check_flag(data_fetcher );
- break;
- case 0x10: /* Counter low */
- m_dpc.df[data_fetcher].low = data;
- if ( data_fetcher == 4 )
- {
- m_dpc.latch_64 = data;
- }
- if ( data_fetcher > 4 && m_dpc.df[data_fetcher].music_mode )
- {
- m_dpc.df[data_fetcher].low = m_dpc.df[data_fetcher].top;
- }
- modeDPC_check_flag(data_fetcher );
- break;
- case 0x18: /* Counter high */
- m_dpc.df[data_fetcher].high = data;
- m_dpc.df[data_fetcher].music_mode = data & 0x10;
- m_dpc.df[data_fetcher].osc_clk = data & 0x20;
- if ( data_fetcher > 4 && m_dpc.df[data_fetcher].music_mode && m_dpc.df[data_fetcher].low == 0xFF )
- {
- m_dpc.df[data_fetcher].low = m_dpc.df[data_fetcher].top;
- modeDPC_check_flag(data_fetcher );
- }
- break;
- case 0x20: /* Draw line movement value / MOVAMT */
- m_dpc.movamt = data;
- break;
- case 0x28: /* Not used */
- logerror("%04X: Write to unused DPC register $%02X, data $%02X\n", m_maincpu->pc(), offset, data);
- break;
- case 0x30: /* Random number generator reset */
- m_dpc.shift_reg = 0;
- break;
- case 0x38: /* Not used */
- logerror("%04X: Write to unused DPC register $%02X, data $%02X\n", m_maincpu->pc(), offset, data);
- break;
- }
-}
-
-/*
-
-There seems to be a kind of lag between the writing to address 0x1FE and the
-Activision switcher springing into action. It waits for the next byte to arrive
-on the data bus, which is the new PCH in the case of a JSR, and the PCH of the
-stored PC on the stack in the case of an RTS.
-
-depending on last byte & 0x20 -> 0x00 -> switch to bank #1
- -> 0x20 -> switch to bank #0
-
- */
-
-
-READ8_MEMBER(a2600_state::modeFE_switch_r)
-{
- UINT8 data = space.read_byte(0xFE + offset );
-
- if ( ! space.debugger_access() )
- {
- switch ( offset & 1 )
- {
- case 0:
- /* The next byte on the data bus determines which bank to switch to */
- m_modeFE_trigger_on_next_access = true;
- break;
-
- case 1:
- if ( m_modeFE_trigger_on_next_access ) {
- m_bank_base[1] = m_cart + 0x1000 * ( ( data & 0x20 ) ? 0 : 1 );
- m_modeFE_trigger_on_next_access = false;
- }
- break;
- }
- }
- return data;
-}
-
-
-WRITE8_MEMBER(a2600_state::modeFE_switch_w)
-{
- space.write_byte(0xFE, data );
- if ( ! space.debugger_access() )
- {
- /* The next byte on the data bus determines which bank to switch to */
- m_modeFE_trigger_on_next_access = true;
- }
-}
-
-
-READ8_MEMBER(a2600_state::modeFE_rom_r)
-{
- UINT8 data = m_bank_base[1][offset];;
-
- if ( ! space.debugger_access() )
- {
- if ( m_modeFE_trigger_on_next_access )
- {
- m_bank_base[1] = m_cart + 0x1000 * ( ( data & 0x20 ) ? 0 : 1 );
- m_modeFE_trigger_on_next_access = false;
- }
- }
-
- return data;
-}
-
-
-READ8_MEMBER(a2600_state::current_bank_r)
-{
- return m_current_bank;
-}
static ADDRESS_MAP_START(a2600_mem, AS_PROGRAM, 8, a2600_state )
ADDRESS_MAP_GLOBAL_MASK(0x1fff)
- AM_RANGE(0x0000, 0x007F) AM_MIRROR(0x0F00) AM_DEVREADWRITE("tia_video", tia_video_device, read, write)
- AM_RANGE(0x0080, 0x00FF) AM_MIRROR(0x0D00) AM_RAM AM_SHARE("riot_ram")
- AM_RANGE(0x0280, 0x029F) AM_MIRROR(0x0D00) AM_DEVREADWRITE("riot", riot6532_device, read, write)
- AM_RANGE(0x1000, 0x1FFF) AM_ROMBANK("bank1")
+ AM_RANGE(0x0000, 0x007f) AM_MIRROR(0x0f00) AM_DEVREADWRITE("tia_video", tia_video_device, read, write)
+ AM_RANGE(0x0080, 0x00ff) AM_MIRROR(0x0d00) AM_RAM AM_SHARE("riot_ram")
+ AM_RANGE(0x0280, 0x029f) AM_MIRROR(0x0d00) AM_DEVREADWRITE("riot", riot6532_device, read, write)
+ // AM_RANGE(0x1000, 0x1fff) is cart data and it is configured at reset time, depending on the mounted cart!
ADDRESS_MAP_END
WRITE8_MEMBER(a2600_state::switch_A_w)
@@ -1313,28 +122,6 @@ READ8_MEMBER(a2600_state::riot_input_port_8_r)
return ioport("SWB")->read();
}
-void a2600_state::install_banks(int count, unsigned init)
-{
- int i;
-
- for (i = 0; i < count; i++)
- {
- static const char *const handler[] =
- {
- "bank1",
- "bank2",
- "bank3",
- "bank4",
- };
-
- m_maincpu->space(AS_PROGRAM).install_read_bank(
- 0x1000 + (i + 0) * 0x1000 / count - 0,
- 0x1000 + (i + 1) * 0x1000 / count - 1, handler[i]);
-
- m_bank_base[i + 1] = m_cart + init;
- membank(handler[i])->set_base(m_bank_base[i + 1]);
- }
-}
READ16_MEMBER(a2600_state::a2600_read_input_port)
{
@@ -1442,16 +229,85 @@ WRITE16_MEMBER(a2600_state::a2600_tia_vsync_callback_pal)
}
}
+// TODO: is this the correct behavior for the real hardware?!?
+READ8_MEMBER(a2600_state::cart_over_riot_r)
+{
+ if (!space.debugger_access())
+ if (m_cartslot)
+ m_cartslot->write_bank(space, offset, 0);
+ return m_riot_ram[0x20 + offset];
+}
+
+WRITE8_MEMBER(a2600_state::cart_over_riot_w)
+{
+ if (m_cartslot)
+ m_cartslot->write_bank(space, offset, 0);
+ m_riot_ram[0x20 + offset] = data;
+
+}
MACHINE_START_MEMBER(a2600_state,a2600)
{
m_current_screen_height = m_screen->height();
- m_extra_RAM = machine().memory().region_alloc("user2", 0x8600, 1, ENDIANNESS_LITTLE);
- memset( m_riot_ram, 0x00, 0x80 );
- m_current_reset_bank_counter = 0xFF;
- m_dpc.oscillator = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(a2600_state::modeDPC_timer_callback),this));
- m_cart = CART;
- m_modeSS_last_address = 0;
+ memset(m_riot_ram, 0x00, 0x80);
+
+ switch (m_cartslot->get_cart_type())
+ {
+ case A26_2K:
+ case A26_4K:
+ case A26_F4:
+ case A26_F8:
+ case A26_F8SW:
+ case A26_FA:
+ case A26_E0:
+ case A26_E7:
+ case A26_CV:
+ case A26_DC:
+ case A26_FV:
+ case A26_8IN1:
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x1000, 0x1fff, read8_delegate(FUNC(vcs_cart_slot_device::read_rom),(vcs_cart_slot_device*)m_cartslot), write8_delegate(FUNC(vcs_cart_slot_device::write_bank),(vcs_cart_slot_device*)m_cartslot));
+ break;
+ case A26_F6:
+ case A26_DPC:
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x1000, 0x1fff, read8_delegate(FUNC(vcs_cart_slot_device::read_rom),(vcs_cart_slot_device*)m_cartslot), write8_delegate(FUNC(vcs_cart_slot_device::write_bank),(vcs_cart_slot_device*)m_cartslot));
+ m_maincpu->space(AS_PROGRAM).set_direct_update_handler(direct_update_delegate(FUNC(vcs_cart_slot_device::cart_opbase),(vcs_cart_slot_device*)m_cartslot));
+ break;
+ case A26_FE:
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x1000, 0x1fff, read8_delegate(FUNC(vcs_cart_slot_device::read_rom),(vcs_cart_slot_device*)m_cartslot), write8_delegate(FUNC(vcs_cart_slot_device::write_ram),(vcs_cart_slot_device*)m_cartslot));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x01fe, 0x01ff, read8_delegate(FUNC(vcs_cart_slot_device::read_bank),(vcs_cart_slot_device*)m_cartslot));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x01fe, 0x01fe, write8_delegate(FUNC(vcs_cart_slot_device::write_bank),(vcs_cart_slot_device*)m_cartslot));
+ break;
+ case A26_3E:
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x1000, 0x1fff, read8_delegate(FUNC(vcs_cart_slot_device::read_rom),(vcs_cart_slot_device*)m_cartslot), write8_delegate(FUNC(vcs_cart_slot_device::write_ram),(vcs_cart_slot_device*)m_cartslot));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x3e, 0x3f, write8_delegate(FUNC(vcs_cart_slot_device::write_bank),(vcs_cart_slot_device*)m_cartslot));
+ break;
+ case A26_3F:
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x1000, 0x1fff, read8_delegate(FUNC(vcs_cart_slot_device::read_rom),(vcs_cart_slot_device*)m_cartslot));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x00, 0x3f, write8_delegate(FUNC(vcs_cart_slot_device::write_bank),(vcs_cart_slot_device*)m_cartslot));
+ break;
+ case A26_UA:
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x1000, 0x1fff, read8_delegate(FUNC(vcs_cart_slot_device::read_rom),(vcs_cart_slot_device*)m_cartslot));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x200, 0x27f, read8_delegate(FUNC(vcs_cart_slot_device::read_bank),(vcs_cart_slot_device*)m_cartslot), write8_delegate(FUNC(vcs_cart_slot_device::write_bank),(vcs_cart_slot_device*)m_cartslot));
+ break;
+ case A26_JVP:
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x1000, 0x1fff, read8_delegate(FUNC(vcs_cart_slot_device::read_rom),(vcs_cart_slot_device*)m_cartslot), write8_delegate(FUNC(vcs_cart_slot_device::write_bank),(vcs_cart_slot_device*)m_cartslot));
+ // to verify the actual behavior...
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xfa0, 0xfc0, read8_delegate(FUNC(a2600_state::cart_over_riot_r), this), write8_delegate(FUNC(a2600_state::cart_over_riot_w), this));
+ break;
+ case A26_4IN1:
+ case A26_32IN1:
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x1000, 0x1fff, read8_delegate(FUNC(vcs_cart_slot_device::read_rom),(vcs_cart_slot_device*)m_cartslot));
+ break;
+ case A26_SS:
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x1000, 0x1fff, read8_delegate(FUNC(vcs_cart_slot_device::read_rom),(vcs_cart_slot_device*)m_cartslot));
+ break;
+ case A26_CM:
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x1000, 0x1fff, read8_delegate(FUNC(vcs_cart_slot_device::read_rom),(vcs_cart_slot_device*)m_cartslot));
+ break;
+ }
+
+ /* Banks may have changed, reset the cpu so it uses the correct reset vector */
+ m_maincpu->reset();
}
@@ -1535,349 +391,9 @@ unsigned a2600_state::long detect_2600controllers()
}
#endif
-void a2600_state::machine_reset()
-{
- address_space& space = m_maincpu->space(AS_PROGRAM);
- int chip = 0xFF;
- static const unsigned char snowwhite[] = { 0x10, 0xd0, 0xff, 0xff }; // Snow White Proto
-
- m_current_reset_bank_counter++;
-
- /* auto-detect bank mode */
- if (m_banking_mode == 0xff) if (detect_modeDC()) m_banking_mode = modeDC;
- if (m_banking_mode == 0xff) if (detect_mode3E()) m_banking_mode = mode3E;
- if (m_banking_mode == 0xff) if (detect_modeFE()) m_banking_mode = modeFE;
- if (m_banking_mode == 0xff) if (detect_modeSS()) m_banking_mode = modeSS;
- if (m_banking_mode == 0xff) if (detect_modeE0()) m_banking_mode = modeE0;
- if (m_banking_mode == 0xff) if (detect_modeCV()) m_banking_mode = modeCV;
- if (m_banking_mode == 0xff) if (detect_modeFV()) m_banking_mode = modeFV;
- if (m_banking_mode == 0xff) if (detect_modeJVP()) m_banking_mode = modeJVP;
- if (m_banking_mode == 0xff) if (detect_modeUA()) m_banking_mode = modeUA;
- if (m_banking_mode == 0xff) if (detect_8K_mode3F()) m_banking_mode = mode3F;
- if (m_banking_mode == 0xff) if (detect_32K_mode3F()) m_banking_mode = mode3F;
- if (m_banking_mode == 0xff) if (detect_modeE7()) m_banking_mode = modeE7;
-
- if (m_banking_mode == 0xff)
- {
- switch (m_cart_size)
- {
- case 0x800:
- m_banking_mode = mode2K;
- break;
- case 0x1000:
- m_banking_mode = mode4K;
- break;
- case 0x2000:
- m_banking_mode = modeF8;
- break;
- case 0x28FF:
- case 0x2900:
- m_banking_mode = modeDPC;
- break;
- case 0x3000:
- m_banking_mode = modeFA;
- break;
- case 0x4000:
- m_banking_mode = modeF6;
- break;
- case 0x8000:
- m_banking_mode = modeF4;
- break;
- case 0x10000:
- m_banking_mode = mode32in1;
- break;
- case 0x80000:
- m_banking_mode = mode3F;
- break;
- }
- }
-
- /* auto-detect super chip */
-
- chip = 0;
-
- if (m_cart_size == 0x2000 || m_cart_size == 0x4000 || m_cart_size == 0x8000)
- {
- chip = detect_super_chip();
- }
-
- /* Super chip games:
- dig dig, crystal castles, millipede, stargate, defender ii, jr. Pac Man,
- desert falcon, dark chambers, super football, sprintmaster, fatal run,
- off the wall, shooting arcade, secret quest, radar lock, save mary, klax
- */
-
- /* set up ROM banks */
-
- switch (m_banking_mode)
- {
- case mode2K:
- install_banks(2, 0x0000);
- break;
-
- case mode4K:
- install_banks(1, 0x0000);
- break;
-
- case mode4in1:
- m_current_reset_bank_counter = m_current_reset_bank_counter & 0x03;
- install_banks(1, m_current_reset_bank_counter * 0x1000);
- break;
-
- case mode8in1:
- m_current_reset_bank_counter = m_current_reset_bank_counter & 0x07;
- if ( m_current_reset_bank_counter == 7 )
- {
- /* Special case for Yar's Revenge */
- install_banks(1, 0x2000 * m_current_reset_bank_counter + 0x0000);
- }
- else
- {
- install_banks(1, 0x2000 * m_current_reset_bank_counter + 0x1000);
- }
- break;
-
- case modeF8:
- m_current_reset_bank_counter = 0;
- if (!memcmp(&CART[0x1ffc],snowwhite,sizeof(snowwhite)))
- {
- install_banks(1, 0x0000);
- }
- else
- {
- install_banks(1, 0x1000);
- }
- break;
-
- case modeFA:
- install_banks(1, 0x2000);
- break;
-
- case modeF6:
- install_banks(1, 0x0000);
- break;
-
- case modeF4:
- install_banks(1, 0x7000);
- break;
-
- case modeFE:
- install_banks(1, 0x0000);
- break;
-
- case modeE0:
- install_banks(4, 0x1c00);
- break;
-
- case mode3F:
- install_banks(2, m_cart_size - 0x800);
- m_number_banks = m_cart_size / 0x800;
- break;
-
- case modeUA:
- install_banks(1, 0x1000);
- break;
-
- case modeE7:
- install_banks(2, 0x3800);
- break;
-
- case modeDC:
- install_banks(1, 0x1000 * m_current_bank);
- break;
-
- case modeCV:
- install_banks(2, 0x0000);
- break;
-
- case mode3E:
- install_banks(2, m_cart_size - 0x800);
- m_number_banks = m_cart_size / 0x800;
- m_mode3E_ram_enabled = 0;
- break;
-
- case modeSS:
- install_banks(2, 0x0000);
- break;
-
- case modeFV:
- install_banks(1, 0x0000);
- m_current_bank = 0;
- break;
-
- case modeDPC:
- m_current_reset_bank_counter = 0;
- install_banks(1, 0x0000);
- break;
-
- case mode32in1:
- install_banks(2, 0x0000);
- m_current_reset_bank_counter = m_current_reset_bank_counter & 0x1F;
- break;
-
- case modeJVP:
- m_current_reset_bank_counter = m_current_reset_bank_counter & 1;
- if ( m_cart_size == 0x2000 )
- m_current_reset_bank_counter = 0;
- m_current_bank = m_current_reset_bank_counter * 2;
- install_banks(1, 0x1000 * m_current_bank);
- break;
- }
-
- /* set up bank counter */
-
- if (m_banking_mode == modeDC)
- {
- space.install_read_handler(0x1fec, 0x1fec, read8_delegate(FUNC(a2600_state::current_bank_r),this));
- }
-
- /* set up bank switch registers */
-
- switch (m_banking_mode)
- {
- case modeF8:
- case mode8in1:
- space.install_write_handler(0x1ff8, 0x1ff9, write8_delegate(FUNC(a2600_state::modeF8_switch_w),this));
- space.install_read_handler(0x1ff8, 0x1ff9, read8_delegate(FUNC(a2600_state::modeF8_switch_r),this));
- break;
-
- case modeFA:
- space.install_write_handler(0x1ff8, 0x1ffa, write8_delegate(FUNC(a2600_state::modeFA_switch_w),this));
- space.install_read_handler(0x1ff8, 0x1ffa, read8_delegate(FUNC(a2600_state::modeFA_switch_r),this));
- break;
-
- case modeF6:
- space.install_write_handler(0x1ff6, 0x1ff9, write8_delegate(FUNC(a2600_state::modeF6_switch_w),this));
- space.install_read_handler(0x1ff6, 0x1ff9, read8_delegate(FUNC(a2600_state::modeF6_switch_r),this));
- space.set_direct_update_handler(direct_update_delegate(FUNC(a2600_state::modeF6_opbase), this));
- break;
-
- case modeF4:
- space.install_write_handler(0x1ff4, 0x1ffb, write8_delegate(FUNC(a2600_state::modeF4_switch_w),this));
- space.install_read_handler(0x1ff4, 0x1ffb, read8_delegate(FUNC(a2600_state::modeF4_switch_r),this));
- break;
-
- case modeE0:
- space.install_write_handler(0x1fe0, 0x1ff8, write8_delegate(FUNC(a2600_state::modeE0_switch_w),this));
- space.install_read_handler(0x1fe0, 0x1ff8, read8_delegate(FUNC(a2600_state::modeE0_switch_r),this));
- break;
-
- case mode3F:
- space.install_write_handler(0x00, 0x3f, write8_delegate(FUNC(a2600_state::mode3F_switch_w),this));
- break;
-
- case modeUA:
- space.install_write_handler(0x200, 0x27f, write8_delegate(FUNC(a2600_state::modeUA_switch_w),this));
- space.install_read_handler(0x200, 0x27f, read8_delegate(FUNC(a2600_state::modeUA_switch_r),this));
- break;
-
- case modeE7:
- space.install_write_handler(0x1fe0, 0x1fe7, write8_delegate(FUNC(a2600_state::modeE7_switch_w),this));
- space.install_read_handler(0x1fe0, 0x1fe7, read8_delegate(FUNC(a2600_state::modeE7_switch_r),this));
- space.install_write_handler(0x1fe8, 0x1feb, write8_delegate(FUNC(a2600_state::modeE7_RAM_switch_w),this));
- space.install_read_handler(0x1fe8, 0x1feb, read8_delegate(FUNC(a2600_state::modeE7_RAM_switch_r),this));
- space.install_write_bank(0x1800, 0x18ff, "bank9");
- space.install_read_bank(0x1900, 0x19ff, "bank9");
- membank("bank9")->set_base(m_extra_RAM->base() + 4 * 256 );
- break;
-
- case modeDC:
- space.install_write_handler(0x1ff0, 0x1ff0, write8_delegate(FUNC(a2600_state::modeDC_switch_w),this));
- space.install_read_handler(0x1ff0, 0x1ff0, read8_delegate(FUNC(a2600_state::modeDC_switch_r),this));
- break;
-
- case modeFE:
- space.install_write_handler(0x01fe, 0x01fe, write8_delegate(FUNC(a2600_state::modeFE_switch_w),this));
- space.install_read_handler(0x01fe, 0x01ff, read8_delegate(FUNC(a2600_state::modeFE_switch_r),this));
- space.install_read_handler(0x1000, 0x1fff, read8_delegate(FUNC(a2600_state::modeFE_rom_r),this));
- m_modeFE_trigger_on_next_access = false;
- break;
-
- case mode3E:
- space.install_write_handler(0x3e, 0x3e, write8_delegate(FUNC(a2600_state::mode3E_RAM_switch_w),this));
- space.install_write_handler(0x3f, 0x3f, write8_delegate(FUNC(a2600_state::mode3E_switch_w),this));
- space.install_write_handler(0x1400, 0x15ff, write8_delegate(FUNC(a2600_state::mode3E_RAM_w),this));
- break;
-
- case modeSS:
- space.install_read_handler(0x1000, 0x1fff, read8_delegate(FUNC(a2600_state::modeSS_r),this));
- m_bank_base[1] = m_extra_RAM->base() + 2 * 0x800;
- m_bank_base[2] = CART;
- membank("bank1")->set_base(m_bank_base[1] );
- membank("bank2")->set_base(m_bank_base[2] );
- m_modeSS_write_enabled = 0;
- m_modeSS_byte_started = 0;
- /* The Supercharger has no motor control so just enable it */
- m_cassette->change_state(CASSETTE_MOTOR_ENABLED, CASSETTE_MOTOR_DISABLED );
- break;
-
- case modeFV:
- space.install_write_handler(0x1fd0, 0x1fd0, write8_delegate(FUNC(a2600_state::modeFV_switch_w),this));
- space.install_read_handler(0x1fd0, 0x1fd0, read8_delegate(FUNC(a2600_state::modeFV_switch_r),this));
- break;
-
- case modeDPC:
- space.install_read_handler(0x1000, 0x103f, read8_delegate(FUNC(a2600_state::modeDPC_r),this));
- space.install_write_handler(0x1040, 0x107f, write8_delegate(FUNC(a2600_state::modeDPC_w),this));
- space.install_write_handler(0x1ff8, 0x1ff9, write8_delegate(FUNC(a2600_state::modeF8_switch_w),this));
- space.install_read_handler(0x1ff8, 0x1ff9, read8_delegate(FUNC(a2600_state::modeF8_switch_r),this));
- space.set_direct_update_handler(direct_update_delegate(FUNC(a2600_state::modeDPC_opbase_handler), this));
- {
- int data_fetcher;
- for( data_fetcher = 0; data_fetcher < 8; data_fetcher++ )
- {
- m_dpc.df[data_fetcher].osc_clk = 0;
- m_dpc.df[data_fetcher].flag = 0;
- m_dpc.df[data_fetcher].music_mode = 0;
- }
- }
- m_dpc.oscillator->adjust(attotime::from_hz(18400), 0, attotime::from_hz(18400));
- break;
-
- case mode32in1:
- membank("bank1")->set_base(CART + m_current_reset_bank_counter * 0x800 );
- membank("bank2")->set_base(CART + m_current_reset_bank_counter * 0x800 );
- break;
-
- case modeJVP:
- space.install_read_handler(0x0FA0, 0x0FC0, read8_delegate(FUNC(a2600_state::modeJVP_switch_r),this));
- space.install_write_handler(0x0FA0, 0x0FC0, write8_delegate(FUNC(a2600_state::modeJVP_switch_w),this));
- break;
- }
-
- /* set up extra RAM */
-
- if (m_banking_mode == modeFA)
- {
- space.install_write_bank(0x1000, 0x10ff, "bank9");
- space.install_read_bank(0x1100, 0x11ff, "bank9");
-
- membank("bank9")->set_base(m_extra_RAM->base());
- }
-
- if (m_banking_mode == modeCV)
- {
- space.install_write_bank(0x1400, 0x17ff, "bank9");
- space.install_read_bank(0x1000, 0x13ff, "bank9");
-
- membank("bank9")->set_base(m_extra_RAM->base());
- }
-
- if (chip)
- {
- space.install_write_bank(0x1000, 0x107f, "bank9");
- space.install_read_bank(0x1080, 0x10ff, "bank9");
-
- membank("bank9")->set_base(m_extra_RAM->base());
- }
-
- /* Banks may have changed, reset the cpu so it uses the correct reset vector */
- m_maincpu->reset();
-}
-
static INPUT_PORTS_START( a2600 )
- PORT_START("SWB") /* SWCHB */
+ PORT_START("SWB")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Reset Game") PORT_CODE(KEYCODE_2)
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Select Game") PORT_CODE(KEYCODE_1)
PORT_BIT ( 0x04, IP_ACTIVE_LOW, IPT_UNUSED )
@@ -1895,12 +411,34 @@ static INPUT_PORTS_START( a2600 )
INPUT_PORTS_END
+static SLOT_INTERFACE_START(a2600_cart)
+ SLOT_INTERFACE_INTERNAL("a26_2k", A26_ROM_2K)
+ SLOT_INTERFACE_INTERNAL("a26_4k", A26_ROM_4K)
+ SLOT_INTERFACE_INTERNAL("a26_f4", A26_ROM_F4)
+ SLOT_INTERFACE_INTERNAL("a26_f6", A26_ROM_F6)
+ SLOT_INTERFACE_INTERNAL("a26_f8", A26_ROM_F8)
+ SLOT_INTERFACE_INTERNAL("a26_f8sw", A26_ROM_F8_SW)
+ SLOT_INTERFACE_INTERNAL("a26_fa", A26_ROM_FA)
+ SLOT_INTERFACE_INTERNAL("a26_fe", A26_ROM_FE)
+ SLOT_INTERFACE_INTERNAL("a26_3e", A26_ROM_3E)
+ SLOT_INTERFACE_INTERNAL("a26_3f", A26_ROM_3F)
+ SLOT_INTERFACE_INTERNAL("a26_e0", A26_ROM_E0)
+ SLOT_INTERFACE_INTERNAL("a26_e7", A26_ROM_E7)
+ SLOT_INTERFACE_INTERNAL("a26_ua", A26_ROM_UA)
+ SLOT_INTERFACE_INTERNAL("a26_cv", A26_ROM_CV)
+ SLOT_INTERFACE_INTERNAL("a26_dc", A26_ROM_DC)
+ SLOT_INTERFACE_INTERNAL("a26_fv", A26_ROM_FV)
+ SLOT_INTERFACE_INTERNAL("a26_jvp", A26_ROM_JVP)
+ SLOT_INTERFACE_INTERNAL("a26_cm", A26_ROM_COMPUMATE)
+ SLOT_INTERFACE_INTERNAL("a26_ss", A26_ROM_SUPERCHARGER)
+ SLOT_INTERFACE_INTERNAL("a26_dpc", A26_ROM_DPC)
+ SLOT_INTERFACE_INTERNAL("a26_4in1", A26_ROM_4IN1)
+ SLOT_INTERFACE_INTERNAL("a26_8in1", A26_ROM_8IN1)
+ SLOT_INTERFACE_INTERNAL("a26_32in1", A26_ROM_32IN1)
+SLOT_INTERFACE_END
+
static MACHINE_CONFIG_FRAGMENT(a2600_cartslot)
- MCFG_CARTSLOT_ADD("cart")
- MCFG_CARTSLOT_EXTENSION_LIST("bin,a26")
- MCFG_CARTSLOT_MANDATORY
- MCFG_CARTSLOT_LOAD(a2600_state,a2600_cart)
- MCFG_CARTSLOT_INTERFACE("a2600_cart")
+ MCFG_VCS_CARTRIDGE_ADD("cartslot", a2600_cart, NULL)
/* software lists */
MCFG_SOFTWARE_LIST_ADD("cart_list","a2600")
@@ -1930,8 +468,6 @@ static MACHINE_CONFIG_START( a2600, a2600_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_TIA_ADD("tia", MASTER_CLOCK_NTSC/114)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.90)
- MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette")
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
/* devices */
MCFG_DEVICE_ADD("riot", RIOT6532, MASTER_CLOCK_NTSC / 3)
@@ -1946,10 +482,6 @@ static MACHINE_CONFIG_START( a2600, a2600_state )
MCFG_FRAGMENT_ADD(a2600_cartslot)
MCFG_SOFTWARE_LIST_FILTER("cart_list", "NTSC")
- MCFG_CASSETTE_ADD( "cassette" )
- MCFG_CASSETTE_FORMATS(a26_cassette_formats)
- MCFG_CASSETTE_DEFAULT_STATE(CASSETTE_PLAY | CASSETTE_MOTOR_DISABLED | CASSETTE_SPEAKER_ENABLED)
- MCFG_CASSETTE_INTERFACE("a2600_cass")
MACHINE_CONFIG_END
@@ -1977,8 +509,6 @@ static MACHINE_CONFIG_START( a2600p, a2600_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_TIA_ADD("tia", MASTER_CLOCK_PAL/114)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.90)
- MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette")
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
/* devices */
MCFG_DEVICE_ADD("riot", RIOT6532, MASTER_CLOCK_PAL / 3)
@@ -1993,18 +523,11 @@ static MACHINE_CONFIG_START( a2600p, a2600_state )
MCFG_FRAGMENT_ADD(a2600_cartslot)
MCFG_SOFTWARE_LIST_FILTER("cart_list", "PAL")
- MCFG_CASSETTE_ADD( "cassette" )
- MCFG_CASSETTE_FORMATS(a26_cassette_formats)
- MCFG_CASSETTE_DEFAULT_STATE(CASSETTE_PLAY | CASSETTE_MOTOR_DISABLED | CASSETTE_SPEAKER_ENABLED)
- MCFG_CASSETTE_INTERFACE("a2600_cass")
MACHINE_CONFIG_END
ROM_START( a2600 )
- ROM_REGION( 0x2000, "maincpu", 0 )
- ROM_FILL( 0x0000, 0x2000, 0xFF )
- ROM_REGION( 0x80000, "user1", 0 )
- ROM_FILL( 0x00000, 0x80000, 0xFF )
+ ROM_REGION( 0x2000, "maincpu", ROMREGION_ERASEFF )
ROM_END
#define rom_a2600p rom_a2600