Ana içeriğe geç
Programlama

ULC ses kodeği Nintendo 64 için yüksek kaliteli ses sağladı

Öne çıkanlar

  • ULC kodeği 44100 Hz stereo sesi N64 işlemcisinin yalnızca yüzde 4'ünü kullanarak çalıştırdı.
  • RSP işlemcisinin 4096 baytlık veri sınırına sığabilmek için 16-bit sabit noktalı matematik kullanıldı.
  • Kod çözücü Libdragon açık kaynak kütüphanesinin önizleme dalına birleştirildi.
  • Yeni Half-Life N64 portu 2 bin 500 ses dosyasını 64 MB karta sığdırmak için ULC kodeğini kullandı.

Geliştirici Dominic Szablewski, Nintendo 64 platformunda yüksek kaliteli ses dosyalarını düşük işlemci yüküyle oynatabilmek için Ultra Low Complexity Codec (ULC) adlı ses formatını konsola uyarladı. Konsolun 93 MHz hızındaki ana işlemcisini ve 4096 baytlık dar bellek sınırlarına sahip RSP yardımcı işlemcisini hedefleyen bu çalışma, 44100 Hz stereo sesi yalnızca yüzde 4 işlemci ve yüzde 5 yardımcı işlemci kullanımıyla çalıştırmayı başardı. Yeni kod çözücü, açık kaynaklı geliştirme kütüphanesi Libdragon bünyesine eklendi.

Nintendo 64 oyunlarında kartuş kapasitesi ve işlem gücü kısıtları nedeniyle uzun süre basit ADPCM sıkıştırması veya midi benzeri takipçi sistemleri kullanıldı. Daha gelişmiş olan MP3 veya modern Opus kodekleri ise donanımı aşırı yorarak oyun içi kare hızını düşürüyordu. Szablewski, Game Boy Advance için geliştirilen hafif ULC formatını 16-bit sabit noktalı sayılarla yeniden düzenledi ve karmaşık ters ayrık kosinüs dönüşümü işlemlerini konsolun RSP vektör işlemcisine taşıdı.

Bu optimizasyon sürecinde kod dönüştürme ve MIPS çevirici optimizasyonları için büyük dil modellerinden yararlanıldı. Geliştirilen sistem, saniyede yaklaşık 20 baytlık bir arama tablosu ekleyerek ses dosyası içinde hızlı konum atlamaya da imkan tanıdı. Son olarak yayımlanan Nintendo 64 Half-Life uyarlaması, 2 bin 500 ses efektini ve 27 müzik parçasını tek bir 64 MB kartuş görüntüsüne sığdırmak için bu yeni ULC kod çözücüsünü tercih etti.

Kaynak

Bu özet yapay zekâ ile hazırlanmıştır; ayrıntılar ve doğrulama için orijinal kaynağa başvurun.