N64Recomp

GoldenEye 007 अभी 100% डीकंपाइलेशन तक पहुंचा है, और यह बदल देता है कि लोग गेम के साथ क्या कर सकते हैं: ऐसे मॉड्स जो एमुलेटर में असंभव थे, नेटिव PC पोर्ट्स जिनमें उचित वाइडस्क्रीन समर्थन और फ्रेमरेट अनलॉक हैं, और भविष्य की N64 रिवर्स-इंजीनियरिंग परियोजनाओं के लिए संदर्भ कार्यान्वयन। जिन उपकरणों ने यह संभव बनाया है वे ओपन सोर्स हैं, और यदि आपने कभी N64 गेम के अंदर देखना चाहा है, तो आप वही उपकरण उपयोग करेंगे।

हमने 8 डेस्कटॉप ऐप्स की समीक्षा की जो आज N64 डीकंपाइलेशन और पोर्टिंग वर्कफ़्लो को संभव बनाते हैं। हर विकल्प मुफ़्त है, ओपन सोर्स है, और GitHub पर सक्रिय रूप से बनाए रखा जाता है।

N64 डीकंपाइलेशन ऐप में क्या खोजें

N64 रिवर्स इंजीनियरिंग असामान्य है क्योंकि कंसोल MIPS III को लक्षित करता है, और उस युग के कंपाइलर (IDO, EGCS) ने विशिष्ट फ़िंगरप्रिंट छोड़े हैं। आधुनिक उपकरण इसे ध्यान में रखते हैं।

त्वरित तुलना तालिका

ऐप सर्वश्रेष्ठ के लिए प्लेटफॉर्म मुफ़्त योजना शुरुआती मूल्य/माह रेटिंग
N64Recomp नेटिव बाइनरी के लिए स्थिर पुनः संकलन Windows, Linux, macOS पूरी तरह मुफ़्त मुफ़्त तेजी से बढ़ता समुदाय
splat बाइनरी विभाजन और संपत्ति निष्कर्षण Windows, Linux, macOS पूरी तरह मुफ़्त मुफ़्त आधुनिक N64 डीकंपाइलेशन में मानक
decomp.me वेब-आधारित मैच-परीक्षण प्लेग्राउंड Web पूरी तरह मुफ़्त मुफ़्त व्यापक रूप से उपयोग किया गया समुदाय मंच
mips_to_c असेंबली से C रूपांतरण Windows, Linux, macOS पूरी तरह मुफ़्त मुफ़्त दीर्घकालीन डीकंपाइलेशन उपकरण
IDO recomp मूल IDO कंपाइलर को पुनः संकलित करना Windows, Linux, macOS पूरी तरह मुफ़्त मुफ़्त मैच-फर्स्ट वर्कफ़्लो सक्षम करता है
ares परीक्षण के लिए चक्र-सटीक N64 एमुलेटर Windows, macOS, Linux पूरी तरह मुफ़्त मुफ़्त उच्च-सटीकता एमुलेटर
GloverN64 संदर्भ N64 पोर्ट परियोजना Windows, macOS, Linux पूरी तरह मुफ़्त मुफ़्त समुदाय परियोजना
PermuterPy उत्परिवर्तन के माध्यम से स्वचालित मेल खोज Windows, Linux, macOS पूरी तरह मुफ़्त मुफ़्त आधुनिक डीकंपाइलेशन में मानक

ऐप्स

1. N64Recomp – नेटिव बाइनरी के लिए स्थिर पुनः संकलन के लिए सर्वश्रेष्ठ

N64Recomp N64 ROM से MIPS कोड लेता है और इसे LLVM IR में फिर से लिखता है, जो तब एक नेटिव x86 या ARM बाइनरी में संकलित होता है। यह वही है जो Zelda 64 Recompiled जैसी परियोजनाओं और हाल के GoldenEye पोर्ट को सैकड़ों फ्रेम प्रति सेकंड में उच्च-रिज़ॉल्यूशन रेंडरिंग के साथ चलाने देता है, बिना एमुलेटर की आवश्यकता के।

जहां यह कम पड़ता है: एक अच्छी तरह से एकीकृत पोर्ट का उत्पादन करने के लिए पूरी तरह से डीकंपाइल किए गए गेम की आवश्यकता है। सीधे ROM-इन-रीकंपाइलेशन-आउट कई गेम्स के लिए काम करता है लेकिन सभी के लिए नहीं।

मूल्य निर्धारण:

प्लेटफॉर्म: Windows, Linux, macOS

डाउनलोड: GitHub

निष्कर्ष: वर्तमान नेटिव N64 पोर्ट्स की लहर के लिए जिम्मेदार उपकरण।

2. splat – बाइनरी विभाजन और संपत्ति निष्कर्षण के लिए सर्वश्रेष्ठ

