From 238a1c00d8cc78abbd23ce1dac0b405d0cb720b2 Mon Sep 17 00:00:00 2001 From: Drew T <50529377+Druthulu@users.noreply.github.com> Date: Tue, 30 Jun 2026 05:18:19 -0600 Subject: [PATCH] =?UTF-8?q?feat(phase-23):=20lora-grind=20gate=20=E2=80=94?= =?UTF-8?q?=20+17=20fns=20x0=20propagated=20(fleet=2063.73%)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/dedup.us.yaml | 105 ++++++++++++++++++++++++++++++++++ src/ov_SC01_005/ov_SC01_005.c | 64 +++++---------------- src/ov_SC01_006/ov_SC01_006.c | 69 +++++----------------- src/ov_SC01_009/ov_SC01_009.c | 97 +++++++++++++++++++++++++------ src/shared/engine_core.h | 83 +++++++++++++++++++++++++++ 5 files changed, 298 insertions(+), 120 deletions(-) diff --git a/config/dedup.us.yaml b/config/dedup.us.yaml index 83c4473b50..e4b8f5be91 100644 --- a/config/dedup.us.yaml +++ b/config/dedup.us.yaml @@ -11566,3 +11566,108 @@ groups: func: DEFINE_func_801705C0 vram: 0x801705C0 binaries: [ov_SC01_077, ov_SC01_005, ov_SC01_006, ov_SC03_001, ov_SC01_000, ov_SC01_001, ov_SC02_000, ov_SC02_003, ov_SC03_002, ov_SC03_006, ov_SC04_000, ov_SC04_018, ov_SC04_019, ov_SC05_000, ov_SC06_000, ov_SC07_000, ov_SC01_004, ov_SC01_008, ov_SC01_009, ov_SC01_074, ov_SC01_080, ov_SC01_084, ov_SC02_004, ov_SC02_005, ov_SC02_011, ov_SC02_015, ov_SC02_016, ov_SC02_017, ov_SC02_021, ov_SC02_026, ov_SC02_027, ov_SC02_028, ov_SC02_031, ov_SC02_035, ov_SC02_039, ov_SC02_041, ov_SC03_003, ov_SC03_007, ov_SC03_010, ov_SC03_011, ov_SC03_012, ov_SC03_013, ov_SC03_014, ov_SC03_015, ov_SC03_023, ov_SC03_024, ov_SC03_028, ov_SC03_029, ov_SC03_030, ov_SC03_031, ov_SC03_089, ov_SC03_090, ov_SC03_091, ov_SC03_092, ov_SC03_093, ov_SC03_094, ov_SC03_095, ov_SC03_096, ov_SC03_097, ov_SC03_098, ov_SC03_099, ov_SC03_100, ov_SC03_101, ov_SC03_102, ov_SC03_103, ov_SC03_104, ov_SC03_105, ov_SC03_108, ov_SC03_109, ov_SC03_110, ov_SC03_111, ov_SC03_112, ov_SC03_113, ov_SC03_114, ov_SC03_115, ov_SC03_116, ov_SC03_117, ov_SC03_118, ov_SC03_119, ov_SC03_121, ov_SC03_124, ov_SC03_125, ov_SC03_126, ov_SC04_002, ov_SC04_003, ov_SC04_004, ov_SC04_005, ov_SC04_006, ov_SC04_007, ov_SC04_008, ov_SC04_009, ov_SC04_010, ov_SC04_011, ov_SC04_012, ov_SC04_015, ov_SC04_016, ov_SC04_020, ov_SC04_021, ov_SC05_001, ov_SC05_002, ov_SC05_003, ov_SC05_004, ov_SC05_005, ov_SC05_006, ov_SC05_007, ov_SC05_008, ov_SC05_009, ov_SC05_010, ov_SC05_011, ov_SC05_017, ov_SC05_018, ov_SC05_019, ov_SC06_006, ov_SC06_008, ov_SC06_010, ov_SC06_011, ov_SC06_013, ov_SC06_014, ov_SC06_015, ov_SC06_016, ov_SC06_018, ov_SC06_020, ov_SC06_022, ov_SC06_024, ov_SC06_025, ov_SC06_027, ov_SC06_029, ov_SC06_030, ov_SC06_032, ov_SC06_033, ov_SC07_001, ov_SC07_002, ov_SC07_008, ov_SC07_009] + - id: E_func_8017C048 + tier: h_exact + hash: 7678540574197b420f17571673856a74783eb9d5 + source: src/shared/engine_core.h + func: DEFINE_func_8017C048 + vram: 0x8017C048 + binaries: [ov_SC01_005, ov_SC01_006] + - id: E_func_8017C120 + tier: h_exact + hash: 7678540574197b420f17571673856a74783eb9d5 + source: src/shared/engine_core.h + func: DEFINE_func_8017C120 + vram: 0x8017C120 + binaries: [ov_SC01_005, ov_SC01_006] + - id: E_func_8017C238 + tier: h_exact + hash: 7678540574197b420f17571673856a74783eb9d5 + source: src/shared/engine_core.h + func: DEFINE_func_8017C238 + vram: 0x8017C238 + binaries: [ov_SC01_005, ov_SC01_006] + - id: E_func_8017C338 + tier: h_exact + hash: 7678540574197b420f17571673856a74783eb9d5 + source: src/shared/engine_core.h + func: DEFINE_func_8017C338 + vram: 0x8017C338 + binaries: [ov_SC01_005, ov_SC01_006] + - id: E_func_8017D5CC + tier: h_exact + hash: 98ab17e54d84a098b4240053ee845921141318c1 + source: src/shared/engine_core.h + func: DEFINE_func_8017D5CC + vram: 0x8017D5CC + binaries: [ov_SC01_005, ov_SC01_006] + - id: E_func_801805A0 + tier: h_exact + hash: 7678540574197b420f17571673856a74783eb9d5 + source: src/shared/engine_core.h + func: DEFINE_func_801805A0 + vram: 0x801805A0 + binaries: [ov_SC01_005, ov_SC01_006] + - id: E_func_80180800 + tier: h_exact + hash: 7678540574197b420f17571673856a74783eb9d5 + source: src/shared/engine_core.h + func: DEFINE_func_80180800 + vram: 0x80180800 + binaries: [ov_SC01_005, ov_SC01_006] + - id: E_func_80180A30 + tier: h_exact + hash: 7678540574197b420f17571673856a74783eb9d5 + source: src/shared/engine_core.h + func: DEFINE_func_80180A30 + vram: 0x80180A30 + binaries: [ov_SC01_005, ov_SC01_006] + - id: E_func_80180B04 + tier: h_exact + hash: ff05b638ac9285b645b5d94acaa93758b0a74522 + source: src/shared/engine_core.h + func: DEFINE_func_80180B04 + vram: 0x80180B04 + binaries: [ov_SC01_005, ov_SC01_006] + - id: E_func_80180B14 + tier: h_exact + hash: 7ab3d5f0fa1e371ba75d36ad750c2f104631f74f + source: src/shared/engine_core.h + func: DEFINE_func_80180B14 + vram: 0x80180B14 + binaries: [ov_SC01_005, ov_SC01_006] + - id: E_func_8017DA84 + tier: h_exact + hash: 7438ad3e28f77ccdf7e83344574fea72f20d7a25 + source: src/shared/engine_core.h + func: DEFINE_func_8017DA84 + vram: 0x8017DA84 + binaries: [ov_SC01_005, ov_SC01_006] + - id: E_func_801807E8 + tier: h_exact + hash: e97c73bdd79ef1f387cd9921f4cdf7198c7b27f7 + source: src/shared/engine_core.h + func: DEFINE_func_801807E8 + vram: 0x801807E8 + binaries: [ov_SC01_005, ov_SC01_006] + - id: E_func_8017D464 + tier: h_exact + hash: 4e0fdb97b17b9682dd08f6f4007a9aeb5b675fd0 + source: src/shared/engine_core.h + func: DEFINE_func_8017D464 + vram: 0x8017D464 + binaries: [ov_SC01_005, ov_SC01_006] + - id: E_func_8017E0EC + tier: h_exact + hash: a05128332cc0f0c85bd55a47c941329275cd82fc + source: src/shared/engine_core.h + func: DEFINE_func_8017E0EC + vram: 0x8017E0EC + binaries: [ov_SC01_005, ov_SC01_006] + - id: E_func_8017D7E0 + tier: h_exact + hash: ee6ee2e0d5fcaee039768c44b39e34abb5f9db9f + source: src/shared/engine_core.h + func: DEFINE_func_8017D7E0 + vram: 0x8017D7E0 + binaries: [ov_SC01_005, ov_SC01_006] diff --git a/src/ov_SC01_005/ov_SC01_005.c b/src/ov_SC01_005/ov_SC01_005.c index 3e1414b82b..03e91f0f27 100644 --- a/src/ov_SC01_005/ov_SC01_005.c +++ b/src/ov_SC01_005/ov_SC01_005.c @@ -4765,8 +4765,7 @@ INCLUDE_ASM("asm/ov_SC01_005/nonmatchings/ov_SC01_005", func_8017BF70); INCLUDE_ASM("asm/ov_SC01_005/nonmatchings/ov_SC01_005", func_8017BFEC); -void func_8017C048(void) { -} +DEFINE_func_8017C048() /* dedup: shared engine-core @0x8017C048 (src/shared) */ INCLUDE_ASM("asm/ov_SC01_005/nonmatchings/ov_SC01_005", func_8017C050); @@ -4774,8 +4773,7 @@ INCLUDE_ASM("asm/ov_SC01_005/nonmatchings/ov_SC01_005", func_8017C078); INCLUDE_ASM("asm/ov_SC01_005/nonmatchings/ov_SC01_005", func_8017C0B4); -void func_8017C120(void) { -} +DEFINE_func_8017C120() /* dedup: shared engine-core @0x8017C120 (src/shared) */ INCLUDE_ASM("asm/ov_SC01_005/nonmatchings/ov_SC01_005", func_8017C128); @@ -4785,8 +4783,7 @@ INCLUDE_ASM("asm/ov_SC01_005/nonmatchings/ov_SC01_005", func_8017C18C); INCLUDE_ASM("asm/ov_SC01_005/nonmatchings/ov_SC01_005", func_8017C1E8); -void func_8017C238(void) { -} +DEFINE_func_8017C238() /* dedup: shared engine-core @0x8017C238 (src/shared) */ INCLUDE_ASM("asm/ov_SC01_005/nonmatchings/ov_SC01_005", func_8017C240); @@ -4796,8 +4793,7 @@ INCLUDE_ASM("asm/ov_SC01_005/nonmatchings/ov_SC01_005", func_8017C2A4); INCLUDE_ASM("asm/ov_SC01_005/nonmatchings/ov_SC01_005", func_8017C2F4); -void func_8017C338(void) { -} +DEFINE_func_8017C338() /* dedup: shared engine-core @0x8017C338 (src/shared) */ INCLUDE_ASM("asm/ov_SC01_005/nonmatchings/ov_SC01_005", func_8017C340); @@ -4828,11 +4824,7 @@ extern void func_800D1EBC(void); INCLUDE_ASM("asm/ov_SC01_005/nonmatchings/ov_SC01_005", func_8017D428); -s32 func_8017D464(u8 *a0) { - *(s32 *)(a0 + 0x28) = 0xA; - *(u8 *)(a0 + 0x15) += 1; - return 0; - } +DEFINE_func_8017D464() /* dedup: shared engine-core @0x8017D464 (src/shared) */ INCLUDE_ASM("asm/ov_SC01_005/nonmatchings/ov_SC01_005", func_8017D480); @@ -4848,9 +4840,7 @@ INCLUDE_ASM("asm/ov_SC01_005/nonmatchings/ov_SC01_005", func_8017D51C); INCLUDE_ASM("asm/ov_SC01_005/nonmatchings/ov_SC01_005", func_8017D558); -s32 func_8017D5CC(void) { - return 0x1; - } +DEFINE_func_8017D5CC() /* dedup: shared engine-core @0x8017D5CC (src/shared) */ INCLUDE_ASM("asm/ov_SC01_005/nonmatchings/ov_SC01_005", func_8017D5D4); @@ -4863,7 +4853,7 @@ INCLUDE_ASM("asm/ov_SC01_005/nonmatchings/ov_SC01_005", func_8017D6E4); INCLUDE_ASM("asm/ov_SC01_005/nonmatchings/ov_SC01_005", func_8017D7A4); -INCLUDE_ASM("asm/ov_SC01_005/nonmatchings/ov_SC01_005", func_8017D7E0); +DEFINE_func_8017D7E0() /* dedup: shared engine-core @0x8017D7E0 (src/shared) */ INCLUDE_ASM("asm/ov_SC01_005/nonmatchings/ov_SC01_005", func_8017D808); @@ -4871,12 +4861,7 @@ INCLUDE_ASM("asm/ov_SC01_005/nonmatchings/ov_SC01_005", func_8017D9A0); INCLUDE_ASM("asm/ov_SC01_005/nonmatchings/ov_SC01_005", func_8017D9F4); -s32 func_8017DA84(s32 arg0) { - if (arg0 < 5) { - return 0x57; - } - return 0x3D; - } +DEFINE_func_8017DA84() /* dedup: shared engine-core @0x8017DA84 (src/shared) */ INCLUDE_ASM("asm/ov_SC01_005/nonmatchings/ov_SC01_005", func_8017DA9C); @@ -4893,14 +4878,7 @@ INCLUDE_ASM("asm/ov_SC01_005/nonmatchings/ov_SC01_005", func_8017DC48); INCLUDE_ASM("asm/ov_SC01_005/nonmatchings/ov_SC01_005", func_8017DEFC); -extern u16 D_80115112; -void func_8017E0EC(void) { - register s32 *p __asm__("$3"); /* pinned to $v1 */ - register s32 v __asm__("$2"); /* pinned to $v0 */ - p = &D_80115112; - v = *(u16 *)p + 1; - *(u16 *)p = v; -} +DEFINE_func_8017E0EC() /* dedup: shared engine-core @0x8017E0EC (src/shared) */ INCLUDE_ASM("asm/ov_SC01_005/nonmatchings/ov_SC01_005", func_8017E108); @@ -4951,8 +4929,7 @@ INCLUDE_ASM("asm/ov_SC01_005/nonmatchings/ov_SC01_005", func_8018048C); INCLUDE_ASM("asm/ov_SC01_005/nonmatchings/ov_SC01_005", func_80180564); -void func_801805A0(void) { -} +DEFINE_func_801805A0() /* dedup: shared engine-core @0x801805A0 (src/shared) */ INCLUDE_ASM("asm/ov_SC01_005/nonmatchings/ov_SC01_005", func_801805A8); @@ -4979,16 +4956,10 @@ INCLUDE_ASM("asm/ov_SC01_005/nonmatchings/ov_SC01_005", func_8018078C); INCLUDE_ASM("asm/ov_SC01_005/nonmatchings/ov_SC01_005", func_801807D8); -void func_801807E8(void *a0) { - *(s16 *)((s32)a0 + 0x10A) = 0x60; - *(s16 *)((s32)a0 + 0x106) = 0; - *(s16 *)((s32)a0 + 0x108) = 0; - *(s16 *)((s32)a0 + 0xFE) = 0; - } +DEFINE_func_801807E8() /* dedup: shared engine-core @0x801807E8 (src/shared) */ -void func_80180800(void) { -} +DEFINE_func_80180800() /* dedup: shared engine-core @0x80180800 (src/shared) */ INCLUDE_ASM("asm/ov_SC01_005/nonmatchings/ov_SC01_005", func_80180808); @@ -4998,8 +4969,7 @@ INCLUDE_ASM("asm/ov_SC01_005/nonmatchings/ov_SC01_005", func_80180974); INCLUDE_ASM("asm/ov_SC01_005/nonmatchings/ov_SC01_005", func_801809F4); -void func_80180A30(void) { -} +DEFINE_func_80180A30() /* dedup: shared engine-core @0x80180A30 (src/shared) */ INCLUDE_ASM("asm/ov_SC01_005/nonmatchings/ov_SC01_005", func_80180A38); @@ -5007,14 +4977,10 @@ INCLUDE_ASM("asm/ov_SC01_005/nonmatchings/ov_SC01_005", func_80180AD0); INCLUDE_ASM("asm/ov_SC01_005/nonmatchings/ov_SC01_005", func_80180AE8); -void func_80180B04(void *a0) { - *(short *)(*(int *)((char *)a0 + 0xcc) + 0xfc) = 1; - } +DEFINE_func_80180B04() /* dedup: shared engine-core @0x80180B04 (src/shared) */ -void func_80180B14(void *a0) { - *(short *)(*(int *)((char *)a0 + 0xcc) + 0xfc) = 0x2; - } +DEFINE_func_80180B14() /* dedup: shared engine-core @0x80180B14 (src/shared) */ INCLUDE_ASM("asm/ov_SC01_005/nonmatchings/ov_SC01_005", func_80180B24); diff --git a/src/ov_SC01_006/ov_SC01_006.c b/src/ov_SC01_006/ov_SC01_006.c index 50cc56caf0..a7dc9e3b51 100644 --- a/src/ov_SC01_006/ov_SC01_006.c +++ b/src/ov_SC01_006/ov_SC01_006.c @@ -4764,8 +4764,7 @@ INCLUDE_ASM("asm/ov_SC01_006/nonmatchings/ov_SC01_006", func_8017BF70); INCLUDE_ASM("asm/ov_SC01_006/nonmatchings/ov_SC01_006", func_8017BFEC); -void func_8017C048(void) { -} +DEFINE_func_8017C048() /* dedup: shared engine-core @0x8017C048 (src/shared) */ extern void func_80174684(void *); extern s32 func_8017C078; @@ -4778,8 +4777,7 @@ INCLUDE_ASM("asm/ov_SC01_006/nonmatchings/ov_SC01_006", func_8017C078); INCLUDE_ASM("asm/ov_SC01_006/nonmatchings/ov_SC01_006", func_8017C0B4); -void func_8017C120(void) { -} +DEFINE_func_8017C120() /* dedup: shared engine-core @0x8017C120 (src/shared) */ extern void func_80174684(void *); extern s32 func_8017C150; @@ -4794,8 +4792,7 @@ INCLUDE_ASM("asm/ov_SC01_006/nonmatchings/ov_SC01_006", func_8017C18C); INCLUDE_ASM("asm/ov_SC01_006/nonmatchings/ov_SC01_006", func_8017C1E8); -void func_8017C238(void) { -} +DEFINE_func_8017C238() /* dedup: shared engine-core @0x8017C238 (src/shared) */ extern void func_80174684(void *); extern s32 func_8017C268(s32); @@ -4810,8 +4807,7 @@ INCLUDE_ASM("asm/ov_SC01_006/nonmatchings/ov_SC01_006", func_8017C2A4); INCLUDE_ASM("asm/ov_SC01_006/nonmatchings/ov_SC01_006", func_8017C2F4); -void func_8017C338(void) { -} +DEFINE_func_8017C338() /* dedup: shared engine-core @0x8017C338 (src/shared) */ INCLUDE_ASM("asm/ov_SC01_006/nonmatchings/ov_SC01_006", func_8017C340); @@ -4837,11 +4833,7 @@ extern s32 func_800D1EBC(void); INCLUDE_ASM("asm/ov_SC01_006/nonmatchings/ov_SC01_006", func_8017D428); -s32 func_8017D464(u8 *a0) { - *(s32 *)(a0 + 0x28) = 0xA; - *(u8 *)(a0 + 0x15) += 1; - return 0; - } +DEFINE_func_8017D464() /* dedup: shared engine-core @0x8017D464 (src/shared) */ INCLUDE_ASM("asm/ov_SC01_006/nonmatchings/ov_SC01_006", func_8017D480); @@ -4856,9 +4848,7 @@ INCLUDE_ASM("asm/ov_SC01_006/nonmatchings/ov_SC01_006", func_8017D51C); INCLUDE_ASM("asm/ov_SC01_006/nonmatchings/ov_SC01_006", func_8017D558); -s32 func_8017D5CC(void) { - return 0x1; - } +DEFINE_func_8017D5CC() /* dedup: shared engine-core @0x8017D5CC (src/shared) */ INCLUDE_ASM("asm/ov_SC01_006/nonmatchings/ov_SC01_006", func_8017D5D4); @@ -4871,12 +4861,7 @@ INCLUDE_ASM("asm/ov_SC01_006/nonmatchings/ov_SC01_006", func_8017D6E4); INCLUDE_ASM("asm/ov_SC01_006/nonmatchings/ov_SC01_006", func_8017D7A4); -extern void func_8017D808(s32 arg0, s32 arg1); -extern s32 D_801274E8; - -void func_8017D7E0(s32 arg0) { - func_8017D808(arg0, &D_801274E8); -} +DEFINE_func_8017D7E0() /* dedup: shared engine-core @0x8017D7E0 (src/shared) */ INCLUDE_ASM("asm/ov_SC01_006/nonmatchings/ov_SC01_006", func_8017D808); @@ -4885,12 +4870,7 @@ INCLUDE_ASM("asm/ov_SC01_006/nonmatchings/ov_SC01_006", func_8017D9A0); INCLUDE_ASM("asm/ov_SC01_006/nonmatchings/ov_SC01_006", func_8017D9F4); -s32 func_8017DA84(s32 arg0) { - if (arg0 < 5) { - return 0x57; - } - return 0x3D; - } +DEFINE_func_8017DA84() /* dedup: shared engine-core @0x8017DA84 (src/shared) */ INCLUDE_ASM("asm/ov_SC01_006/nonmatchings/ov_SC01_006", func_8017DA9C); @@ -4907,14 +4887,7 @@ INCLUDE_ASM("asm/ov_SC01_006/nonmatchings/ov_SC01_006", func_8017DC48); INCLUDE_ASM("asm/ov_SC01_006/nonmatchings/ov_SC01_006", func_8017DEFC); -extern u16 D_80115112; -void func_8017E0EC(void) { - register s32 *p __asm__("$3"); /* pinned to $v1 */ - register s32 v __asm__("$2"); /* pinned to $v0 */ - p = &D_80115112; - v = *(u16 *)p + 1; - *(u16 *)p = v; -} +DEFINE_func_8017E0EC() /* dedup: shared engine-core @0x8017E0EC (src/shared) */ INCLUDE_ASM("asm/ov_SC01_006/nonmatchings/ov_SC01_006", func_8017E108); @@ -4965,8 +4938,7 @@ INCLUDE_ASM("asm/ov_SC01_006/nonmatchings/ov_SC01_006", func_8018048C); INCLUDE_ASM("asm/ov_SC01_006/nonmatchings/ov_SC01_006", func_80180564); -void func_801805A0(void) { -} +DEFINE_func_801805A0() /* dedup: shared engine-core @0x801805A0 (src/shared) */ extern void func_8017DAAC(s32 arg0, s32 arg1); void func_801805A8(void) { @@ -5000,16 +4972,10 @@ INCLUDE_ASM("asm/ov_SC01_006/nonmatchings/ov_SC01_006", func_8018078C); INCLUDE_ASM("asm/ov_SC01_006/nonmatchings/ov_SC01_006", func_801807D8); -void func_801807E8(void *a0) { - *(s16 *)((s32)a0 + 0x10A) = 0x60; - *(s16 *)((s32)a0 + 0x106) = 0; - *(s16 *)((s32)a0 + 0x108) = 0; - *(s16 *)((s32)a0 + 0xFE) = 0; - } +DEFINE_func_801807E8() /* dedup: shared engine-core @0x801807E8 (src/shared) */ -void func_80180800(void) { -} +DEFINE_func_80180800() /* dedup: shared engine-core @0x80180800 (src/shared) */ INCLUDE_ASM("asm/ov_SC01_006/nonmatchings/ov_SC01_006", func_80180808); @@ -5019,8 +4985,7 @@ INCLUDE_ASM("asm/ov_SC01_006/nonmatchings/ov_SC01_006", func_80180974); INCLUDE_ASM("asm/ov_SC01_006/nonmatchings/ov_SC01_006", func_801809F4); -void func_80180A30(void) { -} +DEFINE_func_80180A30() /* dedup: shared engine-core @0x80180A30 (src/shared) */ INCLUDE_ASM("asm/ov_SC01_006/nonmatchings/ov_SC01_006", func_80180A38); @@ -5028,14 +4993,10 @@ INCLUDE_ASM("asm/ov_SC01_006/nonmatchings/ov_SC01_006", func_80180AD0); INCLUDE_ASM("asm/ov_SC01_006/nonmatchings/ov_SC01_006", func_80180AE8); -void func_80180B04(void *a0) { - *(short *)(*(int *)((char *)a0 + 0xcc) + 0xfc) = 1; - } +DEFINE_func_80180B04() /* dedup: shared engine-core @0x80180B04 (src/shared) */ -void func_80180B14(void *a0) { - *(short *)(*(int *)((char *)a0 + 0xcc) + 0xfc) = 0x2; - } +DEFINE_func_80180B14() /* dedup: shared engine-core @0x80180B14 (src/shared) */ INCLUDE_ASM("asm/ov_SC01_006/nonmatchings/ov_SC01_006", func_80180B24); diff --git a/src/ov_SC01_009/ov_SC01_009.c b/src/ov_SC01_009/ov_SC01_009.c index 90c8493ebd..07e03e3589 100644 --- a/src/ov_SC01_009/ov_SC01_009.c +++ b/src/ov_SC01_009/ov_SC01_009.c @@ -189,7 +189,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_009/nonmatchings/ov_SC01_009", 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 +268,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_009/nonmatchings/ov_SC01_009", 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 +385,10 @@ INCLUDE_ASM("asm/ov_SC01_009/nonmatchings/ov_SC01_009", func_8012E014); INCLUDE_ASM("asm/ov_SC01_009/nonmatchings/ov_SC01_009", func_8012E138); -INCLUDE_ASM("asm/ov_SC01_009/nonmatchings/ov_SC01_009", func_8012E27C); +s32 func_8012E27C(void) { + return 0x1; + } + DEFINE_func_8012E284() /* dedup: shared engine-core @0x8012E284 (src/shared) */ @@ -749,7 +758,15 @@ DEFINE_func_80138B88() /* dedup: shared engine-core @0x80138B88 (src/shared) */ INCLUDE_ASM("asm/ov_SC01_009/nonmatchings/ov_SC01_009", func_80138BE0); -INCLUDE_ASM("asm/ov_SC01_009/nonmatchings/ov_SC01_009", func_80138C30); +void func_80138C30(void *a0) { + s16 v1 = *(s16 *)((u8 *)a0 + 4); + if (v1 == 4) { + *(s16 *)((u8 *)a0 + 4) = 2; + } else { + *(s32 *)((u8 *)a0 + 8) |= 0x800; + } +} + INCLUDE_ASM("asm/ov_SC01_009/nonmatchings/ov_SC01_009", func_80138C60); @@ -4413,7 +4430,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_009/nonmatchings/ov_SC01_009", 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) */ @@ -4747,7 +4771,12 @@ INCLUDE_ASM("asm/ov_SC01_009/nonmatchings/ov_SC01_009", func_8017CD7C); INCLUDE_ASM("asm/ov_SC01_009/nonmatchings/ov_SC01_009", func_8017CDB8); -INCLUDE_ASM("asm/ov_SC01_009/nonmatchings/ov_SC01_009", func_8017CDFC); +extern s32 func_800167F0(s32 arg0); + +s32 func_8017CDFC(void) { + return (func_800167F0(0) & 0xFFFF) != 0; +} + INCLUDE_ASM("asm/ov_SC01_009/nonmatchings/ov_SC01_009", func_8017CE20); @@ -4833,9 +4862,16 @@ INCLUDE_ASM("asm/ov_SC01_009/nonmatchings/ov_SC01_009", func_8017F568); INCLUDE_ASM("asm/ov_SC01_009/nonmatchings/ov_SC01_009", func_8017F5B0); -INCLUDE_ASM("asm/ov_SC01_009/nonmatchings/ov_SC01_009", func_8017F5F8); +extern s32 func_8017F5F8(void *a0); + s32 func_8017F5F8(void *a0) { + return *(s16 *)((char *)a0 + 0x104) == 0x4; + } + + +s32 func_8017F60C(s32 *a0) { + return *(s16*)((s32)a0 + 0x104); + } -INCLUDE_ASM("asm/ov_SC01_009/nonmatchings/ov_SC01_009", func_8017F60C); INCLUDE_ASM("asm/ov_SC01_009/nonmatchings/ov_SC01_009", func_8017F618); @@ -4843,7 +4879,10 @@ INCLUDE_ASM("asm/ov_SC01_009/nonmatchings/ov_SC01_009", func_8017F658); INCLUDE_ASM("asm/ov_SC01_009/nonmatchings/ov_SC01_009", func_8017F67C); -INCLUDE_ASM("asm/ov_SC01_009/nonmatchings/ov_SC01_009", func_8017F6B4); +void func_8017F6B4(void *a0) { + *(short *)((char *)a0 + 0x2) = 0x5; + } + INCLUDE_ASM("asm/ov_SC01_009/nonmatchings/ov_SC01_009", func_8017F6C0); @@ -4861,13 +4900,25 @@ INCLUDE_ASM("asm/ov_SC01_009/nonmatchings/ov_SC01_009", func_8017F7D8); INCLUDE_ASM("asm/ov_SC01_009/nonmatchings/ov_SC01_009", func_8017F7F0); -INCLUDE_ASM("asm/ov_SC01_009/nonmatchings/ov_SC01_009", func_8017F8B4); +void func_8017F8B4(void *a0) { + *(short *)((char *)a0 + 0xFA) = 0x1D00; + } -INCLUDE_ASM("asm/ov_SC01_009/nonmatchings/ov_SC01_009", func_8017F8C0); -INCLUDE_ASM("asm/ov_SC01_009/nonmatchings/ov_SC01_009", func_8017F8CC); +void func_8017F8C0(s32 *a0) { + *(s16 *)((s32)a0 + 0xFA) = 0x1A40; + } + + +void func_8017F8CC(void *a0) { + *(short *)((char *)a0 + 0xFA) = 0x2000; + } + + +void func_8017F8D8(s32 *a0) { + *(s16 *)((s32)a0 + 0xFA) = 0xA40; + } -INCLUDE_ASM("asm/ov_SC01_009/nonmatchings/ov_SC01_009", func_8017F8D8); INCLUDE_ASM("asm/ov_SC01_009/nonmatchings/ov_SC01_009", func_8017F8E4); @@ -4926,13 +4977,25 @@ INCLUDE_ASM("asm/ov_SC01_009/nonmatchings/ov_SC01_009", func_80181724); INCLUDE_ASM("asm/ov_SC01_009/nonmatchings/ov_SC01_009", func_80181758); -INCLUDE_ASM("asm/ov_SC01_009/nonmatchings/ov_SC01_009", func_80181768); +void func_80181768(void *a0) { + *(s16 *)((s32)a0 + 0x106) = 1; + } -INCLUDE_ASM("asm/ov_SC01_009/nonmatchings/ov_SC01_009", func_80181774); -INCLUDE_ASM("asm/ov_SC01_009/nonmatchings/ov_SC01_009", func_80181780); +void func_80181774(void *a0) { + *(short *)((char *)a0 + 0x106) = 0x2; + } + + +void func_80181780(void *a0) { + *(short *)((char *)a0 + 0x106) = 0x3; + } + + +void func_8018178C(void *a0) { + *(s16 *)((s32)a0 + 0x106) = 0; + } -INCLUDE_ASM("asm/ov_SC01_009/nonmatchings/ov_SC01_009", func_8018178C); INCLUDE_ASM("asm/ov_SC01_009/nonmatchings/ov_SC01_009", func_80181794); diff --git a/src/shared/engine_core.h b/src/shared/engine_core.h index b60961f6d7..b52971c521 100644 --- a/src/shared/engine_core.h +++ b/src/shared/engine_core.h @@ -23925,4 +23925,87 @@ ((void (*)(s32))func_80171928)(a0); \ } +#define DEFINE_func_8017C048() \ + void func_8017C048(void) { \ + } + +#define DEFINE_func_8017C120() \ + void func_8017C120(void) { \ + } + +#define DEFINE_func_8017C238() \ + void func_8017C238(void) { \ + } + +#define DEFINE_func_8017C338() \ + void func_8017C338(void) { \ + } + +#define DEFINE_func_8017D5CC() \ + s32 func_8017D5CC(void) { \ + return 0x1; \ + } + +#define DEFINE_func_801805A0() \ + void func_801805A0(void) { \ + } + +#define DEFINE_func_80180800() \ + void func_80180800(void) { \ + } + +#define DEFINE_func_80180A30() \ + void func_80180A30(void) { \ + } + +#define DEFINE_func_80180B04() \ + void func_80180B04(void *a0) { \ + *(short *)(*(int *)((char *)a0 + 0xcc) + 0xfc) = 1; \ + } + +#define DEFINE_func_80180B14() \ + void func_80180B14(void *a0) { \ + *(short *)(*(int *)((char *)a0 + 0xcc) + 0xfc) = 0x2; \ + } + +#define DEFINE_func_8017DA84() \ + s32 func_8017DA84(s32 arg0) { \ + if (arg0 < 5) { \ + return 0x57; \ + } \ + return 0x3D; \ + } + +#define DEFINE_func_801807E8() \ + void func_801807E8(void *a0) { \ + *(s16 *)((s32)a0 + 0x10A) = 0x60; \ + *(s16 *)((s32)a0 + 0x106) = 0; \ + *(s16 *)((s32)a0 + 0x108) = 0; \ + *(s16 *)((s32)a0 + 0xFE) = 0; \ + } + +#define DEFINE_func_8017D464() \ + s32 func_8017D464(u8 *a0) { \ + *(s32 *)(a0 + 0x28) = 0xA; \ + *(u8 *)(a0 + 0x15) += 1; \ + return 0; \ + } + +#define DEFINE_func_8017E0EC() \ + extern u16 D_80115112; \ + void func_8017E0EC(void) { \ + register s32 *p __asm__("$3"); /* pinned to $v1 */ \ + register s32 v __asm__("$2"); /* pinned to $v0 */ \ + p = &D_80115112; \ + v = *(u16 *)p + 1; \ + *(u16 *)p = v; \ + } + +#define DEFINE_func_8017D7E0() \ + extern void func_8017D808(s32 arg0, s32 arg1); \ + extern s32 D_801274E8; \ + void func_8017D7E0(s32 arg0) { \ + func_8017D808(arg0, &D_801274E8); \ + } + #endif