ROM Hack [Smash 3DS] Complete ROM Hacking guide (Textures, music, SFX/voice clips)

Status
Not open for further replies.

cimmanonroll

Well-Known Member
OP
Newcomer
Joined
Sep 22, 2015
Messages
89
Trophies
0
Age
21
XP
237
Country
United States
*Though I see no real risk of bricking from this, I take no responsibility for any damages done to your 3DS.*

NOTE: This process is possible using Windows. I'm unfamiliar with Mac and I assume it would be somewhat different, but probably possible.

YOU WILL NEED:

  • A 3DS w/ CFW
  • FBI/BBM
  • This pack, which includes the programs & scripts needed for the extracted data
  • A cartridge/downloadable USA version of Smash 3DS
  • If you want custom textures & sounds for the DLC content, you need a 1.1.4 CIA
  • Python
EXTRACTION
  • Use this guide by Asia81 to get the ROMFS/EXEFS from the original game, and use this other guide by Asia81 to get the data from the 1.1.4 update. These tutorials are very friendly and I highly suggest them. They may contain outdated information, but it's not a big issue.
  • Once you have followed both guides, you should have extracted ROMFS and EXEFS for the game and update. Open the "Extraction" folder in the "Obtaining Files" folder. Place the ROMFS & EXEFS of the original game in the "Original" folder. Place the ROMFS & EXEFS of the 1.1.4 update in the "Update" folder.
  • Launch "RomFS Extractor", which is found in the "Update" and "Original" folders. Use this program to extract the data from the ROMFS of the update and original game, by selecting the ROMFS files you have obtained through the tutorials above. Allow the program to fully extract both titles. Make sure they extract to seperate folders.
  • Open the newly-created folder with the extracted data of the original game. Copy the files from "DTLS" directly inside this folder. Hold shift and right click, and open the command prompt. Paste the following inside the prompt: DTLS.exe dt ls
  • Allow the program to extract all the game files. It will take a couple minutes.
  • Copy the file from "DTLS Update" into the folder with the extracted data of the 1.1.4 update. Hold shift and right click, and open the command prompt again. Use this command to extract the data of the update: dtls.py dt ls outdir/
  • Allow the data to be extracted from the update. This will take a couple minutes, as well.
  • Once extracted, drag and drop the "data" folder from the extracted 1.1.4 files into the original game's extracted ROMFS files. When asked to merge any folders, say yes. When asked to replace any files, say yes. This will combine the data of the original game with the data of all updates up to 1.1.4, meaning all game files are in one spot. I highly suggest you backup the merged 'data' folder somewhere on your computer.
CUSTOM TEXTURES
  • Launch Ohana3DS, which is included in my pack.
  • Once loaded, click past the splash screen and you should be in the "model" section.
  • Click the "Open" button on the bottom of the window.
  • Locate the "data" folder you extracted. Inside, find the following directory: \ui\model\chara\chara_hand\normal.bch
  • Open "normal.bch"
*NOTE: .bch files are Smash 3DS character texture files, while .mbn files are Smash 3DS model files!*
  • Now, click "Open" again while still on the model section. Return to the root of the 'data' folder, and find the following directory: \model\fighter\[CHARACTER OF YOUR CHOICE]\body\
  • You will see several folders, all starting with either c0 or h0. c00 and h00 are folders containing the data for the default alts. c01-7 & h01-7 are folders containing the data for other alts. c0X folders are the models used when in gameplay, which are lower quality to make the game run faster. When the game is paused, the models from h0X are loaded, which contain higher-quality models/textures.
  • From here on, I'll be using an example: Suppose you want to edit Ness' second alt. You would open h01 and select 'normal.mbn'. You will get an error here, ignore this. Click "Open" again and locate 'normal.bch'. You will get another error here. Ignore it, as well.
  • Now, locate the textures section on the left. Once here, you will see the files for textures. These are higher in resolution than c0X models, so I suggest loading those models as well and seeing the proper resolution for the textures on those. I reccomend Picresize for this. Ohana3DS suffers from errors often, but from my experience most features will work. Just make sure you always load the \ui\model\chara\chara_hand\normal.bch model before loading the character model. There's import and export buttons on the bottom of the window. Make sure to click the "Save" button once you're done importing.
  • Don't forget to include both c0X and h0X folders when implementing edits through SaltySD! (\model\fighter\ness\body\h0X & c0X)
  • Basically: Launch Ohana3DS, "Open", \ui\model\chara\chara_hand\normal.bch, "Open", \model\fighter\[CHARACTER OF YOUR CHOICE]\body\c0X or h0X\normal.mbn, ignore error, "Open", 'normal.bch' from same folder, ignore error, click textures tab on left, import and export as you please, "Save" when done importing if you are doing so. Make sure you include both c0X and h0X folders when patching in the edits, which is described later in this guide. Enjoy.
  • TO EDIT .TEX FILES: Use this program. Simply select a .TEX file, and you may import a PNG over it. Enjoy!
