Commit Graph

1770 Commits

Author SHA1 Message Date
Drew T 8a5760450a feat(decomp): main lane m15 — 16 banked
One clean whole-EXE rebuild verified the batch (gate_main), and main re-checked
BYTE-IDENTICAL against config/check.us.sha before anything was credited.

  FGO_05_OBJ_64
  SYS_OBJ_1FF4
  VM_NOWON_OBJ_1C0
  func_800123F0
  func_8001404C
  func_80016ED4
  func_8001739C
  func_800178C8
  func_8001BFF8
  func_80028FDC
  func_8002A748
  func_80038308
  func_80041400
  func_8005D538
  func_8005E3AC
  func_8005EA34
2026-08-25 03:18:47 -06:00
Drew T 10dadb6c1c feat(decomp): ox wave ci overlays — 34 banked
Committed before the main batch: gate_main reverts on failure and would take these with it.
2026-08-25 02:54:38 -06:00
Drew T 5dc373deaf feat(decomp): main lane m14 — 31 banked
One clean whole-EXE rebuild verified the batch (gate_main), and main re-checked
BYTE-IDENTICAL against config/check.us.sha before anything was credited.

  func_800126C4
  func_80013E94
  func_80014070
  func_800141AC
  func_80014998
  func_80014CAC
  func_8001544C
  func_80015954
  func_800174DC
  func_80017714
  func_8001820C
  func_80018E78
  func_80018F88
  func_80018FC8
  func_80019064
  func_8001AE90
  func_8001C9D0
  func_8001CFB8
  func_8001D0F4
  func_80029020
  func_80029A58
  func_80029AAC
  func_80029E94
  func_8002A76C
  func_8002CFE4
  func_8002D858
  func_8002E5F8
  func_8002EE64
  func_800361CC
  func_800374CC
  func_80038908
2026-08-25 02:40:04 -06:00
Drew T 9f228db2fc feat(decomp): free A-prop sibling lane (maintenance pass) — zero model tokens 2026-08-25 02:36:42 -06:00
Drew T 82b4cd5b55 feat(decomp): ox wave ch overlays — 88 banked
Committed before the main batch: gate_main reverts on failure and would take these with it.
2026-08-25 02:36:04 -06:00
Drew T ec8ade5692 feat(decomp): -O0 U3 — 48 banked across the x3 carve group, zero model tokens
The 16-fn -O0 cluster (0x8013B568..0x8013C964), remapped from the ov_SC01_077 exemplars
(16/16 matched there) into all three freshly carved -O0 objects:

  ov_SC02_037  16/16      ov_MAIN_012  16/16      ov_SC03_107  16/16

All three BYTE-IDENTICAL against config/check.<ov>.sha after the batch, and corpus.stubs
reports zero of the 16 addresses still open in any of them. 48 functions for zero model
tokens — the entire cost was a partitioning fix.

R14 NOTE ON THE INSTRUMENT: sweep_parallel summarised "banked=44 notbanked=4" while the
byte gate and corpus.stubs both say 48/48. The bytes win; its counter undercounts (drafts
banked in a later chunk after a bisect appear not to be credited). Worth a look before that
number is ever quoted as a rate.

Three drafts per overlay came with a gather_externs warning — a sibling callee with no
file-scope decl in ov077 (func_8013B83C, func_8013BD74). They banked anyway: C89 implicit
declaration covers a same-TU sibling whose stub sits in the same object. The gate decided,
not the warning.

With U2's 4, this closes the -O0 U2/U3 thread: 52 functions / ~6,730 instructions banked
tonight from the stranded -O0 population without drafting a line.
2026-08-25 02:19:38 -06:00
Drew T c03cd6f3a2 feat(config): -O0 U3 step 1 — carve the 16-fn cluster out of jr_801380E0 in the x3 group
ov_SC02_037, ov_MAIN_012 and ov_SC03_107 never received the P30 _o0c carve, so the 16-fn
-O0 cluster at 0x8013B568..0x8013C98C sat inside their -O2 `jr_801380E0` object. Opt level
is a property of the FILE (§116), so every remap into it was correctly rejected by the gate
— 16 functions x 3 overlays unreachable for a partitioning reason, not a matching one.

