Homebrew RELEASE NSZ - Homebrew compatible NSP/XCI compressor/decompressor

nicoboss

Well-Known Member
OP
Member
Joined
Feb 1, 2019
Messages
132
Trophies
0
Age
26
XP
1,196
Country
Switzerland
It seems the file size in progress bar and status is based on 1000 metric, not 1024. Would it be better to use the same metric as the system file explorer?

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

For compressing level, would higher level of compressing require more memory or cpu time when the nsz been installed or later maybe mounted?
1000 metric is the standard for Linux and 1024 the standard for Windows so it's a bit hard to decide for one. As the majority uses Windows, I maybe switch to the 1024 metric.

Even on highest compression level you still get 642 MB/s decompression speed per core which is around half the speed compared to worst compression level. Which such a decompression speed you will probably bottleneck on many other places first but let's assume you game manages to actually bottleneck the SD card's compressed read speed now as better the compression ratio the later you get that sort of bottleneck. As better the compression ratio as less compressed data needs to be read for the same amount of decompressed data. As higher the compression ratio the more you artificially increase your SD card's read speed. Because of this scarifying compression ratio for decompression cost makes absolutely no sense and was one of the main reasons why zStandard was chosen.

I don't think the RAM usage depends on the compression level and should generally be very low. To mount a game, you need to compress it using block compression anyways as otherwise you won't have random read access. The default chunk size is 1 MB so you will never need more then few hundred KB RAM anyways which is extremely important as sysmodules are extremely RAM limited.

Take a look at https://gist.github.com/nicoboss/62ae92c5dd0d44088323dc8b37859abf to see all zStandard compression and decompression performance for all compression levels using a single core.


It seems verification report hash mismatch happens very often. What's the cause of this?
Does the problem come from verification or compressing?
With clean unmodified or properly modified games you should never get any verification errors if you are using the latest stable NSZ 2.1.1 release. Most likely you are using games from a dirty source, use an instable version with a major bug inside compression or decompression or something with your setup is wrong. Verification makes sure games you compress still matches the hashes inside the Cnmt file after decompression which are the same hashes Horizon uses to verify the integrity of your games. If somebody modified the game without adjusting these hashes or something during compression or decompression went wrong you get a hash error. If this error occurs for clean games on latest stable and latest commit with latest prod.keys please open an issue with informations how to reproduce under https://github.com/nicoboss/nsz/issues/new
 
Last edited by nicoboss,

byanime

Well-Known Member
Newcomer
Joined
May 3, 2010
Messages
62
Trophies
0
XP
284
Country
The current github source changes at c2957be have solved the verification / compressing wont complete problem. But the command line argument -o doesnt seem to work anymore
 
Last edited by byanime,

byanime

