Skip to content

File format specification

Maurizio Basaglia edited this page Apr 8, 2026 · 19 revisions

File format specification

The O2 file format is made of a fixed-length part, that provides informations about the structure itself of the file, followed by a variable-length part, that is the content of the file.

Offset Size Description
0 16 Globally unique identifier (GUID) of the file format: ABBB4FE2-9C21-450E-80B0-469DFD8A8BFC
16 1 Minor version of the file format
17 1 Major version of the file format
18 1 Encryption flag
19 1 Cipher algorithm identifier
20 1 Hash algorithm identifier
21 16 Initialization vector (IV) of the cipher algorithm
37 4 32-bit CRC calculated on the content of the file
41 Content of the file, compressed with the zlib deflate algorithm, then optionally encrypted

Versions prior to 3.0

Offset Size Description
0 16 Globally unique identifier (GUID) of the file format: ABBB4FE2-9C21-450E-80B0-469DFD8A8BFC
16 1 Minor version of the file format
17 1 Major version of the file format
18 1 Encryption flag
19 1 Cipher algorithm identifier
20 1 Hash algorithm identifier
21 4 32-bit CRC calculated on the content of the file
25 Content of the file, compressed with the zlib deflate algorithm, then optionally encrypted

Version history

A change of the major version means changes made to the file structure, a change of the minor version means changes made only to the schema of the content of the file.

Version Changes Application versions
3.0 Added IV 3.1+
2.3 Added <TextType> element 2.4 - 3.0
2.2 Unicode encoding support 2.0 - 2.3
2.1 Added <Relations> element 1.2 - 1.3.2
2.0 Content compression 1.1 - 1.1.2
1.0 Initial version 1.0 - 1.0.6

Clone this wiki locally