CARTRIDGE FILE FORMAT FOR CCS64 (using fileextension .CRT)
Latest change: 4 July 2003
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)
6 - Expert Cartridge
7 - Fun Play
8 - Super Games
9 - Atomic Power
10 - Epyx Fastload
11 - Westermann
12 - Rex
13 - Final Cartridge I
14 - Magic Formel
15 - C64 Game System
16 - Warpspeed
17 - Dinamic
18 - Zaxxon
19 - Magic Desk, Domark, HES Australia
20 - Super Snapshot 5
21 - COMAL 80
Chip Types:
0 - ROM
1 - RAM, no data field
2 - Flash ROM
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:
EXAMPLE FOR FUN PLAY TYPE
$0000: 'C64 CARTRIDGE '
$0010: 00 00 00 40 01 00 00 07 00 00 00 00 00 00 00 00
$0020: 'FUN PLAY' 00 00 00 00 00 00 00 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 08 80 00 20 00
$2060: <data 8192 bytes for 8000-9fff, bank 1>...
$4060: 'CHIP'
$2054: 00 00 20 10 00 00 00 10 80 00 20 00
$2060: <data 8192 bytes for 8000-9fff, bank 2>...
...
$1E130: 'CHIP'
$1E134: 00 00 20 10 00 00 00 39 80 00 20 00
$1E140: <data 8192 bytes for 8000-9fff, bank 15>...
$20140:
EXAMPLE FOR SUPER GAMES TYPE
$0000: 'C64 CARTRIDGE '
$0010: 00 00 00 40 01 00 00 08 00 00 00 00 00 00 00 00
$0020: 'SUPER GAMES' 00 00 00 00 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 8000-bfff, bank 0>...
$4050: 'CHIP'
$4054: 00 00 40 10 00 00 00 01 80 00 40 00
$4060: <data 16384 bytes for 8000-bfff, bank 0>...
$8060: 'CHIP'
$8064: 00 00 40 10 00 00 00 02 80 00 40 00
$8070: <data 16384 bytes for 8000-bfff, bank 0>...
$C070: 'CHIP'
$C074: 00 00 40 10 00 00 00 03 80 00 40 00
$C080: <data 16384 bytes for 8000-bfff, bank 0>...
$10080:
EXAMPLE FOR ATOMIC POWER CARTRIDGE
$0000: 'C64 CARTRIDGE '
$0010: 00 00 00 40 01 00 00 09 00 00 00 00 00 00 00 00
$0020: 'Atomic Power' 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 EPYX FASTLOAD TYPE
$0000: 'C64 CARTRIDGE '
$0010: 00 00 00 40 01 00 00 0A 01 01 00 00 00 00 00 00
$0020: 'EPYX FASTLOAD' 00 00 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:
EXAMPLE FOR WESTERMANN TYPE
$0000: 'C64 CARTRIDGE '
$0010: 00 00 00 40 01 00 00 0B 00 01 00 00 00 00 00 00
$0020: 'Westermann' 00 00 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 8000-bfff>
$4050:
EXAMPLE FOR REX TYPE
$0000: 'C64 CARTRIDGE '
$0010: 00 00 00 40 01 00 00 0C 00 01 00 00 00 00 00 00
$0020: 'Rex' 00 00 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: