Hacimler · bei.pm

Yayınlanma tarihi 19.11.2015·Güncellendiği tarih: 13.02.2025·Türkçe
Bu metin, OpenAI GPT-4o Mini tarafından otomatik olarak çevrilmiştir.

Bu sayfada tanımlanan dosya formatları, Dynamix, Inc. ve Sierra Entertainment tarafından yapılan teknik analizlere dayanmaktadır.
Bugün fikri mülkiyet, Activision Publishing, Inc. / Activision Blizzard, Inc. grubunun bir parçasıdır ve şu anda Microsoft Corp. tarafından sahiptir.

Bilgiler, arşivleme ve tarihsel verilerle birlikte çalışabilirlik amacıyla ters mühendislik ve veri analizi yoluyla derlenmiştir.
Hiçbir özel veya gizli spesifikasyon kullanılmamıştır.

Oyun şu anda gog.com üzerinden indirme olarak satın alınabilir.

Volume'lar, oyuna ait bir veri konteyneridir ve Tarball gibi arşiv formatlarına benzer. En azından Outpost 2'de bu format yalnızca dosyaları tanır - klasör yoktur. Bunlar, muhtemelen ilgili dosya adlarıyla simüle edilebilir.

Bir Volume, Volume başlığı ve belirli dosyalara karşılık gelen birden fazla Volume bloğundan oluşur.

"Volumes", oyun dizinindeki 'vol' uzantısına sahip dosyalardır.

Adres x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF karakter
0x0000 56 4f 4c 20 -- -- -- -- -- -- -- -- -- -- -- -- V O L . . . . . . . . . . . .
Kaydırma Veri Türü Tanım Açıklama
0x0000 uint(32) Sihirli Baytlar
0x0004 uint(24) Blok Uzunluğu
0x0007 uint(8) Bayraklar

Hacim Başlığı

Adres x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF karakter
0x0000 76 6f 6c 68 -- -- -- -- -- -- -- -- -- -- -- -- v o l h . . . . . . . . . . . .
Kaydırma Veri Türü Tanım Açıklama
0x0000 uint(32) Sihirli Baytlar
0x0004 uint(24) Blok Uzunluğu
0x0007 uint(8) Bayraklar

Hacim Başlığı kendisi herhangi bir kullanıcı verisi içermez.
Sadece bir konteyner olarak hizmet eder.

Hacim Başlığındaki ilk veri, hacim dizgileri olmalıdır; ardından hacim bilgileri gelmektedir.

Ses Hacmi Dizeleri

Adres x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF karakter
0x0000 76 6f 6c 69 -- -- -- -- -- -- -- -- -- -- -- -- v o l i . . . . . . . . . . . .
Kaydırma Veri Türü Tanım Açıklama
0x0000 uint(32) Sihirli Baytlar
0x0004 uint(24) Blok Uzunluğu
0x0007 uint(8) Bayraklar
Adres x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF karakter
0x0000 76 6f 6c 73 -- -- -- -- -- -- -- -- -- -- -- -- v o l s . . . . . . . . . . . .
Kaydırma Veri Türü Tanım Açıklama
0x0000 uint(32) Sihirli Baytlar
0x0004 uint(24) Blok Uzunluğu
0x0007 uint(8) Bayraklar
0x0008 uint(32) Yük uzunluğu

Aşağıdaki verilerin ne kadarının gerçekten yararlı veri olduğunu belirtir.

Hacim dizeleri listesinin geri kalan verileri açıkça çöp olarak değerlendirilmektedir.

Sonradan oluşturulan dosyalarda bu 'geri kalan veriler' 0x00'dır, bu da oyunun geliştirilmesi sırasında araç zincirindeki yetersizliklere işaret edebilir; yani, bir geliştiricinin tamponların doğru bir şekilde başlatılmasına ancak çok geç bir aşamada özen gösterdiği anlamına gelir, çünkü verilerin başlatılıp başlatılmaması oyunun işleyişini etkilemez.

0x000c uint(8)[] Dosya Adları Listesi

Bu, - mevcut veri bileşeninde - yalnızca ASCII karakterleri bekleyen 0-byte ile sonlandırılmış bir dosya adı listesidir.

Verileri ayrıştırırken bu veri bloğunu daha ayrıntılı bir şekilde analiz etmek gerekmez, çünkü hacim bilgilerinde zaten dosya adlarının offset'leri doğrudan referans alınmaktadır.

Volume Strings, hacim içinde bulunan dosya adlarının bir listesidir.

Ses Bilgileri

Adres x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF karakter
0x0000 76 6f 6c 69 -- -- -- -- -- -- -- -- -- -- -- -- v o l i . . . . . . . . . . . .
Kaydırma Veri Türü Tanım Açıklama
0x0000 uint(32) Sihirli Baytlar
0x0004 uint(24) Blok Uzunluğu
0x0007 uint(8) Bayraklar

Hacim bilgileri, dosyalarla ilgili daha ayrıntılı bilgileri alır. Bu, bir nevi FAT dizin girişi gibidir (FAT = Dosya Dağıtım Tablosu).

Dosya sayısı, blok boyutunun dizin girişlerinin uzunluğuna - 14 Bayt'a bölünmesiyle elde edilir.

Bireysel dizin girişleri ise şu yapıya sahiptir:

Adres x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF karakter
0x0000 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- . . . . . . . . . . . . . . . .
Kaydırma Veri Türü Tanım Açıklama
0x0000 uint(32) Dosya adı kaydırması

Dosya adları listesindeki (Hacim Dize'leri) dosya adının bulunduğu ofset (!) değerini belirtir.

Bunu, kullanıcı veri bloğunun başlangıcına atıfta bulunarak yapar.

0x0004 uint(32) Dosya Ofseti

Dosyanın tüm hacim dosyası içindeki hangi ofsetten bulunduğunu belirtir.

0x0008 uint(32) Dosya boyutu

Dosyanın boyutunun byte cinsinden ne kadar olduğunu belirtir.

0x000c uint(16) Bayraklar?

Görünüşe göre dosya kodlaması hakkında ek bilgiler veriyor.

  • 0x03 dosya sıkıştırıldığında ayarlanır. Burada görünüşe göre bir Huffman ağacı kullanılıyor.
  • 0x80 görünüşe göre her zaman ayarlanmıştır.

Hacim Bloğu

Adres x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF karakter
0x0000 56 42 4c 48 -- -- -- -- -- -- -- -- -- -- -- -- V B L H . . . . . . . . . . . .
Kaydırma Veri Türü Tanım Açıklama
0x0000 uint(32) Sihirli Baytlar
0x0004 uint(24) Blok Uzunluğu
0x0007 uint(8) Bayraklar

Volume bloğu, dosyaları barındıran bir kapsayıcıdır. Sadece blok formatı nedeniyle dosya boyutunu tekrar - redunant olarak - içerir ve ardından doğrudan kullanım verileri gelir.