N64Recomp

GoldenEye 007 yeni %100 dekompilyasyona ulaştı ve bu oyunla neler yapılabileceğini değiştiriyor: emulatörde imkansız olan modlar, düzgün geniş ekran desteği ve kare hızı kilidini açan yerel PC portları ve gelecekteki N64 ters mühendislik projeleri için referans uygulamaları. Bunu mümkün kılan araçlar açık kaynaktır ve bir N64 oyununun içine hiç göz atmak isteseydiniz, aynı araçları kullanırdınız.

N64 dekompilasyon ve porting iş akışlarını bugün mümkün kılan 8 masaüstü uygulamasını inceledik. Her seçim ücretsiz, açık kaynaklı ve GitHub’da aktif olarak korunmaktadır.

N64 dekompilasyon uygulamasında ne arayacağınız

N64 ters mühendisliği, konsol MIPS III’ü hedeflemesi ve o dönemin derleyicileri (IDO, EGCS) belirli parmak izleri bırakması nedeniyle alışılmadırır. Modern araçlar bunu hesaba katar.

Hızlı karşılaştırma tablosu

Uygulama En iyisi Platformlar Ücretsiz plan Başlangıç fiyatı/ay Derecelendirme
N64Recomp Yerel ikiliye statik rekompilasyon Windows, Linux, macOS Tamamen ücretsiz Ücretsiz Hızla büyüyen topluluk
splat İkili bölme ve varlık çıkarma Windows, Linux, macOS Tamamen ücretsiz Ücretsiz Modern N64 dekompilasiyon standardı
decomp.me Web tabanlı eşleşme testi oyun alanı Web Tamamen ücretsiz Ücretsiz Yaygın olarak kullanılan topluluk platformu
mips_to_c Montajcı’dan C dönüşümü Windows, Linux, macOS Tamamen ücretsiz Ücretsiz Uzun süreli dekompilasyon aracı
IDO recomp Orijinal IDO derleyicisini yeniden derleme Windows, Linux, macOS Tamamen ücretsiz Ücretsiz Eşleşme öncelikli iş akışlarını etkinleştir
ares Test etme için döngü doğru N64 emulatörü Windows, macOS, Linux Tamamen ücretsiz Ücretsiz Yüksek doğruluk emulatörü
GloverN64 Referans N64 portu projesi Windows, macOS, Linux Tamamen ücretsiz Ücretsiz Topluluk projesi
PermuterPy Mutasyon yoluyla otomatik eşleşme bulma Windows, Linux, macOS Tamamen ücretsiz Ücretsiz Modern dekompilasiyon standardı

Uygulamalar

1. N64Recomp – Yerel ikiliye statik rekompilasyon için en iyi

N64Recomp bir N64 ROM’dan MIPS kodunu alır ve bunu LLVM IR’ye yeniden yazar, daha sonra yerel bir x86 veya ARM ikilisine derlenir. Bu, Zelda 64 Recompiled ve yakın zamanda GoldenEye portu gibi projelerin saniyede yüzlerce kare hızında, yüksek çözünürlüklü render ile çalışmasına ve emulatörsüz şekilde çalışmasına izin verir.

Nerede yetersiz: İyi entegre edilmiş bir portu üretmek için tam olarak dekompile edilmiş bir oyun gerektirir. Düz ROM-girişi-rekompilasyon-çıkışı birçok oyun için çalışır ama hepsine değil.

Fiyatlandırma:

Platformlar: Windows, Linux, macOS

İndir: GitHub

Alt çizgi: Mevcut yerel N64 portu dalgasından sorumlu araç.

2. splat – İkili bölme ve varlık çıkarma için en iyi

splat bir N64 ROM’u alır ve her modern dekompilasiyon kullandığı yapılandırılmış proje düzenini üretir: sembol tarafından bölünmüş montajcı dosyaları, çıkarılan varlıklar (dokular, müzik, seviye verileri) ve her şeyi eşleşen bir ROM’a geri monte eden yapı sistemi. Her ciddi N64 dekompilasyon projesi buradan başlar.

Nerede yetersiz: Oyun başına yapılandırma gerektirir; bölme dosyası yazmakta ilk haftayı harcamayı beklemeyin.

Fiyatlandırma:

Platformlar: Windows, Linux, macOS (Python)

İndir: GitHub

Alt çizgi: N64 dekompilasyon projesine başlarken kurduğunuz ilk araç.

3. decomp.me – Aday C işlev eşleşmesi testi için en iyi

decomp.me dekompilasyon eşleşme testi için web tabanlı bir IDE’dir. Hedef montaj işlevini yapıştırın, aday C yazın, derlemeyi basın ve derleyicinin bayt tarafından özdeş çıktı üretip üretmediğini anında görün. N64, GameCube, PS2 ve DS hedeflerini destekler ve paylaşılan not defteri iş akışı işbirliğini acısız kılar.

Nerede yetersiz: Yalnızca web; çevrimdışı mod yok. Ağır yük altında hız sınırlı.

Fiyatlandırma:

Platformlar: Web (tarayıcı tabanlı)

İndir: Resmi site · GitHub

Alt çizgi: Aktif N64 dekompilasyon katkıda bulunanlar tarafından en çok kullanılan araç.

4. mips_to_c – MIPS montajcısını C taslağına dönüştürmek için en iyi

mips_to_c bir MIPS işlevinden okunabilir bir C taslağı üretir. Eşleşme oluşturucu değildir; çıktı, decomp.me bir eşleşmeyi bildirene kadar düzenlediğiniz ve iyileştirdiğiniz bir başlangıç noktasıdır. İlk geçişte işlev başına saatleri kaydeder.

