From a8cdd934b6fdcf9fd6c951839f5cf1cb4c1a8cf0 Mon Sep 17 00:00:00 2001
From: Drew T <50529377+Druthulu@users.noreply.github.com>
Date: Tue, 29 Sep 2026 20:03:58 -0600
Subject: [PATCH] T1: tools-health outputs regenerated (progress, timeline,
census snapshots)
---
.run/P35/census/share_census.json | 2 +-
.run/P35/census/share_census.txt | 2 +-
.run/P36/census/lever_census.json | 22 +++++++++----------
.run/P36/census/lever_census.txt | 12 +++++------
README.md | 2 +-
docs/progress.fleet.md | 2 +-
docs/progress.json | 2 +-
docs/progress.md | 2 ++
docs/story-timeline.md | 4 ++--
docs/story-timeline.svg | 36 +++++++++++++++----------------
10 files changed, 44 insertions(+), 42 deletions(-)
diff --git a/.run/P35/census/share_census.json b/.run/P35/census/share_census.json
index 3b99ea21a8..448988b735 100644
--- a/.run/P35/census/share_census.json
+++ b/.run/P35/census/share_census.json
@@ -31,7 +31,7 @@
},
"duplicate_text_classes": 6392,
"duplicate_text_sites": 17764,
- "elapsed_s": 23.8,
+ "elapsed_s": 36.8,
"flags": {
"ALIAS": 17,
"E": 3826,
diff --git a/.run/P35/census/share_census.txt b/.run/P35/census/share_census.txt
index c8c533dd32..b2b42a7481 100644
--- a/.run/P35/census/share_census.txt
+++ b/.run/P35/census/share_census.txt
@@ -37,4 +37,4 @@ share_census: 218 binaries · 362,389 sig instances · 362,389 classified · 0 U
B E,F 11852 x 2 0x80014554,0x8001455C,0x8001513C func_80014554,func_8001455c
A - 141 x 167 0x80163C2C func_80163c2c
A - 141 x 165 0x80178004 func_80178004
- macro sites 0 · duplicate-text classes 6,392 (17,764 sites) · elapsed 23.8 s
+ macro sites 0 · duplicate-text classes 6,392 (17,764 sites) · elapsed 36.8 s
diff --git a/.run/P36/census/lever_census.json b/.run/P36/census/lever_census.json
index c337d20097..d3b15c62fb 100644
--- a/.run/P36/census/lever_census.json
+++ b/.run/P36/census/lever_census.json
@@ -5,7 +5,6 @@
"gte_mnemonics": {
"gte_SetRotMatrix": 253,
"gte_SetTransMatrix": 231,
- "gte_avsz3": 25,
"gte_avsz4": 65,
"gte_dpcl": 134,
"gte_ldclmv": 78,
@@ -13,6 +12,7 @@
"gte_ldv0": 768,
"gte_ldv3": 186,
"gte_ldv3c": 184,
+ "gte_nccs": 25,
"gte_nclip": 108,
"gte_rtir": 81,
"gte_rtps": 448,
@@ -71,11 +71,17 @@
"cfake_markers": {
"count": 53,
"sample": [
+ "src/800.c:12543",
+ "src/800_b_2.c:2948",
+ "src/800_b_2.c:2965",
+ "src/800_b_2.c:3087",
"src/md_SC07_003/md_SC07_003.c:3577",
+ "src/md_SC07_004/md_SC07_004.c:280",
"src/ov_SC01_000/ov_SC01_000_jr_8017BEBC.c:3564",
"src/ov_SC01_009/ov_SC01_009_jr_8017E590.c:4265",
"src/ov_SC01_077/ov_SC01_077_jr_80183CF4.c:3973",
"src/ov_SC01_080/ov_SC01_080_jr_8017AE2C.c:5172",
+ "src/ov_SC02_011/ov_SC02_011_jr_80183178.c:2138",
"src/ov_SC02_027/ov_SC02_027_jr_8017D898.c:4521",
"src/ov_SC02_027/ov_SC02_027_jr_8017D898.c:8363",
"src/ov_SC02_028/ov_SC02_028_jr_8017D898.c:5455",
@@ -104,13 +110,7 @@
"src/ov_SC05_018/ov_SC05_018_jr_8017D604.c:4936",
"src/ov_SC06_000/ov_SC06_000_jr_8017AE2C.c:8438",
"src/ov_SC06_000/ov_SC06_000_jr_8017AE2C.c:8478",
- "src/ov_SC06_000/ov_SC06_000_jr_8017AE2C.c:8805",
- "src/ov_SC06_018/ov_SC06_018_jr_80187AEC.c:3118",
- "src/ov_SC06_018/ov_SC06_018_jr_80187AEC.c:5366",
- "src/ov_SC06_020/ov_SC06_020_jr_80180B04.c:3708",
- "src/ov_SC06_022/ov_SC06_022_jr_80184A28.c:3744",
- "src/ov_SC06_024/ov_SC06_024_jr_80186F00.c:3765",
- "src/ov_SC06_024/ov_SC06_024_jr_80186F00.c:5407"
+ "src/ov_SC06_000/ov_SC06_000_jr_8017AE2C.c:8805"
]
},
"classes": {
@@ -280,8 +280,8 @@
}
},
"coverage_ok": true,
- "elapsed_s": 29.5,
- "generated": "2026-09-12",
+ "elapsed_s": 36.7,
+ "generated": "2026-09-29",
"gte_levers": {
"direct": 356,
"marked": 450,
@@ -291,7 +291,7 @@
"via_macro": 94,
"what": "GTE ops whose clobbers exceed the canonical macro's (a scheduling steer): class-B levers INSIDE the headline number since T5 (2026-09-09), marked, 0 at the close"
},
- "head": "bd7d32ec2",
+ "head": "465d915bd",
"headers": 3181,
"levers_AB": {
"asm": 1862,
diff --git a/.run/P36/census/lever_census.txt b/.run/P36/census/lever_census.txt
index da78c86595..b91edb694c 100644
--- a/.run/P36/census/lever_census.txt
+++ b/.run/P36/census/lever_census.txt
@@ -6,13 +6,13 @@ lever_census: 218 binaries · 4,121 TUs + 3,181 headers · coverage OK · unclas
coverage attribute raw 76 = live 76 + macro-block 0 + comment/dead 0
class sites in-bodies file-scope bodies distinct TUs marked unmarked kinds
A pins 1868 1868 0 1182 479 942 1868 0 {'pin': 1868}
- B asm 11261 11248 13 4587 654 1425 2346 8915 {'barrier': 240, 'launder': 613, 'keepalive': 323, 'gte-lever': 450, 'gte': 6447, 'asm-body': 13, 'instruction': 223, 'verbatim-body': 2682, 'gte-unsigned': 270}
- C volatile 1589 1437 152 495 94 609 14 1575 {'cast': 1377, 'decl-body': 58, 'decl-file': 152, 'param': 2}
+ B asm 11261 11248 13 4587 654 1425 2346 8915 {'gte': 6447, 'gte-lever': 450, 'gte-unsigned': 270, 'barrier': 240, 'launder': 613, 'instruction': 223, 'asm-body': 13, 'keepalive': 323, 'verbatim-body': 2682}
+ C volatile 1589 1437 152 495 94 609 14 1575 {'decl-body': 58, 'decl-file': 152, 'cast': 1377, 'param': 2}
D register 50 50 0 47 47 6 0 50 {'register': 50}
E asm-label 5996 902 5094 734 131 2013 0 5996 {'asm-label': 5996}
F builtin 302 302 0 285 24 285 0 302 {'builtin': 302}
G attribute 76 1 75 1 1 40 0 76 {'attribute': 76}
- UNION A–D: 5,604 bodies · 995 distinct (addresses normalized) · 112 multi-copy classes holding 4,721 bodies · by kind {'ov': 5215, 'shared': 158, 'main': 120, 'md': 105, 'resident': 6}
+ UNION A–D: 5,604 bodies · 995 distinct (addresses normalized) · 112 multi-copy classes holding 4,721 bodies · by kind {'ov': 5215, 'md': 105, 'shared': 158, 'main': 120, 'resident': 6}
THE PHASE'S NUMBER (pins + asm statements, GTE excluded): 3,730 sites in 1,838 bodies (662 distinct) · marked !FAKE 3,730 · UNMARKED 0
orphan !FAKE markers (no pin/asm site on the line nor below): 0
marked ordinary-C fakes kept by Drew's S104 ruling (a) (`do { } while (0)`, dead initialisers; NOT levers): 53
@@ -21,12 +21,12 @@ lever_census: 218 binaries · 4,121 TUs + 3,181 headers · coverage OK · unclas
pins: 1,868 · $0 54 · $sp 0 · with initializer 201 · volatile-qualified 0 · bare-name 6 · spellings {'__asm__': 1847, 'asm': 21}
whole-body asm routines in C shells, manifest PERMANENT (hand asm, NOT levers): 22 routines · 2,682 sites (2,660 private copies + 22 shared headers); asm-bodies NOT permanent (levers): 13 site(s) ['func_8001E378:DECOMPILE-NOW', 'func_80020F34:DECOMPILE-NOW', 'func_800249F0:DECOMPILE-NOW', 'func_80025CBC:DECOMPILE-NOW', 'func_80026514:UNCERTAIN', 'func_800268D0:UNCERTAIN', 'func_80027058:DECOMPILE-NOW', 'func_80027200:DECOMPILE-NOW', 'func_800CBA44:DECOMPILE-NOW', 'func_8017D810:DECOMPILE-NOW', 'func_8017E26C:UNCERTAIN', 'func_80184440:DECOMPILE-NOW', 'func_801A3BCC:DECOMPILE-NOW']
asm kinds: {'asm-body/direct': 13, 'barrier/direct': 240, 'gte/direct': 197, 'gte/via-macro': 6250, 'gte-lever/direct': 356, 'gte-lever/via-macro': 94, 'gte-unsigned/direct': 270, 'instruction/direct': 201, 'instruction/via-macro': 22, 'keepalive/direct': 323, 'launder/direct': 580, 'launder/via-macro': 33, 'verbatim-body/direct': 2682}
- instruction mnemonics: {'la': 136, 'addiu': 22, 'RTP_SND': 22, 'addu': 21, '.section': 7, 'lui': 3, 'lh': 3, 'and': 2, 'li': 1, 'lw': 1, 'nop': 1, 'srl': 1, 'mult': 1, 'mfhi': 1, 'sll': 1}
- gte mnemonics: {'gte_ldv0': 768, 'gte_stlvnl': 593, 'gte_stsxy': 457, 'gte_rtps': 448, 'gte_stflg': 433, 'gte_rtpt': 361, 'gte_SetRotMatrix': 253, 'gte_stsxy3': 245, 'gte_SetTransMatrix': 231, 'gte_rtv0tr': 229, 'gte_ldv3': 186, 'gte_ldv3c': 184, 'gte_stsv': 161, 'lwc2': 158, 'gte_stsz4': 149, 'gte_stsz3': 147, 'gte_stszotz': 134, 'gte_dpcl': 134, 'gte_stclmv': 114, 'gte_stsxy3_f3': 111, 'gte_nclip': 108, 'gte_stopz': 108, 'gte_stsxy3c': 108, 'gte_rtir': 81, 'gte_stsxy3_ft3': 79, 'gte_ldclmv': 78, 'gte_avsz4': 65, 'gte_stotz': 61, 'gte_ldrgb': 30, 'gte_avsz3': 25}
+ instruction mnemonics: {'la': 136, 'addiu': 22, 'RTP_SND': 22, 'addu': 21, '.section': 7, 'lui': 3, 'lh': 3, 'and': 2, 'mult': 1, 'mfhi': 1, 'sll': 1, 'li': 1, 'lw': 1, 'nop': 1, 'srl': 1}
+ gte mnemonics: {'gte_ldv0': 768, 'gte_stlvnl': 593, 'gte_stsxy': 457, 'gte_rtps': 448, 'gte_stflg': 433, 'gte_rtpt': 361, 'gte_SetRotMatrix': 253, 'gte_stsxy3': 245, 'gte_SetTransMatrix': 231, 'gte_rtv0tr': 229, 'gte_ldv3': 186, 'gte_ldv3c': 184, 'gte_stsv': 161, 'lwc2': 158, 'gte_stsz4': 149, 'gte_stsz3': 147, 'gte_stszotz': 134, 'gte_dpcl': 134, 'gte_stclmv': 114, 'gte_stsxy3_f3': 111, 'gte_nclip': 108, 'gte_stopz': 108, 'gte_stsxy3c': 108, 'gte_rtir': 81, 'gte_stsxy3_ft3': 79, 'gte_ldclmv': 78, 'gte_avsz4': 65, 'gte_stotz': 61, 'gte_ldrgb': 30, 'gte_nccs': 25}
asm-bearing macro definitions: 314 (20 names, 3 with >1 text) kinds {'gte': 150, 'launder': 154, 'instruction': 9, 'barrier': 1}
controls (R39):
src/800.c func_800226C0 pins got 14 expected 14 OK
src/shared/ov/func_80178004.h pins got 8 expected 8 OK
ov_SC03_006 func_801896EC bare-name pins got 2 expected 2 OK
engine_prelude.h asm sites (a macro definition only) got 0 expected 0 OK
- elapsed 29.5 s
+ elapsed 36.7 s
diff --git a/README.md b/README.md
index 9774e97542..52e1157487 100644
--- a/README.md
+++ b/README.md
@@ -27,7 +27,7 @@ originals; nothing "functionally equivalent" counts. What the repository claims
One source per unique function (Phase 35): 102,998 function bodies written once in C (3,173 of them shared headers instantiated 262,590 times); 143 duplicate copies remain in 45 ledgered classes (declaration conflicts left for the types phase); 38 functions whose bytes vary per binary share one text through the text tier (2,030 sites); 1,668 same-address copies of 381 tiny bodies inside the cross-address classes are deferred to the names phase.
-Levers off (Phase 36, snapshot 2026-09-12): 1,868 register pins and 1,862 asm statements remain in 1,838 functions (662 distinct bodies), 3,730 of them marked `// !FAKE:`; 1,589 volatile qualifiers and 50 bare `register` keywords are censused; 6,447 GTE coprocessor operations and 22 whole-body assembly routines kept inside C shells (2,682 sites; the original's scratchpad stack-switch trampolines, one copy per overlay, listed in the verbatim manifest) are not levers and are excluded.
+Levers off (Phase 36, snapshot 2026-09-29): 1,868 register pins and 1,862 asm statements remain in 1,838 functions (662 distinct bodies), 3,730 of them marked `// !FAKE:`; 1,589 volatile qualifiers and 50 bare `register` keywords are censused; 6,447 GTE coprocessor operations and 22 whole-body assembly routines kept inside C shells (2,682 sites; the original's scratchpad stack-switch trampolines, one copy per overlay, listed in the verbatim manifest) are not levers and are excluded.
Types (Phase 37, snapshot 2026-09-13): 502,985 raw pointer-cast dereferences remain in 69,493 functions (four forms; 36,681 typed cast-member accesses and 18,888 address-of casts counted apart); 7,255 struct definitions (1,179 in the canonical header, 5,989 inside `.c` files) over 527 distinct layouts, 206 duplicate classes covering 2,823 names; 1,796 call declarations narrower than their callee's definition over 76 callees; the struct map clusters the cast sites into 18,213 types by evidence (99.2 % of sites assigned).
diff --git a/docs/progress.fleet.md b/docs/progress.fleet.md
index 4f2ad36fe4..711abcbed3 100644
--- a/docs/progress.fleet.md
+++ b/docs/progress.fleet.md
@@ -7,7 +7,7 @@
FLEET fn-count byte-ident: 363680 / 363680 = 100.00% (REAL+LINKED+empties; FUNCTION-count, ×134-inflated — one crack counts per overlay)
FLEET instr-weighted : 13492113 / 13492113 = 100.0% (shipped .text across main + resident + 216 overlays; the decomp.dev-DISPLAY number)
FLEET distinct-code(uniq): 5820205 / 5820205 = 100.0% (90984/90984 unique fns; the DISTINCT-RE number)
-MAIN game-code weighted : 45150 / 45150 = 100.0% (INCLUDED in the fleet numbers above since 2026-07-22 — roadmap §1 metrics contract; build-derived sig (make sig-main) dated 2026-09-11; boundaries INDEPENDENTLY VERIFIED since P31 S77 — `make sig-main-oracle` + `make audit-corpus`: 0 phantom, 0 truncated, 0 pad-tail)
+MAIN game-code weighted : 45150 / 45150 = 100.0% (INCLUDED in the fleet numbers above since 2026-07-22 — roadmap §1 metrics contract; build-derived sig (make sig-main) dated 2026-09-29; boundaries INDEPENDENTLY VERIFIED since P31 S77 — `make sig-main-oracle` + `make audit-corpus`: 0 phantom, 0 truncated, 0 pad-tail)
(fleet EXCLUDING main, for continuity with pre-2026-07-22 readings: 13446963 / 13446963 = 100.0%)
FLEET REAL substantive : 350533 (of which dedup-shared 251920 via 3173 groups / 262590 instances)
diff --git a/docs/progress.json b/docs/progress.json
index 13d203dba4..d794f27201 100644
--- a/docs/progress.json
+++ b/docs/progress.json
@@ -49,7 +49,7 @@
"deferred_same_address_texts": 381,
"deferred_same_address_copies": 1668,
"levers": {
- "date": "2026-09-12",
+ "date": "2026-09-29",
"what": "compiler-forcing constructs left in the C: register pins + asm statements (the classes Phase 36 drives to 0; GTE coprocessor ops and whole-body hand-asm routines excluded), with the volatile/register qualifiers censused",
"sites": 3730,
"pins": 1868,
diff --git a/docs/progress.md b/docs/progress.md
index 93b3230068..e7c849de74 100644
--- a/docs/progress.md
+++ b/docs/progress.md
@@ -18,3 +18,5 @@ REAL matches: CdQueueBusy CdReadRequest CdReadSectorReadyCB CdReadStateMachine D
NON_MATCHING:
build SHA1: 143dbb89f34491258bbc27810d0a12ec8b43a8dd (byte-identical)
+
+empties audit: 43/43 genuine jr;nop (all clean)
diff --git a/docs/story-timeline.md b/docs/story-timeline.md
index db9215241c..922cc9ca8e 100644
--- a/docs/story-timeline.md
+++ b/docs/story-timeline.md
@@ -98,6 +98,6 @@
| 2026-09-09 | 64 | | 218 | 100.0% | 100.0% | 100.0% | 100.0% | 0 | — | 30,358 | — |
| 2026-09-10 | 146 | | 218 | 100.0% | 100.0% | 100.0% | 100.0% | 0 | — | 4,603 | 414,148 |
| 2026-09-11 | 371 | P36 (v2.2.0) | 218 | 100.0% | 100.0% | 100.0% | 100.0% | 0 | — | 4,010 | 503,016 |
-| 2026-09-12 | 100 | | 218 | 100.0% | 100.0% | 100.0% | 100.0% | 0 | 789 / 2091 | 3,730 | 503,013 |
+| 2026-09-12 | 111 | | 218 | 100.0% | 100.0% | 100.0% | 100.0% | 0 | 789 / 2091 | 3,730 | 502,985 |
-78 dated rows · phase ticks from the 37 PhaseEnds · the chart: `docs/story-timeline.svg`.
+78 dated rows · phase ticks from the 38 PhaseEnds · the chart: `docs/story-timeline.svg`.
diff --git a/docs/story-timeline.svg b/docs/story-timeline.svg
index 2f0af0aafa..95e26a8b7e 100644
--- a/docs/story-timeline.svg
+++ b/docs/story-timeline.svg
@@ -63,26 +63,26 @@
75%
100%
the census (T1)
-mechanical strip — rung A/B (T4)
-the GTE header (T5)
-recipes + permuter — rungs R/D (T6)
-the guided search — rung G (S101)
-agents, one per class + the call-arity class (S102)
-agents, TU batches + regen (S103)
-agents, TU batches (S104)
-S105
-P36
-P37
+mechanical strip — rung A/B (T4)
+the GTE header (T5)
+recipes + permuter — rungs R/D (T6)
+the guided search — rung G (S101)
+agents, one per class + the call-arity class (S102)
+agents, TU batches + regen (S103)
+agents, TU batches (S104)
+agents, TU batches (S105)
+P36
+P37
09-09
-09-10
-09-11
-09-12
-
+09-10
+09-11
+09-12
+
3,730
-register pins + asm statements (the lever series, 96 increments): 53,221 → 3,730
-
+register pins + asm statements (the lever series, 97 increments): 53,221 → 3,730
+
raw pointer-cast dereferences — the one-form regex count (until the census, 2026-09-12): 414,148 → 411,850
-
-raw pointer-cast dereferences — the four-form census (2026-09-12 →; a new instrument, its own 100 %): 503,016 → 503,013
+
+raw pointer-cast dereferences — the four-form census (2026-09-12 →; a new instrument, its own 100 %): 503,016 → 502,985
generated by tools/timeline.py — keyed by date