Loading...
 

Bank Switching

Bank-switching is a process that allows the '2600 to access more memory (RAM and/or ROM) on a cartridge than is normally available to the processor.

Signatures

Some emulators determine the bankswitching scheme used by a ROM by checking the ROM for 'signature' bytes. Modern homebrews add a short known string of signature bytes to assist emulators in this detection process. Where a signature is listed in a bankswitching description, inclusion of that sequence anywhere in your ROM will help emulators auto-detect the bankswitching scheme the ROM is using.

Signatures are sometimes shown as a human-readable string of ASCII characters (for example, BF scheme uses "BFBF"). In these cases the associated ASCII values would appear in the ROM (i.e., $42, $46, $42, $46).

Non-Bankswitching Schemes

2K Cartridge
4K Cartridge

Bank-switch Schemes

It is not necessarily better to have larger amounts of ROM and/or RAM. It is how accessible the data is - for example, how many segments in the address space are switchable, which are fixed, the relative sizes, etc. Choosing an appropriate bankswitching scheme for your game needs to take all of these into account.

In the table, the amount of RAM is addition to the default 128 bytes at $80 - $FF.

NAMEROM SizeRAM SizeSignature (HEX values)
08408K 2 x [(AD 00 08) or (AD 40 08) or (0C 00 08)]
or 2 x [(0C 00 08 4C) or (0C FF 0F 4C)]
3E480K32K(85 3E) sta $3E
or (85 3F) sta $3F
3E+64K32K(54 4A 33 45) TJ3E
3EX64K? 256K
3F512K (85 3F) sta $3F
4A501
4KSC4K128 bytesThe first 256 bytes are identical,
and (53 43) SC at $1FFA.
AR2K6K
BF256K (42 46 42 46) BFBF
BFSC256K128 bytes
BUS2 28K4K
CDFJ32K8K
CDFJ+64/128/256/512K16/32K
CM
CTY/Chetiry28K (+4K ARM)64 bytes
CV4K (2K usable)1K
DPC+28K (+4K ARM) 4K
DF128K
DFSC128K128 bytes
DPC8K (+ 2K Display Data)
E0 8K
E7 upto 16K 1K + (4) 256 byte pages
EF 64K
EFSC
F0
F4 32K
F4SC 32K 128 bytesThe first 256 bytes are identical,
and (53 43) SC at $1FFA.
F6 16K
F6SC 16K 128 bytesThe first 256 bytes are identical,
and (53 43) SC at $1FFA.
F8 8K
F8SC 8K 128 bytesThe first 256 bytes are identical,
and (53 43) SC at $1FFA.
FA 12K 256 bytesThe first 512 bytes are identical.
FA2
FE
MDM
SB128K-256K
SCABS
Tigervision8K
TV Boy
UA
WD
X07


Notes:
(1) 4A50 - Very complex. See the description.
(2) BUS - Experimental. Complex and hard to summarise; see the description.

Relevant

see RAM access without RW line
see Kevin Horton's Guide
see Atari Bank Switching for Dummies