Edit: So a bit of a minor update. It's either a coincidence, or JOJI's seen this thread. Because they've updated their site with a message relating to the Custom My Music Title codes.
From what I could understand, they mention the codes were made with CSE v2.5 in mind [with Song IDs 286C through 2AC4 (IDs higher than 2AC4 are likely to crash)], but they'll be later updating to support CSE v3.0, [with Song IDs E500 to E852 (IDs higher than E852 are likely to crash].
So in the meantime, if you're using CSE v3.0 and don't want to wait for their update, then downgrade your CSE to v2.5, and use Song IDs 286C through 2AC4.
With this information in mind, I'll be updating the OP to reflect this information, so I'm not unintentionally misinforming people.
Also, if there's any way to contact JOJI, please let me know, as I've searched through their website, but I haven't found any sort of contact info.
Now you say that we're able to pick one of the three codes to use, but it would be counterproductive to pick dated codes or codes that aren't as refined. Which code did you use for your experiment, and by extension, which would you recommend?
For my experimentation, I used v2 of the CMM code.
Due to a recent discovery made by JOJI (Japanese user), we can now have custom tracklists, and have them appear in My Music. This tutorial will tell you what you need to do.
Here's what you're going to need before we can start though: -Custom Sound Engine Code v2.5 or Custom Sound Engine Code v3.0. -BRSTM of your choice. -Any source of Text to Hex conversion. -*CMM:Custom My Music V2 -*CMM Setting Codes -*(Optional) CMM Option: Special Stages -*CNMT:Custom New Music Title (RSBE.Ver) -*Song Title Setting Code -*Tracklist Modifier v1.0 (For CMM:Custom My Music). -This Google Spreadsheet which the Track IDs you can use for the most part
*Since the creator of these codes (JOJI) wishes not to have their content distributed outside their website, please visit http://ssbbhack.web.fc2.com/ to receive these codes, though I will explain the two Setting codes.
So what does this allow us to do? This allows us to actually add new tracks to stages (including stages used with Stage Expansions), up to 15 (including the vanilla tracks) to be exact, each with their own titles (you also don't need to edit files like BrawlDJ or anything similar). The only exception is Mushroomy Kingdom, in which you can only have up to 7 tracks (including the vanilla tracks).
Limitations: -You must use every CMM Setting Code (except Custom Stages if you don't have any), or else the stages that don't have their respective codes inserted won't play their music, nor will you be able to access them in My Music (you'll be locked in there, unable to exit). -Tracks are automatically set to the minimum occurrence, but they can have their occurrences altered and saved. -The initial codes were made for CSE v2.5, and song IDs must be between 286C and 2AC4 (which gives you 600 songs to add). IDs higher than 2AC4 are likely to crash. If you're using CSE v3.0, then use the My Music Title Engine code JOJI recently made for CSE v3.0, which alters your range to E500 to E851. -If you're using a larger codeset (Example: Project M), then you'll need to modify your gameconfig.txt to expand the size of your codeset, or else you'll get an error when attempting to boot up your codelist through Gecko.
Credits: -Dantarion: For creating the original Custom Sound Engine Code. -JOJI: For creating the codes needed for this tutorial to even be possible.
This tutorial will be split into two parts: Custom My Music Entries and Custom New Music Titles.
[WARNING]: This entire concept is uncharted territory, so use these codes at your own risk. I highly recommend you back up your Brawl save before attempting this. You're responsible if anything goes wrong with your save upon using these codes. These codes date back to 2014, so who knows how long these issues have been known for.
So if you're willing to take the risks, then let's step into adding new tracks to My Music!
Part 1: My Music Entries.
I highly recommend you make a backup of your save, as previous knowledge indicates altering My Music also alters your save.
Quote
CMM:Custom My Music V2 is the main engine behind Custom My Music, which saves its settings under the name tag memory from where names #107 onward would be stored, so upon making a 107th name, all CMM settings would be overwritten.
Now that we have the main engine out of the way, let's get to actually adding those slots.
For this example, we'll use Battlefield's Custom My Music Setting Code (taken from JOJI's description).
ZZ = Hex Value of the amount of tracks -1 (Example: Vanilla Battlefield has 5 tracks, so ZZ would be 4) YY = Hex Value of the amount of tracks (Example: Vanilla Battlefield has 5 tracks, so YY would be 5. XXXX = Track ID in Hex (See the Google Spreadsheet for the usable IDs).
So for example, if we wanted to add 1 track to Battlefield and use 286C for the Track ID, this is how the code would look.
LLLLLL = Special(?) ID (See the Google Spreadsheet for the respective IDs) XXXXXXXX XXXXXXXX = Your title converted into Hex (Example: Test = 54657374) YY = Amount (in hex) of Bytes your Title has (Example: Test = 54657374. which is 4 Bytes)
So if we wanted to name this new track Test, this is how the code would look:
Quote
286C - Test [JOJI] 06544140 00000004 54657374 00000000
Now we both have our added track and its label. You're all done. If you've followed every thing correctly, you'll now have your new track.
Note: If you have a Music Title Code, and it looks incomplete, finish it off with zeroes.
Example:
Quote
286C - All Star (Smash Mouth) [JOJI] 06544140 00000016 416C6C20 53746172 2028536D 61736820 4D6F7574 6829XXXX
Here, you have 2 bytes of empty space. Fill that in with zeroes.
Quote
286C - All Star (Smash Mouth) [JOJI] 06544140 00000016 416C6C20 53746172 2028536D 61736820 4D6F7574 68290000
And with that, you're all done. You may repeat this tutorial as much as you need until you've hit the limit of tracks per stage.
I wonder if it's because of the sudden discovery by English users.
Though now that some of the website's been translated, I've gotten to looking into the Custom My Music stuff, and I've figured out some of it. Here's what I've managed to figure out so far.
There's three different code options for the main Custom My Music Engine.
Quote
CMM:Custom My Music [JOJI]: Each stage of the CMM Setting Codes must be used, or the game will crash. This code also breaks My Music for non modded play.
CMM:Custom My Music (Not crash.Ver) [JOJI]: This code doesn't have the crashing issue, nor does it break My Music for non-modded play, but the My Music settings are not saved.
CMM:Custom My Music V2 [JOJI]: I'm not sure if v2 has the same issues as v1, but v2 enables My Music settings being saved. From what I'm understanding, it saves where Names are stored, but its settings are deleted if you make more than 107 Names. I'm not sure what it means when it says Names though.
For the actual added tracks themselves, which is done by Stage Dependent Custom My Music Settings codes, in which each stage (with the exception of Mushroomy Kingdom) can have up to 15 tracks (this includes the vanilla tracks). Mushroomy Kingdom can only have up to 7 tracks (including vanilla). For this part, the Stage Specific Codes have 3 configs: The number of tracks subtracted by 1, the actual number of tracks, and the track IDs themselves. While I was able to add the My Music slot, the track doesn't play, as I don't know what to name the BRSTM.
In addition to this, there's a bit of a limitation at the time. Said limitation is even if you're not adding tracks to other stages, you need all the My Music Settings codes in your GCT, or else when selecting the stage without its code inserted in My Music, no tracks will appear (they won't play, either), and you will be locked in that menu (the game strangely doesn't crash), forcing you to restart (you can still play on the stages themselves, they just won't have music). In addition to this, all tracks are automatically set to minimum occurrence if the main Engine code is inserted, but depending on the code, you can just manually alter the track occurrences again.
The next part is the Custom New Music Title Engine. There's only one code this time, so there's no need to split it up. This part just enables you to actually give your added tracks titles via Track Specific codes. The Track Specific codes also have 3 configs: The track ID, the number of bytes your title has (Example: 1 Byte: AA, 2 Bytes: AABB, 3 Bytes: AABBCC, 4 Bytes: AABBCCDD), and the track's title in Hex (Example: Test = 54657374).
There's also a My Music Initialization code for the vanilla tracks, but I'm not sure what it does exactly.
I'd post the codes themselves, but I read a blip on the main page that they don't want their codes/images to be reproduced (not sure what the exact term is, as it's Google Translating Japanese to English) without permission.
TL;DR: Adding tracks to My Music is possible, but there's a few hiccups which prevent it from being fully stable. -Tracks are automatically set to the minimum occurrence, but they can have their occurrences altered and saved (if not using the No Crash version of the Main Engine Code). -Due to me not knowing what to name the BRSTM files, your added tracks won't play. -You must have the My Music Configs for all stages, or else selecting the stage in My Music will lock you in. Their respective music will also not play. You can still play on the stages themselves, they just won't have music.
Once I figure out what to name the new BRSTMs, I'll be making a tutorial on the matter.
These codes date back to 2014, so who knows just how long all this has gone unnoticed for.
- Add sfx to a PSA without having to replace any pre-existing soundbank as long as we have the CSE
Not quite. We can use new Soundbanks, that's correct, but CSE isn't needed. If you're using CSE, then you can't use Song IDs 4000 through E4FF, as those ID will be used by the Soundbank Expansion System.
I've got the GFX stuff all figured out, so I'll type of a shortened tutorial in a bit. I just need to get the IDs in a readable format, as black text on a dark blue background is not okay.
For the GFX Bank tutorial, a lot of it is unnecessary, especially with the REFF entries. You don't need to rename those. Even if you did, you'd have to hex edit the main REFF entries to use the updated names, or else the REFF effect won't even load the sub entries.
For the moveset editing portion of it, there's only mentions of using BrawlBox v0.67, which I wouldn't recommend for certain Fighters (see my Non-BrawlBox Friendly Fighters thread for details). It would be nice to see some promotion of PSA Compressor, as it can do everything BrawlBox v0.67 does with the stability of PSA.
A TL;DR tutorial for it would be to rename your ef_fighter entry to ef_customXX and change any Graphic Effect command which uses the old ef_fighter ID to your new ef_custom00 ID. Same goes with Sword Trails, except you also need to rename the trail texture.
For the SFX stuff, I'll have to look into it sometime.
Edit: I kinda looked into the SFX stuff, but from what I read, you need a premade Snake SAWND (with all his sounds nopped out) the user made, but I can't seem to find it.
Does this include Sword Trials (I know I saw a trail in your video, I just wanted some clarification)? Or just custom ef_fighter entries? If I could get this figured out, I could type up an English tutorial.
Edit: I just looked up the page, and it does mean custom Sword Trails. I better get to looking at this!
If you still experience popping, then increase the blue highlighted section and decrease the green highlighted section by a comparable amount.
The old tutorial has been placed inside the spoiler below for archival purposes.
For those working with custom SFX for Fighters, you may be aware of how sometimes, your Fighter's SFX will have this popping noise in it. No matter what you do, it still pops. Well fear no more, as thanks to the former PMDT, a solution has been found (it's been found for a while, but it hasn't been publicly known until now).
Requirements -Hex Editor. My recommendation would be HxD. -Your custom SAWND file.
Before attempting this tutorial, make sure you're absolutely done with whatever SFX injection you're doing.
All you need to do here is open your custom SAWND in your Hex Editor, and note down two offsets. Offset 1 is after the first instance of "RWSD". In this file's case, it's 0x34C0.
Offset 2 is after the second instance of "RWSD". In this file's case, it's 0x63C0.
Once you have your two Offsets down, add them together. In this file's case, it would be 0x34C0 + 0x63C0 = 0x9880. After getting your totaled Offset, go to that said Offset.
The final thing to do now is insert 0x20 bytes of data to this offset (Edit > Insert Bytes).
After that, save your edits. Any sort of popping for Vocal Effects or Sound Effects will be fixed. Remember, do this after you're done inserting your SFX. Don't do this tutorial, then insert more SFX afterward.
And with that, I conclude this tutorial. This could have never been done without the efforts of the former PMDT.
This is something I've been waiting to become possible for a long time, but with the recent update to PSA Compressor, it's finally here!
An Action Override is a Fighter-specific override of a shared Action. For example, Yoshi has his own unique Guard Actions that are only possible with Action Overrides.
An Action Override Entry is read when entering the Action, and an Action Override Exit is read when exiting the Action.
Requirements -A FitFighter.pac of your choice. -The Fighter.pac file (not to be confused with FitFighter.pac), which can be extracted from the common3.pac file. -BrawlBox v0.68b. (Download) -PSA Compressor (at least v0.31). (Download)
But enough waiting around, let's get started.
Before you add an Override, you'll need to know which Action you want to make an Override for. You can see a list of all labeled Actions every Fighter shares by following this link. http://tinyurl.com/y8j3ywxx
For this tutorial, I'll be making an Override for Action 1B, which is the Guard Action.
To start things off, open your FitFighter.pac, and go to the Events tab, then go to the Overrides tab. Here, you'll click on the drop down menu next to "List" to see three options, Entry, Exit, and Pre. We'll be starting off with making an Entry, so click Entry.
After that, you'll be right clicking on the drop down menu, and click on "Edit, Add". A new window should appear. In here, you'll be changing that 0 to 1B before clicking "Done".
Once that's all settled, you should now be returned to the main PSA Compressor window. Click in the "Action ID" drop-down menu to see your new Action Override, but now you'll need to insert your coding, or else literally nothing will happen when you try to Shield in-game.
Next, you'll open a new instance of PSA Compressor and BrawlBox v0.68b and open the Fighter.pac you extracted from your common3.pac. Navigate to Action 1B in PSA Compressor and Action 27 in BrawlBox (since BrawlBox unhexes everything). A distinct difference you'll see here is with the Sub Routines. With some Actions, they use what's called an External Sub Routine. If you were to just copy the coding from PSA Compressor into your Override, you'd have to copy every Sub Routine it uses, which can really bloat file size. The next step will show you what you need to do if an Action uses an External Sub Routine. If your Action doesn't use an External Sub Routine, then you're done with this tutorial, unless the Action has its own Sub Routines, in which you'll need to make your own Sub Routines, insert the coding the Action's Sub Routines use, and update the Offsets.
Back in your main PSA Compressor window, go to the Data tab, then to the External Sub Routines tab. Right click and click Add. A new window should appear. Enter the exact name the External Sub Routine uses that was shown in BrawlBox. In this specific case, there's two External Sub Routines, so we'll be doing this twice.
Once you have the needed External Sub Routines added, go back to the Overrides tab, highlight the coding in the Fighter.pac's instance, copy it, and paste it into your Fighter's window. After this, you'll need to fix the Sub Routines to use your newly added External Sub Routines. All you need to do is right click on the Sub Routine commands, and click "Set External" to assign your newly added External Sub Routines to them.
And with that, you're done. You can now save, insert your own custom coding, save again, and test. If you need to add an Override for an Action Exit, then you'll need to re-do this tutorial, except with Action Exits, rather than Action Entries.
Oh, for the common.pac, common4.pac, and common5.pac files, you can just use the ones from PM. Those files contain the animation files for transformation Fighters, but if you null those files like PM did, the motion files will be read from the respective Fighter's folder.
If you still have the T-Posing issue after you've verified, take a look at the Down Special Action, and see which Sub Actions it references, then go to those Sub Actions and see if their names match any animations you have in your Motion file.