खंड · bei.pm

प्रकाशित किया गया 19.11.2015 को·अपडेट किया गया 13.02.2025·हिंदी
यह पाठ स्वचालित रूप से OpenAI GPT-4o Mini द्वारा अनुवादित किया गया है।

इस पृष्ठ पर वर्णित फ़ाइल प्रारूप Dynamix, Inc. और Sierra Entertainment के बौद्धिक संपदा के तकनीकी विश्लेषण पर आधारित हैं।
आज बौद्धिक संपदा Activision Publishing, Inc. / Activision Blizzard, Inc. के अधीन है और वर्तमान में Microsoft Corp. के स्वामित्व में है।

जानकारियाँ रिवर्स इंजीनियरिंग और डेटा विश्लेषण के माध्यम से संग्रहित की गई हैं ताकि ऐतिहासिक डेटा के साथ संग्रहण और अंतःक्रियाशीलता सुनिश्चित हो सके।
किसी भी स्वामित्व या गोपनीय विशिष्टताओं का उपयोग नहीं किया गया है।

यह खेल वर्तमान में gog.com पर डाउनलोड के लिए खरीदा जा सकता है।

वॉल्यूम एक डेटा कंटेनर है जो खेल के लिए होता है, यह एक संग्रह प्रारूप की तरह है जैसे कि टारबॉल। कम से कम आउटपॉस्ट 2 में, यह प्रारूप केवल फ़ाइलों को पहचानता है - कोई फ़ोल्डर नहीं। हालांकि, इन्हें उचित फ़ाइल नामों के माध्यम से अनुकरण किया जा सकता है।

एक वॉल्यूम वॉल्यूम-हेडर और कई वॉल्यूम ब्लॉकों से बना होता है, जो विशिष्ट फ़ाइलों के अनुरूप होते हैं।

"वॉल्यूम" वे फ़ाइलें हैं जिनका विस्तार 'vol' है खेल निर्देशिका में।

ऐड्र x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF कैरेक्टर
0x0000 56 4f 4c 20 -- -- -- -- -- -- -- -- -- -- -- -- V O L . . . . . . . . . . . .
ऑफसेट डेटा प्रकार नाम व्याख्या
0x0000 uint(32) जादुई बाइट्स
0x0004 uint(24) ब्लॉक-लंबाई
0x0007 uint(8) झंडे

वॉल्यूम शीर्षक

ऐड्र x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF कैरेक्टर
0x0000 76 6f 6c 68 -- -- -- -- -- -- -- -- -- -- -- -- v o l h . . . . . . . . . . . .
ऑफसेट डेटा प्रकार नाम व्याख्या
0x0000 uint(32) जादुई बाइट्स
0x0004 uint(24) ब्लॉक-लंबाई
0x0007 uint(8) झंडे

वॉल्यूम हेडर में अपनी ओर से कोई उपयोगकर्ता डेटा नहीं होता है।
यह केवल एक कंटेनर के रूप में कार्य करता है।

वॉल्यूम हेडर में पहला डेटा वॉल्यूम स्ट्रिंग्स होना चाहिए; इसके बाद वॉल्यूम की जानकारी आती है।

वॉल्यूम स्ट्रिंग्स

ऐड्र x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF कैरेक्टर
0x0000 76 6f 6c 69 -- -- -- -- -- -- -- -- -- -- -- -- v o l i . . . . . . . . . . . .
ऑफसेट डेटा प्रकार नाम व्याख्या
0x0000 uint(32) जादुई बाइट्स
0x0004 uint(24) ब्लॉक-लंबाई
0x0007 uint(8) झंडे
ऐड्र x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF कैरेक्टर
0x0000 76 6f 6c 73 -- -- -- -- -- -- -- -- -- -- -- -- v o l s . . . . . . . . . . . .
ऑफसेट डेटा प्रकार नाम व्याख्या
0x0000 uint(32) जादुई बाइट्स
0x0004 uint(24) ब्लॉक-लंबाई
0x0007 uint(8) झंडे
0x0008 uint(32) पेलोड की लंबाई

यह बताता है कि निम्नलिखित डेटा में कितने बाइट वास्तव में उपयोगी डेटा हैं।

शेष, शेष डेटा वॉल्यूम-स्ट्रिंग सूची के स्पष्ट रूप से गंदगी के रूप में मूल्यांकन किया जाना चाहिए।

