[PM 3.6, PM+BeX] A Starter's Guide on SFX

Solaros

Smash Journeyman
Joined
Nov 14, 2015
Messages
225
#1
Want to .rel port a character over another and get their SFX working? Or what about making custom announcer noises? Or just have Captain Falcon say "HYES!" for all his attacks? As it so happens, I can help with that!

To clarify: I'll be going through a tutorial on making and using a custom soundbank for a ported/cloned character, but the same knowledge can easily be applied for other SFX desires. Everything I discuss here applies to Project M and PM+BeX. This tutorial assumes you have no prior knowledge with Project M modding and the software linked below.

Note: This guide currently does not cover K.O sound effects.


[1] Preparing your SFX for Import
[2] Importing SFX to SuperSawndz (and making custom soundpacks)
Skip to here if you're just looking to downright replace sound effects (e.g announcer noises, specific character noises, etc) . In this case, you will not need to continue with the tutorial after this step.
[3] PSA
Skip to here if you already have a custom .sawnd, but need to redirect your character's SFX subaction values to those sound effects. Or if you just want certain moves to play certain sounds.
[4] Soundbank IDs
Skip to here if you're just looking to redirect a character's soundbank ID to someone else's. (e.g. porting Manchu over someone and having it(?) use Ganondorf's sound effects.)
[5] Conclusion


Before we start...
  • This tutorial was written with the default SmashBoards color scheme in mind.
  • This tutorial was written with Project M 3.6 in mind, which also extends to PM+BeX (which uses 3.6 as a base). I assume the same process applies for 3.5 and older versions... but don't quote me on that.
  • "SFX" I mostly use in a plural sense, "sound effect" I mostly use as singular.

Things to know about how SFX work:
  • The files containing a character's SFX is a .sawnd file, or a soundbank. For example, you can find Mario's SFX in 8.sawnd.
  • Each sound effect has a corresponding hexadecimal value. A list of said values can be found here.
  • A character's FitXX.pac file contains the information on which moves call which sound effect from said character's .sawnd.
  • A modified .sawnd cannot exceed the file size of the original. However the lengths of each individual sound effect does not matter.
Reading bytes and bits:
  • Code:
    04AD89E0 <- This is a byte of code, composed of eight bits.

With that being said, let's begin! To start off, here's what you'll need:
  • Project M 3.6 or any version of PM+BeX
    • I will not be providing this.
  • SuperSawndz
    • The download link has v1.0 by agoaj, the same version I will be using.
  • A copy of smashbros_sound.brsar
    • I will not be providing this.
  • brsar_unpacker
    • used to obtain the ID's of custom SFX
  • VLC (or another audio playback software that can handle several short audio files, not iTunes!)
  • A hexadecimal editor such as HxD.
  • The audio files that you wish to add. Must be in .wav format!

As mentioned, your custom audio files must be of .wav format to import in-game. I'm not sure if it's necessary but I do recommend keeping the audio to 22050 Hz and Mono, as those are the same settings as the in-game audio files. (Better safe than sorry!) Here's an example screenshot:

Once these settings have been applied to your sound effects, let's continue!


With Super Sawndz, open smashbros_sound.brsar. Here you'll see this window:

Make back-ups of smashbros_sound.brsar before making any changes! It's a big file, and you don't want to be re-downloading it a lot.

As you can guess, the menu on the right-hand side is a list of each character's .sawnd file. There you'll see the list of each sound effect for that fighter. Clicking on an audio file will play that sound effect, listing the effect's length as well. The black box in the lower-left corner is the software's output screen. And in the upper-left corner is where you can insert your own .wav files. It's fairly straightforward.

Before we continue, you have two choices:

1) Completely replace the soundbank of a SSE Boss, essentially giving your character their own .sawnd. Preferable when the character you're adding has no similar SFX to anyone else. (e.g: Metal Face, Waluigi) However, this will result in that SSE Boss sounding ghetto in SSE.
Example: Mewtwo replacing Galleom's soundbanks prior to PM 3.6.

2) Modify the soundbank of a playable character, essentially "sharing" a .sawnd with them. Preferable when the character you're adding does have similar SFX to another character. (e.g: Lucina & Marth, or Sonic & Knuckles)
Example: Marth and Roy sharing a soundbank in PM 3.6.

I don't have the exact numbers, but each character should have some blank audio slots to mess around with. What I can give you is the number of audio slots that each SSE Boss has:

