]> FriiDump Source - friidump.git/commitdiff
FriiDump 0.5.3.16: finalize release identity and documentation v0.5.3.16-pf1
authorjtryba <jtryba2010@gmail.com>
Sat, 25 Jul 2026 01:07:55 +0000 (20:07 -0500)
committerjtryba <jtryba2010@gmail.com>
Sat, 25 Jul 2026 01:07:55 +0000 (20:07 -0500)
13 files changed:
CMakeLists.txt
README.md
build_msvc32.cmd
docs/CURRENT_STATUS.md
docs/ChangeLog
docs/LINUX.md
docs/options
docs/reports/FRIIDUMP_NATIVE_COMPATIBILITY_REPORTING_0.5.3.16.md
docs/reports/FRIIDUMP_RELEASE_FINALIZATION_0.5.3.16.md [new file with mode: 0644]
friidump-handoff.md
src/friidump.c
validation/README.md
validation/friidump-linux-rawio-capability.sh

index 635300d426df2f5273a161cac6d41f0c6ebc1a54..d4b21bf4a1fbd220ce7ea1361902964d88026a36 100644 (file)
@@ -9,8 +9,8 @@ if (UNIX AND NOT WIN32)
     message (WARNING
         "Linux vendor-command paths require CAP_SYS_RAWIO. "
         "A normal build does not install this capability. "
-        "After validating the exact executable, run the candidate validation "
-        "script's capability phase or validation/friidump-linux-rawio-capability.sh install. "
+        "After validating the exact executable, run "
+        "validation/friidump-linux-rawio-capability.sh install. "
         "Do not run the entire FriiDump process as root; rebuilding or replacing "
         "the executable clears file capabilities."
     )
index 27c81d7e7d917182aac996ebbad43778f06f3ec2..0318a060334bc9be12cb92121bdb9cefa3d7c8aa 100644 (file)
--- a/README.md
+++ b/README.md
@@ -1,19 +1,19 @@
 # FriiDump — Project Frankenstein Branch
 
-## Candidate21 Linux Xbox DMI boundary correction
+## FriiDump 0.5.3.16-pf1 Linux Xbox DMI boundary correction
 
 Candidate20 proved the complete Linux GDR-8050L Xbox command and data path:
 direct SG_IO challenge delivery, both game-view transitions, XDVDFS metadata,
 drive-captured game lead-in, partial GAME-XDVDFS output, controlled
 cancellation, hashes, native reporting, and STOP UNIT.
 
-Candidate21 preserves that exact Windows-sequence control flow and SG_IO
-handshake. It corrects one remaining MMC boundary: standard READ DVD STRUCTURE
-uses CDB byte 7 for the Format field. Candidate20 incorrectly wrote the format
-to byte 11 (Control), so DMI format `0x04` was not captured and the media ID
-remained empty.
+FriiDump 0.5.3.16-pf1 preserves that exact Windows-sequence control flow and
+SG_IO handshake. It corrects one remaining MMC boundary: standard READ DVD
+STRUCTURE uses CDB byte 7 for the Format field. Candidate20 incorrectly wrote
+the format to byte 11 (Control), so DMI format `0x04` was not captured and the
+media ID remained empty.
 
-Candidate21 also adds persistent PFI/DMI capture diagnostics and a source
+The release also adds persistent PFI/DMI capture diagnostics and a source
 contract that compares the portable request against the proven copied Windows
 `GetMediaID()` request.
 
@@ -27,7 +27,6 @@ the executable clears that capability.
 See [`docs/LINUX.md`](docs/LINUX.md) before Linux hardware use.
 
 ## Candidate11 Linux Xbox parity baseline
-
 Candidate11 begins the Linux parity campaign without replacing the validated
 Windows/MSVC GDR-8050L path. The Windows copied-reference implementation remains
 unchanged for challenge drives. Linux now uses the existing portable MMC/Xbox
