From 543bcbea66fde08750e16368d0ce385217fe3c18 Mon Sep 17 00:00:00 2001 From: David Benepe Date: Fri, 16 Jul 2021 11:41:48 -0500 Subject: [PATCH] Decompiled func_800B9228 --- .../gzip_huft_build.s | 0 .../unknown_0B8920/func_800B9228.s | 56 ------------------- src/font.c | 3 +- src/gzip.c | 2 +- src/unknown_0B8920.c | 22 ++------ 5 files changed, 9 insertions(+), 74 deletions(-) rename asm/non_matchings/{unknown_0B8920 => gzip}/gzip_huft_build.s (100%) delete mode 100644 asm/non_matchings/unknown_0B8920/func_800B9228.s diff --git a/asm/non_matchings/unknown_0B8920/gzip_huft_build.s b/asm/non_matchings/gzip/gzip_huft_build.s similarity index 100% rename from asm/non_matchings/unknown_0B8920/gzip_huft_build.s rename to asm/non_matchings/gzip/gzip_huft_build.s diff --git a/asm/non_matchings/unknown_0B8920/func_800B9228.s b/asm/non_matchings/unknown_0B8920/func_800B9228.s deleted file mode 100644 index 85a87d38..00000000 --- a/asm/non_matchings/unknown_0B8920/func_800B9228.s +++ /dev/null @@ -1,56 +0,0 @@ -glabel func_800B9228 -/* 0B9E28 800B9228 3C058013 */ lui $a1, %hi(D_8012A0E0) # $a1, 0x8013 -/* 0B9E2C 800B922C 8CA5A0E0 */ lw $a1, %lo(D_8012A0E0)($a1) -/* 0B9E30 800B9230 00001025 */ move $v0, $zero -/* 0B9E34 800B9234 18A00013 */ blez $a1, .L800B9284 -/* 0B9E38 800B9238 00001825 */ move $v1, $zero -/* 0B9E3C 800B923C 3C06800E */ lui $a2, %hi(D_800E30D8) # $a2, 0x800e -/* 0B9E40 800B9240 8CC630D8 */ lw $a2, %lo(D_800E30D8)($a2) -/* 0B9E44 800B9244 2407001C */ li $a3, 28 -/* 0B9E48 800B9248 8CCE0000 */ lw $t6, ($a2) -/* 0B9E4C 800B924C 00000000 */ nop -/* 0B9E50 800B9250 108E000C */ beq $a0, $t6, .L800B9284 -/* 0B9E54 800B9254 00000000 */ nop -.L800B9258: -/* 0B9E58 800B9258 24420001 */ addiu $v0, $v0, 1 -/* 0B9E5C 800B925C 0045082A */ slt $at, $v0, $a1 -/* 0B9E60 800B9260 10200008 */ beqz $at, .L800B9284 -/* 0B9E64 800B9264 00000000 */ nop -/* 0B9E68 800B9268 00470019 */ multu $v0, $a3 -/* 0B9E6C 800B926C 00007812 */ mflo $t7 -/* 0B9E70 800B9270 00CFC021 */ addu $t8, $a2, $t7 -/* 0B9E74 800B9274 8F190000 */ lw $t9, ($t8) -/* 0B9E78 800B9278 00000000 */ nop -/* 0B9E7C 800B927C 1499FFF6 */ bne $a0, $t9, .L800B9258 -/* 0B9E80 800B9280 00000000 */ nop -.L800B9284: -/* 0B9E84 800B9284 2407001C */ li $a3, 28 -/* 0B9E88 800B9288 00470019 */ multu $v0, $a3 -/* 0B9E8C 800B928C 3C08800E */ lui $t0, %hi(D_800E30D8) # $t0, 0x800e -/* 0B9E90 800B9290 8D0830D8 */ lw $t0, %lo(D_800E30D8)($t0) -/* 0B9E94 800B9294 3C0D800E */ lui $t5, %hi(D_800E30D4) # $t5, 0x800e -/* 0B9E98 800B9298 8DAD30D4 */ lw $t5, %lo(D_800E30D4)($t5) -/* 0B9E9C 800B929C 3C05800E */ lui $a1, %hi(D_800E30DC) # $a1, 0x800e -/* 0B9EA0 800B92A0 24A530DC */ addiu $a1, %lo(D_800E30DC) # addiu $a1, $a1, 0x30dc -/* 0B9EA4 800B92A4 3C018013 */ lui $at, %hi(D_8012A1E8) # $at, 0x8013 -/* 0B9EA8 800B92A8 00004812 */ mflo $t1 -/* 0B9EAC 800B92AC 01095021 */ addu $t2, $t0, $t1 -/* 0B9EB0 800B92B0 8D4B000C */ lw $t3, 0xc($t2) -/* 0B9EB4 800B92B4 00000000 */ nop -/* 0B9EB8 800B92B8 000B6080 */ sll $t4, $t3, 2 -/* 0B9EBC 800B92BC 01AC7021 */ addu $t6, $t5, $t4 -/* 0B9EC0 800B92C0 8DCF0000 */ lw $t7, ($t6) -/* 0B9EC4 800B92C4 00000000 */ nop -/* 0B9EC8 800B92C8 11E00008 */ beqz $t7, .L800B92EC -/* 0B9ECC 800B92CC 00000000 */ nop -/* 0B9ED0 800B92D0 8CA40000 */ lw $a0, ($a1) -/* 0B9ED4 800B92D4 24030001 */ li $v1, 1 -/* 0B9ED8 800B92D8 0004C040 */ sll $t8, $a0, 1 -/* 0B9EDC 800B92DC 00380821 */ addu $at, $at, $t8 -/* 0B9EE0 800B92E0 A422A1E8 */ sh $v0, %lo(D_8012A1E8)($at) -/* 0B9EE4 800B92E4 24990001 */ addiu $t9, $a0, 1 -/* 0B9EE8 800B92E8 ACB90000 */ sw $t9, ($a1) -.L800B92EC: -/* 0B9EEC 800B92EC 03E00008 */ jr $ra -/* 0B9EF0 800B92F0 00601025 */ move $v0, $v1 - diff --git a/src/font.c b/src/font.c index 924c39ec..df519e1f 100644 --- a/src/font.c +++ b/src/font.c @@ -56,10 +56,11 @@ OSDevMgr __osPiDevMgr = { 0, NULL, NULL, NULL, NULL, NULL, NULL }; #define OS_PIM_STACKSIZE 4096 u8 piThreadStack[256];//piThreadStack[OS_PIM_STACKSIZE]; - s32 D_80129BB0[256]; s32 D_80129FB0[3]; s32 D_80129FBC; + +// Used in unknown_0B8920 s32 D_80129FC0; s32 D_80129FC4; s32 D_80129FC8; diff --git a/src/gzip.c b/src/gzip.c index 63ac549d..4a04a6b3 100644 --- a/src/gzip.c +++ b/src/gzip.c @@ -251,5 +251,5 @@ void gzip_huft_build(u32 *b, u32 n, u32 s, u16 *d, u16 *e, huft **t, s32 *m) { return; } #else -GLOBAL_ASM("asm/non_matchings/unknown_0B8920/gzip_huft_build.s") +GLOBAL_ASM("asm/non_matchings/gzip/gzip_huft_build.s") #endif diff --git a/src/unknown_0B8920.c b/src/unknown_0B8920.c index 1188c05e..82bb28ca 100644 --- a/src/unknown_0B8920.c +++ b/src/unknown_0B8920.c @@ -118,6 +118,8 @@ const char D_800E9260[] = "\nError :: can not add another wave swell, reached li extern s32 D_8012A0D8; extern s32 D_8012A0DC; +extern s32 D_8012A0E0; +extern s16 D_8012A1E8[256]; /*****************************/ @@ -195,30 +197,18 @@ void func_800B8B8C(void) { GLOBAL_ASM("asm/non_matchings/unknown_0B8920/func_800B8C04.s") -#if 1 -GLOBAL_ASM("asm/non_matchings/unknown_0B8920/func_800B9228.s") -#else - -extern s32 D_800E30DC; -extern s32 D_8012A0E0; -extern s16* D_8012A1E8; - s32 func_800B9228(unk800DC918_04 * arg0){ s32 v0 = 0; - s32 retval = 0; - s32 tmp; + s32 result = 0; while(v0 < D_8012A0E0 && arg0 != D_800E30D8[v0].unk00){ v0++; }; if(D_800E30D4[D_800E30D8[v0].unk0C]){ - //load array address differently; - retval = 1; - *(D_8012A1E8 + (tmp = D_800E30DC)) = v0; - D_800E30DC = tmp + 1; + result = 1; + D_8012A1E8[D_800E30DC++] = v0; } - return retval; + return result; } -#endif GLOBAL_ASM("asm/non_matchings/unknown_0B8920/func_800B92F4.s") GLOBAL_ASM("asm/non_matchings/unknown_0B8920/func_800B97A8.s")