Difference between revisions of "CSMP (File Format)"

From Retro Modding Wiki
Jump to: navigation, search
(WIP, please critique and make changes.)
 
(Yeah I can think of some critique...)
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 18: Line 18:
 
|4
 
|4
 
|'''Magic'''; Always 0x43534D50 ("CSMP")
 
|'''Magic'''; Always 0x43534D50 ("CSMP")
 +
|-
 
|0x4
 
|0x4
 
|4
 
|4
 
|'''Version'''; Always 1
 
|'''Version'''; Always 1
}
+
|}
  
==Chunk==
+
== Chunk ==
  
 
{|class="wikitable"
 
{|class="wikitable"
Line 33: Line 34:
 
|4
 
|4
 
|'''ChunkType'''
 
|'''ChunkType'''
 +
|-
 
|0x4
 
|0x4
 
|4
 
|4
Line 39: Line 41:
 
|0x8+N
 
|0x8+N
 
|colspan=2|End of chunk (usually, subtract 4 when the chunk type is equal to 0x44415441 ("DATA"))
 
|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
Line 53: Line 55:
 
|1
 
|1
 
|'''Unknown'''
 
|'''Unknown'''
 +
|-
 
|0x1
 
|0x1
 
|1
 
|1
Line 68: Line 71:
 
|4
 
|4
 
|'''Volume'''
 
|'''Volume'''
}
+
|}
 +
 
 
--PAD--
 
--PAD--
 
Padding, just seek '''ChunkSize''' bytes ahead
 
Padding, just seek '''ChunkSize''' bytes ahead

Revision as of 13:30, 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 (usually, there may be a few outliers) and is broken up into obvious data chunks with easily identifiable sizes.


GravitySuitIcon.png 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


GravitySuitIcon.png 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 --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.