How to Decode GameCube and Wii DSP Audio with FFmpeg

This guide provides a straightforward walkthrough on how to decode GameCube and Wii DSP audio files using FFmpeg. You will learn the exact command-line syntax required to convert these proprietary Nintendo audio formats into standard, playable audio formats like WAV or MP3, along with commands for batch-processing multiple files at once.

Understanding the DSP Format

Nintendo GameCube and Wii games frequently store audio—such as music and sound effects—in the .dsp (or .idsp) format. This format utilizes a proprietary ADPCM (Adaptive Differential Pulse-Code Modulation) compression scheme. Because FFmpeg has built-in demuxers and decoders for this format, you do not need external game-ripping tools to extract the audio.

The Basic Conversion Command

To convert a single GameCube/Wii DSP file to a standard, lossless WAV file, open your terminal or command prompt and run the following command:

ffmpeg -i input.dsp output.wav

How it works:

  • -i input.dsp: Points to your source GameCube or Wii audio file.
  • output.wav: Specifies the output file. WAV is highly recommended to preserve the original quality of the decoded ADPCM stream.

If you prefer a compressed format like MP3, you can run:

ffmpeg -i input.dsp -q:a 2 output.mp3

Batch Converting Multiple DSP Files

If you have ripped an entire directory of DSP files from a game disc, you can convert all of them automatically using a simple loop.

On Windows (Command Prompt):

Navigate to the folder containing your .dsp files and run:

for %i in (*.dsp) do ffmpeg -i "%i" "%~ni.wav"

On Linux or macOS (Terminal):

Navigate to your folder and run:

for file in *.dsp; do ffmpeg -i "$file" "${file%.dsp}.wav"; done

Troubleshooting Common Issues

  • Unsupported Codec or Unknown Format: Ensure your version of FFmpeg is up to date. Native support for Nintendo DSP ADPCM demuxing is included in all modern releases of FFmpeg. You can check your version by running ffmpeg -version.

  • Incorrect Playback Speed: GameCube and Wii DSP files contain sample rate information in their headers. If the converted audio plays too fast or too slow, the header might be non-standard. You can force a specific sample rate (for example, 32kHz, which is common for GameCube audio) using the -ar flag:

    ffmpeg -ar 32000 -i input.dsp output.wav