Emulator Tape File Format
Previus Credits Index Next

The C64 Emulator can manage several kind of file formats that store C64 Tape file and also some proprietary format that have some characteristic that can permit a ~100% loading emulation.

Available file format are:

Remember that the proprietary format is so vary because we want a real loading emulation effect, so we must recognize several kind of format used to store games in a cassette. In fact,  for real loading emulation effect we intend that if the game being loading in the C64 give some graphical effect like color lines, music or/and graphics pictures, the user of emulator can choose to see them instead of only loading quickly. 

Commodore Kernal Tape File (1.00)

This file format is provided to store the file with the syntax used by the Kernal of the C64, so we can memorize the game that used a turbo tape method. In fact these games store the routine to read the turbo file in low memory and also in the header of the file being readed. When the turbo is loaded, the routine read the file and also can give some graphical effects during the read phase. 

/TR>
EXE OFFSET EXE VALUE COMMENT
00 02 Commodore 64
01 0A Kernal
02 13 Tape
03 05 File (1.00)
04 Type Type of header
05 Slo Start Address Lo
06 Shi Start Address Hi
07 Elo End Address Lo
08 Ehi End Address Hi
09 Name File Name
:: :: ::
09+0F Name File Name
18 HeadBody Header Body
:: :: (normally = 20h)
C0+04-1 HeadBody Header Body
C0+04 ChkH Checksum of Header
C5 Data File Data
:: :: ::
EOF-1 Data File Data
EOF ChkF Checksum of File

The checksum is calculated with this recursive formula:

The bytes from offset 4 to C5 are to be read and stored in the cassette header (starting a $033C)


Commodore Turbo Tape File (1.00)

This file format is provided for storing the file saved with the Turbo program file.

EXE OFFSET EXE VALUE COMMENT
00 02 Commodore 64
01 13 Turbo
02 13 Tape
03 05 File (1.00)
04 01/02 Header format
05 00 File format
06 Chk Checksum of file data
07 Slo Start Address Lo
08 Shi Start Address Hi
09 Elo End Address Lo
0A Ehi End Address Hi
0B 00 //
0C Len Name length ($1..$BB)
0D Name Name of file
:: :: ::
0D+Len-1 Name Name of file
0E+Len-1 Data File Data
:: :: ::
EOF Data File Data

In the real readed file the name occupies $BB bytes, but usually they are equal 20h after the name, so a file name length is provided to skip the residue bytes. A real emulation had to replace the other byte with the expected 20h bytes.

The checksum is calculated with this recursive formula:


Commodore Fast Tape File (1.00)

This type store the games saved with one format used by Golden Software.

EXE OFFSET EXE VALUE COMMENT
00 02 Commodore 64
01 05 Fast
02 13 Tape
03 05 File (1.00)
04 Slo Start Address Lo
05 Shi Start Address Hi
06 Elo End Address Lo
07 Ehi End Address Hi
08 Chk Checksum of Data
09 Data File Data
:: :: ::
EOF Data File Data

The checksum is calculated with this recursive formula:

Commodore Fast Tape File (1.01)

This type store the games saved with one format used by Galadriel Software.

EXE OFFSET EXE VALUE COMMENT
00 02 Commodore 64
01 05 Fast
02 13 Tape
03 25 File (1.01)
04 Slo Start Address Lo
05 Shi Start Address Hi
06 Elo End Address Lo
07 Ehi End Address Hi
08 Chk Checksum of Data
09 Data File Data
:: :: ::
EOF Data File Data

The checksum is calculated with this recursive formula:
 
Top
C= Logo
commodore 64 c64-pc Logo Tognon Stefano programs