CARTRIDGE FILE FORMAT FOR CCS64 (using fileextension .CRT)
0000 'C64 CARTRIDGE '
0010 ULONG fileheader-length (counted from offset 0000, default=0040)
0014 UWORD Version (=0100)
0016 UWORD Hardware type
0018 UBYTE Exrom line
0019 UBYTE Game line
001A UBYTE[6] For future use...
0020 UBYTE[20] Name (null-terminated string)
0040 Chip Packets
...
Chip Packets:
0000 'CHIP'
0004 ULONG packetlength (counted from offset 0000)
0008 UWORD chiptype
000A UWORD bank (for normal cartridges = 0)
000C UWORD address
000E UWORD length
0010 UBYTE[] data
...
Hardware Types:
0 - Normal cartridge
1 - Action Replay
2 - KCS Power Cartridge
3 - Final Cartridge III
4 - Simons Basic
5 - Ocean type 1 (256 and 128 Kb)
Chip Types:
0 - ROM
1 - RAM, no data field
All UWORD and ULONG's are in (MSB,LSB) format, i.e. $1234 will be $12,$34 in bytes.
EXAMPLE FOR ACTION REPLAY CARTRIDGE
$0000: 'C64 CARTRIDGE '
$0010: 00 00 00 40 01 00 00 01 00 00 00 00 00 00 00 00
$0020: 'Action Replay V' 00
$0030: 00 00 ... 00
$0040: 'CHIP'
$0044: 00 00 20 10 00 00 00 00 80 00 20 00
$0050: <data 8192 bytes for bank 0>...
$2050: 'CHIP'
$2054: 00 00 20 10 00 00 00 01 80 00 20 00
$2060: <data 8192 bytes for bank 1>...
$4060: 'CHIP'
$4064: 00 00 20 10 00 00 00 02 80 00 20 00
$4070: <data 8192 bytes for bank 2>...
$6070: 'CHIP'
$6074: 00 00 20 10 00 00 00 03 80 00 20 00
$6080: <data 8192 bytes for bank 3>...
$8080:
EXAMPLE FOR KCS POWER CARTRIDGE
$0000: 'C64 CARTRIDGE '
$0010: 00 00 00 40 01 00 00 02 00 00 00 00 00 00 00 00
$0020: 'KCS Power Cartridge' 00
$0030: 00 00 ... 00
$0040: 'CHIP'
$0044: 00 00 20 10 00 00 00 00 80 00 20 00
$0050: <data 8192 bytes for 8000-9fff>...
$2050: 'CHIP'
$2054: 00 00 20 10 00 00 00 00 A0 00 20 00
$2060: <data 8192 bytes for a000-bfff>...
$4060:
EXAMPLE FOR FINAL CARTRIDGE III
$0000: 'C64 CARTRIDGE '
$0010: 00 00 00 40 01 00 00 03 01 01 00 00 00 00 00 00
$0020: 'Final cartridge' 00
$0030: 00 00 ... 00
$0040: 'CHIP'
$0044: 00 00 40 10 00 00 00 00 80 00 40 00
$0050: <data 16384 bytes for bank 0>...
$4050: 'CHIP'
$4054: 00 00 40 10 00 00 00 01 80 00 40 00
$4060: <data 16384 bytes for bank 1>...
$8060: 'CHIP'
$8064: 00 00 40 10 00 00 00 02 80 00 40 00
$8070: <data 16384 bytes for bank 2>...
$C070: 'CHIP'
$C074: 00 00 40 10 00 00 00 03 80 00 40 00
$C080: <data 16384 bytes for bank 3>...
$10080:
EXAMPLE FOR SIMONS BASIC
$0000: 'C64 CARTRIDGE '
$0010: 00 00 00 40 01 00 00 04 00 01 00 00 00 00 00 00
$0020: 'Simons Basic' 00
$0030: 00 00 ... 00
$0040: 'CHIP'
$0044: 00 00 20 10 00 00 00 00 80 00 20 00
$0050: <data 8192 bytes for 8000-9fff>...
$2050: 'CHIP'
$2054: 00 00 20 10 00 00 00 00 A0 00 20 00
$2060: <data 8192 bytes for a000-bfff>...
$4060:
EXAMPLE FOR OCEAN TYPE1
$0000: 'C64 CARTRIDGE '
$0010: 00 00 00 40 01 00 00 05 00 00 00 00 00 00 00 00
$0020: 'Robocop2' 00
$0030: 00 00 ... 00
$0040: 'CHIP'
$0044: 00 00 20 10 00 00 00 00 80 00 20 00
$0050: <data 8192 bytes for 8000-9fff, bank 0>...
$2050: 'CHIP'
$2054: 00 00 20 10 00 00 00 01 80 00 20 00
$2060: <data 8192 bytes for 8000-9fff, bank 1>...
...
$20140: 'CHIP'
$20144: 00 00 20 10 00 00 00 10 A0 00 20 00
$20150: <data 8192 bytes for a000-bfff, bank 16>...
$22150: 'CHIP'
$22154: 00 00 20 10 00 00 00 11 A0 00 20 00
$22160: <data 8192 bytes for a000-bfff, bank 17>...
...
$40240: