Difference between revisions of "MSBT file (Pikmin 3)"

From Pikmin Technical Knowledge Base
Jump to navigation Jump to search
(Documented how to change who's speaking in dialogue.)
Line 14: Line 14:
 
==Changing Who Speaks in Dialogue==
 
==Changing Who Speaks in Dialogue==
  
Before most lines of dialogue in each MSBT entry, there are 10 bytes of hex starting with <code>0E 00 17 00</code> or something similar. Of these ten bytes, the last two bytes (the two bytes before the actual dialogue text) determine the character saying this dialogue. The second to last byte determines the voice used, while the last byte determines the icon used.
+
Before most lines of dialogue in <i>Pikmin 3</i>'s MSBT entries, there are 10 bytes of hex starting with <code>0E 00 17 00</code> or something similar. Of these ten bytes, the last two bytes (the two bytes before the actual dialogue text) determine the character saying this dialogue. The second to last byte determines the voice used, while the last byte determines the icon used.
  
 
If MSBT Editor Reloaded (linked above) is used to edit a given MSBT file, the hex values before these lines of dialogue can be directly edited via its hex editor on the bottom right of the window.
 
If MSBT Editor Reloaded (linked above) is used to edit a given MSBT file, the hex values before these lines of dialogue can be directly edited via its hex editor on the bottom right of the window.

Revision as of 04:24, 10 March 2023

To do: Document the file format.

.msbt files contain the strings in Pikmin 3. They can be found in the /content/*/system/message.szs files. For a list of MSBT files in the game, and what type of strings they usually contain, see MSBT file list.

Tools

  • MSBT Editor Reloaded
  • Kuriimu
  • ObsidianX's msbt.py (MSBT <-> JSON)
    • To use this tool with Hey! Pikmin, you will need to first change the parameters in JSON's text dumper to force ASCII. Find the line with json.dump, and change ensure_ascii=False to ensure_ascii=True.
    • In addition, in order for it to work with Pikmin 3, find the line with substrings.append, and change the line to substrings.append(string.decode('utf-16-%s' % ('-le' if self.order == '<' else '-be'), 'replace')).

Changing Who Speaks in Dialogue

Before most lines of dialogue in Pikmin 3's MSBT entries, there are 10 bytes of hex starting with 0E 00 17 00 or something similar. Of these ten bytes, the last two bytes (the two bytes before the actual dialogue text) determine the character saying this dialogue. The second to last byte determines the voice used, while the last byte determines the icon used.

If MSBT Editor Reloaded (linked above) is used to edit a given MSBT file, the hex values before these lines of dialogue can be directly edited via its hex editor on the bottom right of the window.

Hex Value Character Voice
00 Alph
01 Brittany
02 Charlie
03 Louie
04 Olimar
05 S.S. Drake
Hex Value Character Icon
00 Alph, Neutral
01 Brittany, Neutral
02 Charlie, Neutral
03 Louie, Neutral
04 Olimar, Neutral
05 Alph, Shocked
06 Brittany, Shocked
07 Charlie, Shocked
08 Louie, Shocked
09 Olimar, Shocked
0A Alph, Happy
0B Brittany, Happy
0C Charlie, Happy
0D Louie, Happy
0E Olimar, Happy
0F Alph, Worried
10 Brittany, Worried
11 Charlie, Worried
12 Louie, Worried
13 Olimar, Worried
14 Alph, Determined
15 Brittany, Determined
16 Charlie, Determined
17 Louie, Determined
18 Olimar, Determined
19 No icon is displayed.
1A S.S. Drake