एक आरईएल फाइल क्या है?
.rel एक्सटेंशन वाली फाइल का इस्तेमाल कई तरह के उद्देश्यों के लिए किया जा सकता है। इसलिए, गेम वर्गीकरण के संदर्भ में इसे कुछ निंटेंडो Wii गेम, जैसे विवाद, सुपर स्मैश ब्रोस और मारियो कार्ट Wii द्वारा उपयोग की जाने वाली एक स्थानांतरित करने योग्य मॉड्यूल फ़ाइल के रूप में जाना जाता है। इसमें गेमप्ले डेटा शामिल है, जिसमें चरित्र मॉडल और चरण शामिल हैं। REL फ़ाइलें Microsoft Windows द्वारा उपयोग की जाने वाली .DLL फ़ाइलों के समान कार्य करती हैं।
आरईएल फ़ाइल प्रारूप
एक आरईएल फ़ाइल प्रारूप में, फ़ाइल को कई वर्गों में विभाजित किया जाता है, जैसे एक्सेस द्वारा समूहीकृत किया जाता है, उदाहरण के लिए केवल एक सेक्शन में डेटा पढ़ें, सभी निष्पादन योग्य कोड दूसरे में रखे जाते हैं, आदि। फ़ाइल हेडर सेक्शन से शुरू होती है, इसके बाद:
- अनुभाग जानकारी युक्त तालिका।
- अनुभाग डेटा।
- स्थानांतरण की जानकारी।
फाइल हेडर
फ़ाइल 0x4C बाइट्स तक के हेडर से शुरू होती है:
ऑफसेट | आकार | क्षेत्र का नाम | विवरण |
---|---|---|---|
0x00 | 4 | आईडी | मनमाना पहचान संख्या। किसी गेम द्वारा उपयोग किए जाने वाले सभी आरईएल के बीच अद्वितीय होना चाहिए। 0 नहीं होना चाहिए |
0x04 | 4 | अगला | अगले मॉड्यूल के लिए सूचक, रनटाइम पर भरा हुआ। |
0x08 | 4 | पिछला | पिछले मॉड्यूल के लिए सूचक, रनटाइम पर भरा हुआ। |
0x0c | 4 | numSections | फ़ाइल में अनुभागों की संख्या। |
0x10 | 4 | सेक्शनइन्फो ऑफसेट | अनुभाग तालिका की शुरुआत में ऑफसेट। |
0x14 | 4 | नाम ऑफसेट | मॉड्यूल के नाम वाले ASCII स्ट्रिंग को ऑफ़सेट करें। न्यूल हो सकता है। आरईएल फ़ाइल की शुरुआत के सापेक्ष। |
0x18 | 4 | नाम आकार | बाइट्स में मॉड्यूल नाम का आकार। |
0x1c | 4 | संस्करण | आरईएल फ़ाइल स्वरूप की संस्करण संख्या। |
0x20 | 4 | बीएसएस आकार | ‘.bss’ अनुभाग का आकार। |
0x24 | 4 | relOffset | स्थानांतरण तालिका में ऑफसेट। |
0x28 | 4 | इम्ऑफ़सेट | छोटा सा भूत तालिका में ऑफसेट। |
0x2c | 4 | छोटा आकार | बाइट्स में छोटा सा भूत तालिका का आकार। |
0x30 | 1 | प्रोलॉगसेक्शन | अनुभाग तालिका में अनुक्रमणिका जो प्रोलॉग के सापेक्ष है। छोड़ें यदि यह फ़ील्ड 0 है। |
0x31 | 1 | एपिलॉगसेक्शन | अनुभाग तालिका में अनुक्रमित करें जो एपिलॉग के सापेक्ष है। छोड़ें यदि यह फ़ील्ड 0 है। |
0x32 | 1 | अनसुलझाअनुभाग | अनुभाग तालिका में अनुक्रमणिका जो अनसुलझी है, सापेक्ष है। छोड़ें यदि यह फ़ील्ड 0 है। |
0x33 | 1 | बीएसएससेक्शन | अनुभाग तालिका में सूचकांक जो बीएसएस के सापेक्ष है। रनटाइम पर भरा! |
0x34 | 4 | प्रस्तावना | _prolog फ़ंक्शन के निर्दिष्ट अनुभाग में ऑफ़सेट करें। |
0x38 | 4 | उपसंहार | _epilog फ़ंक्शन के निर्दिष्ट अनुभाग में ऑफ़सेट करें। |
0x3c | 4 | अनसुलझे | _unresolved फ़ंक्शन के निर्दिष्ट अनुभाग में ऑफ़सेट करें। |
0x40 | 4 | संरेखित करें | संस्करण 2 ही। सभी वर्गों पर संरेखण बाधा, 2 की शक्ति के रूप में व्यक्त की गई |
0x44 | 4 | bssAlign | संस्करण 2 ही। 2 की शक्ति के रूप में व्यक्त सभी ‘.bss’ अनुभाग पर संरेखण बाधा |
0x48 | 4 | फिक्ससाइज | संस्करण 3 ही। यदि REL को OSLinkFixed (OSLink के बजाय) के साथ जोड़ा जाता है, तो इस पते के बाद के स्थान का उपयोग अन्य उद्देश्यों (जैसे BSS) के लिए किया जा सकता है। |
अनुभाग जानकारी तालिका
अनुभाग जानकारी तालिका में प्रत्येक 0x8 बाइट लंबी numSections प्रविष्टियां होती हैं:
ऑफसेट | आकार | विवरण |
---|---|---|
0x0 | 30 बिट्स | आरईएल की शुरुआत से अनुभाग तक ऑफसेट। यदि यह शून्य है, तो अनुभाग एक आरंभिक खंड (अर्थात .bss) है। |
0x3.6 | 1 बिट | अनजान। |
0x3.7 | 1 बिट | निष्पादन योग्य ध्वज; यदि यह 1 है तो अनुभाग निष्पादन योग्य है। |
0x4 | 4 | खंड के बाइट्स में लंबाई। यदि यह शून्य है, तो यह प्रविष्टि छोड़ दी जाती है। |
0x8 | अगली प्रविष्टि | अगली प्रविष्टि |
स्थानांतरण डेटा
स्थानांतरण डेटा 0x8 बाइट संरचनाओं की एक या अधिक सूची है। प्रत्येक सूची के अंत को विशेष प्रकार के कोड 203 द्वारा चिह्नित किया जाता है:
ऑफसेट | नाम | आकार | विवरण |
---|---|---|---|
0x0 | ऑफसेट | 2 | पिछले स्थानांतरण से इस तक बाइट्स में ऑफ़सेट करें। यदि यह अनुभाग में पहला स्थानांतरण है, तो यह अनुभाग प्रारंभ के सापेक्ष है। |
0x2 | टाइप | 1 | स्थानांतरण प्रकार। नीचे वर्णित। |
0x3 | खंड | 1 | प्रतीक का वह भाग जिसके विरुद्ध स्थानांतरित किया जाना है। विशेष स्थानांतरण प्रकार 202 के लिए, यह इसके बजाय इस फ़ाइल में उस अनुभाग की संख्या है जिस पर निम्नलिखित स्थानांतरण प्रविष्टियाँ लागू होती हैं। |
0x4 | जोड़ें | 4 | इसके खंड की शुरुआत के सापेक्ष, इसके खिलाफ स्थानांतरित करने के लिए प्रतीक के बाइट्स में ऑफसेट। यह main.dol के खिलाफ स्थानांतरण के बजाय एक पूर्ण पता है। |
0x8 | अगली प्रविष्टि | अगली प्रविष्टि | अगली प्रविष्टि |