ปริมาณ · 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.

Volume เป็นตัวเก็บข้อมูลสำหรับเกม คล้ายกับรูปแบบไฟล์เก็บข้อมูล เช่น Tarball อย่างน้อยใน Outpost 2 รูปแบบนี้มีเพียงไฟล์ - ไม่มีโฟลเดอร์ อาจเป็นไปได้ว่าเราสามารถจำลองโฟลเดอร์เหล่านี้ได้โดยใช้ชื่อไฟล์ที่เหมาะสม

Volume ประกอบด้วย Volume-Header และ Volume Blocks หลายตัวที่ตรงกับไฟล์ที่แท้จริง

"Volumes" คือไฟล์ที่มีนามสกุล 'vol' ในไดเรกทอรีเกม

Adr 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) ธง

ส่วนหัวของปริมาตร

Adr 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) ธง

ส่วนหัวของ Volume ไม่มีข้อมูลการใช้งานใด ๆ
มันมีไว้เพียงเพื่อเป็นที่เก็บข้อมูลเท่านั้น

ข้อมูลแรกในส่วนหัวของ Volume ควรเป็น Volume Strings; หลังจากนั้นจะเป็นข้อมูลเกี่ยวกับ Volume

สายเสียง

Adr 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) ธง
Adr 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) ความยาวของ Payload

ระบุจำนวนไบต์ที่ข้อมูลต่อไปนี้เป็นข้อมูลที่ใช้งานได้จริง

ข้อมูลที่เหลืออยู่ในลิสต์ของ Volume-Strings นั้นดูเหมือนจะถือเป็น ขยะ

ในไฟล์ที่มีวันที่ใหม่กว่านั้น 'ข้อมูลที่เหลือ' จะเป็น 0x00 ซึ่งอาจบ่งชี้ถึงข้อบกพร่องในเครื่องมือที่ใช้พัฒนาเกม นั่นคือ นักพัฒนาจัดการกับการเริ่มต้นตัวแปรได้ค่อนข้างช้า เนื่องจากไม่มีผลกระทบต่อเกมว่าข้อมูลจะถูกเริ่มต้นหรือไม่

0x000c uint(8)[] รายชื่อไฟล์

นี่คือรายการชื่อไฟล์ที่มีการสิ้นสุดด้วย 0-ไบต์ ซึ่ง - อย่างน้อยในส่วนข้อมูลที่มีอยู่ - คาดว่าจะมีเพียงตัวอักษร ASCII เท่านั้น

ไม่มีความจำเป็นต้องวิเคราะห์ข้อมูลบล็อกนี้อย่างละเอียดในระหว่างการประมวลผลข้อมูล เนื่องจากในข้อมูลเกี่ยวกับ Volume จะมีการอ้างอิงตำแหน่งของชื่อไฟล์โดยตรงอยู่แล้ว

Volume Strings คือรายการชื่อไฟล์ที่อยู่ภายใน Volume

ข้อมูลเกี่ยวกับปริมาตร

Adr 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) ธง

ข้อมูลเกี่ยวกับ Volume จะบันทึกรายละเอียดเพิ่มเติมเกี่ยวกับไฟล์ โดยจะมีลักษณะคล้ายกับรายการใน FAT (FAT = File Allocation Table)

จำนวนไฟล์จะคำนวณจากขนาดของบล็อกหารด้วยความยาวของรายการในไดเรกทอรี - 14 ไบต์

รายการในไดเรกทอรีแต่ละรายการมีโครงสร้างดังนี้:

Adr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF อักขระ
0x0000 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- . . . . . . . . . . . . . . . .
ออฟเซ็ต ชนิดข้อมูล ชื่อฟิลด์ข้อมูล คำอธิบาย
0x0000 uint(32) ออฟเซ็ตชื่อไฟล์

ระบุว่าไฟล์ชื่อของไฟล์อยู่ที่ตำแหน่งไหน (!) ภายในรายชื่อไฟล์ (Volume-Strings)

โดยอ้างอิงจากจุดเริ่มต้นของบล็อกข้อมูลที่ใช้.

0x0004 uint(32) ออฟเซ็ตไฟล์

ระบุว่าไฟล์อยู่ที่ตำแหน่งใดภายในไฟล์ volume ทั้งหมด

0x0008 uint(32) ขนาดไฟล์

ระบุขนาดของไฟล์เป็นไบต์

0x000c uint(16) ธง?

ดูเหมือนว่าจะมีข้อมูลเพิ่มเติมเกี่ยวกับการเข้ารหัสไฟล์

  • 0x03 จะถูกตั้งค่าเมื่อไฟล์ถูกบีบอัด ที่นี่ดูเหมือนว่าจะมีการใช้ต้นไม้ฮัฟฟ์แมน.
  • 0x80 ดูเหมือนว่าจะถูกตั้งค่าเสมอ.

บล็อกปริมาตร

Adr 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) ธง

บล็อกวอลลุ่มคือคอนเทนเนอร์ที่ใช้เก็บไฟล์ ซึ่งจะมีขนาดไฟล์ซ้ำอีกครั้งหนึ่ง - เนื่องจากรูปแบบของบล็อก - และหลังจากนั้นจะตามมาด้วยข้อมูลที่ใช้งานได้ทันที