offset length value description
0x1000 2 0x1010
absolute offset to block data
0x1002 2 0x15f5
which is constant along the whole file, I think, it is a kind of delimiter
0x1004 2 0x182c
??????
0x1006 2 0x15f5
again the delimiter
0x1008 2 0x3208
relative offset to the checksum (relative to the start of this header =
relative to 0x1000)
0x100a 2 0x203a
relative offset to object records
0x100c 2 0x283a
relative offset to track data. Every track data have the same header length
= 44 bytes
this sequence of bytes is a special header also used in 3d object
definitions. The very first integer means the absolute start of the data
block. In this case it is 0x1010 which points to the very first byte of
3d objects table. The 0x15f5 is a bit strange since it is constant delimiter
over the whole file BUT it differs among different files. Phoenix has 0x15f5
but Interlagos has 0x1a17.
On address 0x1008 there is relative offset to the checksum. It
is relative to 0x1000. All relative offsets are relative to the start of
the header.
On address 0x100a there is relative offset to object records table.
There are 16byte definitions of different objects. I have discovered part
of the format, it is described here
.
On address 0x100c there is relative offset to track data. Each
track has a 44 byte header in front of the very first track command (I
hope it is 0xac). I haven't looked at this header, but it seems to have
constant length of 44 bytes.