- Pengenalan proyek open source yang berhasil mendekompilasi ROM Nintendo 64 dari Duke Nukem: Zero Hour secara sempurna
- Repositori ini telah mencapai 100% dalam upaya menghidupkan kembali seluruh kode sumber perangkat lunak game asli
- Pengguna harus memiliki ROM game tersebut sendiri, dan build serta pengujian penuh dapat dilakukan menggunakan ROM asli versi AS atau Prancis
- Dibandingkan proyek dekompilasi yang sudah ada, proyek ini unggul secara teknis berkat kompatibilitas fungsional sempurna dan dukungan alat debugging
- Proyek ini merupakan sumber yang sangat berharga untuk riset engine game, modifikasi, porting, dan analisis engine
Makna dan keunggulan proyek
- Duke Nukem: Zero Hour adalah game aksi terkenal yang dirilis secara eksklusif untuk platform Nintendo 64
- Proyek open source ini merekonstruksi seluruh ROM game tersebut di level kode sumber dengan mendekompilasinya secara lengkap ke C, Python, dan lainnya
- Berbeda dari proyek dekompilasi N64 lain, proyek ini menyediakan kompatibilitas sempurna, termasuk build dan eksekusi ROM yang normal, debugging berbasis kode sumber, serta dukungan multi-versi
- Proyek ini memiliki nilai referensi yang sangat tinggi untuk meneliti struktur engine game dan pengetahuan pengembangan game konsol era 90-an
- Berbagai alat analisis/dekompilasi otomatis seperti asm-differ, mips2c, splat, dan decomp-permuter terintegrasi dalam proyek untuk memaksimalkan efisiensi pengembang
Fitur utama dan struktur
Struktur keseluruhan
- Proyek ini tersusun dalam banyak bahasa dan dibagi ke dalam beberapa bagian seperti C (lebih dari 95%), Python, Roff, C++, Makefile, dan Shell
- Direktori utama:
- .github/workflows: pengaturan CI dan otomatisasi
- include, libs, src: pengelolaan source game, library, dan header
- tools: alat analisis, ekstraksi, dan konversi
- versions: struktur dukungan simultan untuk berbagai versi game seperti US/FR
- Dipelihara secara aktif dengan hampir 370 commit
Ringkasan build dan cara penggunaan
- Mendukung lingkungan berbasis Ubuntu 20.04 dan Docker
- Mendukung ekstraksi ROM, perbandingan bit-level, dan mode ketidakcocokan (
NON_MATCHING)
- Mendukung ROM versi Prancis dan versi AS, dengan opsi yang dapat dipilih sesuai kebutuhan pengguna
- Menyediakan kompatibilitas lintas OS (Windows/Mac/Linux) dengan memanfaatkan lingkungan Docker dan Mutagen Extension
Debugging dan alat pengembangan
- Mendukung debugging level kode sumber berbasis gdb dan mupen64plus (saat ini berfokus pada Windows)
- Mendukung integrasi dengan Visual Studio Code dan Native Debug Extension
- Alat otomatisasi dan analisis inti:
- asm-differ: perbandingan source/target di level assembly
- decomp-permuter: penataan ulang kode dan penilaian otomatis
- mips2c: konversi kode dari assembly MIPS ke C
- splat: alat analisis struktur ROM
Cara pemanfaatan
- Dapat dimanfaatkan sebagai sumber untuk reverse engineering game, porting, analisis engine, dan proyek peningkatan game klasik
- Juga sangat cocok untuk tujuan pelestarian sejarah dan riset pendidikan
- Pemeliharaan dan pembaruan aktif terus berlangsung untuk berbagai platform dan versi
Kesimpulan
- Proyek open source ini adalah contoh langka yang berhasil mewujudkan pembukaan penuh kode sumber perangkat lunak game konsol klasik era 90-an
- Ini merupakan sumber daya berharga bagi peneliti reverse engineering game dan konsol, pengembang muda, serta pembuat port game dan fan game
1 komentar
Opini Hacker News