NSZ 4.0 Released

NSZ 4.0

Nico Bosshard has just uploaded a new version of his python script called NSZ, the compression format recently born on the Switch scene, which allows you to compress and decompress .nsz files.
This version 4.0 brings many fixes and innovations in this area with a large list of changes.
NSZ files are very similar to NSPs, they are compressed, it's not quite a new format, the script is quite simple to use, and be aware that NSC_Builder supports NSP file compression in NSZ and decompression NSZ file in NSP.
More than 6 months were necessary for the arrival of this version 4.0, a huge update, the developer will try to resume a more sustained pace with more regular intermediate versions.

Changelog 4.0:
- Implementation of Drag & Drop support
- Implemented CRC32 key validation and added support for future master keys
- Fixed the problem of not recognizing master_key_0a
- Added CRC32 fix for master_key_0a
- Windows 7 support
- Improved scaling of GUI font size
- Definition of the NSZ GUI window on TopMost (always at the top) on Windows so that drag and drop is much more convenient
- Added a parameter to specify if the Kivy window should always be on top or not
- XCI / XCZ finally extracts to folders containing NCA / NCZ files instead of HFS0 partition dumps
- Fixed a major XCI compatibility bug by implementing compression / decompression support for NCA files with the first section having an offset smaller or larger than 0x4000.
- Added support for NSPZ extraction (nsZip legacy file format)
- Make the GUI an optional installation
- Decompression # 59 ncz which did not work
- Clean up imports for the nsz package
- Stop the management of the bar to avoid crashes
- Added pywin32 as a GUI dependency for Windows.
- Fixed BlockDecompressorReader.seek with whence = 2 (search relative to end of file).
- Starting nsz.py from a different working directory finally works
- Fixes the current Azure pipeline issue
- Added solid decompression, block decompression, solid compression and block compression tests to azure-pipelines.yml
- New return from NSZ with error code 1 if there are exceptions
- Fixed a crash in BlockCompressor.py
- Much improved block decompression speed by caching the current block
- Added Visual Studio 2019 Python project
- Added titleId and version to the list of files and improved its design
- SelectableLabel elements in the set list now correctly scale its height based on the available width and length of the file path text.
- Added multi-language open-source font
- Input folder implemented as default output folder
- Waiting for Input before exiting when booting through the GUI so that errors and console output can be seen before it is closed
- Fixed installation failure on Kubuntu 20.04 and many other modern Linux distributions by improving install_linux.sh
- Removed code that manipulated XCI header size for no reason
- Decompression speed improved by 400% by drastically reducing the number of performance-intensive status bar refresh calls
- The decision whether the last block should be decompressed or copied now matches the file format specification by comparing the decompressed block size of that specific block with its compressed size. This issue was due to the absence of the (unlikely) edge case that the last block can be larger when compressed without exceeding the general block size.
- Improved BlockCompression performance and overall CPU usage by reducing the number of performance-intensive status bar refresh calls.
- Make sure the straight line to the cursor is clean when the app ends
- Implemented undupe, undupe-dryrun, undupe-prioritylist, undupe-whitelist and undupe-old-versions to remove duplicate sets
- Improved missing prod.keys / keys.txt error message by not showing stack trace and waiting for user input before exiting
- Highly improved README.md
- General system stability improvements to improve user experience.
Download: NSZ 4.0

Post a Comment