Apimtis · bei.pm

Paskelbta 2015 m. 11 mėn. 19 d.·Atnaujinta 13.02.2025·Lietuvių kalba
Šis tekstas buvo automatiškai išverstas naudojant OpenAI GPT-4o Mini.

Šioje svetainėje aprašyti failų formatai remiasi technine Dynamix, Inc. ir Sierra Entertainment intelektualinio turto analize.
Intelektualusis turtas šiuo metu yra Activision Publishing, Inc. / Activision Blizzard, Inc. nuosavybė ir šiuo metu priklauso Microsoft Corp..

Informacija buvo surinkta naudojant atvirkštinį inžineriją ir duomenų analizę archyvavimo ir istorinių duomenų tarpusavio suderinamumo tikslais.
Nebuvo naudojamos jokios nuosavybės ar konfidencialios specifikacijos.

Žaidimą šiuo metu galima įsigyti kaip atsisiuntimą gog.com.

Tūriniai yra duomenų konteineriai žaidimui, panašūs į archyvų formatą, pavyzdžiui, Tarball. Mažiausiai „Outpost 2“ šis formatas žino tik failus - jokių aplankų. Galima būtų juos simuliuoti naudodamiesi atitinkamais failų pavadinimais.

Tūrinys susideda iš tūrinio antraštės ir kelių tūrinio blokų, kurie atitinka konkrečius failus.

„Tūriniai“ yra failai su plėtiniu 'vol' žaidimo kataloge.

Adr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF simboliai
0x0000 56 4f 4c 20 -- -- -- -- -- -- -- -- -- -- -- -- V O L . . . . . . . . . . . .
Ofsetas Duomenų tipas Pavadinimas Paaiškinimas
0x0000 uint(32) Magijos baitai
0x0004 uint(24) Blocko ilgis
0x0007 uint(8) Vėliavos

Apimtis

Adr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF simboliai
0x0000 76 6f 6c 68 -- -- -- -- -- -- -- -- -- -- -- -- v o l h . . . . . . . . . . . .
Ofsetas Duomenų tipas Pavadinimas Paaiškinimas
0x0000 uint(32) Magijos baitai
0x0004 uint(24) Blocko ilgis
0x0007 uint(8) Vėliavos

Apimties antraštėje nėra jokių naudotojų duomenų.
Ji tarnauja tik kaip konteineris.

Pirmieji duomenys apimties antraštėje turėtų būti apimties eilutės; po to seka apimties informacija.

Garso eilutės

Adr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF simboliai
0x0000 76 6f 6c 69 -- -- -- -- -- -- -- -- -- -- -- -- v o l i . . . . . . . . . . . .
Ofsetas Duomenų tipas Pavadinimas Paaiškinimas
0x0000 uint(32) Magijos baitai
0x0004 uint(24) Blocko ilgis
0x0007 uint(8) Vėliavos
Adr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF simboliai
0x0000 76 6f 6c 73 -- -- -- -- -- -- -- -- -- -- -- -- v o l s . . . . . . . . . . . .
Ofsetas Duomenų tipas Pavadinimas Paaiškinimas
0x0000 uint(32) Magijos baitai
0x0004 uint(24) Blocko ilgis
0x0007 uint(8) Vėliavos
0x0008 uint(32) Našumo ilgis

Nurodo, kiek baitų iš šių duomenų iš tikrųjų yra naudingi.

Likę duomenys iš apimties eilutės sąrašo akivaizdžiai laikomi šiukšlėmis.

Vėlesnėse datuotose failuose šie 'likę duomenys' yra 0x00, kas gali rodyti į trūkumus su įrankių rinkiniu žaidimo vystymo metu, kitaip tariant, kad tik vėliau kūrėjas pasirūpino teisingu buferių inicializavimu, nes tai neturi įtakos žaidimui, ar duomenys yra inicializuoti, ar ne.

0x000c uint(8)[] Failų pavadinimų sąrašas

Čia kalbama apie 0 baitų terminę failų pavadinimų sąrašą, kuris - bent jau šioje duomenų dalyje - tikisi tik ASCII simbolių.

Nėra būtina detaliau analizuoti šio duomenų bloko, nes tūrio informacijoje tiesiogiai nurodomi failų pavadinimų ofsetai.

Tūrinio eilutėse pateikiama failų, esančių tūryje, pavadinimų sąrašas.

Apimtis informacija

Adr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF simboliai
0x0000 76 6f 6c 69 -- -- -- -- -- -- -- -- -- -- -- -- v o l i . . . . . . . . . . . .
Ofsetas Duomenų tipas Pavadinimas Paaiškinimas
0x0000 uint(32) Magijos baitai
0x0004 uint(24) Blocko ilgis
0x0007 uint(8) Vėliavos

Apimties informacija teikia detalesnę informaciją apie failus. Tai tam tikra prasme yra panaši į FAT katalogo įrašą (FAT = Failų paskirstymo lentelė).

Failų skaičius gaunamas padalijus blokų dydį iš katalogo įrašų ilgio - 14 baitų.

Kiekvienas katalogo įrašas turi tokį patį struktūrą:

Adr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF simboliai
0x0000 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- . . . . . . . . . . . . . . . .
Ofsetas Duomenų tipas Pavadinimas Paaiškinimas
0x0000 uint(32) Failo pavadinimo poslinkis

Nurodo, kuriame ofsete (!) failų pavadinimų sąraše (tūrio eilutėse) randamas failo pavadinimas.

Tai susiję su naudingųjų duomenų bloko pradžia.

0x0004 uint(32) Failo ofsetas

Nurodo, kuriame ofsete visoje tūrinio byloje yra failas.

0x0008 uint(32) Failo dydis

Nurodo, koks yra failo dydis baitais.

0x000c uint(16) Vėliavos?

Akivaizdu, kad pateikiama papildoma informacija apie failo kodavimą.

  • 0x03 yra nustatytas, kai failas yra suspaustas. Čia, atrodo, naudojamas Hufmano medis.
  • 0x80 atrodo, kad visada yra nustatytas.

Apimties blokas

Adr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF simboliai
0x0000 56 42 4c 48 -- -- -- -- -- -- -- -- -- -- -- -- V B L H . . . . . . . . . . . .
Ofsetas Duomenų tipas Pavadinimas Paaiškinimas
0x0000 uint(32) Magijos baitai
0x0004 uint(24) Blocko ilgis
0x0007 uint(8) Vėliavos

Volume blokas yra konteineris, kuriame saugomos bylos. Jame dar kartą - dėl bloko formato - reduntantiškai pateikiama failo dydis, o po to tiesiogiai seka naudingi duomenys.