ROM Hack RELEASE NSC_Builder. Nintendo Switch Cleaner and Builder. (Game+updates+dlc in a single xci)

  • Thread starter JRoad
  • Start date
  • Views 724,793
  • Replies 2,824
  • Likes 74

markmcrobie

Well-Known Member
Member
Joined
May 24, 2008
Messages
623
Trophies
0
XP
1,247
@Alchemy_Gaming
I think i have that error corrected among others for the next version. It'll should be up trough the following days, though the multimode from the beta updates files so you can use that.
@markmcrobie
That error is normal, it means it means when decrypting the nca header the result is not correct, basically it can't see NCA3 or NCA2 in the header which are the header magics used till date so either the magic changed to NCA4 or the header is messed up. The nca header should use the header key so if it's working for other files the key should be fine.
Either way something weird is happening there since the titleid that it's being detected for the xci is the update one, so that means it's not detecting the base game there in either of those files.
Edit: The update magic for minecraft is NCA3 and it's read fine so i bet the issue is with the base.

Ok, the Xci files that were causing the error were all built with NCSB to incorporate previous updates. I re-downloaded the base games and used NCSB to incorporate just the latest update and it works fine. Weird.
 

morvoran

President-Elect
Member
Joined
Dec 19, 2010
Messages
1,032
Trophies
0
Location
MAGA Country
XP
2,358
Country
United States
@JRoad The multi-content xci's that this program creates, are they just decrypted container files, like a .rar archive for example? When we need to add a new update (such as using Update Mode), would it be possible to have the program delete the old update and add the new update to the existing xci file rather than creating a whole new xci file? It would be even better if the program would only added the necessary deltas to the existing xci, but I have no idea if any of this would be possible.

The reason I'm asking is that I have MK11 on a usb ssd drive, and it is a very large file that just received another huge update (1.0.3) with another update supposedly coming in a couple weeks. Right now, I have to download the update file, extract it, add both the existing xci and the new update files into NSC Builder, have it build the new xci, then copy that new xci to the usb drive, and delete the old xci. It would be better for my ssd if I didn't have to write the entire 20+ gb's to it every time the game gets updated and just have the program add the newest update to the existing xci file.

Of course, this would be great for any game that gets a lot of updates.
 

huma_dawii

Well-Known Member
Member
Joined
Apr 3, 2014
Messages
3,879
Trophies
1
Age
33
Location
Planet Earth
XP
4,250
Country
United States
I hate the new versions (while splitting a previously packed file it asks if you want to convert the file to NSP or XCI, in the past i used to pick XCI and i got the BASE as XCI and updates and dlc as NSP as it should be, now that option gives me updates and dlcs as XCI which MAKES ABSOLUTELY NO SENSE).

I get this error trying to mix everything together now:


Calculating final content:
Filename: Super Smash Bros. Ultimate [01006A800016E000] [v524288] (1G+1U+13D)[nscb].xci
Exception: local variable 'docheck' referenced before assignment
Exception: local variable 'docheck' referenced before assignment
Exception: local variable 'docheck' referenced before assignment
Exception: local variable 'docheck' referenced before assignment
Exception: local variable 'docheck' referenced before assignment
Exception: local variable 'docheck' referenced before assignment
Exception: local variable 'docheck' referenced before assignment
Exception: local variable 'docheck' referenced before assignment
Exception: local variable 'docheck' referenced before assignment
Exception: local variable 'docheck' referenced before assignment
Exception: local variable 'docheck' referenced before assignment
Exception: local variable 'docheck' referenced before assignment
Exception: local variable 'docheck' referenced before assignment
Traceback (most recent call last):
File "squirrel.py", line 3103, in <module>
File "lib\sq_tools.py", line 908, in get_xciheader
File "Fs\Hfs0.py", line 525, in gen_rhfs0_head
IndexError: list index out of range
[16256] Failed to execute script squirrel
---------------------------------------------------
*********** ALL FILES WERE PROCESSED! *************
---------------------------------------------------
 

