Tutorial last updated: 28/05/2023
We'll use Switch Toolbox to extract models from Super Mario Odyssey, then bring them into Blender to set up textures. I'll also cover checking the model before you submit it.
What we'll cover
- How to extract the base game files
- How to import and convert ripped models
- How to set up texture maps in Blender
- How to prepare models for upload
What you'll need
Game files
- A legally obtained NSP or XCI dump of Super Mario Odyssey
- NSP: Nintendo Submission Package
- XCI: Game Cartridge Image
Software
- Yuzu or Ryujinx
- Switch Toolbox
- Blender, or another modelling program of your choice
- Model Checker
Extracting the game
For Yuzu
- Make sure Super Mario Odyssey appears in the games list.
- Right-click the game and choose Dump RomFS > Dump RomFS.
- When asked how to dump the game, select Full.
- Wait for the extraction to finish.
- When File Explorer opens, navigate to the ObjectData folder.
- Make a note of this folder. You'll need it later.
For Ryujinx
- Make sure Super Mario Odyssey appears in the games list.
- Right-click the game and choose Extract Data > RomFS.
- Choose a location for the dump.
- Make a note of the dump folder for later.
Extracting and converting the models
Next, we'll use Switch Toolbox to find the model in the extracted game files and export it as a Collada file.
- Extract the downloaded ZIP archive named Toolbox-Latest.zip.
- Inside the extracted folder, open Toolbox.exe.
- In Switch Toolbox, go to File > Open > Folder.
- Navigate to the extracted Super Mario Odyssey RomFS folder, select the ObjectData folder, then click Select Folder.
- You should now see a long list of .szs files. These packages can contain models, textures, animations, and other files.
- Find the model you want and double-click its .szs file.
- Inside the package, you should see a .bfres file and some .byml files. The .bfres file is the one you want.
- Double-click the .bfres file to open the model in the viewport.
- Expand the Models folder under the .bfres.
- Right-click the model, choose Extract, and export it as a .dae file.
Importing the model into Blender
- Open Blender.
- Go to File > Import > Collada (.dae).
- Select the model you exported earlier.
- The imported model will probably be very large.
- Select the armature in the Outliner and scale the model down to a reasonable size. I usually scale it to 0.01.
Setting up texture maps
Switch to Blender's Shading workspace to assign the exported textures and see how they look.
- Add a new Image Texture node and select the grey roughness texture.
- Plug the Color output of the roughness texture into the Roughness input of the Principled BSDF node.
- Change the roughness texture’s Color Space to Non-Color.
- If metallic or emission textures are present, repeat the same general process for those maps.
- Add another Image Texture node and select the purple normal map.
- Add a Normal Map node.
- Plug the normal map texture’s Color output into the Color input of the Normal Map node.
- Plug the Normal output of the Normal Map node into the Normal input of the Principled BSDF.
Preparing the model for submission
- Once the model has been scaled to a reasonable size, go to File > Export > Collada (.dae).
- Leave the export settings as they are and click Export.
- Open the exported .dae file in Model Checker.
- If everything has gone well, Model Checker should report no major issues.
- If Model Checker reports a problem, read its message to see what needs fixing.
FAQ
Why doesn't my model have textures in Switch Toolbox?
If the model loads without textures, they're most likely in another .szs file. For example, kingdom-related models often have separate texture packages with names ending in StageTexture.
You usually don't need to find and extract these texture packages yourself. Switch Toolbox should find and extract the required textures automatically.
That's it
You should now have an extracted Odyssey model that you've converted and checked.
If you're stuck, check the FAQ above, your file paths, and whether you exported the right .bfres file.