Skip to content

Introduction ​

VADPCM is a simple lossy audio compression codec used by Nintendo 64 games. VADPCM is one of two audio formats supported by the official Nintendo 64 SDK, and it’s one of the formats supported LibDragon as well.

The VADPCM project provides command-line tools and a C library for encoding and decoding.

How Good Is VADPCM? Should I use it? ​

Use it for sound effects and musical instruments—all the beeps, boops, clangs, and shouts that happen while your game is playing.

The nice thing about VADPCM is that it is very simple and needs very little power to decode. That means you can have more VADPCM playing at the same time, without running out of power on the CPU or RSP. The drawback is that VADPCM isn’t as good at packing high-quality sounds into small files as more modern codecs like Opus (CELT).

Just for a quick comparison—if you use Opus (CELT), you can get high-quality, 48 kHz stereo audio with only 64 kbit/s of data. One minute of 64 kbit/s Opus takes only 470 KB of space on your cartridge. If you used VADPCM at 48 kHz, you’d end up with 220 kbit/s just for a single mono track, and one minute would take 1.6 MB of space on your cartridge. If you have some high-quality music or voice that you want to show off in your game, then Opus will showcase it better than VADPCM.

Bit Rate ​

Audio encoded in VADPCM uses exactly 4.5 bits per sample. The bit rate can only be changed by using a different sample rate.

Here are some common sample rates, and the amount of data that VADPCM uses at each sample rate:

Sample RateBit RateLength per Megabyte
44.1 kHz198 kbit/s42.3 s/MiB
32 kHz144 kbit/s58.3 s/MiB
22.05 kHz99.2 kbit/s84.5 s/MiB
16 kHz72.0 kbit/s117 s/MiB
11.025 kHz49.6 kbit/s169 s/MiB

History ​

In retail Nintendo 64 games, cartridge space was expensive, so VADPCM was primarily used for things like sound effects and musical instrument samples for MIDI playback. For homebrew games, cartridge space is much cheaper, and you can more easily justify using VADPCM to encode your entire soundtrack.

At least one retail Nintendo 64 game is known to use VADPCM audio for its soundtrack: Star Wars, Shadows of the Empire. From an article in Game Developer, April 2009,

At this point, we tried an experiment using uncompressed digital samples of the Star Wars main theme. The quality was extremely good, even after subsequent compression with the ADPCM encoder provided by Nintendo. After a little persuasion, Nintendo generously agreed to increase the amount of cartridge space from 8MB to 12MB.

This allowed us to include approximately 15 minutes of 16-bit, 11khz, mono music that sounded surprisingly good. Considering that most users would listen to the music through their televisions (rather than a sophisticated audio system), the results were close to that of an audio CD, thereby justifying the extra cartridge space required.