JRoad

Developer
OP
Developer
Joined
May 18, 2018
Messages
1,003
Trophies
0
XP
1,746
Country
Spain
v0.83 released, it should fix most issues:
https://github.com/julesontheroad/NSC_BUILDER


@huma_dawii
yeah, i know about the splitter i realized yesterday i forgot to add options to take dlcs and updates as nsp. About the sense, well is not very used but dlcs and updates work as xci too if you have the basegame installed.
Either way, i'll start working in the weekend in a direct splitter that corrects that and also lets you extract individual content, like only the updates, only the dlcs or a specific id.

--------------------- MERGED ---------------------------

@JRoad The multi-content xci's that this program creates, are they just decrypted container files, like a .rar archive for example? When we need to add a new update (such as using Update Mode), would it be possible to have the program delete the old update and add the new update to the existing xci file rather than creating a whole new xci file? It would be even better if the program would only added the necessary deltas to the existing xci, but I have no idea if any of this would be possible.

The reason I'm asking is that I have MK11 on a usb ssd drive, and it is a very large file that just received another huge update (1.0.3) with another update supposedly coming in a couple weeks. Right now, I have to download the update file, extract it, add both the existing xci and the new update files into NSC Builder, have it build the new xci, then copy that new xci to the usb drive, and delete the old xci. It would be better for my ssd if I didn't have to write the entire 20+ gb's to it every time the game gets updated and just have the program add the newest update to the existing xci file.

Of course, this would be great for any game that gets a lot of updates.
Yeah, there's a way to do that, not by deltas exactly because the nca files are separated not merged but there is a way. The main reason to not do that is that i normally prefer to keep separate files but i have to admit some games like mk11 test anyone's pacience.
Other reason for that is that i have my backups on the cloud and since NSCB is compatible with rclone mount, google filestream and RaiDrive i normally create the files on the go.
 
Last edited by JRoad,

markmcrobie

Well-Known Member
Member
Joined
May 24, 2008
Messages
623
Trophies
0
XP
1,247
Mode 2 seems to have reverted back to asking for a filename for outputted XCI file - I preferred the 0.82beta way of building an automatic filename with "v65536" etc.
 

JRoad

Developer
OP
Developer
Joined
May 18, 2018
Messages
1,003
Trophies
0
XP
1,746
Country
Spain
Mode 2 seems to have reverted back to asking for a filename for outputted XCI file - I preferred the 0.82beta way of building an automatic filename with "v65536" etc.
Not exactly, it only does that for fat32. The beta didn't had fat32 support. For fat32 i'm using the old function for know so it isn't generating the file directly without nca extraction and it asks for the name. Is something i'll change but didn't do that yet.
So for name calculation for now you need "New Modes" + "exfat". Fat32 or legacy modes will ask you for the name.
 
  • Like
Reactions: markmcrobie

markmcrobie

Well-Known Member
Member
Joined
May 24, 2008
Messages
623
Trophies
0
XP
1,247
Not exactly, it only does that for fat32. The beta didn't had fat32 support. For fat32 i'm using the old function for know so it isn't generating the file directly without nca extraction and it asks for the name. Is something i'll change but didn't do that yet.
So for name calculation for now you need "New Modes" + "exfat". Fat32 or legacy modes will ask you for the name.

Ok thank you

--------------------- MERGED ---------------------------

For "File stream buffer" setting is it generally more powerful PC = higher setting? I have the latest high-end MacBook Pro, but I'm running NSCBuilder inside a Windows 10 Parallels VM
 

JRoad

Developer
OP
Developer
Joined
May 18, 2018
Messages
1,003
Trophies
0
XP
1,746
Country
Spain
Ok thank you

--------------------- MERGED ---------------------------

