Of all the features included, one of the most highly anticipated inclusions stands out: 15 costumes for every character and costume configurations that allow up to 50 each. We are beyond excited to share this with everyone, as the customization potential for this technical achievement is massive.
Costume Organization Philosophy
There are a few exceptions to the 00, 20, 30 rule stated above. Mr. Game & Watch’s costumes are controlled by color animations within his single fighter file. This is unchanged from all previous Brawl and Project M builds. Pikachu and Jigglypuff have unique models for each of their 15 costumes and thus were labeled 00-14 for simplicity sake. Samus and Zero Suit Samus have six alternate costumes each instead of the typical two or three. Samus does have external effects, so a compromise between ease of use and evenly spreading the effects was made. The standard costumes occupy the first 20 IDs, as normal. The rest of the costumes are each given five slots, each costume group begin with 0 or 5 just like all the other characters. That leaves five slots left over at the end, which use the effects of the last costume, the PED Suit. Zero Suit Samus’ costumes need to match Samus’, and therefore their files are set up identically. Wario’s first two costume sets are unchanged from Brawl, and keeping them on the disc to save file space was prioritized over aligning them with the philosophy of the other characters. Here is a Google Sheet with all of the costumes and their IDs.
There are certain external costume slot dependent effects controlled by the moveset (aka, the PSA). Some examples are whether Mario throws fireballs or pills, which sword Ganondorf uses, and the sparkle effect in the entrance for shiny Pokemon. Many of the fighter’s PSAs have been edited to provide larger ranges of costume slots for effects, even if Legacy TE doesn't use all the slots. For example, Mario will use pills instead of fireballs for any costume from 20-29 even though only 20-25 are used by Legacy TE. This leaves four slots open where Mario will use pills without needing PSA edits, making it easy to add new Doctor Mario costumes. While this will not inhibit adding new costumes, these effects may thematically clash with the costumes being added. For more information please see the LegacyTE_PSA_edits text file in the fighter folder.
The final slot dependent concern is etc files, which have two different types of functions depending on the character. Etc files store a character’s articles, or projectiles. Link, Sonic, and ROB are the characters in Legacy TE that make use of slot dependent etc files. Link loads different weapons depending on if it’s the Twilight Princess model or the Ocarina of Time model. Link’s etc files function in groups of 10, so every 10 costumes will use the same set of weapons. These can be changed just by renaming the etc file. Sonic and ROB were specifically modified to load GFX banks from costume specific etc files. Sonic loads different shoe blur effects, and ROB loads different arm rotor blur effects from these files. In order to edit these files for Sonic and R.O.B., both the name of the etc file and the name of the effects arc within the etc file (ef_characterXID) need to match the costume ID.
File Size Limits
If you have the same model with the same pattern, just in different colors, use color smash. Examples are Scarlett Marth and Waluigi Mario as shown in the Legacy TE 2.5 costume replacement tutorial video.
Do not color smash if it’s the same model with different patterns. An example is Snake’s default costume. They’re all the same model, but since the patterns are completely different, color smashing wouldn’t work well. Legacy TE did have to break this rule on a few occasions, such as with the Pikachu examples from earlier, but this was only done when no other options got around the file size limits.
If you need to interrupt a group of color smashed textures, whether by deleting or replacing a texture, you need to be aware of the shares data parameter for the texture being modified. If it is a parent texture, this value will be false. Before modifying any parent texture, you need to change this parameter to false for the texture immediately above the texture to be modified. If it is a child texture this value will be true. It needs to be set to false and moved outside of the color smash group before modifying. This ensures no corruption happens to the other textures within the color smash group.