STRG (Metroid Prime)
The STRG format is used to store string tables. Each STRG file can contain any number of strings, as well as variations for different languages; the Prime series supports English, French, German, Spanish, Italian, Dutch, and Japanese.
Format
Header
Offset | Size | Description |
---|---|---|
0x0 | 4 | Magic; always 0x87654321 |
0x4 | 4 | Version; see hub article |
0x8 | 4 | Language count |
0xC | 4 | String count |
0x10 | End of header |
Languages
Following is a table that describes which languages appear in the file.
Offset | Size | Description |
---|---|---|
0x0 | 4 | Language fourCC |
0x4 | 4 | Language strings offset (relative to start of string tables) |
0x8 | 4 | Language strings size (note: this is not in Prime 1) |
0xC | Language entry end |
String Names
In Echoes, strings can have names attached to them. Note that this table only appears in the Echoes STRG format; for Prime 1, skip ahead to the string tables.
Offset | Size | Description |
---|---|---|
0x0 | 4 | Name count |
0x4 | 4 | Name table size |
0x8 | Name entries begin |
Each entry is structured as follows:
Offset | Size | Description |
---|---|---|
0x0 | 4 | Name offset (relative to after the name table size value) |
0x4 | 4 | String index - this is the string number that the name is associated with |
0x8 | End of entry |
After every name entry comes all the names in the form of a large UTF-8 string array. The names are zero-terminated, and they're sorted in alphabetical order; the sorting is case-sensitive, so 'Z' will appear before 'a'.
String Tables
Last are the actual string tables themselves. Each table contains some metadata followed by a series of UTF-16 strings. The number of strings is declared in the header; there will be one of these tables present per language present in the file.
Offset | Size | Description |
---|---|---|
0x0 | 4 | String table size (note: this is not in Echoes) |
0x4 | 4 × string count | String offsets (relative to after the size value) |
- | Varies | UTF-16 strings |
Tools
- STRG Editor by Parax - supports creating/editing and resaving STRG files in Metroid Prime 1/2's formats