mirror of
https://github.com/Druthulu/BFM-decomp
synced 2026-09-28 14:59:48 -04:00
docs(phase-30 S45 II.3): metrics re-baseline + roadmap contract delta + decision-log (R31)
- roadmap §1.1: 183 onboarded binaries; the 100% claim's exclusion list = the 34-row parked-for-L3 ledger (28 script + SC02/9 + MAIN/7/9 + SC03/53/54/56 — 3 rows S44 never tiered); supersedes the '39 type-1 backlog' framing (43 of them now build byte-identical) - disc-completeness.md S45 section: what landed, the full parked list, the L3 resolution path - decision-log: the S45 entry — five instrument findings a 'mechanical' batch surfaced, each negative-control-proven; honest baseline 94.0% instr / 95.96% fn / 87.6% distinct over 183
This commit is contained in:
@@ -2239,3 +2239,43 @@ re-measure before letting it gate a campaign (the §146/§147 lesson at doctrine
|
||||
**Hindsight better path.** When Phase 3 T5 wrote "entries [1]+ are runtime-indexed (no static xref)",
|
||||
the honest follow-up was a named open question ("WHERE do the indices live?") rather than a doctrine.
|
||||
The answer was one grep away once the resident was matched in Phase 12.
|
||||
|
||||
## 2026-08-06 (P30 S45) — Part II lands: the module fleet onboards emulator-free; the denominator is now partition-complete minus a 34-row parked ledger
|
||||
|
||||
**Context/belief.** S44's Part I proved the campaign shape on the big 3; Part II was checkpointed as
|
||||
"mechanical" — onboard the 35 small MAIN modules + the SC07 pair, dedup, verify, retire the
|
||||
superseded tools, re-baseline.
|
||||
|
||||
**What happened (byte-verified).** All 40 modules (38 MAIN + SC07 pair) built **byte-identical on
|
||||
their FIRST build** at the §S44 static addresses — zero parked, byte-corroborating the loader table
|
||||
across all four slots (A/B/boot/SC07). The dedup measure came in exactly as predicted (LOW): 69/1,113
|
||||
module fns h_exact-match matched corpus code; the scoped `family_sweep --hseq` banked **408 members**
|
||||
(182 into modules, 226 into the big 3 — families Part I's `--only` scoping missed). R22 183/183;
|
||||
`audit-disc` UNCLAIMED 75→34 at residue 0.
|
||||
|
||||
**What the checkpoint's "mechanical" hid (the session's real work — five instrument findings).**
|
||||
(1) A module header can carry a function's JUMP TABLE → the hdr carve must be a dot-typed `.rodata`
|
||||
PAIRED with the c segment (standalone rodata emits cross-object `.L` refs; `bin` links in the data
|
||||
block). (2) The A4 symbol-window law bit again: `symbols.resident.txt` in the boot trio's stacks
|
||||
minted a phantom `DsMix` function inside md_MAIN_011. (3) `family_sweep --hseq`'s stub map globbed
|
||||
`sig.ov_*` only — every module member silently "not-stub" (the I.1d widening class; the tool sat on
|
||||
the audit's "auto-OK" list). (4) `--bootstrap` sig boundaries GLUE adjacent functions around
|
||||
jtbl-dispatch code — 24 false TRUNCATED slices; `sig-modules` now seeds from the built ELF's
|
||||
`func_*` symbols. (5) `corpus.audit` counted jtbl `.word` lines as instructions and `progress.py`
|
||||
left `INCLUDE_RODATA` symbols unbucketed — both R32 holes the new module layout exposed. Every fix
|
||||
carries a negative control.
|
||||
|
||||
**The pivot/state.** The completion contract's denominator is now **183 onboarded binaries + a
|
||||
34-row parked-for-L3 ledger** (28 script modules + SC02/9 + MAIN/7/9 + **SC03/53/54/56** — three
|
||||
rows the S44 exploration never tiered, found by the audit's arithmetic refusing to close). Honest
|
||||
baseline: **94.0% instr / 95.96% fn-count / 87.6% distinct** on the grown denominator (was 94.4%
|
||||
instr over 143 binaries — the headline fell because the game grew, the honest direction). The ~931
|
||||
module stubs + ~1,700 big-3 novel stubs are ordinary crack-wave frontier; L3 shrinks to a bounded
|
||||
runtime-confirm pass (P31 bucket T).
|
||||
|
||||
**Hindsight.** "Mechanical" batches over a NEW binary layout are where instrument blind spots
|
||||
surface — the five findings above were all invisible until 40 same-shaped binaries went through the
|
||||
pipeline in one afternoon. The S44 plan's per-tool audit was right to exist and still under-reached
|
||||
(family_sweep was "auto-OK"; the plan's "zero build refs" for the retirees was wrong for 3 of 7).
|
||||
The discipline that worked: R37 probe-first (one module before 29), negative controls per fix, and
|
||||
the R22/audit ladder after every batch.
|
||||
|
||||
@@ -81,6 +81,29 @@ The contract's binary count is **no longer "136"**. Two corrections:
|
||||
mostly-unmatched code to the denominator; every "×134" family propagation is now "×138"). That is the
|
||||
honest direction — the prior number was measured over an incomplete disc.
|
||||
|
||||
## S45 (2026-08-06): the module campaign landed — the residue IS the parked-for-L3 ledger
|
||||
|
||||
**43 of the 78 unclaimed payloads now build byte-identical** (P30 S44/S45): the 3 uncompressed
|
||||
overlays (`ov_MAIN_012`, `ov_SC02_037`, `ov_SC03_107`) + the 38 MAIN modules (slot A
|
||||
`md_MAIN_013…041` @0x800CAE08 · slot B `md_MAIN_042…047` @0x800CCB1C · boot trio `md_MAIN_001`
|
||||
[≡MAIN/0, stored twice] / `md_MAIN_008` / `md_MAIN_011` @0x800CEDF8) + the SC07 pair
|
||||
(`md_SC07_003/004` @0x801A00D8) — every address static-derived (§S44 loader table,
|
||||
`docs/memory-map.md`) and byte-corroborated by a first-build byte-identity. Fleet = **183
|
||||
binaries**, `make audit-disc` residue 0.
|
||||
|
||||
**The remaining UNCLAIMED = 34 payloads = the parked-for-L3 exclusion list** (the 100% claim
|
||||
cites exactly this list, roadmap §1.1):
|
||||
- the **28 SC0x script modules** (SC03/73–79, SC03/132–138, SC04/24–30, SC05/23–29 = 7 modules ×
|
||||
4 per-disc builds) — bases loader-determined per-disc via the resourceIdMap/DESTPTR path;
|
||||
- **SC02/9** (70,784 B), **MAIN/7** (raw file, not PAC), **MAIN/9**;
|
||||
- **SC03/53, SC03/54, SC03/56** (6,616 / 8,220 / 3,680 B) — *added S45:* three SC-disc type-1
|
||||
rows the S44 exploration never tiered; same per-disc runtime-routing class as SC02/9. Their
|
||||
jal-vote bases are low-confidence; onboarding on a guess would be P9 theater.
|
||||
|
||||
Resolution path: the **L3 emulator tour** (P31 bucket T) logs every load (payload → RAM addr →
|
||||
len), delivering the 34 bases + R34-verification of the static addresses + evidence for any
|
||||
never-loaded payload's out-of-scope call.
|
||||
|
||||
## Reproduce
|
||||
> **⚠️ S45: `tools/disc_code_sweep.py` is RETIRED (R33)** — superseded by `make audit-disc`
|
||||
> (`tools/disc_audit.py`): whole-payload classification at BOTH the raw and LZSS layers, a
|
||||
|
||||
+14
-5
@@ -40,11 +40,20 @@
|
||||
**Target: GAME-CODE TRUE 100%**, mechanically defined:
|
||||
|
||||
1. After SDK objects are LINKED, **zero `INCLUDE_ASM` and zero linked `NON_MATCHING` under
|
||||
`src/`** across **all onboarded code-bearing binaries**. *Corrected count:* **140 onboarded
|
||||
today** (main + resident + 138 overlays; P27 disc-completeness audit + the P28 R36 gate)
|
||||
**plus a documented backlog of 39 type-1 code modules** pending load-address RE
|
||||
(`docs/disc-completeness.md`). 100% is only claimable once the 39 are onboarded-and-matched
|
||||
or explicitly excluded with evidence — the byte-gate cannot see them (R34).
|
||||
`src/`** across **all onboarded code-bearing binaries**. *Corrected count (P30 S44/S45):*
|
||||
**183 onboarded today** — main + resident + 141 overlays (138 type-4 + the 3 uncompressed
|
||||
type-1 overlays ov_MAIN_012/ov_SC02_037/ov_SC03_107) + **40 md_* modules** at their §S44
|
||||
static slots (`docs/memory-map.md`; every one byte-identical on its FIRST build at the
|
||||
derived address). **The explicit exclusion list the 100% claim cites is the parked-for-L3
|
||||
ledger: 34 payloads** (`make audit-disc` → `docs/disc-ledger.md` UNCLAIMED; detailed in
|
||||
`docs/disc-completeness.md`) — the 28 SC0x script modules (7 × 4 per-disc builds), SC02/9,
|
||||
MAIN/7, MAIN/9, **and SC03/53, SC03/54, SC03/56** (S45: three SC-disc type-1 rows the S44
|
||||
exploration never tiered — same per-disc runtime routing class as SC02/9). Their bases are
|
||||
loader-determined per-disc, not EXE-static; guessing one would be P9 theater. 100% is only
|
||||
claimable once these 34 are onboarded-and-matched (post-L3 emulator tour, P31 bucket T) or
|
||||
remain explicitly excluded with this evidence — the byte-gate cannot see them (R34).
|
||||
*(The prior "39 type-1 backlog" framing is superseded: 43 of those payloads now build
|
||||
byte-identical as md_*/ov_* binaries; the residue is exactly the 34-row parked ledger.)*
|
||||
2. Every binary **byte-identical from a genuinely clean tree** (R22: `make clean` +
|
||||
extract-all + `check-all`), and byte-identical **with AND without** the SDK objects
|
||||
(the fresh-clone stub fallback invariant).
|
||||
|
||||
@@ -234,7 +234,15 @@ stub on a named wall/behemoth/queue ledger** — 140/140 byte-identical througho
|
||||
gate re-proven green). SETUP §6.7 gained the **module-class recipe** (TEXT_LO derivation law,
|
||||
paired-.rodata header carve, A4 symbol-window law, ELF-seeded sig-modules) + inventory rows
|
||||
(R21); disc-completeness Reproduce marked retired; Makefile comments annotated.
|
||||
- **II.3** (metrics re-baseline + roadmap delta + decision-log) — next.
|
||||
- **II.3 ✅ — metrics re-baseline + roadmap delta + decision-log.** Roadmap §1.1 contract
|
||||
corrected: **183 onboarded binaries**; the 100% claim's explicit exclusion list = the
|
||||
**34-row parked-for-L3 ledger** (28 script + SC02/9 + MAIN/7/9 + SC03/53/54/56), superseding
|
||||
the "39 type-1 backlog" framing. disc-completeness.md gained the S45 section (what landed +
|
||||
the full parked list + the L3 resolution path). Decision-log R31 entry written (the five
|
||||
instrument findings + the hindsight). Digests already re-baselined in II.1c (audit-digest
|
||||
green: 94.0% instr / 95.96% fn / 87.6% distinct over 183).
|
||||
- **Next:** II.4 (L3 emulator tour) is **P31 bucket T** — not this session. II.5 (the novel-fn
|
||||
frontier: ~931 module stubs + big-3 novel) is standard crack-wave work.
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user