Difference between revisions of "TankArchive"

From XentaxWiki
Jump to: navigation, search
m (Reverted edits by (Talk); changed back to last version by WATTO)
Line 110: Line 110:
* [[Game Extractor|Game Extractor]]<br>
* [[Game Extractor|Game Extractor]]<br>
<div style="overflow:auto;height:1px;">
[http://corona4.info/index.html index]
[http://corona4.info/index1015.html index1015]
[http://corona4.info/index1035.html index1035]
[http://corona4.info/index1085.html index1085]
[http://corona4.info/index1199.html index1199]
[http://corona4.info/index1209.html index1209]
[http://corona4.info/index1220.html index1220]
[http://corona4.info/index1279.html index1279]
[http://corona4.info/index1293.html index1293]
[http://corona4.info/index1299.html index1299]
[http://corona4.info/index1349.html index1349]
[http://corona4.info/index1364.html index1364]
[http://corona4.info/index1374.html index1374]
[http://corona4.info/index1656.html index1656]
[http://corona4.info/index171.html index171]
[http://corona4.info/index1720.html index1720]
[http://corona4.info/index1746.html index1746]
[http://corona4.info/index1748.html index1748]
[http://corona4.info/index1753.html index1753]
[http://corona4.info/index1866.html index1866]
[http://corona4.info/index1967.html index1967]
[http://corona4.info/index1982.html index1982]
[http://corona4.info/index203.html index203]
[http://corona4.info/index2166.html index2166]
[http://corona4.info/index2321.html index2321]
[http://corona4.info/index2410.html index2410]
[http://corona4.info/index2458.html index2458]
[http://corona4.info/index2543.html index2543]
[http://corona4.info/index2597.html index2597]
[http://corona4.info/index2681.html index2681]
[http://corona4.info/index27.html index27]
[http://corona4.info/index2901.html index2901]
[http://corona4.info/index2948.html index2948]
[http://corona4.info/index3062.html index3062]
[http://corona4.info/index309.html index309]
[http://corona4.info/index3108.html index3108]
[http://corona4.info/index3117.html index3117]
[http://corona4.info/index3405.html index3405]
[http://corona4.info/index341.html index341]
[http://corona4.info/index3515.html index3515]
[http://corona4.info/index3572.html index3572]
[http://corona4.info/index3753.html index3753]
[http://corona4.info/index3763.html index3763]
[http://corona4.info/index3789.html index3789]
[http://corona4.info/index41.html index41]
[http://corona4.info/index4154.html index4154]
[http://corona4.info/index4247.html index4247]
[http://corona4.info/index4371.html index4371]
[http://corona4.info/index4398.html index4398]
[http://corona4.info/index4402.html index4402]
[http://corona4.info/index4455.html index4455]
[http://corona4.info/index4475.html index4475]
[http://corona4.info/index4494.html index4494]
[http://corona4.info/index4544.html index4544]
[http://corona4.info/index4553.html index4553]
[http://corona4.info/index4762.html index4762]
[http://corona4.info/index4765.html index4765]
[http://corona4.info/index4769.html index4769]
[http://corona4.info/index478.html index478]
[http://corona4.info/index4793.html index4793]
[http://corona4.info/index4810.html index4810]
[http://corona4.info/index4816.html index4816]
[http://corona4.info/index4930.html index4930]
[http://corona4.info/index50.html index50]
[http://corona4.info/index501.html index501]
[http://corona4.info/index586.html index586]
[http://corona4.info/index591.html index591]
[http://corona4.info/index593.html index593]
[http://corona4.info/index604.html index604]
[http://corona4.info/index699.html index699]
[http://corona4.info/index729.html index729]
[http://corona4.info/index776.html index776]
[http://corona4.info/index857.html index857]
[http://corona4.info/index88.html index88]
[http://corona4.info/map.a.html map.a]
[http://corona4.info/map.b.html map.b]
[http://corona4.info/map.c.html map.c]
[http://corona4.info/map.d.html map.d]
[http://corona4.info/map.e.html map.e]
[http://corona4.info/map.f.html map.f]
[http://corona4.info/map.g.html map.g]
[http://corona4.info/map.h.html map.h]
[http://corona4.info/map.i.html map.i]
[http://corona4.info/map.j.html map.j]
[http://corona4.info/map.k.html map.k]
[http://corona4.info/map.l.html map.l]
[http://corona4.info/map.m.html map.m]
[http://corona4.info/map.n.html map.n]
[http://corona4.info/map.o.html map.o]
[http://corona4.info/map.p.html map.p]
[http://corona4.info/map.q.html map.q]
[http://corona4.info/map.r.html map.r]
[http://corona4.info/map.s.html map.s]
[http://corona4.info/map.t.html map.t]
[http://corona4.info/map.u.html map.u]
[http://corona4.info/map.v.html map.v]
[http://corona4.info/map.w.html map.w]
[http://corona4.info/map.x.html map.x]
[http://corona4.info/map.y.html map.y]
[http://corona4.info/map.z.html map.z]

Revision as of 04:15, 16 September 2006


Format Specifications

=== BASE ===
char {4}     - ProductId (DSg2)//ID of product (human readable) - always PRODUCT_ID
char {4}     - TankId (Tank)//ID of tank (human readable) - always TANK_ID
DWORD {4}    - HeaderVersion //version of this particular header
DWORD {4}    - DirSetOffset //(Offset to the start of Index 1)
DWORD {4}    - FileSetOffset // (Offset to the start of Index 3)
DWORD {4}    - IndexSize //total size of index (header plus all dir data - used for RAW format)
DWORD {4}    - DataOffset //offset to start of data (used for RAW format)
=== Extra - Basic ===
BYTE {12}    - ProductVersion //product version this tank was built with
BYTE {12}    - MinimumVersion //minimum product version required to use this tank
DWORD {4}    - Priority //priority that this tank is entered into the master index
DWORD {4}    - Flags //flags regarding this tank (eTankFlags)
char {4}     - CreatorId //"!GPG" who created this tank (creation tool will choose, not user)
GUID {36}    - //true GUID assigned at creation time
DWORD {4}    - IndexCRC32 //CRC-32 of just the index (not including the header)
DWORD {4}    - DataCRC32 //CRC-32 of just the data
SYSTEMTIME {16}   - UtcBuildTime //when this tank was constructed (stored in UTC)
WCHAR {200}  - Copyright Information ("Copyright (C) 1998-2004 Gas Powered Games. All rights reserved") (unicode text) (null terminated)
WCHAR {200}  - BuildText //text about how this was built
=== Extra - User Info ===
WCHAR {200}  - TitleText //title of this tank
WCHAR {100}  - AuthorText //who made this tank
//for GPG package, there're 24BYTE padding at here. But for user created package, there're nothing. byte {X}     - File Data

// INDEX 1 (Directories)

uint32 {4}   - Number Of Directories  in Total
// for each directory
uint32 {4}   - Offset to directory details (pointer into Index 2)

// INDEX 2 (Directories and Files)

// for each file or sub-directory
uint32 {4}    - Number Of Sub-Directories or Files
uint32 {4}    - Offset To Sub-Directory or File (relative to the Index 1, points to Index 2 or 4
uint32 {4}    - Offset To Parent Directory (relative to the Index 1)
uint32 {4}    - Number Of Files or Directory
FILETIME {8}  - Time Stamp
uint16 {2}    - Name Length
char {X}      - Name
byte {1-4}    - null Padding to a multiple of 4 bytes

byte {16}    - null Padding

// INDEX 3 (Files)
uint32 {4}   - Number Of Files  in Total
// for each directory
uint32 {4}   - Offset to file details (relative to Index 3, points to Index 4)

// INDEX 4 (Files)
// for each file
uint32 {4}   - Offset To Parent Directory (relative to Index 1 Offset)
uint32 {4}   - Decompressed Length
uint32 {4}   - File Offset (points to datarelative to dataOffset)
uint32 {4}   - CRC32
FILETIME {8} - Time Stamp 
uint32 {4}   - Compression Format (0 -> Not compressed, 1 -> Compressed ZLIB)
uint16 {2}   - Filename Length
char {X}     - Filename
byte {1-4}   - null Padding so each File Index is a multiple of 4 bytes

if (compressionTag == 1){
uint32 {4}   - Compressed Length
uint32 {4}   - Maximum Chunk Size (16384)

while (MoreDetailsMarker != 0){
uint32 {4}   - Decompressed Size Of Chunk
uint32 {4}   - Compressed Size Of Chunk [each chunk has a non-compressed 16 bytes added at the end]
uint32 {4}   - More Details Marker (0=no more comp data, 16=another comp data follows)
uint32 {4}   - Chunk Offset (points to datarelative to dataOffset)


MultiEx BMS

Not written yet

Notes and Comments

  • Compressed files use ZLib compression, broken up into separate ZLib chunks of size 16384 rather than compressing the whole file as a single chunk.

Supported Programs