Difference between revisions of "Nintendo Badge Arcade/MSBT"

From 3dbrew
Jump to navigation Jump to search
(Added page)
 
m (Update Action ID => Animation ID)
 
(4 intermediate revisions by 2 users not shown)
Line 1: Line 1:
Badge Arcade plays actions and formats text with what I like to call, “tags”. Tags are a collection of hex bytes, and these tags can be placed inside of text to color or scale text, and play animations on Badge Bunny.
+
Nintendo Badge Arcade uses <code>MSBT</code> files for Badge Bunny's dialog and animations
  
These tags are used for the MSBT text inside of <code>boss.sarc</code>.
+
This page will only cover <code>MSBT</code> control tags specific to Nintendo Badge Arcade. For more details on <code>MSBT</code> files in general, refer to https://github.com/kinnay/Nintendo-File-Formats/wiki/MSBT-File-Format and https://mk8.tockdom.com/wiki/MSBT_(File_Format)
  
<span id="tag-format"></span>
+
<span id="location"></span>
== Tag Format ==
+
== Location ==
  
{| class="wikitable"
+
Nintendo Badge Arcade's <code>MSBT</code> files are loaded using <code>BOSS</code>. A large <code>SARC</code> archive file is downloaded which holds all the games data. Inside this <code>SARC</code> file, the <code>MSBT</code> files are stored in <code>/message/boss_REGION/LANG/slotID</code>
|-
 
! Begin Format Tag
 
! Type
 
! Begin Data
 
! Data
 
! End Data and Tag
 
|-
 
| <code>0E 00 00 00</code>
 
| <code>03</code>
 
| <code>00</code>
 
| <code>02 00 78</code>
 
| <code>00 / FF / CD</code>
 
|}
 
  
Tags have a 4 byte section to begin the tag. The 3rd byte will be 02 if it is an action tag.
+
<span id="format"></span>
 +
== Format ==
  
This is followed by what type of tag it is, if it’s a text format tag.
+
<code>MSBT</code> control tags have the following format
  
A 00 byte then follows to begin the tag data. This data continues until it hits either a 00, FF, or CD byte depending on what type of tag it is.
+
{|class="wikitable"
 
+
|-
<span id="tags"></span>
+
! Offset !! Size !! Description
== Tags ==
+
|-
 
+
| 0x0 || 0x2 || '''Magic'''. Always '''0E00'''.
These are the tags that Badge Arcade uses to format.
 
 
 
{| class="wikitable"
 
 
|-
 
|-
! Tag
+
| 0x2 || 0x2 || Tag group ID
! Description
 
 
|-
 
|-
| <code>0E 00 00 00 03 00 04 00 RR GG BB FF</code>
+
| 0x4 || 0x2 || Tag ID
| Colors text using the RR GG BB bytes as RGB hex.
 
 
|-
 
|-
| <code>0E 00 00 00 02 00 02 00 FS 00</code>
+
| 0x6 || 0x2 || Data size
| Changes the font scale using the FS byte.
 
 
|-
 
|-
| <code>0E 00 02 00 00 00 04 00 AC TI ON CD</code>
+
| 0x8 || Data size || Data
| Changes Badge Bunny’s action using the AC TI ON bytes.
 
 
|}
 
|}
  
The color and font scale tags format everything after them, unless an exit tag resets it. Action tags are to be placed at the end of a message.
+
<span id="tag-groups"></span>
 
+
== Tag Groups ==
<span id="exit-tags"></span>
 
== Exit Tags ==
 
  
Exit tags are simply normal tags that set the already customized values back to defaults. They are exactly like normal tags, and are provided for reference. Exit tags are not necessary if you do not want to unformat the text at any point during the message.
+
Nintendo Badge Arcade uses the following known tag groups:
  