splat N64 ROM लेता है और संरचित परियोजना लेआउट का उत्पादन करता है जो प्रत्येक आधुनिक डीकंपाइलेशन उपयोग करता है: असेंबली फ़ाइलें प्रतीक द्वारा विभाजित, निकाली गई संपत्तियां (बनावट, संगीत, स्तर डेटा), और एक बिल्ड सिस्टम जो सबकुछ वापस एक मेल करने वाले ROM में पुनः संयोजित करता है। हर गंभीर N64 डीकंपाइलेशन परियोजना यहां से शुरू होती है।

जहां यह कम पड़ता है: प्रति-गेम कॉन्फ़िगरेशन की आवश्यकता है; पहले सप्ताह को विभाजन फ़ाइल लेखन में व्यय करने की अपेक्षा करें।

मूल्य निर्धारण:

प्लेटफॉर्म: Windows, Linux, macOS (Python)

डाउनलोड: GitHub

निष्कर्ष: पहला उपकरण जो आप N64 डीकंपाइलेशन परियोजना शुरू करते समय स्थापित करते हैं।

3. decomp.me – उम्मीदवार C फ़ंक्शन मेल परीक्षण के लिए सर्वश्रेष्ठ

decomp.me डीकंपाइलेशन मैच-परीक्षण के लिए एक वेब IDE है। लक्ष्य असेंबली फ़ंक्शन में पेस्ट करें, उम्मीदवार C लिखें, संकलन दबाएं, और तुरंत देखें कि कंपाइलर बाइट-समान आउटपुट का उत्पादन करता है या नहीं। यह N64, GameCube, PS2, और DS लक्ष्यों का समर्थन करता है, और साझा-स्क्रैचपैड वर्कफ़्लो सहयोग को दर्दरहित बनाता है।

जहां यह कम पड़ता है: केवल वेब; ऑफ़लाइन मोड नहीं। भारी लोड के तहत दर-सीमित।

मूल्य निर्धारण:

प्लेटफॉर्म: Web (ब्राउज़र-आधारित)

डाउनलोड: आधिकारिक साइट · GitHub

निष्कर्ष: सक्रिय N64 डीकंपाइलेशन योगदानकर्ताओं द्वारा सबसे अधिक उपयोग किया जाने वाला उपकरण।

4. mips_to_c – MIPS असेंबली को C ड्राफ्ट में बदलने के लिए सर्वश्रेष्ठ

mips_to_c MIPS फ़ंक्शन से एक पठनीय C ड्राफ्ट का उत्पादन करता है। यह एक मेल जनरेटर नहीं है; आउटपुट एक शुरुआती बिंदु है जिसे आप संपादित और परिष्कृत करते हैं जब तक decomp.me एक मेल की रिपोर्ट न करे। पहली पास पर प्रति फ़ंक्शन घंटों की बचत करता है।

जहां यह कम पड़ता है: आउटपुट एक ड्राफ्ट है। सीधा संकलन लगभग कभी भी बिना मानव संपादन के मेल नहीं खाता।

मूल्य निर्धारण:

प्लेटफॉर्म: Windows, Linux, macOS (Python)

डाउनलोड: GitHub

निष्कर्ष: किसी भी फ़ंक्शन पर पहली पास का समय कम करता है जो गैर-तुच्छ से अधिक है।

5. IDO recomp – मूल N64 कंपाइलर को पुनः प्रस्तुत करने के लिए सर्वश्रेष्ठ

IDO recomp SGI के IDO कंपाइलर का एक स्थिर पुनः संकलन है, जिसका उपयोग Nintendo ने अधिकांश पहली-पक्ष N64 शीर्षकों के लिए किया था। आधुनिक OS पर मूल कंपाइलर चलाना वही है जो बाइट-परफेक्ट मिलान संभव बनाता है; इसके बिना, डीकंपाइलर केवल मूल के अनुमान का उत्पादन करेगा।

जहां यह कम पड़ता है: केवल तभी उपयोगी है जब लक्ष्य गेम को IDO के साथ संकलित किया गया हो। GCC/EGCS गेम्स (Rare आउटपुट, GoldenEye सहित) को अलग-अलग कंपाइलर बिल्ड की आवश्यकता होती है।

मूल्य निर्धारण:

प्लेटफॉर्म: Windows, Linux, macOS

डाउनलोड: GitHub

निष्कर्ष: अपने आप में डीकंपाइलर नहीं, लेकिन वह अंश जो डीकंपाइलेशन को निर्धारक बनाता है।

6. ares – चक्र-सटीक N64 सत्यापन के लिए सर्वश्रेष्ठ

ares चक्र-सटीक N64 इमुलेशन के साथ एक मल्टी-सिस्टम इमुलेटर है। डीकंपाइलेशन कार्य के लिए, वह सटीकता मायने रखती है: जब एक उम्मीदवार रीबिल्ड एक ROM का उत्पादन करता है जो मूल के समान ares पर चलता है, तो आपके पास मेल पर वास्तविक आत्मविश्वास होता है।

जहां यह कम पड़ता है: Project64 जैसे कैजुअल इमुलेटर्स की तुलना में अधिक CPU आवश्यकताएं। शुद्ध गेमप्ले के लिए विकल्प नहीं।

मूल्य निर्धारण:

प्लेटफॉर्म: Windows, macOS, Linux