Crazy Hand having the most slots at 42, while Bosspack-Kun / Ridley tie the lowest at 20 slots.

(For those looking to simply replace sound effects, here's the basic instructions.)
Once you've decided whose soundbank you'll be modifying, proceed to it in Super Sawndz.
Click on what audio you wish to replace -> Input File (on upper-left corner) -> Preview & Add File -> Insert

Now, you'll see Super Sawndz do its magic outputted in the black box. It will inform you if the file size of your custom audio has exceeded the original. As mentioned, only the .sawnd's total file size cannot exceed the original; individual audio lengths do not matter. Rinse and repeat for all your sound effects. Once done, click 'Create Sawnd' to export the newly edited .sawnd. Then place the file in your build's SFX directory.

Directory for .sawnds:
Project M 3.6
projectm -> pf -> sfx
Project M+ BrawlEX v0.1 - v0.3
private -> wii -> app -> RSBE -> pf -> sfx
Project M +BrawlEX v0.4+
?????​

If you're sharing a soundbank with a character, no need to change the name of the .sawnd. Otherwise, use this list:
7 - Joucyu (Fighter Common/Menu)

8 - Mario
9 - Link
10 - Pit
11- Meta Knight
12 - King Dedede
13 - Donkey Kong
14 - Samus
15 - Yoshi
16 - Kirby
17 - Fox
18 - Pikachu
19 - Luigi
20 - Captain
21 - Ness
22 - Bowser
23 - Peach
24 - Zelda
25 - Ice Climbers
26 - Marth
27- Mr. Game & Watch
28 - Falco
29 - Ganondorf
30 - Wario
31 - Olimar
32 - Lucas
33 - Diddy
34 - Pokemon Trainer
35 - Charizard
36 - Squirtle
37 - Ivysaur
38 - Lucario
39 - Ike
40 - R.O.B.
41 - Jigglypuff
42 - Toon Link
43 - Wolf
44 - Snake
45 - Sonic

46 - Select (Wiimote Sounds)
47- Zako Fighter (Fighting Alloy Team)

48 - All (Kirby's Copy Abilities)
49-082.- Kirby's Copy Abilities (By Separated BNK.?)

83 - Crayon (Yoshi's Island)
84 - Dolpic (Delphino Plaza)
85 - Mansion (Luigi's Mansion)
86 - MarioPast (Mushroomy Kingdom)
87 - Kart (Mario Circuit)
88 - Donkey (75m)
89 - Jungle (Rumble Falls)
90 - Pirates (Pirate Ship)
91 - Oldin (Bridge of Eldin)
92 - Norfair
93 - Orpheon (Frigate Orpheon)
94 - Halberd
95 - Starfox (Lylat Cruise)
96 - Stadium (Pokémon Staduim 2)
97 - Tengan (Spear Pillar)
98 -Fzero (Port Town Aero Dive)
99 - Ice (Summit)
100 - GW (Flat Zone 2)
101 - Emblem (Castle Siege)
102 - Madein (Wario Ware Inc.)
103 - Pikmin (Distant Planet)
104 - Palutena (Skyworld)
105 - Famicom (Mario Bros.)
106 - Newpork (Newpork City)
107 - Village (Smashville)
108 - Metalgear (Shadow Moses Island)
109 - Greenhill (Green Hill Zone)
110 - Pictochat (Pictochat)
111 - Plankton (Hanenbow)
112 - Stageedit (Stage Builder)
113 - Garden (Kongo Jungle)
114 - Zebes (Brinstar)
115 - Greens (Green Greens)
116 - Corneria
117 - Pstadium (Pokémon Stadium)
118 - Bigblue (Big Blue)
119 - Onett

120 - Coinshooter
121 - Cleargetter (Challenge)

122 - Homerun (Homerun Contest)
123 - Target (Target Test)
124 - Chararoll (Credits)

125 - Item
126 - Monsterball (Pokéball)
127-153 -Assist Trophies

153-219 - Empty (Not even listed?)

220 - Menu Narrator Clips
221 - Melee (Mid-Match Narrator Clips)
222 - Menu (More Menu Narrator)
223 - Characall (Narrator Naming Characters)

224 - Common (SSE Common SFX)
225-284 - SSE Stage SFX and Ambience Loops
285-319 - SSE Minor Enemies SFX

318 - Prim
320 - Bosspack-kun
321 - Rayquaza
322 - Porky
323 - Galleom
324 - Ridley
325 - Duon
326 - Meta Ridley
327 - Taboo
328 - Master Hand
329 - Crazy Hand

For example, if you made a custom soundbank over Marth's SFX, you would then name it 26.sawnd

As mentioned earlier: if you're looking to simply replace sound effects, you need not continue with the guide after this point.


So you have a custom .sawnd ready, but how do we get our cloned fighter to actually use those SFX? Now's the time for PSA! Here's the basic rundown:

1) Open the Sammi PSA I linked earlier, then open your character's FitCharacter.pac file. Under the Action Events tab, go to the Sub Actions tab. Change Event List to display SFX, as we'll only be messing with SFX.



The Sub Action box lists every animation (or subaction) for your character.
The Animation box lists the name of the current subaction.
The Event List box has a few categories, but again we'll just be working with the SFX category.

2) Proceed to the animation you want to change the SFX for. In the screenshot above, we're looking at the jumping-forward animation. In the main information box, we can see the Sound Effect being played, in this case sound effect 2965. Remember the SFX List I mentioned earlier? Time to bring that up! In that page, you'll see a list of every single sound effect in the game, along with their corresponding hexadecimal ID's.

3) To change what sound effect is called by each animation, go to those animations and edit the sound effect ID to your desired sound effect's ID. Once done, save the .pac file then exit out of Sammi PSA.

"But wait, how do I know the ID's of my custom sound effects?"
Well, you don't. Not at the moment at least. Let's find out! Time to mess with the brsar unpacker.

1) Extract the contents of the brsar Unpacker folder from the above download.
2) Open the brsar_unpack00 folder. Create a new folder inside and name it 'Modified brsar'
3) Take the smashbros_sound.brsar file that you modified earlier and place it in the new folder you made.
4) With the 'Modified_brsar' window open, open another window of the brsar_unpack00 folder. Drag your modified .brsar over the application "brsar_unpack".

