From 42bfef2838570b888b80eb5007fb948ec88fd168 Mon Sep 17 00:00:00 2001 From: Ryan Myers Date: Fri, 24 Sep 2021 22:15:05 -0400 Subject: [PATCH] Found a match for func_800C018C --- .../fade_transition/func_800C018C.s | 22 ------------------- src/fade_transition.c | 13 ++++------- src/fade_transition.h | 2 +- 3 files changed, 5 insertions(+), 32 deletions(-) delete mode 100644 asm/non_matchings/fade_transition/func_800C018C.s diff --git a/asm/non_matchings/fade_transition/func_800C018C.s b/asm/non_matchings/fade_transition/func_800C018C.s deleted file mode 100644 index 785c21ea..00000000 --- a/asm/non_matchings/fade_transition/func_800C018C.s +++ /dev/null @@ -1,22 +0,0 @@ -glabel func_800C018C -/* 0C0D8C 800C018C 3C02800E */ lui $v0, %hi(D_800E31B0) # $v0, 0x800e -/* 0C0D90 800C0190 944231B0 */ lhu $v0, %lo(D_800E31B0)($v0) -/* 0C0D94 800C0194 00000000 */ nop -/* 0C0D98 800C0198 0002702B */ sltu $t6, $zero, $v0 -/* 0C0D9C 800C019C 15C0000C */ bnez $t6, .L800C01D0 -/* 0C0DA0 800C01A0 01C01025 */ move $v0, $t6 -/* 0C0DA4 800C01A4 3C02800E */ lui $v0, %hi(D_800E31B4) # $v0, 0x800e -/* 0C0DA8 800C01A8 944231B4 */ lhu $v0, %lo(D_800E31B4)($v0) -/* 0C0DAC 800C01AC 00000000 */ nop -/* 0C0DB0 800C01B0 0002782B */ sltu $t7, $zero, $v0 -/* 0C0DB4 800C01B4 11E00006 */ beqz $t7, .L800C01D0 -/* 0C0DB8 800C01B8 01E01025 */ move $v0, $t7 -/* 0C0DBC 800C01BC 3C02800E */ lui $v0, %hi(D_800E31BC) # $v0, 0x800e -/* 0C0DC0 800C01C0 804231BC */ lb $v0, %lo(D_800E31BC)($v0) -/* 0C0DC4 800C01C4 00000000 */ nop -/* 0C0DC8 800C01C8 0002C02B */ sltu $t8, $zero, $v0 -/* 0C0DCC 800C01CC 03001025 */ move $v0, $t8 -.L800C01D0: -/* 0C0DD0 800C01D0 03E00008 */ jr $ra -/* 0C0DD4 800C01D4 00000000 */ nop - diff --git a/src/fade_transition.c b/src/fade_transition.c index 9bf6dfce..60070b29 100644 --- a/src/fade_transition.c +++ b/src/fade_transition.c @@ -219,21 +219,16 @@ void func_800C0180(void) { D_800E31A0 = 0; } -#ifdef NON_MATCHING -// Regalloc issues. Uses v1 instead of v0. -s32 func_800C018C(void) { - s32 phi_v0 = (D_800E31B0 != 0); +//@bug: This doesn't seem to guarantee a return. +u32 func_800C018C(void) { + u32 phi_v0 = (D_800E31B0 != 0); if (phi_v0 == 0) { phi_v0 = (D_800E31B4 != 0); if (phi_v0 != 0) { - phi_v0 = (D_800E31BC != 0); + return (D_800E31BC != 0); } } - return phi_v0; } -#else -GLOBAL_ASM("asm/non_matchings/fade_transition/func_800C018C.s") -#endif #ifdef NON_MATCHING diff --git a/src/fade_transition.h b/src/fade_transition.h index f753dc99..a410fe60 100644 --- a/src/fade_transition.h +++ b/src/fade_transition.h @@ -32,6 +32,7 @@ extern u32 osTvType; void func_800C0170(void); void func_800C0180(void); +u32 func_800C018C(void); void func_800C0724(void); s32 func_800C0494(s32 arg0); void render_fade_transition(s32 dlist, s32 arg1, s32 arg2); @@ -51,7 +52,6 @@ void func_800C27A0(s32 arg0); //Non Matching void func_800C0B00(FadeTransition *transition, s32, s32, s16*, s8*, s8*, s8*, s8*, s8*); //Non Matching void func_800C15D4(FadeTransition *transition); //Non Matching void func_800C2640(FadeTransition *transition); //Non Matching -s32 func_800C018C(void); //Non Matching s32 func_800C01D8(FadeTransition *transition); //Non Matching #endif