From d92e5af46bbbe70f4bf7b430a27b5ab2d4800f07 Mon Sep 17 00:00:00 2001 From: Faschz Date: Sun, 2 Aug 2020 20:02:03 -0500 Subject: [PATCH] Decomp 5 functions in unknown_072E50 func_80072708, func_80073C4C, func_80073C54, func_80075AEC, and func_80076164 --- .../unknown_072E50/func_80072708.s | 6 -- .../unknown_072E50/func_80073C4C.s | 4 -- .../unknown_072E50/func_80073C54.s | 4 -- .../unknown_072E50/func_80075AEC.s | 13 ---- .../unknown_072E50/func_80076164.s | 15 ----- src/unknown_072E50.c | 67 +++++++++++++++++-- 6 files changed, 62 insertions(+), 47 deletions(-) delete mode 100644 asm/non_matchings/unknown_072E50/func_80072708.s delete mode 100644 asm/non_matchings/unknown_072E50/func_80073C4C.s delete mode 100644 asm/non_matchings/unknown_072E50/func_80073C54.s delete mode 100644 asm/non_matchings/unknown_072E50/func_80075AEC.s delete mode 100644 asm/non_matchings/unknown_072E50/func_80076164.s diff --git a/asm/non_matchings/unknown_072E50/func_80072708.s b/asm/non_matchings/unknown_072E50/func_80072708.s deleted file mode 100644 index 4dbbcd4d..00000000 --- a/asm/non_matchings/unknown_072E50/func_80072708.s +++ /dev/null @@ -1,6 +0,0 @@ -glabel func_80072708 -/* 073308 80072708 240E0003 */ li $t6, 3 -/* 07330C 8007270C 3C01800E */ lui $at, 0x800e -/* 073310 80072710 03E00008 */ jr $ra -/* 073314 80072714 AC2EE48C */ sw $t6, -0x1b74($at) - diff --git a/asm/non_matchings/unknown_072E50/func_80073C4C.s b/asm/non_matchings/unknown_072E50/func_80073C4C.s deleted file mode 100644 index c83da225..00000000 --- a/asm/non_matchings/unknown_072E50/func_80073C4C.s +++ /dev/null @@ -1,4 +0,0 @@ -glabel func_80073C4C -/* 07484C 80073C4C 03E00008 */ jr $ra -/* 074850 80073C50 24020100 */ li $v0, 256 - diff --git a/asm/non_matchings/unknown_072E50/func_80073C54.s b/asm/non_matchings/unknown_072E50/func_80073C54.s deleted file mode 100644 index 59017055..00000000 --- a/asm/non_matchings/unknown_072E50/func_80073C54.s +++ /dev/null @@ -1,4 +0,0 @@ -glabel func_80073C54 -/* 074854 80073C54 03E00008 */ jr $ra -/* 074858 80073C58 24020200 */ li $v0, 512 - diff --git a/asm/non_matchings/unknown_072E50/func_80075AEC.s b/asm/non_matchings/unknown_072E50/func_80075AEC.s deleted file mode 100644 index 6e8f07b4..00000000 --- a/asm/non_matchings/unknown_072E50/func_80075AEC.s +++ /dev/null @@ -1,13 +0,0 @@ -glabel func_80075AEC -/* 0766EC 80075AEC 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 0766F0 80075AF0 AFA40018 */ sw $a0, 0x18($sp) -/* 0766F4 80075AF4 3C048012 */ lui $a0, %hi(D_80124010) # $a0, 0x8012 -/* 0766F8 80075AF8 AFBF0014 */ sw $ra, 0x14($sp) -/* 0766FC 80075AFC 8C844010 */ lw $a0, %lo(D_80124010)($a0) -/* 076700 80075B00 0C0333F8 */ jal func_800CCFE0 -/* 076704 80075B04 00000000 */ nop -/* 076708 80075B08 8FBF0014 */ lw $ra, 0x14($sp) -/* 07670C 80075B0C 27BD0018 */ addiu $sp, $sp, 0x18 -/* 076710 80075B10 03E00008 */ jr $ra -/* 076714 80075B14 00001025 */ move $v0, $zero - diff --git a/asm/non_matchings/unknown_072E50/func_80076164.s b/asm/non_matchings/unknown_072E50/func_80076164.s deleted file mode 100644 index 6284974a..00000000 --- a/asm/non_matchings/unknown_072E50/func_80076164.s +++ /dev/null @@ -1,15 +0,0 @@ -glabel func_80076164 -/* 076D64 80076164 3C04800E */ lui $a0, %hi(D_800DE440) # $a0, 0x800e -/* 076D68 80076168 8C84E440 */ lw $a0, %lo(D_800DE440)($a0) -/* 076D6C 8007616C 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 076D70 80076170 10800003 */ beqz $a0, .L80076180 -/* 076D74 80076174 AFBF0014 */ sw $ra, 0x14($sp) -/* 076D78 80076178 0C01C450 */ jal func_80071140 -/* 076D7C 8007617C 00000000 */ nop -.L80076180: -/* 076D80 80076180 8FBF0014 */ lw $ra, 0x14($sp) -/* 076D84 80076184 3C01800E */ lui $at, %hi(D_800DE440) # $at, 0x800e -/* 076D88 80076188 AC20E440 */ sw $zero, %lo(D_800DE440)($at) -/* 076D8C 8007618C 03E00008 */ jr $ra -/* 076D90 80076190 27BD0018 */ addiu $sp, $sp, 0x18 - diff --git a/src/unknown_072E50.c b/src/unknown_072E50.c index dc1e0688..88ba8483 100644 --- a/src/unknown_072E50.c +++ b/src/unknown_072E50.c @@ -4,12 +4,20 @@ #include "types.h" #include "macros.h" +extern s32 D_800DE440; +extern s32 D_800DE48C; +extern s32 D_80124010; + GLOBAL_ASM("asm/non_matchings/unknown_072E50/func_80072250.s") GLOBAL_ASM("asm/non_matchings/unknown_072E50/func_80072298.s") GLOBAL_ASM("asm/non_matchings/unknown_072E50/func_80072348.s") GLOBAL_ASM("asm/non_matchings/unknown_072E50/func_80072424.s") GLOBAL_ASM("asm/non_matchings/unknown_072E50/func_80072578.s") -GLOBAL_ASM("asm/non_matchings/unknown_072E50/func_80072708.s") + +void func_80072708(void) { + D_800DE48C = 3; +} + GLOBAL_ASM("asm/non_matchings/unknown_072E50/func_80072718.s") GLOBAL_ASM("asm/non_matchings/unknown_072E50/func_80072C54.s") GLOBAL_ASM("asm/non_matchings/unknown_072E50/func_80072E28.s") @@ -17,8 +25,15 @@ GLOBAL_ASM("asm/non_matchings/unknown_072E50/func_8007306C.s") GLOBAL_ASM("asm/non_matchings/unknown_072E50/func_800732E8.s") GLOBAL_ASM("asm/non_matchings/unknown_072E50/func_80073588.s") GLOBAL_ASM("asm/non_matchings/unknown_072E50/func_800738A4.s") -GLOBAL_ASM("asm/non_matchings/unknown_072E50/func_80073C4C.s") -GLOBAL_ASM("asm/non_matchings/unknown_072E50/func_80073C54.s") + +s32 func_80073C4C(void) { + return 0x100; +} + +s32 func_80073C54(void) { + return 0x200; +} + GLOBAL_ASM("asm/non_matchings/unknown_072E50/func_80073C5C.s") GLOBAL_ASM("asm/non_matchings/unknown_072E50/func_80073E1C.s") GLOBAL_ASM("asm/non_matchings/unknown_072E50/func_80073F5C.s") @@ -41,12 +56,24 @@ GLOBAL_ASM("asm/non_matchings/unknown_072E50/func_80075000.s") GLOBAL_ASM("asm/non_matchings/unknown_072E50/func_800753D8.s") GLOBAL_ASM("asm/non_matchings/unknown_072E50/func_800756D4.s") GLOBAL_ASM("asm/non_matchings/unknown_072E50/func_800758DC.s") -GLOBAL_ASM("asm/non_matchings/unknown_072E50/func_80075AEC.s") + +s32 func_80075AEC(s32 arg0) { + func_800CCFE0(D_80124010); + return 0; +} + GLOBAL_ASM("asm/non_matchings/unknown_072E50/func_80075B18.s") GLOBAL_ASM("asm/non_matchings/unknown_072E50/func_80075D38.s") GLOBAL_ASM("asm/non_matchings/unknown_072E50/func_80075DC4.s") GLOBAL_ASM("asm/non_matchings/unknown_072E50/func_80075E60.s") -GLOBAL_ASM("asm/non_matchings/unknown_072E50/func_80076164.s") + +void func_80076164(void) { + if (D_800DE440 != 0) { + func_80071140(D_800DE440); + } + D_800DE440 = 0; +} + GLOBAL_ASM("asm/non_matchings/unknown_072E50/func_80076194.s") GLOBAL_ASM("asm/non_matchings/unknown_072E50/func_800762C8.s") GLOBAL_ASM("asm/non_matchings/unknown_072E50/func_80076388.s") @@ -57,6 +84,36 @@ GLOBAL_ASM("asm/non_matchings/unknown_072E50/func_80076924.s") GLOBAL_ASM("asm/non_matchings/unknown_072E50/func_8007698C.s") GLOBAL_ASM("asm/non_matchings/unknown_072E50/func_80076A38.s") GLOBAL_ASM("asm/non_matchings/unknown_072E50/func_80076AF4.s") +/* +// Last function of file +s32 func_80076AF4(s32 arg0, s32 arg1) { + s32* temp; + s32 pad; + s32 ret; + + ret = 6; + temp = func_80070C9C(0x100, 0xFF); + if (func_80076610(arg0, arg1, temp, 0x100) == 0) { + switch(*temp) { + case 0x47414D44: // GAMD + ret = 3; + break; + case 0x54494D44: // TIMD + ret = 4; + break; + case 0x47485353: // GHSS + ret = 5; + break; + default: + ret = 6; + break; + } + } + func_80071140(temp); + return ret; +} +*/ + GLOBAL_ASM("asm/non_matchings/unknown_072E50/func_80076BA0.s") GLOBAL_ASM("asm/non_matchings/unknown_072E50/func_80076C58.s") GLOBAL_ASM("asm/non_matchings/unknown_072E50/func_80076E68.s")