डाउनलोड: आधिकारिक साइट · GitHub

निष्कर्ष: रीबिल्ड्स का परीक्षण करने के लिए सत्यापन-गुणवत्ता एमुलेटर।

7. GloverN64 – सीखने के लिए सर्वश्रेष्ठ उदाहरण परियोजना

GloverN64 समुदाय-संचालित N64 डीकंपाइलेशन परियोजनाओं के बढ़ते पुस्तकालय में से एक है, और इसका रीपो इस बात के संदर्भ के रूप में काम करने के लिए पर्याप्त अच्छी तरह से संगठित है कि कैसे splat, mips_to_c, और IDO recomp एक वास्तविक बिल्ड में एक साथ फिट होते हैं। किसी और की विभाजन फ़ाइल को पढ़ना अपने स्वयं के को समझने का सबसे तेज़ तरीका है।

जहां यह कम पड़ता है: प्रगति में; प्रत्येक फ़ंक्शन डीकंपाइल नहीं है।

मूल्य निर्धारण:

प्लेटफॉर्म: Windows, macOS, Linux

डाउनलोड: GitHub

निष्कर्ष: पहली N64 डीकंपाइलेशन परियोजना सेट अप करने वाले शुरुआत करने वाले के लिए सर्वश्रेष्ठ संदर्भ।

8. PermuterPy – मेल खोज को स्वचालित करने के लिए सर्वश्रेष्ठ

PermuterPy उम्मीदवार C कोड को उत्परिवर्तित करता है और हज़ारों बार पुनः संकलित करता है ताकि ऐसे वेरिएंट मिलें जो बाइट-समान आउटपुट का उत्पादन करते हैं। जब decomp.me कहता है “करीब लेकिन कोई मेल नहीं”, PermuterPy वह है जो सटीक विवरण क्रम या कोष्ठक पाता है जो कंपाइलर चाहता है।

जहां यह कम पड़ता है: कम्प्यूटेशनल रूप से महंगा; एक permuter रन घंटों के लिए एक लैपटॉप CPU का उपभोग कर सकता है।

मूल्य निर्धारण:

प्लेटफॉर्म: Windows, Linux, macOS (Python)

डाउनलोड: GitHub

निष्कर्ष: एक हठीले फ़ंक्शन पर अंतिम उपाय का उपकरण, और कारण क्यों समापन प्रतिशत बढ़ता रहता है।

सही चुनना कैसे करें

सामान्य प्रश्न

इसका क्या अर्थ है जब एक गेम “100% डीकंपाइल” हो? गेम की बाइनरी में प्रत्येक फ़ंक्शन को C में फिर से लिखा गया है ताकि पुनः संकलित आउटपुट मूल ROM से बाइट-दर-बाइट मेल खाए। वहां से, कोडबेस को स्वतंत्र रूप से संशोधित किया जा सकता है।

क्या N64 ROM डीकंपाइलिंग कानूनी है? अंतरपरिचालनीयता के लिए रिवर्स इंजीनियरिंग आम तौर पर कई अधिक क्षेत्राधिकार में संरक्षित होती है। परिणामी बाइनरी वितरण (जो अभी भी मूल गेम की संपत्तियों को शामिल करता है) आम तौर पर नहीं है। कानूनी उपचार देश द्वारा भिन्न होता है; डीकंपाइलेशन परियोजनाएं आम तौर पर केवल कोड जहाज करती हैं, उम्मीद करते हुए कि उपयोगकर्ता अपना स्वयं का ROM प्रदान करेगा।

N64 डीकंपाइलेशन परियोजना कितनी लंबी चलती है? स्वयंसेवकों की टीमों द्वारा बहु-वर्ष के प्रयास। Zelda: Ocarina of Time ने वर्षों का समय लिया; GoldenEye 007 परियोजना लगभग छह वर्षों तक चली।

decomp.me क्या है और यह इतना केंद्रीय क्यों है? decomp.me एक वेब IDE है जो उम्मीदवार C कोड को संकलित करता है और रिपोर्ट करता है कि क्या आउटपुट लक्ष्य असेंबली फ़ंक्शन के साथ बिल्कुल मेल खाता है। इसने कई ad-hoc bash स्क्रिप्ट को प्रतिस्थापित किया और मैच-परीक्षण पर सहयोग को आसान बनाया।

क्या मैं एमुलेटर के बिना अपने PC पर डीकंपाइल किए गए गेम को चला सकता हूं? हां, एक बार डीकंपाइलेशन पूरा हो जाने और N64Recomp या समान फ्रेमवर्क के साथ पोर्ट बनाया जाता है। Zelda 64 Recompiled और GoldenEye पोर्ट वर्तमान उदाहरण हैं।

क्या मुझे योगदान देने के लिए MIPS असेंबली जानना आवश्यक है? यह बहुत मदद करता है। mips_to_c और decomp.me बार को कम करते हैं, लेकिन एक वास्तविक फ़ंक्शन पर प्रगति करने के लिए रजिस्टर सम्मेलन और कॉलिंग पैटर्न की बुनियादी समझ भी आवश्यक है।