o0_subsplit at [0x8013B568, 0x8013C98C) per overlay. All three BYTE-IDENTICAL after
`make extract && make build`, which is the whole claim of a carve — it moves nothing:

  ov_SC02_037  b0c5394ae23cd5f0cbb32687f61bca669151bf5f
  ov_MAIN_012  d6b3e8b971cdd6c53aea8c4f265afb82b363283c
  ov_SC03_107  87d02b578a27a947f1da381255a1faa3f05cedfd

A LOCKING RULE THIS EARNED. ov_MAIN_012's dry run planned 5 regions around an "-O2 island"
at func_8013C0F8 [def]; the real run planned 3, and the function is an INCLUDE_ASM stub in
both HEAD and the carved tree — nothing was lost. The dry run had read a MID-GATE
SUBSTITUTION: a lane had a candidate body in that TU, the gate rejected it, and the stub
came back. o0_subsplit derives its plan from which functions are matched, so a plan derived
outside the per-binary lock can be a plan about a tree state that never existed. Derive the
plan INSIDE `.run/auto/gate.<bin>.lock`, carve under the same lock — which is what the real
runs did, and why they saw the truth.

Next: populate the 3x16 from the ov_SC01_077 exemplars (16/16 matched there), then gate.
2026-08-25 02:14:34 -06:00
Drew T bd45f1f232 feat(decomp): main lane m13 — 34 banked
One clean whole-EXE rebuild verified the batch (gate_main), and main re-checked
BYTE-IDENTICAL against config/check.us.sha before anything was credited.

  GsTMDfastG3GNL
  func_80012558
  func_800140B8
  func_80014C54
  func_80015A74
  func_80017F14
  func_80018384
  func_800183E0
  func_800191D4
  func_8001931C
  func_80019930
  func_8001BB60
  func_8001CB6C
  func_8001CF48
  func_8001D16C
  func_8001D388
  func_800243EC
  func_80028620
  func_80029124
  func_800298BC
  func_80029FE4
  func_8002AA3C
  func_8002CC4C
  func_8002D320
  func_8002D678
  func_8002E8DC
  func_8002F5C8
  func_80030470
  func_800304C8
  func_80033324
  func_80034B3C
  func_80036FB0
  func_800623A4
  gfx2D_BG0_OBJ_4D8
2026-08-25 02:08:23 -06:00
Drew T 2de4ef722a feat(decomp): -O0 U2 — the 4 SC07 whale members bank, 4/4, zero model tokens
rollout_o0 hardcoded `<ov>_o0b.c` as the whale object and listed SC07_006/007/010/011 as
OUT-OF-SCOPE. They were never out of scope structurally — the suffix letter just drifts:
_o0b across the fleet, _o0c in SC07_010, _o0d in SC07_006/007/011. The invariant that
actually identifies the object is that it ENDS at the whale and therefore includes
shared/func_80144B9C.h.

whale_file_of() resolves on that content, and refuses (never guesses) when two -O0 files in
one overlay match, or none do.

NEGATIVE CONTROL (R39) over the already-succeeding population: across all 134 overlays that
bank through the legacy `_o0b.c` path, content resolution returns EXACTLY that file — 134
agree, 0 disagree. The four SC07 overlays resolve to their _o0c/_o0d objects, and overlays
with no -O0 object at all (ov_MAIN_012, ov_SC02_037, ov_SC03_107 — the U3 carve group) are
still refused with `no-o0b`.

Result: func_801457A4 BANKED in all four, each proven by `make build BINARY=<ov>` matching
config/check.<ov>.sha. 4 functions / 316 instructions, no splat change, no drafting.

Also: build_ok() now takes `.run/auto/gate.<bin>.lock`, the same per-binary lock the gater,
sweep_parallel and the maintenance sweep take. This driver was written to be run by hand
between waves; with six lanes live, two processes in one build/<ov> tree would produce a
verdict about neither.
2026-08-25 02:06:20 -06:00
Drew T 4b7ebe7954 feat(decomp): ox wave cg overlays — 36 banked
Committed before the main batch: gate_main reverts on failure and would take these with it.
2026-08-25 01:50:53 -06:00
Drew T 6fe90cd9ba feat(decomp): main lane m12 — 7 banked
One clean whole-EXE rebuild verified the batch (gate_main), and main re-checked
BYTE-IDENTICAL against config/check.us.sha before anything was credited.

  GsTMDfastF3GNL
  GsTMDfastG4GNL
  SetSXSYfifo
  VM_NO1_OBJ_184
  func_8002F150
  func_80053AD8
  func_800626F0
