IntroductionThe purpose of this guide is to take you from unmodded Sm4sh 1.1.7 to a game that works with the most popular form of mod - character skins. Note that this guide assumes that you have your WiiU set up with CFW - you'll need to, if nothing else, be able to launch apps through the homebrew launcher (because we'll be using SDCafiine). If you need to get set up on that, you can look at other tutorials out on the web - I used this one although I recommend you avoid setting up coldboot Haxchi (CBHC) since that has a higher chance of bricking your console.
This guide assumes you want to manually install your skins, rather than using Meteor - since there are skins that are unavailable through Meteor, and learning how to do it yourself definitely won't hurt in case something gets screwed up anyway.
This guide essentially consolidates the things I've learned and the information I've had to look up since I began modifying my copy of Sm4sh - I had to page through many different sites and other pages to find all the information I was looking for. Here's a shortlist, in case you want to look back at those for further clarification:
- Sm4shexplorer release thread
- Updated Sm4shexplorer release thread and guide by fungus
- SDCafiine thread
- Adding Character Slots guide by Mastaklo
- Costume Slot Text guide by KillzXGaming
- Sm4sh character parameters spreadsheet by Sammi Husky
Additional Options & TutsCheck out these alternate dumping methods and tutorials!
- uwizard dumping tutorial by fungus
- sm4sh2sd tutorial by fungus
- disc2app dumping tutorial by ThatNintendoNerd
- Smash Forge holistic modding tool - you can use this instead of PARAM.exe etc. if you like
What You NeedYou're going to need a few files to get started with. We'll use all of this eventually, although some of it is optional - you only need it if you're going to do things that you don't strictly have to.
fungus' Sm4shexplorer 0.07.3 - this is the primary tool we'll be using. Extract it somewhere with a fair bit of space.
ddd title dumper - used to get the files from your copy of Sm4sh so that you have base resources to work from. Techically you could also use a dump that fell off the back of a lorry, just make sure it matches your region and that it's a dump of 1.1.7 (if you have to update the game then you'll need to use ddd since the update data is held separately on stuff like WiiUUSB Helper).
SDCafiine - this is an on-the-fly resource injector that loads resources from an SD card over pre-existing resources. The latest version can do USBloading as well, but for the purposes of this guide we'll be assuming you're using an SD card (you probably are anyway if you've got Haxchi or w/e set up).
PARAM.exe - already included in the Sm4shexplorer download, under "tools". We'll be using this to add costume slots. It's also useful for adding custom text, which we'll get to later.
MSBT Editor Reloaded - STRICTLY OPTIONAL, we'll be using it to add custom text for characters on things like the boxing ring stage background or on the victory screen. You can COMPLETELY SKIP THIS if you want to.
Blake Belladonna (RWBY) skin for ZSS by Dakavos - technically any mod will do, but this one has all the right filetypes for making a good tutorial, I can vouch that it works, and you don't have to unlock anything to test it.
1. Good, Raiden, but first you have to take a dumpThe following instructions will also be present in the ddd thread linked above; they're repeated here for absolute clarity.
- Disable the WiiU's automatic power down or you're going to have a bad time. You can do this from system settings -> power options.
- Make sure you have ddd set up on your sd card properly (since we're assuming that you have Haxchi etc. set up properly I'm not going to walk you through this step, it's mentioned here just as a sanity check).
- Open up a terminal (start button -> cmd -> return will open one as a semi-shortcut) and navigate to the folder the ddd server is set up in. The primary command for this is
cd <path>where path is the folder's path, i.e.
- Once you've navigated to the folder containing titledumper.exe, do
titledumper.exe /vol <output>
where <output> is the location that the files will be dumped to on your computer. The dump will be 15.7gb or so - make sure you've got space.
- Load up your WiiU, head into Homebrew Launcher, and run ddd. Select your computer's IP (its internal IP on your home network - you can either check this through the router or by using
ipconfig /allin the terminal - make sure you don't give it your external IP) and hit X. This will dump you back to the WiiU system menu. Run the title you wish to dump (Sm4sh, in this case).
- THIS WILL TAKE A WHILE. If you got the IP right, the game will lock up on the splash screen as it tries to load, and the terminal you began loading titledumper.exe from will report back on the status. Remember: it's dumping 15.7gb over an internal network, so at best you'll usually get a speed of 1mbps, or 1gb per 1000 seconds (bit over 15 minutes per gig). When the game starts running again, the dump is finished; you can close stuff down and we'll move on.
Use the time while ddd is loading to do stuff like browse gamebanana for more mods you'd like, is what I did. Alternately, set it up before you go to bed - it's going to take a few hours at minimum so why not?
2. Exploring with Sm4shexplorerUnzip Sm4shexplorer wherever you like it, and run Sm4shFileExplorer.exe - it will ask for the filepath of the Sm4sh dump you made, and then attempt to autodetect the game version (304 for 1.1.7, 288 for 1.1.6) and region (it's not as good at this - PAL players in Australia or the UK may have it detect as US). Make sure you have it set to the right region. If you screw up anything at this step, you can manually edit sm4shmod.xml or just delete it and reopen Sm4shFileExplorer.exe to repeat the process.
Let's start by getting access to the first of two files we're going to be screwing around with the most.
Your initial screen should look basically like this. The files that are in green text are because this is my version of Sm4shexplorer that has the modspack stored in it - they represent folders that contain edited files. Now, here's where things get fun: what we have to do next differs between PAL and NTSC versions of the game.
NTSC USERSBrowse to
data\param\ui\ui_character_db.binand right click it, then hit extract. It will appear in Sm4shExplorer 0.07.3\extract\data\param\ui (in your browser).
PAL USERSAccess the data(xx_xx) folder for your region. So, for example, I access eu_en because I'm in Australia. If you're in France, access eu_fr. Navigate to
data(xx_xx)\param\ui\ui_character_db.binand right click it, then hit extract. It will appear in Sm4shExplorer 0.07.3\extract\data(xx_xx)\param\ui.
This file basically contains all of the "vital statistics" of the characters, and for that reason, we'll be using it. Open up PARAM.exe (in Sm4shexplorer's Tools folder) and then open
This looks really complicated. DON'T PANIC. This is where the spreadsheet linked earlier comes into play. Okay, we're going to use that Blake skin for Zero Suit Samus, so the first thing we have to do is find ZSS' entry. This is accomplished by checking Line 6 of each Entry. This is the Character ID.
Looking at the spreadsheet tells us that ZSS' Character ID is 25 (use the CharID in the left column, not the hex offset next to it). Therefore, browse down each entry until you find Line 6 with a value of 25.
The line immediately below Line 6, Line 7, contains a value which is used as a range for how many selectable costumes the character has. This value can be 16 at most thanks to Little Mac. Most characters will have a value of 8 in their Line 7. Click on the Line 7 value and replace it with 10 instead of 8. Make sure you click on something else before doing file -> save, or else it won't always save the way it should.
We're not actually done with this file yet, so we won't re-add it to Sm4shexplorer's heirachy yet - we're saving now so that we don't have to worry about it later.
If you want to optionally insert text later in step 4, keep PARAM.exe open because we'll be using it again; if not, you can close it now.
EDIT: Something I discovered literally today is that you can doubleclick a file in Sm4shexplorer and it will intelligently open the file (msbt files require that you have a valid hex editor set up that Sm4shexplorer can find though), and when you save and close PARAM.exe it will ask if you want to reinclude the modified file right then and there. Efficient!
3. Inserting BlakeSo, what we just did was change the game's database slightly, telling it that ZSS has ten costumes instead of 8. If you were to compile it now (after adding the file back in, more on that later), you'd just have two more default ZSSes when you cycled through her costumes. We're going to change that up now.
blake_belladonna_v1_2.zipand check the files inside. It comes with a nice README you can use (and you should have it open when you're doing this anyway even if you're confident in yourself or me, just in case something gets screwed up). Blake has two versions: one with a bow hiding her cat ears, and one without. The reason we made two costume slots available is because we're going to use both. Start by extracting these two folders somewhere close to hand. You'll notice they each contain three folders: voice, cXX, and csp.
Back in Sm4shexplorer, browse to
data\fighter\szerosuit\model\bodyand you'll find a whole bunch of folders labelled c00 through c07. We're going to make a brief aside because I want to drill something into you really quickly:
Whoever devised the file heirachy of Sm4sh was either an idiot or an intern. Computers begin counting from 0, which is why the costume folders begin at c00. However, for reasons unknown to man, csp files (which cover things like the character select portraits, stock icons, and so on) begin from 1. This means that whenever you are renaming csp files, you must offset that number by +1. So if you're adding csp files to a costume in folder c08, the csp files will use 09 as their number.
It's possible this is because csp icon 0 is the debug icon (red x on black square) which will appear if a csp file is not found, but if that's how they wanted to do it they could have done the classic SNES technique of giving it either a maximum value or a value of -1 as the debug and then had parity in their file system.
Anyway, let's start with default Blake. Rename her CXX folder to c08, then drag and drop it onto the body folder in Sm4shexplorer - this will make a new folder called c08 right there. Next, open up her voice folder and rename
snd_vc_SZerosuit_c08.nus3bank. Then, drag that file into
szerosuit\sound. If you're a PAL user, you'll also need to drag that file into
data(xx_xx)\fighter\szerosuit\sound- the game checks that folder for audio files as well, so that you get the correct dub language.
Apparently you can sometimes get by without updating the locale folder; I've never had that work for me but if it works for you that's great - you can skip some extra fiddling around.
Now for the CSP files. Navigate to
data\ui\replace\chrand you'll be presented with a bunch of folders. Blake comes with five chr .nut files for use here, and this is where the +1 offset I mentioned earlier comes into play. Each of the files has an XX value in it. We named our Blake costume folder c08, so for the CSP files, replace XX with 09. So you should have:
These files go into their respective folders, so chr_00 goes into the chr_00 folder. PAL Users: if your skin includes a chrn_11 file, then you will also have to go to
data(xx_xx)\ui\replace\chrand drop the file into the chrn_11 folder there. Failure to do this will cause the game to enter an infinite loading loop when attempting to access the character select screen.
Now, repeat the process for Faunus Blake. This time, though, use c09 in the body folder and voice file, and 10 in the CSP files.
You're actually all set now - all you have to do is add the edited character db file back into Sm4shexplorer and build the modspack, and you'll be able to access Blake (complete with her own voice) by cycling through Zero Suit Samus' costumes. However, it will still use Samus' text on the victory screen, for example, so we're going to fix that as well. This is optional: if you just want the skin and don't care about the rest, then you can skip ahead to step 5.
4. Hello, World (OPTIONAL)In Sm4shexplorer, navigate to
data\ui\message\melee.msbtand extract it the same way as before. PAL Users: you need to go to data
(xx_xx)\ui\message\melee.msbtinstead. Once extracted, open up MSBT Editor and open melee.msbt with it. This file contains LOTS of strings of text, but we're going to look at four in specific:
In these contexts, XX is a number beginning at 01 while Character is the internal name of the character. Don't get caught out by this - internal names are basically all one word and may not be what you're expecting. For example, Dark Pit is "Pitb", Charizard is "Lizardon", Ganondorf is "Ganon", and so on.
In this case, in the text bar in the lower left, type in
MmelCharaA_09_Szerosuitand click the + button. This will add that entry to the database, and you can then edit it. Repeat this for each of the four letters - the only thing changing is that you're putting C, N, or R instead.
As for the different letters and what we'll be putting next to them:
MmelCharaA: Text displayed on the boxing ring stage when the background goes into its "Versus" mode. Allows upper- and lowercase characters and two lines of text. This is generally description rather than a name. You can put in whatever you want here. We'll do something simple:
The Beast Descends
MmelCharaC: Text displayed underneath character's % or HP Gauge at bottom of screen. Allows uppercase and one line of text. Keep this one short. This is a character name.
MmelCharaN: Text displayed on the screen in Pokemon Stadium. Allows upper- and lowercase and one line of text. Usually the character's full name.
MmelCharaR: Text displayed in gold on the victory screen. Again, usually the full name. Allows uppercase and one line of text, but the text is smart and can squish up a bit.
When you're finished, repeat this again, but instead of 09, use 10.
Save the file when you're done tweaking things and return to PARAM.exe. Lines 37-52 of each character's entry covers their costume files. Scroll down and change the values of Lines 45 and 46 to 9 and 10 respectively. There's a quiet +1 offset here which I think is due to costume 0 being a debug costume - line 45 should cover the 9th slot costume, but it covers the 8th slot costume intead. The value you input, however, corresponds to the CSP files, because Sm4sh.
Save and you're ready to finish things up.
5. Settle It in Sm4shDrag and drop
melee.msbtback to where you found them (remember to drop them on the folder icon, not on top of themselves in the Sm4sh heirachy).
Let's set up your SD card quickly: make sure SDCafiine elf is in the apps folder like it should, and create a folder on the root of your SD card called sdcafiine. Inside it, you'll need to make a folder named one of a few things depending on your region:
Technically it isn't necessary to do this manually (Sm4shexplorer will do it for you when you export), but this entire tutorial is about doing things manually. Once that's set, go back to Sm4shexplorer and do Project -> Build Modpack and it'll get to work. This can take a while depending on how many things you're including and especially for PAL players who have to repack all the locale files. When it's done compiling, it'll ask you to specify a name for the modspack (with recent versions of SDCafiine, you can select a modspack at runtime if you have them with different names), and then automatically send it over to your SD card.
Eject the SD card safely, plug it back into your (switched off) WiiU, power on and launch SD Cafiine through the Homebrew Launcher. It will boot you back to the WiiU main menu; launch Sm4sh and your mods should work just fine.
If what you get looks like this, then you nailed it.
This is a basic example which should be applicable to most simple character skin hacks, so go forth and multiply your available characters.
6. Other Stuff and Potential ProblemsI'm stuck in an infinite loading loop!
If you're a PAL user, this seems to be caused by not having a valid chrn_11 file in your data(xx_xx) folder. Even if you're sure you've done it, double-check there first - every time this has happened to me, that has been the cause.
The character has a white block instead of a name.
This occurs when a character doesn't have a chrn_11 file but you gave them custom text in step 4. You can either undo the custom text, or you can extract the character's default chrn_11 file and rename it to match the other CSP files, then drop it in. Note that you'll get standard text on any screen which requires a dedicated CSP file rather than reading compiled plaintext - you have to actually make the correct .nut file which is out of the scope of both this tutorial and my abilities. The white block should only appear on the character select screen and classic mode renders (might happen anyway if you're using a character who doesn't have classic mode renders and have custom text set for them, even if they have proper CSP boilerplates and so on).
The character name appears one (or more) costumes early/late.
This means that when you edited the character's entry for specific costume text in PARAM.exe in step 4, you were offset by the given amount. This is easily fixed, though - just revert the wrong value to the default one (this is either 1 or 0 for most characters), and then move a number of lines equal to how many costumes 'off' the name is.
Some characters behave strangely when I apply new skins, text, voice etc. to them.
Assuming there isn't some sort of bug in the applied content, you should check out 3.3.3 in this guide - some characters that have dramatic form changes work in a somewhat different way.
Can I replace a character entirely?
Sort of. There are dedicated models for 8-Man Smash and costumes for team matches, so if the character doesn't have the right body files for those, you'll end up getting the original character. In terms of just playing 1v1 or whatever, though, yes you can: simply reduce the value of the character's costume range (Line 7) to the number of costumes in PARAM.exe, and replace the character's first X costume folders with your mod skin's folders (c00 onwards). So, for example, if you use Dakavos' Ruby Rose skin over Dark Pit, along with DusterBuster's Ruby Rose alt colors, you'd put them over folders c00 through c03, and reduce the value of Dark Pit's Line 7 entry to 4 from 8.
How does custom text work with a replaced character?
Instead of adding new lines, just edit the default entry. So continuing the Ruby example, you don't need to set alt text for all three recolors - just edit
MmelCharaX_01_PitBto be Ruby-specific and it will be used for all of them.
Where's the table of contents?
Look at all the gamebanana points I don't have!