Update: Now with LayeredFS, it's much easier to mod the game on an emulator!
So I'll be going to show you how to install mods on Citra Emulator. That way, it's easier to test model imports while your 3DS is being used or charged or don't have a 3DS(I'm looking at you Wii U Modders).
This guide will also help you install mods for Pokemon and other SaltySD supported games but use a different titleid. If you want to know the titleid of a specific game, go to 3dsdb.com. I might do a tutorial on installing Pokemon randomizers via SaltySD soon.
(Outdated Disclaimer)
If you're 3DS is not modded and below firmware 11.4, please follow this guide to install CFW on your 3DS. DO IT PROPERLY! If your 3DS is on 11.4 or above, you're screwed if you don't have flashcarts.
Come back here once you're done modding your 3DS.
(New Disclaimer)
Like from my last guide on installing mods,
If you're 3DS is not modded, please follow this guide to install CFW on your 3DS. DO IT PROPERLY!
Come back here once you're done modding your 3DS.
1. Requirements:
- Modded 3DS with Luma CFW
- Homebrew Launcher(for dumping NAND)
- Super Smash Bros for Nintendo 3DS
- Super Smash Bros for Nintendo 3DS Update 1.1.7 (Optional: DLC)
- Smash 3DS dump(for obtaining decompressed code.bin) (Optional)
- SaltySD's code.ips
- A mod that you want to install
- Citra 3DS Emulator
2. Preparation:
- Installing Hacked 3DS and dump the game and update
- Download the latest Nightly Build or Canary Build on Citra's website.
- Download SaltySD.
3. Dumping things from the 3DS:
Before you start playing the emulator, you have to dump these stuff. Sadly, I'm not allowed to share shared_font.bin, NAND, or game's update as it's considered warez and piracy. If I put these here, I might get banned from the site.To dump shared_font.bin or other files from the 3DS, go to these 2 links. Here Here
If you don't know how to dump game and update from the 3DS, here it is:
3.1. Dumping Smash Bros digitally:
- Open Godmode9(requires CFW) by holding the START button while booting
- [A:]SYSNAND SD/title/00040000/000edf00/content/
- Select <8 Digit number>.tmd
- Look at the bottom screen and select TMD file options and Dump CXI/NDS file
3.2. Dumping Smash Bros physically:
- Open GodMode9 by holding the START button while booting
- [C:] GAMECART
- Select 00040000000edf00.trim.3ds
- Select NCSD image options and Decrypt file (0:/gm9/out)
3.3. Dumping game's update:
3.3.1. Method 1:
- Open Godmode9 by holding the START button while booting
- [A:]SYSNAND SD/title/0004000e/000edf00/content/
- Select <8 Digit number>.tmd
- Look at the bottom screen and select TMD file options and Dump CXI/NDS file
Once you're done dumping, insert your SD Card to your computer and you can get them on gm9/out folder.
3.3.2. Method 2:
Since Citra's latest update added Install CIA, you don't need to convert those to CXI.- Open Godmode9 by holding the START button while booting
- [A:]SYSNAND SD/title/0004000e/000edf00/content/
- Select <8 Digit number>.tmd
- Look at the bottom screen and select TMD file options and Build CIA (standard) or Build CIA (legit)
Once you're done dumping, insert your SD Card to your computer and you can get them on gm9/out folder. For the update, place it somewhere on your Desktop. Proceed to Method 2.
4. HackingToolKit3DS:
Now that you got the game and update, use HackingToolKit 3DS to extract the game data. When the tool asked you to compress code.bin, type n.Once the extraction is complete, go to ExtractedExeFS and get a copy of code.bin by CTRL + C it and then paste it on desktop.
Download HERE!
5. Patching code.bin:
Update: This method is now obsolete. You don't have to patch it as Citra Canary now support LayeredFS. Skip this part and proceed to LayeredFS.I have been informed by one of Citra's contributors, Leo121, and he told me to take down the link to code.bin as it contains copyrighted materials. My apologies. If Shiny Quagsire add support to code.ips, it's fine to share those. To those who got the code.bin, you can still use it but you're not allowed to share it.
Follow this guide to get code.bin and patch it:
HERE
Another way to patch code.bin is to use LunarIPS. You have to download SaltySD’s code.ips and you need your decompressed code.bin and put them beside LunarIPS. The rest is self-explanatory. You also need to get the code.bin from the Smash 1.1.7 update. It’s in ExtractedExeFS.
6. Installing SaltySD:
Now I'll separate this into two, Code.bin and LayeredFS.6.1. Getting User Folder and Installing SaltySD (Code.bin):
So I'm gonna divide this into two, one is for the ZIP users and the other for the Installer users and each of them will divided into different methods. Sounds counfusing? This is ZIP users and this is Installer users:ZIP:

