Difference between revisions of "FF8/FileFormat FMT"

From Final Fantasy Inside
< FF8
Jump to navigation Jump to search
my_wiki>Shard
(Created page with "Final Fantasy 8's sound effects are stored within two files. The '''audio.dat''' contains the actual wav files, compressed as 4-bit ADPCM. The '''audio.fmt''' file is a locato...")
 
m (8 revisions imported)
 
(7 intermediate revisions by 3 users not shown)
Line 2: Line 2:
  
 
==FMT File Structure==
 
==FMT File Structure==
The FMT is headed by 2 bytes representing the number of sound file headers in the rest of the FMT file.
+
The FMT is headed by 4 bytes representing the number of sound file headers in the rest of the FMT file, then by a 36 byte header that isn't interesting.
  
Each sound header either contains 70 bytes if it represents a valid sound file, or 38 bytes if it's a blank entry (those 38 bytes are all 0x0)
+
Each sound header (beginning with the first at 0x28) either contains 70 bytes if it represents a valid sound file, or 38 bytes if it's a blank entry (those 38 bytes are all 0x0)
  
Each sound header contains the following structure:
+
Each sound header representing a valid sound file contains the following structure:
  
{| border="1" cellspacing="1" cellpadding="3" align="center" style="border: 1px solid black; border-collapse: collapse;"
+
{| class="wikitable"
! style="background:rgb(204,204,204)" | Offset
+
! Offset
! style="background:rgb(204,204,204)" | Size
+
! Size
! style="background:rgb(204,204,204)" | Data
+
! Data
 
|-
 
|-
| 0x0000
+
| 0x00
 
| 4 bytes
 
| 4 bytes
 
| Size of wav file in the dat.
 
| Size of wav file in the dat.
 
|-
 
|-
| 0x0004
+
| 0x04
 
| 4 bytes
 
| 4 bytes
 
| Offset of wav file in the dat.
 
| Offset of wav file in the dat.
 
|-
 
|-
| 0x0008
+
| 0x08
 
| 12 bytes
 
| 12 bytes
 
| Unknown. If first byte is 0, the other 11 are always 0. Probably some kind of looping metadata.
 
| Unknown. If first byte is 0, the other 11 are always 0. Probably some kind of looping metadata.
 
|-
 
|-
| 0x0020
+
| 0x14
 
| 18 bytes
 
| 18 bytes
 
| Microsoft WAVFORMATEX header for the wav file.
 
| Microsoft WAVFORMATEX header for the wav file.
 
|-
 
|-
| 0x0038
+
| 0x26
 
| 2 bytes
 
| 2 bytes
 
| Samples per block
 
| Samples per block
 
|-
 
|-
| 0x0040
+
| 0x28
 
| 2 bytes
 
| 2 bytes
 
| Number of ADPCM coefficients (used for compression, should always be 7).
 
| Number of ADPCM coefficients (used for compression, should always be 7).
 
|-
 
|-
| 0x0042
+
| 0x2A
| 28 bytes (7 pairs of two 2-byte coefficients)
+
| 28 bytes
 
| Standard Microsoft ADPCMCoefSets.
 
| Standard Microsoft ADPCMCoefSets.
 
|-
 
|-
 
|}
 
|}

Latest revision as of 05:24, 23 May 2019

Final Fantasy 8's sound effects are stored within two files. The audio.dat contains the actual wav files, compressed as 4-bit ADPCM. The audio.fmt file is a locator for sounds in the dat.

FMT File Structure

The FMT is headed by 4 bytes representing the number of sound file headers in the rest of the FMT file, then by a 36 byte header that isn't interesting.

Each sound header (beginning with the first at 0x28) either contains 70 bytes if it represents a valid sound file, or 38 bytes if it's a blank entry (those 38 bytes are all 0x0)

Each sound header representing a valid sound file contains the following structure:

Offset Size Data
0x00 4 bytes Size of wav file in the dat.
0x04 4 bytes Offset of wav file in the dat.
0x08 12 bytes Unknown. If first byte is 0, the other 11 are always 0. Probably some kind of looping metadata.
0x14 18 bytes Microsoft WAVFORMATEX header for the wav file.
0x26 2 bytes Samples per block
0x28 2 bytes Number of ADPCM coefficients (used for compression, should always be 7).
0x2A 28 bytes Standard Microsoft ADPCMCoefSets.