mirror of
https://github.com/Druthulu/BFM-decomp
synced 2026-09-29 23:24:32 -04:00
63d029b563
- ROOT CAUSE (reproduced): make_base_c ran cpp_expand_macros BEFORE #include lines were dropped, so `cpp -P -nostdinc -` died on `#include "common.h"` (rc=1, empty stdout) and the `return c` fallback handed back the UNEXPANDED draft. hide_asm then ate the gte_* #define block + the function itself -> "Function not found in base.c" -> decomp-permuter no-opped in 0s, indistinguishable at the call site from "searched, found nothing". - FIX: strip #include inside cpp_expand_macros (byte-neutral) + RAISE on cpp failure (R32/R35, no silent fallback); NEW defines_fn() assertion in setup() guards the OUTPUT so it catches every swallow cause (this, the §G comment class, future macro shapes); main() catches per-fn so a bad draft is loud+counted but cannot abort a batch. - VERIFIED: func_8017C6F4 base.c keeps the def, 0 gte_ macros left, 35 asm b64-carriers; proxy validated over 388 stored drafts = 0 false alarms, 0 cpp raises (macro-free untouched); permuter now loads at base score 65 and iterates (was a 0s no-op). - BLAST RADIUS (14,899 drafts scanned): 63 carry `#define … __asm__` + `#include`, incl. the behemoth renderer drafts — the permuter was silently dead on the highest-byte-weight targets. - CONSEQUENCE (R14): §147/§148's ~40-probe floors were measured with the permuter UNAVAILABLE; "the permuter also plateaus" was never actually tested on those functions. §148 note corrected.