CUSTOM MUSIC/SFX/VOICE CLIPS
  • Music is located outside of the 'data' directory of the Smash 3DS files. Find it in the "sound" folder. Sound files in Smash 3DS are formatted as .nus3bank, and any VGM from Smash Custom Sounds can be downloaded in this format. Simply download nus3bank music off Smash Custom Sounds and replace tracks from the game to your liking. Soneek is working on a way to expand this limit and allow us to add music without replacing, and removing the 2 track-limit on stages.
  • To create custom SFX, begin by opening the "Sound" folder in my pack. There is a notepad text file inside. Open this and copy the link into your browser. Unzip the file received from this link and place the .exe file inside "Smash IDSP Build".
  • We will use an example here. Suppose you want to replace the voice clip of Marth's down-taunt. You would need to locate the nus3bank for it in the data folder, which would be \data\sound\vc\snd_vc_Marth.nus3bank. Copy this file (the file of your choice, don't mind the example) and place it in the "injection & extraction" folder.
  • Open the "injection & extraction" folder. You will see two Python scripts here. One for extraction, one for injection. Hold shift and right click to open the command prompt. Use the following command: nus3bank.py [NAME OF FILE].nus3bank
  • A folder containing extracted .idsp files will be created in the injection & extraction folder. Inside, find the file you want to use. For example, with Marth's voice clips, if I wanted to change the down taunt sound, I'd locate "0xa-snd_vc_Marth_Appeal01.idsp". Take note of the ID. In this case, it's 0xa.
  • Take the .wav file you wish to use and place it in the "Smash IDSP Build" folder. Drag and drop it on the .bat file in the folder. An IDSP file of the .wav will be created.
  • Now, you can inject the custom SFX. Move the IDSP file to the "injection & extraction" folder, along with your .nus3bank of choice.
  • Hold shift and right click to open the command prompt. Use the following command: nus3inject.py [NAME OF FILE].nus3bank [NAME OF FILE].idsp [ID]
  • In this case, it'd be "nus3inject.py snd_vc_Marth.nus3bank letsdance.idsp 0xa" (Remember that unused taunt clip from Melee? Marth actually spoke English <3)
*Want to listen to extracted IDSP files so you know which one you're injecting into? Install this program and download this plugin, and when you've done this you can load IDSP files from the program and listen to them! Enjoy!*

APPLYING PATCHES
  • Go to this Reddit post and find the Secret File at the top. Download it and place it in the 'cia' folder on your 3DS SD card, assuming you have a CIA folder.
  • On the root of your SD card, create a folder named "SaltySD". Inside the folder, create another folder named "smash". Inside here, mimic the file structure of the data from the game and place edited files inside.
  • Example of model edit: \SaltySD\smash\model\fighter\marth\body\h0X & c0X\normal.mbn & normal.bch
  • Example of SFX edit: \SaltySD\smash\sound\vc\snd_vc_Marth.nus3bank (With injected custom IDSP!)
  • Delete any title updates on Smash 3DS, and then install the CIA.
  • Once the installation is complete, load the game like normal. If prompted with "An update is available", decline. The game will launch and you will be on 1.1.4. From there, you can test your edited files.
  • Example: If you changed Ness' hat to blue, you can go to Smash or Training or Home Run Contest and select Ness and start.