Installer:

Let's start of with ZIP users because I don't like to install installers and some of the updates will break and have to wait for few days for a fix.
Disclaimer: I put <8 Digit number> before the extension because we don't always have the same file name. So replace the <8 Digit number> with the file name that you have.
Example: 00000005.app | 00000005.tmd | 00000005.app.exefsdir
6.1.1. ZIP:
Method 1:- Open Citra Emulator and then close it.
- Go to %appdata% and move Citra folder to the emulator folder and rename it to user.
- Follow the guide on placing shared_font.bin and NAND(the 2 links before).
- Place <8 Digit number>.cxi on user/sdmc/Nintendo 3DS/<zeros>/<zeros>/title/0004000e/000edf00/content/
- Rename it to <8 Digit number>.app(if asking, just click yes).
- Move your code.bin to user/sdmc/Nintendo 3DS/<zeros>/<zeros>/title/0004000e/000edf00/content/<8 Digit number>.app.exefsdir/
- Rename saltysd_code.bin to code.bin.
Method 2:
- Open Citra Emulator and then close it.
- Go to %appdata% and move Citra folder to the emulator folder and rename it to user.
- Follow the guide on placing shared_font.bin and NAND(the 2 links before).
- On Citra, go to File and click Install CIA
- Locate your dumped CIA and install it. Wait until it's finish
- Move your code.bin to user/sdmc/Nintendo 3DS/<zeros>/<zeros>/title/0004000e/000edf00/content/<8 Digit number>.app.exefsdir/
- Rename saltysd_code.bin to code.bin.
6.1.2. Installer:
- Go to %appdata% and open Citra folder
- Follow the guide on placing shared_font.bin and NAND(the two links before)
- On Citra, go to File and click Install CIA
- Locate your .cia and install it. Wait until it’s done
- Move your code.bin to Citra/sdmc/Nintendo 3DS/<32 zeros>/<32 zeros>/title/0004000e/000edf00/content/<8 Digit number>.app.exefsdir/
6.2. Getting User Folder and Installing SaltySD (LayeredFS):
So I'm gonna divide this into two, one is for the ZIP users and the other for the Installer users. Sounds counfusing? This is ZIP users and this is Installer users:ZIP:

Installer:

