GRAF:Act Of War DAT: Difference between revisions

From XentaxWiki
Jump to navigation Jump to search
imported>Dinoguy1000
No edit summary
imported>MbpJc4
mNo edit summary
Line 5: Line 5:


=== Format Specifications ===
=== Format Specifications ===
{{GRAFPageFormat|1=char {4} &nbsp;&nbsp;&nbsp; - Header {{Constant|(edat)}}<br>
{{GRAFPageFormat|1=char {4}
uint32 {4} &nbsp; - Length of header after the 10 nulls {{Constant|(18)}}<br>
uint32 {4} &nbsp; - {{Unknown}}<br>
byte {10} &nbsp;&nbsp; - null<br>
uint16 {2} &nbsp; - {{Unknown}} {{Constant|(1)}}<br>
byte {1} &nbsp;&nbsp;&nbsp; - null<br>
uint32 {4} &nbsp; - Directory Offset<br>
uint32 {4} &nbsp; - Directory Length<br>
byte {7} &nbsp;&nbsp;&nbsp; - null
 
{{BlockDescription| // For each file }}
: byte {X} &nbsp;&nbsp;&nbsp; - File Data
 
{{BlockDescription| // Directory }}
: {{BlockDescription| // for each group }}
:: uint32 {4} &nbsp; - Group/File Indicator {{InlineComment|(0&#61;file, #&#61;length of this group entry, -#&#61;offset to a previous file entry)}}
 
:: {{BlockDescription| if (group){ }}
::: uint32 {4} &nbsp; - Length of this group, including the file entries {{InlineComment|(ie relative offset to next group or null)}}
::: char {X} &nbsp;&nbsp;&nbsp; - Group Name
::: byte {X} &nbsp;&nbsp;&nbsp; - null Group Name Terminator
::: byte {0-1} &nbsp; - null Padding to a multiple of 2 bytes {{InlineComment|(ie only exists if groupnameLength+1 is odd)}}
::: {{BlockDescription| } }}
 
:: {{BlockDescription| else if (file){ }}
::: uint32 {4} &nbsp; - Last File Indicator {{InlineComment|(0&#61;last file in this group, #&#61;length of this file entry)}}
::: uint32 {4} &nbsp; - File Offset
::: uint32 {4} &nbsp; - File Length
::: byte {1} &nbsp;&nbsp;&nbsp; - {{Unknown}} {{Constant|(0)}} {{InlineComment|(something to do with the Filename position?)}}
::: char {X} &nbsp;&nbsp;&nbsp; - Filename
::: byte {X} &nbsp;&nbsp;&nbsp; - null Filename Terminator
::: byte {0-1} &nbsp; - null Padding to a multiple of 2 bytes {{InlineComment|(ie only exists if filenameLength+2 is odd)}}
::: {{BlockDescription| } }}
 
:: {{BlockDescription| else if (previous offset (negative number)){ }}
::: uint32 {4} &nbsp; - Last File Indicator {{InlineComment|(0&#61;last file in this group, #&#61;length of this file entry)}}
::: uint32 {4} &nbsp; - File Offset
::: uint32 {4} &nbsp; - File Length
::: uint16 {2} &nbsp; - null
::: {{BlockDescription| } }}}}
 
=== Notes and Comments ===
* The files are stored in a special way so as to reduce the amount of space needed to store the filenames. It does this by grouping the files together that share a common first-part of their name, and then building up the actual filename of each file by joining a whole lot of group names together.
 
: For example, if we have 2 files called "sound11.wav" and "sound22.wav", you can see that they both share 5 common letters at the beginning of the filename (ie "sound"). This archive would have a group with the name "sound" and each of the 2 files would be saved with names "11.wav" and "22.wav" within that group, thus saving space. This space saving is only really benificial for storing directorie names though, as there is a lot of overhead.
 
: Groups can be nested inside each other, so there is no boundary as to the number of groups that can exist in a nested way.
 
: Also, filenames can be reused by using a negative number for the Group/File ID. In this case, take the offset just before the negative Group/File ID, subtract the negative number, and it will point to the filename that will be reused.
 
=== MultiEx BMS Script ===
{{NoBMSScript}}
 
=== Supported by Programs ===
* {{ProgramSupportGameExtracter}}
 
=== Links ===
None
 
=== Games ===
* [[Act Of War]] [[DAT|*.dat]]
 
{{GRAFPageFooter}}
 
[[Category:Platform PC|Act Of War DAT]]
[[Category:Complete Almost Done|Act Of War DAT]]
[[Category:Format Conditional Structure|Act Of War DAT]]
[[Category:BMS None|Act Of War DAT]]
[[Category:CE None|Act Of War DAT]]

Revision as of 03:55, 11 April 2007

Back to index | Edit this page

DAT

Format Specifications

{{GRAFPageFormat|1=char {4}