/mpr-csmp2dsp

Decode/convert Metroid Prime Remastered CAUD+CSMP to easily usable GameCube DSP audio files

Primary LanguageC

Metroid Prime Remastered CAUD/CSMP converter

This tool converts audio files (CAUD/CSMP) from Metroid Prime Remastered to much more useful standard GameCube DSP files.

System Requirements

  • a POSIX compatible system with a C compiler

  • or a Visual Studio C++ compiler

Building

On POSIX:

gcc -o csmp csmp.c

In Visual Studio:

  • Open ./vc/mpr-csmp2dsp/mpr-csmp2dsp.sln

  • Build the solution

Usage

  • Compile the program
  • Create a folder called files
  • Get your ROM dump of Metroid Prime Remastered
  • Extract the romfs somewhere, e.g. to a folder called romfs
  • Get the pak extraction tool from here and build it with cargo build
  • Create a folder called files and enter it
  • Extract all pak files of the game:
for file in `find ../romfs -name '*.pak'`; do paktool-rs pak extract "$file" .; done
  • Go one folder up again so you're in the folder with the files folder in it
  • Create a folder called csmp and another one called log
  • Run the csmp program on all CAUD files:
for file in files/*.CAUD; do echo $file; csmp "$file" > log/$(basename "$file").log 2>&1; done
  • Now you should have CSMP files renamed according to the names from the CAUD files. You should also have DSP files for most CSMP files.

Limitations

The CAUD format is not fully understood. As a result, only the first sample referenced by a CAUD file is processed.

TODO

  • Figure out the remaining unknown fields in CSMP files
  • Figure out how CAUD files really work