Доминик Саблевски адаптировал малоизвестный Ultra Low Complexity Codec для Nintendo 64. Возможности оригинальной платформы были ограничены: картриджи стоили дорого, CPU работал на 93 МГц, а Nintendo долго не давала сторонним разработчикам программировать векторный сопроцессор RSP напрямую. Штатный ADPCM сокращал объём аудио вчетверо, но пятиминутная стереодорожка 44,1 кГц всё равно занимала около 12 МБ — больше всего восьмимегабайтного ROM Mario 64. Поэтому музыку обычно собирали из коротких samples по принципу tracker. MP3 в Conker’s Bad Fur Day уже работал, но декодирование снижало частоту кадров.
В собственной Xibalba 64 на открытом Libdragon автор использовал ADPCM: звук и музыка заняли около 31 из 32 МБ ROM. Доступный в Libdragon Opus давал лучшие качество и сжатие, но был слишком медленным для фонового звука во время игры. QOA плохо подходил для векторизации, а ускорение MP3 не обещало достаточного преимущества.
Решение нашлось благодаря демо для Game Boy Advance, где ULC воспроизводил музыку со скоростью 70 кбит/с на 16-МГц ARM без векторных инструкций. Кодек Aikku93 напоминает MP3 через MDCT-преобразование PCM в частотную область, но использует full-band MDCT без разбиения на полосы и Huffman-кодирования. Коэффициенты упаковываются в простой nibble-based формат с короткими правилами для нулевых серий, смены квантователя и шумового заполнения. Последнее полезно для тарелок и других ударных. Распаковка блока занимает около 150 строк C, весь код распространяется под permissive license.
Для N64 автор перевёл вычисления из float в 16-bit fixed point Q1.14. Блок из 1024 samples и lapping buffer позволили разместить основные данные в 3072 из 4096 байт DMEM. Перенос IMDCT на RSP выполнялся итеративно на C-подобном RSPL с помощью Codex и проверкой каждого результата. Получилось около 1400 строк MIPS assembly, почти заполнивших 4096 байта IMEM. Разреженная таблица для seek добавляет примерно 20 байтов на секунду звука.
Итоговый декодер воспроизводит stereo 44100 Гц с качеством и битрейтом, близкими к Opus, примерно за 4% CPU и 5% RSP. Его сложность примерно в четыре раза выше ADPCM, но ресурсов хватает для музыки, речи и длинных эффектов во время игры. ULC влит в preview-ветку Libdragon. Порт Half-Life на N64 уже использует его для 2500 звуков и 27 музыкальных треков, поместившихся в образ картриджа 64 МБ.