ꦮꦺꦴꦭꦸꦤ꧀ · bei.pm

Dipublikasikan ing 19 11 2015·Diperbarui ing 13/02/2025·ꦗꦮꦶꦱꦗꦶ
ꦢꦶꦱꦺꦴꦁ ꦠꦺꦱꦸꦏ꧀ ꦧꦼꦭꦶꦁ ꦲꦸꦔꦶꦁ ꦭꦶꦏꦼ ꦱꦸꦩ꧀ꦕꦠꦶꦁ OpenAI GPT-4o Mini.

Format file sing diterangake ing kaca iki adhedhasar analisis teknis babagan hak kekayaan intelektual saka Dynamix, Inc. lan Sierra Entertainment.
Hak kekayaan intelektual saiki dadi bagian saka Activision Publishing, Inc.- / Activision Blizzard, Inc.-massa lan saiki diduweni dening Microsoft Corp..

Informasi iki dikumpulake liwat Reverse Engineering lan Datenanalyse kanggo tujuan arsip lan interoperabilitas kanthi data sejarah.
Ora ana spesifikasi sing duwe hak utawa rahasia sing digunakake.

Gim iki saiki bisa dituku minangka unduhan ing gog.com.

Volume iku minangka wadah data kanggo game, padha karo format arsip kaya Tarball. Ing Outpost 2, format iki mung ngerti file - ora ana folder. Mungkin iki bisa disimulasikake liwat jeneng file sing cocog.

Sebuah Volume dumadi saka header Volume lan sawetara blok Volume, sing cocog karo file konkret.

"Volumes" iku file kanthi akhiran 'vol' ing direktori game.

ꦄꦢꦿ 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) ꦗꦺꦴꦗꦶꦪꦶꦏꦶꦁ

Judhul Volume

ꦄꦢꦿ 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) ꦗꦺꦴꦗꦶꦪꦶꦏꦶꦁ

Header Volume ora ngemot data pangguna apa-apa.
Iku mung minangka wadah.

Dina pisanan ing Header Volume kudu ana Volume Strings; sawise iku banjur bakal ana informasi Volume.

Volume Strings

ꦄꦢꦿ 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) ꦥꦼꦭꦺꦴꦭꦣꦺ-ꦭꦺꦁꦒꦺ

Nyatakake pira byte saka data ing ngisor iki sing sejatine minangka data sing migunani.

Data liyane sing isih ana ing dhaptar Volume-Strings katon minangka garbage.

Ing berkas-berkas kanthi tanggal luwih anyar, 'data sing isih ana' iku 0x00, sing bisa nuduhake kekurangan ing toolchain nalika pangembangan game, tegesé, yen pangembang anyar nggatekake inisialisasi buffer kanthi bener ing pungkasan, amarga ora ana pengaruh marang game manawa data kasebut wis diinisialisasi utawa ora.

0x000c uint(8)[] ꦢꦺꦠꦶꦤꦺꦴꦩꦺꦤ-ꦭꦶꦱꦺ

Iki minangka dhaptar jeneng file sing diakhiri 0-byte, sing - paling ora ing komponen data sing ana - mung ngarepake karakter ASCII.

Ora perlu kanggo mriksa blok data iki luwih jero nalika nyaring data, amarga ing informasi volume, offset jeneng file wis dirujuk langsung.

VOLUME STRINGS iku sawijining dhaftar jeneng file sing kalebu ing sajroning volume kang ana.

Informasi Volume

ꦄꦢꦿ 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) ꦗꦺꦴꦗꦶꦪꦶꦏꦶꦁ

Informasi volume nyakup informasi luwih rinci kanggo file-file. Iki minangka sawijining jinis entri direktori FAT (FAT = File Allocation Table)

Jumlah file ditentokake saka ukuran blok dibagi dhuwure entri direktori - 14 Byte.

Entri direktori siji-sijine duwe susunan kaya ing ngisor iki:

ꦄꦢꦿ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF ꦕꦗꦶ
0x0000 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- . . . . . . . . . . . . . . . .
ᮧᮞ᮪ᮕᮧᮒ ꦢꦠꦺꦤ꧀ꦠꦾꦺꦴ ꦧꦼꦱꦶꦗꦤ꧀ ꦲꦺꦴꦏꦼꦠꦶꦁ
0x0000 uint(32) ꦢꦺꦠꦶꦤꦼꦩꦤ-ꦲꦺꦴꦠꦺꦤ꧀

Nyatakaké ing ngendi offset (!) ing sajroning dhaptar jeneng file (Volume-Strings) jeneng file saka file kasebut bisa ditemokake.

Iki nuduhake awal blok data sing digunakake.

0x0004 uint(32) ꦢꦺꦠꦶ-ꦲꦺꦴꦤ꧀

Nunjukna ing offset ngendi ing sakabehe file volume file iki ana file kasebut.

0x0008 uint(32) ꦢꦺꦴꦠꦶ-ꦕꦺꦴꦤꦶ

Nyatakaké, pira gedhéné file ing byte.

0x000c uint(16) ꦗꦶꦪꦶ?

Katingalipun nambah informasi babagan encoding file.

  • 0x03 dipunsetel, menawi file punika dikompres. Ingkang punika katingalipun migunakake pohon Huffmann.
  • 0x80 katingalipun tansah dipunsetel.

Blok Volume

ꦄꦢꦿ 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) ꦗꦺꦴꦗꦶꦪꦶꦏꦶꦁ

Sak sawijining Volume-Block iku sawijining wadah, ing ngendi file-file disimpen. Iku mung ngemot - amarga format block - ukuran file sing redundant lan saiki langsung dilanjutake dening data sing digunakake.