2026-08-25 01:39:08 -06:00
Drew T 829361dd7b feat(decomp): ox wave cf overlays — 50 banked
Committed before the main batch: gate_main reverts on failure and would take these with it.
2026-08-25 01:09:05 -06:00
Drew T 5e2c15b454 feat(decomp): main lane m11b — 19 banked
One clean whole-EXE rebuild verified the batch (gate_main), and main re-checked
BYTE-IDENTICAL against config/check.us.sha before anything was credited.

  GS_001_OBJ_5D0
  GsInitGraph2
  GsTMDfastF4GNL
  Square0
  func_800168C4
  func_80018194
  func_8001A9F8
  func_8001CA88
  func_8001F97C
  func_8001FB8C
  func_800296F8
  func_80029D3C
  func_8002E79C
  func_8002EDE4
  func_8002F1CC
  func_80036F18
  func_8003775C
  func_800385C0
  func_80062644
2026-08-25 00:59:27 -06:00
Drew T 89373beb95 feat(decomp): main lane m11ab — 10 banked
One clean whole-EXE rebuild verified the batch (gate_main), and main re-checked
BYTE-IDENTICAL against config/check.us.sha before anything was credited.

  FGO_06_OBJ_64
  LightColor
  OuterProduct0
  VM_NO1_OBJ_1F4
  VM_NO1_OBJ_264
  VM_NO1_OBJ_28C
  VM_NO1_OBJ_4A4
  func_80010AE0
  func_800144D4
  start
2026-08-25 00:55:56 -06:00
Drew T 80800911fd feat(decomp): main lane m11aab — 3 banked
One clean whole-EXE rebuild verified the batch (gate_main), and main re-checked
BYTE-IDENTICAL against config/check.us.sha before anything was credited.

  SYS_OBJ_2DD8
  _clr
  func_8005EA68
2026-08-25 00:55:41 -06:00
Drew T 1525ed87f6 feat(decomp): main lane m11aaaa — 1 banked
One clean whole-EXE rebuild verified the batch (gate_main), and main re-checked
BYTE-IDENTICAL against config/check.us.sha before anything was credited.

  func_80027058
2026-08-25 00:52:46 -06:00
Drew T 5bd66c7b5b feat(decomp): free A-prop sibling lane (maintenance pass) — zero model tokens 2026-08-25 00:32:56 -06:00
Drew T 845df54ca1 feat(decomp): main lane m10b — 19 banked
One clean whole-EXE rebuild verified the batch (gate_main), and main re-checked
BYTE-IDENTICAL against config/check.us.sha before anything was credited.

  AverageZ3
  DpqColor3
  InvSquareRoot
  MatrixNormal
  OuterProduct12
  Square12
  VM_NOWON_OBJ_2A0
  VM_NOWON_OBJ_44C
  VectorNormalSS
  func_80013478
  func_8001C044
  func_80047EC8
  func_80049440
  func_80062434
  func_8006252C
  func_800625DC
  gfx2D_BG0_OBJ_658
  gfx2D_BG0_OBJ_698
  gfx2D_BG1_OBJ_648
2026-08-25 00:18:52 -06:00
Drew T 86c6d04092 feat(decomp): main lane m10ab — 10 banked
One clean whole-EXE rebuild verified the batch (gate_main), and main re-checked
BYTE-IDENTICAL against config/check.us.sha before anything was credited.

  SYS_OBJ_11C
  SYS_OBJ_19A4
  SYS_OBJ_222C
  SYS_OBJ_2CC4
  SYS_OBJ_640
  SetDrawOffset
  VM_NOWON_OBJ_230
  VM_NOWON_OBJ_2C8
  func_80028488
  func_80041354
2026-08-25 00:15:40 -06:00
Drew T a3e1430551 feat(decomp): main lane m10aabb — 2 banked
One clean whole-EXE rebuild verified the batch (gate_main), and main re-checked
BYTE-IDENTICAL against config/check.us.sha before anything was credited.

  func_8002EB10
  func_8005EA88