In case that wording was confusing, here's a demonstrative screenshot:

You'll then see a command prompt showing up, seeing the unpacker do its handy work. A few moments later in your 'Modified brsar' folder you'll see the actual contents of smashbros_sound.brsar extracted into several folders within. (e.g. snd_player_stage, snd_player_system, etc)
  • If you injected your custom SFX to a boss, the boss SFX are found in the 'ADV_Default' folder.
  • If you injected your custom SFX with a fighter's, those SFX are found in snd_player_chara
5) When you find the folder that your custom SFX are in, open those in VLC. (Or another playback software.) You can then quickly see the names of each audio file, and play them to see which is which. Cross-reference those with the ID's from the SFX list I just mentioned.


Now we have our character's custom .sawnd and their PSA information ready, but don't start up your build just yet! Last thing to do is configuring our character's soundbank ID. Similar to character IDs, soundbank IDs are a part of a fighter's coding needed to access a specific soundbank. Without a customized code, a character won't have access to any specific .sawnd.

This step mostly depends on what version of Project M you're using...


We will be injecting the following two bytes of coding into RSBE01.gct:
XXXXXXXX YYYYYYYY

Replace XXXXXXXX with the codes of the base fighter being replaced.
A list of XXXXXXXX codes for most fighters...
CHARACTER CODES
04AD89E0 - Mario
04AD89E4 - Donkey Kong
04AD89E8 - Link
04AD89F2 - Samus
04AD89F6 - Yoshi
04AD8A00 - Kirby
04AD8A04 - Fox
04AD8A08 - Pikachu
04AD8A12 - Luigi
04AD8A16 - Captain Falcon
????????? - Ness
04AD8A0C - Bowser
04AD8A10 - Peach
04AD8A14 - Zelda
04AD8A18 - Sheik
04AD8A1C - Ice Climbers
04AD8A24 - Marth
04AD8A28 - Mr. Game & Watch
04AD8A32 - Falco
04AD8A36 - Ganondorf
04AD8A40 - Wario
04AD8A44 - Meta Knight
04AD8A48 - Pit
04AD8A52 - Zero Suit Samus
04AD8A56 - Olimar
????????? - Lucas
04AD8A4C - Diddy Kong
04AD8A54 - Charizard
04AD8A58 - Zenigame?
04AD8A5C - Shigisou?
04AD8A60 - King Dedede
04AD8A64 - Lucario
04AD8A68 - Ike
04AD8A72 - R.O.B.
04AD8A76 - Lyn
04AD8AE0 - Jigglypuff
04AD8AE4 - Mewtwo
04AD8AE8 - Roy
04AD8AF2 - Sami
04AD8AF6 - Toon Link
04AD8A8C - Isaac
04AD8A90 - Wolf
04AD8A94 - Knuckles
04AD8A98 - Snake
04AD8A9C - Sonic
. . .

