Tutorial
Updated
How to edit NSPs to remove Link Nintendo Account Requirement for games
This guide is outdated!
Apparently there has been a really easy way to do this and I just didn't know about it. Just use NSC_BUILDER.
https://gbatemp.net/threads/nsc_bui...lder-game-updates-dlc-in-a-single-xci.522486/
https://github.com/julesontheroad/NSC_BUILDER/releases
#6 - Advanced Mode > Place NSP to be edited > #1 to start processing > #5 to patch linked account requirement.
Adding the list provided from NSC_BUILDER showing which games can be patched. Note that Stardew Valley isn't on that list. Since Stardew Valley only asks about linking when you choose Local Multiplayer, that means it's handled by the game during runtime. More research by someone smart will have to figure out how to fix that.
I believe that this was first done with Bloodstained. Amoo Arash edited a value in the update nsp, and you no longer needed to link an account in order to play. I read around and found out you can do this for all games that have this requirement.
Special thanks to @Falo and @cyberant, as well as the people who created the programs I'm using.
Things you will need:
*To get the keys, a Hacked Switch with latest version of Atmosphere. I'm not exactly sure if you actually need this, as hactool only recognizes a certain set of keys I think up to Master Key 5. Later versions of atmosphere come with the Sept folder which is required to get keys from 7.X and higher using lockpick. You probably could get away with just finding dumped keys on the internet, since I don't think you need any console specific keys.
LockpickRCM
hactool
HxD or your favorite hex editor. I used HxD because that was what was recommended to me.
hacPack
The nsp you want to remove the requirement from. In this example, I'll be using Super Kirby Clash.
Special thanks to @Falo and @cyberant, as well as the people who created the programs I'm using.
Things you will need:
*To get the keys, a Hacked Switch with latest version of Atmosphere. I'm not exactly sure if you actually need this, as hactool only recognizes a certain set of keys I think up to Master Key 5. Later versions of atmosphere come with the Sept folder which is required to get keys from 7.X and higher using lockpick. You probably could get away with just finding dumped keys on the internet, since I don't think you need any console specific keys.
LockpickRCM
hactool
HxD or your favorite hex editor. I used HxD because that was what was recommended to me.
hacPack
The nsp you want to remove the requirement from. In this example, I'll be using Super Kirby Clash.
Instructions
1. Create Directory Path on your computer to put all the files2. Getting keys3. Navigating to the .switch folder using Command Prompt4. Unpacking the nsp to get to the control.nca5. Unpacking the Control.nca6. Editing "Startup User Account Flag" inside of control.nacp7 Using hacpack GUI, NCA tab - Generate a new control nca8. Generate a new meta.cnmt.nca9. Creating the new NSP10. Install using method of choice and Enjoy!
I'm using Windows 10, so I apologize to Mac and Linux people.
We want to create a folder named ".switch" under your user profile. Once you do, put every file you downloaded in here.
hactool GitHub said:hactool will check for the presence of a keyset file in $HOME/.switch/prod.keys (or $HOME/.switch/dev.keys if -d/--dev is set). If present, this file will automatically be loaded.
*I have tried using the -k/--keyset argument with hactool and placing the prod.keys directly next to hactool and also having a copy in the above spot, but it just kept breaking, so we will be putting everything in the .switch folder to save us from any headaches.*
Lockpick GitHub said:- Launch Lockpick_RCM.bin using your favorite payload injector
- Upon completion, keys will be saved to /switch/prod.keys on SD
- If the console has Firmware 7.x or higher, the /sept/ folder from Atmosphère or Kosmos release zip must be present on SD or else only keyblob master key derivation is possible (ie. up to master_key_05 only)
Once you get your keys, put them in the .switch folder.
Press the Windows Key and type in "cmd" to open the Command Prompt. You don't need to run as Administrator.
From there type in "cd" for <change directory> and then type in ".switch" to change to the .switch folder.
If you do run as Administrator, you'll start in C\WINDOWS\System32 instead. It doesn't change much, as you can still change directory to the .switch folder easily by typing in "cd C:\Users\HP\.switch"
All you need to do now is run hactool through cmd and then specify what you want it to do. In this case we will use the command
Code:hactool -t pfs0 --outdir=Unpacked "Super Kirby Clash.nsp"
The first word "hactool" is to run the program. The "-t pfs0" is setting the type of file to pfs0 A.K.A. nsp. The --outdir=Unpacked is setting the directory that the nsp will be unpacked to and creating a folder called Unpacked. You can change "Unpacked" to whatever you want if you want a different name. The "Super Kirby Clash.nsp" is the nsp file you chose. You can name it whatever you want to make it easier, like A.nsp or something. You need the quotes around it.
After you press Enter, hactool should run and create the "Unpacked" folder. Don't worry about [WARN]: Failed to match key, as hactool just doesn't recognize some extra keys that you have.
control.nacp has the same format for every switch game, but of course a newer SDK can add more values.
While still in CMD, type in the following
Code:hactool -x Unpacked\a62cf0016dcf820520ef0078d9e21dd7.nca -t nca --romfsdir=romfs
You should now have a folder named "romfs" in your .switch folder with the control.nacp inside.
Offset 0x3025 can have three possible values:
0x00 = None
0x01 = Required
0x02 = RequiredWithNetworkServiceAccountAvailable
What we want to do is edit the 02 into 01.
Either drag and drop control.nacp onto your hex editor, or open it from within the hex editing program. Once you have it open, go to the offset at 0x3025. For HxD, you click on "Search" and then "Go to..." and enter in "3025" in the Offset entry field. Your mouse cursor will then be automatically placed at that offset. From here, just use your number keys to type in "01." The value will change to a red color to show that it has been edited. Save.
Now that you have edited the control.nacp, head to hacPack folder and open up hacPack-GUI.exe.
For the Output directory, just put the .switch folder, for Keyset select keys.prod, for the title id: type it from the output in hactool or from finding it on the internet (Google whatever game Title ID and it'll be in the first few spots), for NCA type: select control, and for romfsdirectory, choose .../.switch/romfs
The name of the control file should be different for everyone.
While still in the hacPack GUI, click on the "Meta NCA" tab.
Fill in the respective fields with the the Control.nca file you just made, the Program.nca located in the "Unpacked" folder, and the LegalInformation.nca, also from the "Unpacked" folder.
The program.nca should be the largest .nca file and the LegalInformation.nca should be the smallest. Keep in mind that there is also a xxx.cnmt.nca file that we don't care about, so don't get that confused with the other 3 nca files.
Create a new folder in your .switch folder and place the following files inside:
The newly created cnmt file
The new control file
A copy of the .tik file, .cert file, and the program+control ncas you just used earlier.
Go to the NSP tab in hacPack GUI and select the directory you just made and put the files in. Build the nsp.
Your new nsp should have the title ID as its name and is located in the output directory
Install via tinfoil/goldleaf/whatever via usb or direct from switch.
When you select the game, it will no longer ask you to link an account. That's all there is to it!
Attachments
Last edited by GameSystem,