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