Guide to Get Started Modding Ultimate

A Tutorial for Super Smash Bros. Ultimate

1. Introduction

This tutorial will be guiding you through from scratch on how to begin modding Super Smash Bros. Ultimate. Take note that as of now, the only public method of loading mods for this game is by injecting into its data.arc file. In the near future, it will be a simple drag and drop system.

1.1. A Note Before Starting

This guide will always contain the most up-to-date information on preparing to mod Ultimate. We are in the very early stages of tools, so our methods may seem tedious. Soon on we will have better, more simplified methods and tools. So be patient on that :)

A Note Before Making Mods

1.2. DISCLAIMER

I take no responsibility of any damage to your Switch or the sudden occurrence of getting banned. You take the risk by running the unsigned software.

2. Requirements


3. Preparing Your Micro SD Card

First, please follow the tutorial created by members of Nintendo Homebrew that will guide you from stock to Atmosphère: https://nh-server.github.io/switch-guide/

After you have successfully followed that, download and extract gcdumptool and Lockpick, or just Lockpick if you have a digital copy and place the .nro files in your switch folder that should be located on the root of your micro SD card.

4. Dumping Your Keys

WARNING: DO NOT share any of the console keys you have dumped with others!

Boot into Hekate and use the volume up and down buttons to navigate to "Console info..." Select it with the power button. Then, select "Print fuse info" and press the power button to dump it. Do the same with "Print TSEC keys."

After that's finished, launch into Atmosphère. From there, head to the Album to load the Homebrew Menu and launch Lockpick. It should instantly and automatically dump your keys with this screen as a result:

This dumps our prod.keys file. You'll need it later on. No need to dump any title keys for now, so go ahead and hit + to exit.

5. Dumping The Game

5.1. Physical

After Lockpick, move over to gcdumptool and launch it. You should be greeted with this screen:

Press A while over "Full XCI Dump" and press A again to start the dump. Leave the default settings as is. This will take around an hour, so do something else in the meantime.

Once completed, you may exit the application and power off your Switch.

5.2. Digital

Dumping a digital game will take up more room in this tutorial than necessary. So download the tutorial written by ih8ih8sn0w for dumping digital games in the requirements section.

6. Decrypting The Game

Move your XCI/NSP dump to be with hactool.exe. Do the same with our prod.keys file we dumped on our micro SD card. You'll need at least 32 GB of free space on whatever drive you put it on. For simplicity's sake, rename the XCI/NSP to be named cross2.xci/cross2.nsp. Then, you're going to want to open Command Prompt by typing in cmd in the path bar of the window:

You're then going to run the following commands for your game type.

Physical:
hactool --intype=xci -x "cross2.xci" --outdir="output_folder"
hactool -k "prod.keys" --intype=nca -x "output_folder/secure/33772dd69ad331de693d936465e2dfce.nca" --exefsdir="exefs" --romfsdir="romfs"

Digital:
hactool --intype=pfs0 -x "cross2.nsp" --outdir="output_folder"
hactool -k "prod.keys" --intype=nca -x "output_folder/2a5fbb4f72e8e5f1b74a1fd29cdd8882.nca" --titlekey=REPLACE_WITH_TITLEKEY --exefsdir="exefs" --romfsdir="romfs"
For you digital users, if you didn't see, REPLACE_WITH_TITLEKEY is telling you to replace it with the title key you hopefully copied because the dumping guide told you to.

If for some reason you see key errors, ignore them. If you encounter errors that affect the extracting process, please let me know!

Once both commands have finished, go into your romfs folder. If you see a large data.arc file, you have done everything right! You may want to delete output_folder to save space as you won't need it.

7. Updating The Game

This part is crucial if you want to use the mods on the latest game version. If you haven't already, download xdelta3 and the patch that matches your game version, hopefully the latest. Put the executable and the patch with the data.arc file. Rename the data.arc to "data_old.arc", the executable to "xdelta3.exe", and the patch to "data_new.xdelta3" all for ease. You're then going to run the following command in Command Prompt:
xdelta3.exe -d -s data_old.arc data_new.xdelta3 data.arc
What we are doing here is manually patching our old data.arc with the xdelta file that calculates the difference and creates the new file. This same concept is used for ROM patching but with .ips files. This will take a while, so be patient. Once completed, you can delete anything relating to xdelta and the old data.arc. If you noticed, the file is slightly smaller, which is normal.