{| class="wikitable"
+
{|class="wikitable"
 
|-
 
|-
! Exit Tag
+
! Tag group ID !! Description
! Description
 
 
|-
 
|-
| <code>0E 00 00 00 03 00 04 00 00 00 00 FF</code>
+
| 2 || Badge Bunny (?)
| Changes text to black.
 
|-
 
| <code>0E 00 00 00 02 00 02 00 64 00</code>
 
| Changes font scale to 64, the default.
 
 
|}
 
|}
  
If an exit tag is at the end of a message, an action tag MUST be provided, otherwise the game will read the exit tag as an action, which could cause problems.
+
<span id="tags"></span>
 +
== Tags ==
 +
 
 +
The following is an incomplete list of the tag groups tags, with names describing each tag type
  
<span id="recommended-color-values"></span>
+
<span id="badge-bunny"></span>
== Recommended Color Values ==
+
=== Badge Bunny (?) ===
  
These values are recommended for text coloration, as it is what official text is colored as. These are '''''not''''' restrictions.
+
Tag group ID <code>2</code>
  
{| class="wikitable"
+
{|class="wikitable"
|-
 
! Color
 
! Red
 
! Green
 
! Blue
 
 
|-
 
|-
| Hex
+
! Tag ID !! Name !! Data format
| <code>#FF0000</code>
 
| <code>#009B00</code>
 
| <code>#0000FF</code>
 
 
|-
 
|-
| Note
+
| 0x0 || Play Action || Action ID. See below for details
| Used for general highlighting,<br>and game names in the Miiverse Gallery.
 
| Rarely used, but mainly for the Miiverse Gallery.
 
| Usually used for character names,<br>and themes in the Miiverse Gallery.
 
 
|}
 
|}
  
<span id="actions"></span>
+
<span id="badge-bunny-actions"></span>
== Actions ==
+
==== Badge Bunny Actions ====
  
Actions are animations that play on Badge Bunny when he says the current message. If there are multiple action tags, only the last one will play. If there is '''no''' action tag, a default nodding animation will play.
+
The following is an incomplete list of the action datas, with names describing each, and a preview of their animations. They are in no particular order.
  
