- 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.