@@ -43,8 +42,8 @@ ordinary Linux ISO/XISO user paths.
 
 FriiDump is a command-line optical-disc dumping tool for Nintendo GameCube,
 Nintendo Wii, standard DVD-ROM, and selected Original Xbox/XGD workflows. This
-repository preserves the Project Frankenstein development branch based on
-FriiDump **0.5.3.5**.
+repository preserves the Project Frankenstein release line through
+FriiDump **0.5.3.16-pf1**.
 
 The branch extends the original FriiDump code with:
 
@@ -61,31 +60,27 @@ Xbox-specific behavior is documented in [`docs/XBOX.md`](docs/XBOX.md).
 
 ## Repository status
 
-This is the active canonical Project Frankenstein FriiDump repository. Authority
-was accepted at annotated tag `v0.5.3.5-pf1`. The imported baseline is
-intentionally conservative: source and
-maintained documentation were preserved, while disc images, live logs, compiled
-binaries, build directories, result archives, and unrelated reverse-engineering
-work were excluded.
+This is the active canonical Project Frankenstein FriiDump repository.
+FriiDump 0.5.3.16-pf1 incorporates the accepted native-reporting campaign,
+Linux raw-I/O authorization boundary, GameCube/Linux parity work, and the
+GDR-8050L Linux Xbox DMI correction.
 
-The baseline source came from:
+Release authority is the annotated tag `v0.5.3.16-pf1`. Verify its live tag
+object, peeled commit, and tree before treating a checkout or archive as
+canonical.
 
-```text
-D:\vscode-workspace\friidump
-```
-
-No firmware binaries or disc images belong in this Git repository.
+Disc images, live logs, compiled binaries, build directories, result archives,
+and unrelated reverse-engineering work remain outside this repository.
 
 Authority surfaces:
 
 ```text
 repository: /srv/project-frankenstein/repos/friidump.git
 authority marker: /srv/project-frankenstein/catalog/authority/friidump.json
-canonical tag: v0.5.3.5-pf1
+canonical tag: v0.5.3.16-pf1
 ```
 
 ## Build
-
 ### Windows — validated MSVC 32-bit path
 
 The maintained Windows helper invokes the Visual Studio 2019 Build Tools
@@ -210,7 +205,7 @@ FriiDump is distributed under the GNU General Public License, version 2 or
 later. See [`COPYING`](COPYING). Existing source-file copyright notices and
 authors are preserved.
 
-## Candidate21 Xbox Linux scope
+## FriiDump 0.5.3.16-pf1 Xbox Linux scope
 
 Candidate21 preserves Candidate20's successful SG_IO Xbox handshake and
 Windows state-machine order. The only functional correction is the standard
index e2a3d1dae0e0fb07aaff843b10abf4ad2992ff88..5bbc5cf22ed46419db4b2bc39b2f228fcf6e566c 100644 (file)
@@ -49,7 +49,7 @@ set "HELP_LOG=%TEMP%\friidump-help-%RANDOM%-%RANDOM%.txt"
 "%~dp0friidump.exe" --help > "%HELP_LOG%" 2>&1
 type "%HELP_LOG%"
 
