feat(phase-31): propagate func_801854CC (gate lane)

This commit is contained in:
Drew T
2026-08-15 08:04:52 -06:00
parent ec4c02b1d2
commit 22878beeeb
4 changed files with 77 additions and 37 deletions
+7
View File
@@ -14943,3 +14943,10 @@ groups:
func: DEFINE_func_80184250
vram: 0x80184250
binaries: [ov_SC02_000, ov_SC02_003]
- id: E_func_801854CC
tier: h_exact
hash: 7fb030ab4a2db2e1283e4c994a6b84e7d7213b1b
source: src/shared/engine_core.h
func: DEFINE_func_801854CC
vram: 0x801854CC
binaries: [ov_SC02_000, ov_SC02_003]
+1 -36
View File
@@ -4073,42 +4073,7 @@ DEFINE_func_801854C4() /* dedup: shared engine-core @0x801854C4 (src/shared) */
#include "common.h"
extern void func_8001D074(s32 a0, s32 a1);
extern void func_800233CC(void *, unsigned short);
extern void func_8001CD9C(int, void *);
extern u8 D_8018EFF4;
extern u8 D_8018EFF5;
extern u8 D_8018EFF6;
void func_801854CC(void *a0) {
register void *s1 __asm__("$17");
register void *s0 __asm__("$16");
s1 = (void *)((s32 (*)(s32, s32))func_8001D074)(0x3E, 0x7D);
*(void **)((s32)a0 + 0xCC) = s1;
if (s1 != 0) {
s0 = &D_8018EFF4;
func_800233CC(s0, 0x50);
func_8001CD9C((s32)s1, s0);
*(u32 *)((s32)s1 + 4) = *(u32 *)((s32)s1 + 4) | 0x50000040;
}
s1 = (void *)((s32 (*)(s32, s32))func_8001D074)(0x3E, 0x7D);
*(void **)((s32)a0 + 0xD0) = s1;
if (s1 != 0) {
s0 = &D_8018EFF4;
func_800233CC(s0, 0x40);
func_8001CD9C((s32)s1, s0);
*(u32 *)((s32)s1 + 4) = *(u32 *)((s32)s1 + 4) | 0x50000040;
}
D_8018EFF4 = 0xFF;
D_8018EFF5 = 0x10;
D_8018EFF6 = 0x10;
*(u16 *)((s32)a0 + 0xDC) = 6;
*(u16 *)((s32)a0 + 0xDE) = 0xFF;
*(u16 *)((s32)a0 + 0x2) = *(u16 *)((s32)a0 + 0x2) + 1;
}
DEFINE_func_801854CC() /* dedup: shared engine-core @0x801854CC (src/shared) */
#include "common.h"
+1 -1
View File
@@ -3188,7 +3188,7 @@ INCLUDE_ASM("asm/ov_SC02_003/nonmatchings/ov_SC02_003_jr_8018173C", func_8018545
DEFINE_func_801854C4() /* dedup: shared engine-core @0x801854C4 (src/shared) */
INCLUDE_ASM("asm/ov_SC02_003/nonmatchings/ov_SC02_003_jr_8018173C", func_801854CC);
DEFINE_func_801854CC() /* dedup: shared engine-core @0x801854CC (src/shared) */
INCLUDE_ASM("asm/ov_SC02_003/nonmatchings/ov_SC02_003_jr_8018173C", func_801855D4);
+68
View File
@@ -61476,6 +61476,40 @@
*(u16 *)((s32)a0 + 0x2) = *(u16 *)((s32)a0 + 0x2) + 1; \
}
#define DEFINE_func_801854CC() \
extern void func_8001D074(s32 a0, s32 a1); \
extern void func_800233CC(void *, unsigned short); \
extern void func_8001CD9C(int, void *); \
extern u8 D_8018EFF4; \
extern u8 D_8018EFF5; \
extern u8 D_8018EFF6; \
void func_801854CC(void *a0) { \
register void *s1 __asm__("$17"); \
register void *s0 __asm__("$16"); \
s1 = (void *)((s32 (*)(s32, s32))func_8001D074)(0x3E, 0x7D); \
*(void **)((s32)a0 + 0xCC) = s1; \
if (s1 != 0) { \
s0 = &D_8018EFF4; \
func_800233CC(s0, 0x50); \
func_8001CD9C((s32)s1, s0); \
*(u32 *)((s32)s1 + 4) = *(u32 *)((s32)s1 + 4) | 0x50000040; \
} \
s1 = (void *)((s32 (*)(s32, s32))func_8001D074)(0x3E, 0x7D); \
*(void **)((s32)a0 + 0xD0) = s1; \
if (s1 != 0) { \
s0 = &D_8018EFF4; \
func_800233CC(s0, 0x40); \
func_8001CD9C((s32)s1, s0); \
*(u32 *)((s32)s1 + 4) = *(u32 *)((s32)s1 + 4) | 0x50000040; \
} \
D_8018EFF4 = 0xFF; \
D_8018EFF5 = 0x10; \
D_8018EFF6 = 0x10; \
*(u16 *)((s32)a0 + 0xDC) = 6; \
*(u16 *)((s32)a0 + 0xDE) = 0xFF; \
*(u16 *)((s32)a0 + 0x2) = *(u16 *)((s32)a0 + 0x2) + 1; \
}
#endif
#define DEFINE_func_80128EA8() \
@@ -152357,4 +152391,38 @@
*(u16 *)((s32)a0 + 0x2) = *(u16 *)((s32)a0 + 0x2) + 1; \
}
#define DEFINE_func_801854CC() \
extern void func_8001D074(s32 a0, s32 a1); \
extern void func_800233CC(void *, unsigned short); \
extern void func_8001CD9C(int, void *); \
extern u8 D_8018EFF4; \
extern u8 D_8018EFF5; \
extern u8 D_8018EFF6; \
void func_801854CC(void *a0) { \
register void *s1 __asm__("$17"); \
register void *s0 __asm__("$16"); \
s1 = (void *)((s32 (*)(s32, s32))func_8001D074)(0x3E, 0x7D); \
*(void **)((s32)a0 + 0xCC) = s1; \
if (s1 != 0) { \
s0 = &D_8018EFF4; \
func_800233CC(s0, 0x50); \
func_8001CD9C((s32)s1, s0); \
*(u32 *)((s32)s1 + 4) = *(u32 *)((s32)s1 + 4) | 0x50000040; \
} \
s1 = (void *)((s32 (*)(s32, s32))func_8001D074)(0x3E, 0x7D); \
*(void **)((s32)a0 + 0xD0) = s1; \
if (s1 != 0) { \
s0 = &D_8018EFF4; \
func_800233CC(s0, 0x40); \
func_8001CD9C((s32)s1, s0); \
*(u32 *)((s32)s1 + 4) = *(u32 *)((s32)s1 + 4) | 0x50000040; \
} \
D_8018EFF4 = 0xFF; \
D_8018EFF5 = 0x10; \
D_8018EFF6 = 0x10; \
*(u16 *)((s32)a0 + 0xDC) = 6; \
*(u16 *)((s32)a0 + 0xDE) = 0xFF; \
*(u16 *)((s32)a0 + 0x2) = *(u16 *)((s32)a0 + 0x2) + 1; \
}
#endif