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
238
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,150

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
238
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.
  • BakerMan @ BakerMan:
    i said i was sleeping...
  • BakerMan @ BakerMan:
    sleeping with uremum
  • K3Nv2 @ K3Nv2:
    Even my mum slept on that uremum
  • TwoSpikedHands @ TwoSpikedHands:
    yall im torn... ive been hacking away at tales of phantasia GBA (the USA version) and have so many documents of reverse engineering i've done
  • TwoSpikedHands @ TwoSpikedHands:
    I just found out that the EU version is better in literally every way, better sound quality, better lighting, and there's even a patch someone made to make the text look nicer
  • TwoSpikedHands @ TwoSpikedHands:
    Do I restart now using what i've learned on the EU version since it's a better overall experience? or do I continue with the US version since that is what ive been using, and if someone decides to play my hack, it would most likely be that version?
  • Sicklyboy @ Sicklyboy:
    @TwoSpikedHands, I'll preface this with the fact that I know nothing about the game, but, I think it depends on what your goals are. Are you trying to make a definitive version of the game? You may want to refocus your efforts on the EU version then. Or, are you trying to make a better US version? In which case, the only way to make a better US version is to keep on plugging away at that one ;)
  • Sicklyboy @ Sicklyboy:
    I'm not familiar with the technicalities of the differences between the two versions, but I'm wondering if at least some of those differences are things that you could port over to the US version in your patch without having to include copyrighted assets from the EU version
  • TwoSpikedHands @ TwoSpikedHands:
    @Sicklyboy I am wanting to fully change the game and bend it to my will lol. I would like to eventually have the ability to add more characters, enemies, even have a completely different story if i wanted. I already have the ability to change the tilemaps in the US version, so I can basically make my own map and warp to it in game - so I'm pretty far into it!
  • TwoSpikedHands @ TwoSpikedHands:
    I really would like to make a hack that I would enjoy playing, and maybe other people would too. swapping to the EU version would also mean my US friends could not legally play it
  • TwoSpikedHands @ TwoSpikedHands:
    I am definitely considering porting over some of the EU features without using the actual ROM itself, tbh that would probably be the best way to go about it... but i'm sad that the voice acting is so.... not good on the US version. May not be a way around that though
  • TwoSpikedHands @ TwoSpikedHands:
    I appreciate the insight!
  • The Real Jdbye @ The Real Jdbye:
    @TwoSpikedHands just switch, all the knowledge you learned still applies and most of the code and assets should be the same anyway
  • The Real Jdbye @ The Real Jdbye:
    and realistically they wouldn't

    be able to play it legally anyway since they need a ROM and they probably don't have the means to dump it themselves
  • The Real Jdbye @ The Real Jdbye:
    why the shit does the shitbox randomly insert newlines in my messages
  • Veho @ Veho:
    It does that when I edit a post.
  • Veho @ Veho:
    It inserts a newline in a random spot.
  • The Real Jdbye @ The Real Jdbye:
    never had that i don't think
  • Karma177 @ Karma177:
    do y'all think having an sd card that has a write speed of 700kb/s is a bad idea?
    trying to restore emunand rn but it's taking ages... (also when I finished the first time hekate decided to delete all my fucking files :wacko:)
  • The Real Jdbye @ The Real Jdbye:
    @Karma177 that sd card is 100% faulty so yes, its a bad idea
  • The Real Jdbye @ The Real Jdbye:
    even the slowest non-sdhc sd cards are a few MB/s
  • Karma177 @ Karma177:
    @The Real Jdbye it hasn't given me any error trying to write things on it so I don't really think it's faulty (pasted 40/50gb+ folders and no write errors)
  • DinohScene @ DinohScene:
    run h2testw on it
  • DinohScene @ DinohScene:
    when SD cards/microSD write speeds drop below a meg a sec, they're usually on the verge of dying
    DinohScene @ DinohScene: when SD cards/microSD write speeds drop below a meg a sec, they're usually on the verge of dying