1. IntroductionThis will be an very easy tutorial for starters wanting to mod Pokemon Let's Go. I will cover how to extract ".nca", ".xci", ".nsp" files, how to edit/mod/inject ".bntx", ".dds" files and finally how to unpack and repack ".gfpak" files. I personally use Photoshop and this guide will be based on that, although you can use any editing image software like GIMP, Paint~net which supports DDS format files. There will maybe be some references to other guides. Also this will not be the only method to mod, there are alternatives, but these programs are the ones I use.
2. What You Need
- Photoshop (Image editing software)
- DDS Plugin (Plugin for Photoshop, so it can open/edit/save DDS files)
- Bntx Injector (This will be used for opening bntx files, exporting the DDS files and then replacing/injecting with modded ones)
- Python 2.7 (We need this, because it is the programming language that some software in this list use)
- QuickBMS (Universal script based files extractor and reimporter)
- .gfpak script (Script for QuickBMS, which allow us to unpack and repack back .gfpak files)
- Pokemon Let's Go Dump (Read below)
- XCI_NCA_NSP_v2 (To extract files from .xci, .nsp and .nca dumps)
- Switch (Testing mods, if only I could make Pokemon Let's Go work on Yuzu emulator it would be easier)
- Advanced Renamer (Auto-renamer, I use this for renaming .bnt files to .bntx and the other way around with just a few clicks)
- Smash Forge (Great tool, I personally use it sometimes when I want to get a preview image of .bntx files before using Bntx Injector, which by the way don't display a preview image in most cases. I know someone who use this for editing/injecting bntx, but in my case,when I tried, I could only export in .PNG and didn't work for injecting(crashes), maybe I didn't install properly?)
3. Extracting Files From Dump(NOTE: If you want to skip this step, just download the "bin" folder I already extracted to share with you guys)
1 - Before starting the extracting process, you will need to get a keys.txt file from your switch. Use this guide to get it, it also has alternative methods on how to get it.
2 - After getting your keys.txt file, extract "XCI_NCA_NSP_v2.rar" file you downloaded in your desktop and put your keys.txt file in "Desktop\XCI_NCA_NSP_v2\ztools" folder.
3 - Drag your .XCI, .NCA or .NSP file onto the "Drag_XCI_NCA_NSP_HERE.bat". Note: Game should be in folder with .bat file for best performance!
4 - A cmd window will open up, choose an option of the 4 displayed, in this guide since I'm using a .XCI file, press 1 and then hit Enter in the cmd window. It should begin decrypting all files now, so be patient. After finishing decrypting, cmd window will close automatically, so go to your "XCI_NCA_NSP_v2" folder and you should see a new folder there named "xciDecrypted".
5 - Inside that folder there should be 4 other folders, but we will be looking for one named "secure" which contains the biggest .NCA file that we need. Grab the biggest .NCA file and move it to the "XCI_NCA_NSP_v2" folder
6 - Drag the biggest .NCA file onto the "Drag_XCI_NCA_NSP_HERE.bat". A cmd window will open up, It should begin decrypting now, please be patient until it finishes. After it has finished decrypting, cmd window will close automatically. Go to your "XCI_NCA_NSP_v2" folder and you should see a new folder there named "ncaDecrypted", this is where all files for modding will be, especially the "bin" folder that it's inside.
4. Setting up1 - Download and install Python 2.7.x - NOT Python 3.x.x
"When installing, it will ask you what features you want installed, scroll to the bottom and make sure "Add Python to Path" has "Entire Feature Installed to HDD" option chose (No Red X Icon), otherwise the scripts/programs wont find Python and WILL fail" (if you have it already, skip this step)
2 - Download and install DDS Plugin, reading this guide
3 - Download and extract Bntx Injector in your desktop
4 - Download and extract QuickBMS in your desktop
5 - Download .gfpak script and move it to the QuickBMS folder that you extracted
5. Working with .bntx filesBntx are the textures files that Pokemon Let's Go uses in most cases. I will be using a specific .bntx file just to show an example on how to easily extract the .DDS image, edit and then inject the modded one. You will be able to do this to all .bntx files, of course.
1 - Open Btnx Injector, click "Open" and select the ".bntx" file you want to mod from the "bin" folder you decrypted or downloaded. I will be using a backpack texture of the heroine for this guide, location is: "\bin\chara\data\tr\tr0002_00_heroine\mdl\tr0002_00_bag_col_00_00.bntx"
2 - You will notice that file information was loaded but there's no image in the preview section, which is quite normal, it doesn't preview most of the times. Format is almost always BC7 sRGB. Click on "Export As" and choose location, then click on "Save", you will have a ".DDS" file
3 - Open Photoshop and go to "File" then "Open...", select the ".DDS" file you exported and click "Open". Photoshop will ask if you want to load mip-maps into separate layers, ignore this and click "Ok". Since we are not changing mip-maps on the original ".bntx" file, there's no need to worry about them. Now you should have the ".DDS" image displaying on your Photoshop
4 - Edit image to your liking, after you finish editing go to "File" on Photoshop, click "Save As...", on the "Save as type:" section, select "Intel Texture Work (*.DDS)" and then click "Save". Use this settings for saving:
5 - Go back to Btnx Injector and select "Replace", choose the edited ".DDS" file you just saved and click "Open". Use this settings and click "OK":
6 - Good job! Now you have a edited ".bntx" file ready to use and share.
6. Working with .gfpak filesFor this one you are going to be using QuickBMS and the "pokemon_gflxpack.bms" script to extract all files from the ".gfpak" package and be able to mod them. After that you will be using "reimport.bat" and the same script "pokemon_gflxpack.bms"
1 - Go to the "QuickBMS" folder you placed on your desktop(or any location) and run "QuickBMS.exe"
2 - Select the script "pokemon_gflxpack.bms" and click "Open".
3 - Select the ".gfpak" you want to work on and click "Open", for this guide I will be using Buddy Pikachu's one but you can choose whichever you want, location for Buddy Pikachu is: "\bin\archive\chara\data\bd\bd0001_00_pikachu.gfpak"
4 - Select the output folder where you want all files extracted, I recommend creating a new folder and selecting it to keep things organized. After you select folder, click "Save". You will now have all files extracted to the output folder, press "Enter" in the cmd window to close it. (You will notice a lot of ".dat", ".bns" and ".bnt" files, we only need the ".bnt" ones for this guide, so ignore the others and by "ignore" I mean leave them like that, don't erase them, we will need them to repack).
5 - Rename all ".bnt" files to ".bntx" so we can use them in Bntx Injector. (This is where an auto-renamer software would come in handy)
6 - Open Btnx Injector and select "Open", choose a ".bntx" from the ones you renamed, for this guide I will use Pikachu's body file that we extracted and renamed, which is: "0000000d.bntx", then select "Export As" and save.
7 - Open the ".DDS" file you just saved with Photoshop and you will see Pikachu's body texture, edit to your liking and save using the same settings shown in section "6. Working with .bntx files" part "4"of this guide. You will be using these settings for all ".bntx". Then follow to part "5" and "Replace" with edited ".DDS" file.
8 - Edit all the ".bntx" files you want to mod using the same process. (Note: You will notice some ".bntx" files are used for things like fur, shading, lighting, color palette, etc. You can skip those if you only want to edit the textures. Another thing to notice is that most textures have a "shadow" counterpart you need to edit accordingly with the main one. For example: "0000000d.bntx" is Pikachu's body texture and "bd0001_00_bodyA_col" is the file name shown on Btnx Injector, so the "shadow" counterpart would be "00000010.bntx" which file name is shown as "bd0001_00_bodyA_sdw")
9 - After editing all your ".bntx" files, rename them back to ".bnt" (Note: Make sure there's no others files like ".DDS, .PSD" etc in the folder where you have all the ".dat, .bns, and .bnt" files.
10 - Now we need to repack all those files to the target file(.gfpak). Go to "QuickBMS" folder and run "reimport.bat"
11 - Select the script "pokemon_gflxpack.bms" and click "Open"
12 - Select the ".gfpak" file you want to repack to and click "Open", in my case I'm using "\bin\archive\chara\data\bd\bd0001_00_pikachu.gfpak"
13 - Now select the folder where all your modded ".bnt" files and ".dat,.bns" files are and click on "Save", you will see in the cmd window that all files were reimported. Press "Enter" to exit cmd window.
14 - Cool! Now we have modded the target ".gfpak" file and is ready to work.
7. Installing mods and testingCFW with LayeredFS support needed, SX OS and Atmosphere works really well, haven't tested ReiNX yet. To make sure the mod is working correctly and looks the way you want it to be, testing needs to be done, sometimes I have to test more than 10 times to get something right and fix a few things within the texture.
Transfer the modded ".gfpak" or ".bntx" to your Switch's microSD card, location and folder structure can differ depending on which CFW you use, which Pokemo Let's Go you have and which file you modded. I use SX OS, Pokemon Let's Go Pikachu and the modded "bd0001_00_pikachu.gfpak" file located at "\bin\archive\chara\data\bd\bd0001_00_pikachu.gfpak", so file location where I want to put it on my microSD is: "SD:\sxos\titles\010003F003A34000\romfs\bin\archive\chara\data\bd\bd0001_00_pikachu.gfpak"
A general folder structure is: "SD:\CFW\titles\TITLEID\romfs\" and then the corresponding following folders after "romfs" folder.
8. Questions and answersWhen I open ".bntx" files on Btnx Injector it doesn't display an image preview on most files, why?
It's normal, I just click "Export As" and then view the ".DDS" image on Photoshop. But if you just want to preview the images of ".bntx" files without needing to export or save, you can use Smash Forge, which displays all ".bntx" nicely, it also allows you to open more than one file simultaneously.
(Will be updating this part with more questions and answers)
9. CreditsI want to thank all these people for their hard work and making very nice plugin, scripts, and tools. If there's someone I miss, please let me know and I will update this section.