GameBanana shows no ads to members. Sign up now!
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)

Updates

Update #10: 22d
  • Tweak Missing File Directory
  • Addition Video Tutorial (for the people who hate reading)
  • Overhaul FAQ (changing the Android Port question and removed the Wolf moveset question)
Update #9: 3mo Addition Update #8 3mo Addition2 Adjustment Update #7: 1y Addition2 Adjustment Update #6: 2y Addition
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 romfs_ext and have code.bin on exefs. 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. Better off use this than other mods' link to high poly code.
TL;DR:
It's the same method from above. Just download High Poly Code from the link above and better if you use code.ips than code.bin.

8. Installing Mods:

Well. Installing mods on an emulator is the same as installing mods on your 3DS.
  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. If the mod contains a model folder or other folders, place them inside smash folder and you're done.
  3. If the mod doesn't contains a model folder or something, create a new folder. Here are the directories for characters:Low Poly Models:saltysd\smash\model\fighter\<japanese names>\body\c0x <-- change x to 0-7
  4. High Poly Models:saltysd\smash\model\fighter\<japanese names>\body\h0x <-- change x to 0-7
  5. For musics and sounds, here's the directory:saltysd\smash\sound\bgm(background music), se(sound effects), vc(voice clips)
  6. 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)
  7. Enjoy!
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.

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.

Note: If you don't want to make folders, you could download the template (Template is outdated).
https://mega.nz/#!lMpWzJoI!u8OPp0I3NxUpSfVOk71ae-J_6wN1Yjrg_0WBVBDqNi8
Remember to READ THE README.TXT

9. 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

10. 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


11. 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.

11.1. LayeredFS:

  1. Go to load/mods/ and delete the Smash title id folder
  2. Go to sdmc and delete saltysd folder

11.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.

12. 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.

A guide for Citra Android is on the works and will release once there are more optimization on that port. So please wait.

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.

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!

13. Video:




14. 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!
Sign up to access this!
  • access_time 3mo
    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:
  • access_time 10mo
    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 1y ago
    Offline
    167 points Ranked 60038th
    access_time 1y
    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 2y ago
    Offline
    133 points Ranked 64015th
    access_time 2y
    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 username pic Joined 4y ago
    Offline
    568 points Ranked 45012th
    8 medals 1 rare
    • Returned 1000 times 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
    • Reached 1,000 Points Medal icon
    access_time 2y
    Great tutorial. Thank you for writing this up.
    Mario Kart modder.
    URL to post:

Embed

Share banner
Image URL
HTML embed code
BB embed code
Markdown embed code

Credits

Guide
Miguel92398 avatar
Miguel92398 username pic Joined 3y ago
Offline
17,431 points Ranked 326th
28 medals 3 legendary 6 rare
  • 2017 Top Contributor Medal icon
  • 30 submissions featured Medal icon
  • 2019 Top Contributor Medal icon
  • 10 submissions featured Medal icon
  • Returned 1000 times Medal icon
  • Submitted 50 Skins Medal icon
Creator
Citra
Citra Dev Team
Citra Emulator
Shiny Quagsire
SaltySD
Citra Contributors
PRs
Special Thanks
drwhojan
The one who make custom builds
KillzXGaming
KillzXGaming Joined 4y ago
Offline
12,761 points Ranked 478th
24 medals 3 legendary 4 rare
  • Reached 100 subscribers Medal icon
  • 30 submissions featured Medal icon
  • 2017 Top Contributor Medal icon
  • Returned 1000 times Medal icon
  • Reached 50 subscribers Medal icon
  • 10 submissions featured Medal icon
Helping me on installing updates on Citra
wwylele
Correction
jroweboy
Mentioning that updates were merge before

Submitter

Miguel92398 avatar
Miguel92398 username pic Joined 3y ago
Offline
17,431 points Ranked 326th
28 medals 3 legendary 6 rare
  • 2017 Top Contributor Medal icon
  • 30 submissions featured Medal icon
  • 2019 Top Contributor Medal icon
  • 10 submissions featured Medal icon
  • Returned 1000 times Medal icon
  • Submitted 50 Skins Medal icon
Miguel92398 avatar
Miguel92398

Creator
Sign up to access this!
Sign up to access this!
Sign up to access this!

Game

Sign up to access this!

Category

Details

Difficulty Level
Intermediate

Attributes

Share

  • Share on Reddit
  • Share on Twitter
  • Share on Facebook
  • 2
  • 45.0k
  • 12
  • 3y
  • 22d
  • 22d

More from Submitter

WiPs by Submitter

More Other/Misc Tutorials