PavelBARABANOV
58968bd127
[core] Support block-compressed NSZ and XCZ ( #4552 )
...
- [x] I have read and followed the [Contribution Guidelines](https://git.eden-emu.dev/eden-emu/eden/src/branch/master/CONTRIBUTING.md#code-contributions ).
- [x] I have read and followed the [AI Policy](https://git.eden-emu.dev/eden-emu/eden/src/branch/master/docs/policies/AI.md ).
- [x] I have read and followed the [Coding Guidelines](https://git.eden-emu.dev/eden-emu/eden/src/branch/master/docs/policies/Coding.md ) to the best of my ability.
-------------------
- Add NCZBLOCK (nsz -B / .xcz) reader: each read decodes only the covered blocks and re-encrypts CTR sections, no disk output.
- Allow installing solid .nsz to NAND via DecompressNCZForInstall (lazy, incremental decode with frontier, O(n) instead of O(n^2)).
- Accept BKTR updates with thousands of sections (MaxSectionCount = 0x10000).
- Wire .nsz/.xcz into loader, registered cache, scanner, and NAND install (content_manager.h), and reject solid NCZ from the game list.
- Bump the pinned zstd to 33618c8 in cpmfile.json, which includes the upstream AArch64 revert ([33618c89](https://github.com/facebook/zstd/commit/33618c89e511637f8a6ef955b3501766d71feb53 )) for a ZSTD_decodeSequence branch optimization that could corrupt data on ARM64; without it, solid NCZ decoding on Android fails with "Data corruption detected".
NCZ format and CTR counter semantics follow the reference nsz tool and its
Rust port:
- https://github.com/nicoboss/nsz (Decompressor.py, BlockDecompressorReader.py)
- https://docs.rs/nsz-rs/0.3.0/src/nsz_rs/decompress.rs.html
The last-block edge case (decompressed size is an exact multiple of block
size) is handled as described in https://github.com/nicoboss/nsz/issues/210
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4552
Reviewed-by: CamilleLaVey <camillelavey99@gmail.com >
Reviewed-by: Shinmegumi <shinmegumi@eden-emu.dev >
2026-10-26 17:23:18 +01:00
lizzie
09e77fa146
[common, fs] Use std::string_view instead of std::string&; inline functions that are used rarely ( #330 )
...
Signed-off-by: lizzie <lizzie@eden-emu.dev >
Co-authored-by: crueter <crueter@eden-emu.dev >
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/330
Reviewed-by: crueter <crueter@eden-emu.dev >
Co-authored-by: lizzie <lizzie@eden-emu.dev >
Co-committed-by: lizzie <lizzie@eden-emu.dev >
2025-08-27 22:21:04 +02:00
Andrew Pilley
3551bd0134
Add check for corrupted firmware files after install.
2024-02-18 12:31:14 +11:00
FearlessTobi
2b4d7506a8
Address review comments and fix compilation problems
2024-01-25 16:43:53 -05:00
FearlessTobi
4b7bb232f2
fs: Replace Mode enum by OpenMode enum
2024-01-25 16:42:05 -05:00
t895
564908ba83
frontend_common: Consistently use references
...
Was swapping between references and pointers for no reason. Just unify them here since each of these utility functions will need their parameters to be alive.
2024-01-25 12:53:49 -05:00
t895
55f1d7beeb
frontend_common: Remove key rederivation and keep key check
2024-01-25 12:53:48 -05:00
t895
7c70a8a362
frontend_common: Remove default value for installer callbacks
...
We never used these without callbacks and these will break without them in their current state. I could write the default value to return false always but that's unnecessary for now.
2024-01-21 19:31:26 -05:00
t895
3bee9db92f
frontend_common: Move integrity verification to content_manager
2024-01-21 16:36:37 -05:00
t895
009fd9ceb7
frontend_common: Add documentation for content_mananger
2024-01-19 20:54:50 -05:00
t895
3df0c826a1
android: Add addon delete button
...
Required some refactoring of retrieving patches in order for the frontend to pass the right information to ContentManager for deletion.
2024-01-19 20:54:50 -05:00
t895
4959e07015
frontend_common: Add content manager utility functions
...
Creates utility functions to remove/install DLC, updates, and base game content
2024-01-19 17:09:35 -05:00