Game Text Editing

This tutorial will teach you how to edit the text in New Super Mario Bros. Wii.

Tutorial written by MandyIGuess.

Requirements
- BMG Tool (part of CTools, can be downloaded here)

- A method of testing NSMBW mods (Riivolution, Dolphin Emulator, etc)

Step 1
Locate the New Super Mario Bros. Wii  file from the appropriate folder on the disc:

(if you have the US/NTSC-U region of the game, and your language is English)

(if you have the US/NTSC-U region of the game, and your language is French)

(if you have the US/NTSC-U region of the game, and your language is Spanish)

(if you have the European/PAL region of the game, and your language is English)

(if you have the European/PAL region of the game, and your language is French)

(if you have the European/PAL region of the game, and your language is German)

(if you have the European/PAL region of the game, and your language is Italian)

(if you have the European/PAL region of the game, and your language is Spanish)

(if you have the Japanese/NTSC-J region of the game)

(if you have the Korean region of the game)

(if you have the Taiwanese region of the game)

(if you have the Chinese region of the game)

Step 2
Open  in a tool such as BrawlBox, BrawlCrate, or SZS Explorer (SZS Explorer can directly open   by right-clicking on it, then going to , which saves the need to extract the file). Then, extract  by right-clicking on the file. Save it somewhere on your PC, then open it with BMG Tool.

Step 3
Once you've opened  in BMG Tool, you should see something akin to the image below. If so, you've successfully managed to open New Super Mario Bros. Wii's game text file. You can now edit it however you wish to.

= General Information = General information such as commonly edited text entries in the game text file, and information about flags in the BMG.

Commonly Edited Message IDs
These are message IDs that I believe are the ones that are the most commonly edited. I've put them here for your convenience.

BMG Flags Information
Escape sequences are marked in CTools by "\", and they all follow the schema \0XYYYYYZZZZ. Their job is to mostly load specific characters from pictureFont_200_RGBA8.brfnt, while some particular ones alter the text in different ways. The values below are tested with both the original game and NewerSMBW, but can be different if the font characters used by the values are edited.

X Values :

- 8 is used when the Y variable has different outcomes that depend on the Z value.

- 6 is used when the Y variable has no Z values. In this case, ZZZZ is to be omitted.

Y Values :

- 010000 prints out a number. The Z value control how it's manipulated : 0000 leaves it unchanged, 0001 subtracts one from it and 0002 adds one.

- 010001, 01000E, 01000F and 010010 all print an unknown variable. No Z value is present.

- 010002 either prints the "1" or the "2" button. Z value 0000 prints the "2" button, while 0100 prints the "1" button.

- 010003 also prints out an unknown variable, but a different one. No Z value is present, as well.

- 010004 prints a D-Pad. No Z value.

- 010005 prints level icons. See the spoiler below for the Z values :

- 0000 : Castle

- 0100 : Tower

- 0200 : Ghost House

- 0300 : Cannon

- 0400 : Airship

- 0500 : Red Toad House (Shop in Newer)

- 0600 : Starting Node (Horizontal)

- 0700 : Starting Node (Vertical)

- 0800 : Empty Point (the ones used in intersections on the NSMBW maps)

- 0900 : Peach's Castle

- 0A00 : Green Toad House (Music House in Newer)

- 0B00 : Yellow Toad House (Challenge House in Newer)

- 0C00 : Bowser's Castle

- 0D00 : Ambush (Toad Balloon)

- 0E00 : Anchor

- 010006 is yet another unknown variable. No Z value is present.

- 010007 prints some buttons. Z values are : 0000 prints the "C" or "A" button (depending on the controller), 0100 prints the "-" button, 0200 prints the "+" button and 0300 prints the "1" or "B" button (also depending on the controller).

- 010008 prints other buttons. Z values here are : 0000 prints the "Home" button, 0100 prints the "-" button, 0200 prints the "+" button, 0300 prints the "A" button, 0400 prints the "B" button and 0500 prints the "Z" button.

- 010009 makes all the text after it blank. The Z value seems to control the placement of the remaining text : 0000 centers it as if the invisible text isn't there, while 0100 doesn't shift the text.

- 01000A prints either the "1" or "2" button. Z Value 0000 prints the "1" button, while value 0001 prints the "2" button.

- 01000B is another unknown variable. No Z values are present.

- 01000D is a weird value, as it seems to print random sequences of numbers based on the message ID the sequence is put in.

- 010011 is yet another unknown variable. No Z values.

- 010012 prints a Question Block. No Z values.

- 010013 prints a Red Block. Z value 0000 prints a block outline (in Newer it's a blue block), while 0100 will print a full block.

There are also special escape sequences, not following the above schema :

- \08FF000100XX changes the size of the text next to it, according to the XX value inserted.

- \x0000 shows the world the player's currently in. It may cause weird effects if used outside of the map/level UIs.