From: jtryba Date: Sat, 25 Jul 2026 01:07:55 +0000 (-0500) Subject: FriiDump 0.5.3.16: finalize release identity and documentation X-Git-Tag: v0.5.3.16-pf1 X-Git-Url: https://git.jtryba.com/browse/friidump.git/commitdiff_plain/3faddd693c9198081778561c683f21c7904c7376 FriiDump 0.5.3.16: finalize release identity and documentation --- diff --git a/CMakeLists.txt b/CMakeLists.txt index 635300d..d4b21bf 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -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." ) diff --git a/README.md b/README.md index 27c81d7..0318a06 100644 --- 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 diff --git a/build_msvc32.cmd b/build_msvc32.cmd index e2a3d1d..5bbc5cf 100644 --- a/build_msvc32.cmd +++ b/build_msvc32.cmd @@ -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 diff --git a/docs/CURRENT_STATUS.md b/docs/CURRENT_STATUS.md index 85e1df4..da37392 100644 --- a/docs/CURRENT_STATUS.md +++ b/docs/CURRENT_STATUS.md @@ -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 diff --git a/docs/ChangeLog b/docs/ChangeLog index 71f91eb..ba4bcc8 100644 --- a/docs/ChangeLog +++ b/docs/ChangeLog @@ -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. diff --git a/docs/LINUX.md b/docs/LINUX.md index 513ab2f..4c877fb 100644 --- a/docs/LINUX.md +++ b/docs/LINUX.md @@ -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 diff --git a/docs/options b/docs/options index d0acedd..f3c0248 100644 --- a/docs/options +++ b/docs/options @@ -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. diff --git a/docs/reports/FRIIDUMP_NATIVE_COMPATIBILITY_REPORTING_0.5.3.16.md b/docs/reports/FRIIDUMP_NATIVE_COMPATIBILITY_REPORTING_0.5.3.16.md index 5f86355..259f639 100644 --- a/docs/reports/FRIIDUMP_NATIVE_COMPATIBILITY_REPORTING_0.5.3.16.md +++ b/docs/reports/FRIIDUMP_NATIVE_COMPATIBILITY_REPORTING_0.5.3.16.md @@ -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 index 0000000..3bb33b7 --- /dev/null +++ b/docs/reports/FRIIDUMP_RELEASE_FINALIZATION_0.5.3.16.md @@ -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 diff --git a/friidump-handoff.md b/friidump-handoff.md index 4be8970..5e5ddec 100644 --- a/friidump-handoff.md +++ b/friidump-handoff.md @@ -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 diff --git a/src/friidump.c b/src/friidump.c index 2a39979..f42b744 100644 --- a/src/friidump.c +++ b/src/friidump.c @@ -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 diff --git a/validation/README.md b/validation/README.md index 87d0316..b7aea97 100644 --- a/validation/README.md +++ b/validation/README.md @@ -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 diff --git a/validation/friidump-linux-rawio-capability.sh b/validation/friidump-linux-rawio-capability.sh index 0954249..e6bef74 100644 --- a/validation/friidump-linux-rawio-capability.sh +++ b/validation/friidump-linux-rawio-capability.sh @@ -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