From 09ea6647003326a4c116859bd19795e762a163e5 Mon Sep 17 00:00:00 2001 From: Faschz Date: Wed, 1 Jul 2020 18:43:36 -0500 Subject: [PATCH] Decomp 12 functions in unknown_001050 func_80000B18, func_80000B28, func_80000C1C, func_80000C2C, func_80000CBC, func_80001050, func_800015B8, func_800015C8, func_800018E0, func_80001980, func_80001AEC, and musicVolumeSliderPercentage --- .../unknown_001050/func_80000B18.s | 6 -- .../unknown_001050/func_80000B28.s | 5 - .../unknown_001050/func_80000C1C.s | 6 -- .../unknown_001050/func_80000C2C.s | 5 - .../unknown_001050/func_80000CBC.s | 19 ---- .../unknown_001050/func_80001050.s | 5 - .../unknown_001050/func_800015B8.s | 6 -- .../unknown_001050/func_800015C8.s | 14 --- .../unknown_001050/func_800018E0.s | 17 ---- .../unknown_001050/func_80001980.s | 6 -- .../unknown_001050/func_80001AEC.s | 6 -- .../musicVolumeSliderPercentage.s | 6 -- src/unknown_001050.c | 91 ++++++++++++++++--- 13 files changed, 79 insertions(+), 113 deletions(-) delete mode 100644 asm/non_matchings/unknown_001050/func_80000B18.s delete mode 100644 asm/non_matchings/unknown_001050/func_80000B28.s delete mode 100644 asm/non_matchings/unknown_001050/func_80000C1C.s delete mode 100644 asm/non_matchings/unknown_001050/func_80000C2C.s delete mode 100644 asm/non_matchings/unknown_001050/func_80000CBC.s delete mode 100644 asm/non_matchings/unknown_001050/func_80001050.s delete mode 100644 asm/non_matchings/unknown_001050/func_800015B8.s delete mode 100644 asm/non_matchings/unknown_001050/func_800015C8.s delete mode 100644 asm/non_matchings/unknown_001050/func_800018E0.s delete mode 100644 asm/non_matchings/unknown_001050/func_80001980.s delete mode 100644 asm/non_matchings/unknown_001050/func_80001AEC.s delete mode 100644 asm/non_matchings/unknown_001050/musicVolumeSliderPercentage.s diff --git a/asm/non_matchings/unknown_001050/func_80000B18.s b/asm/non_matchings/unknown_001050/func_80000B18.s deleted file mode 100644 index 3cd1b6da..00000000 --- a/asm/non_matchings/unknown_001050/func_80000B18.s +++ /dev/null @@ -1,6 +0,0 @@ -glabel func_80000B18 -/* 001718 80000B18 240E0001 */ li $t6, 1 -/* 00171C 80000B1C 3C01800E */ lui $at, 0x800e -/* 001720 80000B20 03E00008 */ jr $ra -/* 001724 80000B24 AC2EC648 */ sw $t6, -0x39b8($at) - diff --git a/asm/non_matchings/unknown_001050/func_80000B28.s b/asm/non_matchings/unknown_001050/func_80000B28.s deleted file mode 100644 index 0e63e3d2..00000000 --- a/asm/non_matchings/unknown_001050/func_80000B28.s +++ /dev/null @@ -1,5 +0,0 @@ -glabel func_80000B28 -/* 001728 80000B28 3C01800E */ lui $at, 0x800e -/* 00172C 80000B2C 03E00008 */ jr $ra -/* 001730 80000B30 AC20C648 */ sw $zero, -0x39b8($at) - diff --git a/asm/non_matchings/unknown_001050/func_80000C1C.s b/asm/non_matchings/unknown_001050/func_80000C1C.s deleted file mode 100644 index 8ed6fbca..00000000 --- a/asm/non_matchings/unknown_001050/func_80000C1C.s +++ /dev/null @@ -1,6 +0,0 @@ -glabel func_80000C1C -/* 00181C 80000C1C 240E0001 */ li $t6, 1 -/* 001820 80000C20 3C01800E */ lui $at, 0x800e -/* 001824 80000C24 03E00008 */ jr $ra -/* 001828 80000C28 A02EC670 */ sb $t6, -0x3990($at) - diff --git a/asm/non_matchings/unknown_001050/func_80000C2C.s b/asm/non_matchings/unknown_001050/func_80000C2C.s deleted file mode 100644 index afcf37cf..00000000 --- a/asm/non_matchings/unknown_001050/func_80000C2C.s +++ /dev/null @@ -1,5 +0,0 @@ -glabel func_80000C2C -/* 00182C 80000C2C 3C01800E */ lui $at, 0x800e -/* 001830 80000C30 03E00008 */ jr $ra -/* 001834 80000C34 A020C670 */ sb $zero, -0x3990($at) - diff --git a/asm/non_matchings/unknown_001050/func_80000CBC.s b/asm/non_matchings/unknown_001050/func_80000CBC.s deleted file mode 100644 index 163bc14f..00000000 --- a/asm/non_matchings/unknown_001050/func_80000CBC.s +++ /dev/null @@ -1,19 +0,0 @@ -glabel func_80000CBC -/* 0018BC 80000CBC 3C018011 */ lui $at, %hi(D_80115D38) # $at, 0x8011 -/* 0018C0 80000CC0 AC205D38 */ sw $zero, %lo(D_80115D38)($at) -/* 0018C4 80000CC4 3C018011 */ lui $at, %hi(D_80115D3C) # $at, 0x8011 -/* 0018C8 80000CC8 AC205D3C */ sw $zero, %lo(D_80115D3C)($at) -/* 0018CC 80000CCC 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 0018D0 80000CD0 44812000 */ mtc1 $at, $f4 -/* 0018D4 80000CD4 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 0018D8 80000CD8 3C04800E */ lui $a0, %hi(D_800DC638) # $a0, 0x800e -/* 0018DC 80000CDC AFBF0014 */ sw $ra, 0x14($sp) -/* 0018E0 80000CE0 3C01800E */ lui $at, %hi(D_800DC650) # $at, 0x800e -/* 0018E4 80000CE4 9084C638 */ lbu $a0, %lo(D_800DC638)($a0) -/* 0018E8 80000CE8 0C000664 */ jal func_80001990 -/* 0018EC 80000CEC E424C650 */ swc1 $f4, %lo(D_800DC650)($at) -/* 0018F0 80000CF0 8FBF0014 */ lw $ra, 0x14($sp) -/* 0018F4 80000CF4 27BD0018 */ addiu $sp, $sp, 0x18 -/* 0018F8 80000CF8 03E00008 */ jr $ra -/* 0018FC 80000CFC 00000000 */ nop - diff --git a/asm/non_matchings/unknown_001050/func_80001050.s b/asm/non_matchings/unknown_001050/func_80001050.s deleted file mode 100644 index 1cf4ea77..00000000 --- a/asm/non_matchings/unknown_001050/func_80001050.s +++ /dev/null @@ -1,5 +0,0 @@ -glabel func_80001050 -/* 001C50 80001050 3C01800E */ lui $at, 0x800e -/* 001C54 80001054 03E00008 */ jr $ra -/* 001C58 80001058 AC20C658 */ sw $zero, -0x39a8($at) - diff --git a/asm/non_matchings/unknown_001050/func_800015B8.s b/asm/non_matchings/unknown_001050/func_800015B8.s deleted file mode 100644 index 2599c7f0..00000000 --- a/asm/non_matchings/unknown_001050/func_800015B8.s +++ /dev/null @@ -1,6 +0,0 @@ -glabel func_800015B8 -/* 0021B8 800015B8 3C028011 */ lui $v0, %hi(D_80115D30) # $v0, 0x8011 -/* 0021BC 800015BC 84425D30 */ lh $v0, %lo(D_80115D30)($v0) -/* 0021C0 800015C0 03E00008 */ jr $ra -/* 0021C4 800015C4 00000000 */ nop - diff --git a/asm/non_matchings/unknown_001050/func_800015C8.s b/asm/non_matchings/unknown_001050/func_800015C8.s deleted file mode 100644 index 23867a30..00000000 --- a/asm/non_matchings/unknown_001050/func_800015C8.s +++ /dev/null @@ -1,14 +0,0 @@ -glabel func_800015C8 -/* 0021C8 800015C8 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 0021CC 800015CC 3C04800E */ lui $a0, %hi(D_800DC630) # $a0, 0x800e -/* 0021D0 800015D0 AFBF0014 */ sw $ra, 0x14($sp) -/* 0021D4 800015D4 8C84C630 */ lw $a0, %lo(D_800DC630)($a0) -/* 0021D8 800015D8 0C031E94 */ jal func_800C7A50 -/* 0021DC 800015DC 00000000 */ nop -/* 0021E0 800015E0 8FBF0014 */ lw $ra, 0x14($sp) -/* 0021E4 800015E4 384E0001 */ xori $t6, $v0, 1 -/* 0021E8 800015E8 2DCE0001 */ sltiu $t6, $t6, 1 -/* 0021EC 800015EC 31C200FF */ andi $v0, $t6, 0xff -/* 0021F0 800015F0 03E00008 */ jr $ra -/* 0021F4 800015F4 27BD0018 */ addiu $sp, $sp, 0x18 - diff --git a/asm/non_matchings/unknown_001050/func_800018E0.s b/asm/non_matchings/unknown_001050/func_800018E0.s deleted file mode 100644 index 3dffaa10..00000000 --- a/asm/non_matchings/unknown_001050/func_800018E0.s +++ /dev/null @@ -1,17 +0,0 @@ -glabel func_800018E0 -/* 0024E0 800018E0 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 0024E4 800018E4 AFBF0014 */ sw $ra, 0x14($sp) -/* 0024E8 800018E8 0C000702 */ jal func_80001C08 -/* 0024EC 800018EC 00000000 */ nop -/* 0024F0 800018F0 14400005 */ bnez $v0, .L80001908 -/* 0024F4 800018F4 3C018011 */ lui $at, %hi(D_80115D05) # $at, 0x8011 -/* 0024F8 800018F8 3C04800E */ lui $a0, %hi(D_800DC634) # $a0, 0x800e -/* 0024FC 800018FC 8C84C634 */ lw $a0, %lo(D_800DC634)($a0) -/* 002500 80001900 0C00095C */ jal func_80002570 -/* 002504 80001904 A0205D05 */ sb $zero, %lo(D_80115D05)($at) -.L80001908: -/* 002508 80001908 8FBF0014 */ lw $ra, 0x14($sp) -/* 00250C 8000190C 27BD0018 */ addiu $sp, $sp, 0x18 -/* 002510 80001910 03E00008 */ jr $ra -/* 002514 80001914 00000000 */ nop - diff --git a/asm/non_matchings/unknown_001050/func_80001980.s b/asm/non_matchings/unknown_001050/func_80001980.s deleted file mode 100644 index 8a3707c1..00000000 --- a/asm/non_matchings/unknown_001050/func_80001980.s +++ /dev/null @@ -1,6 +0,0 @@ -glabel func_80001980 -/* 002580 80001980 3C028011 */ lui $v0, %hi(D_80115D05) # $v0, 0x8011 -/* 002584 80001984 90425D05 */ lbu $v0, %lo(D_80115D05)($v0) -/* 002588 80001988 03E00008 */ jr $ra -/* 00258C 8000198C 00000000 */ nop - diff --git a/asm/non_matchings/unknown_001050/func_80001AEC.s b/asm/non_matchings/unknown_001050/func_80001AEC.s deleted file mode 100644 index e6c1b6f4..00000000 --- a/asm/non_matchings/unknown_001050/func_80001AEC.s +++ /dev/null @@ -1,6 +0,0 @@ -glabel func_80001AEC -/* 0026EC 80001AEC 3C02800E */ lui $v0, %hi(D_800DC638) # $v0, 0x800e -/* 0026F0 80001AF0 9042C638 */ lbu $v0, %lo(D_800DC638)($v0) -/* 0026F4 80001AF4 03E00008 */ jr $ra -/* 0026F8 80001AF8 00000000 */ nop - diff --git a/asm/non_matchings/unknown_001050/musicVolumeSliderPercentage.s b/asm/non_matchings/unknown_001050/musicVolumeSliderPercentage.s deleted file mode 100644 index 86d97247..00000000 --- a/asm/non_matchings/unknown_001050/musicVolumeSliderPercentage.s +++ /dev/null @@ -1,6 +0,0 @@ -glabel musicVolumeSliderPercentage -/* 0026FC 80001AFC 3C02800E */ lui $v0, %hi(D_800DC654) # $v0, 0x800e -/* 002700 80001B00 8C42C654 */ lw $v0, %lo(D_800DC654)($v0) -/* 002704 80001B04 03E00008 */ jr $ra -/* 002708 80001B08 00000000 */ nop - diff --git a/src/unknown_001050.c b/src/unknown_001050.c index 1818b8d9..cd058d7d 100644 --- a/src/unknown_001050.c +++ b/src/unknown_001050.c @@ -4,21 +4,63 @@ #include "types.h" #include "macros.h" +extern u8 D_800DC638; +extern s8 D_800DC670; +extern u8 D_80115D05; + +extern s16 D_80115D30; + +extern s32 D_800DC634; +extern s32 D_800DC648; +extern s32 D_800DC654; +extern s32 D_800DC658; +extern s32 D_80115D38; +extern s32 D_80115D3C; + +extern s32* D_800DC630; + +extern f32 D_800DC650; + GLOBAL_ASM("asm/non_matchings/unknown_001050/func_80000450.s") GLOBAL_ASM("asm/non_matchings/unknown_001050/func_80000890.s") GLOBAL_ASM("asm/non_matchings/unknown_001050/func_80000968.s") -GLOBAL_ASM("asm/non_matchings/unknown_001050/func_80000B18.s") -GLOBAL_ASM("asm/non_matchings/unknown_001050/func_80000B28.s") + +void func_80000B18(void) { + D_800DC648 = 1; +} + +void func_80000B28(void) { + D_800DC648 = 0; +} + GLOBAL_ASM("asm/non_matchings/unknown_001050/func_80000B34.s") GLOBAL_ASM("asm/non_matchings/unknown_001050/func_80000BE0.s") -GLOBAL_ASM("asm/non_matchings/unknown_001050/func_80000C1C.s") -GLOBAL_ASM("asm/non_matchings/unknown_001050/func_80000C2C.s") + +void func_80000C1C(void) { + D_800DC670 = 1; +} + +void func_80000C2C(void) { + D_800DC670 = 0; +} + GLOBAL_ASM("asm/non_matchings/unknown_001050/func_80000C38.s") GLOBAL_ASM("asm/non_matchings/unknown_001050/func_80000C98.s") -GLOBAL_ASM("asm/non_matchings/unknown_001050/func_80000CBC.s") + +void func_80000CBC(void) { + D_80115D38 = 0; + D_80115D3C = 0; + D_800DC650 = 1.0f; + func_80001990(D_800DC638); +} + GLOBAL_ASM("asm/non_matchings/unknown_001050/func_80000D00.s") GLOBAL_ASM("asm/non_matchings/unknown_001050/func_80000FDC.s") -GLOBAL_ASM("asm/non_matchings/unknown_001050/func_80001050.s") + +void func_80001050(void) { + D_800DC658 = 0; +} + GLOBAL_ASM("asm/non_matchings/unknown_001050/func_8000105C.s") GLOBAL_ASM("asm/non_matchings/unknown_001050/func_80001074.s") GLOBAL_ASM("asm/non_matchings/unknown_001050/func_80001114.s") @@ -31,19 +73,44 @@ GLOBAL_ASM("asm/non_matchings/unknown_001050/func_800012A8.s") GLOBAL_ASM("asm/non_matchings/unknown_001050/func_800012E8.s") GLOBAL_ASM("asm/non_matchings/unknown_001050/func_800014BC.s") GLOBAL_ASM("asm/non_matchings/unknown_001050/func_80001534.s") -GLOBAL_ASM("asm/non_matchings/unknown_001050/func_800015B8.s") -GLOBAL_ASM("asm/non_matchings/unknown_001050/func_800015C8.s") + +s16 func_800015B8(void) { + return D_80115D30; +} + +s32 func_800015C8(void) { + return (func_800C7A50(D_800DC630) == 1) & 0xFF; +} + GLOBAL_ASM("asm/non_matchings/unknown_001050/func_800015F8.s") GLOBAL_ASM("asm/non_matchings/unknown_001050/func_80001784.s") GLOBAL_ASM("asm/non_matchings/unknown_001050/func_800017D4.s") GLOBAL_ASM("asm/non_matchings/unknown_001050/func_80001844.s") -GLOBAL_ASM("asm/non_matchings/unknown_001050/func_800018E0.s") + +void func_800018E0(void) { + if (func_80001C08() == 0) { + D_80115D05 = 0; + func_80002570(D_800DC634); + } +} + GLOBAL_ASM("asm/non_matchings/unknown_001050/func_80001918.s") -GLOBAL_ASM("asm/non_matchings/unknown_001050/func_80001980.s") + +u8 func_80001980(void) { + return D_80115D05; +} + GLOBAL_ASM("asm/non_matchings/unknown_001050/func_80001990.s") GLOBAL_ASM("asm/non_matchings/unknown_001050/func_80001A3C.s") -GLOBAL_ASM("asm/non_matchings/unknown_001050/func_80001AEC.s") -GLOBAL_ASM("asm/non_matchings/unknown_001050/musicVolumeSliderPercentage.s") + +u8 func_80001AEC(void) { + return D_800DC638; +} + +s32 musicVolumeSliderPercentage(void) { + return D_800DC654; +} + GLOBAL_ASM("asm/non_matchings/unknown_001050/func_80001B0C.s") GLOBAL_ASM("asm/non_matchings/unknown_001050/func_80001B58.s") GLOBAL_ASM("asm/non_matchings/unknown_001050/func_80001BC0.s")