Difference between revisions of "MSBT file (Pikmin 3)"
(Added msbt.py. Also added the changes I needed to make to get this to work with Pikmin 3.) |
Untitled-1 (talk | contribs) (Documented how to change who's speaking in dialogue.) |
||
Line 3: | Line 3: | ||
== Tools == | == Tools == | ||
+ | * [https://github.com/IcySon55/3DLandMSBTeditor/ MSBT Editor Reloaded] | ||
* [https://gbatemp.net/threads/release-kuriimu-a-general-purpose-game-translation-toolkit-for-authors-of-fan-translations.452375/ Kuriimu] | * [https://gbatemp.net/threads/release-kuriimu-a-general-purpose-game-translation-toolkit-for-authors-of-fan-translations.452375/ Kuriimu] | ||
* [https://github.com/ObsidianX/3dstools/blob/master/msbt.py ObsidianX's msbt.py] (MSBT <-> JSON) | * [https://github.com/ObsidianX/3dstools/blob/master/msbt.py ObsidianX's msbt.py] (MSBT <-> JSON) | ||
Line 10: | Line 11: | ||
[[Category:File formats]] | [[Category:File formats]] | ||
[[Category:Pikmin 3]] | [[Category:Pikmin 3]] | ||
+ | |||
+ | ==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. | ||
+ | |||
+ | 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. | ||
+ | |||
+ | {| class="wikitable sortable" | ||
+ | ! Hex Value || Character Voice | ||
+ | |- | ||
+ | | <code>00</code> || Alph | ||
+ | |- | ||
+ | | <code>01</code> || Brittany | ||
+ | |- | ||
+ | | <code>02</code> || Charlie | ||
+ | |- | ||
+ | | <code>03</code> || Louie | ||
+ | |- | ||
+ | | <code>04</code> || Olimar | ||
+ | |- | ||
+ | | <code>05</code> || S.S. Drake | ||
+ | |} | ||
+ | |||
+ | {| class="wikitable sortable" | ||
+ | ! Hex Value || Character Icon | ||
+ | |- | ||
+ | | <code>00</code> || Alph, Neutral | ||
+ | |- | ||
+ | | <code>01</code> || Brittany, Neutral | ||
+ | |- | ||
+ | | <code>02</code> || Charlie, Neutral | ||
+ | |- | ||
+ | | <code>03</code> || Louie, Neutral | ||
+ | |- | ||
+ | | <code>04</code> || Olimar, Neutral | ||
+ | |- | ||
+ | | <code>05</code> || Alph, Shocked | ||
+ | |- | ||
+ | | <code>06</code> || Brittany, Shocked | ||
+ | |- | ||
+ | | <code>07</code> || Charlie, Shocked | ||
+ | |- | ||
+ | | <code>08</code> || Louie, Shocked | ||
+ | |- | ||
+ | | <code>09</code> || Olimar, Shocked | ||
+ | |- | ||
+ | | <code>0A</code> || Alph, Happy | ||
+ | |- | ||
+ | | <code>0B</code> || Brittany, Happy | ||
+ | |- | ||
+ | | <code>0C</code> || Charlie, Happy | ||
+ | |- | ||
+ | | <code>0D</code> || Louie, Happy | ||
+ | |- | ||
+ | | <code>0E</code> || Olimar, Happy | ||
+ | |- | ||
+ | | <code>0F</code> || Alph, Worried | ||
+ | |- | ||
+ | | <code>10</code> || Brittany, Worried | ||
+ | |- | ||
+ | | <code>11</code> || Charlie, Worried | ||
+ | |- | ||
+ | | <code>12</code> || Louie, Worried | ||
+ | |- | ||
+ | | <code>13</code> || Olimar, Worried | ||
+ | |- | ||
+ | | <code>14</code> || Alph, Determined | ||
+ | |- | ||
+ | | <code>15</code> || Brittany, Determined | ||
+ | |- | ||
+ | | <code>16</code> || Charlie, Determined | ||
+ | |- | ||
+ | | <code>17</code> || Louie, Determined | ||
+ | |- | ||
+ | | <code>18</code> || Olimar, Determined | ||
+ | |- | ||
+ | | <code>19</code> || No icon is displayed. | ||
+ | |- | ||
+ | | <code>1A</code> || S.S. Drake | ||
+ | |} |
Revision as of 04:22, 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 changeensure_ascii=False
toensure_ascii=True
. - In addition, in order for it to work with Pikmin 3, find the line with
substrings.append
, and change the line tosubstrings.append(string.decode('utf-16-%s' % ('-le' if self.order == '<' else '-be'), 'replace'))
.
- 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
Changing Who Speaks in Dialogue
Before most lines of dialogue in each MSBT entry, 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 |