LMS > Overview > Message File (MSBT)
This file is identified by the magic number MsgStdBn. It contains text strings that are looked up by label. This page describes version 3 of the file format.
| Type | Description |
|---|---|
LBL1 | Message labels |
TXT2 | Message strings |
ATR1 | Attributes |
TSY1 | Text style |
LBL1 Block
This block contains labels for the TXT2, ATR1 and TSY1 blocks.
TXT2 Block
This block contains the actual text strings.
| Offset | Size | Description |
|---|---|---|
| 0x0 | 4 | Number of messages |
| 0x4 | 4 per message | Offsets to message strings |
| Null-terminated message strings |
A message string may contain control tags, which may for example change the style of the text. A control tag always starts with character 0xE, which is followed by:
| Offset | Size | Description |
|---|---|---|
| 0x0 | 2 | Tag group id |
| 0x2 | 2 | Tag index |
| 0x4 | 2 | Size of parameters |
| 0x6 | Parameters |
Character 0xF may mark the end of a region that is affected by a control tag. This character always takes up exactly 6 bytes (including the 0xF character), regardless of the character encoding. This marker is almost never seen in official files.
All tags and their parameters are defined in the TGG2 block of the MSBP file.
Predefined Tags
Tag group 0 (called ‘System’) contains predefined tags, while all other tag groups are game-specific. The following tags are defined under tag group 0:
| Tag | Name | Parameters |
|---|---|---|
| 0 | Ruby | rt (string) |
| 1 | Font | face (string) |
| 2 | Size | percent (uint8), size (string) |
| 3 | Color | r (int8), g (int8), b (int8), a (int8), name (string) |
| 4 | PageBreak | None |
| 5 | Reference | mstxt (string), label (string), lang (string) |
ATR1 Block
This block contains attributes for each message. The format of the attributes is game-specific, but may be declared in an MSBP file. Depending on the game, the attributes may contain offsets to strings that are stored behind the attribute table.
| Offset | Size | Description |
|---|---|---|
| 0x0 | 4 | Number of attributes |
| 0x4 | 4 | Bytes per attribute |
| 0x8 | Attributes | |
| Strings |
TSY1 Block
If the TSY1 block is present, it contains a style index for each message.
| Offset | Size | Description |
|---|---|---|
| 0x0 | 4 per message | Style index in MSBP file |