2026-08-25 00:15:26 -06:00
Drew T 2a95f6e0f1 feat(decomp): ox wave ce overlays — 40 banked
Committed before the main batch: gate_main reverts on failure and would take these with it.
2026-08-25 00:14:57 -06:00
Drew T c1637b2ddc feat(decomp): main lane m10aaa — 1 banked
One clean whole-EXE rebuild verified the batch (gate_main), and main re-checked
BYTE-IDENTICAL against config/check.us.sha before anything was credited.

  func_800525DC
2026-08-25 00:13:22 -06:00
Drew T 656aa4f514 feat(decomp): main lane m09b — 16 banked
One clean whole-EXE rebuild verified the batch (gate_main), and main re-checked
BYTE-IDENTICAL against config/check.us.sha before anything was credited.

  SYS_OBJ_16C
  SYS_OBJ_1A70
  SYS_OBJ_FD8
  SetPriority
  SetRGBfifo
  SetRii
  SquareRoot12
  func_80010BB4
  func_80028304
  func_8002EA10
  func_80047D3C
  func_8005AB00
  func_8005B75C
  gfx2D_BG0_OBJ_1B4
  gfx2D_BG0_OBJ_4A0
  gteMIMefunc
2026-08-24 23:39:41 -06:00
Drew T ba2833739a feat(decomp): ox wave cc overlays — 18 banked
Committed before the main batch: gate_main reverts on failure and would take these with it.
2026-08-24 23:36:29 -06:00
Drew T 12f7af65cf feat(decomp): main lane m09abb — 5 banked
One clean whole-EXE rebuild verified the batch (gate_main), and main re-checked
BYTE-IDENTICAL against config/check.us.sha before anything was credited.

  DrawSyncCallback
  SetSZfifo3
  _drs
  func_80059888
  func_80059D68
2026-08-24 23:33:39 -06:00
Drew T b8e3451e2f feat(decomp): main lane m09abab — 2 banked
One clean whole-EXE rebuild verified the batch (gate_main), and main re-checked
BYTE-IDENTICAL against config/check.us.sha before anything was credited.

  func_8002E818
  func_8005EAA8
2026-08-24 23:33:25 -06:00
Drew T 0f5c76da81 feat(decomp): main lane m09aa — 4 banked
One clean whole-EXE rebuild verified the batch (gate_main), and main re-checked
BYTE-IDENTICAL against config/check.us.sha before anything was credited.

  func_80011DA0
  func_80011E84
  func_800273F4
  func_8002D4C8
