N64Recomp

GoldenEye 007 baru saja mencapai dekompresi 100%, dan itu mengubah apa yang dapat dilakukan orang dengan permainan: mod yang tidak mungkin di emulator, port PC asli dengan dukungan lebar layar yang tepat dan pembuka kecepatan bingkai, dan implementasi referensi untuk proyek rekayasa balik N64 di masa depan. Alat yang memungkinkan semuanya ini bersifat sumber terbuka, dan jika Anda pernah ingin melihat ke dalam permainan N64, Anda akan menggunakan alat yang sama.

Kami meninjau 8 aplikasi desktop yang membuat alur kerja dekompresi dan portasi N64 mungkin terjadi hari ini. Setiap pilihan gratis, sumber terbuka, dan secara aktif dikelola di GitHub.

Yang perlu diperhatikan dalam aplikasi dekompresi N64

Rekayasa balik N64 tidak biasa karena konsol menargetkan MIPS III, dan kompiler era itu (IDO, EGCS) meninggalkan sidik jari tertentu. Peralatan modern memperhitungkan hal itu.

Tabel perbandingan cepat

Aplikasi Terbaik untuk Platform Paket gratis Harga mulai/bln Rating
N64Recomp Rekompresi statis ke biner asli Windows, Linux, macOS Sepenuhnya gratis Gratis Komunitas yang berkembang pesat
splat Pemisahan biner dan ekstraksi aset Windows, Linux, macOS Sepenuhnya gratis Gratis Standar dalam dekompresi N64 modern
decomp.me Taman mainan pengujian pencocokan berbasis web Web Sepenuhnya gratis Gratis Platform komunitas yang banyak digunakan
mips_to_c Konversi rakitan ke C Windows, Linux, macOS Sepenuhnya gratis Gratis Alat dekompresi jangka panjang
IDO recomp Mengompresi ulang kompiler IDO asli Windows, Linux, macOS Sepenuhnya gratis Gratis Memungkinkan alur kerja yang berorientasi pada kecocokan pertama
ares Emulator N64 yang akurat dalam siklus untuk pengujian Windows, macOS, Linux Sepenuhnya gratis Gratis Emulator presisi tinggi
GloverN64 Proyek referensi port N64 Windows, macOS, Linux Sepenuhnya gratis Gratis Proyek komunitas
PermuterPy Pencarian kecocokan otomatis melalui mutasi Windows, Linux, macOS Sepenuhnya gratis Gratis Standar dalam dekompresi modern

Aplikasinya

1. N64Recomp – Terbaik untuk rekompresi statis ke biner asli

N64Recomp mengambil kode MIPS dari ROM N64 dan menulis ulangnya menjadi LLVM IR, yang kemudian dikompilasi menjadi biner x86 atau ARM asli. Itulah yang memungkinkan proyek seperti Zelda 64 Recompiled dan port GoldenEye baru-baru ini berjalan dengan ratusan frame per detik dengan rendering resolusi tinggi, tidak ada emulator yang diperlukan.

Kekurangannya: Memerlukan permainan yang sepenuhnya diurai untuk menghasilkan port yang terintegrasi dengan baik. Rekompresi ROM-dalam-keluar yang langsung berfungsi untuk banyak permainan tetapi tidak semua.

Harga:

Platform: Windows, Linux, macOS

Unduh: GitHub

Garis bawah: Alat yang bertanggung jawab atas gelombang port N64 asli saat ini.

2. splat – Terbaik untuk pemisahan biner dan ekstraksi aset

splat mengambil ROM N64 dan menghasilkan tata letak proyek terstruktur yang digunakan setiap dekompresi modern: file rakitan yang dipisahkan berdasarkan simbol, aset yang diekstrak (tekstur, musik, data level), dan sistem build yang merakit semuanya kembali menjadi ROM yang cocok. Setiap proyek dekompresi N64 yang serius dimulai di sini.

Kekurangannya: Memerlukan konfigurasi per permainan; harapkan untuk menghabiskan minggu pertama membuat file pemisahan.

Harga:

Platform: Windows, Linux, macOS (Python)

Unduh: GitHub

Garis bawah: Alat pertama yang Anda instal saat memulai proyek dekompresi N64.

3. decomp.me – Terbaik untuk menguji kecocokan fungsi kandidat C

decomp.me adalah IDE berbasis web untuk pengujian kecocokan dekompresi. Tempel dalam fungsi rakitan target, tulis kandidat C, tekan kompilasi, dan segera lihat apakah kompiler menghasilkan keluaran yang identik byte. Ini mendukung target N64, GameCube, PS2, dan DS, dan alur kerja gudang bersama membuat kolaborasi mudah.

Kekurangannya: Web saja; tidak ada mode offline. Dibatasi kecepatan di bawah beban berat.

Harga:

Platform: Web (berbasis browser)

Unduh: Situs resmi · GitHub

Garis bawah: Alat paling banyak digunakan oleh kontributor dekompresi N64 aktif.

4. mips_to_c – Terbaik untuk mengubah rakitan MIPS menjadi draf C

mips_to_c menghasilkan draf C yang dapat dibaca dari fungsi MIPS. Ini bukan generator kecocokan; keluarannya adalah titik awal yang kemudian Anda edit dan perbaiki sampai decomp.me melaporkan kecocokan. Menghemat berjam-jam per fungsi pada lintasan pertama.