*NOTE: SaltySD results in long loading times when starting battles/modes! It may take over a minute. No, your console didn't crash. If something went wrong, you'd be kicked back to the home menu and a pop-up would tell you an error occurred and the console would be restarted. The loading times are so long that it is impossible to play online.*

*FIX THE AWFUL LOADING TIMES WITH SALTYSD: Use this script from @ShadowLuigi~NG~ on the root of your SD card. Simply drag & drop the "cachegen.py" script onto the root of your SD card and open a CMD prompt. Then, use the following command: "cachegen.py saltysd\smash\".


*I have also included Animcmd, a program by @Sammi Husky that allows you to edit moveset information. I am not very familiar with it, however, so feel free to look into it! However, once this program is more well-understood, I will provide documentation on it in this guide as well.*

ENJOY!
CREDITS
 
Last edited by cimmanonroll,

Manito

Well-Known Member
Member
Joined
Dec 15, 2014
Messages
327
Trophies
0
Age
25
XP
424
Country
United States
I replaced the hand model with another model and look what happened. :D
 

Attachments

  • webcam-toy-photo12.jpg
    webcam-toy-photo12.jpg
    81.5 KB · Views: 7,145

SANNIC789

Well-Known Member
Member
Joined
Oct 3, 2015
Messages
704
Trophies
0
XP
179
Country
United States
this is a thing FINLEY
now people just have to have fun with is and then
hooooo GETS HYPED!?!?!?!?!?!?
pm mabbbbbyyyyyyyyyyyyyyyyyy
:DDDDDDDD
 

TheToaster

Kishore
Member
Joined
Aug 11, 2015
Messages
467
Trophies
0
Location
USA
XP
979
Country
United States
Nice Tutorial, although some of the text seems messed up on my screen. Instead of simply adding spaces, you should center align it.

Edit: yay my 100th post!!:toot::hrth::grog:
 
Last edited by TheToaster,

Cydget

Well-Known Member
Member
Joined
Oct 1, 2015
Messages
493
Trophies
0
Age
27
XP
260
Country
United States
Is there a way to create SaltySD for the european Sm4sh version? Can't use the Patch by using the european version :(
Yes, I believe you have to shift the points of insertion up 8 bits from the given value. Check the issue tab in the git for more info.
 

CorBond57

Well-Known Member
Newcomer
Joined
Aug 16, 2015
Messages
96
Trophies
0
Location
Smashville
XP
101
Country
Netherlands
Yes, I believe you have to shift the points of insertion up 8 bits from the given value. Check the issue tab in the git for more info.
from what i have seen i'm starting to doubt it's actually 8 bytes. the reference point @shinyquagsire23 talked about in the issue page seems to be off by one or seven bytes. (not sure though, i'm not the best in hex.)

More on topic, has there been any developments in editing .tex files?
 
Last edited by CorBond57,

cimmanonroll

Well-Known Member
OP
Newcomer
Joined
Sep 22, 2015
Messages
89
Trophies
0
Age
21
XP
237
Country
United States
What file holds the announcer's voice clips for calling characters?
Explore the files! I promise you'll find anything you want within 2 minutes. Keep in mind a good chunk of the names are the Japanese ones. "Murabito" for Villager, "Gekkouga" for Greninja, etc.

--------------------- MERGED ---------------------------

Nice Tutorial, although some of the text seems messed up on my screen. Instead of simply adding spaces, you should center align it.

Edit: yay my 100th post!!:toot::hrth::grog:
It was extremely late last night so I just left it how it was, today I'm gonna fix the text and include a program for listening to IDSP files extracted from nus3bank for people to know which files they're injecting into. That program is found on Google, though, so basically the reason I'm adding it is so everything is in one spot. That was the point of this guide.

Happy 100th post. <3
 
Status
Not open for further replies.

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • No one is chatting at the moment.
    K3Nv2 @ K3Nv2: It's mostly the ones that are just pictures and no instructions at all