User:CanvasK/Trophy info

(Note: the following information can be applied to other parts of the games. However, trophies were the focus of this research and as such it refers to trophy-specific topics)

(To do: Note ASCII alterations and more detail for Brawl and 4)

Melee
The trophy text in Melee comes in 4 parts (not official names, chosen for simplicity): Name, Description, Title1, and Title2. "Name" is simply the name of that trophy (e.g. Mario). "Description" is the bulk of the text where the story, mechanics, origin, etc. are laid out. "Title1" and "Title2" refer to the box below the Description where games or moves are listed, with the first line being "Title1" and the second being "Title2".

The Name list contains all of the names and separates them with 0x00. Description, Title1, and Title2 are all preceded by 0x00010C, followed by 3 bytes which denote that text's RGB value, the text itself, then ended with 0x0D. There are only 4 sets of RGB values used in the game: DC FF DC, FF C8 FF , C8 C8 FF , FF FF FF. Text does not naturally wrap when reaching the edge of the screen, instead 0x03 (need to verify PAL) is inserted wherever a wrap would be performed.

The encoding for the text differs depending on which version of the game is used. In PAL releases effectively use 1-byte ASCII with a couple unused characters being replaced with é, °, and Ⅱ. The NTSC releases use what appears to be a custom 2-byte encoding (I couldn't find an encoding that matched), as NTSC includes both English and Japanese and would exceed 1 byte (256). The characters for NTSC and their byte representation are below. There is no character data between 0x212F to 0x3FFF and are denoted in red below. 0x4001 changes depending on if it is used in a Name (〇) or description (°). 0x4002 (Ⅱ) only has a character when used in Name and returns garbage data when used in Description, Title1, and Title2.

In revision 1.0 NTSC-U, the Name list is followed by 12 instances of "99", the numbers 0-9 followed by a space, then the letter "x". In revisions 1.01 and 1.02 NTSC-U the 12 instances of "99" is instead 12 instances of "ééé". The Name list is the followed by text that uses 0x1A for spaces and reads "The class of trophies you can collect has increased." Afterwards there is a large chunk of non-text data before reaching the Description list.

The first entries in each list are (at least in all NTSC-U revisions, PAL hasn't been checked) is "Dummy", "None", "Title", "Title"; followed by "Mario", "Known worldwide as Mr. Nintendo...", "Donkey Kong", "Arcade 1981"; and so on. The Name list has 6 entries after GCN for "Dummy", "Capt. Falcon", "Proximity Mine", "Cloaking Device", "Topi", and "Ryota Hayami". After the Title2 list is text data for the 6 entries at the end of the Name list, following the same order of Description, Title1, Title2.

Brawl
The NTSC-U release of Brawl no longer includes the Japanese text, allowing it and PAL to both use a slightly modified version of ASCII. For text wrapping, 0x0A (Line Feed) is used.

Description text is preceded by 7 bytes. The first byte is defaulted 0x12 and controls the typeface; most values will causes errors or crashes, only a few are valid. The next 2 bytes are 0x02 0x0C, their purpose isn't known and changing them tends to cause errors or crashes. The next 4 bytes control RGBA, however every trophy uses E6 E6 E6 FF. The Description text then follows and is ended with 0x13.

Smash 4
The encoding for Smash 4 is little endian UTF-16. Like prior games the text wrapping is encoded in the text, using 0x0A00.