BCSTM: Difference between revisions

Xcution (talk | contribs)
No edit summary
TiniVi (talk | contribs)
Line 12: Line 12:
=== Format ===
=== Format ===


The structure is very similar to the CWAV, except these notable differences :
=== CSTM Header ===


{| class="wikitable" border="1"
{| class="wikitable" border="1"
Line 19: Line 19:
|-
|-
| 0x000 || 4 || MAGIC "CSTM"
| 0x000 || 4 || MAGIC "CSTM"
|}
=== INFO Header ===
{| class="wikitable" border="1"
|-
|-
! OFFSET !! SIZE !!  DESCRIPTION
|-
| 0x000 || 4 || Magic "INFO"
|-
| 0x004 || 4 || Length
|-
| 0x020 || 1 || Type (00 = PCM8, 01 = PCM16, 02 = DSPADPCM)
|-
| 0x021 || 1 || Loop Flag
|-
| 0x022 || 2 || Total Channels
|-
| 0x024 || 4 || Sample Rate
|-
| 0x028 || 4 || Unknown
|-
| 0x02C || 4 || Total samples
|-
| 0x030 || X || The Channels' Data Pointers
|-
| X || X || The Channels' Data
|}
=== DATA Header ===
{| class="wikitable" border="1"
|-
! OFFSET !! SIZE !!  DESCRIPTION
|-
| 0x000 || 4 || Magic "DATA"
|-
| 0x004 || 4 || Length
|-
| 0x020 || X || Start of Channel Data
|}
|}
Unlike CWAV, if there are 2 channels in a CSTM they alternate every 0x2000 bytes of the DATA partition starting at 0x20.


Additionally it introduces a new partition called SEEK which comes right before DATA, so a CSTM would be ordered like this:
Additionally it introduces a new partition called SEEK which comes right before DATA, so a CSTM would be ordered like this:
Line 29: Line 70:
* DATA Partition
* DATA Partition


By default this means that 0x24-0x2B in the CSTM Partition is the SEEK position and length respectively, and DATA position and length follows it. (in a CWAV 0x24-0x2B is usually the DATA position and length)
By default this means that 0x24-0x2B in the CSTM Partition is the SEEK position and length respectively, and DATA position and length follows it (in a CWAV 0x24-0x2B is usually the DATA position and length).


=== SEEK ===
=== SEEK ===