fix+docs: make every consumer aware of main's new TU layout (R36)

The split created two new TUs and a shared header; four consumers still described main's
game code as one file:

* tools/reconcile_slate.py — HARDCODED open('src/800.c'), so after the split it saw a
  THIRD of main's typedefs while reporting success (silently-narrowed scope, R32).
  Measured: 133 visible before the fix, 187 after, 0 lost. Now globs
  corpus.src_files('main') + src/800_shared.h, so a future split is already handled.
* docs/wave-playbook.md 1c — still said spans B/C/D were NOT drawable and that drawing
  one is an R45 violation. That is now false and would have STOPPED a future session
  from drawing the very targets this work unlocked.
* cookbook §426 — its 'the remaining spans need src/800.c split' paragraph now records
  that it was done the same session, and points at §431 for the method.
* config/dedup.us.yaml + src/shared/clearTbl40.h — both said dedup group I0 is
  instantiated 'at both sites in src/800.c'; both sites are above 0x80035270 and are now
  in src/800_c.c.

Byte-neutral: dedup.us.yaml parses, gate_main --assert-baseline BYTE-IDENTICAL.
SETUP.md gains a row describing the layout and the rule it implies: never hardcode
src/800.c, glob corpus.src_files('main').
This commit is contained in:
Drew T
2026-09-02 13:48:00 -06:00
parent 430f40576a
commit 8e8521da22
9 changed files with 44 additions and 26 deletions
+1 -1
View File
@@ -1,6 +1,6 @@
/* src/shared/clearTbl40.h — shared body for the byte-identical pair func_80037004 / func_80037334
* (Phase 11 dedup proof, group I0). The body is authored ONCE here as a macro and instantiated at
* each member site in src/800.c, so the same bytes land at both vrams (0x80037004 + 0x80037334).
* each member site in src/800_c.c (both vrams are above the P31 S72 TU split at 0x80035270), so the same bytes land at both vrams (0x80037004 + 0x80037334).
* Registered in config/dedup.us.yaml; byte-honesty validated by tools/dedup_integrate.py.
*
* Clears 5 bytes of a table: D_80076251[i] = 0 for i = 0x40,0x30,0x20,0x10,0x00 (down-counting). */