From 4adb2c10fe9cf6f771980d2ff02c27eae2f4af8d Mon Sep 17 00:00:00 2001 From: Faschz Date: Wed, 1 Jul 2020 21:24:20 -0500 Subject: [PATCH] Decomp 5 functions in unknown_003260 func_80002A50, func_80002A74, func_80003160, func_800049D8, and sfxVolumeSliderPercentage Also fix return type on func_800015C8 --- .../unknown_003260/func_80002A50.s | 11 ------ .../unknown_003260/func_80002A74.s | 11 ------ .../unknown_003260/func_80003160.s | 10 ------ .../unknown_003260/func_800049D8.s | 10 ------ .../sfxVolumeSliderPercentage.s | 6 ---- src/unknown_001050.c | 4 +-- src/unknown_003260.c | 36 ++++++++++++++++--- 7 files changed, 33 insertions(+), 55 deletions(-) delete mode 100644 asm/non_matchings/unknown_003260/func_80002A50.s delete mode 100644 asm/non_matchings/unknown_003260/func_80002A74.s delete mode 100644 asm/non_matchings/unknown_003260/func_80003160.s delete mode 100644 asm/non_matchings/unknown_003260/func_800049D8.s delete mode 100644 asm/non_matchings/unknown_003260/sfxVolumeSliderPercentage.s diff --git a/asm/non_matchings/unknown_003260/func_80002A50.s b/asm/non_matchings/unknown_003260/func_80002A50.s deleted file mode 100644 index f2ab99ff..00000000 --- a/asm/non_matchings/unknown_003260/func_80002A50.s +++ /dev/null @@ -1,11 +0,0 @@ -glabel func_80002A50 -/* 003650 80002A50 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 003654 80002A54 AFBF0014 */ sw $ra, 0x14($sp) -/* 003658 80002A58 3C048011 */ lui $a0, %hi(D_80115FB0) # $a0, 0x8011 -/* 00365C 80002A5C 0C032268 */ jal osStartThread -/* 003660 80002A60 24845FB0 */ addiu $a0, %lo(D_80115FB0) # addiu $a0, $a0, 0x5fb0 -/* 003664 80002A64 8FBF0014 */ lw $ra, 0x14($sp) -/* 003668 80002A68 27BD0018 */ addiu $sp, $sp, 0x18 -/* 00366C 80002A6C 03E00008 */ jr $ra -/* 003670 80002A70 00000000 */ nop - diff --git a/asm/non_matchings/unknown_003260/func_80002A74.s b/asm/non_matchings/unknown_003260/func_80002A74.s deleted file mode 100644 index cee3f5b1..00000000 --- a/asm/non_matchings/unknown_003260/func_80002A74.s +++ /dev/null @@ -1,11 +0,0 @@ -glabel func_80002A74 -/* 003674 80002A74 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 003678 80002A78 AFBF0014 */ sw $ra, 0x14($sp) -/* 00367C 80002A7C 3C048011 */ lui $a0, %hi(D_80115FB0) # $a0, 0x8011 -/* 003680 80002A80 0C0322BC */ jal func_800C8AF0 -/* 003684 80002A84 24845FB0 */ addiu $a0, %lo(D_80115FB0) # addiu $a0, $a0, 0x5fb0 -/* 003688 80002A88 8FBF0014 */ lw $ra, 0x14($sp) -/* 00368C 80002A8C 27BD0018 */ addiu $sp, $sp, 0x18 -/* 003690 80002A90 03E00008 */ jr $ra -/* 003694 80002A94 00000000 */ nop - diff --git a/asm/non_matchings/unknown_003260/func_80003160.s b/asm/non_matchings/unknown_003260/func_80003160.s deleted file mode 100644 index f57c9003..00000000 --- a/asm/non_matchings/unknown_003260/func_80003160.s +++ /dev/null @@ -1,10 +0,0 @@ -glabel func_80003160 -/* 003D60 80003160 2C810101 */ sltiu $at, $a0, 0x101 -/* 003D64 80003164 14200002 */ bnez $at, .L80003170 -/* 003D68 80003168 00000000 */ nop -/* 003D6C 8000316C 24040100 */ li $a0, 256 -.L80003170: -/* 003D70 80003170 3C01800E */ lui $at, 0x800e -/* 003D74 80003174 03E00008 */ jr $ra -/* 003D78 80003178 AC24C6C0 */ sw $a0, -0x3940($at) - diff --git a/asm/non_matchings/unknown_003260/func_800049D8.s b/asm/non_matchings/unknown_003260/func_800049D8.s deleted file mode 100644 index 1f36143d..00000000 --- a/asm/non_matchings/unknown_003260/func_800049D8.s +++ /dev/null @@ -1,10 +0,0 @@ -glabel func_800049D8 -/* 0055D8 800049D8 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 0055DC 800049DC AFBF0014 */ sw $ra, 0x14($sp) -/* 0055E0 800049E0 0C001236 */ jal func_800048D8 -/* 0055E4 800049E4 24040003 */ li $a0, 3 -/* 0055E8 800049E8 8FBF0014 */ lw $ra, 0x14($sp) -/* 0055EC 800049EC 27BD0018 */ addiu $sp, $sp, 0x18 -/* 0055F0 800049F0 03E00008 */ jr $ra -/* 0055F4 800049F4 00000000 */ nop - diff --git a/asm/non_matchings/unknown_003260/sfxVolumeSliderPercentage.s b/asm/non_matchings/unknown_003260/sfxVolumeSliderPercentage.s deleted file mode 100644 index 4905ef87..00000000 --- a/asm/non_matchings/unknown_003260/sfxVolumeSliderPercentage.s +++ /dev/null @@ -1,6 +0,0 @@ -glabel sfxVolumeSliderPercentage -/* 003D7C 8000317C 3C02800E */ lui $v0, %hi(D_800DC6C0) # $v0, 0x800e -/* 003D80 80003180 8C42C6C0 */ lw $v0, %lo(D_800DC6C0)($v0) -/* 003D84 80003184 03E00008 */ jr $ra -/* 003D88 80003188 00000000 */ nop - diff --git a/src/unknown_001050.c b/src/unknown_001050.c index cd058d7d..ee2992db 100644 --- a/src/unknown_001050.c +++ b/src/unknown_001050.c @@ -78,8 +78,8 @@ s16 func_800015B8(void) { return D_80115D30; } -s32 func_800015C8(void) { - return (func_800C7A50(D_800DC630) == 1) & 0xFF; +u8 func_800015C8(void) { + return (func_800C7A50(D_800DC630) == 1); } GLOBAL_ASM("asm/non_matchings/unknown_001050/func_800015F8.s") diff --git a/src/unknown_003260.c b/src/unknown_003260.c index 073a2fb6..d97b2969 100644 --- a/src/unknown_003260.c +++ b/src/unknown_003260.c @@ -4,17 +4,39 @@ #include "types.h" #include "macros.h" +extern s32 D_800DC6C0; + +extern s32* D_80115FB0; + GLOBAL_ASM("asm/non_matchings/unknown_003260/func_80002660.s") -GLOBAL_ASM("asm/non_matchings/unknown_003260/func_80002A50.s") -GLOBAL_ASM("asm/non_matchings/unknown_003260/func_80002A74.s") + +void func_80002A50(void) { + osStartThread(&D_80115FB0); +} + +void func_80002A74(void) { + func_800C8AF0(&D_80115FB0); +} + GLOBAL_ASM("asm/non_matchings/unknown_003260/D_80002A98.s") GLOBAL_ASM("asm/non_matchings/unknown_003260/func_80002C00.s") GLOBAL_ASM("asm/non_matchings/unknown_003260/func_80002DF8.s") GLOBAL_ASM("asm/non_matchings/unknown_003260/D_80002E38.s") GLOBAL_ASM("asm/non_matchings/unknown_003260/D_80003008.s") GLOBAL_ASM("asm/non_matchings/unknown_003260/func_80003040.s") -GLOBAL_ASM("asm/non_matchings/unknown_003260/func_80003160.s") -GLOBAL_ASM("asm/non_matchings/unknown_003260/sfxVolumeSliderPercentage.s") + +void func_80003160(u32 arg0) { + if (arg0 > 256) { + arg0 = 256; + } + + D_800DC6C0 = arg0; +} + +s32 sfxVolumeSliderPercentage(void) { + return D_800DC6C0; +} + GLOBAL_ASM("asm/non_matchings/unknown_003260/func_8000318C.s") GLOBAL_ASM("asm/non_matchings/unknown_003260/func_800031C0.s") GLOBAL_ASM("asm/non_matchings/unknown_003260/D_800033C8.s") @@ -30,6 +52,10 @@ GLOBAL_ASM("asm/non_matchings/unknown_003260/func_80004638.s") GLOBAL_ASM("asm/non_matchings/unknown_003260/func_80004668.s") GLOBAL_ASM("asm/non_matchings/unknown_003260/func_8000488C.s") GLOBAL_ASM("asm/non_matchings/unknown_003260/func_800048D8.s") -GLOBAL_ASM("asm/non_matchings/unknown_003260/func_800049D8.s") + +void func_800049D8(void) { + func_800048D8(3); +} + GLOBAL_ASM("asm/non_matchings/unknown_003260/func_800049F8.s") GLOBAL_ASM("asm/non_matchings/unknown_003260/func_80004A60.s")