Well-Known Member
Newcomer
Joined
May 3, 2010
Messages
62
Trophies
0
XP
284
Country
For this particular big file NBA 2K20[010026000E466800][US][v131072] it's strange that:
original nsp: 32494944 KB
nsz compressed with 2.1.1 block compressing level 17 default block size: 31632728 KB (can't complete the verification)
nsz compressed with the github source c2957be block compressing level 17 default block size : 32494944 KB there's no change in size at all? (verify passed).
 
Last edited by byanime,

nicoboss

Well-Known Member
OP
Member
Joined
Feb 1, 2019
Messages
132
Trophies
0
Age
26
XP
1,196
Country
Switzerland
The current github source changes at c2957be have solved the verification / compressing wont complete problem. But the command line argument -o doesnt seem to work anymore
Thanks a lot for reporting this bug. I fixed it in the latest commit. Smaller bugs like this are expected in development versions and reporting them is highly appreciated. I will try to publish the next stable NSZ 3.0 as soon as possible.

For this particular big file NBA 2K20[010026000E466800][US][v131072] it's strange that:
original nsp: 32494944 KB
nsz compressed with 2.1.1 block compressing level 17 default block size: 31632728 KB (can't complete the verification)
nsz compressed with the github source c2957be block compressing level 17 default block size : 32494944 KB there's no change in size at all? (verify passed).
The verification/decompression wont complete when using block compression issue was fixed around a week ago and was a decompression issue. So just verify the block compressed nsz produced using 2.1.1 with latest commit and the verification should be successful. I will try to reproduce your issue with latest commit not compressing this game properly.
 

byanime

Well-Known Member
Newcomer
Joined
May 3, 2010
Messages
62
Trophies
0
XP
284
Country
The current github source changes clearly having the block compressing broken. Maybe in one of the change to the #25 or #38 or merged code from XCI XCZ

Testing is done with block compressing -C -l 17 -B -V -t 0, with release 2.1.1 and commit c2957be


This file is small and easy to test:
[0100273008FBC000][v0]
nsp: 214736 KB
2.1.1 nsz 141614 KB size has been reduced, seems to be correct.
c2957be nsz 214736 KB, no size change, verification passed, compressing might be broken.

Large file:
File nsp v0 (01008FC00D964000) 9846508 KB
2.1.1 9739215 KB size has been reduced, seems to be correct.
c2957be 9846508 KB no size change, verification passed, compressing might be broken.
solid compressing at 22 will have a 7.45GB

another much larger file:
File [010026000E466800][US][v131072]
original nsp: 32494944 KB
2.1.1 31632728 KB (can't complete the verification), size has been reduced, seems to be correct.
c2957be 32494944 KB no size change, verification passed, compressing might be broken.

It happens on small and big files.
 
Last edited by byanime,

byanime

Well-Known Member
Newcomer
Joined
May 3, 2010
Messages
62
Trophies
0
XP
284
Country
No hurry. Take your time.

I'd suggest maintain the default compressing level to be 17 to 18.
Higher level gives very little benefits on file size, but the compressing time will be doubled tripled or maybe five times, 10 times compared
to level 17/18.
Hard core users can turn on the max level manually. The default option should be an option that is
"reasonably working fine for average person", so it has no need to be changed for daily use.

The new help text for switch -B and -S feels like really confusing to me.

-B, --block NSZ: Use block compression instead of solid
compression. Block compression allows highly
multithreaded compression/decompression with random
read access allowing compressed games to be played
without decompression in the future however this comes
with a low compression ratio cost. Block compression
is the default option for XCZ.
-S, --solid XCZ: Use solid instead of block compression. XCZ
produced that way will never be mountable. Solid
compression is the default option for NSZ.



XCZ produced that way will never be mountable.Which way?

I'd suggest a change maybe like this:

-B, --block
Use block compression option. This mode allows highly
multi-threaded compression/decompression with random read
access allowing compressed games to be played without
decompression in the future however this comes with a slightly
lower compression ratio cost. This is the default option for XCZ.

-S, --solid
Use solid compression option. Slightly higher compression ratio but
won't allow for random read access. File compressed this way
will never be mountable (have to be installed or decompressed
first to run). This is the default option for NSZ.


The following question might be a little earlier to ask. But just put my thoughts here:

Also I guess XCZ is possible to be mounted and run without decompressing first?
What will happen to the update files and DLC files packed into the same XCI file? Will they also be compressed into XCZ and been able to play without decompressing?

How about update files and DLC files been compressed into seperate NSZ format, what will happen when you mount the
main nsz file to play, will those updates and DLCs need to be mounted as well or installed?
 
Last edited by byanime,

nicoboss

Well-Known Member
OP
Member
Joined
Feb 1, 2019
Messages
132
Trophies
0
Age
26
XP
1,196
Country
Switzerland
Because of the whole "Tinfoil: hateful messages?" here some nsZip history:
I started the nsZip project mainly to develop a format for compressed game dumps for the Yuzu Emulator. The NSPZ/XCIZ file format was developed together with the ReSwiched and Yuzu community. I actively mentioned and improved nsZip over the following half year completely by myself and have never anything to do with Blawar. However, one day Blawar decided to implement a simplified version of NSPZ called NSZ in his python project and title installer. Soon later the largest suppliers switched from NSP to NSZ for faster downloads, faster file transfers, faster installation time and to save storage. I never intended to support piracy with nsZip in any way and was quite shocked because of NSZ hitting me by complete surprise and instantly gained enormous popularity. Luckily it turned out NSZ still has all NSPZ core features and only NDV0 trimming was replaced by just deleting delta fragments as they are useless anyways. Also, the first 0x4000 bytes are stored encrypted and the file header was much easier. NSZ also switched from Type 1 (block compression) to Type 0 (solid compression) even though Type 0 NSPZ was purposed it was never even implemented as I wasn't interested in it. I agreed with Blawar’s changes as they finally made the compressed format feasible to be implemented as NSPZ was just way too complex for homebrew developers and I immediately took over the NSZ project. The NSZ project was rushed and an instable mess. After making things at least somewhat stable I ported block compression from NSPZ to NSZ. The only reason why it took so long to port over XCIZ was that unlike in hactoolnet library which I used for nsZip there was no HFS0/XCI packer inside the NUT library used by the NSZ codebase. It was a lot of work to bring NSZ back to where nsZip was but with its great GUI it by now even surpassed the original nsZip.

It really sucks that many people like @leon315 now think NSZ equals Blawar which definitely isn't true. It's all based on nsZip and my idea. He wasn't even part of the project during its first half year and only responsible for some minor file format changes. I decide what happens with the NSZ project and am by far the main contributor.

At this point I also have to say regarding the "Tinfoil: hateful messages?" that I will never allow any political content or other bullshit to be included into my NSZ repository and want to clearly distant myself from any of Blawars political opinions included in some of his projects as I personally don't have anything against minorities. I also don't want politics to be discussed in any of my threads.

The current github source changes clearly having the block compressing broken. Maybe in one of the change to the #25 or #38 or merged code from XCI XCZ

Testing is done with block compressing -C -l 17 -B -V -t 0, with release 2.1.1 and commit c2957be


This file is small and easy to test:
[0100273008FBC000][v0]
nsp: 214736 KB
2.1.1 nsz 141614 KB size has been reduced, seems to be correct.
c2957be nsz 214736 KB, no size change, verification passed, compressing might be broken.

Large file:
File nsp v0 (01008FC00D964000) 9846508 KB
2.1.1 9739215 KB size has been reduced, seems to be correct.
c2957be 9846508 KB no size change, verification passed, compressing might be broken.
solid compressing at 22 will have a 7.45GB

another much larger file:
File [010026000E466800][US][v131072]
original nsp: 32494944 KB
2.1.1 31632728 KB (can't complete the verification), size has been reduced, seems to be correct.
c2957be 32494944 KB no size change, verification passed, compressing might be broken.

It happens on small and big files.
Thanks a lot for reporting this major bug. I fixed it in https://github.com/nicoboss/nsz/commit/cd95d9290553ff30f108c7d347bea80282c67cb5


No hurry. Take your time.

I'd suggest maintain the default compressing level to be 17 to 18.
Higher level gives very little benefits on file size, but the compressing time will be doubled tripled or maybe five times, 10 times compared
to level 17/18.
Hard core users can turn on the max level manually. The default option should be an option that is
"reasonably working fine for average person", so it has no need to be changed for daily use.

The new help text for switch -B and -S feels like really confusing to me.

-B, --block NSZ: Use block compression instead of solid
compression. Block compression allows highly
multithreaded compression/decompression with random
read access allowing compressed games to be played
without decompression in the future however this comes
with a low compression ratio cost. Block compression
is the default option for XCZ.
-S, --solid XCZ: Use solid instead of block compression. XCZ
produced that way will never be mountable. Solid
compression is the default option for NSZ.



XCZ produced that way will never be mountable.Which way?

I'd suggest a change maybe like this:

-B, --block
Use block compression option. This mode allows highly
multi-threaded compression/decompression with random read
access allowing compressed games to be played without
decompression in the future however this comes with a slightly
lower compression ratio cost. This is the default option for XCZ.

-S, --solid
Use solid compression option. Slightly higher compression ratio but
won't allow for random read access. File compressed this way
will never be mountable (have to be installed or decompressed
first to run). This is the default option for NSZ.


The following question might be a little earlier to ask. But just put my thoughts here:

Also I guess XCZ is possible to be mounted and run without decompressing first?
What will happen to the update files and DLC files packed into the same XCI file? Will they also be compressed into XCZ and been able to play without decompressing?

How about update files and DLC files been compressed into seperate NSZ format, what will happen when you mount the
main nsz file to play, will those updates and DLCs need to be mounted as well or installed?

Yes I agree and in booth latest stable and nsZip 18 is the default. I only change it to max because the vast majority used max and you could also argue that the default value should be what the majority uses. Maybe I should change it back but I'm quite uncertain here. However, I also want to note here that the difference between 18 and 22 is less than double the compression time.

You are right. Your help text suggestion is much easier to understand. I replaced it.

As you maybe already know from the above nsZip’s history the whole file format was made with random access inside compressed data in mind and so every block compressed NCZ can be accessed without decompressing it first. Booth XCI/XCZ and NSP/NSZ are just container containing NCA/NCZ files. If no NCZ inside such a container is solid compressed the whole container can be mounted. So, both XCZ and NSZ can be mounted. XCZ is even block compressed by default is XCI is known to be the mountable.

An XCZ is basically just an XCI with all its NCA files block compressed to NCZ. It contains the Gamecard Header, Gamecard Certificate, Initial Data and anything inside the HFS0 secure partition. So basically, everything except the HFS0 update partition which contains the horizon firmware update, the HFS0 normal partition which contains only duplicate data of what's already inside secure and logo which also contains duplicate data of what's already inside secure.

To conclude XCZ includes the base game with the applied update and DLCs that comes with the game card you dumped your XCI from and can also be converted back to XCI.

Every Nintendo Switch game card is read only so additional updates will be installed using a title installer as NSP/NSZ like normal games however theoretically you could patch them inside your XCI before converting it to XCZ if you really want to. Depending on how NCZ mounting is implemented NSZ maybe even be installed compressed. If that's the case game card independent updates will also be stored compressed if not maybe they still have to be installed uncompressed and only the card can be compressed. At this point nobody really knows. However, what I know is that XCZ/NSZ mounting for PC will probably come at the end of February or early March 2020 with NSZ 4.0
 
Last edited by nicoboss,

nicoboss

Well-Known Member
OP
Member
Joined
Feb 1, 2019
Messages
132
Trophies
0
Age
26
XP
1,196
Country
Switzerland
Today NSZ 3.0 got finally released!

Here some screenshots of the GUI:
http://www.nicobosshard.ch/nsz/NSZ_GUI/Mainscreen.png
http://www.nicobosshard.ch/nsz/NSZ_GUI/Settings.png
http://www.nicobosshard.ch/nsz/NSZ_GUI/Advanced.png
http://www.nicobosshard.ch/nsz/NSZ_GUI/FolderBrowser.png
http://www.nicobosshard.ch/nsz/NSZ_GUI/About.png

NSZ 3.0 Changelog:
  • GUI:
    • Contains all functions available using command line arguments
  • XCZ support
    • Block compressed (default)
    • Solid compressed
    • XCZ to XCI decompression
  • Implemented task parallel solid compression. See --multi
  • Implemented titlekey extraction with titlekeys.txt and titledb support. See --titlekeys
  • Added regex support to the extract option to allow the user to specify exactly which files should be extracted from the container. See --extractregex
  • NCZ decompression directly in nsz #38
  • Updated IndependentNczDecompressor to the latest version inside nsz
  • Fully replace tqdm with enlighten
    • Implemented multithreaded multiple process bars communication system for solid compression and verification while avoiding stdout race conditions
  • Endless decompression/verification on a few block compressed games #25
  • Fixed a major bug causing the space between block compressed NCZ files to be filled up with 0x00 to fit their uncompressed size
  • Major Scripts Cleanup
  • Fixed NSZ Decompressor TQDM Progress Bar
  • Fixed --rm-old-version
  • fixed path bug with decompression
  • Removed pycryptodome v3.9.0 restriction as its latest v3.9.3 works fine
  • Improved installation guide
  • Fixed an exception that could occur when trying to receive keys under special circumstances during debugging
  • Fixed a major bug inside the enhanced file existing check leading to files with the same name as a file already existing inside the output directory being overwritten without specifying this behavior using the –overwrite command line argument. This bug was cause by comparing the output file path instead of the output filename with existing filenames.
  • Made nsz pip package building Kivy compatible
  • Switched from Nuitka to PyInstaller due to Kivy compatibility
  • Changed how --extract and --verify arguments are handled internally
  • Set up CI with Azure Pipelines using self-hosted server
  • Fully switched to pathlib. This fixes #41 and a lot of other file path related issues
  • Fixed Enhanced File Existing Check. Adapting to pathlib and finally fixing --overwrite and --rm-old-version
  • Improved exception handling related to outdated keys.txt which fixes issue #29 and #40
  • General system stability improvements to enhance the user's experience.
 
Last edited by nicoboss,

Mthodmn101

Well-Known Member
Member
Joined
Jan 31, 2008
Messages
650
Trophies
1
XP
1,711
Country
United States
Today NSZ 3.0 got finally released!

Here some screenshots of the GUI:
http://www.nicobosshard.ch/nsz/NSZ_GUI/Mainscreen.png
http://www.nicobosshard.ch/nsz/NSZ_GUI/Settings.png
http://www.nicobosshard.ch/nsz/NSZ_GUI/Advanced.png
http://www.nicobosshard.ch/nsz/NSZ_GUI/FolderBrowser.png
http://www.nicobosshard.ch/nsz/NSZ_GUI/About.png

NSZ 3.0 Changelog:
  • GUI:
    • Contains all functions available using command line arguments
  • XCZ support
    • Block compressed (default)
    • Solid compressed
    • XCZ to XCI decompression
  • Implemented task parallel solid compression. See --multi
  • Implemented titlekey extraction with titlekeys.txt and titledb support. See --titlekeys
  • Added regex support to the extract option to allow the user to specify exactly which files should be extracted from the container. See --extractregex
  • NCZ decompression directly in nsz #38
  • Updated IndependentNczDecompressor to the latest version inside nsz
  • Fully replace tqdm with enlighten
    • Implemented multithreaded multiple process bars communication system for solid compression and verification while avoiding stdout race conditions
  • Endless decompression/verification on a few block compressed games #25
  • Fixed a major bug causing the space between block compressed NCZ files to be filled up with 0x00 to fit their uncompressed size
  • Major Scripts Cleanup
  • Fixed NSZ Decompressor TQDM Progress Bar
  • Fixed --rm-old-version
  • fixed path bug with decompression
  • Removed pycryptodome v3.9.0 restriction as its latest v3.9.3 works fine
  • Improved installation guide
  • Fixed an exception that could occur when trying to receive keys under special circumstances during debugging
  • Fixed a major bug inside the enhanced file existing check leading to files with the same name as a file already existing inside the output directory being overwritten without specifying this behavior using the –overwrite command line argument. This bug was cause by comparing the output file path instead of the output filename with existing filenames.
  • Made nsz pip package building Kivy compatible
  • Switched from Nuitka to PyInstaller due to Kivy compatibility
  • Changed how --extract and --verify arguments are handled internally
  • Set up CI with Azure Pipelines using self-hosted server
  • Fully switched to pathlib. This fixes #41 and a lot of other file path related issues
  • Fixed Enhanced File Existing Check. Adapting to pathlib and finally fixing --overwrite and --rm-old-version
  • Improved exception handling related to outdated keys.txt which fixes issue #29 and #40
  • General system stability improvements to enhance the user's experience.


Doesnt seem to save the settings, unless that is intended.

And i get this error code in the window:

[ERROR ] [Unable to write the config <D]\Download\Switch\nsz_v3.0.0_win64_portable\gui\gui.ini>
Traceback (most recent call last):
File "site-packages\kivy\config.py", line 558, in write
FileNotFoundError: [Errno 2] No such file or directory: 'D:\\Download\\Switch\\nsz_v3.0.0_win64_portable\\gui\\gui.ini'
 

nicoboss

Well-Known Member
OP
Member
Joined
Feb 1, 2019
Messages
132
Trophies
0
Age
26
XP
1,196
Country
Switzerland
Doesnt seem to save the settings, unless that is intended.

And i get this error code in the window:

[ERROR ] [Unable to write the config <D]\Download\Switch\nsz_v3.0.0_win64_portable\gui\gui.ini>
Traceback (most recent call last):
File "site-packages\kivy\config.py", line 558, in write
FileNotFoundError: [Errno 2] No such file or directory: 'D:\\Download\\Switch\\nsz_v3.0.0_win64_portable\\gui\\gui.ini'
Oh yes can confirm. Sorry that that one slipped through. I will release an update in around a week fixing this. Just use the pip version instead of the portable one and it will work. Feel free to open an issue on my GitHub page if you like.
 

nicoboss

Well-Known Member
OP
Member
Joined
Feb 1, 2019
Messages
132
Trophies
0
Age
26
XP
1,196
Country
Switzerland
Doesnt seem to save the settings, unless that is intended.

And i get this error code in the window:

[ERROR ] [Unable to write the config <D]\Download\Switch\nsz_v3.0.0_win64_portable\gui\gui.ini>
Traceback (most recent call last):
File "site-packages\kivy\config.py", line 558, in write
FileNotFoundError: [Errno 2] No such file or directory: 'D:\\Download\\Switch\\nsz_v3.0.0_win64_portable\\gui\\gui.ini'
nsz_v3.0.0_hotfix1_win64_portable.zip adds a missing empty folder that prevented GUI configurations from being saved in inside nsz_v3.0.0_win64_portable.zip. You can download the hotfix from https://github.com/nicoboss/nsz/releases/tag/3.0.0
 

Mthodmn101

Well-Known Member
Member
Joined
Jan 31, 2008
Messages
650
Trophies
1
XP
1,711
Country
United States
nsz_v3.0.0_hotfix1_win64_portable.zip adds a missing empty folder that prevented GUI configurations from being saved in inside nsz_v3.0.0_win64_portable.zip. You can download the hotfix from https://github.com/nicoboss/nsz/releases/tag/3.0.0


thanks, that fixed that issue. Is there any way to choose a single file to compress/decompress? if i try and load just one in a directory full of nsps/nszs, it loads them all in the window and will process them all
 

testdrive-99

Member
Newcomer
Joined
Jul 3, 2019
Messages
13
Trophies
0
XP
369
Country
United States
Getting Error

Both Window.minimum_width and Window.minimum_height must be bigger than 0 for the size restriction to take effect.
Deprecated property "<StringProperty name=id>" of object "<gui.GameList.GameList object at 0x000002A3E8B54588>" has been set, it will be removed in a future version
[INFO ] [Base ] Start application main loop
[INFO ] [GL ] NPOT texture support is available
[ERROR ] unable to access to <\hiberfil.sys>
Traceback (most recent call last):
File "site-packages\kivy\uix\filechooser.py", line 178, in is_hidden
pywintypes.error: (32, 'GetFileAttributesEx', 'The process cannot access the file because it is being used by another process.')
[ERROR ] unable to access to <\pagefile.sys>
Traceback (most recent call last):
File "site-packages\kivy\uix\filechooser.py", line 178, in is_hidden
pywintypes.error: (32, 'GetFileAttributesEx', 'The process cannot access the file because it is being used by another process.')
[ERROR ] unable to access to <\swapfile.sys>
Traceback (most recent call last):
File "site-packages\kivy\uix\filechooser.py", line 178, in is_hidden
pywintypes.error: (32, 'GetFileAttributesEx', 'The process cannot access the file because it is being used by another process.')



after clicking decompress nsz, I get this

Error when decompressing file: C:\Newfolder\Skin[010032000EA2C000][US][v0].nsz
Traceback (most recent call last):
File "nsz\__init__.py", line 219, in main
File "nsz\__init__.py", line 62, in decompress
TypeError: decompress() missing 1 required positional argument: 'pleaseNoPrint'

Summary of errors which occurred while processing files:
Error when processing C:\Newfolder\Skin[010032000EA2C000][US][v0].nsz
Traceback (most recent call last):
File "nsz\__init__.py", line 219, in main
File "nsz\__init__.py", line 62, in decompress
TypeError: decompress() missing 1 required positional argument: 'pleaseNoPrint'

Done!
 
Last edited by testdrive-99,

nicoboss

Well-Known Member
OP
Member
Joined
Feb 1, 2019
Messages
132
Trophies
0
Age
26
XP
1,196
Country
Switzerland
Today NSZ 3.1 got released!
It fixes most buggs that slipped into v3.0 and highly improved the open file/folder dialog inside the GUI.
Get it from: https://github.com/nicoboss/nsz/releases

NSZ 3.1 Changelog:
  • Fixed broken decompression in v3.0.0 due to an optional argument not marked as such and an outdated file extension comparison
  • Allow the selection of individual files inside the OpenFileDialog
  • Made it visible which drive is currently selected inside the OpenFileDialog and SaveFileDialog
  • Replaced the background_down image with the background_normal one as it looks ugly inside the FileDialogs
  • Removed SaveFileDialog as its unused and a pain to maintain
  • Highly improved the OpenFileDialog by allowing switching between the icon and list layout
  • Added filter to the OpenFileDialog so it only displays nsp, nsz, xci, xcz and ncz files
  • No longer showing the empty placeholder for the device selection on non-Windows platforms an made per OpenFileDialog argument specifiable file filters possible
  • Finally enabled the selection of folders and selecting multiple items at the same time
  • Automatically creating the empty gui folder required for settings to be saved in nsz portable which is exactly the fix manually applied to nsz_v3.0.0_hotfix1_win64_portable.zip
  • Fixed the warnings that appeared in the console on every GUI launch
  • Made the file browser view mode buttons in the same design as the Windows device selection buttons
  • Implemented deletion of selected GameList items using the delete or backspace key
  • Highly improved the GameList item selection and deletion
  • Vixed verification only mode not executing when called from GUI
  • Set the default amount of threads for solid compression to 3 while keeping the number of logical cores the default for block compression because the majority is now using task parallelization for solid compression
  • Fixed: AttributeError: 'RootWidget' object has no attribute 'verify'
  • Dirty fixed Kivy throwing "Error in sys.excepthook" during shutdown if the amount of RecycleView data was ever decreasing
    • I tried multiple hours fixing this the proper way without success. I also tried removing all children what makes it to throw the same exception without even decreasing the amount of data and tried filling it with dummy data on shutdown in self.rootWidget.gameList.recycleView.shutdown() which didn’t worked because it’s already too late to spawn everything needed to avoid this exception.
  • Improved the wording of the error summary
  • Updated testing and deployment scripts
  • Fixed orphan processes remaining after the main process terminated after block compressing a very short task resulting in the orphan processes spamming "AttributeError: 'ForkAwareLocal' object has no attribute 'connection'" exceptions
  • Fixed NSZ GUI icon not showing
  • General system stability improvements to enhance the user's experience.
 
Last edited by nicoboss,
  • Like
Reactions: Taorn and stick267

nicoboss

Well-Known Member
OP
Member
Joined
Feb 1, 2019
Messages
132
Trophies
0
Age
26
XP
1,196
Country
Switzerland
Some users pointed out that XCZ decompression was still broken in nsz v3.1.0. I looked into it and with the now released nsz v3.1.1 finally fixed it. There are currently no more known issues in nsz left and this version seems to be quite stable.
Get it from: https://github.com/nicoboss/nsz/releases

NSZ 3.1.1 Changelog:
  • Fixed XCZ decompression/verification
 

Elusivity

Member
Newcomer
Joined
Jan 13, 2015
Messages
12
Trophies
0
Age
41
XP
43
Country
Whole folder selection doesn't seem to be working in win portable 3.1.1? I'm compressing NSP to NSZ via solid, selected the input folder and specified an output folder, run it and the console window shows arguments have been parsed but it just sits there doing nothing. If I select a few single files then everything works correctly.
 

GnK23

Well-Known Member
Member
Joined
Apr 6, 2016
Messages
170
Trophies
0
Age
35
XP
671
Country
United States
@nicoboss nice update. Haven't been active for a while. I tested your latest release and I have a few suggestion.
1. Is it possible that after the convertion the menu would return or the program would exit after a couple of seconds?
2. An option where the default input and output folder can be set to speed up the process everytime the app is executed.
Thanks!
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    Xdqwerty @ Xdqwerty: @salazarcosplay, I heard herbert stopped appearing on the show