An incomplete list of the most common actions is below, with names describing them, and a GIF preview of the animation. They are in no particular order.
+
{|class="wikitable"
 
+
|-
You can substitute these into the ACTION bytes of the action tag.
+
! Action ID !! Name !! Preview
{| class="wikitable"
+
|-
 +
| <code>121414CD</code> || Flames || https://i.imgur.com/XJOXecm.gif
 +
|-
 +
| <code>111313CD</code> || Pounce || https://i.imgur.com/yF5kIhz.gif
 +
|-
 +
| <code>00302ECD</code> || Shocked || https://i.imgur.com/yUopyml.gif
 
|-
 
|-
! Action
+
| <code>003432CD</code> || Disappointed || https://i.imgur.com/Gg71ww3.gif
! Hex
 
! Preview
 
 
|-
 
|-
| Flames
+
| <code>030505CD</code> || Shake My Hand || https://i.imgur.com/0koci1z.gif
| <code>12 14 14</code>
 
| https://i.imgur.com/XJOXecm.gif
 
 
|-
 
|-
| Pounce
+
| <code>181F1FCD</code> || Chop Explain || https://i.imgur.com/usfbqcq.gif
| <code>11 13 13</code>
 
| https://i.imgur.com/yF5kIhz.gif
 
 
|-
 
|-
| Shocked
+
| <code>002020CD</code> || Laugh (Small) || https://i.imgur.com/eLgzpfm.gif
| <code>00 30 2E</code>
 
| https://i.imgur.com/yUopyml.gif
 
 
|-
 
|-
| Disappointed
+
| <code>192121CD</code> || Laugh (Slapping) || https://i.imgur.com/YR47psp.gif
| <code>00 34 32</code>
 
| https://i.imgur.com/Gg71ww3.gif
 
 
|-
 
|-
| Shake My Hand
+
| <code>002828CD</code> || Head Shake || https://i.imgur.com/OUbeKS5.gif
| <code>03 05 05</code>
 
| https://i.imgur.com/0koci1z.gif
 
 
|-
 
|-
| Chop Explain
+
| <code>1D2727CD</code> || Clap Explain || https://i.imgur.com/tCnWOdJ.gif
| <code>18 1F 1F</code>
 
| https://i.imgur.com/usfbqcq.gif
 
 
|-
 
|-
| Laugh (Small)
+
| <code>020404CD</code> || Awkward || https://i.imgur.com/jO6Mlfo.gif
| <code>00 20 20</code>
 
| https://i.imgur.com/eLgzpfm.gif
 
 
|-
 
|-
| Laugh (Slapping)
+
| <code>003937CD</code> || Flushed || https://i.imgur.com/ue2vopA.gif
| <code>19 21 21</code>
 
| https://i.imgur.com/YR47psp.gif
 
 
|-
 
|-
| Head Shake
+
| <code>001B1BCD</code> || Shimmer || https://i.imgur.com/PotZ3LP.gif
| <code>00 28 28</code>
 
| https://i.imgur.com/OUbeKS5.gif
 
 
|-
 
|-
| Clap Explain
+
| <code>000000CD</code> || Arms Crossed || https://i.imgur.com/G7VYCsu.gif
| <code>1D 27 27</code>
 
| https://i.imgur.com/tCnWOdJ.gif
 
 
|-
 
|-
| Awkward
+
| <code>001818CD</code> || Clapping || https://i.imgur.com/fopecNR.gif
| <code>02 04 04</code>
 
| https://i.imgur.com/jO6Mlfof.gif
 
 
|-
 
|-
| Flushed
+
| <code>1E2A2ACD</code> || Right Hand Slap || https://i.imgur.com/fnICcPG.gif
| <code>00 39 37</code>
 
| https://i.imgur.com/ue2vopA.gif
 
 
|-
 
|-
| Shimmer
+
| <code>171D1DCD</code> || Music Note Burst || https://i.imgur.com/QXchrzO.gif
| <code>00 1B 1B</code>
+
|}
| https://i.imgur.com/PotZ3LP.gif
+
 
 +
<span id="recommended-color-values"></span>
 +
== Recommended Color Values ==
 +
 
 +
These values are recommended for text coloration, as it is what official text is colored as. These are '''''not''''' restrictions
 +
 
 +
Format is RGBA. Alpha is ignored by Nintendo Badge Arcade and is always set to <code>FF</code>
 +
 
 +
{|class="wikitable"
 
|-
 
|-
| Arms Crossed
+
! Color !! Value !! Note
| <code>00 00 00</code>
 
| https://i.imgur.com/G7VYCsu.gif
 
 
|-
 
|-
| Clapping
+
| Red || <code>FF0000FF</code> || Used for general highlighting,<br>and game names in the Miiverse Gallery.
| <code>00 18 18</code>
 
| https://i.imgur.com/fopecNR.gif
 
 
|-
 
|-
| Right Hand Slap
+
| Green || <code>009B00FF</code> || Rarely used, but mainly for the Miiverse Gallery.
| <code>1E 2A 2A</code>
 
| https://i.imgur.com/fnICcPG.gif
 
 
|-
 
|-
| Music Note Burst
+
| Blue || <code>0000FFFF</code> || Usually used for character names,<br>and themes in the Miiverse Gallery.
| <code>17 1D 1D</code>
 
| https://i.imgur.com/QXchrzO.gif
 
 
|}
 
|}
  

Latest revision as of 05:15, 25 January 2023

Nintendo Badge Arcade uses MSBT files for Badge Bunny's dialog and animations

This page will only cover MSBT control tags specific to Nintendo Badge Arcade. For more details on MSBT files in general, refer to https://github.com/kinnay/Nintendo-File-Formats/wiki/MSBT-File-Format and https://mk8.tockdom.com/wiki/MSBT_(File_Format)

