Introduction
A .crt file of this kind is a Commodore 64 cartridge in the format of the VICE emulator: the contents of the ROM, RAM, Flash or EEPROM chips of a cartridge, with the
name of the hardware it is for and the state of the two cartridge-port lines (EXROM and GAME) that make the C64 map the cartridge into memory. A simple game cartridge is one chip of 8 or 16 KiB;
an EasyFlash or Magic Desk cartridge is many chips, one for each bank.
The extension .crt is also the one of X.509 certificates (PEM and DER). The explorer never goes by the extension for this format: a file is a C64 cartridge only
if it starts with the 16 bytes C64 CARTRIDGE and three spaces. A certificate never does, so it is not claimed: it is left to its own page.
The explorer shows the header, the cartridge's hardware type and start-up mode, every CHIP packet as a bank with its load address, the start-up vectors and the CBM80 signature of the chip it shows, and disassembles that
chip with the 6510 and the C64's named addresses. The chip is a choice in the options bar: it lists every chip as bank number, type and address range.
Structure
0x0000Header:C64 CARTRIDGE, header length, version, hardware type, EXROM, GAME, sub-type, name64 bytes0x0040CHIP packet:CHIP, packet length, chip type, bank, load address, size, then the data16 bytes + the data- more CHIP packets, one for each chip or bankto the end of the file
What the explorer decodes, and what it does not
- The hardware types 0 to 79 are named (Hardware types). Six of them (generic, Ocean, Super Games, C64 Games System, Magic Desk, EasyFlash) also have a line saying how their banks are switched.
- Every CHIP packet is shown at its own load address, whatever the hardware does. No bank switching is modelled: the explorer does not work out which bank the C64 would see after a write to a bank register, it lets you pick any chip.
- For a generic cartridge (type 0) the EXROM and GAME lines are checked against the chips' addresses, as VICE's conversion tool does.
Not described
Known, not yet covered
- Reference: the bank-switching register and rules of most of the 80 hardware types: only six are described. See Hardware types.
- Viewer: the memory map a cartridge makes after start-up and after each bank switch; every chip is shown on its own.
- Reference: hardware types above 79 (newer VICE versions have more), and the C128, VIC-20, Plus/4 and CBM-II cartridge images, which use the same layout with other signatures (
C128 CARTRIDGE,VIC20 CARTRIDGE,PLUS4 CARTRIDGE,CBM2 CARTRIDGE) and their own type lists. The explorer does not claim them. - Viewer: the .PRG-style loading of a cartridge by a start-up program; and code and data are not told apart (every byte is decoded as code).
Unknown
- Reference and viewer: no real
.crtcartridge image was found on this machine (the.crtfiles here are certificates), and VICE's own converter could not be run. Everything was tested on built files, and the type names were compared with the text inside VICE 3.8's converter. A real image may show a case not described here. - Reference: the numbers of the types: they are the position in VICE's table, not read from a file.
- Reference: what version
$0101changed beyond the sub-type byte.
Also used for
- DER certificate – Certificates and keys in binary ASN.1: tag, length and value fields.
- PEM certificate – Keys and certificates as base64 text between BEGIN and END lines.
Links
Software
- VICE – Commodore emulator that defined the .crt format; its
cartconvtool converts between .crt and raw ROMs (Windows, macOS, Linux)
Reference
- The VICE manual – has a section on the CRT image format and its list of hardware types; not readable on this machine, so these pages do not cite it