I couldn't immediately calculate Ness & Lucas' codes due to their character IDs, if anyone asks I'll try again.
If a character's code doesn't work please let me know!

Replace YYYYYYYY with a character's soundbank ID
Soundbank IDs
00000001 - Mario
00000002 - Link
00000003 - Pit
00000004 - Meta Knight
00000005 - Dedede
00000006 - Donkey Kong
00000007 - Samus
00000008 - Yoshi
00000009 - Kirby
0000000A - Fox
0000000B - Pikachu
0000000C - Luigi
0000000D - Captain
0000000E - Ness
0000000F - Koopa
00000010 - Peach
00000011 - Zelda
00000012 - Ice Climbers
00000013 - Marth
00000014 - GameWatch
00000015 - Falco
00000016 - Ganon
00000017 - Wario
00000018 - Pikmin
00000019 - Lucas
0000001A - Diddy
0000001B - PokeTrainer
0000001C - PokeLizardon
0000001D - PokeZenigame
0000001E - PokeFushigisou
0000001F - Lucario
00000020 - Ike
00000021 - R.O.B.
00000022 - Purin
00000023 - ToonLink
00000024 - Wolf
00000025 - Snake
00000026 - Sonic
00000027 - select
00000028 - ZakoFighter

00000116 Kuribo
00000117 Patapata
00000118 Hammerbros
00000119 Killer
0000011A Dekakuribo
0000011B GalFire
0000011C Poppercam
0000011D Bitan
0000011E Roada
0000011F Bombhead
00000120 Gyraan
00000121 Bucyulus
00000122 Tautau
00000123 Flows
00000124 Aroaros
00000125 Botron
00000126 Jyakeel
00000127 Ghamgha
00000128 Pacci
00000129 Faulong
0000012A Deathpod
0000012B Spar
0000012C Kokkon
0000012D Jdus
0000012E Mite
0000012F Shelly
00000130 Ngagog
00000131 Cymal
00000132 Teckin
00000133 Cataguard
00000134 Siralamos
00000135 Boobas
00000136 Arman
00000137 Prim
00000138 Robo
00000139 - Bosspackun (or as I like to call, Bosspack-kun)
0000013A - Rayquaza
0000013B - Porky
0000013C - Galleom
0000013D - Ridley
0000013E - Duon
0000013F - Meta Ridley
00000140 - Taboo
00000141 - Master Hand
00000142 - Crazy Hand
00000143 Falconflyer
. . .

To demonstrate, let's say you want to port a fighter over Sonic and have them use Marth's SFX, so you would use the following code:
Code:
04AD8A9C <- Sonic's XXXXXXXX code, as we're placing someone over Sonic
00000013 <- Marth's soundbank ID, as we want our ported character to use Marth's .sawnd
Or:
Code:
04AD8A9C 00000013
Now we have our customized code! Next, open RSBE01.gct with the HxD software previously linked, and use CTRL-F to find "F0 00 00 00 00 00 00 00" while using 'Hex values' for your search query.

Paste your code right before the F0 00. . . portion, then click OK on the confirm window. Now save the .gct, then exit. When you start up your build, your ported fighter's SFX should now be redirected. Congrats! Here's an example screenshot:




If you haven't done worked with PM+BeX, I recommend going over a guide first. Otherwise, this is basically the same rundown as my PM+BeX guide:
Things are slightly easier for PM+BeX. To get your clone to use a certain .sawnd, here's the rundown:
  1. Open your cloned character's FighterXX.dat in HxD. Navigate to Offset 1C.
  2. Replace the following byte with the soundbank ID of the character whose .sawnd you'll be using.
  3. Save, then exit. You're done!
