mirror of
https://github.com/Druthulu/BFM-decomp
synced 2026-10-08 09:43:04 -04:00
feat(phase-24): T7 — Fable5 cracks giant func_80129CF8 + §32 idiom; banked ×1 (×134 needs the canonical-decl tool)
- Fable5Max cracked func_80129CF8 (191-ins region-a camera giant; match_one MATCH, 0-off): struct-base hoisting via SOURCE-LOCAL pointers (gcc-2.7.2 has no cross-bb CSE → a callee-saved base can only come from a local, NO pins), branch-polarity-off-the-opcode, S12 reused-temp fence, expand_block_move struct-assignment for the grouped copy, dead-local-aggregate for the frame. Distilled → cookbook §32. - banked ×1 in ov_SC01_077_a.c (d19c9580; clean fleet 136/136) after reconciling its loose-typed decls (u8[]/s32[]/struct BigCopy/s8-vs-u8; func_80012F74 s16-vs-s32) to canonical + byte-neutral access casts; RView (GsRVIEW2-shaped 32B) lifted to engine_types.h. - FINDING (byte-proven): ×134 propagation is BLOCKED by the fleet-wide loose-typing wall — the giant's shared callees/data are declared incompatibly across overlays, so the macro's externs conflict per overlay (dedup_propagate --recover only fixes the propagated fn's CALLER extern, not its callee/data). Unlike the flagship func_80132784 (compatible → ×134), loose-typed giants bank ×1, not ×134. - Drew's call (A, invest): build the fleet-wide canonical-decl reconcile tool = the ×134 giant unlock. Spec + conflict taxonomy + byte-neutral cast patterns: docs/canonical-decl-reconcile-design.md. - clean fleet check-all 136/136 BYTE-IDENTICAL (R22). No new governance rules.
This commit is contained in:
@@ -447,4 +447,8 @@ typedef struct { Blk16 lo, hi; } Buf32;
|
||||
typedef struct { s16 x, y, z, w; } PosT;
|
||||
typedef struct { u16 x, y, z, w; } MoveT;
|
||||
|
||||
/* Phase 24 (T7): GsRVIEW2-shaped 32-byte view record — the 8-word block copied/reserved in the
|
||||
* region-a camera giants (func_80129CF8 …). Shared so the matched body propagates ×134. */
|
||||
typedef struct { s32 vpx, vpy, vpz, vrx, vry, vrz, rz, super; } RView;
|
||||
|
||||
#endif /* BFM_ENGINE_TYPES_H */
|
||||
|
||||
Reference in New Issue
Block a user