]> FriiDump Source - friidump.git/blob - docs/reports/FRIIDUMP_REDUMP_EVIDENCE_REPORTING_0.5.3.7.md
FriiDump 0.5.3.16: finalize release identity and documentation
[friidump.git] / docs / reports / FRIIDUMP_REDUMP_EVIDENCE_REPORTING_0.5.3.7.md
1 # FriiDump 0.5.3.7 — PFES-Aligned Redump Evidence Reporting
2
3 ## Scope
4
5 This update refines the automatic Redump verifier introduced in 0.5.3.6. It
6 changes evidence presentation and report durability only. It does not add or
7 modify any optical-drive write, firmware-update, flash, erase, `3B06`, `3B07`,
8 or `FLASHUP` path.
9
10 ## Live baseline confirmed before refinement
11
12 The 0.5.3.6 run on `HL-DT-ST/CDRW/DVD GCC4244/B101` completed Sonic Mega
13 Collection successfully:
14
15 - media preflight: OK
16 - seed retrieval: 3 seconds
17 - output sectors: 712,880
18 - dump status: OK
19 - STOP UNIT: OK
20 - duration: 2,324.52 seconds
21 - observed average: 2,156.33 MiB/h
22 - Redump entries scanned: 2,019
23 - exact matches: 1
24
25 Observed hashes:
26
27 ```text
28 CRC32    01b52739
29 MD5      85a525df1481d0ad67d8761f832dca12
30 SHA-1    06eb6d15b4d7f90ec0fed9ce9a77db41358d74ed
31 SHA-256  30098da93f5de9ece8da44f8afdfb85cf9bcdc24d77131221e64e3038a529010
32 ```
33
34 The B101 drive remains a live-validated legacy Type3 fallback while exact
35 parser metadata is pending analyzer results. This update does not promote B101
36 by analogy with B103.
37
38 ## Scope boundary for Xbox reference dumping
39
40 The bundled Xbox DAT remains mapped for Xbox ISO paths that return through
41 FriiDump's normal dumper/hash state. The copied GDR-8050L reference-dumper
42 bridge uses its own full-file hashing and sidecar writer and remains excluded
43 from this verifier call. No claim is made here that schema-2 DAT evidence is
44 produced for that separate bridge path.
45
46 ## Corrected log behavior
47
48 The schema-1 JSON report itself was valid on disk, but its structural writes
49 used FriiDump's logged `fprintf` wrapper. String values were emitted by a
50 different direct-file helper, so the human-readable run log received an
51 incomplete mirror such as:
52
53 ```text
54 "status": ,
55 "output": ,
56 ```
57
58 0.5.3.7 writes JSON exclusively through unlogged file-output functions. The
59 human log now contains only the report completion line, while the complete JSON
60 remains in its own evidence artifact.
61
62 ## Evidence-oriented console result
63
64 Exact match:
65
66 ```text
67 Redump verification
68 ------------------------------------------------------------
69 DAT                  redump_dat/Nintendo - GameCube.dat
70 Entries scanned      2019
71 Matched entry        Sonic Mega Collection (USA)
72 ROM                  Sonic Mega Collection (USA).iso
73 Image size           PASS
74 CRC32                PASS
75 MD5                  PASS
76 SHA-1                PASS
77 Overall              VERIFIED AGAINST REDUMP
78 Confidence           Exact archive match
79 ```
80
81 A non-exact result displays a closest candidate only when at least one hash
82 correlates. Otherwise, FriiDump reports aggregate size/hash match counts and
83 states that no archive identity was established.
84
85 ## JSON schema 2
86
87 Schema 2 preserves the original top-level fields and adds:
88
89 - `overall`
90 - `confidence`
91 - `sha256`
92 - `match_kind`
93 - `field_match_counts`
94 - `expected`
95 - `evidence`
96
97 The `evidence` object records `PASS`, `FAIL`, or `N/A` for size, CRC32, MD5, and
98 SHA-1.
99
100 ## Atomic report publication
101
102 The report lifecycle is:
103
104 1. Write a sibling `<report>.tmp` file.
105 2. Flush the C stream.
106 3. Synchronize the file descriptor.
107 4. Close the temporary file.
108 5. Atomically replace the final report path.
109
110 If writing or synchronization fails, the temporary file is removed and the
111 previous complete final report remains unchanged. If the final replacement
112 fails, the complete temporary report is retained and its path is printed.
113
114 ## Local validation
115
116 - Linux CMake build: PASS
117 - Help/version output: PASS (`FriiDump 0.5.3.7`)
118 - Exact Sonic DAT match: PASS
119 - Partial-correlation candidate test: PASS
120 - No-hash-correlation test: PASS
121 - Schema-2 JSON parse: PASS
122 - SHA-256 retention: PASS
123 - Atomic replacement of an existing report: PASS
124 - Temporary file absent after successful replacement: PASS
125 - Report contents absent from the run-log stream: PASS
126
127 The existing Reed-Solomon warning in `libfriidump/rs.c` remains unchanged and is
128 outside this update's scope.