HDR

From FIFA Manager Modding Wiki

HDR is a file extension in FIFA and FIFA Manager games, which is used for audio files. It works as a header for DAT files.

Structure[edit | edit source]

Version 1[edit | edit source]

FIFA 07, FIFA 08, FIFA Manager 07, FIFA Manager 08

UINT16  type (0x3CB for player comments)
INT16   sub ID (FIFA player ID for player comments), -1 if no ID assigned *
UINT7   number of parameters
UINT1   has cycle bits
UINT8   number of samples
UINT8   repeat queue size
UINT8   offset multiplier (size of block), 0 = 256, 1 = 512, 2 = 1024, and so on
UINT16  size of all samples in .dat file, divided by offset multiplier (blocks count)
UINT16  number of subbanks
#FOR number of samples
UINT16  sample offset in .dat file, divided by offset multiplier (big-endian)
UINT8[] parameters (count - number of parameters)
#END FOR
UINT8[] 4-byte alignment
UINT32[] valid param mask (count - number of parameters)
#IF has cycle bits
UINT8 cycle length
UINT1[]  cycle bits (count - number of samples, runtime usage, always 0)
UINT1[]  1-byte alignment
#ENDIF
#IF repeat queue size > 0
UINT8    repeat queue current index (runtime usage, always 0)
UINT8[]  repeat queue sample indices (count - repeat queue size, runtime usage, always -1)
#ENDIF
UINT8[] 4-byte alignment

* In case if ID is greater than 16-bit value, only lower 16 bits are stored in the file.

Version 2[edit | edit source]

FIFA 09, FIFA 10, FIFA Manager 13

UINT16   type (0x3CB for player comments)
UINT7    number of parameters
UINT1    has cycle bits
UINT8    number of samples
INT32    sub ID (FIFA player ID for player comments), -1 if no ID assigned
UINT8    repeat queue size
UINT8    offset multiplier (size of block), 0 = 256, 1 = 512, 2 = 1024, and so on
UINT16   size of all samples in .dat file, divided by offset multiplier (blocks count)
UINT32   number of subbanks
#FOR number of samples
UINT16   sample offset in .dat file, divided by offset multiplier (big-endian)
UINT8[]  parameters (count - number of parameters)
#END FOR
UINT8[]  4-byte alignment
UINT32[] valid param mask (count - number of parameters)
#IF has cycle bits
UINT8 cycle length
UINT1[]  cycle bits (count - number of samples, runtime usage, always 0)
UINT1[]  1-byte alignment
#ENDIF
#IF repeat queue size > 0
UINT8    repeat queue current index (runtime usage, always 0)
UINT8[]  repeat queue sample indices (count - repeat queue size, runtime usage, always -1)
#ENDIF
UINT8[] 4-byte alignment

Player commentaries[edit | edit source]

Player commentary samples have 1 parameter - sound tone:

0 - low tone
1 - high tone

Validation mask is following:

1 - file has low tone sounds
2 - file has high tone sounds