Location[edit]

Nintendo Badge Arcade's MSBT files are loaded using BOSS. A large SARC archive file is downloaded which holds all the games data. Inside this SARC file, the MSBT files are stored in /message/boss_REGION/LANG/slotID

Format[edit]

MSBT control tags have the following format

Offset Size Description
0x0 0x2 Magic. Always 0E00.
0x2 0x2 Tag group ID
0x4 0x2 Tag ID
0x6 0x2 Data size
0x8 Data size Data

Tag Groups[edit]

Nintendo Badge Arcade uses the following known tag groups:

Tag group ID Description
2 Badge Bunny (?)

Tags[edit]

The following is an incomplete list of the tag groups tags, with names describing each tag type

Badge Bunny (?)[edit]

Tag group ID 2

Tag ID Name Data format
0x0 Play Action Action ID. See below for details

Badge Bunny Actions[edit]

The following is an incomplete list of the action datas, with names describing each, and a preview of their animations. They are in no particular order.

Action ID Name Preview
121414CD Flames https://i.imgur.com/XJOXecm.gif
111313CD Pounce https://i.imgur.com/yF5kIhz.gif
00302ECD Shocked https://i.imgur.com/yUopyml.gif
003432CD Disappointed https://i.imgur.com/Gg71ww3.gif
030505CD Shake My Hand https://i.imgur.com/0koci1z.gif
181F1FCD Chop Explain https://i.imgur.com/usfbqcq.gif
002020CD Laugh (Small) https://i.imgur.com/eLgzpfm.gif
192121CD Laugh (Slapping) https://i.imgur.com/YR47psp.gif
002828CD Head Shake https://i.imgur.com/OUbeKS5.gif
1D2727CD Clap Explain https://i.imgur.com/tCnWOdJ.gif
020404CD Awkward https://i.imgur.com/jO6Mlfo.gif
003937CD Flushed https://i.imgur.com/ue2vopA.gif
001B1BCD Shimmer https://i.imgur.com/PotZ3LP.gif
000000CD Arms Crossed https://i.imgur.com/G7VYCsu.gif
001818CD Clapping https://i.imgur.com/fopecNR.gif
1E2A2ACD Right Hand Slap https://i.imgur.com/fnICcPG.gif
171D1DCD Music Note Burst https://i.imgur.com/QXchrzO.gif

Recommended Color Values[edit]

These values are recommended for text coloration, as it is what official text is colored as. These are not restrictions

Format is RGBA. Alpha is ignored by Nintendo Badge Arcade and is always set to FF

Color Value Note
Red FF0000FF Used for general highlighting,
and game names in the Miiverse Gallery.
Green 009B00FF Rarely used, but mainly for the Miiverse Gallery.
Blue 0000FFFF Usually used for character names,
and themes in the Miiverse Gallery.

Examples[edit]

Below are raw hex blocks of example messages, and what they appear as.

Color Example[edit]

Color Example

4E 00 6F 00 72 00 6D 00 61 00 6C 00 20 00 0E 00 
00 00 03 00 04 00 FF 00 00 FF 52 00 65 00 64 00 
20 00 0E 00 00 00 03 00 04 00 00 9B 00 FF 47 00 
72 00 65 00 65 00 6E 00 20 00 0E 00 00 00 03 00 
04 00 00 00 FF FF 42 00 6C 00 75 00 65 00 00 00

Font Scale Example[edit]

FS Example

44 00 65 00 66 00 61 00 75 00 6C 00 74 00 20 00 
0E 00 00 00 02 00 02 00 74 00 53 00 69 00 7A 00 
65 00 20 00 37 00 34 00 20 00 0E 00 00 00 02 00 
02 00 54 00 53 00 69 00 7A 00 65 00 20 00 35 00 
34 00 20 00 0E 00 00 00 02 00 02 00 34 00 53 00 
69 00 7A 00 65 00 20 00 33 00 34 00 00 00