Let's start of with ZIP users because I don't like to install installers and some of the updates will break and have to wait for few days for a fix.
6.2.1. ZIP:
- Open Citra Emulator and then close it.
- Go to %appdata% and move Citra folder to the emulator folder and rename it to user.
- Follow the guide on placing shared_font.bin and NAND(the 2 links before).
- Get your code.ips/code.bin that you download and place it on user\load\mods\00040000000EDF00\exefs.
6.2.2. Installer:
- Go to %appdata% and open Citra folder
- Follow the guide on placing shared_font.bin and NAND(the 2 links before).
- Get your code.ips/code.bin that you download and place it on Citra\load\mods\00040000000EDF00\exefs.
7. Additional Note (High Poly Code):
Since mods nowadays are require to use the High Poly Code by Super Smash Bros. Neos, it's basically the same way as how you install code.ips with the exception of deleting/renaming exefs and have code.bin. Although, Neos did have code.ips for their High Poly Code. It's just these modders here distribute the code.bin and not the code.ips. So apologies for the confusion.TL;DR:
It's the same method from above. Just download High Poly Code from the link above.
8. Installing Improper/Unorganize Mods:
Well, I have to explain you people what considers an Improper/Unorganized Mod.These are mods that have no direct path for the file, those that requires you to rename the folder (cXX, hXX, chr_00_<name>_XX.tex, etc), and those that are not in their right path (or using Wii U's path). Please use your brain and figure things out yourself.
- Download a specific mod that you like here on Gamebanana(Wii U sounds would work for 3DS but you have to rename them), GBATemp(mainly this one and this one), or other sites.
- Please check the files you download if the folders aren't in their right place.
- If they're in the right place (with correct path), skip this tutorial and proceed to Modpack/Proper/Organized Mods. If it's not, continue...
- Use the template as a guide so that you could place these files to their place. (Look at the Example and Contents below)
- Eject your SD Card and then insert to your 3DS
- Open Smash 3DS and wait for it to load (some modpacks like UsM-eM, Neos, and Turbo'd will load too slow when you first install them, depending on the type of SD card you use)
- Enjoy!
8.1. Example:
But since people have a hard time understanding things, here's an example.I'll use N64 Mario as an example(this might get updated or trashed in the future).
If you look at the ZIP file, you can tell that it's not in its right folder which won't load the mod properly.

Fighter:
All you have to do is create a folder and name it model in smash folder.
Then, create another folder inside model folder and name it fighter.
Then, create another folder inside fighter folder and name it mario. (Case sensitive. No CAPS in the name)
Then, create another folder inside mario folder and name it body.
Lastly, drag c05 and h05 in the body folder.
So it will look like this:
saltysd\smash\model\fighter\mario\body\c05
saltysd\smash\model\fighter\mario\body\h05
UI:
All you have to do is create a folder and name it ui in smash folder.
Then, create another folder inside ui folder and name it replace.
Then, create another folder inside replace folder and name it chr.
Then, create five folders inside chr folder and name them:
- chr_00
- chr_20
- stock_00
- stock_90
So it will look like this:
saltysd\smash\ui\replace\chr\chr_00
saltysd\smash\ui\replace\chr\chr_20
saltysd\smash\ui\replace\chr\stock_00
saltysd\smash\ui\replace\chr\stock_00
Note: If you don't want to make folders, you could download the template
https://mega.nz/file/kRgjyajL#ja_1H97K8I9l7UsKKb9zndRF-vw2FHQMlDwUlVXQFfg
Remember to READ THE TEXT DOCUMENT FILE! IT'S VERY IMPORTANT FOR YOU TO LEARN!
8.2. Contents:
Characters:Path:
saltysd/smash/model/fighter/<fightername>/body/<costumes>/
<fightername> (it has to be lowercase):
https://pastebin.com/CjagiJNQ
<costumes>:
c00/h00 = Default
c01/h01 = 2nd Costume
c02/h02 = 3rd Costume
c03/h03 = 4th Costume
c04/h04 = 5th Costume
c05/h05 = 6th Costume
c06/h06 = 7th Costume
c07/h07 = 8th Costume
(Little Mac and additional costumes):
c08/h08 = 9th Costume
c09/h09 = 10th Costume
c10/h10 = 11th Costume
c11/h11 = 12th Costume
c12/h12 = 13th Costume
c13/h13 = 14th Costume
c14/h14 = 15th Costume
c15/h15 = 16th Costume
NOTE: If you are going to put a mod over an additional slot, follow this guide.
UI:
Normal path:
saltysd/smash/ui/replace/chr/<chr files>/<chr>
DLC path:
saltysd/smash/ui/replace/append/chr/<chr files>/<chr>
<chr files>:
https://pastebin.com/1Q6tybhb
<chr>:
Basically, it's the file inside <chr files>. So if the mod have chr_00_Mario_05.tex, then it should be like this:
ui/replace/chr/chr_00/chr_00_Mario_05.tex
<chr>_<fightername>_<costumes>.tex
Ex:
chr_00_Mario_05.tex
For <fightername>, it have to start with a captial letter. all lowercase for the fighter name will not load.
<costumes>:
01 = Default
02 = 2nd Costume
03 = 3rd Costume
04 = 4th Costume
05 = 5th Costume
06 = 6th Costume
07 = 7th Costume
08 = 8th Costume
(Little Mac and additional costumes):
09 = 9th Costume
10 = 10th Costume
11 = 11th Costume
12 = 12th Costume
13 = 13th Costume
14 = 14th Costume
15 = 15th Costume
16 = 16th Costume
Sounds:
Wii U sounds works for 3DS but sometimes static.
Voice Clip Path:
saltysd/smash/sound/vc/
Music Path:
saltysd/smash/sound/bgm/
or luma/titles/<titleID>/romfs/sound/bgm
Sound Effect Path:
saltysd/smash/sound/se/
For the names of the music file, go here.
9. Installing Modpacks/Proper/Organize Mods:
So one person on the Discord server have a hard time installing a modpack because of instruction 2 above. So to make this fair and square for newcomers who are afraid to look at other folders inside the modpack, here's how you install modpacks and also proper/organize mods with arranged path:- If the zip/rar file starts with smash folder, drag it to saltysd folder.
- If the zip/rar file starts with saltysd, just drag the entire file to sdmc.
- If the zip/rar file starts with a bunch of folders, drag it to smash folder.
- Open Smash 3DS and wait for it to load(some modpacks like UsM-eM, Neos, and Turbo'd will load too slow. That's normal)
- Enjoy!
10. Reminder:
I've been using "000edf00" on this guide because my 3DS is US Region. If your 3DS isn't US, here are some other IDs.EUR: 000ee000
JP: 000b8b00
11. Recap:
- Citra Emulator
- Dump shared_font.bin and NAND
- Dump game and game's update
- Move them to their respective folder
- Install CIA on the emulator
- SaltySD bin should be named code.bin
- user/sdmc/Nintendo 3DS/<zeros>/<zeros>/title/0004000e/000edf00, 000ee000, 0000b8b00/content/<8 Digit number>.app.exefsdir/
- LayeredFS: user\load\mods\00040000000EDF00\exefs for code.ips/code.bin
- Game ID:
US: 00040000000EDF00
EUR: 00040000000EE000
JP: A0040000000B8B00
12. Uninstall Mods:
Now look. This is by far the EASIEST way to unintall mods. But since there are people who are too afraid to touch a file or delete it and might get brick for no particular reason at all, here's how to uninstall mods if you don't want to play mods entirely.12.1. LayeredFS:
- Go to load/mods/ and delete the Smash title id folder
- Go to sdmc and delete saltysd folder
12.2. Code.bin:
- Go to sdmc\Nintendo 3DS\00000000000000000000000000000000\00000000000000000000000000000000\title\0004000e\000edf00\content\<8 Digit number>.app.exefsdir and delete code.bin
- Go to sdmc and delete saltysd folder.
But if you want to uninstall one mod and keep the other, there are two options, either delete the certain mod you don't want to use or delete everything and reinstall the mod again.
13. FAQ:
Q: Is this a legit emulator or is this a scam?A: This is a legit 3DS Emulator on the works. Updates and archive_ncch are made by Shiny Quagsire. But Citra is made by bunnei and other contributors and devs.
Q: Can I play Citra Online with these mods.
A: Yes. Thanks to the devs for implementing Local Multiplayer Support back on November, you can fight with your friends or fight yourself. However, you cannot go to ONLINE cause it requires NNID and internet. As of now, you can fight with your friends at SMASH(or Local Play).
Q: Can I play it on mobile?
A: Well, Citra is working on an official port of the emulator. But there's no release. However, there is an unofficial build by weihuoya and run most 3DS games well for a powerful mobile. For the case of Smash Bros, yes, it can be modded(images taken from me but phone was borrowed, not owned by me). Also, not many phones will work on this emulator at decent speed. I got mine booting the Homebrew Menu at 2FPS and crash.
Here's a guide for the Android port.
Q: The game lags so much.
A: It depens on the computer you're using. If you have a decent specs like I do, there will be some slow downs but some parts are full speed. There are custom or unofficial builds posted on GBATemp which gives you better performance. But however, some or most unofficial builds will run a certain game better than Smash. So I highly recommend you to try out the Canary Build.
Q: Does model imports and custom stages work on this emulator?
A: Yes.
Q: I can't load Turbo'd, Neos, and USM-eM on this emulator.
A: Just like the 3DS, modpacks will load slow at start. Just wait for few minutes.
Q: Can I use this emulator to test mods like model imports or texture hacks?
A: Yes. You can use the emulator for testing purposes. It's easier to test on an emulator than reinsert your SD Card/Micro SD Card a dozen times.
Q: When I tried to update, I got this error "The file that you are trying to install must be decrypted before being used with Citra. A real 3DS is required". Send help.
A: That's because you illegally download that! No piracy and no, I'm not allowed to send you the .cia. Don't even DM me too. Either get a 3DS and dump it yourself or screw it and leave.
But if you didn't actually pirate and dump it as encrypted, make sure you follow the guide on dumping keys for Citra. Just Google Search.
Q: I download a mod and it doesn't work!
A: There are alot of reasons why it doesn't work. Most notably, you didn't install the mod right as some mods don't have the right directory or missing a folder. Others have the folder with captial word like Smash or Luigi. Files are case sensitive. Some folders have to be lowercase. Also, check the file if it's correct or not. Some have cXX or hXX which require you to rename them to any slot.
Q: Will this work on older versions like 1.1.4 or 1.0.0?
A: No. SaltySD only support the latest version.
There are plenty of questions asked. I'll update once you've got a problem or I made an error on the guide. Anyways, enjoy using them and record high quality for some Smash bros Youtuber who showcase salty videos.
Other questions will be in the other guide right HERE!
14. Video:
15. Tutorial Video:
This is for the people who can't read or hate reading looooooooong guides. Someday, this video will get outdated and you have to force to read the written guide.If any concerns, visit the Smash 3DS Hacking Server (now known as Smash 3DS No-ing).
Since Gamebanana removed the link to the server for no reason, here's the same old invite link.
https://discord.gg/VJA9NcS
Thank you!