feat(phase-23): lora-grind gate — +15 fns x0 propagated (fleet 63.74%)

This commit is contained in:
Drew T
2026-06-30 05:36:16 -06:00
parent 0188638afd
commit c7775eb8b5
5 changed files with 101 additions and 21 deletions
+7
View File
@@ -11671,3 +11671,10 @@ groups:
func: DEFINE_func_8017D7E0
vram: 0x8017D7E0
binaries: [ov_SC01_005, ov_SC01_006]
- id: E_func_8017CDFC
tier: h_exact
hash: 511a8b68802b6800ebb271e89b28604ee53e3401
source: src/shared/engine_core.h
func: DEFINE_func_8017CDFC
vram: 0x8017CDFC
binaries: [ov_SC01_009, ov_SC01_074]
+1 -5
View File
@@ -4771,11 +4771,7 @@ INCLUDE_ASM("asm/ov_SC01_009/nonmatchings/ov_SC01_009", func_8017CD7C);
INCLUDE_ASM("asm/ov_SC01_009/nonmatchings/ov_SC01_009", func_8017CDB8);
extern s32 func_800167F0(s32 arg0);
s32 func_8017CDFC(void) {
return (func_800167F0(0) & 0xFFFF) != 0;
}
DEFINE_func_8017CDFC() /* dedup: shared engine-core @0x8017CDFC (src/shared) */
INCLUDE_ASM("asm/ov_SC01_009/nonmatchings/ov_SC01_009", func_8017CE20);
+1 -1
View File
@@ -4778,7 +4778,7 @@ INCLUDE_ASM("asm/ov_SC01_074/nonmatchings/ov_SC01_074", func_8017CD7C);
INCLUDE_ASM("asm/ov_SC01_074/nonmatchings/ov_SC01_074", func_8017CDB8);
INCLUDE_ASM("asm/ov_SC01_074/nonmatchings/ov_SC01_074", func_8017CDFC);
DEFINE_func_8017CDFC() /* dedup: shared engine-core @0x8017CDFC (src/shared) */
INCLUDE_ASM("asm/ov_SC01_074/nonmatchings/ov_SC01_074", func_8017CE20);
+86 -15
View File
@@ -73,7 +73,15 @@ DEFINE_func_80128D60() /* dedup: shared engine-core @0x80128D60 (src/shared) */
DEFINE_func_80128DB4() /* dedup: shared engine-core @0x80128DB4 (src/shared) */
INCLUDE_ASM("asm/ov_SC01_080/nonmatchings/ov_SC01_080", func_80128EA8);
void func_80128EA8(s32 a0, s32 a1, s32 a2)
{
*(s32 *)((s32)a1 + 0x0) = a2;
*(s16 *)((s32)a1 + 0x4) = 0;
*(s16 *)((s32)a1 + 0x6) = (*(s32 *)((s32)a2 + 0x4)) & 0x3F;
*(s16 *)((s32)a0 + 0x28) = *(s16 *)((s32)a2 + 0x0);
*(s16 *)((s32)a0 + 0x2A) = *(s16 *)((s32)a2 + 0x2);
}
INCLUDE_ASM("asm/ov_SC01_080/nonmatchings/ov_SC01_080", func_80128ED8);
@@ -149,7 +157,12 @@ INCLUDE_ASM("asm/ov_SC01_080/nonmatchings/ov_SC01_080", func_8012A464);
DEFINE_func_8012A4BC() /* dedup: shared engine-core @0x8012A4BC (src/shared) */
INCLUDE_ASM("asm/ov_SC01_080/nonmatchings/ov_SC01_080", func_8012A568);
extern void func_8012A598(void *a0);
void func_8012A568(void (*a0)(void)) {
((void (*)(void))func_8012A598)();
a0();
}
INCLUDE_ASM("asm/ov_SC01_080/nonmatchings/ov_SC01_080", func_8012A598);
@@ -189,7 +202,10 @@ DEFINE_func_8012AD44() /* dedup: shared engine-core @0x8012AD44 (src/shared) */
DEFINE_func_8012AD50() /* dedup: shared engine-core @0x8012AD50 (src/shared) */
INCLUDE_ASM("asm/ov_SC01_080/nonmatchings/ov_SC01_080", func_8012AD64);
void func_8012AD64(s32 *a0, s16 a1) {
*(s16 *)((s32)a0 + 0x34) = a1;
}
DEFINE_func_8012AD6C() /* dedup: shared engine-core @0x8012AD6C (src/shared) */
@@ -265,7 +281,10 @@ DEFINE_func_8012BEE8() /* dedup: shared engine-core @0x8012BEE8 (src/shared) */
DEFINE_func_8012BF10() /* dedup: shared engine-core @0x8012BF10 (src/shared) */
INCLUDE_ASM("asm/ov_SC01_080/nonmatchings/ov_SC01_080", func_8012BF4C);
void func_8012BF4C(s32 *a0, s32 a1) {
*(s32 *)((s32)a0 + 0x1C) = a1;
}
DEFINE_func_8012BF54() /* dedup: shared engine-core @0x8012BF54 (src/shared) */
@@ -379,7 +398,10 @@ INCLUDE_ASM("asm/ov_SC01_080/nonmatchings/ov_SC01_080", func_8012E014);
INCLUDE_ASM("asm/ov_SC01_080/nonmatchings/ov_SC01_080", func_8012E138);
INCLUDE_ASM("asm/ov_SC01_080/nonmatchings/ov_SC01_080", func_8012E27C);
s32 func_8012E27C(void) {
return 0x1;
}
DEFINE_func_8012E284() /* dedup: shared engine-core @0x8012E284 (src/shared) */
@@ -601,7 +623,13 @@ DEFINE_func_80132DC4() /* dedup: shared engine-core @0x80132DC4 (src/shared) */
DEFINE_func_80132E6C() /* dedup: shared engine-core @0x80132E6C (src/shared) */
INCLUDE_ASM("asm/ov_SC01_080/nonmatchings/ov_SC01_080", func_80132EC4);
void func_80132EC4(s32 *a0, s16 a1) {
while (*a0 != 0) {
*(s16 *)((s32)a0 + 0x4) = a1;
a0 = (s32 *)((s32)a0 + 0x8);
}
}
DEFINE_func_80132EF4() /* dedup: shared engine-core @0x80132EF4 (src/shared) */
@@ -749,7 +777,16 @@ DEFINE_func_80138B88() /* dedup: shared engine-core @0x80138B88 (src/shared) */
INCLUDE_ASM("asm/ov_SC01_080/nonmatchings/ov_SC01_080", func_80138BE0);
INCLUDE_ASM("asm/ov_SC01_080/nonmatchings/ov_SC01_080", func_80138C30);
void func_80138C30(void * a0)
{
s16 v1 = *(s16 *)((s32)a0 + 0x4);
if (v1 == 4) {
*(s16 *)((s32)a0 + 0x4) = 2;
} else {
*(s32 *)((s32)a0 + 0x8) |= 0x800;
}
}
INCLUDE_ASM("asm/ov_SC01_080/nonmatchings/ov_SC01_080", func_80138C60);
@@ -4413,7 +4450,14 @@ DEFINE_func_80174604() /* dedup: shared engine-core @0x80174604 (src/shared) */
DEFINE_func_80174630() /* dedup: shared engine-core @0x80174630 (src/shared) */
INCLUDE_ASM("asm/ov_SC01_080/nonmatchings/ov_SC01_080", func_80174650);
extern s32 D_801270BC;
extern s32 D_801150F8;
s32 func_80174650(s32 _arg0)
{
D_801270BC = D_801270BC | 1;
D_801150F8 = 0;
}
DEFINE_func_80174674() /* dedup: shared engine-core @0x80174674 (src/shared) */
@@ -4819,7 +4863,11 @@ INCLUDE_ASM("asm/ov_SC01_080/nonmatchings/ov_SC01_080", func_8017EDF8);
INCLUDE_ASM("asm/ov_SC01_080/nonmatchings/ov_SC01_080", func_8017EE44);
INCLUDE_ASM("asm/ov_SC01_080/nonmatchings/ov_SC01_080", func_8017EEC0);
extern void func_800D1EBC(void);
void func_8017EEC0(void) {
func_800D1EBC();
}
INCLUDE_ASM("asm/ov_SC01_080/nonmatchings/ov_SC01_080", func_8017EEE0);
@@ -4837,7 +4885,11 @@ INCLUDE_ASM("asm/ov_SC01_080/nonmatchings/ov_SC01_080", func_8017F1C0);
INCLUDE_ASM("asm/ov_SC01_080/nonmatchings/ov_SC01_080", func_8017F204);
INCLUDE_ASM("asm/ov_SC01_080/nonmatchings/ov_SC01_080", func_8017F248);
extern void func_8016F0E4(void);
void func_8017F248(void) {
((s32 (*)(void))func_8016F0E4)();
}
INCLUDE_ASM("asm/ov_SC01_080/nonmatchings/ov_SC01_080", func_8017F268);
@@ -4955,7 +5007,10 @@ INCLUDE_ASM("asm/ov_SC01_080/nonmatchings/ov_SC01_080", func_801819D0);
INCLUDE_ASM("asm/ov_SC01_080/nonmatchings/ov_SC01_080", func_80181A70);
INCLUDE_ASM("asm/ov_SC01_080/nonmatchings/ov_SC01_080", func_80181B80);
void func_80181B80(void *a0) {
*(short *)((char *)a0 + 0x2) = 1;
}
INCLUDE_ASM("asm/ov_SC01_080/nonmatchings/ov_SC01_080", func_80181B8C);
@@ -4997,7 +5052,10 @@ INCLUDE_ASM("asm/ov_SC01_080/nonmatchings/ov_SC01_080", func_80182990);
INCLUDE_ASM("asm/ov_SC01_080/nonmatchings/ov_SC01_080", func_80182A00);
INCLUDE_ASM("asm/ov_SC01_080/nonmatchings/ov_SC01_080", func_80182A70);
s32 func_80182A70(void) {
return 0x2;
}
INCLUDE_ASM("asm/ov_SC01_080/nonmatchings/ov_SC01_080", func_80182A78);
@@ -5013,7 +5071,11 @@ INCLUDE_ASM("asm/ov_SC01_080/nonmatchings/ov_SC01_080", func_80182EF8);
INCLUDE_ASM("asm/ov_SC01_080/nonmatchings/ov_SC01_080", func_80182F64);
INCLUDE_ASM("asm/ov_SC01_080/nonmatchings/ov_SC01_080", func_80183034);
extern s32 func_8012AD50(void *a0);
void func_80183034(void) {
((void (*)(void))func_8012AD50)();
}
INCLUDE_ASM("asm/ov_SC01_080/nonmatchings/ov_SC01_080", func_80183054);
@@ -5021,12 +5083,21 @@ INCLUDE_ASM("asm/ov_SC01_080/nonmatchings/ov_SC01_080", func_801831A0);
INCLUDE_ASM("asm/ov_SC01_080/nonmatchings/ov_SC01_080", func_801831E8);
INCLUDE_ASM("asm/ov_SC01_080/nonmatchings/ov_SC01_080", func_80183258);
extern void func_80183278(void);
void func_80183258(s32 *a0) {
*(s16 *)((s32)a0 + 0xFE) = 0;
func_80183278();
}
INCLUDE_ASM("asm/ov_SC01_080/nonmatchings/ov_SC01_080", func_80183278);
INCLUDE_ASM("asm/ov_SC01_080/nonmatchings/ov_SC01_080", func_801832C0);
INCLUDE_ASM("asm/ov_SC01_080/nonmatchings/ov_SC01_080", func_801832FC);
extern s32 func_8012AD50(void *a0);
void func_801832FC(void) {
((void (*)(void))func_8012AD50)();
}
INCLUDE_ASM("asm/ov_SC01_080/nonmatchings/ov_SC01_080", func_8018331C);
+6
View File
@@ -24008,4 +24008,10 @@
func_8017D808(arg0, &D_801274E8); \
}
#define DEFINE_func_8017CDFC() \
extern s32 func_800167F0(s32 arg0); \
s32 func_8017CDFC(void) { \
return (func_800167F0(0) & 0xFFFF) != 0; \
}
#endif