Giants File Structures

Ask questions related to the tools or files used to create modifications for Giants. Examples include map making, gmm, and installing skins.

Moderator: Staff

Post Reply
Vankerkom
Kabuto's Playtoy
Posts: 4
Joined: Sat Jun 02, 2018 11:15 am

Giants File Structures

Post by Vankerkom »

Want to reply to this thread? -> Feedback & Questions thread

This is work in progress documentation for the files located in the Giants Bin folder.
All of the information is acquired by reverse engineering the file format.

File format Basics
All giant files contain a magic version number to recognize the file type. The version number of a file is stored in little endian order in the first 4 bytes of the content.

Files
All files will have a separate post linked below. Contributing
if you want to contribute to this research, then feel free to hit me up on the GiantsWD discord server or reply to the feedback thread.

Feedback / Help
Feel free to reply to this thread if you have questions or want to give feedback.
Last edited by Vankerkom on Tue Jun 05, 2018 9:27 am, edited 4 times in total.
Vankerkom
Kabuto's Playtoy
Posts: 4
Joined: Sat Jun 02, 2018 11:15 am

GameObj.bin Structure

Post by Vankerkom »

File: GameObj.bin

Version: 436208349 [ DD 02 00 1A ]

Description:
This is one of the first files that gets read by the game.

Structure:
int32 version; // File version as mentioned in the fist post.
int32 fileSize; // The size of the content in the file

// This nextByte reads the first byte after fileSize if it does not find 0xFF (255) then it reads two null terminated strings and repeats until it reached 0xFF.
while(nextByte != 0xFF) {

char* object; // Always "world.gb2" - C-Style String (0 terminated)
char* someFx; // An effect set? (unsure) - C-Style String (0 terminated)

}
Vankerkom
Kabuto's Playtoy
Posts: 4
Joined: Sat Jun 02, 2018 11:15 am

GZP Structure

Post by Vankerkom »

File: *.gzp

Version: 1711862017 [ 01 F1 08 66 ]

Description:
A custom archive that contains the game's assets in a compressed form.

Structure:
int32 version; // File version as mentioned in the fist post.
int32 metaInfoOffset; // The offset of the file meta info which is located below the compressed content.

loop(entries) // Compressed content, entries count can be found inside the meta data.
{
// TODO
}

// Content Meta Info
int32 unknown; // This value is currently unknown.
int32 entries; // The amount of entries in the file.
// This is a for loop for every entry
loop(entries)
{
int32 compressedSize; // Size (Compressed)
int32 orignalSize; // Original Size (Decompressed)
_FILETIME fileTime; // 32bit windows file time. This indicates when the file was created?
int32 startOffset; // The start offset of the content inside the file.
char compressFlag; // This seems to be a flag if the item is compressed or not? Compressed files: 1 - not compressed 2 (unsure)
char nameLength; // The length of the name.
char[nameLength] name; // The name of the file in ASCII.
}
_FILETIME

Code: Select all

        // _FILETIME
        // 32-Bit Windows Time/Date Formats
        // Parsed in LE direction.

        // Time
        // Bit position:    0 1 2 3 4	5 6 7 8 9 A     B C D E F
        // Length:	        5	        6	            5
        // Contents:	    hours	    minutes	        2-second increments
        // Value Range:	    0–23    	    0–59    	        0–29 in 2-second intervals

        // Date
        // Bit position:	0 1 2 3 4 5 6	    7 8 9 A     B C D E F
        // Length:	        7	                4	        5
        // Contents:	    year	            month	    day
        // Value Range:	    0–119	            1–12    	    1–31
        //                  relative to 1980
Post Reply