2026-08-24 23:30:32 -06:00
Drew T 2c61a5e051 feat(decomp): A-prop S59 TU-retype pass — 14 banked of 30, zero model tokens
tools/fix_tu_ret_decls.py: sweep-1's dominant residual (32 fresh near-0 rejects
— byte-correct bodies, TU-refused) is the RETURN-TYPE half of the stale-decl
wall: the TU forward-declares 'extern void f(void);' while the byte-true
definition returns s32; the gate's arity pre-pass relaxes the PARENS but not
the return. Retyping the TU's own decls to 'extern s32 f();' (byte-neutral:
every declared-void caller ignores $v0 — fix_header_decl's proven argument,
TU-scoped) banked 14 byte-identical, journaled edits kept only where the gate
paid. 12 SKIPs are void-returning defs (a different conflict, suspected
freshly-spliced (void) preambles), 4 retyped-but-refused.
2026-08-24 23:15:25 -06:00
Drew T 2364da4afd fix(decomp): ov_SC07_010 baseline back to green — one stale (void) decl no-proto'd
The S59 scoped R22 sweep (96 binaries whose TUs instantiate the DEFINE macros
my engine_core edit touched) found ov_SC07_010 RED at HEAD: the 14:57
maintenance commit (commit:2694) banked func_8017F2BC's (s16*) definition into a
TU that still carries an earlier draft-preamble decl 'extern void
func_8017F2BC(void);' at line 4932 — conflicting types, TU uncompilable, though
the TU is byte-identical to its committed state (how that pass reported green
is an open question for the lane's arity/splice ordering). Provenance checked:
my commits touch only func_80162CCC decls; the pinned cc1 accepts the
no-proto+definition pair in isolation. Fix: the arity pass's own byte-neutral
no-proto form; whole-binary SHA re-checked green. ov_SC07_002 remains RED on a
jtbl_rodata_pads carve drift (also pre-existing, also from earlier passes) —
named in docs/tool-designs/aprop-lane-s59.md, not papered over.
2026-08-24 23:03:34 -06:00
Drew T 488e009bd1 feat(decomp): ox wave cd overlays — 18 banked
Committed before the main batch: gate_main reverts on failure and would take these with it.
2026-08-24 23:00:38 -06:00
Drew T 88da1eb03b feat(decomp): A-prop lane S59 sweep 2 — 12 banked of 33 recovered drafts, zero model tokens
Two new recovery mechanisms, both byte-proven this sweep:
  6/7  rtu-second-chance: standalone COMPILE-FAILs re-judged in their REAL TU
       (rtu_match) — 6 banked whole-binary; the standalone verdict was the
       wrong oracle for a TU-destined draft
  6/15 reloc UNRESOLVED/shape-MATCH: identity unverifiable locally, but the
       whole-binary gate is the arbiter — staging them is free banks
Not banked: 5 MISMATCH?-advisory, 4 reloc-repaired (symbols now right, bytes
still differ), 2 old K&R conversions, 9 UNRESOLVED, 1 rtu (all reverted by the
gate; drafts retained in backlog).
2026-08-24 22:52:27 -06:00
Drew T 5a80e15f91 chore(decomp): commit in-tree banked work before the next gate
Uncommitted src/ changes found at gate entry. These are banked functions from a lane that gates with commit=False, not residue — preserved, not reverted. Top-level src/*.c (main TUs) are excluded by construction (S59).
2026-08-24 22:51:46 -06:00
Drew T 65ef0ebae6 feat(decomp): main lane m08 — 19 banked
One clean whole-EXE rebuild verified the batch (gate_main), and main re-checked
BYTE-IDENTICAL against config/check.us.sha before anything was credited.

  AverageZ4
  SYS_OBJ_1D84
  SetSZfifo4
  SetVertexTri
  VM_NOWON_OBJ_3D4
  func_80011DCC
  func_8001282C
  func_80018450
  func_80018E9C
  func_8001BDA0
  func_8002109C
  func_800234E4
  func_800249F0
  func_80026128
  func_8002D29C
  func_80047E58
  func_800594CC
  func_800596F4
  func_8005ACF0
2026-08-24 22:51:16 -06:00
Drew T cbce26e272 feat(decomp): A-prop lane S59 sweep 1 — 38 banked of 80 staged, zero model tokens
The population that banked 0/117 on three consecutive passes banks 38/80 with
the S59 fixes, attributed against the 21:04 baseline classes:
  29  the closeness-2 ordinal cluster (value/offset swap -> candidate pairing
      adjudicated by match_one at draft time)
   4  the near-0 TU-integration class (K&R definitions + the arity pre-pass;
      func_80162CCC x3 overlays among them — 42 engine_core.h caller decls
      kept no-proto for the banked set, byte-neutral for empty calls)
   5  drafts the old pipeline refused or mis-staged
Every bank is whole-binary SHA-verified by gate_stage/harvest_verify (G3/P9).
2026-08-24 22:42:53 -06:00
Drew T 89b4064c10 feat(decomp): ox wave cb overlays — 12 banked
Committed before the main batch: gate_main reverts on failure and would take these with it.
2026-08-24 22:30:24 -06:00
Drew T 60e161cc6e feat(decomp): main lane m07bb — 10 banked
One clean whole-EXE rebuild verified the batch (gate_main), and main re-checked
BYTE-IDENTICAL against config/check.us.sha before anything was credited.

  ClearImage2
  GsSortBg
  SYS_OBJ_1578
  SYS_OBJ_1790
  SetGraphReverse
  func_800167F0
  func_8005C1C0
  func_8005D8A0
  func_8005E804
  func_8005EA54
2026-08-24 22:12:02 -06:00
Drew T 144c7c1b0a feat(decomp): main lane m07bab — 4 banked
One clean whole-EXE rebuild verified the batch (gate_main), and main re-checked
BYTE-IDENTICAL against config/check.us.sha before anything was credited.

  StartRCnt
  func_800145EC
  func_8005E79C
  func_8005EAC8
2026-08-24 22:11:48 -06:00
Drew T d63214844e feat(decomp): main lane m07ab — 4 banked
One clean whole-EXE rebuild verified the batch (gate_main), and main re-checked
BYTE-IDENTICAL against config/check.us.sha before anything was credited.

  VectorNormal
  func_80018714
  func_8001A0FC
  func_80029240
2026-08-24 22:09:14 -06:00
Drew T 78d11e65d6 feat(decomp): main lane m07aaa — 3 banked
One clean whole-EXE rebuild verified the batch (gate_main), and main re-checked
BYTE-IDENTICAL against config/check.us.sha before anything was credited.

  SYS_OBJ_19D8
  func_8001751C
  func_8005B684
2026-08-24 22:05:27 -06:00
Drew T 8b2a1e5f1f feat(decomp): ox wave ca overlays — 42 banked
Committed before the main batch: gate_main reverts on failure and would take these with it.
2026-08-24 21:40:22 -06:00
Drew T b0236a091c feat(decomp): main lane m06bb — 8 banked
One clean whole-EXE rebuild verified the batch (gate_main), and main re-checked
BYTE-IDENTICAL against config/check.us.sha before anything was credited.

  GetRCnt
  StopRCnt
  func_8005BED8
  func_8005D6A0
  func_8005D980
  func_8005E9D4
  func_8005F228
  func_8005F728
2026-08-24 21:11:53 -06:00
Drew T b63d46a688 feat(decomp): main lane m06ab — 7 banked
One clean whole-EXE rebuild verified the batch (gate_main), and main re-checked
BYTE-IDENTICAL against config/check.us.sha before anything was credited.

  func_80014094
  func_8001599C
  func_80015A2C
  func_80016A7C
  func_80017758
  func_8001BFD0
  func_8002AED0
2026-08-24 21:07:17 -06:00
Drew T 71fc425afa feat(decomp): main lane m06aaba — 2 banked
One clean whole-EXE rebuild verified the batch (gate_main), and main re-checked
BYTE-IDENTICAL against config/check.us.sha before anything was credited.

  func_80015978
  func_800290E0
2026-08-24 21:04:14 -06:00
Drew T c8102cd95d feat(decomp): main lane m06aaa — 4 banked
One clean whole-EXE rebuild verified the batch (gate_main), and main re-checked
BYTE-IDENTICAL against config/check.us.sha before anything was credited.

  SYS_OBJ_11C0
  SYS_OBJ_210
  func_80016224
  func_8005C29C
2026-08-24 21:03:40 -06:00
Drew T 826d5dfe1c feat(decomp): ox wave bz overlays — 21 banked
Committed before the main batch: gate_main reverts on failure and would take these with it.
2026-08-24 20:44:52 -06:00
Drew T 15e0020d8c feat(decomp): free A-prop sibling lane (maintenance pass) — zero model tokens 2026-08-24 20:41:28 -06:00
Drew T 626ba89e71 chore(decomp): commit in-tree banked work before the next gate
Uncommitted src/ changes found at gate entry. These are banked functions from a lane that gates with commit=False, not residue — preserved, not reverted. Top-level src/*.c (main TUs) are excluded by construction (S59).
2026-08-24 20:31:48 -06:00
Drew T 0077cb484a feat(decomp): main lane m05b — 16 banked
One clean whole-EXE rebuild verified the batch (gate_main), and main re-checked
BYTE-IDENTICAL against config/check.us.sha before anything was credited.

  GetODE
  SYS_OBJ_1AA4
  SYS_OBJ_604
  SYS_OBJ_F00
  SYS_OBJ_F24
  _getctl
  _status
  func_80018C64
  func_8001C0C8
  func_80037FC4
  func_8005ADB8
  func_8005B710
  func_8005D4B8
  func_8005E1A4
  func_8005EAE8
  func_8005F6CC
2026-08-24 20:13:28 -06:00
Drew T 7360ec951c feat(decomp): ox wave by overlays — 23 banked
Committed before the main batch: gate_main reverts on failure and would take these with it.
2026-08-24 20:10:33 -06:00
Drew T c5784ae0b2 feat(decomp): main lane m05abb — 3 banked
One clean whole-EXE rebuild verified the batch (gate_main), and main re-checked
BYTE-IDENTICAL against config/check.us.sha before anything was credited.

  _cwb
  _dws
  func_8005A600
2026-08-24 20:10:18 -06:00