MsbtLib
MSBT Library by GingerAvalanche on GitHub.
About MsbtLib
MSBT (Message Standard Binary Table) is Nintendo's text container format. This library parses the binary format into editable C# classes that can be serialized to a pseudo HTML markup or back to binary.
Usage
Usage examples for reading, writing, and editing MSBT files using MsbtLib.
Reading
Reading from a FileStream
Reading from a pseudo HTML string
Documentation in progress.
Editing
Writing
Writing to pseudo HTML
Valid HTML Tags:
Animation - <animation=[name] />
Auto-Advance - <auto_advance=[num_frames] />
ℹ️ One Choice - <choice1=[key] />
ℹ️ Two Choice - <choice2 0=[key] 1=[key] cancel=[index] />
ℹ️ Three Choice - <choice3 0=[key] 1=[key] 2=[key] cancel=[index] >
ℹ️ Four Choice - <choice4 0=[key] 1=[key] 2=[key] 3=[key] cancel=[index] >
Font - <font=[face] /> (Only Normal and Hylian)
Icon - <icon=[character] /> (Some characters require numbers, e.g. A(10))
Pause for a number of frames - <pauseframes=[num_frames] />
Pause for a duration - <pauselength=[duration] /> (Only Short, Long, or Longer)
Set Text Color - <color=[color]> (Only Red, LightGreen1, Blue, Grey, LightGreen4, Orange, or LightGrey)
Reset Text Color to Default - </color>
⚠️ Sound - <sound field_1=[uint8] field_2=[uint8] />
⚠️ Another Sound Type - <sound2=[uint8] />
Text Size - <textsize percent=[num] /> (Use <textsize percent=100 /> to reset)
♠️ Variable - <variable kind=[uint16] name=[name] /> (name must correspond to a variable name in the executable)
Extra Info
ℹ️ These keys are keys for other localized strings. Usually, those keys are read from the same MSBT, but in the case of shops, they are read from the shop NPC's MSBT. The keys are read as %04d-formatted strings, e.g. '4' is read as '0004'. The indexes are for which choice represents a cancellation.
⚠️ It is currently unknown how the game uses these uint8s
♠️ It is currently unknown how the game uses these uint16s
Writing to a file
Writing to a byte[] (continued example from 'Reading from a byte[]')
Download
The C# implementation of MSBT can be downloaded from GitHub - Direct Download
Credits @Kyle Clemens - Original Rust Implementation @GingerAvalanche - C# Implementation and Usage Instructions
Last updated