1 poin oleh GN⁺ 2025-12-12 | Belum ada komentar. | Bagikan ke WhatsApp
  • Berdasarkan proyek dekompilasi Super Mario 64 untuk Nintendo 64, ini adalah versi yang di-port khusus untuk PlayStation (PSX)
  • Mencakup modifikasi besar yang disesuaikan untuk perangkat keras PS1, seperti dukungan getar DualShock, konversi matematika fixed-point, dan optimasi rendering
  • Menambahkan fitur peningkatan performa seperti preprocessor grafis, kompresi tekstur, dan optimasi memori animasi
  • Terdapat banyak bug yang sudah diketahui, seperti kontrol kamera yang belum selesai, masalah tabrakan dan crash, serta musik yang tidak bisa di-build
  • Sebagai eksperimen porting lintas platform untuk game klasik, ini menjadi contoh yang bermakna bagi pengembangan konsol lawas dan riset reverse engineering

Gambaran proyek

  • Kode ini adalah fork dari versi dekompilasi penuh Super Mario 64 (J/U/E/SH), yang hanya menargetkan PSX dan PC (untuk debugging)
    • Build untuk Nintendo 64 sudah tidak lagi didukung
    • Saat ini hanya ROM versi AS (US) yang bisa di-build
  • Build game tidak menyertakan aset asli, sehingga perlu mengekstrak aset dari ROM asli

Fitur utama

  • Menambahkan grafis kompatibel DualShock™, meniru tampilan label “Rumble Pak Compatible” asli
  • Mendukung baik sinyal getar analog untuk motor besar DualShock maupun sinyal digital untuk motor kecil
  • Implementasi soft float presisi rendah untuk PSX guna meminimalkan penurunan performa operasi floating-point
  • Kode diganti dengan matematika fixed-point, menggunakan vektor dan matriks integer 16-bit yang menjadi standar PSX
  • Render graph walker disederhanakan dan ditulis ulang
  • Pembelahan poligon (hingga 2x) untuk mengurangi masalah poligon besar
  • RSP display list diubah ke format kustom dengan metode JIT, meningkatkan kecepatan pemrosesan
  • Preprocessor display list menghapus perintah yang tidak perlu dan mengoptimalkan mesh
  • Kompresi animasi Mario (580,632 → 190,324 byte) dan penempatan langsung ke VRAM
  • Menambahkan profiler kustom dan encoder tekstur 4bpp
  • Mengganti bayangan menjadi bayangan heksagonal dengan mempertimbangkan keterbatasan transparansi PSX
  • (Direncanakan) rotasi kamera dengan stik analog kanan dan penulisan ulang subsistem Goddard

Masalah yang diketahui

  • Pohon melayang, sebagian animasi tidak berfungsi atau menyebabkan crash
  • Musik tidak bisa di-build, efek suara hilang atau terdengar aneh
  • Kontrol kamera belum selesai, crash saat masuk level tertentu
  • Gagal memuat sequence ending, Lakitu tidak muncul, pole tidak berfungsi
  • Waktu loading lama karena tekstur dimuat satu per satu, distorsi tekstur akibat keterbatasan PSX
  • Preprocessor grafis perlu ditingkatkan, sebagian tekstur salah render, layar judul belum selesai, menu jeda tidak berfungsi

Cara build

Linux

  • Instal toolchain mipsel-none-elf-gcc, lalu clone repositori
  • Letakkan file baserom.us.z64 di direktori root
  • (Opsional) Tambahkan file soundtrack .wav (0~37) ke folder .local
  • Menjalankan make akan membuat image ISO (build/us_psx/sm64.us.iso)
  • Versi benchmark (make BENCH=1) hanya membuat ELF/EXE tanpa ISO, dan memerlukan PSX RAM 8MB

Windows (belum diverifikasi)

  • Instal MSYS2 lalu konfigurasikan paket mingw-w64
  • Instal mipsel-none-elf-gcc dan clone repositori sm64-psx
  • Letakkan file baserom.us.z64, lalu jalankan make
  • Hasil build dibuat di jalur yang sama seperti di Linux

Pemecahan masalah

  • Jika gcc tidak dikenali, periksa apakah lingkungan MSYS2 yang dijalankan sudah benar
  • Jika baserom.us.z64 tidak ada, periksa lokasi file
  • Jika Makefile tidak ditemukan, periksa jalur direktori
  • Jika terjadi error paket, lakukan update dengan pacman -Syu dan pacman -Su
  • Untuk memastikan mipsel gcc berfungsi, verifikasi dengan perintah mipsel-none-elf-gcc -v
  • Saat berpindah platform, perlu mengompilasi ulang tool dengan make -C tools clean

Struktur proyek

  • actors: perilaku objek, geo layout, display list
  • assets: data animasi dan demo
  • src: source C inti game (audio, engine, game, menu, port, dll.)
  • textures, text, levels: data grafis dan level
  • tools: alat build
  • lib: termasuk kode SDK N64

Kontribusi

  • Pull Request diterima
  • Sebelum perubahan besar, disarankan membuka Issue dan mendiskusikannya terlebih dahulu

Belum ada komentar.

Belum ada komentar.