feat(decomp): family-remap-hnorm gate — +4 fns x0 propagated (fleet 98.9%)

This commit is contained in:
Drew T
2026-08-29 17:38:29 -06:00
parent 46c629189c
commit a4325f3e01
4 changed files with 166 additions and 4 deletions
+27 -1
View File
@@ -1386,7 +1386,33 @@ DEFINE_func_8012D5E4() /* dedup: shared engine-core @0x8012d5e4 (src/shared) */
DEFINE_func_8012D624() /* dedup: shared engine-core @0x8012d624 (src/shared) */
INCLUDE_ASM("asm/ov_SC07_010/nonmatchings/ov_SC07_010", func_8012D664);
int func_8012D664(int arg0, int arg1, int arg2)
{
extern u16 D_80126B5E;
extern u16 D_80126B62;
extern u16 D_80126B66;
extern s32 func_800132BC(s32 a0, s32 a1);
extern void func_8012F568(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4, s32 a5);
extern u8 D_801822FC[];
u16 s[3];
int ret;
int t;
s[0] = (*(unsigned short *)&D_80126B5E);
s[1] = (*(unsigned short *)&D_80126B62) - 0x40;
s[2] = (*(unsigned short *)&D_80126B66);
ret = ((int (*)())func_800132BC)(arg0, s);
t = arg1 + 0x20;
if (ret < t * t) {
func_8012F568(1, 1, 0, arg2, arg0, &D_801822FC);
return 1;
}
return 0;
}
DEFINE_func_8012D714() /* dedup: shared engine-core @0x8012d714 (src/shared) */
+12 -1
View File
@@ -1198,7 +1198,18 @@ void func_80136C54(void)
}
INCLUDE_ASM("asm/ov_SC07_010/nonmatchings/ov_SC07_010_jr_80135D20", func_80136C90);
s32 func_80136C90()
{
extern void func_8001534C(int, void *, int, int, int, int);
extern S10_80136C90 D_801A5A7C;
S10_80136C90 buf = D_801A5A7C;
func_8001534C(0, &buf, 0x78, 0x10, 0, 0);
}
void func_80136D00(void) {
}
+100 -1
View File
@@ -547,7 +547,106 @@ DEFINE_func_80145BF8() /* dedup: shared engine-core @0x80145bf8 (src/shared) */
DEFINE_func_80145C54() /* dedup: shared engine-core @0x80145c54 (src/shared) */
INCLUDE_ASM("asm/ov_SC07_010/nonmatchings/ov_SC07_010_jr_801457A4", func_80145CEC);
void func_80145CEC(void) {
extern int func_8001C320();
extern s32 func_80029504(void);
extern int func_801552F4();
extern int func_80147084();
extern int func_80147098();
extern int func_801470AC();
extern int func_80149210();
extern int func_8014BE9C();
extern int func_8016533C();
extern int func_801627C0();
extern int func_80162AF4();
extern int func_80165C78();
extern int func_801468C8();
extern int func_80145EE8();
extern int func_8014C968();
extern int func_8014C6D0();
extern int func_80165938();
extern int func_80153C8C();
extern int func_800290BC();
extern s32 D_800AFAE8;
extern s32 D_800DE2A4;
extern s32 D_801152C8;
extern s32 D_80183970;
extern s32 * D_80126B78[1];
extern s32 * D_800AF7C8;
extern s32 * D_80126B90;
extern s16 D_80126BB8;
extern s16 D_80126BBA;
extern s16 D_80126BBC;
extern s16 D_80126BC0;
extern s16 D_80126BC2;
extern s16 D_80126BC4;
extern s16 D_80126BC8;
extern s16 D_80126BCA;
extern s16 D_80126BCC;
extern s16 D_80126D10;
extern s16 D_80126D12;
extern s16 D_80126C4E;
extern s16 currentLocationId;
extern s32 D_8011F9C4;
extern s32 D_8012707C;
extern s32 D_8011DB10;
extern s32 D_80126B58;
unsigned int uVar1;
s32 pad[2];
(void)&pad;
func_80016714(&D_80126B58, 0x254);
D_80126B78[0] = (s32 *)&D_800AFAE8;
D_800AF7C8 = (s32 *)&D_801152C8;
func_8001C320(&D_800AFAE8, &D_800DE2A4);
*(s32 *)((s32)D_80126B78[0] + 0x28) = 0x7fff7fff;
D_80126B90 = (s32 *)&D_80183970;
*(u16 *)((s32)D_80126B78[0] + 0x18) = 0x1000;
D_80126BC8 = 0x1000;
D_80126BC0 = 0x1000;
D_80126BB8 = 0x1000;
*(u16 *)((s32)D_80126B78[0] + 0x1a) = 0x1000;
D_80126BCA = 0x1000;
D_80126BC2 = 0x1000;
D_80126BBA = 0x1000;
*(u16 *)((s32)D_80126B78[0] + 0x1c) = 0x1000;
D_80126BCC = 0x1000;
D_80126BC4 = 0x1000;
D_80126BBC = 0x1000;
D_80126D12 = 0x1000;
D_80126D10 = 0x1000;
D_80126C4E = 0x1000;
func_801552F4(&D_80126B58);
func_80147084(&D_80126B58);
func_80147098(&D_80126B58);
func_801470AC(&D_80126B58);
*(u16 *)((s32)D_80126B78[0] + 0x2c) = *(u16 *)((s32)D_80126B78[0] + 0x2c) | 0x50;
func_80149210(&D_80126B58, 8);
func_8014BE9C();
func_8016533C();
func_801627C0();
func_80162AF4();
func_80165C78();
func_801468C8(&D_80126B58, 1);
if (currentLocationId != 0x30a2 && currentLocationId != 0x30a5) {
func_80145EE8(0);
}
func_8014C968();
func_8014C6D0();
D_8011F9C4 = 0;
func_80165938();
func_80153C8C();
D_8012707C = 0;
D_8011DB10 = 0;
uVar1 = ((int (*)())func_80029504)();
if (uVar1 >= 10) {
func_800290BC();
}
}
+27 -1
View File
@@ -2536,7 +2536,33 @@ s32 func_8016BBE0(s32 param_1) {
}
INCLUDE_ASM("asm/ov_SC07_010/nonmatchings/ov_SC07_010_jr_8016AE5C", func_8016BCC0);
extern M2C_UNK D_801A70FC;
extern M2C_UNK D_801A7100;
extern void func_8016BFA8(s32 a0, s32 a1, s32 a2, s32 a3);
void func_8016BCC0(void *arg0) {
u16 temp_a2;
u16 temp_v0;
void *temp_s0;
temp_s0 = M2C_FIELD(arg0, void **, 0x20);
func_8016BF50();
temp_a2 = M2C_FIELD(arg0, u16 *, 0x10) + 0x60;
M2C_FIELD(arg0, u16 *, 0x10) = temp_a2;
temp_v0 = M2C_FIELD(temp_s0, u16 *, 0x1A) + temp_a2;
M2C_FIELD(temp_s0, u16 *, 0x1A) = temp_v0;
M2C_FIELD(temp_s0, u16 *, 0x18) = temp_v0;
M2C_FIELD(temp_s0, u16 *, 0x12) = (u16) ((M2C_FIELD(temp_s0, u16 *, 0x12) + 0x71) & 0xFFF);
func_8016BFA8(arg0, &D_801A70FC, &D_801A7100, temp_s0 + 0x18);
if ((s16) M2C_FIELD(temp_s0, u16 *, 0x1A) >= 0x1001) {
M2C_FIELD(temp_s0, u16 *, 0x18) = 0x1000U;
M2C_FIELD(temp_s0, u16 *, 0x1A) = 0x1000U;
func_80146E90(arg0, M2C_FIELD(arg0, s32 *, 0x30));
M2C_FIELD(arg0, u16 *, 2) = (u16) (M2C_FIELD(arg0, u16 *, 2) + 1);
}
}
extern void func_8016BF50(s32);
extern void func_8016BFA8(s32 a0, s32 a1, s32 a2, s32 a3);