닌텐도 64(N64)는 당대 최고의 게임기 중 하나였지만, 제한된 카트리지 용량과 CPU 성능으로 인해 고품질 오디오 재생에 어려움을 겪었습니다. 이러한 제약을 극복하기 위해 '초저복잡성 코덱(ULC, Ultra Low Complexity Codec)'이 N64에 성공적으로 이식되어 화제입니다. ULC는 44,100Hz 스테레오 오디오를 재생하면서도 CPU 시간 약 4%, 보조 프로세서(RSP) 시간 약 5%만을 사용하여, 게임 플레이 중에도 끊김 없는 배경 음악과 음성 재생을 가능하게 합니다.
ULC 코덱은 MP3와 같은 수정 이산 코사인 변환(MDCT) 기반이지만, 복잡한 다중 대역 분할이나 엔트로피 부호화 대신 단순한 4비트 단위 형식으로 계수를 저장하여 디코딩 부담을 크게 줄였습니다. 특히 N64의 제한된 보조 프로세서 메모리(DMEM 4KB, IMEM 4KB)에 맞춰 16비트 고정소수점과 1,024샘플 블록을 사용하고, 역변환 등 주요 연산을 RSP로 오프로드(offload)하여 효율성을 극대화했습니다. 이러한 최적화 덕분에 ULC는 ADPCM 대비 약 4배의 복잡도로 Opus에 가까운 음질과 비트레이트(bitrate)를 제공합니다. 실제로 N64용 하프라이프(Half-Life) 포트에서는 ULC를 활용해 2,500개의 사운드와 27곡의 음악을 64MB 카트리지 이미지에 담을 수 있었다고 합니다.
이번 ULC의 N64 이식은 단순한 기술적 성과를 넘어, 레트로 게임 개발 커뮤니티와 인디 게임 개발자들에게 중요한 의미를 가집니다. N64는 CD 기반 플레이스테이션(PlayStation)과 달리 카트리지 용량의 제약이 컸고, 고품질 오디오를 담기 어려워 대부분의 게임 음악은 짧은 샘플을 반복 재생하는 트래커(tracker) 방식으로 제작되었습니다. ULC는 이러한 한계를 극복하고, 적은 리소스만으로도 풍부한 오디오 경험을 제공할 수 있는 길을 열었습니다. 이는 기존 N64 게임의 리마스터링이나 새로운 홈브루(homebrew) 게임 개발에 있어 오디오 품질을 한 단계 끌어올릴 수 있는 중요한 기반이 될 것입니다. 또한, 저사양 임베디드 시스템이나 레거시 하드웨어에서 고품질 오디오를 구현해야 하는 다른 분야에도 영감을 줄 수 있습니다.