Nerede yetersiz: Çıktı bir taslaktır. Doğrudan derleme, insan düzenlemesi olmadan neredeyse hiçbir zaman eşleşmez.

Fiyatlandırma:

Platformlar: Windows, Linux, macOS (Python)

İndir: GitHub

Alt çizgi: Önemsiz olmayan herhangi bir işlevde ilk geçiş süresini keser.

5. IDO recomp – Orijinal N64 derleyicisini yeniden oluşturmak için en iyi

IDO recomp SGI’nin IDO derleyicisinin statik yeniden derlemesidir; Nintendo’nun çoğu birinci parti N64 başlığı için kullandığı. Orijinal derleyiciyi modern işletim sistemlerinde çalıştırmak, bayt tarafından kusursuz eşleşmeyi mümkün kılar; bunu olmadan, dekompilator yalnızca orijinalin yaklaşımlarını üretecektir.

Nerede yetersiz: Yalnızca hedef oyun IDO ile derlenirse kullanışlıdır. GCC/EGCS oyunları (Rare çıkışı, GoldenEye dahil) farklı derleyici yapıları gerektirir.

Fiyatlandırma:

Platformlar: Windows, Linux, macOS

İndir: GitHub

Alt çizgi: Kendi başında dekompilator değildir, ancak dekompilasyonu belirleyici kılan parçadır.

6. ares – Döngü doğru N64 doğrulaması için en iyi

ares döngü doğru N64 emülasyonuna sahip çok sistemli bir emülatördür. Dekompilasyon çalışması için, bu doğruluk önemlidir: bir aday yeniden yapı orijinalle özdeş olarak ares’te çalışan bir ROM ürettiğinde, eşleşmeye karşı gerçek güveniniz vardır.

Nerede yetersiz: Project64 gibi rasgele emülatörlerden daha yüksek CPU gereksinimleri. Saf oyun için seçim değildir.

Fiyatlandırma:

Platformlar: Windows, macOS, Linux

İndir: Resmi site · GitHub

Alt çizgi: Yeniden yapıları test etmek için doğrulama kalitesi emülatörü.

7. GloverN64 – Öğrenmek için en iyi örnek projesi

GloverN64 topluluk tarafından yönlendirilen N64 dekompilasyon projelerinin büyüyen kütüphanesinden biridir ve repo’su, splat, mips_to_c ve IDO recomp’un gerçek bir yapıda nasıl bir araya geldiği hakkında referans görevini yapacak kadar iyi organize edilmiştir. Başka birinin bölme dosyasını okumak, özünü anlamanın en hızlı yoludur.

Nerede yetersiz: Devam ediyor; her işlev dekompile değildir.

Fiyatlandırma:

Platformlar: Windows, macOS, Linux

İndir: GitHub

Alt çizgi: İlk N64 dekompilasyon projesini kuran yeni başlayanlar için en iyi referans.

8. PermuterPy – Eşleşme bulmasını otomatikleştirmek için en iyi

PermuterPy aday C kodunu mutasyona uğratır ve bayt tarafından özdeş çıktı üreten varyantları bulmak için binlerce kez yeniden derler. decomp.me “yakın ama eşleşme yok” dediğinde, PermuterPy derleyicinin istediği kesin ifade sırası veya parantezlemeyi bulandır.

Nerede yetersiz: Hesaplama açısından pahalıdır; bir permuter çalışması saatler boyunca bir dizüstü CPU’sunu tüketebilir.

Fiyatlandırma:

Platformlar: Windows, Linux, macOS (Python)

İndir: GitHub

Alt çizgi: İnatçı bir işlevde son çare aracı ve tamamlanma yüzdelerinin neden yükselmeye devam ettiğinin nedeni.

Doğru olanı seçme

SSS

Bir oyunun “% 100 dekompile” olması ne anlama gelir? Oyunun ikilisindeki her işlev, yeniden derlenmiş çıktı özgün ROM ile bayt tarafından eşleşecek şekilde C’de yeniden yazılmıştır. Oradan kod tabanı serbestçe değiştirilebilir.

Bir N64 ROM’u dekompile etmek yasal mı? Birlikte çalışabilirlik için ters mühendislik genel olarak birçok yetki alanında korunur. Elde edilen ikilinin dağıtılması (özgün oyunun varlıklarını içermeye devam ediyor) genellikle değildir. Yasal muamele ülkeye göre değişir; dekompilasyon projeleri kendileri genellikle yalnızca kodu gönderiyor, kullanıcının kendi ROM’unu sağlamasını bekliyor.

Bir N64 dekompilasyon projesi ne kadar sürer? Gönüllü ekipleri tarafından çok yıllık çabalar. Zelda: Ocarina of Time yıllar sürdü; GoldenEye 007 projesi yaklaşık altı yıl boyunca koştu.

decomp.me nedir ve neden bu kadar merkezi? decomp.me, aday C kodunu derleyen ve çıktının hedef montaj işlevine tam olarak eşleşip eşleşmediğini bildiren web tabanlı bir IDE’dir. Birçok ad hoc bash komut dosyasının yerini aldı ve eşleşme testi işbirliğini kolaylaştırdı.

Emülatör olmadan PC’mde dekompile edilmiş oyunu çalıştırabilir miyim? Evet, dekompilasyon tamamlandıktan ve N64Recomp veya benzer bir çerçeveli port oluşturulduktan sonra. Zelda 64 Recompiled ve GoldenEye portu mevcut örneklerdir.

Katkıda bulunmak için MIPS montajcısını bilmek zorunda mıyım? Muazzam yardım eder. mips_to_c ve decomp.me barı düşürür, ancak gerçek bir işlevde ilerleme yapmak için register kuralları ve çağrı desenleri hakkında temel bir anlayış bile gereklidir.