Put this new data.arc on your micro SD card under "atmosphere\titles\01006A800016E000\romfs" for LayeredFS to read and load. Make a backup of your data.arc in case installing mods goes really wrong.

8. Installing Mods

8.1. Finding The Correct Offsets

In the near future, this step will not be required.

Between updates, file offsets may get moved around a bit, so you will need to relocate the offset in CrossArc. Put the contents of CrossArc's files with the data.arc and double-click on the executable to launch the program. At first glance, it's an extremely bare bones tool, but it's main purpose is to extract files and give information on offsets and (de)compressed file sizes. Any files or folders that have a name of, for example, 0x46FC767B mean they're hashed or unlabeled as Ultimate's file archive doesn't contain any filenames or extensions. Slowly we're working to figure out the entirety of them. This does not equal the file's offset.

If you downloaded someone's mod, you need to know what file it overwrites and where it belongs to get the new offset. Unfortunately I won't list where they belong so nag the mod makers about it. I'll use these two old file offsets as examples:
Extra Stages = 0x103291758.prc
Playable Giga Bowser = 0x10323AEC8.prc

Since the "Extra Stages" mod replaces ui/param/database/ui_stage_db.prc, I'll click on it and look to the right of CrossArc. There will be my new offset (0x10349CA28), so I'll rename the modded file to that when I'm ready to inject it.


How I knew that was because I knew where parameter databases were stored. I opened the modded file in a hex editor and took a look at the total length. Then I went through each parameter file in CrossMod until the compressed size matched the file length.

The same method would apply to the "Playable Giga Bowser" mod (replaces ui_chara_db.prc). Different offset and size, of course.

Mod makers, please update your mods or include the original filename and its directory, thank you :)

8.2. Injecting Mods

Put modinstall.py with the data.arc that's on your micro SD card as well as the mod of choice you want to inject. Unfortunately if your mod consists of multiple files, you must inject them all separately. To inject them, open Command Prompt and run the following command:
python modinstall.py 0xOFFSET.filetype
"OFFSET" is the offset where it's located in data.arc (mods come with this, so replace it with that name) and "filetype" would be replaced with .nutexb, .bntx.prc, etc.

Under normal circumstances, you will get a confirmation letting you know it injected successfully. The script will automatically create a backup of the vanilla hashed file you injected into in case something went wrong. If it is an irreparable error, please restore the backup of your data.arc.

8.3. Loading Mods

Load CFW like normal and load up Super Smash Bros. Ultimate. That's it.

9. Conclusion

