1. IntroductionHave you considered modding Super Mario Maker 2? Don't know where to start? Here's a guide to help you get started.
Important Note: This tutorial assumes that you have a hacked Nintendo Switch, CFW for your Switch, and a copy of Super Mario Maker 2. This does not cover loading mods using emulators. If you need assistance with loading homebrew on your Nintendo Switch, follow this guide.
Things You Will Need
- NXDumpTool - For Dumping the ROMFS Folder
- Switch Toolbox - For Editing the Game Files
- Texture File Editor - Program that can edit PNG files (Paint.net, Photoshop etc)
- Model Editor - For Editing Game Models (3DSMax, Blender etc)
- Animation Editor - For Editing Game Animations (Maya, Blender etc)
- Audacity (Music Modding)
- Citric Composer (For saving .bwav files for music)
- [Optional] Stream Tool (For converting game music files to wav)
- SD Card with at least 4 GB of space
2. Part 0: Dumping Your Game [Nintendo Switch Side]Start the Homebrew Launcher, and run the NXDumpTool app. Select either "Dump gamecard content" or "Dump SD card/emmc (NANDUSER) content" depending on if you have the physical or digital version of SMM2.
Next, go to RomFS options, and select RomFS section data dump. Make sure you have at least 4GB of open space on your SD card (The RomFS is about 2.72 GB, but it's always good practice to have extra space).
The app will output the RomFS folder as shown: [sd:/nxdumptool/RomFS/SUPER MARIO MAKER 2 v0 (TITLEID). Remove your SD card and place it into your PC. You are now ready for all types of modding.
3. Part 1: Texture ModdingOpen Switch Toolbox (You'll be needing it open pretty much the entire time) and search through the RomFS folder you placed onto your PC for what you want to edit. (For this tutorial, we are going to edit the sprite for Super Mario Bros. Mario. The file we need is located in RomFS/Pack/M1_Model.pack)
Open the M1_Model.pack file in Switch Toolbox. Expand the folder, and you'll see a bunch of files with the extension .zs . We are going to need Model/M1_Player_MarioMdl.Nin_NX_nvn.zs. Right Click it and select export raw data. Save it to your PC somewhere safe. Note that you can't save it with the foward slash, this will not affect the file itself, you can name it whatever you want.
Now drag that file back into Switch Toolbox and expand it's folders. You'll see the output.bfres file. Double-click that to expand it until you see the textures folder. You can right click this folder and select export all textures and save them somewhere on your PC for modding.
While in Switch Toolbox, select a texture and then view the Image Info window to the right, and take note of the format of the texture. Right click the texture, then export it as PNG. Now you can open the textures in your editor of choice (I recommend paint.net) and edit them. The edited texture MUST BE SAVED AS A PNG OR IT WILL NOT LOOK RIGHT!
Key Texture Editing Points
- Try to stay within the dimensions given.
- If the game crashes after editing, you more than likely did not save the texture correctly. Make sure the format matches the original, and check to see if the original has mipmaps or not.
Finally, open the .pack file you originally had opened in Switch Toolbox, right click the original .zs file you edited, select replace, and choose the new .zs file you saved. Now right click the .pack file and save that. THIS MUST HAVE THE SAME NAME AS THE ORIGINAL. Now you are ready to test your edit in game.
4. Part 2: Preparing and Replacing MusicFirst, have a music file ready then download, install, and open both Audacity and Citric Composer. Open Switch Toolbox, open your game dump and navigate through the Pack folder to find a file called "StaticHighFrecSound.pack"and open it in switch toolbox. Now, navigate your game dump folder through Sound/Resource/Stream. You should now have 3 programs open, a file open in Switch Toolbox, and a folder open with a bunch of .bwav files. Here is where you need to figure out what BGM you want to replace.
In Switch Toolbox, expand the filetree until you see a bunch of .bars files. For this tutorial we are only going to focus on the 5 themes and their music. Search for files titled "CourseSceneBGM_XX" (XX being the theme you want to edit music for, M1 being SMB, M3 being SMB3, MW being SMW, WU being NSMBU, and 3W being 3DW) and double click it to expand it. Next, in Citric Composer go to tools > Isabelle Sound Editor. Then go to edit > Import File, and navigate to the Sound Folder you have open with all the .bwav files and look for the one you want to replace. In this example we will use "MW_BGM_Plain_Play.bwav" which is the music for the SMW overworld. With the original .bwav open, we can look at the details of what new .bwav we create will need. Keep in mind how many tracks and channels it has.
In Audacity, import the music file you want to use. Very first thing you need to do is change the project rate (in the bottom left) to 48000HZ. Next, you have to change settings in Audacity to allow exporting for more than 2 channels. You do this by going to Edit > Preferences, select the Import/Export option, and choose Use Custom Mix (or whatever option that isnt Mono/Stereo) then hit OK. Now here's a very simple rule of thumb.
If the original .bwav uses 2 channels (has 1 track) you don't need to add your file again.
If the original .bwav uses 4 channels (has 2 tracks) add your music file to the current scene again.
This is also a good time to decide where your loop points are going to be. There are ways of using prelooped music but I'll explain that another time. After deciding your loop points, Select all tracks and go to Effect > Normalize. Normalize the peak amplitude to somewhere between -12 and -8 dB depending on your track. Finally, export your song as a .wav, and make sure the correct amount of channels are shown.
In Citric Composer > Isabelle Sound Editor, go to edit > Import file and select your new .wav (don't save the old file you opened. With this .wav opened, select the project info icon, and on the left some information will show. Make sure the rate is 48000 HZ as you edited, then check the Loop checkbox. Set the time for you loop to start and end (the 3 sections under the sample rate box are minutes, seconds, milliseconds). After that, click the update project info box, then go to file > export binary. Save this file AS THE EXACT NAME as the original (in this case, MW_BGM_Plain_Play.bwav)and set it somewhere safe. In Switch Toolbox, select that file you want to replace, and select the new .bwav you just made. Save the edited StaticHighFreqSound.pack file next to your new .bwav file.
Now that you have created and injected your .bwav file, here is where you need to put BOTH the StaticHighFreqSound.pack file, and the new MW_BGM_Plain_Play.bwav.
With everything done correctly, you should now have custom music running in Super Mario Maker 2!
5. Final Part [Folder Strucure]Inside your CFW folder of choice, create a folder named with the title id of your version of SMM2 (this was found earlier when you dumped the RomFS with NXDumpTool) and place it in the titles folder. Inside that folder, create a "romfs" folder. Within that folder, place all the mods you created. Here is an example.
Now if everything is done correctly, you should be able to remove the SD card from your PC and place it back into your Switch. Load up your CFW with layeredfs enabled, load your game, and view your mod in action. Example Below
Information about this tutorial.
- Other parts, such as Model Editing, Animation Editing, Code editing etc will come as I myself make mods using those, or if others send me information to use in this tutorial.
- This tutorial will be updated periodically as new information and new tools are created and shared.
- Please leave feedback about improvements for the tutorial in the comments section.