21 Commits

Author SHA1 Message Date
1681c4f1ec build: enhance MSVC assembly handling for BLAKE3 with architecture checks 2026-04-04 15:51:03 +01:00
2aac1ce89c refactor: update file I/O to support large files with aaru_off_t type 2026-04-04 15:10:46 +01:00
bf55a0140c Update dependencies to latest version. 2026-03-29 18:31:27 +01:00
Kevin Bortis
120174e4cd Add multi-threaded zstd compression support
Switch zstd encoder from simple API (ZSTD_compress) to advanced API
(ZSTD_CCtx + ZSTD_compress2) with configurable worker threads via
ZSTD_c_nbWorkers. Consumer controls threading through threads=N
option string parameter. Default is 1 (single-threaded, bit-identical
output to previous behavior).

- Enable ZSTD_MULTITHREAD compile definition and link pthreads
- Add num_threads field to options struct and context
- Parse threads=N in option string (clamped >= 1)
- Rewrite aaruf_zstd_encode_buffer() with num_threads parameter
- Update all call sites (write.c, close.c)
2026-03-29 12:56:19 +02:00
6dbd5f1bb2 Merge pull request #12 from RomTholos/fix/cross-compilation-arm-riscv
Fix cross-compilation for ARM FPU variants and add RISC-V support
2026-03-19 11:58:49 +00:00
Kevin Bortis
bd01e7d8a5 Fix cross-compilation for ARM FPU variants and add RISC-V support 2026-03-19 12:34:00 +01:00
Kevin Bortis
6be36b6bda Add Zstandard compression support
Implements zstd as an alternative to LZMA for data block and
subchannel compression using the allocated compression IDs 4
(kCompressionZstd) and 5 (kCompressionZstdCst).

Adds zstd v1.5.7 as a bundled submodule with a static library
build including x86_64 assembly fast path for decompression.

Write path selects zstd or LZMA based on the zstd option.
Subchannel blocks use zstd+CST instead of LZMA+CST when enabled.
LZMA properties header is only written for LZMA-based compression
types, preventing format corruption in zstd-compressed images.

Activated via options string: "zstd=true;zstd_level=19".
Default remains LZMA for backwards compatibility.

Tested: SHA-256 verified lossless roundtrips across 9 disc systems
(Dreamcast, Saturn, Mega CD, PC Engine CD, Neo Geo CD, PS1, PS2 CD,
PS2 DVD) and PS1 SBI subchannel preservation with zstd+CST.
2026-03-19 08:45:07 +01:00
77446b88f1 Update third party dependencies. 2026-01-04 16:04:10 +00:00
df8e74eb4f Fix slog commit. 2025-10-12 03:59:52 +01:00
c1f0783212 Do not use assembly in FLAC. 2025-10-11 03:31:20 +01:00
60111f7e80 Synchronize SectorTagType with Aaru. 2025-10-04 05:20:26 +01:00
5a8a8c630f Add BLAKE3 cryptographic hash function integration 2025-10-03 03:46:55 +01:00
88816c37fd Add xxHash submodule and CMake integration for fast hashing 2025-09-30 20:04:45 +01:00
d62e3119c2 Add slog logging support and update error handling in various modules 2025-08-13 20:16:42 +01:00
72e44a74d4 [lib] Update uthash. 2025-08-01 02:50:46 +01:00
1f813feec9 General refactor and cleanup. 2024-04-30 15:51:32 +01:00
0e530dff85 Add uthash. 2022-10-02 03:12:33 +01:00
de4b7fe599 Add files that were wrongly ignored by .gitignore. 2022-10-01 17:29:59 +01:00
9abfa4f68d Add LZMA. 2022-05-28 13:45:15 +01:00
f5360fe146 Add FLAC. 2022-05-28 13:39:32 +01:00
db5b14a56c Add FLAC. 2022-05-28 13:38:09 +01:00