Here you go, a very small c++ version for converting nsp/xci files to nsz/xcz and back again. Source code and exe are in the zip.
Example usage:
Read the included readme file for usage.
This is a command line tool, at some point I might make a gui. I just made it for my own personal use but feel free to mod/share or whatever you want. It's modified rust code version on the net that I converted to c++ for my own use.
@snuffbot1
Thank you for your lightweight C++ realization, I like the idea but unfortunately for right now it's very slow.
I tried to test it versus the nszgui by nicoboss, the results with 200 MB NSP file (level 22 blocks and long-distance) are:
1) His version took 9seconds to compress with maximum CPU utilization across all cores:
I'm adding xci support just now, I didn't look at nicboss version, but I assume he is starting a few threads so it's using more cpu usage rather that taking longer. I could add that I guess. I've got xcz decompress done and am about 90% though adding xci to xcz, so I'll have a look at multithreading/cpu core use once I'm done with that.
I'll think about it, I've just finished xci stuff just now so block and solid compress works. I'll add flags so you can remove update/logo partitions as it's pointless packing an xci with firmware update files included (defeats the point really).
Note to self:
Build windows fancy shmancy GUI with drag and drop support... dropdowns/switches and shit!
That maxed out my cpu and should be faster, I've also added xci > xcz < xci stuff and fixed a few bugs. Report issues and I'll fix them before making a gui. For verification you can use NXfile viewer for now, when I make a gui I'll probably add that as a separate feature from the exe I posted.
It's the deal breaker, I need the block compression, only. nicoboss maxed out the CPU even with block compression method... It's also has an option to auto-verify the results afterwards.
The problem is, it's python-based, so heavy and cumbersome, I'd like C++ solution more.
It's the deal breaker, I need the block compression, only. nicoboss maxed out the CPU even with block compression method... It's also has an option to auto-verify the results afterwards.
The problem is, it's python-based, so heavy and cumbersome, I'd like C++ solution more.
The main reason is that when installing large and high-compressed .NSZ files, like 15 GB with Level 22 in long-distance mode, they do not need the Application mode on a Switch, standard Applet mode works well. It's crucial for inexperience users = so my needs.
The main reason is that when installing large and high-compressed .NSZ files, like 15 GB with Level 22 in long-distance mode, they do not need the Application mode on a Switch, standard Applet mode works well. It's crucial for inexperience users = so my needs.
OK no problem, what I'll do is look at ZSTD_c_nbWorkers code in nsp/xci packing but I think it already automatically sets workers by itself, maybe I can add an override flag. I've been fixing some minor bugs and stuff but I am nearly completed now with the small exe (only started making this from scratch yesterday), I've still got a gui to make but I'll release the update command line exe later today. At the minute I am working something else. Verfication now works though I didn't add it to check automatically after compression/decompression. I just put it with it's own flag, like this : nszrs -V -k prod.keys game.xci
I suppose you could make a little batch script to run that automatically if you wanted. In the gui when I do that I want it as a seperate thing so that's why I've done it like that.
What to do is set the -t value to 8 or 20 or whatever and let me know what kind of speed you get without your CPU going mental or running out of memory, once Done I'll add code for block mode as currently this is single thread for now which is why it's slower than the python version you are using.
There's still a little headroom to improvements, CPU load average is ~85-90% but for now it's no less then python version, and I love it, my gratitudes.
There's still a little headroom to improvements, CPU load average is ~85-90% but for now it's no less then python version, and I love it, my gratitudes.
Tell me what improvements you want, I've got my own few tweaks to do but I'll consider adding yours. Once that's done you'll get a nice gui to use it with so it will basically be drag and drop. Also increase threads to 40, it will be even faster.
Long distance mode is useless in case of block compression because your blocks are smaller than distance.
Also python code still uses native zstd library, so it is the same code. Also nicoboss' is the reference implementation, so I prefer to always use it.
@DuCkBiLL - nicboss python version GUI is horrible to use and looks janky and the python version kept crashing/failing to run for me. I'd also like to add my own features so meh! So please don't use this version and stick to using the version you currently have. I've made this version in about a day and it does pretty much eveything I want for now, but I can change it whenever I want and so can everyone else that hates looking at crappy GUI's and doesn't want to download python and have lots of python files filling up their hard drive when they can just have 1 single small exe file to do the same thing.
It’s about that time of year again where I check in with the community to see if we can get the front page aligned with what people are interested in knowing and what...
WiiCompiled is a new project that lets PC gamers play Mario Kart Wii natively on PC without emulation. Using static recompliation to convert the code into native PC...
The long awaited Grand Theft Auto VI Extended Look gameplay trailer has finally dropped on YouTube. As you all know, it had dropped 6 hours earlier on Netflix, and...
After being announced last week, the first of two broadcasts is set to go live later today with a stark focus on The Legend of Zelda and its 40th anniversary...
Thanks to the recent decomplication efforts; The Minish Cap 3DS brings the Game Boy Advance classic Zelda title to your 3DS.
The port takes full advantage of the 3DS...
In the wake of Sony's shift to a digital-only ecosystem within the next year, Xbox have today announced a surprising scheme. Aiming to offer physical buyers the same...
It is with a heavy heart that I announce the departure of our beloved Chary from the position of Chief Editor. Chary took over early 2021 and has done a wonderful job...
It's that time again folks, an update for the Switch and Switch 2, and a surprisingly big one at that! At lease for folks on the Switch 2. The most notable feature...
The second of a two-part special, a more traditional Nintendo Direct is set to air today. Unlike the Zelda Direct the contents of this one is still relatively up in...
To celebrate its 25th anniversary, XBOX has launched pre-orders for the XBOX 25th Anniversary Collection. For the occasion, the trailer below was aired.
This...
It’s about that time of year again where I check in with the community to see if we can get the front page aligned with what people are interested in knowing and what...
After being announced last week, the first of two broadcasts is set to go live later today with a stark focus on The Legend of Zelda and its 40th anniversary...
It's been something of a quiet week in the gaming space, with the deluge of big hitters trying to find their place before GTA 6 launches really kicking off next week...
In the wake of Sony's shift to a digital-only ecosystem within the next year, Xbox have today announced a surprising scheme. Aiming to offer physical buyers the same...
The long awaited Grand Theft Auto VI Extended Look gameplay trailer has finally dropped on YouTube. As you all know, it had dropped 6 hours earlier on Netflix, and...
It is with a heavy heart that I announce the departure of our beloved Chary from the position of Chief Editor. Chary took over early 2021 and has done a wonderful job...
The second of a two-part special, a more traditional Nintendo Direct is set to air today. Unlike the Zelda Direct the contents of this one is still relatively up in...
After an accidental leaking of their review video from Linus Tech Tips last week, we somewhat knew that news on Steam's latest VR venture was imminent. Today the...
Announced a few days ago, Nintendo of America have today launched their Customer Appreciation Sale. Featuring 30% discounts across a wide range of popular first-party...
A few days ago Chary stepped down as Chief Editor after 5 wonderful years, and everyone guessed the seat wouldn't stay empty for very long. Back in 2021 I proudly...