<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.wexosmk.xyz/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=LolHacksRule</id>
	<title>Wexos&#039;s Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.wexosmk.xyz/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=LolHacksRule"/>
	<link rel="alternate" type="text/html" href="https://wiki.wexosmk.xyz/index.php/Special:Contributions/LolHacksRule"/>
	<updated>2026-04-07T18:44:07Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.41.1</generator>
	<entry>
		<id>https://wiki.wexosmk.xyz/index.php?title=MSBT_(File_Format)&amp;diff=396</id>
		<title>MSBT (File Format)</title>
		<link rel="alternate" type="text/html" href="https://wiki.wexosmk.xyz/index.php?title=MSBT_(File_Format)&amp;diff=396"/>
		<updated>2024-06-09T18:33:44Z</updated>

		<summary type="html">&lt;p&gt;LolHacksRule: /* TXT2 */ Tag group info&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Under-construction}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MSBT&#039;&#039;&#039; (&#039;&#039;&#039;M&#039;&#039;&#039;essage&#039;&#039;&#039;S&#039;&#039;&#039;tudio &#039;&#039;&#039;B&#039;&#039;&#039;inary &#039;&#039;&#039;T&#039;&#039;&#039;ext) is a text file format used in many [[Nintendo]] games such as [[Super Mario Galaxy 2]], [[Mario Kart 8]] and [[Super Mario Odyssey]], as well as in some mobile games. Though it has been around for many years, the content has changed and new sections have replace older ones.&lt;br /&gt;
