]> FriiDump Source - friidump.git/blobdiff - docs/ChangeLog
FriiDump 0.5.3.16 candidate: add native reports and Linux Xbox support
[friidump.git] / docs / ChangeLog
index 68c3906d303e67ef3d54bd0c2bd81849bf28b15a..71f91eb041a04e41e203333fb226b531529627e4 100644 (file)
@@ -1,3 +1,264 @@
+FriiDump 0.5.3.16-pf1-candidate21
+-----------------------------------
+- Correct standard READ DVD STRUCTURE Format placement from CDB byte 11
+  (Control) to byte 7, matching the copied Windows DMI request.
+- Add persistent Xbox PFI/DMI capture diagnostics.
+- Add an Xbox READ DVD STRUCTURE CDB source contract.
+- Preserve Candidate20 SG_IO handshake and Windows-sequence behavior unchanged.
+
+FriiDump 0.5.3.16-pf1-candidate20
+- Rejects Candidate17; do not test or promote it.
+- Removes generic RecoveryKick behavior and its repeated LBA-zero read cadence.
+- Removes automatic media-auth kicks from the generic copied Windows dump path.
+- Ports the proven Windows state-aware GDR-8050L preparation sequence into Linux style.
+- Uses direct handshake first, one tray-cycle retry only when needed, and capacity as authority.
+
+2026-07-24  Project Frankenstein Candidate16
+
+    * Release Linux optical-door locking before GDR-8050L media cycles.
+    * Restore the door lock after successful eject/load readiness.
+    * Leave the door unlocked on media-cycle failure for recoverable tray access.
+    * Add Linux Xbox tray-cycle source/documentation contract coverage.
+
+2026-07-24  Project Frankenstein Candidate15
+
+  * Document the two-part Linux access model: optical device-node access plus
+    CAP_SYS_RAWIO for vendor-specific SCSI commands.
+  * Add a release-build preflight that checks the effective capability mask
+    before GC/Wii memory-dump and Xbox vendor-unlock operations.
+  * Refuse whole-process root execution for Linux vendor-command paths and
+    direct users to a least-privilege file capability on the exact executable.
+  * Record missing raw-I/O authority in the native report and issue STOP UNIT
+    before returning.
+  * Add explicit CMake/build warnings that normal builds do not install or
+    preserve file capabilities.
+  * Add an install/status/remove helper for cap_sys_rawio=ep and a validator
+    capability phase.
+  * Document that rebuilding, replacing, copying, or re-extracting an executable
+    clears the capability.
+
+2026-07-24  Project Frankenstein Candidate12
+
+  * Copy bundled Redump DAT resources beside CMake-built executables.
+  * Install Redump DAT resources under the Unix share directory.
+  * Add FRIIDUMP_REDUMP_DAT_DIR and installed-share lookup.
+  * Preserve explicit --redump-dat-dir as an authoritative override.
+  * Report Linux exclusive optical-device locking as unavailable instead of OK.
+  * Correct the Linux validation wrapper's intentional --help exit handling.
+  * Include redump_dat in the MSVC build-results archive.
+
+2026-07-18 - FriiDump 0.5.3.15 XGD1 live closure and release cleanup
+
+  * Closed the 0.5.3.14 hardware validation on a modified GDR-8050L revision
+    0012. The 3,820,880-sector output completed successfully and the
+    drive-captured 32-sector game lead-in matched the independent 0.5.3.13
+    geometry evidence at both boundaries.
+  * Recorded final output hashes: CRC32 cc5f0e71, MD5
+    1207b2090701ba1f221d486c83c863e7, SHA-1
+    5ea9b2262ba951afd9a5d2d44cd2b62a4d9decc7, and SHA-256
+    5995f823c6d67b9e3e3b3e1c2b54e1e036793188bec6b5be4220f559305f53b9.
+  * Confirmed NO EXACT MATCH against 2,689 Microsoft Xbox DAT entries. This
+    does not invalidate acquisition: the inaccessible pregame and postgame
+    contents remain zero-filled unresolved placeholders.
+  * Made automatic DAT discovery executable-relative first, with the historical
+    current-working-directory lookup retained as a fallback. Explicit
+    --redump-dat-dir remains authoritative.
+  * Corrected sidecar wording: hardware geometry validation is complete, while
+    filler content remains unresolved.
+  * Replaced 71 local build/probe/debug artifacts with a compact evidence
+    directory containing the final geometry samples, machine-readable closure
+    record, media-layout evidence, and completed live summary.
+  * Added a C resolver test and expanded .gitignore coverage for build outputs,
+    runtime logs, and generated disc images.
+  * No XGD1 output-layout bytes changed after the accepted 0.5.3.14 live dump.
+
+2026-07-18 - FriiDump 0.5.3.14 drive-captured XGD1 game lead-in
+
+  * Promoted the successful 0.5.3.13 live geometry result: all 13 selected
+    locked/video and unlocked/game raw-sector IDs matched the expected
+    full-output mapping.
+  * Replaced the GDR-8050L full-output synthetic game lead-in with drive reads
+    from unlocked source LBA 0..31 at output LBA 198144..198175.
+  * Kept XDVDFS/game data at unlocked source LBA 32..3431263 and output LBA
+    198176..3629407.
+  * Updated .redump.json, .media.json, and .xdvd.json layout evidence to record
+    the drive-captured lead-in source and the 0.5.3.13 physical-geometry proof.
+  * Pregame and postgame physical locations are now documented as geometry
+    verified, while their inaccessible content remains zero-filled and
+    unresolved.
+  * No claim of Redump identity is made until a new 0.5.3.14 full-disc dump is
+    hashed and compared with the canonical DAT.
+
+2026-07-18 - FriiDump 0.5.3.13 XGD1 cache-aligned raw-ID geometry correction
+
+  * Corrected the v68 raw-ID probe to mirror the proven modified-GDR-8050L
+    Method 8 cache contract: zero-transfer READ(12) cache flush, 16-sector
+    block-aligned streaming fill, and 2064-byte slot indexing.
+  * Removed raw-cache user-data equality as a geometry criterion. Method 8
+    reconstructs sectors from cache header/EDC plus READ(12) data before
+    unscrambling, so equality is not expected.
+  * Added explicit full-output LBA mapping, layer-bit decoding, 24-bit layer-1
+    PSN normalization, expected raw/normalized PSNs, and per-sample geometry
+    verdicts.
+  * Schema 2 reports now set physical_geometry_resolved only when all 13
+    selected locked/video and unlocked/game samples match exactly.
+  * Retained the v68 live run as negative/diagnostic evidence; it is not a
+    geometry promotion. No reconstruction bytes or filler policy changed.
+
+2026-07-18 - FriiDump 0.5.3.12 XGD1 raw-sector ID geometry probe
+
+  * Live validation of 0.5.3.11 confirmed that sampled READ(10) and READ(12)
+    sectors are identical in both locked/video and unlocked/game states.
+  * The locked view ends at LBA 6991 and the unlocked view ends at LBA
+    3431263; ordinary logical reads expose no alternate source for the
+    documented synthetic pregame or postgame ranges.
+  * Added --xgd1-raw-id-probe for modified GDR-8050L firmware with HIT 0xE7
+    memdump support. It performs controlled READ(12) cache fills, captures the
+    corresponding 2064-byte raw cache sectors at 0x80000000, and records the
+    decoded DVD physical-sector number from each raw ID field.
+  * XGD1 probe modes now measure real elapsed time and suppress the unrelated
+    HLDS GC/Wii validation summary that previously reported misleading
+    seed/dump/STOP fields for a successful diagnostic run.
+  * No reconstruction mapping changed. Raw IDs are geometry evidence only;
+    inaccessible filler bytes remain unresolved.
+
+2026-07-18 - FriiDump 0.5.3.11 read-only XGD1 logical-boundary probe
+
+- Adds `--xgd1-layout-probe <file>` for the GDR-8050L challenge-handshake
+  profile on Windows.
+- Establishes and verifies the locked/video and unlocked/game views using
+  READ CAPACITY(10), then probes selected XGD1 boundary LBAs with one-sector
+  READ(10) and READ(12) commands.
+- Records per-command success, Win32 error, SCSI status, sense key/ASC/ASCQ,
+  nullable nonzero-byte/all-zero fields for failed reads, SHA-1, complete
+  2048-byte sector data for successful reads, and explicit READ(10)/READ(12)
+  comparability in an atomic JSON report.
+- Includes the current output-layout constants and probes the visible video
+  boundaries, synthetic pregame/postgame boundaries, game lead-in/XDVDFS
+  boundary, output layer break mapping, and each reported-capacity edge.
+- Restores the entry locked/video state when the probe began locked; an
+  already-unlocked entry remains in the game view.
+- Keeps the existing 0.5.3.10 ISO/XISO output unchanged. The probe explicitly
+  leaves the pregame padding, postgame padding, and game lead-in unresolved
+  until live evidence supports a source mapping.
+- Uses only logical read commands, the established authentication handshake,
+  tray transitions, volume guard, and STOP UNIT cleanup. No firmware write,
+  flash, erase, 3B06, 3B07, or FLASHUP path was added or changed.
+
+2026-07-18 - FriiDump 0.5.3.10 state-aware GDR-8050L handshake cleanup
+
+- Replaces the copied reference bridge's unconditional unlock -> tray cycle ->
+  unlock preamble with state-aware READ CAPACITY(10) classification.
+- When the bridge enters in the unlocked game view, it skips both the redundant
+  initial handshake and the redundant tray cycle before title/XDVDFS probing.
+- When the bridge enters in the locked/video view, it performs one direct full
+  handshake without a media transition and verifies the resulting visible
+  sector count before metadata probing.
+- Retains one explicitly logged tray-cycle recovery only when the direct
+  handshake fails to expose the game view, then retries the full handshake once.
+- Preserves the one required media transition used later to restore the
+  locked/video view before VIDEO-L0/VIDEO-L1 capture, followed by the final full
+  handshake for game/XDVDFS data.
+- Corrects XDVD authentication metadata: unlocking does not require a media
+  transition, while restoring the locked/video view does.
+- Live 0.5.3.9 evidence basis: Red Faction II completed 3,820,880 sectors,
+  produced finalized four-hash/sidecar evidence, wrote the atomic Redump report,
+  issued one final STOP UNIT, and exposed the prior three-handshake/two-tray
+  sequence targeted by this cleanup.
+- No firmware update, write, flash, erase, 3B06, 3B07, or FLASHUP path was added
+  or modified.
+
+2026-07-17 - FriiDump 0.5.3.9 Xbox live-summary and cleanup correction
+
+- Preserves the successful 0.5.3.8 Xbox finalized-hash handoff and shared
+  Redump verification path.
+- Carries the Xbox title, media ID, finalized output-sector count, and elapsed
+  time across the copied GDR-8050L bridge boundary.
+- Reports the real Xbox title/media ID and 3,820,880-sector reconstructed output
+  in the final HLDS validation summary instead of the generic pre-bridge values.
+- Marks the GC/Wii seed field not applicable for the Xbox reference-auth path.
+- Uses the copied reference dumper's elapsed-time handoff for Xbox runs, eliminating the
+  misleading 0.00-second duration and average-rate output.
+- Removes the inner DumpXboxGameDisc STOP UNIT call.  Embedded runs now issue
+  exactly one final STOP UNIT from FriiDump after Redump verification; standalone
+  bridge runs retain cleanup ownership before closing their handle.
+- Live evidence basis: Red Faction II[TQ00501A] completed as a 7,825,162,240-byte
+  reconstructed XGD1 image, produced finalized four-hash evidence, atomically
+  wrote schema-2 NO MATCH evidence against 2,689 Xbox DAT entries, and exposed
+  the summary/duplicate-cleanup defects corrected here.
+
+2026-07-17 - FriiDump 0.5.3.8 Xbox reference-path Redump evidence handoff
+
+  * Routed successful GDR-8050L/cross-flashed GDR-8163B full-disc ISO results
+    into the shared Redump DAT verifier and atomic schema-2 evidence report.
+  * Added an explicit result contract carrying the actual finalized output path,
+    byte count, output sectors, CRC32, MD5, SHA-1, and SHA-256 from the copied
+    Xbox reference dumper into FriiDump's front end.
+  * Reused the reference dumper's existing finalized full-file hash pass; the
+    7.29 GiB Xbox ISO is not reread solely for DAT verification.
+  * Corrected the copied DumpXboxGameDisc/bridge success handoff so FriiDump now
+    receives the real dump/write result rather than assuming success after the
+    call returns.
+  * Kept the active target log open across the bridge return so shared Redump
+    evidence and the final validation summary remain in the same Xbox run log.
+  * Added `hash_source` and `representation_note` to schema-2 reports. Xbox
+    reports state that successful acquisition and exact Redump hash identity are
+    separate claims because documented synthetic XGD1 ranges may prevent a match.
+  * Confirmed the prior live Red Faction II reconstructed hashes produce the
+    expected `NO EXACT MATCH` result against the current Xbox DAT: 2,626
+    same-size entries and zero CRC32/MD5/SHA-1 correlations.
+  * Kept Xbox `-X` excluded from DAT verification because XISO is not a full
+    Redump disc image.
+  * Recorded the independent Super Smash Bros. Melee (USA) (En,Ja) (Rev 2)
+    live validation: seed retrieval 3 seconds, full dump and STOP UNIT OK, and
+    exact Redump match across size, CRC32, MD5, and SHA-1.
+  * No firmware update, write, flash, erase, 3B06, 3B07, or FLASHUP path was
+    added or modified.
+
+2026-07-17 - FriiDump 0.5.3.7 PFES-aligned Redump evidence reporting
+
+  * Replaced the compact MATCH/NO MATCH block with a field-by-field evidence
+    presentation for image size, CRC32, MD5, and SHA-1.
+  * Added explicit overall conclusions and confidence statements, including
+    `VERIFIED AGAINST REDUMP` / `Exact archive match` for exact matches.
+  * Added a closest-candidate path only when at least one hash correlates; when
+    no hash correlates, FriiDump reports aggregate field-match counts instead
+    of presenting an arbitrary same-size disc.
+  * Advanced the Redump report to schema 2 while preserving the original
+    top-level status/output/hash fields for compatibility.
+  * Added SHA-256, expected DAT values, per-field PASS/FAIL evidence, match kind,
+    match counts, overall conclusion, and confidence to the JSON report.
+  * Corrected report/log separation: JSON structural writes no longer pass
+    through the logged `fprintf` wrapper, so the run log no longer contains an
+    incomplete mirror with omitted string values.
+  * Reports are now written to a sibling `.tmp` file, flushed/synchronized,
+    closed, and atomically moved over the final path. A failed write leaves the
+    previous complete report untouched.
+  * Documented the existing Xbox scope boundary accurately: the copied
+    GDR-8050L reference-dumper bridge keeps its own full-file hash/sidecar path
+    and is not yet routed through this DAT-verifier report.
+  * Recorded a live GCC4244/B101 Sonic Mega Collection dump: media preflight OK,
+    seed retrieval 3 seconds, full dump OK, STOP UNIT OK, 2324.52 seconds,
+    2156.33 MiB/h, and exact Redump verification. Exact B101 parser metadata
+    remains pending analyzer results; no parser profile was promoted here.
+  * No firmware update, write, flash, erase, 3B06, 3B07, or FLASHUP path was
+    added or modified.
+
+2026-07-17 - FriiDump 0.5.3.6 automatic Redump DAT verification
+
+  * Added automatic post-dump verification against Redump Logiqx XML DAT files.
+  * Bundled stable GameCube, Wii, and Xbox DAT paths under `redump_dat/`.
+  * A positive match requires output size, CRC32, MD5, and SHA-1 to agree;
+    SHA-256 remains printed as a local integrity hash.
+  * Added `--redump-dat-dir <dir>`, `--redump-report <file>`, and
+    `--no-redump-verify`.
+  * Added JSON reporting with DAT path, entries scanned, exact-match count,
+    Redump game/ROM names, output hashes, size, and status.
+  * DAT absence or a no-match result is reported clearly without deleting the
+    output or changing a completed read into a destructive/error path.
+  * No firmware update, write, flash, erase, 3B06, 3B07, or FLASHUP path was
+    added or modified.
+
 2026-07-10 - FriiDump 0.5.3.5
   * Promoted live INQUIRY `HL-DT-ST CDRW/DVD GCC4244/B103` to `known_supported_profile_hardening_live_validated`.
   * Recorded exact GCC-4244N B103 Stage5B profile evidence: JCS3 tokens, CDB base 0x894, gate 0x900386FB.
@@ -428,3 +689,10 @@ Build packaging note:
   * 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.
   * Fixed empty-tray false positive observed on HL-DT-ST CDRW/DVD GCC4244/B103 over USB.
   * Added completed GDR-8163B 0L23 Redump-matching validation result.
+
+Candidate15
+-----------
+* Preserve explicit CAP_SYS_RAWIO build/runtime documentation and preflight.
+* Normalize future source timestamps before Linux builds.
+* Remove production raw-I/O preflight path-truncation warning signatures.
+* Normalize source ZIP member timestamps.