Ads keep us online. Without them, we wouldn't exist. We don't have paywalls or sell mods - we never will. But every month we have large bills and running ads is our only way to cover them. Please consider unblocking us. Thank you from GameBanana <3

[Guide] How to Install Mods on Citra 3DS Emulator - A Tutorial for Super Smash Bros. (3DS).

Hey guys. Shiny Quagsire finally got his archive_ncch merge to the Master Build which means, mods on an emulator!
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)
Like from my last guide on installing mods,
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:

  1. Installing Hacked 3DS and dump the game and update
  2. Download the latest Nightly Build or Canary Build on Citra's website.
  3. 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:

  1. Open Godmode9(requires CFW) by holding the START button while booting
  2. [A:]SYSNAND SD/title/00040000/000edf00/content/
  3. Select <8 Digit number>.tmd
  4. Look at the bottom screen and select TMD file options and Dump CXI/NDS file

3.2. Dumping Smash Bros physically:

  1. Open GodMode9 by holding the START button while booting
  2. [C:] GAMECART
  3. Select 00040000000edf00.trim.3ds
  4. Select NCSD image options and Decrypt file (0:/gm9/out)

3.3. Dumping game's update:

3.3.1. Method 1:

  1. Open Godmode9 by holding the START button while booting
  2. [A:]SYSNAND SD/title/0004000e/000edf00/content/
  3. Select <8 Digit number>.tmd
  4. 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.
  1. Open Godmode9 by holding the START button while booting
  2. [A:]SYSNAND SD/title/0004000e/000edf00/content/
  3. Select <8 Digit number>.tmd
  4. 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:
  1. Open Citra Emulator and then close it.
  2. Go to %appdata% and move Citra folder to the emulator folder and rename it to user.
  3. Follow the guide on placing shared_font.bin and NAND(the 2 links before).
  4. Place <8 Digit number>.cxi on user/sdmc/Nintendo 3DS/<zeros>/<zeros>/title/0004000e/000edf00/content/
  5. Rename it to <8 Digit number>.app(if asking, just click yes).
  6. Move your code.bin to user/sdmc/Nintendo 3DS/<zeros>/<zeros>/title/0004000e/000edf00/content/<8 Digit number>.app.exefsdir/
  7. Rename saltysd_code.bin to code.bin.

Method 2:
  1. Open Citra Emulator and then close it.
  2. Go to %appdata% and move Citra folder to the emulator folder and rename it to user.
  3. Follow the guide on placing shared_font.bin and NAND(the 2 links before).
  4. On Citra, go to File and click Install CIA
  5. Locate your dumped CIA and install it. Wait until it's finish
  6. Move your code.bin to user/sdmc/Nintendo 3DS/<zeros>/<zeros>/title/0004000e/000edf00/content/<8 Digit number>.app.exefsdir/
  7. Rename saltysd_code.bin to code.bin.

6.1.2. Installer:

  1. Go to %appdata% and open Citra folder
  2. Follow the guide on placing shared_font.bin and NAND(the two links before)
  3. On Citra, go to File and click Install CIA
  4. Locate your .cia and install it. Wait until it’s done
  5. 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:

  1. Open Citra Emulator and then close it.
  2. Go to %appdata% and move Citra folder to the emulator folder and rename it to user.
  3. Follow the guide on placing shared_font.bin and NAND(the 2 links before).
  4. Get your code.ips/code.bin that you download and place it on user\load\mods\00040000000EDF00\exefs.

6.2.2. Installer:

  1. Go to %appdata% and open Citra folder
  2. Follow the guide on placing shared_font.bin and NAND(the 2 links before).
  3. 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.

  1. 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.
  2. Please check the files you download if the folders aren't in their right place.
  3. 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...
  4. Use the template as a guide so that you could place these files to their place. (Look at the Example and Contents below)
  5. Eject your SD Card and then insert to your 3DS
  6. 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)
  7. 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
Lastly, drag chr_00_Mario_06.tex to the chr_00 folder and vice versa.

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:

  1. If the zip/rar file starts with smash folder, drag it to saltysd folder.
  2. If the zip/rar file starts with saltysd, just drag the entire file to sdmc.
  3. If the zip/rar file starts with a bunch of folders, drag it to smash folder.
  4. 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)
  5. 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: 000b8b
00

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:

  1. Go to load/mods/ and delete the Smash title id folder
  2. Go to sdmc and delete saltysd folder
If you don't want to delete the file, you could rename saltysd to something or rename the romfs folder.

12.2. Code.bin:

  1. Go to sdmc\Nintendo 3DS\00000000000000000000000000000000\00000000000000000000000000000000\title\0004000e\000edf00\content\<8 Digit number>.app.exefsdir and delete code.bin
  2. Go to sdmc and delete saltysd folder.
It's that simple. How hard could it be?
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!
  • ralseiplushie avatar
    ralseiplushie Joined 2y ago
    Offline
    1,426 points Ranked 25,307th
    10 medals 1 rare
    • Returned 1000 times Medal icon
    • One month a member Medal icon
    • Returned 100 times Medal icon
    • Submission featured Medal icon
    • 6 months a member Medal icon
    • Submitted 5 Mods Medal icon
    2y
    Im sorry but where is the emulator folder? i legit cant find it anywhere?
    Bananite avatar
    Mantra
    Bananite
    URL to post:
  • It it only works for me if i put the code.ips in the exefs folder. It doesn't work if i put it in the romfs_ext folder. Why?
    Bananite
    URL to post:
  • Been reading the steps over and over and I can't understand most of it like putting the mods in the "smash" folder. What folder and where should that folder be? Where should the saltysd folder should be created? Where did saltysd_code.bin came from?
    Bananite
    URL to post:
  • livipup avatar
    livipup Joined 3y ago
    Offline
    716 points Ranked 49,520th
    3y
    Hey, I'm trying to extract the data from the 3DS files I have for a couple of games, but the programs you linked to aren't working for me. I've been looking all over trying to find another way to extract them. I'm not sure if it matters, but games are Fire Emblem Awakening and Fates and the roms are decrypted. You need decrypted roms to run them in Citra, right?
    Bananite
    URL to post:
  • SillyGooseDude1 avatar
    SillyGooseDude1 Joined 4y ago
    Offline
    133 points Ranked 93,452nd
    4y
    Despite the fact that i'm using this tutorial for Miitopia, this is very helpful.
    Downloader Extraordinaire avatar
    Mantra
    Downloader Extraordinaire
    URL to post:
  • SvenDaHacker64 avatar
    SvenDaHacker64 Joined 6y ago
    Offline
    1,850 points Ranked 23,429th
    14 medals 2 rare
    • Returned 1000 times Medal icon
    • Submitted 15 Mods Medal icon
    • One month a member Medal icon
    • 6 months a member Medal icon
    • Returned 100 times Medal icon
    • 1 year a member Medal icon
    4y
    Great tutorial. Thank you for writing this up.
    Mario Kart modder.
    URL to post: