Skip to content
Synthlight edited this page May 7, 2020 · 3 revisions
//------------------------------------------------
//--- 010 Editor v10.0 Binary Template
//   Authors: FusionR (aka Fusion86)
// File Mask: *.gmd
//------------------------------------------------

typedef struct {
    uint32 magic; // 0x00444d47, "GMD\00"
    uint32 version;
    uint32 lang_id;
    uint32 unknown1;
    uint32 unknown2;
    uint32 key_count;
    uint32 string_count;
    uint32 key_block_size;
    uint32 string_block_size;
    uint32 name_size;
    char name[name_size+1]; // null byte terminated string
} GmdHeader;

typedef struct {
    uint32 string_index;
    int32 hash_key_2x; // signed_crc32(key_value + key_value)
    int32 hash_key_3x; // signed_crc32(key_value + key_value + key_value)
    uint32 pad; // always 0xCDCDCDCD
    uint64 key_offset;
    uint64 bucket_index;
} GmdInfoEntry;

GmdHeader header;
GmdInfoEntry info_entries[header.key_count];
uint64 buckets[256];
char key_block[header.key_block_size];
char string_block[header.string_block_size];

Clone this wiki locally