|
|
« on: January 16, 2016, 04:27:33 PM » |
|
as things stand, we have everything we could ever want for hacking. we have an expanded stage select with up to 78 stages, potentially more. We have a roster up to 100 characters, and we have...sfx... that is the one final hurdle to finally having complete customization power. as things stand, while we can add 100 characters, we can only add a few COMPLETE characters. why? because there are only so many boss slots to go around. this thread is where we look for a solution. here are the tools we have so far: file patch code 4.0: https://br4wlbreakers.wordpress.com/2009/10/29/new-filepatcher-code-4-0-beta/ super buggy supposedly. if someone could work on this... file patch 3.5.3: http://forums.kc-mm.com/index.php?topic=51912.0 allows for multiple hack folders and switching, but can't load multiple at a time. - the replacement soundbank engine: http://forums.kc-mm.com/index.php?topic=61460.0 this code allows you to replace entire soundbanks using .sawnd files -the custom sound engine: http://smashboards.com/threads/cse-custom-sound-engine-v2-5-works-with-geckoos-and-riivolution.300069/ this code allows you to insert music without replacing any. Oshtoby's music replacment codes (for use with th custom sound engine): the problem we seem to have is the limited number of boss soundbanks. one solution would to be to "create" soundbanks. we wouldn't have to actually add more sounds to the brsar. Is there any way we can get a code so that characters read sawnd files directly? for example, Robo is soundbank 319. could we have a 319A.sawnd and a 319B.sawnd in our directory? alternatively, what about a character-dependent brsar loader? when the game calls character A, it loads soundbank 319 (robo) from brsarA and when it loads character B it loads brsarB. just so long as the sounds are not called at the same time it should be fine. please note, I am not a programmer. I'm intermediate at best. I'm only brainstorming concepts for others to jump off of here.
|
|
|
Logged
|
|
|
|
|
|
|
« Reply #1 on: January 18, 2016, 10:51:24 PM » |
|
Don Jon Bravo posted a hypothetical solution to where the Sound effects folder would be swapped to a custom folder so they'd be loaded when a character above 3F is selected. The issue is Brawl seems to load sounds very strangely I've made a few mods of his initial soundbank engine to change every instance of the SFX folder loaded into memory, and it works to an extent but only if the clone is the only character using said sound bank, and even that is finicky at best.
From what I've found swapping folders, or loading two files with the same group ID is impossible using this method unless someone figures out how to alter it at very deep level beyond my own abilities.
Another Idea I had, a simple concept but it'd be really difficult to implement would be to have a clone load a soundbank group that currently isn't used by other fighters since there are 36+ characters and through normal means only 4 can be loaded. That leaves a whopping 32 whole soundbanks available at any point in time using folder swapping and RSBE.
The main issues with this are 1. Each clone would need at least 4 sawnd+PSAs for each soundbank 2. There would need to be about 4 fighterconfigs for each clone and a means to swap those around. (Not sure when the Fighterconfig file is loaded into memory)
The way it'd work though is say you want a fight between Marth and Cloned Roy, instead of loading Marth's soundfont he'd load Mario's since Mario isn't in play. If Player 3 was Mario than Roy would load Donkey Kong's and if Player 4 is DK than Roy would load Link's or something.
I'm not the best programmer either and I have NO idea how to configure PSAs and soundbanks to load different voices, but it in theory would work since there'd be no soundbank ID conflicts.
|
|
|
Logged
|
|
|
|
|
|
|
« Reply #2 on: January 19, 2016, 02:25:13 AM » |
|
the only problem with your first idea is that we would still be limited with how many sounds we could replace. rather than any character above 3F, such a code should be more like ~ every 6 characters ( we have only so many boss banks). This of course means conflicts between clone "groups" though it does free the original characters up at least. your second idea is probably the superior one in my opinion. the only issue I can see is how much space it uses up on the SD (though there IS an SDHC code for big sd cards, though I think it may be only for project M. could be wrong). the tricky bit would be making it work with the current codes. You need 4 sawnds...named the same. that means either an new naming convention for the custom sound engine or a new folder set up such that the code reads one folder or another for each character individually (if sounds are all loaded at once, this fails for the same reason as your first idea, but if not we have a character dependent sound loader much like we have a stage dependent song loader! I can see the code acting like this: my idea is that if we could trick the game into thinking there are more sound IDs than there are, we could create virtual soundbanks. no need to actually use a sawnd to replace a bank. rather we get the game to look for a soundbank number that doesn't exist and instruct it to check the SD card first. problem here is currently sawnds are designed as a sort of "injection". I don't think they are read directly. if we could find some way to export soundbanks into there own file type...
|
|
|
Logged
|
|
|
|
|
|
|
« Reply #3 on: January 19, 2016, 06:24:21 PM » |
|
I thought of a way it would work fairly simply and it wouldn't even replace Boss Soundbanks. Now this all relies on whether or not I can swap the Fighterconfig folder and have multiple files load. If it does work I'll be able to set up a careful combination that would basically use 4 soundfonts per character and alter what is loaded so there are no conflicts with other clones by checking which characters are currently selected.
I'll probably try to whip up a fighterconfig swapping code to test the concept the following weeks, if it works there is a chance we can have a sound engine without having to expand the current one, or entirely replace the original voices. I'll keep you updated with my progress.
|
|
|
Logged
|
|
|
|
|
|
|
« Reply #4 on: January 25, 2016, 09:09:22 PM » |
|
any progress on that code?
actually, do we realy need to switch fighter configs? if there was a fighter dependent sawndz loader (in the same vein as oshtoby's stage dependent song loader) would that work? how are sounds loaded? are soundbanks called one at a time? if so, does caling it again unload the previous instance? For example, P1 is maro and bank and P2 is a clone using mario's bank. are the instances of the bank separate or would it only load the banks once?
if only once, could we force it to load multiple times by tricking it into thinking it is loading a separate bank? (loads mario then thinks it is loading a different bank but actually loads mario again with the sawnd.
|
|
|
Logged
|
|
|
|
|
|
|
« Reply #5 on: February 02, 2016, 09:44:45 AM » |
|
Alright I did some tests, and frustratingly it seems using my method one would indeed need 4 separate PSAs (altered to load sound effects from the different soundbanks as well) I tried without doing that and sadly the sound effects just don't play.
This leaves me at an impasse since I currently don't know exactly how to do that, and it'd require it be done with every custom voice, which seems like it'd be more work than anyone's willing to really put into it. Since it'd require a large PSA overhaul.
What it would do, however, would provide us with much more voice and sound options than using bosses since characters have almost twice as many sound slots than bosses.
There doesn't seem to be another way to do it though since Brawl is so picky about sound effects...
|
|
|
Logged
|
|
|
|
|
|
|
« Reply #6 on: February 02, 2016, 06:24:07 PM » |
|
what about instead of 4 different PSA's or config folders, what if we did 4 different sawnds folders? alternatively, simply 4 different sawnds (39_A.sawnd, 39_B. sawnd, 39_C.sawnd, etc.).
when are .sawnds called? if they are called individually, each character could pull from it's own folder.
for example:
IF character slot 3F, THEN load sawnds from pf/sfx/3F
we run into problems though if sawnds are called simultaneously.we would still have more options as we could have multiple characters use the same soundbank, but we would have problems when two characters with the same bank were loaded. (I am guessing and hoping this isn't the case though because of the wii's limited memory)
I would imagine that you would need to add to the Replacment SoundBank Engine to do this. after all, if the rsbe code can load sawnds from a defined folder, then it should be no problem to define a new folder. the trick is inserting a trigger. each user would probably have to add in custom lines of code the same way you have to for the custom stage select code.
|
|
|
Logged
|
|
|
|
|
|
|
« Reply #7 on: February 03, 2016, 10:02:24 PM » |
|
Basically to clone get a new sound to load you gotta have each of these... 1. A soundbank to load 2. A Fighterconfig set to load said soundbank 3. A Fit(character).pac with the sound effects set to work with the loaded soundbank.
all soundbanks are loaded at once in the SFX folder. To get a working code I'd need to basically swap between SFX folders, Fitchar.pacs and fighterconfigs.
I've tested the SFX swapping, it works as long as another character isn't using the same soundbank, but I haven't tested swapping the fighterconfig (I found the file location in memory though so that's next on my list).
Then I'd just need to test PSA swapping
|
|
|
Logged
|
|
|
|
|
|
|
« Reply #8 on: February 04, 2016, 05:48:26 PM » |
|
everything loading together is unfortunate. that means we have to have all our sounds repeated in the other folders. However, this at least means that we can have, as you say, multiple of the same clone with different sfx so long as they aren't matched against one another.
so if I understand correctly, what you have so far is a character dependent sfx folder loader. for example: luffy and naruto over ike. you select luffy as p1 and it loads sfx folder A. Naruto as p1 calls sfx folder 2. But if both are selected, the last to be selected overrides the first
What we now need is a soundbank dependent character loader that triggers after the previous code and is triggered by detecting that a soundbank is already called (or a specific character). To take the above example, if p1 is luffy and p2 is naruto, when naruto is selected, it checks to see if the soundbank has already been called. it has (by luffy) so naruto gets his fighter config swapped. said config is the exact same except it calls a different soundbank (for example, pit)..................
oh geeez. such a thing would get REALLY complicated REALLY fast wouldn't it?
I don't know if we can get this perfect but what you have already may just be good enough. (though keep up the good work on the config and psa swapping as those may be of use in other ways) meanwhile I'm going to test out a crazy idea I have. if it works, we can at least minimize how often two characters conflict.
edit: my crazy plan failed, largely due to the current limitations of brawlbox. I was going to see if I could straight up delete useless soundbanks and then create clone banks with the freed up space (in other words, delete subspace soundbanks and put in a marth2 bank. unfortunately, brawlbox does not allow you to edit smashbros_sound.brsar to quite that degree.
|
|
« Last Edit: February 04, 2016, 06:49:20 PM by Brightshadow360 »
|
Logged
|
|
|
|
|
|
|
« Reply #9 on: February 21, 2016, 11:51:49 PM » |
|
Any progress on that code?
|
|
|
Logged
|
|
|
|
|
|
|
« Reply #10 on: March 07, 2016, 07:46:08 AM » |
|
Sorry it took so long but I have some bad news, apparently fighterconfigs can't be swapped, I've thrown just about every different method I could think of, folder swapping, editing the data internally after its loaded, but the game downright refuses to change the soundbank midgame, this... completely ruins any chance of my method working as infuriating as it is. One thing I did discover, however, is I can get different soundfonts to load in the same folder by renaming the filetype for example if I wanted an extra mario voice instead of 8.sawnd I could have it load 8.saw3F (for clone 3f. This will still overwrite Mario's voice though so two characters with the same soundbank can't fight each other. I'm at a as to how else I could do it, since expanding the soundbank list is beyond my abilities. I might have to try to dissect the BrawlEx File Patch code and see if I can tweak it, though I have my doubts for any success...
|
|
|
Logged
|
|
|
|
|
|
|
« Reply #11 on: March 15, 2016, 10:34:40 PM » |
|
As things stand, you can currently only have one soundbank that would apply to all cloned characters so having a code that allows for more than one is actually a HUGE step forward. After all, if your using random, how often are two characters with the same bank going to be loaded? I don't suppose you could release version 1.0 of the code could you?
|
|
|
Logged
|
|
|
|
|
|
|
« Reply #12 on: May 31, 2016, 10:43:03 PM » |
|
In my experience, characters sharing the same sound file works ok until a character is used again in a match without backing out of the CSS screen.
So, one solution (for sfx-sharing characters, anyway) would be to make a code that forces the players back to the main menu or the menu right before the CSS menu.
How to do that, exactly, is another challenge entirely. =.=
|
|
|
Logged
|
|
|
|
|
|
|
« Reply #13 on: June 01, 2016, 03:31:07 PM » |
|
Really, the most elegant solution would be to turn our collective attention to breaking open smashbros_sound.brsar, and find a way to add new banks. Even if the banks added were just dummy entries that we could .sawnd into, I think that would be the best bet.
Not only that, but if we could add new banks, it would also open up the possibility of adding in new .brstm files without a bunch of code hackery.
|
|
|
Logged
|
|
|
|
|
|
|
« Reply #14 on: June 01, 2016, 04:25:21 PM » |
|
has anyone tried looking into the sound IDs and modifying them there? i don't think a very direct approach would work without modifying the entire game to address sounds directly and independently of a brsar we'd first need to look at attacking these routes in the procedure call in a sound before any hope of adding sounds or even brstms will be possible Post Merge: June 01, 2016, 05:38:03 PM
if only once, could we force it to load multiple times by tricking it into thinking it is loading a separate bank? (loads mario then thinks it is loading a different bank but actually loads mario again with the sawnd.
that would be or mean changing the top left highlighted item on the fly multiple times, possibly having to be on a per sound call basis in my image above (or below) as that's what dictates the bank/brstm/seq that loads or is used for that slot or ID call[spoilers]
|
|
« Last Edit: June 01, 2016, 05:38:05 PM by Diddy Kong »
|
Logged
|
|
|
|
|
|