Drew T
9b93c254c2
feat(phase-26): func_8015AE2C (562 ins, x134) banked — Fable5 MATCH + 3 isolation bugs fixed
...
Exemplar banked byte-identical (d19c9580); R22 clean-fleet 136/136.
Fable5 crack: MATCH 562/562, pin-free, jump table verified.
THREE REAL BUGS the bank exposed in jr_isolate_all (each byte-proven; each would have
silently corrupted every future heavy-core bank):
1. --only filtered `banked` as well as the cut set, so already-banked jr went untracked
and their carves were never followed. --only selects what to CUT; it must not erase
the record of what is already banked.
2. carve ownership was read from splat .s — but splat emits NO .s for a MATCHED function
(its .c holds real C), so the lookup found nothing. Now resolved from the extracted
IMAGE via family_remap.reloc_targets (byte-exact: func_801734BC -> 0x801d8c68 etc).
3. THE STRUCTURAL ONE: a region may host at most ONE .rodata carve, because an object's
.rodata is a single CONTIGUOUS section. Cutting at func_8015AE2C (jtbl 0x801D8B54)
left the banked func_801734BC (jtbl 0x801D8C68) inside the same region, so the object
emitted a 0x34 .rodata spanning BOTH tables (image +33 B). Every already-banked jr in
a cut object is now cut too -> exactly one carve per object. Cookbook 8b's "bank
same-subseg families ASCENDING" note warned about this; it is now enforced by
construction instead of left to discipline.
Also required (per the crack's own analysis, all byte-verified):
- engine_core.h: DEFINE_func_8015BEC4's zero-arg thunk returns func_8015AE2C(), so the
extern must drop its (void) prototype and the def must stay K&R/unprototyped.
Byte-neutral across all 136 (R22 green).
- recovery chain: cast_call_sites (27 callees) + reconcile_decls (3 data syms). The raw
body declares callees with types that conflict with their real engine_core.h defs; the
original never redeclares them, it CASTS at the call site (cookbook 20).
Layout now exact: .rodata 0x801d8b54/0x1c (7 entries, pad trimmed) + 0x801d8c68/0x14 +
0x801d92a0/0x20 — one table per object, each at its true address.
2026-07-13 18:26:32 -06:00
..
2026-06-16 19:02:14 -06:00
2026-06-16 19:02:14 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 16:44:01 -06:00
2026-06-16 16:44:01 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 15:39:52 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:02:14 -06:00
2026-06-16 19:02:14 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 16:44:01 -06:00
2026-06-16 19:02:14 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:02:14 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:02:14 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:02:14 -06:00
2026-06-16 19:02:14 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:02:14 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:02:14 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:02:14 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-15 22:50:55 -06:00
2026-06-14 12:05:38 -06:00
2026-07-07 23:39:27 -06:00
2026-07-13 18:26:32 -06:00
2026-07-12 21:51:27 -06:00
2026-07-12 21:51:27 -06:00
2026-07-12 21:51:27 -06:00
2026-07-12 21:51:27 -06:00
2026-07-12 21:51:27 -06:00
2026-07-12 21:51:27 -06:00
2026-07-12 21:51:27 -06:00
2026-07-12 21:51:27 -06:00
2026-07-13 18:26:32 -06:00
2026-07-12 21:51:27 -06:00
2026-07-12 21:51:27 -06:00
2026-07-13 14:43:36 -06:00
2026-07-13 14:43:36 -06:00
2026-07-12 21:51:27 -06:00
2026-07-12 21:51:27 -06:00
2026-07-12 21:51:27 -06:00
2026-07-12 21:51:27 -06:00
2026-07-12 21:51:27 -06:00
2026-07-12 21:51:27 -06:00
2026-07-12 21:51:27 -06:00
2026-07-12 21:51:27 -06:00
2026-07-12 21:51:27 -06:00
2026-07-12 21:51:27 -06:00
2026-07-12 21:51:27 -06:00
2026-07-12 21:51:27 -06:00
2026-07-12 21:51:27 -06:00
2026-07-12 21:51:27 -06:00
2026-07-12 21:51:27 -06:00
2026-07-12 21:51:27 -06:00
2026-07-12 21:51:27 -06:00
2026-07-12 21:51:27 -06:00
2026-07-12 21:51:27 -06:00
2026-07-12 21:51:27 -06:00
2026-07-12 21:51:27 -06:00
2026-07-12 21:51:27 -06:00
2026-07-12 21:51:27 -06:00
2026-07-12 21:51:27 -06:00
2026-07-12 21:51:27 -06:00
2026-07-12 21:51:27 -06:00
2026-07-12 21:51:27 -06:00
2026-07-12 21:51:27 -06:00
2026-07-12 21:51:27 -06:00
2026-07-12 21:51:27 -06:00
2026-07-12 21:51:27 -06:00
2026-07-12 21:51:27 -06:00
2026-07-12 21:51:27 -06:00
2026-07-12 21:51:27 -06:00
2026-07-12 21:51:27 -06:00
2026-07-12 21:51:27 -06:00
2026-07-12 21:51:27 -06:00
2026-07-12 21:51:27 -06:00
2026-07-12 21:51:27 -06:00
2026-07-12 21:51:27 -06:00
2026-07-12 21:51:27 -06:00
2026-07-12 21:51:27 -06:00
2026-07-12 21:51:27 -06:00
2026-07-12 21:51:27 -06:00
2026-07-12 21:51:27 -06:00
2026-07-12 21:51:27 -06:00
2026-07-12 21:51:27 -06:00
2026-07-12 21:51:27 -06:00
2026-07-12 21:51:27 -06:00
2026-07-12 21:51:27 -06:00
2026-07-12 21:51:27 -06:00
2026-07-12 21:51:27 -06:00
2026-07-12 21:51:27 -06:00
2026-07-12 21:51:27 -06:00
2026-07-12 21:51:27 -06:00
2026-07-12 21:51:27 -06:00
2026-07-12 21:51:27 -06:00
2026-07-12 21:51:27 -06:00
2026-07-12 21:51:27 -06:00
2026-07-12 21:51:27 -06:00
2026-07-12 21:51:27 -06:00
2026-07-12 21:51:27 -06:00
2026-07-12 21:51:27 -06:00
2026-07-12 21:51:27 -06:00
2026-07-12 21:51:27 -06:00
2026-07-12 21:51:27 -06:00
2026-07-12 21:51:27 -06:00
2026-07-12 21:51:27 -06:00
2026-07-12 21:51:27 -06:00
2026-07-12 21:51:27 -06:00
2026-07-12 21:51:27 -06:00
2026-07-12 21:51:27 -06:00
2026-07-12 21:51:27 -06:00
2026-07-12 21:51:27 -06:00
2026-07-12 21:51:27 -06:00
2026-07-12 21:51:27 -06:00
2026-07-12 21:51:27 -06:00
2026-07-12 21:51:27 -06:00
2026-07-12 21:51:27 -06:00
2026-07-12 21:51:27 -06:00
2026-07-12 21:51:27 -06:00
2026-07-12 21:51:27 -06:00
2026-07-12 21:51:27 -06:00
2026-07-12 21:51:27 -06:00
2026-07-12 21:51:27 -06:00
2026-07-12 21:51:27 -06:00
2026-07-12 21:51:27 -06:00
2026-07-12 21:51:27 -06:00
2026-07-12 21:51:27 -06:00
2026-07-12 21:51:27 -06:00
2026-07-12 21:51:27 -06:00
2026-07-12 21:51:27 -06:00
2026-07-12 21:51:27 -06:00
2026-07-12 21:51:27 -06:00
2026-07-12 21:51:27 -06:00
2026-07-12 21:51:27 -06:00
2026-07-12 21:51:27 -06:00
2026-07-12 21:51:27 -06:00
2026-07-12 21:51:27 -06:00
2026-07-12 21:51:27 -06:00
2026-07-12 21:51:27 -06:00
2026-07-12 21:51:27 -06:00
2026-07-12 21:51:27 -06:00
2026-07-12 21:51:27 -06:00
2026-07-12 21:51:27 -06:00
2026-07-12 21:51:27 -06:00
2026-07-12 21:51:27 -06:00
2026-07-12 21:51:27 -06:00
2026-07-12 21:51:27 -06:00
2026-07-12 21:51:27 -06:00
2026-07-12 21:51:27 -06:00
2026-07-12 21:51:27 -06:00
2026-07-12 21:51:27 -06:00
2026-07-12 21:51:27 -06:00
2026-07-12 21:51:27 -06:00
2026-07-12 21:51:27 -06:00
2026-07-12 21:51:27 -06:00
2026-07-12 21:51:27 -06:00
2026-07-12 21:51:27 -06:00
2026-07-12 21:51:27 -06:00
2026-07-12 21:51:27 -06:00
2026-06-15 23:00:51 -06:00
2026-06-15 18:59:14 -06:00
2026-06-16 16:44:01 -06:00
2026-06-16 19:02:14 -06:00
2026-06-16 19:02:14 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 16:44:01 -06:00
2026-06-16 16:44:01 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 15:39:52 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:02:14 -06:00
2026-06-16 19:02:14 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 16:44:01 -06:00
2026-06-16 19:02:14 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:02:14 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:02:14 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:02:14 -06:00
2026-06-16 19:02:14 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:02:14 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:02:14 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:02:14 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-16 19:41:37 -06:00
2026-06-14 03:19:23 -06:00
2026-06-14 03:19:23 -06:00
2026-07-07 22:01:58 -06:00
2026-06-25 23:56:12 -06:00