Bug Fixes
- archive: find zip members stored with CP437 names (c775a82)
- archive: refuse drive-relative member names on Windows (53090fc)
- chd: compress every bin of a multi-file cue and store INDEX 00 pregaps like chdman (5fe7a1a)
- chd: store and regenerate cue POSTGAP like chdman (f466a4d)
- ctr: cap the ExeFS icon read at the SMDH size (fefa70b)
- ctr: stop corrupting CIA contents after the first on decrypt and encrypt (40f89a1)
- dat: count a cue track once when its path has redundant parts (393e083)
- dol,rvl: decode Japanese banner text, game names and file names (296c002)
- dol,rvl: fail verify on a broken RVZ container and show why (451a219)
- dol: label BNR2 banner slots English through Dutch (0b87ba5)
- fds: label the 16-byte header as FDS header instead of fwNES (2b7924a)
- gui: refuse updates while jobs run and clean up a failed portable swap (f31604e)
- hash: check cancellation before every read (abd1443)
- lib: use as_chunks for constant chunk sizes (c0d23b9)
- lib: write outputs with the default file mode (2ca4591)
- organize: delete sources only when the output exists and keep writing playlists after one fails (55e19d1)
- organize: keep files that are also outputs or inputs under another path spelling (fd544d4)
- runner: keep outputs that cannot be verified under overwrite-invalid (abd442b)
- rvz: reject truncated and malformed RVZ containers (a7f795c)
- wup: refuse title file names that would write outside the output folder (9d9d13c)
Features
- dat: parse regions, languages and release types from DAT names (3a86af5)
- gui: update installed and portable copies with the package they run on every platform (c7665a6)
- organize: add filters, best release per game, letter folders, patching and clean (d344c52)
- organize: sort a rom library into per-console folders and compress each file into its best format across lib, cli and gui (3329129)
- patch: apply IPS, UPS, BPS, APS, PPF, RUP and VCDIFF patches (fe5b955)
- template: add frontend folder, DAT and input folder tokens (d03f79e)
- wup: convert wud disc images to wux and back across lib, cli, gui and ffi (3eefd94)
- zip: write and validate TorrentZip and RVZSTD archives (0a01859)
Performance Improvements
- cartridges: header range reads and streamed checksums (c84c38a)
- chd,cso: map-only open, extent checks, streamed oversized blocks (d5fa8a4)
- ctr: inspect z3ds files through the seek table and read only the exefs icon instead of decompressing the whole rom (635ed59)
- ctr: stream cia decrypt and z3ds frames (813ebfb)
- dat: paged library scans (6efd41d)
- disc: stream rvz, wia, gcz and nkit within bounded buffers (8fe4bdb)
- hash: compute CRC32 with a slice-by-16 table (072ea97)
- microsoft: parse xbe, xex and xdbf by range (8187f57)
- nx: bound ncz decoding and validate tables before allocating (50d1a3c)
- sony: batched pkg item reads (4254135)
- util: budgeted worker admission and bounded group reader (f494dac)
- wup: decrypt by range and stream titles into wua (34d6133)
- zar: bound writer buffers and reorder queue (08b007b)