These are codes that I made once I started learning how to make my own/alter/adapt codes for the SSBB Decade project. All of them are either made for vBrawl or ported from P:M/P+ to vBrawl.
Quote
Instant fall from respawn plat [br3compactor] * 04B88F7C 00000000
Never fall from respawn plat until you move [br3compactor] * 04B88F7C 7f800000
Never drown or go into flailing while swimming [br3compactor] * 04B88FA8 7f800000
All stages use vBrawl Camera Speed [DukeItOut, br3compactor] * C209D0C0 00000002 * 3D803F80 618C0000 * 918300B8 00000000
A few comments:
KJP helped me a lot with troubleshooting the fourth code as I was porting it so he is credited as well. Both the fourth and fifth base codes are by DukeItOut, my changes are the necessary values to fulfill a different goal.
It's been a little over ten years since Brawl was released. It's also been little over ten years since it started to be modded. And even after all this time and all the mods, some people just don't want it to be like Melee 2.0. Or like anything else really. They just want it to have the game fit to what they like.
When you boot vBrawl on your Wii/Dolphin, the default game seems to be very lacking in content and features when you consider all that can be made avaliable through mods. When you factor mods in, a lot can be possible, as long as you know what you're doing.
But what if you don't?
In this spirit, this project has been started. I present to you Brawl Decade (formerly Project Freezeproof).
Brawl Decade is a community-focused mod meant to be the definitive vBrawl experience. This mod has three main purposes, all of which can be summarized in four letter words.
The # 1 purpose of Brawl Decade is:
Brawl Decade has everything vBrawl had, with more.
- More characters. - More costumes. - More stages. - More music. - More customization. - More possibilities.
These shall be achieved through features like: - BrawlEX Characters - 50CP - Secret Costumes - Tag-specific costumes - JOJI's Stage Expansion System - New Tracklist System - Individual Pokémon and Sheik/ZSS on the CSS - Unlimited control settings - Debug mode And many more!
The # 2 purpose of Brawl Decade is:
Some people enjoy playing Brawl and like how it feels to play. Decade doesn't intend to turn it into any other game. It's straight up Brawl.
All gameplay mechanics from Brawl will be kept, and it will aim to play 1:1 as if you were playing legit, vanilla Brawl, except with tons and tons of more content. Even stuff that other modpacks tend to remove will be kept, so long as the game still feels the same to play.
Started with Ivysaur and it was knocked out? The next Pokémon will follow. The opponent decided to run towards you to punish a wrong move? Watch him trip away like it's 2008. If it's Brawl you love, it's Brawl you'll get.
The # 3 purpose of Brawl Decade is:
Brawl Decade should be the easiest to mod. You know, maybe you don't like the costumes that much. Maybe you're just not that into tripping. Maybe you just want Goku or Sans to be in there as well.
Brawl Decade will aim to have custom paths and custom file naming to allow the game to be the easiest version of Brawl to mod.
An example of what is intended for v 1.0:
Imagine you want to give Squirtle a costume to replace its first recolor. You can go to: SD:\Brawl\Fighter\Squirtle and add your Squirtle01.pac there.
Custom paths and custom file naming will allow even new users to mod their games with ease, making it so more and more people can enjoy the world of Brawl Hacking.
If you're interested in asking any questions, voice your opinions, leave suggestions or just want to discuss the mod concept and hopefully help, feel free to join! We have a Discord group and this thread will stay open for anyone interested in discussing the project!
Current Build state: v0.75 (second closed beta is out). First public release planned: December 2023
Credits to mawwwk for this tutorial (with a few edits by me)
Requirements: - Project+ for Dolphin or Wii - BrawlCrate (Download) - For Dolphin only: a virtual SD card editor such as ImDisk, WinImage, or VSDSync
Resources: - A list of Brawl song IDs can be found here (OpenSA), or here (Smash Mods Wiki) - Virtual SD Card guide - for help with modifying Dolphin builds. This guide won’t cover the process of mounting an sd.raw file for Dolphin. - VSDSync - a handy tool which syncs files from a local folder to a Dolphin virtual SD card with one click - Smash Custom Music Archive or Brawl Vault - for obtaining custom .brstm files
Before starting, you may want to enable default file associations in BrawlCrate. This can be done in Tools > Settings > File Associations. After setting these, you’ll be able to easily open the necessary files by double-clicking them in File Explorer.
Methods covered in this guide: 1. Adding existing Brawl tracks to an existing tracklist 2. Adding custom tracks to an existing tracklist 3. Creating a new tracklist, and assigning it to an alt stage slot
About BrawlCrate and tracklist (tlst) files BrawlCrate is a multi-purpose Brawl modding tool designed to open and edit various file formats used by Brawl and Brawl mods. The software is a continuation of the program BrawlBox, and is maintained and regularly updated by soopercool101. The version used in this guide is v0.32, though future versions should maintain compatibility and functionality.
TLST is a new file format designed by DukeItOut, and is utilized by Project+ to expand and modularize stage tracklist functionality. It allows for relatively unrestricted use of BRSTM files per stage, and doesn’t rely strictly on static song IDs. What this means is that BRSTM files can be named whatever you want! BRSTMs can also be shared between stages, and they don’t need to replace existing Brawl tracks to be read.
TLSTs can be used for any alt stage slot as well. For example, an R-alt stage can have a unique and separate tracklist from its respective base stage, or a separate tracklist for a base stage could be made to load by holding a button such as Start or Y.
TLST files also support a new Project+ feature: pinch mode. This allows for tracks to be switched in-game if one of these conditions are met: a) The time specified in SongSwitch is reached b) Two characters remain, and one is on their last stock (and below 100HP, if in Stamina mode) c) Playing a Special Versus match in Wild mode, 300% mode, or Bomb Rain mode d) Sudden Death occurs
BrawlCrate has functionality to add, reorder, modify, and delete tracks from any tracklist file with a simple-to-use UI. Viewing a tracklist entry in BrawlCrate will show the following data fields:
SongID - Used for calling Brawl tracks or distinguishing custom tracks. Explained in more detail below. SongDelay - Frames to wait before playing the song at match start. -1 can be used to play at the end of the countdown Volume - Set to 80 by default. Can range from 0 to 127. Tracks typically use values between 50 and 90. This is ignored for Brawl tracks Frequency - Set to 40 by default. Can range from 0 to 100, where higher means more likely to play. Can be changed in-game in My Music. SongFileName - Used to locate custom tracks inside the strm folder. Explained in more detail below. SongSwitch - Time remaining in a game to switch to another track (aka pinch mode), measured in frames (3600 = 1 minute) DisableStockPinch - If true, disables condition (b) listed above HiddenFromTracklist - Hides a song from the My Music list. Typically used for pinch mode tracks
TLSTs seem to have a file size limit of about 3.87 KB, which is equivalent to approximately 45 tracks. Exceeding this limit may cause issues in-game.
Method 1: Adding existing Brawl tracks to an existing tracklist For this example, we’ll add “Boss Battle Song 2” to Battlefield’s tracklist.
First, find the Project+/pf/sound/tracklist/ folder in the build, and open the Battlefield.tlst file in BrawlCrate.
Right-click the top-level entry that says “Battlefield” and select Add New Entry. The name of this entry is what will be shown as the song title in-game, so we could change it if we wanted to. I’ll enter this as “Boss Battle 2 (Brawl)” and create the entry.
The frequency value can be adjusted as well. Use any value between 0 and 100. The volume field only applies to custom tracks, so we won’t worry about it here yet.
The last step is to change the SongID value to load the track we want. A list of these can be found in the Resources section. The song ID for this track is 2825, so I’ll enter it as the last 4 digits of the SongID. Make sure to keep the 0x prefix. (0x00002825, in full) Feel free to reorder the tracks as you see fit, in any order, by dragging the song entries around.
Save the tlst file, copy it to the SD card if it’s not already copied, and boot up the game to find the newly added track!
Method 2: Adding custom tracks to an existing tracklist
This will assume you have a ready-to-add custom .brstm (song) file. In this guide, we’ll add “Redial” to Pokemon Stadium 2.
1. Open the tracklist file (Pokemon_Stadium_2.tlst) and add a new entry, like above. Name it however you want the track to be named. I’ll move my track to the top of the song list, out of preference.
About custom song IDs: Custom song IDs must always be 0x0000F followed by 3 hex digits. They must be unique among tracks on the same tracklist. Songs on different tracklists can share SongID values. There’s usually no need to change the automatically generated SongID that BrawlCrate assigns, so in this case, 0xF00B works fine.
About brstm file paths: Custom brstm files must be placed inside the pf/sound/strm folder. The brstm can be inside a sub-folder, or a sub-sub-folder… How you organize brstm files is up to you, though sorting them in folders by stage or by series is recommended.
2. Fill in SongFileName with the file path of the brstm. I have the brstm inside a folder named Pokemon Stadium 2. So the full file path for it is: SD:/Project+/pf/sound/strm/Pokemon Stadium 2/Redial.brstm
In SongFileName, I’ll enter Pokemon Stadium 2/Redial
If the SongFileName is valid, the music player will appear in BrawlCrate, and you should be able to successfully play back the song! *In some cases, such as if you rename a brstm file, you may need to save & re-open the tlst file for the music player to appear.
Save the tlst file, make sure all files are in-place on the SD card, and you’ll find your new track waiting for you in-game.
Method 3: Creating a new tracklist, and assigning it to an alt stage slot In this section, we’ll copy an already-made tracklist and add it to an alt slot. Our goal will be to play F-Zero music on the Final Destination R-alt.
1. Start by duplicating an existing tracklist, then rename it to something easy to recognize. In the tracklist folder, I’ll take the Death_Race.tlst and copy it. Since it’ll be used for the PM FD alt, I’ll rename the new copy to Final_Destination_PM.
2. Open the new tlst in BrawlCrate, and make whatever custom edits you’d like. These can be changed at any time. For the sake of having a unique tracklist here, I’ll replace the first 2 tracks with “Like a Snake” and “Silence.”
3. Currently, our tracklist file exists, but nothing is loading it. We’ll need to modify a .param file to load this tlst file. .param files control which stage and tracklist is loaded for a given button combination held, along with various other parameters. They can be found in pf/stage/stageinfo. Locate the .param for the stage you want to redirect the tracklist for, and open it in BrawlCrate. In our case, this is Final_Destination_R.param.
The TrackList field is currently loading Final_Destination.tlst, which is the same tlst as the base stage. We want to use the newly created tracklist, Final_Destination_PM.tlst. This is the only thing to change in this file.
Save the .tlst and .param files, and then we can test in-game! An easy way to verify the tracklist is to go to My Music, and select the stage using the appropriate button combination, as if you were loading the alt stage itself. For the custom FD tracklist, I’ll hold R while selecting FD.
Of course, we can also test by playing a match here.
1. Codes The codes are easily the most difficult part, but I've figured out the way it works so I'll try to make this as easy as possible. First, some replacements. For this, each section of code will have two locations that are edited. So you will need to replace 586150 with 547000 two times for this to work. There is also a third column that tells you what character you are editing (useful for later steps) Replace | With | Character 586150 | 547000 | Mario 5864B8 | 5470C8 | DK 586538 | 547190 | Link 586248 | 547258 | Samus 586260 | 547320 | ZSS 586198 | 5473E8 | Yoshi 586278 | 5474B0 | Kirby 5861B0 | 547578 | Fox 586398 | 547640 | Pikachu 5863F8 | 547708 | Luigi 586488 | 5477D0 | Falcon 5862A8 | 547898 | Ness 5864D0 | 547960 | Bowser 5864E8 | 547A28 | Peach 586440 | 547AF0 | Zelda 586458 | 547BB8 | Sheik 586428 | 547C80 | ICs 5862C0 | 547D48 | Marth 5863B0 | 547E10 | G&W 5861C8 | 547ED8 | Falco 5865B0 | 547FA0 | Ganon 455334 | 548388 | Wario <<<< THIS CODE IS WRONG, don't use it 5862F0 | 548068 | Meta Knight 5863C8 | 548130 | Pit 586308 | 5481F8 | Olimar 5860D8 | 5482C0 | Lucas 5864A0 | 548388 | Diddy 5863E0 | 548450 | Zard 586170 | 548518 | Squirtle 5861F0 | 5485E0 | Ivy 586320 | 5486A8 | D3 586218 | 548770 | Lucario 586338 | 548838 | Ike 586590 | 548900 | ROB 586290 | 5489C8 | Puff 586570 | 548A90 | Tink 586368 | 548B58 | Wolf 586350 | 548C20 | Snake 586550 | 548CE8 | Sonic 586230 | 586230 | Mewtwo 5860F0 | 5860F0 | Roy
***Note: the three Pokemon will require a third replacement, thanks to mawk for pointing this out
Next, determine how many costumes you want. Between each entry (marked with 06 and then one of the numbers you just replaced, there is a line of code that determines the number of bytes to write. Use the table below to determine what you use for your section of code. 4-7 "00000010" 8-11 "00000018" 12-15 "00000020" 16-19 "00000028" 20-23 "00000030" 24-27 "00000038" 28-31 "00000040" 32-35 "00000048" 36-39 "00000050" 40-43 "00000058" 44-47 "00000060" 48-50 "00000068"
Now, you write the data for each costume. First pick a color, write the number assigned to it, and then select the PAC assigned to it, and write it's number as well. Make sure you start every line with "* " and add a space between every 8 digits you type. Color Table Red(T) 00, Blue(T) 01, Yellow 02, Green(T) 03, Purple 04, L. Blue 05, Pink 06, Brown 07, Black 08, White 09, Orange 0A, Gray 0B PAC Table 00 - 00 01 - 01 02 - 02 03 - 03 04 - 04 05 - 05 06 - 06 07 - 07 08 - 08 09 - 09 10 - 0A 11 - 0B 13 - 0D 14 - 0E 15 - 0F 16 - 10 17 - 11 18 - 12 19 - 13 20 - 14 21 - 15 22 - 16 23 - 17 24 - 18 25 - 19 26 - 1A 27 - 1B 28 - 1C 29 - 1D 30 - 1E 31 - 1F 32 - 20 33 - 21 34 - 22 35 - 23 36 - 24 37 - 25 38 - 26 39 - 27 40 - 28 41 - 29 42 - 2A 43 - 2B 44 - 2C 45 - 2D 46 - 2E 47 - 2F 48 - 30 49 - 31 50 - 32
Now, write 0C00 at the end of the string and add zeroes to the end until it finishes off the line.
2. UI Adding the UI images are the same as replacing them, just with different names. Here I'll explain it in depth for this to work.
CSPs/RSPs For each, you can just import new CSPs and follow the same naming convention as vBrawl/vPM. For Link, it would be MenSelchrFaceB.021-080.
Stock Icons By far the most annoying and time consuming. Stocks are read from StockFaceTex.brres in pf/menu/common folder. Basically follow the vPM naming structure, but with the new locations (found here: https://docs.google.com/spreadsheets/d/1ydxpdOh0G9cyNP33nRJm6dORpe5f6mVg0MR2aD8ao0A/) For Link, using TE's modified locations, it would be InfStc.0101-0150.
BPs BPs are read in the pf/info/portrite folder. TE uses a modified naming structure to match the stock icons. For Link, the BPs would be located at InfFace0101-150.brres.
3. Costume Files Make sure you have all of your costumes .pacs in the correct folder. TE 2.11 does not require .pcs files anymore, and Masquerade skips over pac 12.
Example Character For this, I want to give Ivysaur 40 costumes. To start, I replace all of the codes listed in the first step of the codes section. Next, I chose 40, so I add 00000058 to my codes, making my codes look like so.
Ivysaur Signifier V * 065485E0 00000058 < Number of costumes
Now, I start adding the colors and pac data. After I'm done, it looks like this.
This thread will be a place to get codes and post new codes. All codes ever available will be posted here in the OP, updated and separated by category. Outdated codes will also be kept for archiving purposes.
Thread will be locked until the reservoir starts being filled