HeadlinesBriefing favicon HeadlinesBriefing.com

Resident Evil 4 GameCube डिबग बिल्ड पूरी तरह से डी-कंपाइल्ड

Hacker News •
×

Resident Evil 4 के Nintendo GameCube संस्करण का एक पूर्ण, बाइट-इडेंटिकल डी-कंपाइलेशन G4BE08 डिबग बिल्ड (दोनों डिस्क वाले “25 नवंबर 2004” प्रोटोटाइप) के लिए हासिल कर लिया गया है। परियोजना main.dol और सभी 114 REL ओवरले को बिल्कुल सटीक रूप से पुनः उत्पन्न करती है, प्रत्येक बिल्ड पर SHA1 हैश द्वारा सत्यापित। इसमें 1,083 ऑब्जेक्ट (DOL में 675, RELs में 408) और 15,641 फ़ंक्शन शामिल हैं, सभी बाइट-इडेंटिकल। स्रोत कोड लगभग 555k पंक्तियों C/C++ (~33k पंक्तियों हेडर्स) का है, जिसमें कोई एसेम्बली फ़ाइल नहीं है।

खेल को SN Systems Pro DG 3.9.3 — GCC 2.95.3, Metrowerks CodeWarrior 2.4.7, और CodeWarrior GC/1.2.5n के साथ संकलित किया गया था। इसमें CRI मिडलवेयर (ADX, SFD, MPV) और निंटेंडो SDK लाइब्रेरी शामिल हैं। रिपॉजिटरी में कोई गेम एसेट नहीं हैं; उपयोगकर्ताओं को अपने स्वयं के डिबग डिस्क इमेज प्रदान करने होंगे (डिस्क 1 के लिए main.dol और 110 RELs, डिस्क 2 के लिए चार द्वीप-चरण RELs)। निर्माण के लिए Linux, Python 3, और ninja की आवश्यकता होती है; कंपाइलर और टूल स्वचालित रूप से डाउनलोड किए जाते हैं, सिवाय नेटिव SN GCC के।

मिलान का अर्थ है कि प्रत्येक यूनिट मूल कंपाइलरों के साथ मूल बाइट्स में कंपाइल होता है। जहां विशिष्ट स्रोत आकारों की आवश्यकता होती थी रजिस्टर विकल्पों या शेड्यूलिंग को पुनः उत्पन्न करने के लिए, निर्माणों को `// COMPILER-DIFF:` टिप्पणियों के साथ चिह्नित किया गया है (कुल 644)। एक स्वचालित जाँच पुष्टि करती है कि केवल 231 हार्डवेयर कर्नेल निर्देश एसेम्बली टेम्प्लेट्स से आते हैं। दस्तावेज़ीकरण इंजन आर्किटेक्चर, मिलान पद्धति, प्रति-यूनिट नोट्स, और कंपाइलर अनुसंधान लॉग्स को कवर करता है।

मुख्य इकाइयाँ: कंपनियाँ: Nintendo, SN Systems, Metrowerks, CRI मिडलवेयर | व्यक्ति: adonis-singh

अक्सर पूछे जाने वाले प्रश्न: इस Resident Evil 4 परियोजना के लिए ‘बाइट-इडेंटिकल डी-कंपाइलेशन’ का क्या अर्थ है?

इसका अर्थ है कि पुनः संकलित किया गया कोड (main.dol और सभी 114 REL ओवरले) मूल GameCube डिबग बिल्ड के साथ बाइट-टू-बाइट मेल खाता है, SHA1 हैश द्वारा सत्यापित, मूल कंपाइलरों (SN Systems GCC 2.95.3 और Metrowerks CodeWarrior) और मूल स्रोत आकारों का उपयोग करके।