]> FriiDump Source - friidump.git/blob - docs/ChangeLog
d865b6b469ee4254bfedf07a6a493c318a9cc572
[friidump.git] / docs / ChangeLog
1 2026-07-18 - FriiDump 0.5.3.10 state-aware GDR-8050L handshake cleanup
2
3 - Replaces the copied reference bridge's unconditional unlock -> tray cycle ->
4   unlock preamble with state-aware READ CAPACITY(10) classification.
5 - When the bridge enters in the unlocked game view, it skips both the redundant
6   initial handshake and the redundant tray cycle before title/XDVDFS probing.
7 - When the bridge enters in the locked/video view, it performs one direct full
8   handshake without a media transition and verifies the resulting visible
9   sector count before metadata probing.
10 - Retains one explicitly logged tray-cycle recovery only when the direct
11   handshake fails to expose the game view, then retries the full handshake once.
12 - Preserves the one required media transition used later to restore the
13   locked/video view before VIDEO-L0/VIDEO-L1 capture, followed by the final full
14   handshake for game/XDVDFS data.
15 - Corrects XDVD authentication metadata: unlocking does not require a media
16   transition, while restoring the locked/video view does.
17 - Live 0.5.3.9 evidence basis: Red Faction II completed 3,820,880 sectors,
18   produced finalized four-hash/sidecar evidence, wrote the atomic Redump report,
19   issued one final STOP UNIT, and exposed the prior three-handshake/two-tray
20   sequence targeted by this cleanup.
21 - No firmware update, write, flash, erase, 3B06, 3B07, or FLASHUP path was added
22   or modified.
23
24 2026-07-17 - FriiDump 0.5.3.9 Xbox live-summary and cleanup correction
25
26 - Preserves the successful 0.5.3.8 Xbox finalized-hash handoff and shared
27   Redump verification path.
28 - Carries the Xbox title, media ID, finalized output-sector count, and elapsed
29   time across the copied GDR-8050L bridge boundary.
30 - Reports the real Xbox title/media ID and 3,820,880-sector reconstructed output
31   in the final HLDS validation summary instead of the generic pre-bridge values.
32 - Marks the GC/Wii seed field not applicable for the Xbox reference-auth path.
33 - Uses the copied reference dumper's elapsed-time handoff for Xbox runs, eliminating the
34   misleading 0.00-second duration and average-rate output.
35 - Removes the inner DumpXboxGameDisc STOP UNIT call.  Embedded runs now issue
36   exactly one final STOP UNIT from FriiDump after Redump verification; standalone
37   bridge runs retain cleanup ownership before closing their handle.
38 - Live evidence basis: Red Faction II[TQ00501A] completed as a 7,825,162,240-byte
39   reconstructed XGD1 image, produced finalized four-hash evidence, atomically
40   wrote schema-2 NO MATCH evidence against 2,689 Xbox DAT entries, and exposed
41   the summary/duplicate-cleanup defects corrected here.
42
43 2026-07-17 - FriiDump 0.5.3.8 Xbox reference-path Redump evidence handoff
44
45   * Routed successful GDR-8050L/cross-flashed GDR-8163B full-disc ISO results
46     into the shared Redump DAT verifier and atomic schema-2 evidence report.
47   * Added an explicit result contract carrying the actual finalized output path,
48     byte count, output sectors, CRC32, MD5, SHA-1, and SHA-256 from the copied
49     Xbox reference dumper into FriiDump's front end.
50   * Reused the reference dumper's existing finalized full-file hash pass; the
51     7.29 GiB Xbox ISO is not reread solely for DAT verification.
52   * Corrected the copied DumpXboxGameDisc/bridge success handoff so FriiDump now
53     receives the real dump/write result rather than assuming success after the
54     call returns.
55   * Kept the active target log open across the bridge return so shared Redump
56     evidence and the final validation summary remain in the same Xbox run log.
57   * Added `hash_source` and `representation_note` to schema-2 reports. Xbox
58     reports state that successful acquisition and exact Redump hash identity are
59     separate claims because documented synthetic XGD1 ranges may prevent a match.
60   * Confirmed the prior live Red Faction II reconstructed hashes produce the
61     expected `NO EXACT MATCH` result against the current Xbox DAT: 2,626
62     same-size entries and zero CRC32/MD5/SHA-1 correlations.
63   * Kept Xbox `-X` excluded from DAT verification because XISO is not a full
64     Redump disc image.
65   * Recorded the independent Super Smash Bros. Melee (USA) (En,Ja) (Rev 2)
66     live validation: seed retrieval 3 seconds, full dump and STOP UNIT OK, and
67     exact Redump match across size, CRC32, MD5, and SHA-1.
68   * No firmware update, write, flash, erase, 3B06, 3B07, or FLASHUP path was
69     added or modified.
70
71 2026-07-17 - FriiDump 0.5.3.7 PFES-aligned Redump evidence reporting
72
73   * Replaced the compact MATCH/NO MATCH block with a field-by-field evidence
74     presentation for image size, CRC32, MD5, and SHA-1.
75   * Added explicit overall conclusions and confidence statements, including
76     `VERIFIED AGAINST REDUMP` / `Exact archive match` for exact matches.
77   * Added a closest-candidate path only when at least one hash correlates; when
78     no hash correlates, FriiDump reports aggregate field-match counts instead
79     of presenting an arbitrary same-size disc.
80   * Advanced the Redump report to schema 2 while preserving the original
81     top-level status/output/hash fields for compatibility.
82   * Added SHA-256, expected DAT values, per-field PASS/FAIL evidence, match kind,
83     match counts, overall conclusion, and confidence to the JSON report.
84   * Corrected report/log separation: JSON structural writes no longer pass
85     through the logged `fprintf` wrapper, so the run log no longer contains an
86     incomplete mirror with omitted string values.
87   * Reports are now written to a sibling `.tmp` file, flushed/synchronized,
88     closed, and atomically moved over the final path. A failed write leaves the
89     previous complete report untouched.
90   * Documented the existing Xbox scope boundary accurately: the copied
91     GDR-8050L reference-dumper bridge keeps its own full-file hash/sidecar path
92     and is not yet routed through this DAT-verifier report.
93   * Recorded a live GCC4244/B101 Sonic Mega Collection dump: media preflight OK,
94     seed retrieval 3 seconds, full dump OK, STOP UNIT OK, 2324.52 seconds,
95     2156.33 MiB/h, and exact Redump verification. Exact B101 parser metadata
96     remains pending analyzer results; no parser profile was promoted here.
97   * No firmware update, write, flash, erase, 3B06, 3B07, or FLASHUP path was
98     added or modified.
99
100 2026-07-17 - FriiDump 0.5.3.6 automatic Redump DAT verification
101
102   * Added automatic post-dump verification against Redump Logiqx XML DAT files.
103   * Bundled stable GameCube, Wii, and Xbox DAT paths under `redump_dat/`.
104   * A positive match requires output size, CRC32, MD5, and SHA-1 to agree;
105     SHA-256 remains printed as a local integrity hash.
106   * Added `--redump-dat-dir <dir>`, `--redump-report <file>`, and
107     `--no-redump-verify`.
108   * Added JSON reporting with DAT path, entries scanned, exact-match count,
109     Redump game/ROM names, output hashes, size, and status.
110   * DAT absence or a no-match result is reported clearly without deleting the
111     output or changing a completed read into a destructive/error path.
112   * No firmware update, write, flash, erase, 3B06, 3B07, or FLASHUP path was
113     added or modified.
114
115 2026-07-10 - FriiDump 0.5.3.5
116   * Promoted live INQUIRY `HL-DT-ST CDRW/DVD GCC4244/B103` to `known_supported_profile_hardening_live_validated`.
117   * Recorded exact GCC-4244N B103 Stage5B profile evidence: JCS3 tokens, CDB base 0x894, gate 0x900386FB.
118   * Recorded successful media preflight, 4-second seed retrieval, full Sonic Mega Collection dump, STOP UNIT, and Redump-matching hashes.
119   * Recorded 2329.16-second runtime and 2152.04 MiB/h observed average.
120   * Added FriiDump 0.5.3.5 consolidated HLDS live-validation report and advanced the next test target to GCC-4243N.
121
122 2026-07-08 - HLDS profile documentation sync v58
123
124   * README now documents the Stage5B-promoted HLDS 0xE7 profile rows added in
125     v57: GCC-4244N B103 and GDR-8163B revisions 0B30, 0D20, 0E15, 0L20,
126     0L23, 0L30, and 0M26.
127   * README now documents --hlds-profile-report <file> and records the validated
128     GDR-8163B 0L30 Sonic Mega Collection dump in the observed fleet table.
129   * ChangeLog now records the v57 profile-table update so package docs match
130     the code.
131
132 2026-07-08 - HLDS promoted parser-signature profile update v57
133
134   * Added GCC-4244N B103 as a promoted Stage5B E7 parser-signature profile
135     using CDB base 0x894, gate 0x900386FB, and tokens
136     HL;IT;RPC;RPC_JCS3;RPC_SUFFIX.
137   * Promoted the observed GDR-8163B inventory variants from family fallback
138     rows to exact parser-signature profile rows: 0B30, 0D20, 0E15, 0L20,
139     0L23, 0L30, and 0M26.
140   * Recorded the exact GDR-8163B CDB/gate evidence: 0B30 0x5E0/0x90025030,
141     0D20 0x5E0/0x90024AE7, 0E15 0x5D8/0x900247D1, 0L20
142     0x5E0/0x90024C8F, 0L23 0x5E0/0x90024D5A, 0L30
143     0x5E0/0x90025021, and 0M26 0x5E0/0x90024FF7.
144   * Kept the static CDB/gate fields as report/evidence metadata only; FriiDump
145     does not use them as host-side commands or runtime addresses.
146   * No FLASHUP, 3B06, 3B07, updater, write, flash, erase, or commit paths were
147     added or touched.
148
149
150 2026-07-01 - HLDS 0xE7 log-noise cleanup
151
152   * GDR-8050L modified-0xE7 no-prefetch read-schedule logging is now emitted once per run/profile selection instead of once per read chunk.
153   * Accelerated-profile fallback resets the one-shot schedule log so the fallback profile is still visible exactly once.
154 2026-06-30 / GDR-8050L + GDR-8081N probe v2
155
156 * Fixed the modified GDR-8050L speed-probe-pending profile so it defaults to Method 8; the prior combined build could still present/run like the static single-window fallback.
157 * Made seed cracking fail the run when the experimental GDR-8081N cache-profile probe cannot validate any candidate, instead of continuing after a failed probe.
158 * Improved visible probe logging so the first probe line starts on a fresh line after the seed-retrieval prompt.
159
160 2026-06-30 / GDR-8050L speed-probe visibility fix
161
162 * Corrected the GDR-8050L modified-0xE7 speed-probe build so the initial
163   drive info reports an explicit speed-probe-pending profile instead of
164   looking like the old static single-window fallback.
165 * Probe status is now printed with direct visible output even in non-VERBOSE
166   builds, so runs show each GDR-8050L/GDR-8081N candidate and the selected
167   profile during the seed-retrieval phase.
168
169 2026-06-30 / seed-retrieval elapsed timer
170
171 * Added elapsed timing to the GC/Wii seed retrieval line.  The console/log now reports
172   `Retrieving disc seeds, this might take a while... [Elapsed:HH:MM:SS] OK`
173   or the same elapsed marker before `Failed`.
174 * Added `Seed elapsed` to the HLDS 0xE7 validation summary.
175 * Documented seed-retrieval expectations and kept timeout behavior manual/operational
176   rather than adding a hard timeout that could interrupt a blocked optical-drive I/O
177   command unsafely.
178
179 2026-06-30 / combined GDR-8081N probe + GDR-8050L speed-probe update
180
181 * Combined the GDR-8081N experimental 0xE7 cache-profile probe layer with a
182   GDR-8050L modified-firmware speed probe so two fleet tests can be run from the
183   same source package.
184 * GDR-8050L modified 0xE7 now keeps the proven 0x80000000 one-window/no-prefetch
185   profile as fallback, but probes guarded no-prefetch 3-window, 2-window, and
186   5-window candidates before seed cracking.
187 * If an accelerated GDR-8050L profile later fails during dumping, FriiDump logs
188   the failure and falls back to the proven single-window profile for the rest of
189   the run.
190 * GDR-8081N remains experimental: it is recognized as a candidate, enters the
191   seed path, and probes multiple cache profiles rather than being advertised as
192   confirmed GC/Wii support.
193 * README wording now clarifies that GDR-3120L support means the Xbox ripping path
194   is preserved; it is not claimed as a GC/Wii-tested drive.
195
196 2026-06-30 / GDR-8081N experimental 0xE7 probe layer
197
198 * Added GDR8081N/GDR-8081N as an experimental HLDS 0xE7 GC/Wii candidate.
199 * Added a small runtime cache-profile probe before seed cracking: Type4-derived
200   0x80000000/5-window, single-window 0x80000000, Type1-base 0x00a13000,
201   and a moving-cache candidate 0x7fff7f00.
202 * Fixed unsupported-drive HLDS profile display by zero-initializing dvd_drive
203   state and returning zero cache/window fields when no 0xE7 profile is active.
204
205 2026-06-30 / GDR-8050L modified 0xE7 GC/Wii test profile
206
207 * Added a special HLDS profile for GDR8050L/GDR-8050L drives running cross-flashed
208   or modified firmware with 0xE7 memdump support added.
209 * The special profile keeps the Type4 cache geometry, base 0x80000000 and five
210   16-sector memory windows, but defaults GC/Wii tests to Method 8.
211 * Stock GDR-8050L firmware is still documented as Xbox-path only; this GC/Wii
212   path is explicitly a modified-firmware experiment and does not replace the
213   existing GDR-8050L challenge-table Xbox dumper or GDR-3120L vendor-unlock path.
214
215 FriiDump 0.5.3.2 HLDS 0xE7 validation summary and speed-log update
216
217 - Added an end-of-run HLDS 0xE7 validation summary for GC/Wii dumping.
218 - The summary records model, DIC-style profile, cache base, memory-window count, seed-read status, dump status, STOP UNIT status, duration, and observed average ISO-payload speed.
219 - Documented observed Sonic Mega Collection validation speeds for GCC-4244N/B103 and GCC-4243N/A102, with GCC-4160N/0010 left as in-progress pending hash verification.
220
221 2026-06-29 / HLDS 0xE7 AutoPlay warning
222
223 * Added explicit Windows AutoPlay warning before non-Xbox HLDS 0xE7 GC/Wii
224   volume-lock and seed reads.
225 * GCC-4160N Type1 testing confirmed users may need to disable AutoPlay and
226   close File Explorer/"insert a disc" dialogs even when FriiDump applies
227   the shared volume guard.
228
229 FriiDump 0.5.3.2 HLDS 0xE7 DIC profile-layer update
230
231 - Added a DIC-style HLDS 0xE7 profile layer for GC/Wii cache dumping.
232 - Type1 GCC-4160N/GCC-4240N now use cache base 0x00a13000 with one
233   16-sector memory window.
234 - Type3/Type4 retain cache base 0x80000000 with five 16-sector memory windows.
235 - GCC-4241N/GCC-4242N are identified as Type2 experimental profiles but are
236   not yet promoted to DIC-equivalent support.
237 - Command/method logging now prints the selected HLDS 0xE7 profile, cache base,
238   and memory-window count.
239 - GDR-3120L Xbox ripping support remains on the explicit vendor lock/unlock
240   path; unsupported Xbox-forced drives still fail fast rather than falling back
241   to GC/Wii methods.
242
243 0.5.3.2-gcc4243n-method8-split-recovery (29/06/2026)
244 - Added Method 8 split recovery for GCC-4243N/GCC-4244N GC/Wii dumping.
245   After normal Method 8 and dump-level retries fail for a 16-sector block,
246   FriiDump now tries to reconstruct that block using 8-, 4-, 2-, then
247   1-sector streaming chunks, validates the rebuilt block with the existing
248   unscrambler/EDC path, and logs every attempted subrange.
249 - Preserved the shared FriiDump/Xbox log path and the GDR-3120L FF 08 01
250   Xbox vendor lock/unlock path.
251 - Confirmed the DIC source lists TSSTcorp/Samsung Kreon-firmware candidates
252   and GSA-4163B as an Xbox swap candidate; TSST/Kreon candidates remain
253   recognized as vendor-unlock experiment profiles, while GSA-4163B remains
254   documented as a separate swap-workflow target rather than being misrouted
255   into the vendor-unlock path.
256 > jtryba / ChatGPT
257
258 FriiDump 0.5.3.2 GCC-4243/4244 default path and shared logging update
259
260 - Promoted HLDS GCC-4243N/GCC4243* and GCC-4244N/GCC4244* drives to
261   Hitachi command 2 / Method 8 by default for GC/Wii dumping.  GCC-4244N was
262   validated with Sonic Mega Collection; GCC-4243N is routed to the same path
263   for the next fleet test.
264 - Extended the existing Xbox reference logger into a shared FriiDump run logger.
265   Every invocation now creates a log: `<output>.log` when an output file is
266   known, `friidump_<drive>.log` when only a drive is known, otherwise
267   `friidump.log`.
268 - Kept GDR-3120L Xbox ripping support on the FF 08 01 vendor lock/unlock path.
269 - Forced Xbox/XGD mode now refuses non-supported Xbox unlock profiles instead
270   of falling back to GC/Wii dumping methods.
271
272
273 2026-06-29  jtryba
274
275         * libfriidump/xbox_ref/utils.c: Add SHA-256 to the copied GDR-8050L
276           reference full-file hash calculation, console/log summary, and XDVD/media
277           sidecar hash metadata.
278         * src/friidump.c: Suppress the legacy FriiDump hash footer for the GDR-8050L
279           copied-reference path so empty CRC32/MD5/SHA-1/SHA-256 lines are not
280           printed after the authoritative Xbox reference summary.
281
282
283 2026-06-28  jtryba / ChatGPT
284
285         * libfriidump/xbox_ref/xbox_ref_log.[ch], libfriidump/xbox_ref/utils.c:
286           Keep carriage-return progress updates on the console only. The GDR-8050L
287           log now remains a line-oriented diagnostic record with SCSI dumps,
288           phase markers, hash summaries, metadata writes, and final elapsed time,
289           instead of recording every transient progress repaint as a separate line.
290           Full READ DVD STRUCTURE 0xAD payloads remain untruncated in the log.
291
292
293 2026-06-29  jtryba
294
295         * GDR-8050L reference hook: preserve the original dumper timing sleeps
296           exactly (tray-cycle 3000 ms, readiness settle 1500 ms or 10000 ms
297           fallback, RefreshVolume's 1000 ms plus the explicit post-refresh
298           2000 ms settle).
299         * Xbox/GDR-8050L filename behavior now matches the reference dumper: the
300           first unlock/metadata pass derives Title[MediaID].iso/.xiso from the XBE
301           title and DMI media ID by default. Supplying -i <file> or -X <file> is an
302           explicit filename override; bare -i or bare -X uses the derived name.
303         * If FSCTL_LOCK_VOLUME fails, report that the copied reference dumper treats
304           it as fatal before XBE/title probing, instead of collapsing the error into
305           a generic sector 0..15 dump failure.
306
307
308 2026-06-28  jtryba
309
310         * GDR-8050L Xbox redump/XISO path: dispatch native Windows runs directly
311           into a copied-in reference implementation from the original Xbox dumper
312           (main.c/utils.c/unlock.c helpers) instead of approximating the state
313           machine inside FriiDump's generic read loop.
314         * Preserve GDR-3120L on the separate FF 08 01 vendor command path and leave
315           non-native drives on FriiDump's existing command/method fallback behavior.
316         * Keep STOP UNIT/spin-down cleanup after the reference dump attempt.
317
318
319 2026-06-29  jtryba
320
321         * libfriidump/dumper.c, libfriidump/dvd_drive.c, libfriidump/disc.c:
322           Align the GDR-8050L Xbox redump state machine more literally with the
323           reference dumper. UnlockDrive() calls are treated as required state actions
324           rather than fatal capacity gates; RefreshVolume/settle/ready/speed/volume-lock
325           behavior is mirrored for the post-media-change metadata phase; STOP UNIT is
326           reserved for final cleanup.
327         * src/friidump.c:
328           Initialize Xbox dump failure-sector reporting before setup begins.
329 FriiDump 0.5.3.2 GDR-8050L main.c alignment follow-up
330
331 - Relaxed the GDR-8050L UnlockDrive() port to match the original dumper: the
332   final READ CAPACITY observation is diagnostic, not a fatal condition.  This
333   allows the first handshake to prime the drive before the required media-change
334   event instead of failing early while the visible DVD-video view still reports
335   6,992 sectors.
336 - Added visible stage messages for the GDR-8050L redump path: primary handshake,
337   media-cycle, re-handshake, metadata/auth kick, video-view restore, and final
338   game-view handshake.
339 - Changed the GDR-8050L redump 32-sector game lead-in to the original dumper's
340   zero-fill behavior.  The lead-in read/fallback experiment remains for non-8050L
341   Xbox strategies.
342 - Preserved GDR-3120L on the separate FF 08 01 vendor lock-state path and kept
343   non-native drives on FriiDump's original behavior unless Xbox mode is forced.
344 > jtryba
345
346 FriiDump 0.5.3.2 Xbox flow/build follow-up
347
348 - Corrected the GDR-8050L redump-style state machine to follow the original
349   dumper order: unlock/read game metadata, media-cycle back to the visible
350   DVD-video view, capture video L0/L1, unlock again, read game lead-in/game
351   data, then write PFI/DMI/redump JSON.
352 - Added START STOP UNIT LoEj tray-cycle support for the GDR-8050L redump path.
353 - Added unconditional STOP UNIT / spin-down cleanup after dump attempts, on
354   success or failure.
355 - Clarified docs to avoid describing the DVD-video section itself as locked;
356   the video section is the normal visible DVD-video view.
357
358 0.5.3.2 (28/06/2026)
359 - Added Xbox redump retry/recovery kicks around GDR-8050L view-switch reads,
360   mirroring the original dumper cadence: re-trigger auth, set maximum speed,
361   and issue harmless READ(10) probes before retrying game-view reads.
362 - Added visible Xbox failure diagnostics that report the failing phase, source
363   LBA, and reconstructed output LBA even in non-VERBOSE builds.
364 - Improved Xbox redump failure reporting so the generic final sector range no
365   longer always falls back to 0..15 after a later layout phase fails.
366 > jtryba
367
368 0.5.3.2 (28/06/2026)
369 - Fixed forced Xbox/XGD (`-T 4`) routing so GDR-8050L/GDR-3120L dumps use
370   the native Xbox direct MMC/SCSI path instead of displaying or selecting the
371   original GC/Wii Hitachi command 2 / method 9 memdump path.
372 - Reworded the runtime status text: Xbox initialization no longer says
373   "Retrieving disc seeds", because seed cracking is only for GC/Wii paths.
374 - Xbox `-i` now prints that it is writing an Xbox/XGD redump-style ISO.
375 - Added single-sector READ(10) fallback inside Xbox redump range reads so
376   visible DVD-video boundaries and other edge ranges are retried like the original
377   dumper before the dump is declared failed.
378 - Preserved the program version at 0.5.3.2; the preceding MSVC-only build-task
379   refresh did not receive a program version bump.
380 > jtryba
381
382 0.5.3.2 (28/06/2026)
383 - Added `-D` / `--dvd` as a clear standard DVD-ROM mode available to all
384   drives. It is equivalent to forcing disc type `-T 3` and uses FriiDump's
385   original DVD/raw/ISO path rather than Xbox unlock or metadata paths.
386 - Added DiscImageCreator-compatible Original Xbox/XGD1 redump layout constants
387   to the redump JSON: XBOX_SIZE 3,820,880 sectors, layer break LBA 1,913,776,
388   DVD start PSN 0x30000, Xbox/game start PSN 0x60600, and output game start
389   LBA 0x30600 / 198144.
390 - Added a runtime sanity check that the hardcoded Xbox redump layout still
391   matches the DiscImageCreator-compatible XGD1 constants before writing an
392   Xbox redump-style ISO.
393 - Updated README, README.technical, XBOX.md, options, and CLI help to make
394   standard DVD dumping and Xbox redump/XISO dumping commands clearer.
395 > jtryba
396 0.5.3.1 (28/06/2026)
397 - Added GDR-3120L/Kreon-style vendor helpers: get feature list (`FF 08 01 10`),
398   set lock state 0/2 (`FF 08 01 11 xx`), and disable error-skip
399   (`FF 08 01 15 00`) before dumping.
400 - Added Samsung/Kreon-style Xbox-capable candidates TS-H352C, TS-H353A,
401   SH-D162C, SH-D162D, SH-D163A, and SH-D163B for forced Xbox experiments
402   when the drive firmware supports the FF 08 01 command family.
403 - Expanded the Hitachi-LG supported-drive list for GC/Wii profiles to include
404   GDR-8082N/8083N/8084N, GDR-8161B/8162B/8163B/8164B,
405   GCC-4160N/4240N/4243N/4244N/4247N, with notes for probable/error-prone
406   related models; added GSA-4163B as an experimental Hitachi-LG profile.
407 - Added AUTHORS credit for scsi1.pas / The Specialist and the xboxhacker.net
408   contributors for the GDR-8050L challenge-table handshake, and DiscImageCreator
409   reference credit for the FF 08 01 vendor lock-state path.
410 - Added native Xbox/XGD disc support.
411 - Added Xbox disc type selector: `-T 4`.
412 - Added GDR-8050L profile with challenge-table handshake, partition unlock,
413   sticky descramble enablement, and direct 2048-byte READ(10) dumping.
414 - Corrected the GDR-3120L profile to use the DiscImageCreator-style FF 08 01 vendor feature-list and lock-state command family instead of treating it as a plain direct READ(10) drive.
415 - Changed Xbox `-i` output from a simple unlocked host-view copy to a
416   redump-style Original Xbox/XGD1 2048-byte-sector reconstruction with locked
417   video L0/L1, padding, 32-sector game lead-in, and unlocked game/XDVDFS data.
418 - Deferred the GDR-8050L unlock until dump time so redump-style ISO output can
419   capture the visible DVD-video view before switching to the unlocked game view.
420 - Added optional Xbox redump metadata output: `.pfi.bin`, `.dmi.bin`, and
421   `.redump.json` next to Xbox `-i` ISO dumps when the drive exposes PFI/DMI.
422 - Xbox `-i` and `-X` both attempt to read the 32-sector game lead-in and
423   zero-fill only unreadable lead-in sectors.
424 - Confirmed non-Xbox drives remain on FriiDump's original autodetection and
425   command/method paths unless Xbox mode is explicitly forced with `-T 4`.
426 - Added Xbox XISO output mode: `-X <file>` / `--xiso <file>`.
427 - XISO output probes XDVDFS at LBA 306112, falls back to LBA 32, copies
428   dual-layer retail-style images through LBA 1913920, and uses the XDVDFS
429   VolumeSize byte field for single-layer/homebrew-style images.
430 - XISO output attempts to read the 32-sector lead-in from the active drive view
431   and zero-fills only unreadable lead-in sectors.
432 - Added MMC/SCSI helpers for READ CAPACITY(10), READ(10), MODE SENSE(10),
433   MODE SELECT(10), MODE SELECT(6), READ DVD STRUCTURE, and TEST UNIT READY.
434 - Updated documentation for Xbox usage, options, output modes, and the
435   GDR-8050L handshake.
436 - Fixed `-A` / `--allmethods` so each command/method attempt opens a
437   fresh drive/disc object and binds the command-specific memory-dump function
438   before testing the method. The sweep now includes Xbox direct READ(10)
439   method 10.
440 - Fixed progress timing/statistics propagation from the dump routine to the
441   command-line front-end.
442 - Fixed the command-line process return code so successful operations return
443   `EXIT_SUCCESS` and failures return `EXIT_FAILURE`.
444 - Replaced the legacy MD5 and SHA-1 hash implementations with the fixed
445   implementations from the merged hash-upgrade branch.
446 - Added SHA-256 hashing/reporting for raw ISO, unscrambled ISO, and Xbox XISO
447   outputs while preserving existing CRC32/MD5/SHA-1 reporting.
448 - Updated the GDR-8050L challenge-table path to use the fixed SHA-1
449   implementation for its RC4 key derivation.
450 > jtryba
451 0.5.3 (15/03/2010)
452 - Fixed failing after 1st DL media layer with non-Hitachi methods.
453 - Fixed still hashing with 'nohash' parameter when resuming.
454 - Fixed resuming larger files (~4 GB).
455 - Fixed unscrambling larger files.
456 - Faster file unscrambling.
457 - Slight modifications to methods;
458   possible performance increase with Hitachi based devices.
459 - Restructured methods and added some new ones.
460 - Added layer break information.
461 - Added current position output when error occurs.
462 - Added SH-D162A, SH-D162B, SH-D162C & SH-D162D as supported.
463 > Jackal, gorelord4e, themabus
464 0.5.2 (10/01/2010)
465 - Corrected handling of standard DVDs
466   (type should be forced to 3, when dumping or unscrambling).
467 - Better response to 'speed' parameter.
468 - Uniform raw output for all devices: unscrambled data + headers.
469 - Slight performance increase (~1650 MB/h on LH-18A1H).
470 - Added LH-18A1P, LH-20A1H, LH-20A1P to list of supported devices.
471 > Jackal, themabus
472 0.5.1 (01/12/2009)
473 - New command 'vanilla 2384'.
474 - Restructured methods, some now support optional parameters.
475 - Ability to select standard DVDs as source.
476 - Limited recognized Lite-On drives to LH-18A1H.
477 > Jackal, themabus
478 0.5.0 (27/11/2009)
479 - Regions: Italy, France, Germany, Spain, Australia, PAL-X, PAL-Y.
480 - Updated publisher list from http://wiitdb.com/Company/HomePage
481 - Included GDR8082N & GDR8161B as supported Hitachi drives.
482 - Lite-On, Renesas & vanilla memory buffer access commands.
483   Lite-On tested on LH-18A1H, should work on many more
484   (LH*, SH, DH*, DW* & possibly other MediaTek drives)
485 - Shifted methods 1..4 to 0..3 and added new ones 4..6
486   Associated known drives with default methods.
487 - Additional commandline parameters:
488   stop, speed, command, type, size
489 - Some minor changes and fixes.
490 > Jackal, Truman, themabus
491 0.4 (08/03/2008)
492 - Support for DL Wii DVDs.
493 > mado3689
494 0.3 (06/10/2007)
495 - First public release.
496
497 Build packaging note:
498   - Fixed direct MSVC response-file build for copied GDR-8050L reference hook by avoiding duplicate sha1.obj output names and by exporting disc_get_device()/dvd_get_device().
499
500
501 2026-06-29 / HLDS 0xE7 Windows volume guard
502 ---------------------------------------------
503
504 * The existing Xbox FSCTL_LOCK_VOLUME-style guard is now exposed as a shared
505   FriiDump volume lock helper.
506 * HLDS 0xE7 GC/Wii paths apply the guard before disc seed retrieval, so Windows
507   Explorer/AutoPlay is less likely to interrupt GCC-4160N/GCC-4240N Type1 seed
508   reads with an "insert a disc" prompt.
509 * The guard is warning-only: if Windows already owns a transient handle, FriiDump
510   logs the failure and continues so the hardware read result remains authoritative.
511
512
513 2026-06-30 / GCC-4160N Type1 confirmed
514 ---------------------------------------
515
516 * Updated observed Sonic Mega Collection (US) fleet results: GCC-4160N/0010
517   Type1 (0x00a13000, one memory window) completed a verified matching dump.
518 * Recorded observed rate 1613.08 MB/h and total runtime 3127.98 seconds.
519 * Documented that AutoPlay had to be disabled for reliable GCC-4160N seed
520   retrieval even though the shared volume guard succeeded.
521
522 2026-07-01  HLDS 0xE7 GDR-8081N scan mode
523
524         * Added --hlds-e7-scan / --scan-log for fast HIT 0xE7 cache-base discovery without seed cracking or full dumping.
525         * The scan fills the drive cache with tiny reads, tries candidate cache/memdump bases, scores raw-sector ID headers, and writes a JSON report.
526         * Seeded GDR-8081N scan candidates from known HLDS families plus first-pass GDR-8081N firmware/binary constants and aliases.
527         * Preserved GDR-8050L modified-firmware read-quiet behavior and GDR-3120L Xbox-only support wording.
528
529 2026-07-10 - FriiDump 0.5.3.3
530   * Added media-ready preflight before disc detection and GC/Wii seed retrieval.
531   * TEST UNIT READY now blocks vendor seed/cache commands when no disc is present.
532   * Added bounded retry for transient becoming-ready / unit-attention states.
533   * Added clear no-disc and not-ready sense reporting.
534   * Added live INQUIRY alias `GCC4244/B103` for the promoted GCC-4244N B103 profile.
535   * Promoted the successfully validated GDR-8163B 0L20, 0D20, 0B30, 0E15, and 0M26 rows to live-validated status; retained 0L30 live validation.
536   * Added a consolidated real-hardware validation report with Redump comparisons.
537
538
539 2026-07-10 - FriiDump 0.5.3.4
540   * Corrected Windows/Linux MMC error semantics: ignore_errors now suppresses diagnostics only and no longer converts failed commands into success.
541   * Windows SCSI pass-through now treats non-GOOD SCSI status as command failure even when DeviceIoControl succeeds.
542   * Strengthened media preflight: TEST UNIT READY is followed by READ CAPACITY(10), requiring a nonzero 2048-byte logical-block medium before vendor seed/cache commands.
543   * Fixed empty-tray false positive observed on HL-DT-ST CDRW/DVD GCC4244/B103 over USB.
544   * Added completed GDR-8163B 0L23 Redump-matching validation result.