&lt;br /&gt;
= File Format =&lt;br /&gt;
== Header ==&lt;br /&gt;
The file starts with the following header:&lt;br /&gt;
{{MSB Header|MsgStdBn}}&lt;br /&gt;
&lt;br /&gt;
== LBL1 ==&lt;br /&gt;
The &#039;&#039;&#039;LBL1&#039;&#039;&#039; section stores messages using key strings (labels). Each message has a unique key name which is used to access an message. The section has the following layout:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || Char[4] || &#039;&#039;&#039;Section magic&#039;&#039;&#039;. Always &#039;&#039;LBL1&#039;&#039; in ASCII.&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || UInt32 || &#039;&#039;&#039;Section size&#039;&#039;&#039; (starting from 0x10).&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || Byte[8] || {{Unknown-left|&#039;&#039;&#039;Unknown&#039;&#039;&#039;. Always 0.}}&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || Int32 || &#039;&#039;&#039;Number of [[#Label Entry|entries]]&#039;&#039;&#039;.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Label Entry ===&lt;br /&gt;
After the header comes the entries. Each entry has the following structure:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || Int32 || &#039;&#039;&#039;Number of labels&#039;&#039;&#039;.&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || UInt32 || &#039;&#039;&#039;Offset to an array of [[#Label|labels]]&#039;&#039;&#039;, relative to 0x10 in the [[#LBL1|LBL1 header]].&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Label ====&lt;br /&gt;
Each label has the following structure:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || Byte || &#039;&#039;&#039;Key string size&#039;&#039;&#039; (&#039;&#039;&#039;K&#039;&#039;&#039;).&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || String || &#039;&#039;&#039;Key string used to access this message&#039;&#039;&#039;. The string has the length &#039;&#039;&#039;K&#039;&#039;&#039; and is &#039;&#039;&#039;not&#039;&#039;&#039; null-terminated. The string is always stored in ASCII.&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 + &#039;&#039;&#039;K&#039;&#039;&#039; || Int32 || &#039;&#039;&#039;Message string&#039;&#039;&#039;, represented as an index into the &#039;&#039;&#039;[[#TXT2|TXT2 strings]]&#039;&#039;&#039;.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== NLI1 ==&lt;br /&gt;
The &#039;&#039;&#039;NLI1&#039;&#039;&#039; section stores messages using node IDs. Each message has a unique ID which is used by the game to get a specific message. The section has the following layout:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || Char[4] || &#039;&#039;&#039;Section magic&#039;&#039;&#039;. Always &#039;&#039;NLI1&#039;&#039; in ASCII.&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || UInt32 || &#039;&#039;&#039;Section size&#039;&#039;&#039; (starting from 0x10).&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || Byte[8] || {{Unknown-left|&#039;&#039;&#039;Unknown&#039;&#039;&#039;. Always 0.}}&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || Int32 || &#039;&#039;&#039;Number of entries&#039;&#039;&#039;.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Node ===&lt;br /&gt;
After the header comes the nodes. Each entry has the following structure:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || UInt32 || &#039;&#039;&#039;Node ID&#039;&#039;&#039;.&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || Int32 || &#039;&#039;&#039;Node string&#039;&#039;&#039;, represented as an index into the &#039;&#039;&#039;[[#TXT2|TXT2 strings]]&#039;&#039;&#039;.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== ATR1 ==&lt;br /&gt;
The &#039;&#039;&#039;ATR1&#039;&#039;&#039; section stores attribute data. It has the following structure:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || Char[4] || &#039;&#039;&#039;Section magic&#039;&#039;&#039;. Always &#039;&#039;ATR1&#039;&#039; in ASCII.&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || UInt32 || &#039;&#039;&#039;Section size&#039;&#039;&#039; (starting from 0x10).&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || Byte[8] || {{Unknown-left|&#039;&#039;&#039;Unknown&#039;&#039;&#039;. Always 0.}}&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || Int32 || &#039;&#039;&#039;Number of entries&#039;&#039;&#039;.&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || UInt32 || &#039;&#039;&#039;Entry size&#039;&#039;&#039; in bytes. The entry structure depends on the game.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ATR1 ARMS Entry ===&lt;br /&gt;
In ARMS each entry has the following structure:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || Byte || {{Unknown-left|&#039;&#039;&#039;Unknown&#039;&#039;&#039;}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ATR1 SMT Entry ===&lt;br /&gt;
In Super Mario Tour each entry has the following structure:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || Byte || {{Unknown-left|&#039;&#039;&#039;Unknown&#039;&#039;&#039;}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ATR1 SMG2 Entry ===&lt;br /&gt;
In Super Mario Galaxy 2 each entry has the following structure:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || Byte || {{Unknown-left|&#039;&#039;&#039;Unknown&#039;&#039;&#039;.}}&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || Byte || {{Unknown-left|&#039;&#039;&#039;Unknown&#039;&#039;&#039;.}}&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || Byte || &#039;&#039;&#039;Dialog type&#039;&#039;&#039;. 0 = Normal, 1 = Shout, 2 = Start when close, 3 = Start when anywhere&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || Byte || {{Unknown-left|&#039;&#039;&#039;Unknown&#039;&#039;&#039;.}}&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || UInt16 || {{Unknown-left|&#039;&#039;&#039;Unknown&#039;&#039;&#039;.}}&lt;br /&gt;
|-&lt;br /&gt;
| 0x06 || UInt16 || {{Unknown-left|&#039;&#039;&#039;Unknown&#039;&#039;&#039;. Usually 0xFFFF}}&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || UInt32 || &#039;&#039;&#039;String offset&#039;&#039;&#039;, relative to the 0x10 in the [[#ATR1|ATR1 header]]. Points to a null-terminated string.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ATR1 TLOZLA Entry ===&lt;br /&gt;
In The Legend of Zelda: Link&#039;s Awakening each entry has the following structure:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || UInt16 || {{Unknown-left|&#039;&#039;&#039;Unknown&#039;&#039;&#039;}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== TXT2 ==&lt;br /&gt;
The &#039;&#039;&#039;TXT2&#039;&#039;&#039; section contains text strings. It starts with the following structure:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || Char[4] || &#039;&#039;&#039;Section magic&#039;&#039;&#039;. Always &#039;&#039;TXT2&#039;&#039; in ASCII.&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || UInt32 || &#039;&#039;&#039;Section size&#039;&#039;&#039; (starting from 0x10).&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || Byte[8] || {{Unknown-left|&#039;&#039;&#039;Unknown&#039;&#039;&#039;. Always 0.}}&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || Int32 || &#039;&#039;&#039;Number of entries&#039;&#039;&#039;.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
After the TXT2 header, there are 32-bit unsigned offsets, containing the offsets to the strings.&lt;br /&gt;
&lt;br /&gt;
=== Control Tag ===&lt;br /&gt;
&lt;br /&gt;
The strings can also contain tags to modify text and/or rendering consisting of this structure:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || UInt16 || &#039;&#039;&#039;Tag Group magic&#039;&#039;&#039; (0x0E00), 0x0F00 for ending the effects of a previous tag (in newer software). &lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || UInt16 || &#039;&#039;&#039;Tag Type index&#039;&#039;&#039; (0 is System while others are application-specific. If the game use an MSBP file, it&#039;s probably possible to find their custom tag structures).&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || UInt16 || &#039;&#039;&#039;Tag Group index&#039;&#039;&#039;.&lt;br /&gt;
|-&lt;br /&gt;
| 0x06 || UInt16 || &#039;&#039;&#039;Tag Parameters size&#039;&#039;&#039;.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
If the size of the tag&#039;s parameters is greater than 0, parameters are defined for the given tag type and tag group.&lt;br /&gt;
&lt;br /&gt;
==== System Tag ====&lt;br /&gt;
&lt;br /&gt;
The System tag may be modified in games but usually follows this structure:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Tag Type !! Parameters !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || UInt16 + String || Applies Ruby syntaxing to text.&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || UInt16 || Changes the face of font.&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || UInt16 || Changes the size of text. The value can either be usually the text size or size index (Small, Medium, Large).&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || UByte[4] / UInt16 || Applies color to text. The value can either be 4 unsigned bytes for RGBA channels or usually the color index depending on the application.&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || None || Breaks the current text into another page, and usually halts text rendering, requiring user input to advance or terminate the text.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== ATO1 ==&lt;br /&gt;
The &#039;&#039;&#039;ATO1&#039;&#039;&#039; section stores attribute offsets.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || Char[5] || &#039;&#039;&#039;Section magic&#039;&#039;&#039;. Always &#039;&#039; ATO1&#039;&#039; in ASCII.&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || UInt32 || &#039;&#039;&#039;Section size&#039;&#039;&#039; (starting from 0x10).&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || Byte[8] || {{Unknown-left|&#039;&#039;&#039;Unknown&#039;&#039;&#039;. Always 0.}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== TSY1 ==&lt;br /&gt;
The &#039;&#039;&#039;TSY1&#039;&#039;&#039; section stores text style information.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || Char[5] || &#039;&#039;&#039;Section magic&#039;&#039;&#039;. Always &#039;&#039; TSY1&#039;&#039; in ASCII.&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || UInt32 || &#039;&#039;&#039;Section size&#039;&#039;&#039; (starting from 0x10).&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || Byte[8] || {{Unknown-left|&#039;&#039;&#039;Unknown&#039;&#039;&#039;. Always 0.}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Tools =&lt;br /&gt;
The following tools can handle MSBT files:&lt;br /&gt;
* [https://github.com/IcySon55/3DLandMSBTeditor/releases/tag/v0.9.7 MSBT Editor Reloaded], by IcySon55&lt;br /&gt;
&lt;br /&gt;
[[Category:3DS File Formats]]&lt;br /&gt;
[[Category:Switch File Formats]]&lt;br /&gt;
[[Category:Wii File Formats]]&lt;br /&gt;
[[Category:Wii U File Formats]]&lt;/div&gt;</summary>
		<author><name>LolHacksRule</name></author>
	</entry>
	<entry>
		<id>https://wiki.wexosmk.xyz/index.php?title=MSBT_(File_Format)&amp;diff=393</id>
		<title>MSBT (File Format)</title>
		<link rel="alternate" type="text/html" href="https://wiki.wexosmk.xyz/index.php?title=MSBT_(File_Format)&amp;diff=393"/>
		<updated>2024-06-09T07:48:03Z</updated>

		<summary type="html">&lt;p&gt;LolHacksRule: /* TXT2 */ Tag Group info&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Under-construction}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MSBT&#039;&#039;&#039; (&#039;&#039;&#039;M&#039;&#039;&#039;essage&#039;&#039;&#039;S&#039;&#039;&#039;tudio &#039;&#039;&#039;B&#039;&#039;&#039;inary &#039;&#039;&#039;T&#039;&#039;&#039;ext) is a text file format used in many [[Nintendo]] games such as [[Super Mario Galaxy 2]], [[Mario Kart 8]] and [[Super Mario Odyssey]], as well as in some mobile games. Though it has been around for many years, the content has changed and new sections have replace older ones.&lt;br /&gt;
&lt;br /&gt;
= File Format =&lt;br /&gt;
== Header ==&lt;br /&gt;
The file starts with the following header:&lt;br /&gt;
{{MSB Header|MsgStdBn}}&lt;br /&gt;
&lt;br /&gt;
== LBL1 ==&lt;br /&gt;
The &#039;&#039;&#039;LBL1&#039;&#039;&#039; section stores messages using key strings (labels). Each message has a unique key name which is used to access an message. The section has the following layout:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || Char[4] || &#039;&#039;&#039;Section magic&#039;&#039;&#039;. Always &#039;&#039;LBL1&#039;&#039; in ASCII.&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || UInt32 || &#039;&#039;&#039;Section size&#039;&#039;&#039; (starting from 0x10).&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || Byte[8] || {{Unknown-left|&#039;&#039;&#039;Unknown&#039;&#039;&#039;. Always 0.}}&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || Int32 || &#039;&#039;&#039;Number of [[#Label Entry|entries]]&#039;&#039;&#039;.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Label Entry ===&lt;br /&gt;
After the header comes the entries. Each entry has the following structure:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || Int32 || &#039;&#039;&#039;Number of labels&#039;&#039;&#039;.&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || UInt32 || &#039;&#039;&#039;Offset to an array of [[#Label|labels]]&#039;&#039;&#039;, relative to 0x10 in the [[#LBL1|LBL1 header]].&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Label ====&lt;br /&gt;
Each label has the following structure:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || Byte || &#039;&#039;&#039;Key string size&#039;&#039;&#039; (&#039;&#039;&#039;K&#039;&#039;&#039;).&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || String || &#039;&#039;&#039;Key string used to access this message&#039;&#039;&#039;. The string has the length &#039;&#039;&#039;K&#039;&#039;&#039; and is &#039;&#039;&#039;not&#039;&#039;&#039; null-terminated. The string is always stored in ASCII.&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 + &#039;&#039;&#039;K&#039;&#039;&#039; || Int32 || &#039;&#039;&#039;Message string&#039;&#039;&#039;, represented as an index into the &#039;&#039;&#039;[[#TXT2|TXT2 strings]]&#039;&#039;&#039;.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== NLI1 ==&lt;br /&gt;
The &#039;&#039;&#039;NLI1&#039;&#039;&#039; section stores messages using node IDs. Each message has a unique ID which is used by the game to get a specific message. The section has the following layout:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || Char[4] || &#039;&#039;&#039;Section magic&#039;&#039;&#039;. Always &#039;&#039;NLI1&#039;&#039; in ASCII.&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || UInt32 || &#039;&#039;&#039;Section size&#039;&#039;&#039; (starting from 0x10).&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || Byte[8] || {{Unknown-left|&#039;&#039;&#039;Unknown&#039;&#039;&#039;. Always 0.}}&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || Int32 || &#039;&#039;&#039;Number of entries&#039;&#039;&#039;.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Node ===&lt;br /&gt;
After the header comes the nodes. Each entry has the following structure:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || UInt32 || &#039;&#039;&#039;Node ID&#039;&#039;&#039;.&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || Int32 || &#039;&#039;&#039;Node string&#039;&#039;&#039;, represented as an index into the &#039;&#039;&#039;[[#TXT2|TXT2 strings]]&#039;&#039;&#039;.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== ATR1 ==&lt;br /&gt;
The &#039;&#039;&#039;ATR1&#039;&#039;&#039; section stores attribute data. It has the following structure:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || Char[4] || &#039;&#039;&#039;Section magic&#039;&#039;&#039;. Always &#039;&#039;ATR1&#039;&#039; in ASCII.&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || UInt32 || &#039;&#039;&#039;Section size&#039;&#039;&#039; (starting from 0x10).&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || Byte[8] || {{Unknown-left|&#039;&#039;&#039;Unknown&#039;&#039;&#039;. Always 0.}}&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || Int32 || &#039;&#039;&#039;Number of entries&#039;&#039;&#039;.&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || UInt32 || &#039;&#039;&#039;Entry size&#039;&#039;&#039; in bytes. The entry structure depends on the game.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ATR1 ARMS Entry ===&lt;br /&gt;
In ARMS each entry has the following structure:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || Byte || {{Unknown-left|&#039;&#039;&#039;Unknown&#039;&#039;&#039;}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ATR1 SMT Entry ===&lt;br /&gt;
In Super Mario Tour each entry has the following structure:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || Byte || {{Unknown-left|&#039;&#039;&#039;Unknown&#039;&#039;&#039;}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ATR1 SMG2 Entry ===&lt;br /&gt;
In Super Mario Galaxy 2 each entry has the following structure:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || Byte || {{Unknown-left|&#039;&#039;&#039;Unknown&#039;&#039;&#039;.}}&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || Byte || {{Unknown-left|&#039;&#039;&#039;Unknown&#039;&#039;&#039;.}}&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || Byte || &#039;&#039;&#039;Dialog type&#039;&#039;&#039;. 0 = Normal, 1 = Shout, 2 = Start when close, 3 = Start when anywhere&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || Byte || {{Unknown-left|&#039;&#039;&#039;Unknown&#039;&#039;&#039;.}}&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || UInt16 || {{Unknown-left|&#039;&#039;&#039;Unknown&#039;&#039;&#039;.}}&lt;br /&gt;
|-&lt;br /&gt;
| 0x06 || UInt16 || {{Unknown-left|&#039;&#039;&#039;Unknown&#039;&#039;&#039;. Usually 0xFFFF}}&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || UInt32 || &#039;&#039;&#039;String offset&#039;&#039;&#039;, relative to the 0x10 in the [[#ATR1|ATR1 header]]. Points to a null-terminated string.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ATR1 TLOZLA Entry ===&lt;br /&gt;
In The Legend of Zelda: Link&#039;s Awakening each entry has the following structure:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || UInt16 || {{Unknown-left|&#039;&#039;&#039;Unknown&#039;&#039;&#039;}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== TXT2 ==&lt;br /&gt;
The &#039;&#039;&#039;TXT2&#039;&#039;&#039; section contains text strings. It starts with the following structure:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || Char[4] || &#039;&#039;&#039;Section magic&#039;&#039;&#039;. Always &#039;&#039;TXT2&#039;&#039; in ASCII.&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || UInt32 || &#039;&#039;&#039;Section size&#039;&#039;&#039; (starting from 0x10).&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || Byte[8] || {{Unknown-left|&#039;&#039;&#039;Unknown&#039;&#039;&#039;. Always 0.}}&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || Int32 || &#039;&#039;&#039;Number of entries&#039;&#039;&#039;.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
After the TXT2 header, there are 32-bit unsigned offsets, containing the offsets to the strings. The strings can also contain tag groups to modify text and/or rendering consisting of this structure:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || UInt16 || &#039;&#039;&#039;Tag Group magic&#039;&#039;&#039; (0x0E00), 0x0F00 for ending (in newer software). &lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || UInt16 || &#039;&#039;&#039;Tag Index&#039;&#039;&#039;.&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || UInt16 || &#039;&#039;&#039;Tag Group Index&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| 0x06 || Uint16 || &#039;&#039;&#039;Tag Group size&#039;&#039;&#039;.&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || ... || &#039;&#039;&#039;Tag Group data&#039;&#039;&#039; (0 is System while others are application-specific)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== ATO1 ==&lt;br /&gt;
The &#039;&#039;&#039;ATO1&#039;&#039;&#039; section stores attribute offsets.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || Char[5] || &#039;&#039;&#039;Section magic&#039;&#039;&#039;. Always &#039;&#039; ATO1&#039;&#039; in ASCII.&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || UInt32 || &#039;&#039;&#039;Section size&#039;&#039;&#039; (starting from 0x10).&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || Byte[8] || {{Unknown-left|&#039;&#039;&#039;Unknown&#039;&#039;&#039;. Always 0.}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== TSY1 ==&lt;br /&gt;
The &#039;&#039;&#039;TSY1&#039;&#039;&#039; section stores text style information.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || Char[5] || &#039;&#039;&#039;Section magic&#039;&#039;&#039;. Always &#039;&#039; TSY1&#039;&#039; in ASCII.&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || UInt32 || &#039;&#039;&#039;Section size&#039;&#039;&#039; (starting from 0x10).&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || Byte[8] || {{Unknown-left|&#039;&#039;&#039;Unknown&#039;&#039;&#039;. Always 0.}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Tools =&lt;br /&gt;
The following tools can handle MSBT files:&lt;br /&gt;
* [https://github.com/IcySon55/3DLandMSBTeditor/releases/tag/v0.9.7 MSBT Editor Reloaded], by IcySon55&lt;br /&gt;
&lt;br /&gt;
[[Category:3DS File Formats]]&lt;br /&gt;
[[Category:Switch File Formats]]&lt;br /&gt;
[[Category:Wii File Formats]]&lt;br /&gt;
[[Category:Wii U File Formats]]&lt;/div&gt;</summary>
		<author><name>LolHacksRule</name></author>
	</entry>
</feed>