A tutorial all about ripping models from Mario + Rabbids Sparks of Hope!
*You will need to source a usable NSP/XCI of the game yourself!
*This tutorial will not contain instructions of installing/setting up Ryujinx and Yuzu, it is assumed you already know/have.
*Big thanks to JawSFM for the initial guide.
- How to extract the base game
- Importing and converting the ripped models
- Converting textures to get roughness, metallic, normal etc.
- Preparing the models for upload.
- A NSP/XCI of the game (NSP: Nintendo Submission Package. XCI: Game Cartridge Image)
- Yuzu/Ryujinx (Extracts the base game)
- Noesis (Converts the model files)
- Plugin for Noesis (Allows Noesis to read the .MMB models with rigging support. Thanks to PotatoMuffin and Petrgold)
- Switch Toolbox (Extracts assets)
- Texture Remix (Converts textures to be get roughness, metallic, emission, normal etc. Created by the great, Peardian)
- Java (Requiered for TextureRemix to run)
- Blender, or any modelling software of choice (Testing/viewing the model)
Extracting the Game
For Yuzu
- Make sure Mario + Rabbids Sparks of Hope appears in the game list.
- Right-click the game and click Dump RomFS > Dump RomFS.
- A new window should appear, asking how you would like the game dumped. Selected "Full". Wait for the extraction to be complete.
- A window should appear in File Explorer for the dumped game. Navigate to sdf > nx > data to see a long list of .SDFDATA files. For this game, we only require the SDF.SDFDATA file.
- Make sure Mario + Rabbids Kingdom Battle appears in the game list.
- Right-click the game and select Extract Data > RomFS, then choose a location for the dump. Keep note of this directory.
- Extract the downloaded .ZIP called "Toolbox-Latest.zip" This is used to extract all of the data from the game.
- In the Toolbox-Latest folder, open Toolbox.exe.
- Go to File > Open in the top menu bar, navigate back to the dump of the game, and select "sdf.sdftoc". It will take some time to open.
- Once the file opens, click on the little plus icon to open the file. This will also take some time. By opening the little folders, go to the following directory: moria > baked > mixed > art.
- Right-click the art folder and extract it to your desired location. This will take some time to fully export; it's a lot of files.
- Extract the downloaded .ZIP called "noesis[version].zip.
- Inside that open folder, go to the following directory: plugins > python.
- Keep that folder open, and drag and drop the downloaded Noesis script into it. It will be called "fmt_SOH_mmb.py".
- Open up Noesis64.exe.
- On the left-hand side, you will see a directory of your PC. Navigate the explorer panel to where you extracted SDF.SDFTOC.
- You will then see the "art" folder you extracted earlier. Dig around the sub-folders of it and find any model you would like to export.
- Here's a little guide for how the folder structure should look for the assets once in the folder of the model you chose:
modeling = Most likely models for testing or otherwise unused models.
rigging = The main model; this is what you want to export.
textures = A folder that contains all of the textures for said model.
- Once you've found a model you like, it should open in the Noesis viewer.
- Export the chosen model by right-clicking it and clicking "Export".
- A new window will open to export the model. Click browse and find a suitable spot for it. E.g., your Desktop.
- Make sure in the export window that "Main output type" is set to .FBX. Then click "Export".
- Navigate back to the extracted folder of SDF.SDFTOC in File Explorer.
- Locate the folder that corresponds with the model you extracted. For instance, if you exported Princess Peach's model, her
- Copy all the .DDS textures to the same folder where the model was exported.
- Extract the downloaded .ZIP called "Toolbox-Latest.zip". This is the software used to convert the .DDS textures to .PNG.
- In the Toolbox-Latest folder, open Toolbox.exe.
- Go to File > Open (Folder) in the top menu bar, then select the folder where your extracted model and textures of choice are.
- A file browser, similar to Noesis, should be visible in the left pane.
- Double-click on all the .DDS file to make them viewable. Then right-click each one and click "Export".
- Save the exported texture as a .PNG and export it into the folder of your chosen model and textures. Do this for all textures.
- Now that all the textures are exported as .PNG's, you will notice that there are weird coloured textures. The weirdly coloured textures are roughness and metallic textures, all grouped together in one image through channel packing. The ones that need to be converted will have an "m" at the end of the file name. E.g. "her_peach_01_body_m.png"
- Extract the downloaded ZIP called "Texture Remix 1.2.0.zip". In that folder, open TextureRemix.jar.
- Once the app is open, drag and drop the "m" textures we need into the box, or click "Load Images(s)" to select them manually. Only four images can be imported in a single open window.
- Specify a place for the output folder. Make it the same directory as the rest of the files you've extracted or exported.
- Once the textures have been imported, click the three orange bars to extract each colour channel from the image.
- In the folder where the exported textures are. You should see four new images that were created: texture_r.png, texture_g.png, texture_b.png, and texture_a.png. The only split channels that we need are the Roughness "r", and the Metallic "b" textures. The other two can be deleted.
- Rename the new textures to their respective texture map abbreviations, for example:
texture_r.png > her_peach_01_body_r.dds
texture_b.png > her_peach_01_cloth_m.dds
- You will also notice the weird-looking grey textures. These grey textures are the normal maps. You'll know this because they will have an "n" at the end of the file name. E.g. "her_peach_01_body_n.png"
- Open up TextureRemix again, and just like before, simply drag and drop the normal maps into the open box or select them manually via the "Load Image(s)" button.
- Now that your image has loaded, you will see four boxes: red, green, blue, and grey (alpha). You'll want to click on the green box and then click on the other green box directly below it to link them together.
- Do the same for the grey alpha box, but instead of clicking on the other grey box, click the red one. So now the alpha channel is swapped with the red channel.
- Lastly, simply select the checkbox below the blue box; this will make the blue channel completely white.
- Once everything has been setup, click "Save Images" to save the fixed normal map to your desired location.
- In case you get lost, I have attached an image of what the layout should look like.
Importing the Model (Blender)
- Once you have installed and opened Blender, go to the top menu bar and go to: File > Import > fbx (.FBX). In the newly opened window, choose the .FBX model you exported from Noesis earlier.
- Once your model imports, you'll notice that it is very small. Select the Armature objects in the "Outliner" pane on the right and scale it up to 1.
- Depending on the model you may the see the imported model may look weird or stretched. Just select all of the bones in "Pose Mode" and right-click to "Clear User Transforms".
- For some strange reason any model exported from Mario + Rabbids series will have the models horozontially flipped. Go back to "Object Mode", select the armature and scale it on the X-Axis by -1. This will flip it back to normal.
- Next, head over to the "Shading" workspace. All exported textures will be assigned here.
- You will also notice the model is very purple and shiny. The material properties for Noesis models will default to max roughness and max metallic. The purple is the color Blender assigns to objects that has missing textures.
- Click the open texture button and select the texture associated with the selected object. Make sure to select the image with a "d" in it. This means "Diffuse".
- After that, add a new "Image Texture" node and select the grey texture, this is the roughness texture. Plug the "Colour" output from the roughness texture into the "Roughness" value of the "Principled BSDF" node. Make sure to switch the "Colour Space" of the textures to "Non-Colour" for roughness and metallic textures.
- If metallic and emission textures are present, repeat the previous step, but keep the "Color Space" of the emission textures to "sRGB".
- Add or duplicate another "Image Texture" node and select the purple normal map.
- Get a node called "Normal Map" and plug the "Colour" of the normal map into the "Colour" of the normal map node. Then plug the "Normal Output" of the "Normal Map" node into the normal value on the "Principled BSDF".
- If you are exporting the model for a tMR submission, only add the diffuse textures.
- Select all of the models objects and go File > Export > Collada (.dae). And save it with the textures.
FAQ
Q. My model doesn't have a textures folder or textures are missing. Where are they?
A. A fair few of models will use textures that are used in another model. The main thing to do is to just search for the texture name or just try to find it manually.
Q. Some textures never stop loading when previewing in Switch Toolbox. How do I fix it?
A. These file are not actually textures, they are more placeholder textures. This is only present with the "m" textures and normal maps as values for those proporties can be set in-game.
Q. Rayman's model doesn't load in Noesis, how do I fix this?
A. Due to an unknown error, Noesis will refuse to load Rayman's model. Thankfully, there is a patch of the Noesis script that can support Rayman's model. It can be found here. Thanks to PotatoMuffin and Petrgold again. Be sure to use this version of the plugin specifically for Rayman's model. There are some issues when using the patched plugin with other models.
Final Words
There you have it! A full in-depth guide to extracting models from Mario + Rabbids Sparks of Hope! If you have any questions reply to the post and I'll try my best to help!
DJ~