whitepeak.org

i-Magic File Overview

Preamble

The following information has been obtained by dissecting the files using a hex editor and using a tool to study how the Tacx Analyser program reads the files. There are some gaps in the information - I do not know the purpose of every byte in the file, and some of my assumptions are no doubt wrong.

If you have any information which would help me fill in these gaps, or spot any errors, I'd be grateful if you could let me know.

Introduction

The i-Magic files are laid out differently to the Foritus ones. Further, all strings are ASCII encoded (1 byte per character) as opposed the Fortius files which use Unicode encoding (2 bytes per character) thoughout.

Data Types

I use .NET data types throughout; the following table gives sizes and explanations of each.

NameSize (Bytes)Comment
Byte1Byte
Char2Character (size can be 1 byte if the encoding is set to ASCII)
Int162Signed 16 bit integer
UInt162Unsigned 16 bit integer
Int324Signed 32 bit integer
Single4Single precision IEEE floating point number
UInt324Unsigned 32 bit integer
Double8Double precision IEEE floating point number

NB 1: The use of square brackets [] after a type indicates an array of that type. For example, Char[] is an array of char.

NB 2: Note that the size of the Char type depends on the encoding being used; in Fortius files this is always unicode, i.e. 2 bytes per character