(Here's the soundbank ID list again)
Soundbank IDs
00000001 - Mario
00000002 - Link
00000003 - Pit
00000004 - Meta Knight
00000005 - Dedede
00000006 - Donkey Kong
00000007 - Samus
00000008 - Yoshi
00000009 - Kirby
0000000A - Fox
0000000B - Pikachu
0000000C - Luigi
0000000D - Captain
0000000E - Ness
0000000F - Koopa
00000010 - Peach
00000011 - Zelda
00000012 - Ice Climbers
00000013 - Marth
00000014 - GameWatch
00000015 - Falco
00000016 - Ganon
00000017 - Wario
00000018 - Pikmin
00000019 - Lucas
0000001A - Diddy
0000001B - PokeTrainer
0000001C - PokeLizardon
0000001D - PokeZenigame
0000001E - PokeFushigisou
0000001F - Lucario
00000020 - Ike
00000021 - R.O.B.
00000022 - Purin
00000023 - ToonLink
00000024 - Wolf
00000025 - Snake
00000026 - Sonic
00000027 - select
00000028 - ZakoFighter

00000116 Kuribo
00000117 Patapata
00000118 Hammerbros
00000119 Killer
0000011A Dekakuribo
0000011B GalFire
0000011C Poppercam
0000011D Bitan
0000011E Roada
0000011F Bombhead
00000120 Gyraan
00000121 Bucyulus
00000122 Tautau
00000123 Flows
00000124 Aroaros
00000125 Botron
00000126 Jyakeel
00000127 Ghamgha
00000128 Pacci
00000129 Faulong
0000012A Deathpod
0000012B Spar
0000012C Kokkon
0000012D Jdus
0000012E Mite
0000012F Shelly
00000130 Ngagog
00000131 Cymal
00000132 Teckin
00000133 Cataguard
00000134 Siralamos
00000135 Boobas
00000136 Arman
00000137 Prim
00000138 Robo
00000139 - Bosspackun (or as I like to call, Bosspack-kun)
0000013A - Rayquaza
0000013B - Porky
0000013C - Galleom
0000013D - Ridley
0000013E - Duon
0000013F - Meta Ridley
00000140 - Taboo
00000141 - Master Hand
00000142 - Crazy Hand
00000143 Falconflyer
. . .

So once that's all done, start up your build! Things should be working now. Congrats!


So, that should be it for now, at least till my next revision. If there's anything I've missed or you just run into some issues, please reply here! If I'm not available, maybe others can help out with the problem.
 

[ H ]

Smash Rookie
Joined
Jan 28, 2016
Messages
2
#3
hey , i cant make the sfx to work ,do i have to convert the id of the boss to hex number ? im kinda confused about the offset :(
 

Wobbaduck

Smash Rookie
Joined
Oct 1, 2016
Messages
2
#5
This is a fantastic guide! I'm surprised it didn't get more attention!

What method would you recommend for reducing the size of the .sawnd file? Mine is over 3,000 KB after adding the custom sounds.
 

64BTX

Smash Rookie
Joined
Jul 9, 2018
Messages
5
#7
I replaced a sound effect, and I got this in the black box:
Code:
Inserting the sound... Please wait.
frequency 22050
nonlooping sample.new size inst 11458
27
6400
new size: 11458
old size: 9453
size difference: 2005
size difference: 2016
Adding empty space to the brsar... Please wait.
18205312 offset.
2016 bytes to alter.
18205312
__________
#########
88630912
Copying Sound
___________
#######
wave 18059672
fix
fix
fix
Done.
Will it work with the new sound effect? It seems like the sound was added, then the program detected more space than what was allowed, then it fixed the space issue while adding the sound effect (?).

EDIT: I just read through the post again, it should be fine, but even when the black box says that the "new size" is larger than the "old size", it still updates the .sawnd and even lets me save it as a .sawnd file. Would it still be okay for me to put this in my SFX folder and use it for PM?

ALSO EDIT: Found out that this doesn't work. Everything goes well until the game crashes trying to use the .sawnd file with the new sound.
 
Last edited:
Joined
Jul 7, 2018
Messages
7
#10
I've been trying to find the sawnd file that Young Link uses in Legacy XP. I wanted to preserve his voice clips while replacing regular Link's voice with his OoT/Melee voice. I really need some help, since I can't determine the sawnd id that Young Link uses.

Edit: I found it, but I can't for the life of me get it to work. It just plays the default voice clips, and I tried creating sawnds with Super Sawnds but the game acts like it's not even there. What the **** happened?
 
Last edited:
Top