Commit Graph

9328 Commits

Author SHA1 Message Date
daeb3e2836 Merge pull request #971 from dajiaohuang/fix/967-ubuntu-26.04-icu78
Support libicu78 in the Debian package
2026-10-21 16:20:29 +01:00
dajiaohuang
5d97054e3c Fix Debian dependency for Ubuntu 26.04 2026-10-21 23:11:14 +08:00
e53ec16324 [AaruFormat] Take PFI from sidecar for UMDs.
Currently we have not our own way of extracting them needing to be extracted using third party applications so we enable them to be set up as sidecars so on conversion can be integrated inside the image.
2026-10-21 15:47:49 +01:00
1eaee6f632 [Convert] Keep the creator and the rest of the metadata when setting the product code and disc number of Wii U images, as each was set alone, clearing everything else, so the creator given by --creator was lost. 2026-10-18 03:53:11 +01:00
2c8e5e940f [Convert] Keep the creator and the rest of the metadata when setting the title, game ID and disc number of GameCube and Wii images, as each was set alone, clearing everything else, so the creator given by --creator was lost. 2026-10-18 03:53:11 +01:00
4f67f5a9f6 [Dump] Do not store the sectors an OmniDrive read past the end of the disc unless dumping the Lead-Out, as reads are not clamped to the last sector and the overrun was written to the image and the resume as Lead-Out sectors without --leadout. 2026-10-18 03:07:41 +01:00
7a33f75806 [Convert] Convert the tags of the first overflow sector too, as the loop started at the second one while the sectors themselves were converted from the first one. 2026-10-18 03:05:17 +01:00
cca7f54bf6 [AaruFormat] Report a sector outside any track as not found instead of as no data, as the converter took it as not dumped and silently dropped it, keeping no data for track flags and ISRC of tracks that do not have them. 2026-10-18 03:03:22 +01:00
dc71546d1d [Convert] Write each Wii plaintext group with long sectors across the 16 sectors as is, hash block first, as the user data was written shifted by the hash block size and the hash block dropped, making every encrypted partition sector of WOD images converted from AaruFormat different from the source. 2026-10-18 01:06:15 +01:00
e7d547b6e0 Merge pull request #969 from FakeShemp/fakeshemp/ngcw-no-raw
Dump NGCW even without --raw
2026-10-18 00:45:01 +01:00
Rebecca Wallander
5aba4db724 Dump NGCW even without --raw 2026-10-17 12:15:49 +02:00
bafeec4c10 [Dump] Leave sectors that are not retried out of the retry and trim progress, as they counted in the maximum and in the sectors still bad but were skipped at once, making the progress jump by their share when a pass went over them, showing 99% with a tenth of the last pass left. 2026-10-15 23:12:27 +01:00
7bc8a4fdf8 [NTFS] Read clusters contiguous on disk of uncompressed files at once and look up data runs from the last one used, instead of one cluster at a time scanning all data runs from the start for each. 2026-10-14 23:28:59 +01:00
3259af4c9e [VDI] Cache whole blocks and read every sector requested from them at once, as each sector read the whole block from the image and threw the rest away, making reading files from filesystems inside VDI images take minutes for a few megabytes. 2026-10-14 23:28:49 +01:00
f4edbc0451 [DPM] Tell a calibration sweep's rotation period from a half or a third of it by the steps an odd number, or a number not a multiple of 3, of turns away instead of by how far apart its wraps are, as where the drive often answers a turn late its samples drift between turns, the wraps are uneven, and every sweep was rejected. 2026-10-14 13:18:04 +01:00
97723b6a02 [DPM] Try the rotation period of a calibration sweep from every step off the slope and keep the one that explains the most steps, as where the drive answered one or more turns late most falls were two turns or more and the fit took twice the period, rejecting every genuine wrap as noise. 2026-10-14 13:13:44 +01:00
aa100cd5bf [Dump] Add an option, also in the GUI, with a list of sectors or ranges of sectors that are not trimmed nor retried if they could not be read, in every dumper and also in CD subchannel retries and C2 audio convergence, with skipping SafeDisc retries now adding its range to that list. 2026-10-14 13:02:25 +01:00
e0f1ae96a8 [GUI] Pass the trim checkbox to the dumper as is, as it was inverted and trimming was disabled when checked, which is the default. 2026-10-14 12:57:47 +01:00
51bbbb80ae [CLI] Show single-sector extents of files affected in image analyze as one sector number instead of a range starting and ending on it. 2026-10-14 03:27:13 +01:00
b62af58044 [DPM] Before re-anchoring on an audio sector the drive still has from its last read, read one just before what it reads ahead instead of flushing the whole cache, as re-measuring audio bins re-anchored on such sectors and read tens of megabytes of audio for each, taking many minutes. 2026-10-13 20:51:39 +01:00
ec581b6297 [Dump] Skip retrying subchannels in the SafeDisc range when skipping SafeDisc retries, as only the sectors were skipped and the drive kept rereading the subchannels of the deliberately damaged sectors. 2026-10-13 20:00:25 +01:00
2e68e42608 [CLI] Format verbose, error and debug messages before logging them, as the console sink parses the text on each side of a template hole as markup on its own, so a tag spanning a hole, as in the verify timings, was malformed and the line was lost. 2026-10-13 19:02:49 +01:00
9de7826ca2 [DPM] Time audio sectors past what the drive reads ahead, measuring how far once, and stop re-reading them, as READ CD has no Force Unit Access and drives serve both from their cache, so every timed audio read was taken as a cache hit and the measurement stalled flushing the cache on every sample. 2026-10-13 18:11:43 +01:00
298b250059 [DPM] Keep the regions read to flush the drive cache on the medium, as on a medium shorter than their offset they started past its end, the reads failed at once and the cache was never flushed. 2026-10-13 17:59:25 +01:00
12cca96c47 [DPM] Take the audio sectors from the dumped tracks, which start at index 0, instead of the table of contents, which points to index 1, so an audio track's pregap was read as data and refused by the drive. 2026-10-13 17:57:33 +01:00
411aa793b6 [CLI] Show command line errors plainly.
A mistake in the command line printed a stack trace and was reported to
Sentry as a crash. Print Spectre.Console.Cli's own error instead and exit with
an invalid argument error.
2026-10-13 17:23:17 +01:00
5de5620eff [CLI] Accept the global options in any position.
Spectre.Console.Cli only accepts an option a command inherits from its branch
right after the branch name, and in relaxed parsing silently ignored it
anywhere else, so `aaru media dump ... --logfile dump.log` dumped without
writing any log, and an inherited flag before a positional argument took that
argument as its value.

