From 131afb89e899383e024d43dbe26944a6fbe84866 Mon Sep 17 00:00:00 2001 From: Mittenshugg Date: Tue, 11 Aug 2020 13:03:15 -0500 Subject: [PATCH] c: musicSetVolSlider --- .../unknown_001050/func_80001A3C.s | 47 ------------------- .../unknown_080500/MenuAudioOptionsLoop.s | 2 +- src/unknown_001050.c | 13 ++++- 3 files changed, 12 insertions(+), 50 deletions(-) delete mode 100644 asm/non_matchings/unknown_001050/func_80001A3C.s diff --git a/asm/non_matchings/unknown_001050/func_80001A3C.s b/asm/non_matchings/unknown_001050/func_80001A3C.s deleted file mode 100644 index 7482d87a..00000000 --- a/asm/non_matchings/unknown_001050/func_80001A3C.s +++ /dev/null @@ -1,47 +0,0 @@ -glabel func_80001A3C -/* 00263C 80001A3C 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 002640 80001A40 2C810101 */ sltiu $at, $a0, 0x101 -/* 002644 80001A44 AFBF0014 */ sw $ra, 0x14($sp) -/* 002648 80001A48 14200002 */ bnez $at, .L80001A54 -/* 00264C 80001A4C 00803025 */ move $a2, $a0 -/* 002650 80001A50 24060100 */ li $a2, 256 -.L80001A54: -/* 002654 80001A54 3C02800E */ lui $v0, %hi(musicVolumeSliderPercentage) # $v0, 0x800e -/* 002658 80001A58 2442C654 */ addiu $v0, %lo(musicVolumeSliderPercentage) # addiu $v0, $v0, -0x39ac -/* 00265C 80001A5C AC460000 */ sw $a2, ($v0) -/* 002660 80001A60 3C0E800E */ lui $t6, %hi(D_800DC638) # $t6, 0x800e -/* 002664 80001A64 91CEC638 */ lbu $t6, %lo(D_800DC638)($t6) -/* 002668 80001A68 3C19800E */ lui $t9, %hi(D_800DC66C) # $t9, 0x800e -/* 00266C 80001A6C 01C60019 */ multu $t6, $a2 -/* 002670 80001A70 8F39C66C */ lw $t9, %lo(D_800DC66C)($t9) -/* 002674 80001A74 3C01800E */ lui $at, %hi(D_800DC650) # $at, 0x800e -/* 002678 80001A78 C428C650 */ lwc1 $f8, %lo(D_800DC650)($at) -/* 00267C 80001A7C 44995000 */ mtc1 $t9, $f10 -/* 002680 80001A80 3C04800E */ lui $a0, %hi(gMusicPlayer) # $a0, 0x800e -/* 002684 80001A84 46805420 */ cvt.s.w $f16, $f10 -/* 002688 80001A88 8C84C630 */ lw $a0, %lo(gMusicPlayer)($a0) -/* 00268C 80001A8C 0000C012 */ mflo $t8 -/* 002690 80001A90 44982000 */ mtc1 $t8, $f4 -/* 002694 80001A94 00000000 */ nop -/* 002698 80001A98 468021A0 */ cvt.s.w $f6, $f4 -/* 00269C 80001A9C 46083002 */ mul.s $f0, $f6, $f8 -/* 0026A0 80001AA0 00000000 */ nop -/* 0026A4 80001AA4 46008482 */ mul.s $f18, $f16, $f0 -/* 0026A8 80001AA8 4448F800 */ cfc1 $t0, $31 -/* 0026AC 80001AAC 00000000 */ nop -/* 0026B0 80001AB0 35010003 */ ori $at, $t0, 3 -/* 0026B4 80001AB4 38210002 */ xori $at, $at, 2 -/* 0026B8 80001AB8 44C1F800 */ ctc1 $at, $31 -/* 0026BC 80001ABC 00000000 */ nop -/* 0026C0 80001AC0 46009124 */ cvt.w.s $f4, $f18 -/* 0026C4 80001AC4 44052000 */ mfc1 $a1, $f4 -/* 0026C8 80001AC8 44C8F800 */ ctc1 $t0, $31 -/* 0026CC 80001ACC 00054A03 */ sra $t1, $a1, 8 -/* 0026D0 80001AD0 00095400 */ sll $t2, $t1, 0x10 -/* 0026D4 80001AD4 0C031E14 */ jal alCSPSetVol -/* 0026D8 80001AD8 000A2C03 */ sra $a1, $t2, 0x10 -/* 0026DC 80001ADC 8FBF0014 */ lw $ra, 0x14($sp) -/* 0026E0 80001AE0 27BD0018 */ addiu $sp, $sp, 0x18 -/* 0026E4 80001AE4 03E00008 */ jr $ra -/* 0026E8 80001AE8 00000000 */ nop - diff --git a/asm/non_matchings/unknown_080500/MenuAudioOptionsLoop.s b/asm/non_matchings/unknown_080500/MenuAudioOptionsLoop.s index ce919b4e..f5921d81 100644 --- a/asm/non_matchings/unknown_080500/MenuAudioOptionsLoop.s +++ b/asm/non_matchings/unknown_080500/MenuAudioOptionsLoop.s @@ -242,7 +242,7 @@ glabel MenuAudioOptionsLoop /* 085BD8 80084FD8 24020100 */ li $v0, 256 /* 085BDC 80084FDC AC620000 */ sw $v0, ($v1) .L80084FE0: -/* 085BE0 80084FE0 0C00068F */ jal func_80001A3C +/* 085BE0 80084FE0 0C00068F */ jal musicSetVolSlider /* 085BE4 80084FE4 00402025 */ move $a0, $v0 /* 085BE8 80084FE8 0C000572 */ jal musicIsPlaying /* 085BEC 80084FEC 00000000 */ nop diff --git a/src/unknown_001050.c b/src/unknown_001050.c index b9146c7b..553c38ad 100644 --- a/src/unknown_001050.c +++ b/src/unknown_001050.c @@ -621,7 +621,15 @@ u8 func_80001980(void) { GLOBAL_ASM("asm/non_matchings/unknown_001050/musicSetRelativeVolume.s") -GLOBAL_ASM("asm/non_matchings/unknown_001050/func_80001A3C.s") + +void musicSetVolSlider(u32 arg0){ + f32 normalized_vol; + + arg0 = (arg0 < 0x101)?arg0:256; + musicVolumeSliderPercentage = arg0; + normalized_vol = musicVolumeSliderPercentage*D_800DC638*D_800DC650; + alCSPSetVol(gMusicPlayer, (s16)((s32)(D_800DC66C*normalized_vol)>>8)); +} u8 func_80001AEC(void) { return D_800DC638; @@ -671,7 +679,8 @@ u16 func_80001CB8(u16 arg0) { } return D_80115D18[arg0].unk6; } -void func_80001D04(u16, void*); + + GLOBAL_ASM("asm/non_matchings/unknown_001050/func_80001D04.s")