Vochatrak, у меня сжатие работает, но заметил другую проблему, после распаковки файл другого размера, нехорошо (хотя в эмуляторе работает, а перепаковка этого NSP даёт такой же результат, видимо NCA верные, но NSP уже другой). Да, там используется алгоритм Zstandard для сжатия.
А что за архив ZSTD? Вы про обычное применение сжатия Zstandard к NSP? Я попробовал через Python и результат ничтожен:
import zstandard as zstd
cctx = zstd.ZstdCompressor()
compressed = cctx.compress(b'data to compress')
Как я понял NSP не сжимается просто так, потому что зашифрован, вот и весь секрет.
--------
Про разный размер. Патч xdelta3 от нового NSP на оригинальный NSP весит немного, для Blaster Master Zero 2 меньше 1КБ, при выгоде в 22МБ. При блочном сжатии результаты хуже. То есть нужно сжать, разжать, сделать патч, удалить два NSP.