For "File stream buffer" setting is it generally more powerful PC = higher setting? I have the latest high-end MacBook Pro, but I'm running NSCBuilder inside a Windows 10 Parallels VM
I think it's more related to disk speed. The value used is the one that works better for the couple of computers i used. Is basically the size of chunks read to nand -> written to disk.
You actually get the best results locally when the disks are different. And for filestream, rclone mount, RaiDrive the speed maxes your download speed
 

18Phoenix

Well-Known Member
Member
Joined
Nov 21, 2005
Messages
766
Trophies
1
XP
2,298
Country
Germany
Short question: Hasn't come a new masterkey with FW 8.0.x ???
I always get the same keys like before using Lockpick_RCM 1.1.2.

Oh, I got it - NOOOOooooTHING changed at all - no new key dump needed.


By the way, I love and use this format for the result XCI file:
example:
Rocket League [01005EE0036EC000][+22DLCs][v1245184] v1.1.9.xci
 
Last edited by 18Phoenix,

JRoad

Developer
OP
Developer
Joined
May 18, 2018
Messages
1,003
Trophies
0
XP
1,746
Country
Spain
Short question: Hasn't come a new masterkey with FW 8.0.x ???
I always get the same keys like before using Lockpick_RCM 1.1.2.

Oh, I got it - NOOOOooooTHING changed at all - no new key dump needed.


By the way, I love and use this format for the result XCI file:
example:
Rocket League [01005EE0036EC000][+22DLCs][v1245184] v1.1.9.xci
Nintendo didn't change the masterkey on FW8.X, it's funny I know.
BTW for naming i've got some of petitions:
1.- Don't use space among tags
2.- Option to add [DLC], [BASE] or [UPDATE] as tag
3.- Option to add the firmware the game asks for as tag.

So my idea is to add the space option in options and them the other as questions. Also i'll add an option to skip some of the questions.

So i can add if you want an option to show the"build version" too.
 
  • Like
Reactions: 18Phoenix

18Phoenix

Well-Known Member
Member
Joined
Nov 21, 2005
Messages
766
Trophies
1
XP
2,298
Country
Germany
So i can add if you want an option to show the"build version" too.
That would be really cool, big thanks in advance :D

--------------------- MERGED ---------------------------

@JRoad
You've so much knowledge about the files ... I dream of a tool like XCI-Explorer,
just to get aaaaaalll nice infos including icon, version, needed FW etc. etc. by drag&drop,
without any menu, just simple drag & drop with a nice surface.
Wouldn't that a nice, small and (for you) easy side project ;)
 

huma_dawii

Well-Known Member
Member
Joined
Apr 3, 2014
Messages
3,879
Trophies
1
Age
33
Location
Planet Earth
XP
4,250
Country
United States
did you try with mortal kombat11 v1.0.3 update and include all 17 dlc files ?
im already tried to build to 1 xci files, then when i load using sx os, it says : insert game card
Yes with DLC and 1.0.3, make sure you re download the game, its very likely your files are corrupted.
 
  • Like
Reactions: cheungpakwan

JRoad

Developer
OP
Developer
Joined
May 18, 2018
Messages
1,003
Trophies
0
XP
1,746
Country
Spain
how do you get "xci_header_key =" ? and why does it need it?
From google, they derived it from a legit cartridge I think.
It's not needed, it's optional. It serve to read or generate the game-info region in xcis but I pregenerated 2 encrypted game-infos in the case people have that key missing in their keys.txt
 
  • Like
Reactions: cac0714

Tumbleweed

Well-Known Member
Member
Joined
Jul 29, 2018
Messages
165
Trophies
0
Age
39
XP
1,448
Country
Italy
Hmm, I tried a couple of things already, re-installed python, but the dependencies are all correct, keys are fine too, I tried to reinstall C++ but I don't have any missing dll issues, nevertheless something is going wrong here, I've tried both a legit .xci and the .nsp I want to convert and I always get an odd exception error.... Any ideas?

105192870_screenshot-2019-05-03-08-33-20.png
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • No one is chatting at the moment.
    LeoTCK @ LeoTCK: yes for nearly a month i was officially a wanted fugitive, until yesterday when it ended