mirror of
https://github.com/Druthulu/BFM-decomp
synced 2026-09-27 22:45:39 -04:00
phase-36: S105 (cont.) — f10 landed 4/4 plain C (three type changes), R22 218/218, census 4,026 / 0 unmarked (exit 0); METHOD step 24; checkpoint refreshed | 🛑 T7 RUNNING
This commit is contained in:
@@ -354,3 +354,20 @@
|
||||
- Two of six closed by grepping the TU for a distinctive constant and porting the lever-free sibling's spelling verbatim
|
||||
(`related.txt` had neither) — R71 first, tables second. `--try TU FN FILE` WITHOUT `--body` scores a spliced whole TU: that is
|
||||
how a prototype/signature change is tested read-only.
|
||||
24. **S105 f10 (`ov_SC06_006_jr_8017DB90`, 4 of 4 plain C, zero levers) — THREE of four were TYPE changes no statement generator reaches:**
|
||||
- A pointer whose block mixes pointer STORES with a global LOAD: raw-pointer stores are scalar varying MEMs, so `anti_dependence`
|
||||
(`sched.c:845-866`, `memrefs_conflict_p` `:614`) pins every load above every store and the boosted `lui` lands beside its
|
||||
consumer (the constant out-ranks the flags load in `qty_compare_1`); a body-local STRUCT type with `mem/s` field accesses
|
||||
(`expr.c:4873-4888`) drops the edge, the `lui` rises, the ranks flip. ~1,000 raw-pointer spellings had best 2.
|
||||
- A laundered global base `p = &SYM`: cast it to a body-local struct (`pa = (Shake *)&D_801F8A10;`) and read fields — cse never
|
||||
replaces a plain REG address (cost 1) with the symbol (cost 2, `find_best_addr` `cse.c:2622-2740`, `mips.c:1600`), so offset-0
|
||||
reads stay `lh 0(rBase)` without a launder while `(plus p 2)` folds absolute; the target's RE-READ after pointer stores is
|
||||
`note_mem_written` → `invalidate_memory` (`cse.c:1707-1715`) invalidating only `in_struct` entries.
|
||||
- `p[k]` read beside `w = *(u32 *)p` and OR-ed with a piece of `w` → `((w >> 8k) & 0xFF)`: combine's `make_extraction` (MEM
|
||||
case) folds it to the same `lbu`, the orphaned shift temp supplies the 8-byte frame — delete the pad beside it (the `src/800.c`
|
||||
siblings spell it this way; R71 across ALL of `src/`).
|
||||
- A delay-slot ALU insn built from the compare's own operands whose destination is "wrong" through the following block →
|
||||
`if (c) { d = E; goto L; }` (the difference in its own then-block becomes a global pseudo; reorg fills the slot from it); and
|
||||
d12 as a two-statement rule (`n = byte; n = tbl[n]; n -= 1;` — the one-statement form loads into a temp). `if (X - Y > 0)` is
|
||||
NOT folded to `X > Y` by gcc 2.7.2 — a probe for "the difference is computed before the branch".
|
||||
- **Ask the (g) structs question BEFORE enumerating statement orders whenever a block mixes pointer stores and a global load.**
|
||||
|
||||
@@ -62,7 +62,7 @@
|
||||
"instruction/direct": 202,
|
||||
"instruction/via-macro": 22,
|
||||
"keepalive/direct": 328,
|
||||
"launder/direct": 577,
|
||||
"launder/direct": 576,
|
||||
"launder/via-macro": 42,
|
||||
"verbatim-body/direct": 2682
|
||||
}
|
||||
@@ -115,23 +115,23 @@
|
||||
},
|
||||
"classes": {
|
||||
"A": {
|
||||
"bodies": 1332,
|
||||
"distinct_bodies": 501,
|
||||
"bodies": 1328,
|
||||
"distinct_bodies": 497,
|
||||
"file_scope": 0,
|
||||
"in_bodies": 2157,
|
||||
"in_bodies": 2152,
|
||||
"kinds": {
|
||||
"pin": 2157
|
||||
"pin": 2152
|
||||
},
|
||||
"marked": 2157,
|
||||
"sites": 2157,
|
||||
"marked": 2152,
|
||||
"sites": 2152,
|
||||
"tus": 1075,
|
||||
"unmarked": 0
|
||||
},
|
||||
"B": {
|
||||
"bodies": 4599,
|
||||
"distinct_bodies": 666,
|
||||
"bodies": 4598,
|
||||
"distinct_bodies": 665,
|
||||
"file_scope": 13,
|
||||
"in_bodies": 11171,
|
||||
"in_bodies": 11170,
|
||||
"kinds": {
|
||||
"asm-body": 13,
|
||||
"barrier": 241,
|
||||
@@ -140,11 +140,11 @@
|
||||
"gte-unsigned": 270,
|
||||
"instruction": 224,
|
||||
"keepalive": 328,
|
||||
"launder": 619,
|
||||
"launder": 618,
|
||||
"verbatim-body": 2682
|
||||
},
|
||||
"marked": 2359,
|
||||
"sites": 11184,
|
||||
"marked": 2358,
|
||||
"sites": 11183,
|
||||
"tus": 1425,
|
||||
"unmarked": 8825
|
||||
},
|
||||
@@ -250,9 +250,9 @@
|
||||
"coverage": {
|
||||
"asm": {
|
||||
"comment_dead": 6781,
|
||||
"live": 14985,
|
||||
"live": 14979,
|
||||
"macro_block": 194,
|
||||
"raw": 21960
|
||||
"raw": 21954
|
||||
},
|
||||
"attribute": {
|
||||
"comment_dead": 0,
|
||||
@@ -268,9 +268,9 @@
|
||||
},
|
||||
"register": {
|
||||
"comment_dead": 8575,
|
||||
"live": 2207,
|
||||
"live": 2202,
|
||||
"macro_block": 18,
|
||||
"raw": 10800
|
||||
"raw": 10795
|
||||
},
|
||||
"volatile": {
|
||||
"comment_dead": 2607,
|
||||
@@ -291,15 +291,15 @@
|
||||
"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": "c2455f5d3",
|
||||
"head": "ff22c1fba",
|
||||
"headers": 3181,
|
||||
"levers_AB": {
|
||||
"asm": 1875,
|
||||
"bodies": 1989,
|
||||
"distinct_bodies": 683,
|
||||
"marked": 4032,
|
||||
"pins": 2157,
|
||||
"sites": 4032,
|
||||
"asm": 1874,
|
||||
"bodies": 1985,
|
||||
"distinct_bodies": 679,
|
||||
"marked": 4026,
|
||||
"pins": 2152,
|
||||
"sites": 4026,
|
||||
"unmarked": 0,
|
||||
"what": "register pins + asm statements excluding GTE ops: the classes the phase drives to 0"
|
||||
},
|
||||
@@ -446,17 +446,17 @@
|
||||
"$17": 26,
|
||||
"$18": 26,
|
||||
"$19": 16,
|
||||
"$2": 755,
|
||||
"$2": 753,
|
||||
"$20": 7,
|
||||
"$21": 5,
|
||||
"$22": 3,
|
||||
"$23": 6,
|
||||
"$25": 1,
|
||||
"$3": 157,
|
||||
"$3": 156,
|
||||
"$4": 489,
|
||||
"$5": 370,
|
||||
"$5": 369,
|
||||
"$6": 59,
|
||||
"$7": 25,
|
||||
"$7": 24,
|
||||
"$8": 23,
|
||||
"$9": 21,
|
||||
"7": 1,
|
||||
@@ -464,29 +464,29 @@
|
||||
"a1": 2,
|
||||
"v0": 1
|
||||
},
|
||||
"sites": 2157,
|
||||
"sites": 2152,
|
||||
"sp": 0,
|
||||
"spelling": {
|
||||
"__asm__": 2136,
|
||||
"__asm__": 2131,
|
||||
"asm": 21
|
||||
},
|
||||
"volatile_qualified": 0,
|
||||
"zero": 54
|
||||
},
|
||||
"src_stamp": "2a1915c572d26c16",
|
||||
"src_stamp": "c09a5e151b9e2105",
|
||||
"tus": 4121,
|
||||
"unclassified": 0,
|
||||
"union_AD": {
|
||||
"bodies": 5755,
|
||||
"bodies": 5751,
|
||||
"by_kind": {
|
||||
"main": 124,
|
||||
"md": 105,
|
||||
"ov": 5361,
|
||||
"ov": 5357,
|
||||
"resident": 6,
|
||||
"shared": 159
|
||||
},
|
||||
"copies_in_multi": 4849,
|
||||
"distinct_bodies": 1016,
|
||||
"distinct_bodies": 1012,
|
||||
"multi_copy_classes": 110
|
||||
},
|
||||
"verbatim_excluded": {
|
||||
|
||||
@@ -1,26 +1,26 @@
|
||||
lever_census: 218 binaries · 4,121 TUs + 3,181 headers · coverage OK · unclassified 0 · verbatim excluded 13 fn / 14 sites (manifest 13)
|
||||
coverage asm raw 21960 = live 14985 + macro-block 194 + comment/dead 6781
|
||||
coverage register raw 10800 = live 2207 + macro-block 18 + comment/dead 8575
|
||||
coverage asm raw 21954 = live 14979 + macro-block 194 + comment/dead 6781
|
||||
coverage register raw 10795 = live 2202 + macro-block 18 + comment/dead 8575
|
||||
coverage volatile raw 4372 = live 1683 + macro-block 82 + comment/dead 2607
|
||||
coverage builtin raw 599 = live 445 + macro-block 0 + comment/dead 154
|
||||
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 2157 2157 0 1332 501 1075 2157 0 {'pin': 2157}
|
||||
B asm 11184 11171 13 4599 666 1425 2359 8825 {'gte': 6357, 'gte-lever': 450, 'gte-unsigned': 270, 'barrier': 241, 'launder': 619, 'instruction': 224, 'asm-body': 13, 'keepalive': 328, 'verbatim-body': 2682}
|
||||
A pins 2152 2152 0 1328 497 1075 2152 0 {'pin': 2152}
|
||||
B asm 11183 11170 13 4598 665 1425 2358 8825 {'gte': 6357, 'gte-lever': 450, 'gte-unsigned': 270, 'barrier': 241, 'launder': 618, 'instruction': 224, 'asm-body': 13, 'keepalive': 328, '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 7802 1370 6432 1100 161 2090 0 7802 {'asm-label': 7802}
|
||||
F builtin 445 445 0 428 27 302 0 445 {'builtin': 445}
|
||||
G attribute 76 1 75 1 1 40 0 76 {'attribute': 76}
|
||||
UNION A–D: 5,755 bodies · 1,016 distinct (addresses normalized) · 110 multi-copy classes holding 4,849 bodies · by kind {'ov': 5361, 'main': 124, 'shared': 159, 'md': 105, 'resident': 6}
|
||||
THE PHASE'S NUMBER (pins + asm statements, GTE excluded): 4,032 sites in 1,989 bodies (683 distinct) · marked !FAKE 4,032 · UNMARKED 0
|
||||
UNION A–D: 5,751 bodies · 1,012 distinct (addresses normalized) · 110 multi-copy classes holding 4,849 bodies · by kind {'shared': 159, 'ov': 5357, 'md': 105, 'main': 124, 'resident': 6}
|
||||
THE PHASE'S NUMBER (pins + asm statements, GTE excluded): 4,026 sites in 1,985 bodies (679 distinct) · marked !FAKE 4,026 · 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
|
||||
GTE levers (clobbers beyond the canonical macro's): 450 sites (94 via a variant macro, 356 direct) · marked 450 · UNMARKED 0 · unsigned GTE statements 270
|
||||
per-TU asm macro definitions outside the GTE header: 314 {'gte': 150, 'launder': 154, 'instruction': 9, 'barrier': 1} (GTE variants 64)
|
||||
pins: 2,157 · $0 54 · $sp 0 · with initializer 201 · volatile-qualified 0 · bare-name 6 · spellings {'__asm__': 2136, 'asm': 21}
|
||||
pins: 2,152 · $0 54 · $sp 0 · with initializer 201 · volatile-qualified 0 · bare-name 6 · spellings {'__asm__': 2131, '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': 241, 'gte/direct': 197, 'gte/via-macro': 6160, 'gte-lever/direct': 356, 'gte-lever/via-macro': 94, 'gte-unsigned/direct': 270, 'instruction/direct': 202, 'instruction/via-macro': 22, 'keepalive/direct': 328, 'launder/direct': 577, 'launder/via-macro': 42, 'verbatim-body/direct': 2682}
|
||||
asm kinds: {'asm-body/direct': 13, 'barrier/direct': 241, 'gte/direct': 197, 'gte/via-macro': 6160, 'gte-lever/direct': 356, 'gte-lever/via-macro': 94, 'gte-unsigned/direct': 270, 'instruction/direct': 202, 'instruction/via-macro': 22, 'keepalive/direct': 328, 'launder/direct': 576, 'launder/via-macro': 42, 'verbatim-body/direct': 2682}
|
||||
instruction mnemonics: {'la': 136, 'addiu': 22, 'addu': 22, 'RTP_SND': 22, '.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': 759, 'gte_stlvnl': 593, 'gte_stsxy': 448, 'gte_rtps': 439, 'gte_stflg': 415, 'gte_rtpt': 352, 'gte_SetRotMatrix': 253, 'gte_stsxy3': 236, 'gte_SetTransMatrix': 231, 'gte_rtv0tr': 229, 'gte_ldv3c': 184, 'gte_ldv3': 177, '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': 56, 'gte_stotz': 52, '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}
|
||||
|
||||
@@ -74,3 +74,4 @@ date milestone head sites_AB pins asm bodies_AB distinct_AB marked unmarked gte_
|
||||
2026-09-11 S105 f8 (5) 36be9acef 4046 2163 1883 1995 689 4046 0 450 314 1589 50 7801 445 76
|
||||
2026-09-11 S105 comment-strip regen (2) 3d6111828 4044 2163 1881 1993 687 4044 0 450 314 1589 50 7801 445 76
|
||||
2026-09-11 S105 f9 (6) c2455f5d3 4032 2157 1875 1989 683 4032 0 450 314 1589 50 7802 445 76
|
||||
2026-09-11 S105 f10 (4) ff22c1fba 4026 2152 1874 1985 679 4026 0 450 314 1589 50 7802 445 76
|
||||
|
||||
|
+3
-1
@@ -120,6 +120,7 @@ counted, not marked). E, F and G belong to the canonical type layer and are the
|
||||
| 2026-09-11 | S105 f8 (5) | 2163 | 1883 | **4046** | 1995 | 689 | 450 | 314 | 1589 | 50 | 7801 | 445 | 76 | `36be9acef` |
|
||||
| 2026-09-11 | S105 comment-strip regen (2) | 2163 | 1881 | **4044** | 1993 | 687 | 450 | 314 | 1589 | 50 | 7801 | 445 | 76 | `3d6111828` |
|
||||
| 2026-09-11 | S105 f9 (6) | 2157 | 1875 | **4032** | 1989 | 683 | 450 | 314 | 1589 | 50 | 7802 | 445 | 76 | `c2455f5d3` |
|
||||
| 2026-09-11 | S105 f10 (4) | 2152 | 1874 | **4026** | 1985 | 679 | 450 | 314 | 1589 | 50 | 7802 | 445 | 76 | `ff22c1fba` |
|
||||
|
||||
### The campaign — every batch, from the ledger (derived on every render)
|
||||
|
||||
@@ -431,7 +432,8 @@ counted, not marked). E, F and G belong to the canonical type layer and are the
|
||||
| `s105_f8` | 2026-09-11 | E | 0 | 0 | 0 | 11 | 5 |
|
||||
| `s105_comment6` | 2026-09-11 | E | 0 | 0 | 0 | 2 | 2 |
|
||||
| `s105_f9` | 2026-09-11 | E | 0 | 0 | 0 | 12 | 4 |
|
||||
| **total** | | | **17,122** | **20,778** | **283** | **30,392** | **10,757** |
|
||||
| `s105_f10` | 2026-09-11 | E | 0 | 0 | 0 | 6 | 4 |
|
||||
| **total** | | | **17,122** | **20,778** | **283** | **30,398** | **10,761** |
|
||||
|
||||
*Generated by `tools/lever_progress.py --render` from `.run/P36/census/lever_census.json` and `.run/P36/delever/ledger.jsonl`; the series lives in `docs/lever-progress.tsv` (R75: published numbers are generated, never typed).*
|
||||
|
||||
|
||||
@@ -2107,13 +2107,24 @@ accumulate here as the phase produces them.**
|
||||
4,032 pin/asm sites, 4,032 marked !FAKE, 0 UNMARKED — OK` (exit 0) → snapshot (4,044 → **4,032**). **Session: 48 of 48 drawn classes
|
||||
at 0.** New parked-by-name: func_80180A54 (signature), func_80186CE0 (carve: one record table for `D_801AFBD8..EC`).
|
||||
|
||||
## 🛑 SESSION CHECKPOINT — S105 (2026-09-11, FINAL — the session's last commit follows this): T0–T6 ☑, **T7 RUNNING at Drew's cap of ONE agent (was two)**. 4,152 → **4,032 sites** this session (−120); 9 TU batches f1–f9, **48 of 48 drawn classes at 0** (35 plain C, 3 do-while-only, 10 minimum-lever incl. 4 parked signature changes + 1 parked carve), ALL banked — **f10 (ov_SC06_006, 4 classes) IN FLIGHT**; generators **R44–R46** + R22 fixed three ways (4 free banks, 3 of them shared headers on 141 objects); R22 `check-all: 218 passed, 0 failed of 218` at `c2455f5d3` | `lever_census --check` exit 0 (4,032 marked, 0 UNMARKED, 0 orphans)
|
||||
- **S105 (cont.) — f10 landed: 4 of 4 plain C, zero levers — three of them TYPE changes; R22 218/218; 4,032 → 4,026.** f10
|
||||
(`ov_SC06_006_jr_8017DB90`, ≈325k tokens, 39 min): `func_80180AE8` 4 → 0 (a body-local struct type for the entity pointer — `mem/s`
|
||||
field stores drop sched's anti-dependence, `sched.c:845-866` / `expr.c:4873-4888`; ~1,000 raw-pointer spellings had best 2),
|
||||
`func_8017E078` 16 → 0 (`((w >> 8) & 0xFF)` for a byte read beside the word — combine's `make_extraction`; the main siblings' spelling;
|
||||
pad deleted), `func_80180FE8` 17 → 0 (a struct-typed CAST of the laundered global base; launder + `$7` pin → 0), `func_8017E734` 21 → 0
|
||||
(the byte and its table index as one variable + the difference in its own then-block). `bank_list.sh`: `IDENTICAL … KEPT` ×4
|
||||
(`d89dc0c47`…`ff22c1fba`). f11 (`ov_SC06_018`, 4 classes) launched first. METHOD step 24 — **the structs question before statement
|
||||
enumeration** (three of four closes were types: Drew's struct hypothesis proven again, now on a location overlay's entity pointer). R22
|
||||
(`.run/P36/s105/r22_j.log`) **`check-all: 218 passed, 0 failed of 218`** (82 s) → baseline at `ff22c1fba` → `lever_census --check: 4,026
|
||||
pin/asm sites, 4,026 marked !FAKE, 0 UNMARKED — OK` (exit 0) → snapshot (4,032 → **4,026**). **Session: 52 of 52 drawn classes at 0.**
|
||||
|
||||
## 🛑 SESSION CHECKPOINT — S105 (2026-09-11, FINAL — the session's last commit follows this): T0–T6 ☑, **T7 RUNNING at Drew's cap of ONE agent (was two)**. 4,152 → **4,026 sites** this session (−126); 10 TU batches f1–f10, **52 of 52 drawn classes at 0** (39 plain C, 3 do-while-only, 10 minimum-lever incl. 4 parked signature changes + 1 parked carve), ALL banked — **f11 (ov_SC06_018, 4 classes) IN FLIGHT**; generators **R44–R46** + R22 fixed three ways (4 free banks, 3 of them shared headers on 141 objects); R22 `check-all: 218 passed, 0 failed of 218` at `ff22c1fba` | `lever_census --check` exit 0 (4,026 marked, 0 UNMARKED, 0 orphans)
|
||||
|
||||
### 0. How to use this block — READ THIS FIRST
|
||||
A fresh session reads CLAUDE.md's load order, replays this block verbatim, confirms the effort (S105 ran at `/effort high` on Opus 5 1M;
|
||||
every agent on Opus) and executes §2. **Drew's cap is ONE agent at a time** (his last retune, after the S105 close: "continue here. max
|
||||
concurrent agents of 1 now"). What may be in flight when this is read: **f10** (`src/ov_SC06_006/ov_SC06_006_jr_8017DB90.c`, 4 classes —
|
||||
`BRIEF_f10.md` names them) — a dead session's agent leaves `body.c` +
|
||||
concurrent agents of 1 now"). What may be in flight when this is read: **f11** (`src/ov_SC06_018/ov_SC06_018_jr_80187AEC.c`, 4 classes —
|
||||
`BRIEF_f11.md` names them); `BRIEF_f12.md` (ov_SC07_002, 3 classes) is built and waits — a dead session's agent leaves `body.c` +
|
||||
`mechanism.md` in its packs (R67): `--try` each, bank a 0, record the rest. The session limit cut two agents mid-run and Drew had them RESUMED by SendMessage to their ids (R67 held —
|
||||
every deliverable was on disk); an agent id survives a limit cut within a session, and an agent of a DEAD session is relaunched from
|
||||
its pack. The next draws: `mkbrief.py f11 <tu>` on the 6-class TUs of `pick.py` (ov_SC06_018, ov_SC07_002, ov_SC03_090, ov_SC06_032; `src/800.c`
|
||||
@@ -2137,7 +2148,7 @@ git log --oneline -1 && git status --short | grep -v '^??' | wc -l
|
||||
- The free sweep is SPENT: every residue class has been judged by every family R2–R46 (S105 `s105_r43_*`, `s105_r44r22`, `s105_r45r46`).
|
||||
|
||||
### 2. NEXT
|
||||
1. Cap ONE: after f10 lands, `mkbrief.py f11 <next TU>` from `pick.py`'s order (the 5-class TUs:
|
||||
1. Cap ONE: after f11 lands launch f12, then `mkbrief.py f13 <next TU>` from `pick.py`'s order (the 5-class TUs:
|
||||
ov_SC03_090, ov_SC06_018, ov_SC06_032, ov_SC07_002, then the 4-class ones), skipping ARG-ONLY (`$4`–`$7`-only pins = the
|
||||
missing-parameter shape → structs phase) and the park list (S104 §2.4 + S105's four signature changes func_800385C0, func_80029D3C, func_80180FA4, func_80180A54 and
|
||||
the carve change func_80186CE0 — patches in their packs; add them to `pick.py`'s PARK set).
|
||||
|
||||
Reference in New Issue
Block a user