TL;DR
Get the latest gadgets delivered free with Prime
- Fast, free delivery on millions of items
- Prime Video, Amazon Music and more included
- Member-only deals all year
A November 3 report describes using the Ultra Low Complexity Codec (ULC) to play 44.1 kHz stereo audio on the Nintendo 64 at bitrates the author compares with Opus, using about 4% of the console’s CPU time. The result is a developer’s report, not an independently verified benchmark; the codec’s potential advantage is smaller music files without relying on a slow Opus decoder.
A developer says the Ultra Low Complexity Codec (ULC) can play 44.1 kHz stereo audio on the Nintendo 64 using about 4% of the console’s CPU time, offering a possible way to store game music more compactly than the ADPCM audio used in the developer’s current project. The result, published November 3, could help N64 games fit more recorded music on cartridges, though it remains a developer-reported test rather than an independently verified performance result.
The report’s author says the test uses the ULC decoder with Libdragon, an open-source alternative to Nintendo’s Libultra development library. The author describes the bitrate as being near Opus bitrates but does not provide a specific bitrate for the N64 test. The reported CPU figure is about 4% of the N64’s CPU time; details of the test setup and how that figure was measured are not included in the supplied report.
The motivation comes from cartridge capacity. The author says a five-minute, 44.1 kHz stereo recording compressed with the N64’s usual ADPCM approach would take about 12 MB. As a comparison, the report says the original Super Mario 64 ROM is 8 MB, while the author’s newer game, Xibalba 64, uses a 32 MB ROM, with about 31 MB occupied by sound and music compressed using ADPCM.
Libdragon already supports real-time, RSP-accelerated Opus decoding, according to the author, but the decoder is too slow for use during gameplay. ULC is presented as a lighter alternative. The codec was created by developer Aikku93, whose Game Boy Advance demo reportedly played recorded music at 70 kbps. The N64 report does not give a complete comparison of audio quality, file size, and performance across codecs.
More Music Within Cartridge Limits
If the reported performance holds in actual games, ULC could let developers add longer stretches of recorded music while using less cartridge space than ADPCM. It could also offer a route around the performance cost of decoding Opus on the N64, making compressed audio more practical during gameplay rather than only in limited situations.
The finding is relevant mainly to homebrew and preservation developers working with the console’s constraints. It does not mean every N64 game can simply adopt ULC: developers would still need compatible encoding and playback tools, and results may depend on audio quality, bitrate, and how much processing a game can spare.
Products Worth Considering

DJI Mic 3 Wireless Microphone Kit (2 Transmitters, 1 Receiver, Charging Case)

Bose QuietComfort True Wireless Earbuds with Active Noise Cancellation, Black

Bose SoundLink Plus Portable Bluetooth Speaker, Black
As an affiliate, we earn on qualifying purchases.
Why N64 Audio Needed Alternatives
The N64’s cartridge format constrained storage, while its 93 MHz CPU had limited time for audio decoding and game logic. The report says Nintendo’s Libultra library used the Reality Signal Processor (RSP) for audio-related work, but Nintendo did not initially allow outside developers to write directly for it. Its ADPCM playback could reduce sample storage by about a factor of four, but recorded music still consumed substantial space.
As a result, many N64 games generated music from short samples rather than storing full recordings. The report points to Conker’s Bad Fur Day as a later example of a game using RSP access to decode MP3 speech audio, while saying the processing cost made MP3 unsuitable for continuous background music in gameplay. In Libdragon, Opus offers strong compression, but the author says it is also too slow for that use.
ULC takes a different approach: it transforms audio into frequency-domain coefficients using the Modified Discrete Cosine Transform, then stores them in a simple nibble-based format. According to the report, this avoids more complicated entropy decoding and arbitrary bit reads, helping keep the decoder lightweight. Its design includes zero and noise filling, which the author says can help represent percussion sounds.
““44100 Hz stereo with near-Opus bitrates using about 4% of the N64’s CPU time.””
— The report’s author
Benchmark Details Still Missing
The report gives no full benchmark methodology, test build, or independent measurements confirming the 4% CPU figure. It also does not state the exact bitrate used for the N64 test, the resulting audio file size, or how audio quality compares with Opus or ADPCM under matching conditions. The author’s description of the bitrate as near Opus is therefore a claim, not a documented side-by-side measurement in the supplied material.
It is also unclear whether ULC playback has been tested across different game workloads, hardware revisions, or audio content. The report describes a promising development result, but does not establish how much practical cartridge space developers would save in a finished game or whether the decoder is ready for broad adoption.
Testing in Real N64 Games
The report does not announce a release date, formal adoption plan, or further benchmark schedule. The next useful step would be for the developer or other Libdragon users to publish details on the test configuration, bitrate, file sizes, and audio quality, then measure playback while a game is running. Those results would show whether the reported performance extends beyond an isolated demonstration.
For now, ULC is a potential tool for developers interested in adding recorded audio to N64 projects. Its practical value will depend on reproducible performance data and whether the codec’s quality and compression suit the music and effects a game needs.
Key Questions
What is ULC?
ULC is the Ultra Low Complexity Codec, a transform audio codec created by developer Aikku93. The report describes its use of the Modified Discrete Cosine Transform and a simple nibble-based format intended to keep decoding inexpensive.
What did the N64 test report?
The author reports playback at 44.1 kHz stereo, using about 4% of the N64’s CPU time. The report characterizes the bitrate as near Opus but does not give the exact bitrate or detailed measurement procedure.
Why not use Opus on the N64?
The report says Libdragon has an RSP-accelerated Opus decoder, but that it is too slow for use during gameplay. ULC is being explored as a less demanding option; the report does not provide an independent comparison.
Does ULC replace ADPCM for N64 games?
Not necessarily. The report presents ULC as a promising alternative for recorded music, but developers would need to weigh audio quality, compression, decoding performance, and implementation requirements for each project.
Source: phoboslab.org
