- Duke Nukem: Zero Hour için Nintendo 64 ROM'unu tamamen dekompile eden bir açık kaynak proje tanıtımıdır
- Bu depo, orijinal oyun yazılımının tüm kaynak kodunu canlandırma işini %100 tamamladı
- Kullanıcılar ROM'u kendilerinin temin etmesi gerekir; orijinal ABD veya Fransa sürümü ROM'lar ile tam derleme ve test yapılabilir
- Mevcut dekompile projeleriyle karşılaştırıldığında, tam işlevsel uyumluluk ve hata ayıklama araç desteği ile teknik bir avantaj sağlıyor
- Bu proje, oyun motoru araştırması, modlama, portlama ve motor analizi için çok değerli bir kaynaktır
Projenin Önemi ve Rekabet Avantajı
- Duke Nukem: Zero Hour, yalnızca Nintendo 64 platformu için yayımlanmış ünlü bir aksiyon oyunudur
- Bu açık kaynak proje, oyunun tamamını C, Python vb. dillerle tamamen dekompile ederek kaynak kodu seviyesinde yeniden yapılandırmıştır
- Diğer N64 dekompile projelerinin aksine tam uyumluluk sağlayarak, normal ROM derleme ve çalıştırma, kaynak kodu tabanlı hata ayıklama ve çoklu sürüm desteği sunar
- Oyun motoru yapısını ve 90'ların konsol oyunu geliştirme bilgisini araştırmak için güçlü bir kaynak değerine sahiptir
- Birçok otomatik analiz/dekompile aracı (asm-differ, mips2c, splat, decomp-permuter vb.) projeye entegre edilerek geliştirici verimliliği artırılmıştır
Ana Özellikler ve Yapı
Genel Yapı
- Proje çok dilli olarak kurgulanmıştır; C (%95’in üzerinde), Python, Roff, C++, Makefile ve Shell ile parçalanmıştır
- Başlıca dizinler:
- .github/workflows: CI ve otomasyon ayarları
- include, libs, src: oyun kaynakları ve kütüphaneler, başlık yönetimi
- tools: analiz, çıkarma ve dönüştürme araçları
- versions: ABD/Fransa gibi birden fazla oyun sürümünü aynı anda destekleme yapısı
- Yaklaşık 370 commit ile oldukça aktif biçimde bakımı yapılan bir projedir
Derleme ve Kullanım Özetleri
- Ubuntu 20.04 tabanlı ortam ve Docker desteği
- ROM çıkarımı, bit düzeyinde karşılaştırma, NON_MATCHING (eşleşmeyen) mod desteği
- Fransızca sürüm ve ABD sürümü ROM'ları her ikisini de destekler; kullanıcı gereğine göre seçenekler belirtilebilir
- Docker ortamı ve Mutagen Extension ile farklı işletim sistemleri (WIN/Mac/Linux) arasında uyumluluk sağlanır
Hata Ayıklama ve Geliştirme Araçları
- gdb ve mupen64plus tabanlı, kaynak kodu seviyesinde hata ayıklama desteği (şu anda Windows öncelikli)
- Visual Studio Code ve Native Debug Extension ile entegrasyon
- Temel otomasyon ve analiz araçları:
- asm-differ: assembly düzeyinde kaynak/hedef karşılaştırması
- decomp-permuter: kod yeniden düzenleme ve otomatik puanlama
- mips2c: MIPS assembly'den C'ye kod dönüştürme
- splat: ROM yapısını analiz eden araç
Kullanım Alanları
- Oyun tersine mühendisliği, portlama, oyun motoru analizi ve klasik oyun iyileştirme projelerinde kaynak olarak kullanılabilir
- Tarihsel koruma ve eğitimsel araştırma amaçları için de son derece uygundur
- Çeşitli platformlar ve sürümler için bakım ve güncellemeler aktif olarak sürmektedir
Sonuç
- Bu açık kaynak proje, 90'lar klasik konsol oyun yazılımının tamamen kaynak düzeyinde açığa çıkarılmasının nadir bir örneğidir
- Oyun ve konsol tersine mühendisliği araştırmacıları, genç geliştiriciler, oyun portlama ve fan oyun üreticileri için değerli bir kaynaktır
1 yorum
Hacker News görüşleri