为何 ULC 音频编码器是 N64 的完美选择
Why This Obscure Audio Codec Is a Perfect Fit for the N64
N64 的卡带空间极度有限,CPU 性能也捉襟见肘,导致传统音频方案难以施展。PlayStation 能直接流式播放 CD 音频,而 N64 开发者只能依赖 ADPCM 或昂贵的 MP3 解码。我在开发 Xibalba 64 时,发现开源库 Libdragon 中的 Opus 解码器虽音质出色,却因占用过多 CPU 而无法用于游戏实时背景音。转机出现在一个名为 ULC(Ultra Low Complexity Codec)的冷门编码器上。它最初是为 Game Boy Advance 设计的,却能以极低算力实现媲美 MP3 的音质。通过将其 IMDCT 算法移植到 N64 的 RSP 协处理器,并采用 16 位定点运算,我成功实现了 44100 Hz 立体声播放,仅占用约 4% 的 CPU 时间和 5% 的 RSP 资源。这一方案不仅解决了空间瓶颈,更让 N64 能够承载高质量的全曲录音,甚至被用于 Half-Life 的 N64 移植项目中。
ULC 是 MP3 本可以成为的样子:同样的核心理念,却去除了所有冗余的包袱。