Томікі · bei.pm
Файлы фармата, апісаныя на гэтай старонцы, заснаваны на тэхнічным аналізе інтэлектуальнай уласнасці Dynamix, Inc. і Sierra Entertainment.
Інтэлектуальная ўласнасць сёння з'яўляецца часткай актываў Activision Publishing, Inc. / Activision Blizzard, Inc. і ў дадзены момант належыць Microsoft Corp..
Інфармацыя была сабрана праз Reverse Engineering і даныя аналізу з мэтай архівацыі і ўзаемадзеяння з гістарычнымі данымі.
Не былі выкарыстаны ніякія ўласніцкія або канфідэнцыйныя спецыфікацыі.
Гульню можна набыць у якасці загрузкі на 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) | Даўжыня payload | Указвае, колькі байтаў з наступных даных сапраўды з'яўляюцца карыснымі данымі. Застаўшыяся дані ў спісе томаў-строкаў, відавочна, варта лічыць смецем. У файлах з больш познімі датамі гэтыя 'застаўшыяся дані' 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) | Імя файла - зрух | Указвае, на якім зрушэнні (!) у спісе імёнаў файлаў (Volume-Strings) знаходзіцца імя файла. Гаворыць пра пачатак блока карысных даных. |
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) | Сцягі |
Аб'ёмны блок — гэта кантэйнер, які змяшчае файлы. Ён утрымлівае толькі яшчэ раз — з-за фармату блока — рэдуndантна памер файла, а затым адразу ідуць карысныя даныя.