TZX FORMAT

This file contains a specification of the Custom info Decode info block as used by the TZX utility Tapir. This type of block can be used in TZX revision 1.20 and above. This specification should not be associated in any way with the official TZX file format specification.

ID 35 - Custom info block
length: [10,11,12,13]+14
Offset Value Type Description
0x00 - CHAR[10] Identification string (in ASCII)
0x10 L DWORD Length of the custom info
0x14 - BYTE[L] Custom info


This block can be used to save any information you want. For example, it might contain some information written by a utility, extra settings required by a particular emulator, or even poke data.

Some of the most common uses of this block have become standardized

Decode info block


This block allows a utility/emulator to correctly decode/interpret most of the datablocks it encounters, provided that correct Decode info is specified.

Offset Value Type Description
0x00 - CHAR[10] "Decode info" + 5 spaces (custom block ID)
0x10 - DWORD Length of data that follow
0x14 - BYTE Flags: b0=RR L, b1=DEC IX, b2=group checksum
0x15 - DWORD Base address of the following datablock (-1 = not specified)
0x19 - BYTE Flag 'byte' length (-1 = use previous)
0x1A DSL DWORD Decryption script length (-1 = use previous, 0 = none)
0x1E CL BYTE Checksum length (-1 = use previous info, 0 = no checksum)
0x1F * DWORD Checksum offset (>=0 ... offset from the start, <0 ... offset from the byte after the block, i.e. -1 = the last byte)
0x23 *CSL DWORD Checksum script length (0 = use standard XOR algorithm)
0x27 * BYTE[CSL] Checksum script
0x1F+
(CL>0)*(8+CSL)
- BYTE[(DSL>0)*DSL] Decryption script


The fields marked by an asterisk (*) are present only if CL>0.
If DSL>0 then set b1=0.
The fields explained: The specification of the scripting language can be found in its own documentation.

Scope of the Decode info block:
Base address value is effective only for the first datablock (i.e. ID 10, ID 11, ID 14, ID 19) encountered after the Decode info block, if there is no Group start or Group end between the Decode info and the datablock.
All other information: