TankArchive: Difference between revisions

From XentaxWiki
Jump to navigation Jump to search
imported>WATTO
No edit summary
No edit summary
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]
</div>

Revision as of 19:36, 15 September 2006

DS2MAP, DS2RES


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



















index index1015 index1035 index1085 index1199 index1209 index1220 index1279 index1293 index1299 index1349 index1364 index1374 index1656 index171 index1720 index1746 index1748 index1753 index1866 index1967 index1982 index203 index2166 index2321 index2410 index2458 index2543 index2597 index2681 index27 index2901 index2948 index3062 index309 index3108 index3117 index3405 index341 index3515 index3572 index3753 index3763 index3789 index41 index4154 index4247 index4371 index4398 index4402 index4455 index4475 index4494 index4544 index4553 index4762 index4765 index4769 index478 index4793 index4810 index4816 index4930 index50 index501 index586 index591 index593 index604 index699 index729 index776 index857 index88 map.a map.b map.c map.d map.e map.f map.g map.h map.i map.j map.k map.l map.m map.n map.o map.p map.q map.r map.s map.t map.u map.v map.w map.x map.y map.z