Cart Information ---- ----------- Info about cart sizes and bankswitching methods 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. This text has been modified to be machine-readable by Bankzilla's database generator. This includes the '####Data Start####' and '####Data End####' flags, as well as including an 'overflow' category and including controller type. How Bankswitching Works --- ------------- ----- Bankswitching allows game programmers to include more data into a cartridge, therefore making (hopefully) a better game with more graphics/ levels. Bankswitching works under similar principals in all cases. Basically, by reading a certain location in ROM switches banks. (this is the F8-style of bankswitching) 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. Extra RAM in Carts ----- --- -- ----- 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: LDA #$69 ; byte to store STA $1000 ; store it . . ; rest of program goes here . LDA $1100 ; read it back . ; acc=$69, which is what we stored here earlier. M-network (AFAIK it has no name) 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. Similar to other schemes, 1800-18FF is write while 1900-19FF is read. Low RAM uses 1000-13FF for write and 1400-17FF for read. 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. Descriptions of the Various Bankswitch Modes -------------------------------------------- 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: -These images are not bankswitched. 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: -F6: The 'standard' method for implementing 16K of data. It is identical to the F8 method above, except there are 4 4K banks. You select which 4K bank by accessing 1FF6, 1FF7, 1FF8, and 1FF9. -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 | | | \-----------------------------------------------------------------------/ Hot Wants (that I know I probably won't get :-) ----------------------------------------------- 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) Anything by Action Hi-tech ####Data Start#### *********************************** * Atari * *********************************** [If SC is marked, cart uses a 'Super Chip'; aka CO20231] Name Part # RA SZ SC BS IM SP CT Filename --------------------------------------------------------------------------- Combat CX2601 C 2 X J COMBAT Air-Sea Battle CX2602 U 2 X J AIR_SEA Star Ship CX2603 R 2 X STARSHIP Space War CX2604 U 2 X SPACEWAR Outlaw CX2605 U 2 X J OUTLAW Slot Racers CX2606 U 2 X SLOTRACE Canyon Bomber CX2607 U 2 X CANYONB Super Breakout CX2608 U 4 X P SUPERB Defender CX2609 C 4 X J DEFENDER Warlords CX2610 U 4 X P WARLORDS Indy 500 CX2611 U 2 X D INDY_500 Street Racer CX2612 U 2 X STRTRACE Adventure CX2613 C 4 X J ADVNTURE Steeple Chase CX2614 NR 2 X P STEPLCHS Demons to Diamonds CX2615 U 4 X DEMONDIM Hot Rox CX2615 NR 4 X DEMONDIM Pele's Soccer CX2616 C 4 X PELE Backgammon CX2617 U 4 X BACKGAM 3D- Tic-Tac-Toe CX2618 U 2 X J 3D_TIC Stellar Track CX2619 NR 4 X STELRTRK BASIC Programming CX2620 R 4 X K BASIC Video Olympics CX2621 C 2 X P VID_OLYM Breakout CX2622 C 2 X P BREAKOUT Homerun CX2623 C 2 X HOMERUN Basketball CX2624 C 2 X BASKETBL Football CX2625 C 2 X FOOTBALL Minature Golf CX2626 U 2 X MIN_GOLF Human Cannonball CX2627 U 2 X HUMAN_CB Bowling CX2628 C 2 X J BOWLING Sky Diver CX2629 U 2 X SKYDIVER Circus Atari CX2630 C 4 X P CIRCATRI Superman CX2631 C 4 X J SUPRMAN1 Space Invaders CX2632 C 4 X J SPCINVAD Night Driver CX2633 C 2 X NIGHTDRV Golf CX2634 C 2 X GOLF Maze Craze CX2635 U 4 X J MAZECRZ Video Checkers CX2636 R 4 X J CHECKERS Dodge 'Em CX2637 U 4 X DODGE_EM Missile Command CX2638 C 4 X J MISSCOMM Othello CX2639 R 2 X OTHELLO Realsports Baseball CX2640 U 8 F8 X RS_BASEB Surround CX2641 C 2 X J SURROUND A Game of Concentration CX2642 C 2 X CONCENTR Code Breaker CX2643 U 2 X CODEBRK Flag Capture CX2644 U 2 X FLAGCAP Video Chess CX2645 U 4 X VIDCHESS Pac-Man CX2646 C 4 X J PACMAN Submarine Commander CX2647 PR 4 X J SUBCOMDR Video Pinball CX2648 U 4 X J VIDPIN Asteroids CX2649 C 8 F8 X J ASTEROID Berzerk CX2650 C 4 X J BERZERK Blackjack CX2651 R 2 X BLACK_J Casino CX2652 U 4 X CASINO Slot Machine CX2653 R 2 X SLOTMACH Haunted House CX2654 C 4 X J HAUNTHSE Yar's Revenge CX2655 C 4 X J YAR_REV Swordquest Earthworld CX2656 C 8 F8 X J SQ_EARTH Swordquest Fireworld CX2657 C 8 F8 X J SQ_FIRE Math Gran Prix CX2658 C 4 X J MATH_GPX Raiders of the Lost Ark CX2659 C 8 F8 X J RAIDERS Star Raiders CX2660 U 8 F8 X JK STARRAID Basic Math CX2661 C 2 X J BASMATH Hangman CX2662 U 4 X J HANGMAN Road Runner CX2663 ER 16 F6 X J ROADRUNR Brain Games CX2664 U 2 X BRAINGMS Frog Pond CX2665 PR 8 F8 X J FROGPOND Realsports Volleyball CX2666 U 4 X RS_VOLLY Realsports Soccer CX2667 U 8 F8 X RSSOCCER Realsports Football CX2668 C 8 F8 X RS_FOOTB Vanguard CX2669 C 8 F8 X VANGUARD Atari Video Cube CX2670 R 4 X J VIDCUBE Swordquest Waterworld CX2671 UR 8 F8 X J SQ_WATER Swordquest Airworld CX2672 NR ?? ---No Known Copies Exist--- Phoenix CX2673 C 8 F8 X J PHOENIX E.T. The Extra-Terrestrial CX2674 C 8 F8 X J E_T Ms. Pac-Man CX2675 C 8 F8 X J MSPACMAN Centipede CX2676 C 8 F8 X J CENTIPED Dig Dug CX2677 U 16 X F6 X J DIGDUG Dukes of Hazzard CX2678 PR 16 F6 X J DUKES Realsports Basketball CX2679 NR ?? ---No Known Copies Exist--- Realsports Tennis CX2680 U 8 F8 X J RSTENNIS Battlezone CX2681 U 8 F8 X J BATLZONE Krull CX2682 R 8 F8 X J KRULL Crazy Climber CX2683 ER 8 F8 X J CRAZCLMB Galaxian CX2684 U 8 F8 X J GALAXIAN Gravitar CX2685 U 8 F8 X J GRAVITAR Quadrun CX2686 ER 8 F8 X J QUADRUN Tempest CX2687 PR ?? ---A Few Proto's Exist--- Junglehunt CX2688 U 8 F8 X J JNGLHUNT Kangaroo CX2689 U 8 F8 X J KANGAROO Pengo CX2690 ER 8 F8 X J PENGO Joust CX2691 C 8 F8 X J JOUST Moon Patrol CX2692 U 8 F8 X J MOONPTRL Food Fight CX2693 NR ?? ---No Known Copies Exist--- Pole Position CX2694 C 8 F8 X J POLEPSN Xevious CX2695 PR 8 F8 X J XEVIOUS Asterix CX2696 ER 8 F8 X J ASTERPAL Mario Bros. CX2697 U 8 F8 X J MARIOBRO Rubik's Cube CX2698 ER 4 X J RUBIKS Taz CX2699 R 8 F8 X J TAZ Oscar's Trash Race CX26101 R 8 F8 X K OSCAR Cookie Monster Crunch CX26102 R 8 F8 X K COOKMONS Alpha-Beam with Ernie CX26103 R 8 F8 X K ALPHBEAM Big Bird's Egg Catch CX26104 R 8 F8 X K EGGCATCH 3-D Asteroids CX26105 NR ?? Grover's Music Maker CX26106 PR 8 F8 X GROVER Snow White CX26107 NR ?? Donald Duck's Speedboat CX26108 PR 8 F8 X J DDUCKSBT Sourcerer's Apprentice CX26109 R 8 F8 X J SORCAPRN Crystal Castles CX26110 U 16 X F6 X J XTALCAST Snoopy and the Red Barron CX26111 R 8 F8 X J SNOOPY Good Luck; Charlie Brown CX26112 PR ?? ---One Proto Exists--- Miss Piggie's Wedding CX26113 UR ?? Pigs in Space CX26114 ER 8 F8 X J PIGSPACE Dumbo's Flying Circus CX26115 PR 8 F8 X J DUMBO_N Galaga CX26116 NR ?? Obelix CX26117 ER 8 F8 X J OBELIX Millipede CX26118 R 16 X F6 X J MILLIPED Saboteur CX26119 PR 8 F8 X J SABOTEUR Star Gate CX26120 U 8 X F8 X J STARGATE Defender ][ CX26120 R 8 X F8 X J DEFENDR2 Zookeeper CX26121 NR ?? Sinistar CX26122 PR 8 F8 X J SINISTAR Jr. Pac-Man CX26123 U 16 X F6 X J JRPACMAN Choplifter CX26124 NR ?? Track & Field CX26125 R 16 F6 X T TRACK Elevator Action CX26126 NR ?? Gremlins CX26127 ER 8 F8 X J GREMLINS Boing CX26128 NR ?? Midnight Magic CX26129 R 16 F6 X J MIDNIGHT Honker Bonker CX26130 NR ?? Monstercise CX26131 PR 8 F8 X MONS Garfield CX26132 NR ?? The A-Team CX26133 PR 8 F8 X J ATEAM The Last Starfighter CX26134 NR ?? Star Raiders ][ CX26134 NR ?? Realsports Boxing CX26135 U 16 F6 X J RSBOXING Solaris CX26136 U 16 F6 X J SOLARIS Peek-A-Boo CX26137 PR 4 X PEEKABOO Super Soccer CX26138 NR ?? Crossbow CX26139 U 16 F6 X J CROSSBOW Desert Falcon CX26140 C 16 X F6 X J DSRTFALC Motor Psycho CX26141 NR ?? Crack'ed CX26142 ?? Donkey Kong CX26143 U 4 X J DK Donkey Kong Jr. CX26144 R 8 F8 X J DKJR Venture CX26145 R 4 X J VENTURE Mousetrap CX26146 R 4 X J MOUSETRP Frogger CX26147 NR 4 X J FROGGER Turbo CX26148 NR ?? Zaxxon CX26149 NR ?? Q*Bert CX26150 R 4 X J QBERT_PB Dark Chambers CX26151 U 16 X F6 X X3 J DARKC Super Baseball CX26152 U 16 F6 X J SUPBBALL Super Football CX26154 U 16 X F6 X J SPRFOOTB Sprintmaster CX26155 R 16 X F6 X J SPRNMAST Combat II (Wizard?) CX26156 NR ?? CX26157 ?? Surround II CX26158 NR ?? Double Dunk CX26159 R 16 F6 X J DOUBDUNK CX26160 ?? CX26161 ?? Fatal Run CX26162 UR 32 X F4 X J FATALRUN 32-in-1 CX26163 ER 64 32 banks of 2K -- 32IN1 CX26164 ?? Jinks CX26165 NR ?? CX26166 ?? Street Fight CX26167 ?? Off the Wall CX26168 ER 16 X F6 X J OFTHWALL Shooting Arcade CX26169 PR 16 X F6 X L SHOOTING Secret Quest CX26170 R 16 X F6 X J SECRETQ Motorodeo CX26171 UR 16 F6 X J MOTOR Xenophobe CX26172 ER 16 F6 X J XENOPHOB CX26173 ?? CX26174 ?? CX26175 ?? Radar Lock CX26176 R 16 X F6 X J RADARLOK Ikari Warriors CX26177 R 16 F6 X J IKARIWAR Save Mary! CX26178 PR 16 X F6 X J SAVEMARY CX26179 ?? CX26180 ?? CX26181 ?? CX26182 ?? Sentinel CX26183 R 16 F6 X L SENTINEL White Water Madness CX26184 UR ?? CX26185 ?? CX26186 ?? CX26187 ?? CX26188 ?? CX26189 ?? BMX Airmaster CX26190 ER ?? CX26191 ?? KLAX CX26192 ER 16 X F6 X X2 J KLAXNTSC Aquaventure CX26??? PR 8 F8 X J AQUAVENT Bionic Breakthrough CX26??? PR 8 F8 X O MINDLINK Bugs Bunny CX26??? PR 8 F8 X J BUGSBUN Coke Wins! CX26??? UR 4 X J COKEWINS Holy Moley CX26??? PR 8 F8 X HOLEMOLE Polo CX26??? PR 2 X J POLO Rodeo CX26??? PR ?? Rabbit Transit CX26??? PR ?? Standalone Test Tape MAO17600 DM 2 X -- MAO17600 Nightmare Manor CX26??? PR ?? Super Stunt Cycle PR 2 X J STUNT-1 Dukes of Hazzard (not CX2678) PR 2 X J STUNT-2 X2: Special Best Prototype NTSC version. X3: Doesn't like my test cart; have to disable SC for it to start. I can then re-enable the SC and it'll work. Also, the cart itsself doesn't work on my 7800 (or my test cart for that matter). *********************************** * Action Hi-Tech * *********************************** Name Part # RA SZ SC BS IM SP CT Filename --------------------------------------------------------------------------- Crab Control 605077 UR ?? F-18 vs. Aliens ???? UR ?? Galaxy Invader ???? UR ?? Space Grid ???? UR ?? Tank City ???? UR ?? War Zone ???? UR ?? *********************************** * Activision * *********************************** Name Part # RA SZ SC BS IM SP CT Filename --------------------------------------------------------------------------- Dragster AG-001 U 2 X J DRAGSTER Boxing AG-002 U 2 X J BOXING Checkers AG-003 ER 2 X J CHECKERA Fishing Derby AG-004 U 2 X J FISHDRBY Skiing AG-005 U 2 X J SKIING Bridge AX-006 U 4 X J BRIDGE Tennis AG-007 C 2 X J TENNIS Laser Blast AG-008 C 2 X J LASRBLST Freeway AG-009 U 2 X J FREEWAY Kaboom AG-010 U 2 X P KABOOM Stampede AG-011 U 2 X J STAMPEDE Ice hockey AX-012 U 4 X J ICEHOCKY Barnstroming AX-013 U 4 X J BARNSTRM Gran Prix AX-014 U 4 X J GRANDPRX Chopper Command AX-015 U 4 X J CHOPRCMD Starmaster AX-016 U 4 X J STARMAST Megamania AX-017 U 4 X J MEGAMAN Pitfall AX-018 C 4 X J PITFALL Sky Jinks AG-019 R 2 X J SKYJINKS River Raid AX-020 U 4 X J RIVERAID Spider Fighter AX-021 U 4 X J SPIDRFTR Seaquest AX-022 R 4 X J SEAQUEST Oink! AX-023 R 4 X J OINK Dolphin AX-024 R 4 X J DOLPHIN Keystone Kapers AX-025 U 4 X J KEYSTONE Enduro