diff --git a/File-Type%3A-Bundle-Database.md b/File-Type%3A-Bundle-Database.md new file mode 100644 index 0000000..1f71864 --- /dev/null +++ b/File-Type%3A-Bundle-Database.md @@ -0,0 +1,60 @@ +**010Editor Template:** + +```bt +uint32 format ; +uint32 num_entries; + +typedef struct { + uint32 version; + Assert(version == 0x4); + + uint32 len_name; + char name[len_name]; + + uint32 len_stream; + char stream[len_stream]; + + byte platform_specific; // boolean + + byte buffer[20]; // VT2's SDK only ever writes 0 and ignores while reading + uint64 file_time; // win32 FILETIME +} File; + +typedef struct { + uint64 hash ; + uint32 num_files; + + File files[num_files] ; +} Entry; + +Entry entries[num_entries] ; + +uint32 num_hashes; + +typedef struct { + uint64 hash; + uint64 unknown; +} ResourceHash; + +ResourceHash hashes[num_hashes]; + +if (format <= 5) { + return; +} + +uint32 num_contents; + +typedef struct { + uint64 extension ; + uint64 name ; +} Filename; + +typedef struct { + uint64 hash ; + uint32 num_files; + + Filename files[num_files]; +} BundleContents; + +BundleContents contents[num_contents] ; +``` \ No newline at end of file