Professional Documents
Culture Documents
---- -----------
By Kevin Horton
khorton@iquest.net
V6.00
Last modified on 4/18/97
(614 images)
Copyright 1997 K Horton, all rights reserved! You may copy and distribute
this file as long as it remains intact and un-modified.
Bank #1 Bank #2
--------------------------------------------------------------
1000 JSR $1800 (do subroutine) .
1003 (program continues) 1200 _subroutine goes here_
. 1209 RTS
. .
1800 LDA $1FF9 (switch to bank 2) 1802 (rest of program)
1803 NOP 1803 JSR $1200
1804 NOP .
1805 NOP .
1806 NOP 1806 LDA $1FF8 (Switch back to bank 1)
1807 NOP .
1808 NOP .
1809 RTS (We're done w/ routine) 1809 (rest of program)
OK, we start out in bank #1 and we want to run a subroutine in bank #2.
What happens is this- the processor starts at 1000h in bank #1. We call
our subroutine from here. 1800h: We do a read to change us to bank #2.
Remember that when we change banks, we are basically doing a ROM swap.
(You can think of bankswitching as 'hot-swapping' ROMs) Now that we're
in bank #2, the processor sees that JSR to $1200, which is the subroutine
that we wanted to execute. We execute the subroutine and exit it with an
RTS. This brings us back to 1806h. We then do another read to select bank
#1. After this instruction finishes, the processor is now in bank #1, with
the program counter pointing to 1809, which is an RTS which will take us
back to 1003 and let us continue on with our program.
Some carts have extra RAM; There are three known formats for this:
Atari's 'Super Chip' is nothing more than a 128-byte RAM chip that maps
itsself in the first 256 bytes of cart memory. (1000-10FFh)
The first 128 bytes is the write port, while the second 128 bytes is the
read port. This is needed, because there is no R/W line to the cart.
CBS RAM Plus (RAM+) This maps in 256 bytes of RAM in the first 512 bytes
of the cart; 1000-11FF. The lower 256 addresses are the write port, while
the upper 256 addresses are the read port. To store a byte and retrieve it:
OK, the RAM setup in these carts is very complex. There is a total of 2K
of RAM broken up into 2 1K pieces. One 1K piece goes into 1000-17FF
if the bankswitch is set to $1FE7. The other is broken up into 4 256-byte
parts.
You select which part to use by issuing a fake read to 1FE8-1FEB. The
RAM is then available for use by all banks at 1800-19FF.
Note that the 256-byte banks and the large 1K bank are seperate entities.
The M-Network carts are about as complex as it gets.
2K:
-These carts are not bankswitched, however the data repeats twice in the
4K address space. You'll need to manually double-up these images to 4K
if you want to put these in say, a 4K cart.
4K:
6K:
-AR: The Arcadia (aka Starpath) Supercharger uses 6K of RAM to store the
games loaded from tape.
8K:
-F8: This is the 'standard' method to implement 8K carts. There are two
addresses which select between two unique 4K sections. They are 1FF8
and 1FF9. Any access to either one of these locations switches banks.
Accessing 1FF8 switches in the first 4K, and accessing 1FF9 switches in
the last 4K. Note that you can only access one 4K at a time!
-FE: Used only on two carts (Robot Tank and Decathlon). You select banks
via accesses to the stack. You set the stack pointer to FF, and then a
JSR switches banks one way, while RTS switches you back to the original
bank (both banks are 4K). This allows the programmers to perform
'automatic' bankswitching. All the subroutines are in one bank, while
all the game code is in another. When you perform a JSR; you switch banks
to the bank containg the subroutines. Upon encoutering an RTS, the bank
is switched back to the original calling bank. Pretty spiffy!
-E0: Parker Brothers was the main user of this method. This cart is
segmented into 4 1K segments. Each segment can point to one 1K slice of
the ROM image. You select the desired 1K slice by accessing 1FE0 to 1FE7
for the first 1K (1FE0 selects slice 0, 1FE1 selects slice 1, etc).
1FE8 to 1FEF selects the slice for the second 1K, and 1FF0 to 1FF8 selects
the slice for the third 1K. The last 1K always points to the last 1K
of the ROM image so that the cart always starts up in the exact same place.
-3F: Tigervision was the only user of this intresting method. This works
in a similar fashion to the above method; however, there are only 4 2K
segments instead of 4 1K ones, and the ROM image is broken up into 4 2K
slices. As before, the last 2K always points to the last 2K of the image.
You select the desired bank by performing an STA $3F instruction. The
accumulator holds the desired bank number (0-3; only the lower two bits
are used). Any STA in the $00-$3F range will change banks. This appears to
interfere with the TIA addresses, which it does; however you just use
$40 to $7F instead! :-) $3F does not have a corresponding TIA register, so
writing here has no effect other than switching banks. Very clever;
especially since you can implement this with only one chip! (a 74LS173)
12K:
-FA: Used only by CBS. Similar to F8, except you have three 4K banks
instead of two. You select the desired bank via 1FF8, 1FF9, and 1FFA.
These carts also have 256 bytes of RAM mapped in at 1000-11FF. 1000-10FF
is the write port while 1100-11FF is the read port.
16K:
-E7: Only M-Network used this scheme. This has to be the most complex
method used in any cart! :-) It allows for the capability of 2K of RAM;
although it doesn't have to be used (in fact, only one cart used it-
Burgertime). This is similar to the 3F type with a few changes. There are
now 8 2K banks, instead of 4. The last 2K in the cart always points to
the last 2K of the ROM image, while the first 2K is selectable. You
access 1FE0 to 1FE6 to select which 2K bank. Note that you cannot select
the last 2K of the ROM image into the lower 2K of the cart! Accessing
1FE7 selects 1K of RAM at 1000-17FF instead of ROM! The 2K of RAM is
broken up into two 1K sections. One 1K section is mapped in at 1000-17FF
if 1FE7 has been accessed. 1000-13FF is the write port, while 1400-17FF
is the read port. The second 1K of RAM appears at 1800-19FF. 1800-18FF
is the write port while 1900-19FF is the read port. You select which
256 byte block appears here by accessing 1FF8 to 1FFB.
32K
-F4: The 'standard' method for implementing 32K. Only one cart is known
to use it- Fatal Run. Like the F6 method, however there are 8 4K
banks instead of 4. You use 1FF4 to 1FFB to select the desired bank.
64K
-F0: Only used one cart, AFAIK. (the 'Megaboy' cart from Dynacom) It
has 16 4K banks. Accessing 1FF0 will increment the current bank. The
program uses location 1FEC to tell it which bank it's in. There's a
little loop at 1FE0 that checks this location against the accumulator,
and if they're equal it does an RTS. Otherwise it does an STA 1FF0
and repeats the loop.
/-----------------------------------------------------------------------\
| KEY |
| --- |
| Name - Game Name |
| Part # - Part Number of the actual cart |
| RA - Rarity, according to VGR's guide and my observations |
| SZ - Size of the ROM image in K |
| SC - If the cart has a Special Chip |
| BS - Bankswitch method used (see below) |
| IM - 'X'ed if I have the image |
| SP - Special Attribute (See the end of a section for details) |
| CT - Controller type (See below) |
| Filename - The filename of the ROM image |
| |
| Bankswitch Types: |
| ----------------- |
| (See above for full descriptions) |
| |
| - (nothing); Not bankswitched (2K and 4K only) |
| F8 - 'Standard' 8K; uses 1FF8 and 1FF9 |
| F6 - 'Standard' 16K; uses 1FF6 to 1FF9 |
| F4 - 'Standard' 32K; uses 1FF4 to 1FFB |
| F0 - Megaboy 64K; uses 1FF0 to increment bank # |
| SC - Superchip; 128 bytes of RAM @ 1000-10FF (i.e. F8+SC, F4+SC) |
| FA - 'RAM+' 12K; uses 1FF8 to 1FFA; 256 bytes of RAM @ 1000 to 11FF |
| FE - 'Activision' 8K; uses 01FE and 01FF to determine bank |
| E0 - 'Parker Brothers' 8K; uses 1FE0 to 1FF7 |
| E7 - 'M-Network' 16K; Uses 1FE0 to 1FE7 and 2K of RAM at 1800-19FF |
| 3F - 'Tigervision' 8K; Uses STA $3F to determine bank # |
| AR - 'Arcadia' 6K; Used on the Supercharger |
| ?? - Unknown at this time |
| |
| Controller Types: |
| ----------------- |
| |
| - (nothing); Unknown at this time |
| J - Joystick |
| P - Paddles |
| K - Keypad |
| JK - Joystick and keypad (Star Raiders) |
| D - Driving Controllers |
| B - Joystick plus Booster Grip (Omega Race) |
| T - Track & Field controller |
| O - Other |
| L - Light Gun |
| |
| |
| I have added two new categories to the rarity rating: |
| |
| PR - This was only available as a prototype |
| DM - This image is only a demo, and not really a game |
| |
\-----------------------------------------------------------------------/
Tempest (Atari)
Good Luck, Charlie Brown (Atari)
Miss Piggy's Wedding (exists?) (Atari)
Wizard (Atari)
BMX Airmaster (atari ver) (Atari)
White Water Madness (exists?) (Atari)
Rodeo (Atari)
Rabbit Transit (Atari)
Nightmare Manor (Atari)
Pink Panther (Probe 2000)
The Impossible Game (Telesys)
Ewoks Adventure (Parker Bros)
Thwoker (Activision)
Out of Control (Avalon Hill)
Berenstein Bears (Coleco)
Video Life (Commavid)
Aerial Ace (exist?) (Imagic)
Lady in Wading (Playaround)
Snowplow (Sunrise)
Noah and the Ark (Sunrise)
Meltdown (exist?) (20th cent.)
Tomarc the Barabrrian (exist?) (Xonox)
Motocross Racer (exist?) (Xonox)
####Data Start####
***********************************
* Atari *
***********************************
***********************************
* Action Hi-Tech *
***********************************
***********************************
* Activision *
***********************************
X1: Uses Activision's version of the 'Super Chip' No extra RAM this time,
however it does have extra ROM! Does three-channel sound, and even
includes several random # generators.
X2: This used to be an FE cart, but has been fixed to run as an F8.
***********************************
* Absolute Entertainment *
***********************************
X1: This is identical to the Activision one. I read both in and compared;
they are byte-for-byte identical.
***********************************
* American Videogame *
***********************************
***********************************
* Amiga *
***********************************
***********************************
* Answer Software *
***********************************
***********************************
* Artic *
***********************************
***********************************
* Apollo *
***********************************
***********************************
* Avalon Hill *
***********************************
***********************************
* Bit Corp. *
***********************************
***********************************
* Bob Colbert *
***********************************
***********************************
* Bomb *
***********************************
Name Part # RA SZ SC BS IM SP CT Filename
---------------------------------------------------------------------------
***********************************
* CBS Electronics *
***********************************
***********************************
* Coleco *
***********************************
*addendum*
Got Mr. Do! to read out, and Time Pilot seems to have read out correctly,
yet it doesn't play on the emu. I'm going to pull the EPROM off the board
and read it directly!
*end*
*addendum2*
Pulled the EPROM and copied it. Just as I suspected, it did indeed read out
correctly. Guess the emu isn't as good as the Real Thing. :-) I'll try it
out on the real hardware RSN.
*end*
*addendum3*
The saga continues. I tried the ROM image of Time Pilot out on the Real
Thing, and it behaved the exact same way that it did on the emu. It appears
that the RC delay in the cart is required so it doesn't switch banks
immediately. I hope I can fix it so it can work as a normal F8 cart.
*end*
*addendum4*
Yes! I got Time Pilot to work! This is intresting. The bank is *only*
flipped in two parts of the cart- once at the beginning of bank0 and once
at the beginning of bank1. The tip-off was bank #0 had a BIT $1FF8
instruction and bank #1 had a BIT $1FF9 instruction! This of course will
*not* flip banks!!! I changed the 4K blocks around, ran it on the emu, and
it worked perfectly!
*end*
*addendum5*
Finally figured out what was wrong with Smurfs Save the Day. The places
in the code that switch banks was right on top of each other. (the
STA $1FFx instructions were at the same addresses in diffrent banks)
As a result, there were only STA $1FF8 instructions rather than both
STA $1FF8 and STA $1FF9 instructions. Fixing these resulted in a working
ROM image!!!!!! Now all I need is Berinstein Bears to round out the
Coleco Collection.
*end*
***********************************
* CommaVid *
***********************************
***********************************
* Data Age *
***********************************
Name Part # RA SZ SC BS IM SP CT Filename
---------------------------------------------------------------------------
***********************************
* DSD/Camelot *
***********************************
X1: Intresting!!! This cart uses the Parker Bros. 8K bankswitch!!! It's
the only non-PB cart to use this format.
***********************************
* Dynacom *
***********************************
***********************************
* Ed Fendermyer *
***********************************
Name Part # RA SZ SC BS IM SP CT Filename
---------------------------------------------------------------------------
SoundX ???? ER 4 X J SOUNDX
EdTris ???? ER 4 X J EDTRIS
***********************************
* Emag *
***********************************
***********************************
* Epyx *
***********************************
***********************************
* Exus *
***********************************
***********************************
* First Star Software *
***********************************
***********************************
* Froggo *
***********************************
***********************************
* Funvision *
***********************************
***********************************
* HES *
***********************************
****
Special menued multicarts:
****
-Frogger
2 Pak Special #3 ???? ?? 16 F6 X J P2
-Wall Defender
-Planet Patrol
2 Pak Special #4 ???? ?? 16 F6 X J P3
-Space Voyage - Starmaster
-Fire Alert - Fire Fighter
2 Pak Special #5 ???? ?? ??
-Alien Force
-Hoppy
2 Pak Special #6 ???? ?? ??
-Cavern Blaster
-City War
2 Pak Special #7 ???? ?? ??
-Challenge
-Surfing
2 Pak Special #8 ???? ?? ??
-Dolphin
-Pigs 'n Wolf
2 Pak Special #9 ???? ?? ??
-Motocross
-Boom Bang
Notes about menued carts: These are very intresting! They consist of
several games in seperate banks of a 16K F6 bankswitched ROM. There's a
very slick looking menu that comes up displaying the co's logo (HES), and
to press the fire button. After doing so, the user is given a choice of
what game to play. The choices are actually written out onto the screen in
hi-res text! You highlight the desired game and hit the button. The tech
behind it is pretty simple, yet clever. On startup, the bank is pointed to
the menu system's bank, and then is run just like any other F6 cart. The
games are stored in seperate banks, or the upper 2K of a 4K block with the
lower 2K being the menuing program. When the user selects a game, a small
'stub' of code is written to RAM then executed; this stub is usually
something like this:
So that when 0080 is called, the cart is switched to bank #2, and then the
game in said bank will be run. Pretty nifty! Note that since this is
already a bankswitched game, 8K bankswitched games can be run in it, as well
as non-bankswitched games. Check out the game linup on the 'Hot Action Pak'.
It is:
Ghost Busters 8K
Plaque Attack 4K
Tennis 2K
Total: 14K
On those '2 Pak Special' carts, they are still 16K, but almost half of this
goes to waste; they could've made '3 Pak Specials' to use up most of the
space no problem. I still don't know why they didn't do this. Examining the
ROM shows almost half of it is 'FF'. What a waste! :-)
***********************************
* Homevision *
***********************************
***********************************
* Imagic *
***********************************
***********************************
* ITT *
***********************************
***********************************
* Konami *
***********************************
Name Part # RA SZ SC BS IM SP CT Filename
---------------------------------------------------------------------------
***********************************
* M-Network *
***********************************
Notes:
All three E7 carts have been read in as 16K. This makes it much easier
to write emulators and build hardware, as there's just one standard
size. The RAM can still be included in any cart; however it has no
effect in Bump 'n Jump or He-Man. Fortunately, it doesn't hinder operation
either, so I chose to just include the extra RAM under the E7 label.
***********************************
* Milton Bradley *
***********************************
***********************************
* Mystique (hehe!) *
***********************************
***********************************
* Mythicon *
***********************************
***********************************
* Panda Inc. *
***********************************
***********************************
* Parker Bros. *
***********************************
***********************************
* Playaround *
***********************************
***********************************
* Puzzy *
***********************************
***********************************
* Rainbow Vision *
***********************************
***********************************
* Salu *
***********************************
Exocet TEC001 ER ??
Sea Hawk TEC002 ER ??
Skin Diver TEC003 ER 4 X SKINDIVR
Nightmare TEC004 ER 4 X NGHTMARE
Dice Puzzle TEC005 ER 4 X DICEPUZL
Forest TEC006 ER 4 X FOREST
***********************************
* Sega *
***********************************
***********************************
* Selchow & Righter *
***********************************
***********************************
* Simage *
***********************************
***********************************
* Sparrow *
***********************************
***********************************
* Spectravision *
***********************************
***********************************
* StarPath *
***********************************
***********************************
* Sunrise *
***********************************
***********************************
* Suntek *
***********************************
Time Race 1 ER ??
Galactic 2 ER ??
Pac-Kong 3 ER 4 X PACKONG
Pyramid War 4 ER 4 X PYRMDWAR
Netmaker 6 ER ??
Bermuda 9 ER 4 X BERMUDA
***********************************
* Technovision *
***********************************
***********************************
* Tele-Games *
***********************************
***********************************
* Telesys *
***********************************
***********************************
* Tigervision *
***********************************
***********************************
* TNT Games *
***********************************
***********************************
* 20th Century Fox *
***********************************
***********************************
* U.S. Games *
***********************************
X1: These two carts are the same except the name.
***********************************
* Universal Gamex *
***********************************
***********************************
* Venturevision *
***********************************
***********************************
* Video Gems *
***********************************
***********************************
* Wizard Video *
***********************************
***********************************
* Xonox *
***********************************
Note: No repeats are listed (i.e. when the same game is on two double-enders)
***********************************
* Zellers *
***********************************
***********************************
* Zimag *
***********************************
See Emag
***********************************
* Un-marked / Other *
***********************************
**********************************************
* Odd proto's and other intresting things *
**********************************************
***********************************
* Overflow *
***********************************
Used to keep Bankzilla's database program happy (mainly PAL versions and
game revisions. Prevents cluttering up the main listing)
####Data End####
***********************************
* World of Dead ROM Images *
***********************************
Yeppers, some ROM images are better off dead. Either they're exact copies,
damaged, or just plain DOA.
***********************************
* Proto's Read *
***********************************
Thanks to many people, I have been able to read some prototype carts in!
However, the data contained on the carts is identical to the production
ones.