-findstr /c:"FriiDump 0.5.3.16-pf1-candidate21" "%HELP_LOG%" >nul
+findstr /c:"FriiDump 0.5.3.16-pf1" "%HELP_LOG%" >nul
 if errorlevel 1 (
   echo [ERROR] FriiDump help/version smoke test failed.
   del /q "%HELP_LOG%" >nul 2>nul
index 85e1df4644efdaa959ed8cd2e6ac804ef42d0a57..da3739209cc26adf9b7e61a3e8acc7e1de798f0b 100644 (file)
@@ -2,48 +2,46 @@
 
 ## Authority
 
-FriiDump remains governed by the established Project Frankenstein repository
-and promoted release history. Candidate11 is a development candidate derived
-from candidate10; it is not yet a promoted release.
+FriiDump 0.5.3.16-pf1 is the release line prepared from the accepted
+Candidate21 implementation. The annotated release tag is the immutable
+authority after publication; verify the live tag object, peeled commit, and
+tree rather than inferring authority from a checkout directory or ZIP name.
 
 ## Validated paths
 
-- Windows/MSVC 32-bit candidate10 challenge-drive behavior remains the current
-  live-validated Windows authority.
-- Candidate11 compiles cleanly through Linux/CMake as a static binary.
-- Native-report fixtures and schema/semantic validation pass.
-- A portable XDFS/XBE metadata fixture proves title, media ID, Title ID, raw
-  GameRegion, formatted region, and UTF-16-to-UTF-8 conversion.
-- Linux ISO/XISO code now returns the same structured Xbox result fields used by
-  native reports, summary output, hashes, and Redump verification.
-- Linux GDR-8050L default output names can be derived from XBE/DMI metadata.
+- The maintained Visual Studio 2019 32-bit build and native-report fixtures pass.
+- Linux/CMake builds pass with explicit normal-user `CAP_SYS_RAWIO` handling.
+- A GCC-4244 B101 completed the Sonic Mega Collection (US) GameCube dump with an
+  exact full-image hash match.
+- The Linux GDR-8050L path established both Xbox game-view transitions, read
+  XDVDFS metadata, captured DMI media ID `TQ00501A`, produced a controlled
+  partial GAME-XDVDFS output with hashes and native reporting, and completed
+  STOP UNIT.
+- Native `friidump-test-result.v1` reports cover complete, partial, failed,
+  cancelled, no-media, seed-failure, and modified-firmware states.
 
 ## Hardware-validation boundary
 
-Candidate11 has not yet been run against a physical Xbox-capable optical drive
-on Linux. Real hardware must prove no-media behavior, unlock state transitions,
-metadata, controlled cancellation, exact hashes, STOP UNIT, complete XISO, and
-redump-style ISO behavior before Linux support can be described as validated.
-
-The development-only XGD1 layout and raw-ID probes remain Windows-only in this
-first candidate11 increment. They are tracked as a separate Linux-port substage
-and do not block ordinary user ISO/XISO validation.
+The Linux GDR-8050L evidence validates the command path, game-view state,
+metadata, controlled partial output, cancellation, reporting, and cleanup. It
+does not by itself claim a newly completed full Original Xbox image on Linux.
+Candidate-specific validation scripts remain in `validation/` as historical,
+exact evidence tools; release builds use the maintained build entry points and
+the generic raw-I/O capability helper.
 
 ## Known inherited warnings
 
-`libfriidump/rs.c` retains an inherited right-shift-count warning. Additional
-warnings visible under an explicit `-Wall -Wextra` audit predate candidate11 or
-are non-fatal test-path warnings. No candidate11 portable metadata source error
-or warning blocked the build.
+`libfriidump/rs.c` retains an inherited right-shift-count warning. Other
+explicit `-Wall -Wextra` warnings are pre-existing or non-fatal test-path
+warnings and were not silently normalized during release finalization.
 
 ## Campaign
 
-After Linux user-path validation, work proceeds to exact-tag release automation,
-then the FriiDump homepage/compatibility site v1.3.0, then a separately identified
-MinGW investigation.
+Release publication uses an exact annotated tag, exact-tag Windows and Linux
+builders, immutable artifact manifests, and independent private/public
+read-back. Candidate retirement remains a separate final gate.
 
 ## Candidate12 correction status
-
 Candidate12 closes the Linux GCC-4244 B101 full-dump gate and corrects runtime
 DAT discovery, Linux lock-status reporting, and the Linux `--help` validation
 false failure. The accepted live result is Sonic Mega Collection (US), 712880
index 71f91eb041a04e41e203333fb226b531529627e4..ba4bcc8ff61f001011f637c54f5082f98557cf60 100644 (file)
@@ -1,5 +1,5 @@
-FriiDump 0.5.3.16-pf1-candidate21
------------------------------------
+FriiDump 0.5.3.16-pf1
+----------------------
 - 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.
index 513ab2f1d9f2901d01ba56198d5bd1724aa0e698..4c877fbcb123b4f6db11cd639a70a76b3d043f18 100644 (file)
@@ -89,11 +89,12 @@ bash ./validation/friidump-linux-rawio-capability.sh remove \
   ./build/src/friidump
 ```
 
-The candidate validator exposes the same installation step:
+The maintained release helper applies the capability only to the exact
+validated executable:
 
 ```bash
-bash ./validation/friidump-v0.5.3.16-pf1-candidate21-linux-live-validation.sh \
-  capability
+bash ./validation/friidump-linux-rawio-capability.sh \
+  install ./build/src/friidump
 ```
 
 ### Capability lifetime
index d0aceddbf19ea07e88ac8130dab2bfb89ed9b9c1..f3c02485cb7b3aabc3df6bd0b385654e53636f0d 100644 (file)
@@ -1,5 +1,5 @@
 [FRIIDUMP] Log file: friidump.log
-FriiDump 0.5.3.16-pf1-candidate21 - Copyright (C) 2007 Arep
+FriiDump 0.5.3.16-pf1 - Copyright (C) 2007 Arep
 This software comes with ABSOLUTELY NO WARRANTY.
 This is free software, and you are welcome to redistribute it
 under certain conditions; see COPYING for details.
index 5f8635593d13aad7ccc36db8949f71a3ef7e2aef..259f639ed2a7867183919531933ebfb0af6ffc38 100644 (file)
@@ -2,11 +2,11 @@
 
 ## Status
 
-This is a source candidate for Windows and physical-drive validation. It is not
-a promoted release and does not replace `v0.5.3.15-pf1`.
+This document records the implementation and accepted validation basis for
+FriiDump 0.5.3.16-pf1. Candidate-specific reports remain historical evidence;
+the release identity is the annotated tag and its exact commit/tree.
 
 ## Scope
-
 The change adds native `friidump-test-result.v1` generation to normal dump
 invocations. It deliberately excludes broad drive-research discovery; that
 work remains assigned to a separate future utility.
@@ -103,19 +103,19 @@ The source includes fixtures for:
 The fixtures are validated against the exact Compatibility Database v1.2.0 JSON
 Schema. The database PHP semantic validator is used during package validation.
 
-## Remaining promotion gates
-
-Before a release can be promoted:
-
-1. Build with the maintained Visual Studio 2019 32-bit toolchain.
-2. Run the MSVC fixture tests.
-3. Validate no-media reporting on a real drive.
-4. Validate a complete GameCube or Wii report.
-5. Validate a controlled partial cancellation.
-6. Validate Xbox assembled-output reporting on the applicable hardware path.
-   The copied GDR-8050L reference dumper remains a special Windows-only path;
-   complete output reporting must be validated there, and Ctrl+C cancellation
-   must not be claimed for that path until its copied loops receive an explicit
-   cancellation callback.
-7. Submit generated reports to the live v1.2.0 database and confirm acceptance.
-8. Review exact report contents before assigning a release tag.
+## Accepted validation basis
+
+The release campaign completed these gates:
+
+1. Maintained Visual Studio 2019 32-bit build and fixture execution.
+2. Linux/CMake build and raw-I/O authorization preflight.
+3. Real-drive no-media and controlled-partial reporting.
+4. Complete GameCube validation with an exact known-good image hash.
+5. Original Xbox GDR-8050L game-view, XDVDFS, DMI/media-ID, native-report,
+   controlled-cancellation, hashing, and STOP UNIT validation.
+6. Exact report review and compatibility-database acceptance.
+7. Candidate publication and exact fast-forward promotion to canonical `main`.
+
+The copied Windows challenge-drive loops retain their documented cancellation
+boundary. No broader cancellation claim is inferred from the portable Linux
+path.
\ No newline at end of file
diff --git a/docs/reports/FRIIDUMP_RELEASE_FINALIZATION_0.5.3.16.md b/docs/reports/FRIIDUMP_RELEASE_FINALIZATION_0.5.3.16.md
new file mode 100644 (file)
index 0000000..3bb33b7
--- /dev/null
@@ -0,0 +1,39 @@
+# FriiDump 0.5.3.16-pf1 release finalization
+
+## Accepted implementation
+
+The functional implementation was accepted and promoted from:
+
+- Candidate branch: `candidate/v0.5.3.16-pf1-candidate21`
+- Candidate/main commit: `29417fff9ebac65b1cf60ea8951c687696302c55`
+- Candidate/main tree: `d9a03be5b4ca5a5d2c5f5a14400a9ba3488c56db`
+- Parent: `de0c1a3eccb6f04bbfd23436b592fe7fc501fcf2`
+
+## Release-only scope
+
+Release finalization changes only user-visible version identity, current-status
+documentation, the generic Linux capability helper's default build path/version
+check, and release provenance documentation.
+
+It does not change the accepted optical-drive command paths, Xbox handshake,
+DMI/PFI request construction, native-report schema or behavior, dump geometry,
+hashing, cancellation boundaries, or STOP UNIT behavior.
+
+Candidate-specific validators remain unchanged as historical exact-evidence
+tools.
+
+## Accepted hardware evidence
+
+- GCC-4244 B101: complete GameCube dump and exact known-good image match.
+- GDR-8050L 0012 on Linux: both Xbox game-view transitions, XDVDFS readability,
+  DMI media ID `TQ00501A`, controlled partial output, hashes, atomic native
+  report, and STOP UNIT.
+
+The Linux GDR-8050L result validates the command and controlled-partial path; it
+does not invent a full-image completion claim.
+
+## Release boundary
+
+The intended immutable annotated tag is `v0.5.3.16-pf1`. Tag creation,
+exact-tag Windows/Linux builds, immutable artifact publication, and candidate
+retirement are separate gates.
\ No newline at end of file
index 4be897057a0e8d33e67e293a5e52a3f82d7af508..5e5ddec5735990c96588b37e164fd894a0c05f46 100644 (file)
@@ -1,37 +1,33 @@
-# FriiDump Candidate21 Handoff
-
-Candidate20 established the Linux Xbox game view twice on the USB
-`HL-DT-ST DVD-ROM GDR8050L 0012`, read Red Faction II XDVDFS data, captured the
-32-sector game lead-in, produced a 482,115,584-byte controlled partial image,
-hashed it, wrote an atomic native report, and completed STOP UNIT.
-
-Candidate20 evidence SHA-256:
-
-`f82ceb50ca7e41d3a9c962557b2dadb47276c767da756721bb9e4337572742d2`
-
-Two acceptance findings remained:
-
-1. Step 9 sticky descrambling returned CHECK CONDITION `05/81/00`, but both
-   final capacity checks reported 3,431,264 sectors and XDVDFS data was
-   readable. The transport result remains logged as FAIL, while the live
-   acceptance policy treats it as non-blocking when game-view proof succeeds,
-   matching the copied Windows path's outcome-based authority.
-2. Media ID was empty. The portable READ DVD STRUCTURE helper placed Format in
-   CDB byte 11 instead of byte 7. The copied Windows `GetMediaID()` path uses
-   byte 7. Candidate21 corrects this boundary and adds persistent
-   `[XBOX-DVD-STRUCTURE]` PFI/DMI diagnostics.
-
-Candidate21 does not add RecoveryKick or any generic recovery/authentication
-sequence.
-
-Validation order:
-
-```bash
-bash ./validation/friidump-v0.5.3.16-pf1-candidate21-linux-live-validation.sh build
-bash ./validation/friidump-v0.5.3.16-pf1-candidate21-linux-live-validation.sh capability
-```
-
-Windows MSVC validation is required before the final physical Linux Xbox smoke.
-The final smoke must report media ID `TQ00501A`, successful DMI capture, both
-game-view transitions, controlled cancellation, hashes, native report, and
-STOP UNIT.
+# FriiDump 0.5.3.16-pf1 Release Handoff
+
+## Accepted implementation authority
+
+- Promoted main commit:
+  `29417fff9ebac65b1cf60ea8951c687696302c55`
+- Promoted implementation tree:
+  `d9a03be5b4ca5a5d2c5f5a14400a9ba3488c56db`
+- Candidate branch:
+  `candidate/v0.5.3.16-pf1-candidate21`
+
+Candidate21 closed the Linux GDR-8050L DMI boundary by placing READ DVD
+STRUCTURE Format in CDB byte 7. Physical validation captured media ID
+`TQ00501A`, established both game-view transitions, read XDVDFS metadata,
+produced a controlled partial output with hashes and an atomic native report,
+and completed STOP UNIT.
+
+## Release-finalization boundary
+
+The release-finalization commit changes only release identity, active
+documentation, and the generic Linux capability helper's expected release
+version/default build path. Candidate-specific validation scripts remain
+unchanged as exact historical evidence.
+
+## Remaining release gates
+
+1. Review and accept the release-finalization commit.
+2. Build and test Windows and Linux from the exact finalization commit.
+3. Create one annotated tag `v0.5.3.16-pf1`.
+4. Push only that tag.
+5. Verify private/public tag object, peeled commit, tree, dispatcher, and exact
+   artifacts.
+6. Retire the candidate branch in a separate gate after release acceptance.
\ No newline at end of file
index 2a3997940c348c79376f1a8611c3fadf5ad2ee2c..f42b744efc2b0d251e9e941a4abd30cfc3022bfa 100644 (file)
@@ -491,7 +491,7 @@ static void friidump_print_validation_summary(double duration, bool have_duratio
 #define PACKAGE_NAME "FriiDump"
 
 /* Define to the version of this package. */
-#define PACKAGE_VERSION "0.5.3.16-pf1-candidate21"
+#define PACKAGE_VERSION "0.5.3.16-pf1"
 
 
 #ifdef WIN32
index 87d03161bed6f57fb3600e695b8090720316a32a..b7aea97c4d7ccda084f473e0a930c9130fe316ee 100644 (file)
@@ -1,10 +1,21 @@
-# FriiDump 0.5.3.16-pf1-candidate21 validation
+# FriiDump 0.5.3.16-pf1 validation history
 
-Candidate21 preserves Candidate13's seed diagnostics and Candidate12's DAT and
-Linux-lock corrections while making the Linux raw-I/O requirement explicit.
+The Candidate21 validators below are retained as exact campaign evidence. They
+verify the candidate identity and should not be renamed or repurposed as
+release builders.
 
-## Linux build
+For a normal release build, use the maintained entry points:
 
+```text
+Windows: build_msvc32.cmd
+Linux:   cmake -S . -B build -DBUILD_STATIC_BINARY=ON
+         cmake --build build
+```
+
+After validating the exact Linux executable, apply the minimum file capability
+with `validation/friidump-linux-rawio-capability.sh`.
+
+## Candidate21 Linux build
 Run from the source root:
 
 ```bash
index 09542491b625d195fd5942ec6af1d96f3ef754ad..e6bef74c68129c3a7b78db1284c0cab39e7190c5 100644 (file)
@@ -3,9 +3,9 @@ set -Eeuo pipefail
 
 action="${1:-status}"
 source_root="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")/.." && pwd)"
-default_binary="$source_root/build-candidate21-linux/src/friidump"
+default_binary="$source_root/build/src/friidump"
 binary="${2:-$default_binary}"
-expected_version="0.5.3.16-pf1-candidate21"
+expected_version="0.5.3.16-pf1"
 
 fail() {
     printf 'ERROR: %s\n' "$*" >&2