mirror of
https://github.com/Druthulu/BFM-decomp
synced 2026-09-28 23:00:29 -04:00
feat(phase-29 crack-wave): type-lift SVec/Fr_801670E4 -> engine_types.h (func_801670E4 sweep enabler)
This commit is contained in:
@@ -5104,21 +5104,7 @@ INCLUDE_ASM("asm/ov_SC01_077/nonmatchings/ov_SC01_077_jr_8015AE2C", func_8016706
|
||||
// @stuck: 16/279 masked. 3 runs, ONE residual class: gcc's list-scheduler puts `la $s2` (p=DATA) + `addu $s4,$zero,$zero` (i=0) BEFORE the callee-arg address setup (addiu $a1,$sp,0x10 / addu $a2,$a1,$zero); the target emits them AFTER. Inert to ~40 statement-order permutations + pin/barrier combos (sched priority dominates the LUID tie-break, sched.c rank_for_schedule). Runs: 19-24 (blk1), 111-114 (region-B cx-load rotation), 177-182 (blk3). Permuter fuel.
|
||||
|
||||
|
||||
typedef struct { s16 x, y, z, pad; } SVec_801670E4; /* 8 bytes */
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ u16 cx, cy, cz;
|
||||
/* 0x06 */ u16 _p06;
|
||||
/* 0x08 */ u16 a8[4];
|
||||
/* 0x10 */ s32 pos[3];
|
||||
/* 0x1C */ s32 _p1C;
|
||||
/* 0x20 */ SVec_801670E4 v[4];
|
||||
/* 0x40 */ struct { u8 r, g, b, cd; } col[4];
|
||||
/* 0x50 */ u32 code;
|
||||
/* 0x54 */ s32 _p54;
|
||||
/* 0x58 */ u8 m1[0x20];
|
||||
/* 0x78 */ u8 m2[0x20];
|
||||
} Fr_801670E4; /* 0x98 bytes -> sp+0x10 .. sp+0xA8 */
|
||||
|
||||
extern void func_80149350(s32);
|
||||
extern void func_800D20C0(void *a0, void *a1, s32 a2);
|
||||
|
||||
@@ -625,3 +625,19 @@ typedef struct {
|
||||
u8 pad44[0x10];
|
||||
} Ent_956C;
|
||||
|
||||
|
||||
/* Phase-29 crack-wave lift (func_801670E4 family) */
|
||||
typedef struct { s16 x, y, z, pad; } SVec_801670E4; /* 8 bytes */
|
||||
typedef struct {
|
||||
/* 0x00 */ u16 cx, cy, cz;
|
||||
/* 0x06 */ u16 _p06;
|
||||
/* 0x08 */ u16 a8[4];
|
||||
/* 0x10 */ s32 pos[3];
|
||||
/* 0x1C */ s32 _p1C;
|
||||
/* 0x20 */ SVec_801670E4 v[4];
|
||||
/* 0x40 */ struct { u8 r, g, b, cd; } col[4];
|
||||
/* 0x50 */ u32 code;
|
||||
/* 0x54 */ s32 _p54;
|
||||
/* 0x58 */ u8 m1[0x20];
|
||||
/* 0x78 */ u8 m2[0x20];
|
||||
} Fr_801670E4; /* 0x98 bytes -> sp+0x10 .. sp+0xA8 */
|
||||
|
||||
Reference in New Issue
Block a user