Vai al contenuto

Come ULC fa spazio alla musica sul Nintendo 64

Il codec ULC adattato al Nintendo 64 riproduce una traccia stereo a 44,1 kHz usando, nei test dell’autore, circa il 4% della CPU e il 5% del coprocessore RSP. È anche uno degli ingredienti che fanno entrare l’audio del port di Half-Life in 64 MB.

Che succede

Il port amatoriale di Half-Life per Nintendo 64 contiene circa 2.500 suoni e 27 brani musicali in un’immagine di cartuccia da 64 MB. A farli entrare aiuta ULC, un formato audio poco conosciuto che Dominic Szablewski ha adattato alla console. Il suo approfondimento del 3 novembre racconta il compromesso: comprimere molto, lasciando al processore il tempo di eseguire anche il gioco.

Sul Nintendo 64 il suono deve rispettare due limiti contemporaneamente: lo spazio nella cartuccia e il tempo necessario a decomprimerlo. Il vecchio ADPCM è leggero, ma secondo i calcoli di Szablewski cinque minuti stereo a 44,1 kHz occupano ancora circa 12 MB. Il decoder Opus di Libdragon, l’ambiente open source per sviluppare sulla console, comprime molto meglio ma è troppo impegnativo per accompagnare il gameplay.

ULC è un codec sviluppato da Aikku93 dal 2019, con un decoder abbastanza leggero da essere stato dimostrato anche sul Game Boy Advance. Come MP3, rappresenta blocchi di suono attraverso le frequenze che li compongono; usa però una codifica dei dati più semplice da leggere. Szablewski ha trasferito la parte che ricostruisce i campioni audio sul coprocessore RSP del Nintendo 64, riscrivendo i calcoli per le sue istruzioni. Quella parte del programma deve stare nei soli 4.096 byte riservati alle istruzioni.

Nei test dell’autore, una singola traccia stereo a 44,1 kHz usa circa il 4% del tempo della CPU e il 5% di quello dell’RSP. È abbastanza poco per lasciare spazio a musica di sottofondo, dialoghi e suoni lunghi durante il gioco. Il decoder è già nel ramo preview di Libdragon.

Perché conta

ULC trova un uso molto preciso per il coprocessore del Nintendo 64: ricostruire musica compressa mentre la CPU si occupa del gioco. Il port di Half-Life dà un risultato concreto a quell’incastro, con migliaia di suoni dentro il vecchio limite della cartuccia.

Vuoi sapere di più su pillole come questa?