Difference between revisions of "FF7/PSX/Sound/INSTRx.ALL"

From Final Fantasy Inside
< FF7
Jump to navigation Jump to search
(Add structure definition in pseudo C language)
m
 
(2 intermediate revisions by the same user not shown)
Line 1: Line 1:
There is two files of this structure on FF7 game discs: SOUND/INSTR.ALL - Main game sounds (93 instruments) SOUND/INSTR2.ALL- Voices from ending theme "One Winged Angel" (4 instruments) These files contain all sample data for every instrument in game. Every instrument consists of 16-byte PSX ADPCM frames. Frame format is known and there is numerous decompressors for it whether on the net, or in Q-Gears source.
+
There is two files of this structure on FF7 game discs:
 +
* SOUND/INSTR.ALL - Main game sounds (93 instruments)
 +
* SOUND/INSTR2.ALL - Voices from ending theme "One Winged Angel" (4 instruments)
 +
These files contain all sample data for every instrument in game. Every instrument consists of 16-byte PSX ADPCM frames. Frame format is known and there is numerous decompressors for it whether on the net, or in Q-Gears source.
  
 
== File Structure ==
 
== File Structure ==
 
At file beginning there is two 32-bit numbers. Counting from 0x10 file offset there is sample data for all instruments. (using term "Instrument" I actually mean serie of ADPCM samples, although in some context I can use term "Sample", "Sound" or "Voice" to describe instrument). All data from INSTR.ALL are loaded by DMA to SPU RAM in one chunk, offset 0x0202.
 
At file beginning there is two 32-bit numbers. Counting from 0x10 file offset there is sample data for all instruments. (using term "Instrument" I actually mean serie of ADPCM samples, although in some context I can use term "Sample", "Sound" or "Voice" to describe instrument). All data from INSTR.ALL are loaded by DMA to SPU RAM in one chunk, offset 0x0202.
  
  struct SampleSet
+
  struct AkaoSampleSet
 
  {
 
  {
 
   uint32_t addr;        // transfer destination address (SPU hardware address, between 0x1010 - 0x7ffff)
 
   uint32_t addr;        // transfer destination address (SPU hardware address, between 0x1010 - 0x7ffff)
 
   uint32_t size;        // transfer size
 
   uint32_t size;        // transfer size
   uint32_t w08;         // unused?
+
   uint8_t unknown[8];    // unused? padded with 0s
   uint32_t w0c;          // unused?
 
 
   
 
   
 
   uint8_t data[size];    // PSX ADPCM frames
 
   uint8_t data[size];    // PSX ADPCM frames
 
  };
 
  };

Latest revision as of 16:49, 7 June 2020

There is two files of this structure on FF7 game discs:

  • SOUND/INSTR.ALL - Main game sounds (93 instruments)
  • SOUND/INSTR2.ALL - Voices from ending theme "One Winged Angel" (4 instruments)

These files contain all sample data for every instrument in game. Every instrument consists of 16-byte PSX ADPCM frames. Frame format is known and there is numerous decompressors for it whether on the net, or in Q-Gears source.

File Structure

At file beginning there is two 32-bit numbers. Counting from 0x10 file offset there is sample data for all instruments. (using term "Instrument" I actually mean serie of ADPCM samples, although in some context I can use term "Sample", "Sound" or "Voice" to describe instrument). All data from INSTR.ALL are loaded by DMA to SPU RAM in one chunk, offset 0x0202.

struct AkaoSampleSet
{
  uint32_t addr;         // transfer destination address (SPU hardware address, between 0x1010 - 0x7ffff)
  uint32_t size;         // transfer size
  uint8_t unknown[8];    // unused? padded with 0s

  uint8_t data[size];    // PSX ADPCM frames
};