Kekurangannya: Keluarannya adalah draf. Kompilasi langsung hampir tidak pernah cocok tanpa pengeditan manusia.

Harga:

Platform: Windows, Linux, macOS (Python)

Unduh: GitHub

Garis bawah: Memotong waktu lintasan pertama pada fungsi apa pun yang lebih dari sepele.

5. IDO recomp – Terbaik untuk mereproduksi kompiler N64 asli

IDO recomp adalah rekompresi statis dari kompiler IDO SGI, yang digunakan Nintendo untuk sebagian besar judul N64 pihak pertama. Menjalankan kompiler asli di OS modern adalah apa yang membuat pencocokan byte-sempurna mungkin; tanpanya, pembongkar hanya akan menghasilkan perkiraan aslinya.

Kekurangannya: Hanya berguna jika permainan target dikompilasi dengan IDO. Permainan GCC/EGCS (keluaran Rare, termasuk GoldenEye) memerlukan build kompiler yang berbeda.

Harga:

Platform: Windows, Linux, macOS

Unduh: GitHub

Garis bawah: Bukan pembongkar sendiri, tetapi bagian yang membuat dekompresi deterministik.

6. ares – Terbaik untuk verifikasi N64 yang akurat dalam siklus

ares adalah emulator multi-sistem dengan emulasi N64 yang akurat dalam siklus. Untuk pekerjaan dekompresi, akurasi itu penting: ketika pembangunan kembali kandidat menghasilkan ROM yang berjalan pada ares identik dengan aslinya, Anda memiliki kepercayaan nyata pada kecocokan.

Kekurangannya: Persyaratan CPU lebih tinggi daripada emulator kasual seperti Project64. Bukan pilihan untuk gameplay murni.

Harga:

Platform: Windows, macOS, Linux

Unduh: Situs resmi · GitHub

Garis bawah: Emulator kualitas verifikasi untuk menguji pembangunan kembali.

7. GloverN64 – Proyek contoh terbaik untuk belajar darinya

GloverN64 adalah salah satu dari perpustakaan yang berkembang dari proyek dekompresi N64 yang didorong komunitas, dan repo-nya cukup terorganisir untuk berfungsi sebagai referensi tentang bagaimana splat, mips_to_c, dan IDO recomp cocok bersama dalam build nyata. Membaca file pemisahan orang lain adalah cara tercepat untuk memahami milik Anda.

Kekurangannya: Dalam proses; tidak setiap fungsi diurai.

Harga:

Platform: Windows, macOS, Linux

Unduh: GitHub

Garis bawah: Referensi terbaik untuk pemula yang menyiapkan proyek dekompresi N64 pertama.

8. PermuterPy – Terbaik untuk mengotomatisasi pencarian kecocokan

PermuterPy memutasi kode C kandidat dan mengompresi ulang ribuan kali untuk menemukan varian yang menghasilkan keluaran yang identik byte. Ketika decomp.me mengatakan “dekat tetapi tidak cocok”, PermuterPy adalah yang menemukan urutan pernyataan eksak atau parenthesization yang diinginkan kompiler.

Kekurangannya: Mahal secara komputasi; lari permuter dapat mengkonsumsi CPU laptop selama berjam-jam.

Harga:

Platform: Windows, Linux, macOS (Python)

Unduh: GitHub

Garis bawah: Alat pilihan terakhir pada fungsi yang keras kepala, dan alasan persentase penyelesaian terus meningkat.

Cara memilih yang tepat

Pertanyaan yang Sering Diajukan

Apa yang dimaksud dengan permainan “100% diurai”? Setiap fungsi dalam biner permainan telah ditulis ulang dalam C sedemikian rupa sehingga keluaran yang dikompilasi ulang cocok dengan ROM asli byte demi byte. Dari sana, basis kode dapat dimodifikasi secara bebas.

Apakah mendekompresi N64 ROM legal? Rekayasa balik untuk interoperabilitas umumnya dilindungi di banyak yurisdiksi. Mendistribusikan biner yang dihasilkan (yang masih berisi aset permainan asli) biasanya tidak. Perlakuan hukum bervariasi menurut negara; proyek dekompresi itu sendiri biasanya mengirimkan kode saja, mengharapkan pengguna untuk menyediakan ROM mereka sendiri.

Berapa lama proyek dekompresi N64 memakan waktu? Upaya bertahun-tahun oleh tim sukarelawan. Zelda: Ocarina of Time memakan waktu bertahun-tahun; proyek GoldenEye 007 berjalan sekitar enam tahun.

Apa itu decomp.me dan mengapa itu begitu penting? decomp.me adalah IDE web yang mengkompilasi kode C kandidat dan melaporkan apakah keluarannya cocok dengan fungsi rakitan target dengan tepat. Ini menggantikan banyak skrip bash ad-hoc dan membuat kolaborasi pada pengujian kecocokan menjadi mudah.

Dapatkah saya menjalankan permainan yang diurai di PC saya tanpa emulator? Ya, setelah dekompresi selesai dan port dibangun dengan N64Recomp atau kerangka kerja serupa. Zelda 64 Recompiled dan port GoldenEye adalah contoh saat ini.

Apakah saya perlu mengerti rakitan MIPS untuk berkontribusi? Itu membantu luar biasa. mips_to_c dan decomp.me menurunkan bar, tetapi bahkan pemahaman dasar tentang konvensi register dan pola panggilan diperlukan untuk membuat kemajuan pada fungsi nyata.