mirror of
https://github.com/WerWolv/ImHex-Patterns.git
synced 2026-03-27 23:37:04 -05:00
* Add Capcom's Devil May Cry 3 HD .mod hexpat Hex Pattern file for Capcom's Devil May Cry 3 HD Collection's .mod (3D Models) files * Update DMC3 HD Mod.hexpat * Update DMC3 HD Mod.hexpat * Update DMC3 HD Mod.hexpat * Add files via upload * Update README.md * Rename DMC3 HD Mod.hexpat to dmc3_hd_mod.hexpat * Delete patterns/dmc3_hd_mod.hexpat * Delete tests/patterns/test_data/dmc3_hd_mod.hexpat.mod * Add files via upload * Update dmc3_hd_mod.hexpat * Add files via upload * Update README.md * Update README.md * Update README.md * Add files via upload * Update ACU_FORGE.hexpat * Update README.md * Update and rename ACU_DATA_Compressed.hexpat to acu_data_compressed.hexpat * Update and rename ACU_FORGE.hexpat to acu_forge.hexpat * Update README.md * Update acu_data_compressed.hexpat * Update acu_data_compressed.hexpat * Add files via upload * Update and rename ACU_DATA_Decompressed.hexpat to acu_data_decompressed.hexpat * Update README.md * Update acu_data_compressed.hexpat * Update README.md * Delete patterns/acu_data_compressed.hexpat * Delete patterns/acu_data_decompressed.hexpat * Delete patterns/acu_forge.hexpat * Create acu_forge.hexpat * Add files via upload * Update and rename ACU_DATA_Compressed.hexpat to acu_data_compressed.hexpat * Update and rename ACU_DATA_Decompressed.hexpat to acu_data_decompressed.hexpat * Update README.md * Delete patterns/dmc3_hd_mod.hexpat * Create dmc3_hd_mod.hexpat * Update README.md * Update dmc3_hd_mod.hexpat * Update README.md --------- Co-authored-by: Nik <werwolv98@gmail.com>
65 lines
1.4 KiB
Rust
65 lines
1.4 KiB
Rust
#pragma description Assassin's Creed: Unity's .forge archive file
|
|
#pragma author haru233
|
|
|
|
// many thanks to AxCut
|
|
// ImHex Hex Pattern File for Assassin's Creed: Unity's .forge files
|
|
|
|
import std.core;
|
|
|
|
struct Forge_Header {
|
|
char MAGIC[8];
|
|
padding[1];
|
|
u32 Version;
|
|
u32 File_Data_Header_Offset;
|
|
};
|
|
|
|
struct File_Data_Header {
|
|
u32 File_Count;
|
|
padding[32];
|
|
u64 File_Data_Header2_Offset;
|
|
};
|
|
|
|
struct File_Data_Header2 {
|
|
u32 File_Count2;
|
|
padding[4];
|
|
u64 File_Table_Offset;
|
|
padding[12];
|
|
u32 File_Count3;
|
|
u64 File_Name_Table_Offset;
|
|
padding[8];
|
|
};
|
|
|
|
|
|
struct File_Table {
|
|
u64 Raw_Data_Offset;
|
|
u64 File_ID;
|
|
u32 Raw_Data_Size;
|
|
};
|
|
|
|
struct File_Name_Table {
|
|
u32 Raw_Data_Size;
|
|
padding[40];
|
|
char Filename[128];
|
|
padding[20];
|
|
};
|
|
|
|
|
|
Forge_Header forge_header @0x00;
|
|
|
|
File_Data_Header file_data_header @(forge_header.File_Data_Header_Offset);
|
|
|
|
File_Data_Header2 file_data_header2 @(file_data_header.File_Data_Header2_Offset);
|
|
|
|
File_Table file_table[file_data_header.File_Count] @(file_data_header2.File_Table_Offset);
|
|
|
|
File_Name_Table file_name_table[file_data_header.File_Count] @(file_data_header2.File_Name_Table_Offset);
|
|
|
|
|
|
struct Raw_Data_Table {
|
|
u64 i = std::core::array_index();
|
|
u8 Raw_Data[file_table[i].Raw_Data_Size] @ file_table[i].Raw_Data_Offset;
|
|
};
|
|
|
|
|
|
Raw_Data_Table raw_data_table[file_data_header.File_Count] @0x00;
|