हाल की तारीख वाली फाइलों में ये 'शेष डेटा' 0x00 होते हैं, जो इस बात का संकेत हो सकता है कि गेम के विकास के दौरान टूलचेन में कुछ कमियां थीं, अर्थात, एक डेवलपर ने सही ढंग से बफर के आरंभ करने का ध्यान बहुत देर से रखा, क्योंकि यह खेल पर कोई प्रभाव नहीं डालता कि डेटा आरंभित हैं या नहीं।

0x000c uint(8)[] फाइल नामों की सूची

यह एक 0-बाइट-टर्मिनेटेड फ़ाइल नामों की सूची है, जो - कम से कम वर्तमान डेटा घटक में - केवल ASCII वर्णों की अपेक्षा करती है।

डेटा को पार्स करने के दौरान इस डेटा ब्लॉक का अधिक गहराई से विश्लेषण करने की आवश्यकता नहीं है, क्योंकि वॉल्यूम जानकारी में ही फ़ाइल नामों के ऑफ़सेट सीधे संदर्भित किए जाते हैं।

वॉल्यूम स्ट्रिंग्स एक सूची है फाइल नामों की, जो वॉल्यूम के भीतर शामिल हैं।

वॉल्यूम जानकारी

ऐड्र x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF कैरेक्टर
0x0000 76 6f 6c 69 -- -- -- -- -- -- -- -- -- -- -- -- v o l i . . . . . . . . . . . .
ऑफसेट डेटा प्रकार नाम व्याख्या
0x0000 uint(32) जादुई बाइट्स
0x0004 uint(24) ब्लॉक-लंबाई
0x0007 uint(8) झंडे

वॉल्यूम जानकारी फाइलों के बारे में अधिक विस्तृत जानकारी प्रदान करती है। यह एक तरह से FAT निर्देशिका प्रविष्टि (FAT = फ़ाइल आवंटन तालिका) के समान है।

फाइलों की संख्या ब्लॉक आकार को निर्देशिका प्रविष्टियों की लंबाई - 14 बाइट से विभाजित करके प्राप्त होती है।

व्यक्तिगत निर्देशिका प्रविष्टियों की संरचना इस प्रकार है:

ऐड्र x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF कैरेक्टर
0x0000 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- . . . . . . . . . . . . . . . .
ऑफसेट डेटा प्रकार नाम व्याख्या
0x0000 uint(32) फाइलनाम-अफसेट

यह दर्शाता है कि फ़ाइल नामों की सूची (वॉल्यूम-स्ट्रिंग्स) के भीतर फ़ाइल नाम किस ऑफ़सेट (!) पर स्थित है।

यह उपयोग डेटा ब्लॉक की शुरुआत पर आधारित है।

0x0004 uint(32) फाइल ऑफ़सेट

यह बताता है कि पूरी वॉल्यूम फ़ाइल के भीतर फ़ाइल किस ऑफ़सेट पर स्थित है।

0x0008 uint(32) फाइल का आकार

बताता है कि फ़ाइल का आकार बाइट में कितना है।

0x000c uint(16) झंडे?

स्पष्ट रूप से फ़ाइल एन्कोडिंग के बारे में अतिरिक्त जानकारी प्रदान करता है।

  • 0x03 सेट किया गया है, जब फ़ाइल संकुचित होती है। यहाँ स्पष्ट रूप से एक हफमैन-ट्री का उपयोग किया जा रहा है।
  • 0x80 शायद हमेशा सेट होता है।

वॉल्यूम ब्लॉक

ऐड्र x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF कैरेक्टर
0x0000 56 42 4c 48 -- -- -- -- -- -- -- -- -- -- -- -- V B L H . . . . . . . . . . . .
ऑफसेट डेटा प्रकार नाम व्याख्या
0x0000 uint(32) जादुई बाइट्स
0x0004 uint(24) ब्लॉक-लंबाई
0x0007 uint(8) झंडे

एक वॉल्यूम-ब्लॉक एक कंटेनर है, जो फ़ाइलों को समाहित करता है। इसमें केवल एक बार - ब्लॉक प्रारूप के कारण - फ़ाइल का आकार दोहराया गया है और उसके बाद सीधे उपयोग डेटा आते हैं।