This guide will go over the basics on how to dump your game and load it into pkNX for the purposes of ROM editing and randomization.
• Pokémon: Let's Go, Pikachu! / Pokémon: Let's Go, Eevee!
• Pokémon Sword / Pokémon Shield
• Pokémon Legends: Arceus
• For Sword and Shield, pkNX operates under the assumption that your dumped ROM includes the latest available update data.
• pkNX does not support Brilliant Diamond / Shining Pearl, and there are no plans for it to. Other randomizers exist, however.
• This guide will be updated to include details regarding Scarlet / Violet ROM editing in the future. Please be patient until then.
WHAT YOU'LL NEED:
• A Nintendo Switch running Custom Firmware (preferably Atmosphère)
• The latest release of NXDumpTool
• The latest build of pkNX (steps on how to get the latest build can be found on its forum post)
• Your console keys/title keys (you can obtain these files using Lockpick_RCM; send the RCM payload to your console, dump keys from your specified NAND, and boot into CFW)
• A microSD Card with enough free space to dump your game (~5GB for LGPE, ~13GB for SWSH, ~6.1GB for LA)
• Means of transferring files between your microSD Card and computer
• A computer running any recent Windows OS (x64) in order to run pkNX
• Oodle DLL (Legends: Arceus only, required to use some editors)
1. Get into The Homebrew Menu as per your Custom Firmware
2. Run NXDumpTool
3. Select Dump gamecard content if you have a physical copy of the game, and make sure your Game Card is inserted
4. Select Dump installed SD card / eMMC content if you have a digital copy of the game, and navigate to your game of choice
5. Select ExeFS options
6. Navigate to Use update and press Right on your D-Pad to change it from No to the latest patch
The latest patch will read as follows, depending on your game:
(Ver. 1.0.2) Pokémon: Let's Go, Pikachu! - 010003F003A34000 v131072 (0.0.2.0) (UPD)
(Ver. 1.0.2) Pokémon: Let's Go, Eevee! - 0100187003A36000 v131072 (0.0.2.0) (UPD)
(Ver. 1.3.2) Pokémon Sword - 0100ABF008968000 v458752 (0.0.7.0) (UPD)
(Ver. 1.3.2) Pokémon Shield - 01008DB008C2C000 v458752 (0.0.7.0) (UPD)
(Ver. 1.1.1) Pokémon Legends: Arceus - 01001F5010DFA000 v262144 (0.0.4.0) (UPD)
7. Navigate back to the top of the list and select ExeFS section data dump
8. Once this has completed, press B to go back to the main dumping menu, and select RomFS options
9. Navigate to Use update/DLC and press Right on your D-Pad to change it from No to the latest patch (use the same list from above)
10. Navigate back to the top of the list and select RomFS section data dump
This process will take some time; be patient, let it properly dump all of the contents and don't power off your console!
11. Once the dumping process has completed, exit out of NXDumpTool and access your SD Card (either via ftpd, nxmtp, or by ejecting the SD Card from your console and putting it in your computer)
12. On your computer, in any desired location, create a folder and name it after your game
13. On your SD Card, navigate to sd:/switch/nxdumptool/
14. Inside the RomFS folder, you should be greeted to the RomFS dump from your game; rename this folder to romfs
15. Move this romfs folder into the folder named after your game that you created in your desired location
16. Go back to sd:/switch/nxdumptool/
17. Inside the ExeFS folder, you should be greeted to the ExeFS dump from your game; rename this folder to exefs
18. Move this exefs folder into the folder named after your game that you created in your desired location
19. Your folder named after your game should now contain 2 folders: romfs and exefs
20. Run pkNX, and navigate to File > Load, find your folder named after the game you dumped, or simply drag/drop it onto pkNX
You have successfully dumped your game and can now edit/randomize the data using pkNX!
Once your changes have been made, a patch folder for use with LayeredFS will be generated in your ROM dump folder. Move this folder to sd:/atmosphere/contents/ (or whichever other location if you choose to not use Atmosphère) in order for your changes to be reflected in-game.