1 puan yazan GN⁺ 2025-12-12 | Henüz yorum yok. | WhatsApp'ta paylaş
  • Nintendo 64 için olan Super Mario 64 decompile projesi temel alınarak PlayStation(PSX)'e özel olarak portlanan bir sürüm
  • DualShock titreşim desteği, sabit nokta matematik dönüşümü, render optimizasyonu gibi PS1 donanımına uyarlanmış kapsamlı değişiklikler içerir
  • Grafik ön işleyici, doku sıkıştırma, animasyon bellek optimizasyonu gibi performans geliştirme özellikleri eklendi
  • Bazı kamera kontrol eksiklikleri, çarpışma ve çökme sorunları, müzik build edilememesi gibi çok sayıda bilinen hata mevcut
  • Klasik bir oyunun platformlar arası portlama deneyi olarak, miras konsol geliştirme ve tersine mühendislik araştırmaları için anlamlı bir örnek

Proje Genel Bakış

  • Bu kod, Super Mario 64 (J/U/E/SH) tam decompile sürümünün bir fork'ıdır ve yalnızca PSX ve PC (hata ayıklama amaçlı) hedeflenmektedir
    • Nintendo 64 için build artık desteklenmemektedir
    • Şu anda yalnızca ABD (US) ROM'u derlenebilir
  • Oyun derlemesinde orijinal varlıklar bulunmaz; resmî ROM'dan varlık çıkarımı gereklidir

Öne Çıkan Özellikler

  • Orijinal “Rumble Pak Compatible” etiketi kopyalanarak DualShock™ uyumlu grafik eklendi
  • DualShock büyük motor için analog titreşim sinyali ve küçük motor için dijital sinyal desteği sağlanır
  • PSX için düşük hassasiyetli soft float uygulanışı ile kayan nokta işlemlerindeki performans kaybı minimize edildi
  • Kodu sabit nokta matematik ile değiştirerek, PSX standardı olan 16 bit tamsayı vektör/matrisler kullanıldı
  • Render graph worker basitleştirildi ve yeniden yazıldı
  • Büyük poligon sorunlarını azaltmak için çokgen bölme (en fazla 2x)
  • RSP display listleri JIT yöntemiyle özel bir formata dönüştürülerek işlem hızı artırıldı
  • Display list ön işleyici ile gereksiz komutları kaldırma ve mesh optimizasyonu
  • Mario animasyon sıkıştırma (580,632 → 190,324 bayt) ve doğrudan VRAM'e yerleştirme
  • Özel profilör ve 4bpp doku kodlayıcısı eklendi
  • PSX'in şeffaflık sınırları nedeniyle altıgen gölgelere geçildi
  • (Planlanan) Sağ analog çubukla kamera dönmesi ve Goddard alt sisteminin yeniden yazımı

Bilinen Sorunlar

  • Yüzen ağaçlar, bazı animasyonların çalışmaması veya çökme
  • Müzik derleme yapılamaması, efekt seslerinin eksik veya bozuk çıkması
  • Kamera kontrolünün tamamlanmamış olması, belirli bir seviyeye girildiğinde çökme
  • Bitiş sıralamasının yüklenememesi, Lakitu'nun görünmemesi, Pol'un çalışmaması
  • Tek tek doku yükleme nedeniyle uzun yükleme süresi, PSX sınırlamasıyla doku bozulması
  • Grafik ön işleyicisinin iyileştirilmesi gerekliliği, bazı dokuların render hatası, başlık ekranının tamamlanmamış olması, duraklatma menüsünün çalışmaması

Derleme Yöntemi

Linux

  • mipsel-none-elf-gcc araç zinciri kurulduktan sonra deposu klonlayın
  • baserom.us.z64 dosyasını kök dizine yerleştirin
  • (Opsiyonel) .local klasörüne soundtrack .wav dosyalarını (0~37) ekleyin
  • make komutu ile ISO görseli oluşturulur (build/us_psx/sm64.us.iso)
  • make BENCH=1 benchmark sürümü ISO oluşturmadan sadece ELF/EXE üretir ve 8MB RAM PSX gerektirir

Windows (doğrulanmamış)

  • MSYS2 kurulumundan sonra mingw-w64 paketleri yapılandırılır
  • mipsel-none-elf-gcc kurulumu yapın ve sm64-psx deposunu klonlayın
  • baserom.us.z64 dosyasını ekleyip make çalıştırın
  • Derleme çıktısı Linux ile aynı dizinde üretilir

Sorun Giderme

  • gcc tanınmıyorsa yanlış MSYS2 ortamının çalıştırılıp çalıştırılmadığını kontrol edin
  • baserom.us.z64 eksikse dosya konumunu kontrol edin
  • Makefile bulunamazsa dizin yolunu doğrulayın
  • Paket hatası durumunda pacman -Syu ve pacman -Su ile güncelleme yapın
  • mipsel gcc çalıştırma doğrulaması için mipsel-none-elf-gcc -v komutu doğrulama sağlar
  • Platform değiştirildiğinde araçları yeniden derlemek için make -C tools clean gereklidir

Proje Yapısı

  • actors: nesne davranışı, geo layout, display listleri
  • assets: animasyon ve demo verileri
  • src: oyun çekirdek C kaynakları (ses, engine, oyun, menü, portlama vb.)
  • textures, text, levels: grafik ve seviye verileri
  • tools: derleme araçları
  • lib: N64 SDK kodunu içerir

Katkıda Bulunma

  • Pull Request memnuniyetle karşılanır
  • Büyük değişikliklerden önce Issue açıp tartışılması önerilir

Henüz yorum yok.

Henüz yorum yok.