From 1a86589bfd0dfb1b0e7b4fdc6d9c9d05d57230be Mon Sep 17 00:00:00 2001 From: Max Date: Wed, 21 Oct 2020 18:03:41 -0400 Subject: Bring code_801DB81C closer to matching: only single instruction misordering left --- obj_files.mk | 1 + src/code_801DB81C.cpp | 35 +++++++++++++++++++++++++++++++++-- 2 files changed, 34 insertions(+), 2 deletions(-) diff --git a/obj_files.mk b/obj_files.mk index 7bfc40a..e186d3f 100644 --- a/obj_files.mk +++ b/obj_files.mk @@ -222,6 +222,7 @@ SPLIT_O_FILES := \ $(BUILD_DIR)/src/code_801DB040.o \ $(BUILD_DIR)/src/code_801DB81C.o \ $(BUILD_DIR)/asm/code_801DB81C_asm.o \ + $(BUILD_DIR)/src/func_801DB9FC.o \ $(BUILD_DIR)/asm/code_801DBB3C.o \ $(BUILD_DIR)/asm/code_801DBE90.o \ $(BUILD_DIR)/asm/code_801DCE6C.o \ diff --git a/src/code_801DB81C.cpp b/src/code_801DB81C.cpp index 4cffb24..f0fabab 100644 --- a/src/code_801DB81C.cpp +++ b/src/code_801DB81C.cpp @@ -201,11 +201,12 @@ asm u32 func_801DB978(u8 p1) } #pragma peephole on #endif - +/* void func_801DB9FC(void) { + u32 i, j; if (lbl_8063F304 != 1) { - u32 i = 31, j = 0; + i = 31, j = 0; do { u8 r0 = lbl_80491370[j].unk0; @@ -216,6 +217,36 @@ void func_801DB9FC(void) lbl_8063F304 = 1; } } +*/ +void func_801DB9FC(void) +{ + u32 i; + u32 j; + unsigned short new_var; + char new_var2; + u32 *new_var3; + new_var = 0xff; + if (lbl_8063F304 != 1) + { + new_var2 = 9; + i = 31, j = 0; + new_var3 = &i; + do + { + u8 r0 = lbl_80491370[j].unk0; + if (((u32)r0 != new_var) && lbl_80491370[j].unk4) + { + lbl_80491370[j].unk4(0, lbl_8063F2FC + (r0 << new_var2), lbl_80491370[j].unk1); + } + + i = *new_var3; + j++; + } + while (((i--)) != 0); + do { lbl_8063F304 = 1; } while (0); + } + +} } -- cgit v1.2.3