This tutorial will teach you the basics on modifying the textures in Pokemon Sword and Pokemon Shield. If you're new to switch hacking, read this guide which will help you install CFW onto your system and you can be on your way into installing some cool modifications :)
1.1. What you needYou will need all of the following in order to follow this guide successfully:
- An unpatched Nintendo Switch with custom firmware installed
- prod.keys dumped from your Nintendo Switch (you can obtain this by running Lockpick on your Switch and it will dump it to the atmosphere folder on your SD card.)
- The Pokemon Sword/Shield NSP or XCI, which is also dumped from your switch (tutorial here)
- A XCI/NSP/NCA convert program, which you can download here
- Switch Toolbox
- Photoshop (Or any image editing software)
2. Extracting the game filesFrom the XCI_NCA_NSP_v2.zip that you downloaded, extract it and place your prod.keys in the ztools folder. From there, take your XCI, or NSP and drag/drop it into the file named Drag_XCI_NCA_NSP_HERE.bat. This could take a while as it is extracting the entire game into an NCA file. Once it's completed, the NCA will be in the xciDecrypted or nspDecrypted folder depending on which file you inputed. In most cases there will be multiple NCA files, so just select whichever one is the largest and copy it from there into the XCI_NCA_NSP_v2 folder and it will unpack it once again into a folder called ncaDecrypted. If you did it right, then there will be a bin folder inside. You just dumped your game, congrats!
Alternatively to doing all that, if you have the game installed in yuzu emulator, and it's installed in your games list, you can just right click it and select Dump romFS.
3. Modifying the textures
3.1. Finding your texturesThe file structure in Pokemon Sword and Shield is slightly complicated. Luckily, however, user Miguel92398 has created this thread that explains where every file for every model. Find the model you wish to edit from that, locate it in your romfs folder, and then come back here!
3.2. Exporting the texturesThe process for editing each file will be the same, so you can follow this guide for any edits whether it's for trainers or pokemon alike. Once you have found the gfpak file you want to edit, open up switch toolbox and drag it in. Press the + icon next to the folder and you will see the files expand. Then press the + on the textures folder. Some bntx files will show! Those are your texture files for that model and that is what we will be editing.
Select each .bntx and press Control + A . I would reccomend creating a new folder, naming it to what the model you are editing is called, and saving them all in that folder so it's easier to access and cleaner. Then, it's going to ask you how it's going to be saved. Select .png, make sure both boxes are checked, and hit 'Ok'. Do this for all of the .bntx files. It's not necessary to rip the actual model itself unless you're going to do model importing which is impossible as of now, because there's no method to import models in Pokemon Switch yet. If this changes in the future I will edit this guide. (Edit: mesh editing seems to be possible, I have seen it done by a couple of people. I'm not too familiar with it, so if you're interested in editing the actual model, you're on your own for now until I can research and experiment with it a little more.)
3.3. Editing the texturesOpen any of the png files you exported in any image editing program. Some I would recommend are Photoshop, Paint.net, Gimp, etc. This part is all on your own! Go, be creative! Change it to your heart's content!
3.4. Repacking the texturesOnce you're done editing the textures, and it's saved, open up switch toolbox again and drag in the original gfpak file. Find the name of the bntx from earlier that you edited that is now a png. For example, if I edited a texture called pm0470_00_Body_col.png, I would find the pm0470_00_Body_col.bntx. Once you find the bntx you need to replace, double click it and it should let you press the + on it. When it drops down, there should only be one file that is the same name. Right click it and select 'replace'. Select the png file you edited and it will open a window. Change the compression mode to Fast (Lower Quality), change the format to BC7_SRGB, surface dimension as Dim2D, and the tile mode as texture. Select Ok. After that, press the save button in the top left.
Now close out of switch toolbox, re-open it, and select your .bntx that you just edited. If the model shows up with the newly freshed texture, then you edited it correctly! Move on to the next step. If not, try the above steps again to try and see what went wrong.
4. Loading it into the gameTake your gfpak, and place it somewhere for easy access. Now, find where you originally found your gfpak in the game files. Look at the directory and copy that exactly on your desktop, making new folders to copy the structure exactly.
For example: If I had a pokemon model in the game files in romfs>bin>archive>pokemon, I would make a new folder, called "romfs", then inside that make a folder named "bin", then inside that make another called "archive", and then another called "pokemon" and then put the gfpak inside there. It will change depending on what the structure of where your file is.
Now on your switch's SD card, go inside the atmosphere folder, and make a new folder called 'titles' if not already created. From there, create another folder with the name corresponding to the game you have. If you have Pokemon Sword, name your folder '0100ABF008968000'. If you have Pokemon Shield, name your folder '01008DB008C2C000'. Then, open up that folder, and take the new romFS folder you just created, and plop it inside there. It's a lot of folders, I know!
From there, boot up atmosphere and launch the game! It should work just like that!
Have any questions? Join the Pokemon Sword/Shield Modding Discord server and there are lovely people there who can help you with any problems you might have. I would post the invite link here but I'm not sure if it's allowed. To find the invite link, go to the official GameBanana Discord Server and in the #server-invites channel you'll see it there!
5. CreditsI'd like to thank the following people for their work in making these wonderful tools for us to use. Please let me know if I miss someone.
Please also don't hesitate to let me know in the comments if I missed anything. I tried to make this guide as friendly as possible! This is my first tutorial I've made on GB so I'm probably bound to mess something up.