Move --logfile, --debug, --verbose and --pause to just after the first
command before parsing, and parse strictly so an unknown or misplaced option
is an error instead of being ignored. --debug loses its -d short name, which
`image verify` already uses for --dimensions.
2026-10-13 17:23:17 +01:00
553f20d503 [CLI] Do not drop console lines from the log file.
Lines printed to the console were passed to Serilog as message templates,
so braces in paths or media data were parsed as properties, and their markup
was removed twice, once before logging and again by the file sink. The second
pass mangled escaped brackets or threw, and Serilog then silently dropped the
line from the log file while it was still shown on the console.

Pass the text as a property and remove the markup only in the file sink,
falling back to the text verbatim when it is not valid markup. Report
Serilog's own failures to the error output when logging to a file, and flush
the log on every exit path.
2026-10-13 17:23:07 +01:00
c0fa8643b4 [Dump] Do not consider media dumped correctly if the image lacks DPM and can store it. 2026-10-13 13:52:21 +01:00
18b3e96c62 Add optical image capability to store DPM. 2026-10-13 13:52:13 +01:00
0447c1b1c6 [Dump] Show determinate progress when trimming. 2026-10-13 11:45:12 +01:00
2608de74f2 [Dump] Show determinate progress when retrying errors.
The maximum is the worst case of every initially bad block being retried in
every pass. Every block still bad may be retried once in each remaining pass,
so recovering a block advances the progress by the passes it no longer needs.
2026-10-13 11:42:11 +01:00
616d5e0e0e Always use dark mode. 2026-10-13 01:22:10 +01:00
829d04d1e0 [CHD] Do not verify images whose header has no checksum. 2026-10-13 01:01:42 +01:00
0edd55618e [Tests] Fill MAME CHD expectations and move hard disk images to block media tests. 2026-10-13 00:50:36 +01:00
26250d063e [CHD] Verify images against the checksum in their header, only over their logical size. 2026-10-13 00:50:36 +01:00
5c99ab92ae [CHD] Report sessions. 2026-10-13 00:50:35 +01:00
cc8b2a0435 [CHD] Rebuild cooked mode 2 form 2 sectors as form 2 in long reads. 2026-10-13 00:50:35 +01:00
329c1fee62 [CHD] Fix sector tags: interleave cooked subchannel, return mode 2 tags from their right offsets, and report track flags. 2026-10-13 00:50:35 +01:00
94cc07a2bb [CHD] Read old CD metadata written in little-endian. 2026-10-13 00:50:35 +01:00
36e55e41fa [CHD] Swap CD audio, which is stored big-endian, except in legacy GD-ROM images. 2026-10-13 00:50:35 +01:00
49956a9fef [CHD] Lay out CD tracks as MAME does: frames always take 2448 bytes, tracks are padded to 4 frames, and pregaps not stored in the image still take sectors. 2026-10-13 00:50:25 +01:00
1a0b6ab5bf Bump Aaru.Compression.Native to 6.0.0-beta.2.2. 2026-10-12 22:32:02 +01:00
3aff21d6da [CHD] Import the Huffman codec tree as Huffman coded lengths, as MAME does. 2026-10-12 22:31:56 +01:00
d0c04b0ed0 [CHD] Regenerate only the P/Q ECC of CD codec sectors, honouring mode 2, instead of rebuilding them as mode 1 sectors. 2026-10-12 22:31:56 +01:00
9603696a02 [CHD] Decode FLAC and CD FLAC hunks as headerless FLAC frames, and take the CD subcode from where the FLAC frames end. 2026-10-12 22:31:56 +01:00
16ab2c1ac9 [OmniDrive] Report audio sectors recovered during retry passes. 2026-10-12 20:47:34 +01:00
8c198ec136 [DPM] Do not measure the DPM again when resuming a dump into an image that already has one. 2026-10-12 19:30:02 +01:00
1ccb52b647 [DPM] Draw the DPM graphs at 1920x1080 by default. 2026-10-12 01:50:06 +01:00
f730478753 [GUI] Ask the size of the PNGs saved from the DPM viewer, rendering the view at that size with the text and lines in proportion. 2026-10-12 01:47:09 +01:00