CSMP (File Format): Difference between revisions
Jump to navigation
Jump to search
>Aruki (Yeah I can think of some critique...) |
imported>Antidote No edit summary |
||
Line 1: | Line 1: | ||
The '''.csmp file format''' seen in Retro Studios games past Metroid Prime 2, it's very similar in use to [[AGSC (File Format)|AGSC]] and contains sound affects. Where CSMP differs is the fact that it only contains one sound | The '''.csmp file format''' seen in Retro Studios games past Metroid Prime 2, it's very similar in use to [[AGSC (File Format)|AGSC]] and contains sound affects. Where CSMP differs is the fact that it only contains one sound and is broken up into obvious data chunks with easily identifiable sizes. | ||
{{todo|Notate Tropical freeze differences ([[User:Parax0|Paraxade]] do you know anything?)}} | {{todo|Notate Tropical freeze differences ([[User:Parax0|Paraxade]] do you know anything?)}} | ||
Line 5: | Line 5: | ||
== Header == | ==Header== | ||
What follows is the header found in Metroid Prime 3 and Donkey Kong Country Returns, Tropical Freeze's seems to be a bit different. The file can be read using a simple while loop, each chunk designates it's size | What follows is the header found in Metroid Prime 3 and Donkey Kong Country Returns, Tropical Freeze's seems to be a bit different. The file can be read using a simple while loop, each chunk designates it's size | ||
Line 24: | Line 24: | ||
|} | |} | ||
== Chunk == | ==Chunk== | ||
{|class="wikitable" | {|class="wikitable" | ||
Line 40: | Line 40: | ||
|- | |- | ||
|0x8+N | |0x8+N | ||
|colspan=2|End of chunk (usually, subtract 4 when the chunk type is equal to 0x44415441 | |colspan=2|End of chunk (usually, subtract 4 when the chunk type is equal to 0x44415441 ["DATA"]) | ||
|} | |} | ||
== Chunk Types == | ==Chunk Types== | ||
The known values for each chunk are as follows | The known values for each chunk are as follows: | ||
- | |||
===NAME=== | |||
This chunk just has a null-terminated string, it's the name of the contained sound data. | |||
===INFO=== | |||
{|class="wikitable" | {|class="wikitable" | ||
!Offset | !Offset | ||
Line 72: | Line 75: | ||
|'''Volume''' | |'''Volume''' | ||
|} | |} | ||
===PAD=== | |||
Padding, just seek '''ChunkSize''' bytes ahead | Padding, just seek '''ChunkSize''' bytes ahead | ||
===DATA=== | |||
Refer to the [[DSP (File Format)|DSP]] page for details. | Refer to the [[DSP (File Format)|DSP]] page for details. |
Revision as of 19:32, 25 January 2015
The .csmp file format seen in Retro Studios games past Metroid Prime 2, it's very similar in use to AGSC and contains sound affects. Where CSMP differs is the fact that it only contains one sound and is broken up into obvious data chunks with easily identifiable sizes.
To do: Notate Tropical freeze differences (Paraxade do you know anything?) |
Header
What follows is the header found in Metroid Prime 3 and Donkey Kong Country Returns, Tropical Freeze's seems to be a bit different. The file can be read using a simple while loop, each chunk designates it's size
To do: We've had success getting audio out of Tropical Freeze, crediar mentioned ddspadpcm being used in Tropical Freeze. What is it? And can we find any information on it? |
Offset | Size | Description |
---|---|---|
0x0 | 4 | Magic; Always 0x43534D50 ("CSMP") |
0x4 | 4 | Version; Always 1 |
Chunk
Offset | Size | Description |
---|---|---|
0x0 | 4 | ChunkType |
0x4 | 4 | ChunkSize (N) |
0x8+N | End of chunk (usually, subtract 4 when the chunk type is equal to 0x44415441 ["DATA"]) |
Chunk Types
The known values for each chunk are as follows:
NAME
This chunk just has a null-terminated string, it's the name of the contained sound data.
INFO
Offset | Size | Description |
---|---|---|
0x0 | 1 | Unknown |
0x1 | 1 | Loop Flag |
0x2 | 4 | Unknown |
0x6 | 2 | Unknown |
0x8 | 4 | Volume |
PAD
Padding, just seek ChunkSize bytes ahead
DATA
Refer to the DSP page for details.