At whatever point your mod takes effect, I hope it worked out as you had planned! If you have any questions or need for clarification, let me know and I'll be sure to answer you.
Sign up to access this!
  • Isn't it illegal (edit: in the US) to download updates copyrighted by Nintendo (step 7)? Is there a way to backup the updates from a Switch that has them installed?
    EDIT:
    If you want to obtain the update from your console you can do so by following ih8ih8sn0w's tutorial linked in this tutorial, except save the nsp of the update, not the base game.
    Next, take the update nsp and the output folder from the base game, and move them into a new directory. Rename output_folder to output_folder_base. Rename the update nsp to cross2.nsp.
    Then, copy/move hactool.exe to be with the nsp and output_folder_base, and use these commands:
    ```
    hactool --intype=pfs0 -x "cross2.nsp" --outdir="output_folder"
    hactool -k "prod.keys" --intype=nca -x "output_folder/f74cf492551c4e5918439876846aa6dc.nca" --titlekey=REPLACE_WITH_TITLEKEY --exefsdir="exefs" --romfsdir="romfs" --basenca="output_folder_base/secure/33772dd69ad331de693d936465e2dfce.nca" --onlyupdated
    ```
    Replace "REPLACE_WITH_TITLEKEY" with the titlekey from the update, not the base game.
    Finally, move the newly updated data.arc file to the romfs folder on your SD card, and continue this guide with step 8.

    I hope that makes sense. I may have missed a step; if you have questions about what I did, just reply to this post and ask.
    Bananite
    URL to post:
  • Meebas avatar
    Meebas Joined 2y ago
    Offline
    890 points Ranked 5982nd
    11d
    Are skin mods, music mods, etc. risky to use online? I hear people have been getting banned for having save edits online, such as unlocking everything and maxing out Gold/SP
    Professional Dreamer
    URL to post:
  • EmpYoshi avatar
    EmpYoshi Joined 2y ago
    Offline
    11d
    Can you install multiple mods at a time instead of one by one?
    Vienna Schnitzel
    URL to post:
  • made an account just to post this comments, after I get to step 6 extracting the NCAs works fine but the 2nd command tells me "prod.keys doesnt exist" when it 100% does lol, ive tried admin and non admin cmd prompts I have 0 clue what can be causing the issue (using digital backup btw) I cant wait for Ult modding to just get easier 
    Bananite
    URL to post:
  • Danielo avatar
    Danielo username pic Joined 1y ago
    Probably Dead
    337 points Ranked 13718th
    11 medals 1 rare
    • Became a Game Pioneer Medal icon
    • One month a member Medal icon
    • 6 months a member Medal icon
    • 1 year a member Medal icon
    • Returned 100 times Medal icon
    • Returned 100 times Medal icon
    15d
    This is an awesome and detailed tutorial, unfortunately, I'll have to wait for simpler tools, but great job :D

    9

    I like textures avatar
    Mantra
    I like textures
    URL to post:
  • sonicbrawler avatar
    sonicbrawler username pic Joined 3y ago
    MK8 Manager DB:FZ Manager P:LG Manager
    Not Here tbh
    6,172 points Ranked 819th
    20 medals 2 legendary 5 rare
    • Reached 100 subscribers Medal icon
    • 2017 Top Contributor Medal icon
    • Reached 50 subscribers Medal icon
    • Returned 1000 times Medal icon
    • Achieved Game Manager clearance Medal icon
    • 10 submissions featured Medal icon
    15d
    Perfect. 

    10

    Sm4sh Modder
    URL to post:

Embed

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

Credits

Key Authors
ThatNintendoNerd
Tutorial Writer
Tool Developers
ScriesM
Atmosphère, hactool
shchmue
Lockpick
DarkMatterCore
gcdumptool
rajkosto
memloader and HacDiskMount
CaitSith2
Nintendo Switch SD to NSP Dumper
jmacd/Joshua MacDonald
xdelta
jam1garner
Mod injector script
Ploaj
CrossArc
Special Thanks
ih8ih8sn0w
ih8ih8sn0w Joined 3y ago
SSB3DS Manager
Offline
1,438 points Ranked 3739th
9 medals 1 rare
  • Achieved Game Manager clearance Medal icon
  • One month a member Medal icon
  • 6 months a member Medal icon
  • Submission featured Medal icon
  • Returned 100 times Medal icon
  • Received thanks 5 times Medal icon
xdelta3 patches, digital game dumping, and helping me along the way

Submitter

ThatNintendoNerd avatar
ThatNintendoNerd Joined 3y ago
SSBU Manager
Offline
7,159 points Ranked 685th
17 medals 2 legendary 3 rare
  • Returned 5000 times Medal icon
  • 2017 Top Contributor Medal icon
  • Returned 1000 times Medal icon
  • 10 submissions featured Medal icon
  • Achieved Game Manager clearance Medal icon
  • One month a member Medal icon

ThatNintendoNerd
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
  • Share on Google+
  • Best of the Banana Jan 4 2019
  • Best of Yesterday Jan 3 2019
  • Today's Pick Jan 2 2019
  • 5.1k Views
  • 18 Posts
  • 15dSubmitted
  • 2dModified

Scores

85 bScore
9.5 Rating

2 voters

Sign up to access this!

More from Submitter

WiPs by Submitter

More Other/Misc Tutorials

bcp.crwdcntrl.net tracking pixel