mirror of
https://github.com/Druthulu/BFM-decomp
synced 2026-09-26 21:36:06 -04:00
feat(phase-31): propagate func_801854CC (gate lane)
This commit is contained in:
@@ -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]
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user