String File Format (MH3) - GReinoso96/XXModding GitHub Wiki
All research based on data00_eng.bin
The files themselves are containers.
All offset and length values are in Big Endian format.
Structure
The files are divided into 3 sections, Header, Blocks and Sections.
Header is the basic file structure info found at the start.
Sections are large chunks of data that contain blocks, Item Strings, Blademaster Strings, Gunner Strings, etc.
Blocks are the different partitions of each section, for example, the Blademaster Strings section contains 2 blocks for each weapon class, one for names and one for strings.
All offsets found inside blocks expect the section to start at 0x00.
Header Definition
Byte | Length | Description |
---|---|---|
0x00 | 0x04 | Magic (OMOM/0x4F4D4F4D) |
0x04 | 0x04 | Number of files |
Section Definition
These work with global offsets.
Byte | Length | Description |
---|---|---|
0x00 | 0x04 | Offset to Section |
0x04 | 0x04 | Size of Section |
... | ... | Repeat for Number of Files |
Block Definition
Unfortunately, there doesn't seem to be a simple way to programatically get the number of blocks per section.
Byte | Length | Description |
---|---|---|
0x00 | 0x04 | Offset to block strings's offsets |
0x04 | 0x04 | Number of strings for this block |
... | ... | Repeat for Number of Blocks |