נפחים · bei.pm
פורמטי הקבצים המתוארים בדף זה מבוססים על ניתוח טכני של זכויות יוצרים של Dynamix, Inc. ו- Sierra Entertainment.
זכויות היוצרים הן היום חלק מהמסה של Activision Publishing, Inc. / Activision Blizzard, Inc. ונמצאות כיום בבעלות Microsoft Corp..
המידע נאסף באמצעות הנדסה הפוכה ו- ניתוח נתונים לצורך ארכוב ואינטרופרטיביות עם נתונים היסטוריים.
לא נעשה שימוש במפרטים פרטיים או סודיים.
המשחק ניתן לרכישה כיום להורדה ב- gog.com.
הוולומות הם מיכל נתונים עבור המשחק, דומה לפורמט ארכיון כמו Tarball. לפחות ב-Outpost 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. אין צורך לנתח את בלוק הנתונים הזה בצורה מדויקת בזמן הפארסינג, מכיוון שבפרטי הווליום בכל מקרה מתייחס ישירות ל-offsets של שמות הקבצים. |
המחרוזות של הווליום הן רשימה של שמות קבצים שנמצאים בתוך הווליום.
מידע על עוצמה
אדר | 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) | דגלים? | נראה שיש מידע נוסף על קידוד הקבצים.
|
בלוק נפח
אדר | 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) | דגלים |
בלוק נפח הוא מיכל, שמאחסן קבצים. הוא מכיל שוב - בשל פורמט הבלוק - בצורה מיותרת את גודל הקובץ ולאחר מכן מופיעות ישירות הנתונים בשימוש.