From fe916648799d3270b185fa1d2f5143e1fb2a219d Mon Sep 17 00:00:00 2001 From: Mittenshugg Date: Tue, 11 Aug 2020 13:15:20 -0500 Subject: [PATCH] c: musicSetRelativeVolume --- .../unknown_001050/musicSetRelativeVolume.s | 45 ------------------- .../unknown_080500/MenuTitleScreenInit.s | 2 +- data/dkr.data.s | 2 +- src/unknown_001050.c | 40 ++++++++++------- undefined_syms.txt | 2 +- 5 files changed, 28 insertions(+), 63 deletions(-) delete mode 100644 asm/non_matchings/unknown_001050/musicSetRelativeVolume.s diff --git a/asm/non_matchings/unknown_001050/musicSetRelativeVolume.s b/asm/non_matchings/unknown_001050/musicSetRelativeVolume.s deleted file mode 100644 index 752be705..00000000 --- a/asm/non_matchings/unknown_001050/musicSetRelativeVolume.s +++ /dev/null @@ -1,45 +0,0 @@ -glabel musicSetRelativeVolume -/* 002590 80001990 3C02800E */ lui $v0, %hi(D_800DC638) # $v0, 0x800e -/* 002594 80001994 2442C638 */ addiu $v0, %lo(D_800DC638) # addiu $v0, $v0, -0x39c8 -/* 002598 80001998 00803025 */ move $a2, $a0 -/* 00259C 8000199C A0460000 */ sb $a2, ($v0) -/* 0025A0 800019A0 3C0F800E */ lui $t7, %hi(musicVolumeSliderPercentage) # $t7, 0x800e -/* 0025A4 800019A4 8DEFC654 */ lw $t7, %lo(musicVolumeSliderPercentage)($t7) -/* 0025A8 800019A8 30CE00FF */ andi $t6, $a2, 0xff -/* 0025AC 800019AC 01CF0019 */ multu $t6, $t7 -/* 0025B0 800019B0 3C19800E */ lui $t9, %hi(D_800DC66C) # $t9, 0x800e -/* 0025B4 800019B4 8F39C66C */ lw $t9, %lo(D_800DC66C)($t9) -/* 0025B8 800019B8 3C01800E */ lui $at, %hi(D_800DC650) # $at, 0x800e -/* 0025BC 800019BC C428C650 */ lwc1 $f8, %lo(D_800DC650)($at) -/* 0025C0 800019C0 44995000 */ mtc1 $t9, $f10 -/* 0025C4 800019C4 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 0025C8 800019C8 46805420 */ cvt.s.w $f16, $f10 -/* 0025CC 800019CC AFA40018 */ sw $a0, 0x18($sp) -/* 0025D0 800019D0 3C04800E */ lui $a0, %hi(gMusicPlayer) # $a0, 0x800e -/* 0025D4 800019D4 AFBF0014 */ sw $ra, 0x14($sp) -/* 0025D8 800019D8 8C84C630 */ lw $a0, %lo(gMusicPlayer)($a0) -/* 0025DC 800019DC 0000C012 */ mflo $t8 -/* 0025E0 800019E0 44982000 */ mtc1 $t8, $f4 -/* 0025E4 800019E4 00000000 */ nop -/* 0025E8 800019E8 468021A0 */ cvt.s.w $f6, $f4 -/* 0025EC 800019EC 46083002 */ mul.s $f0, $f6, $f8 -/* 0025F0 800019F0 00000000 */ nop -/* 0025F4 800019F4 46008482 */ mul.s $f18, $f16, $f0 -/* 0025F8 800019F8 4448F800 */ cfc1 $t0, $31 -/* 0025FC 800019FC 00000000 */ nop -/* 002600 80001A00 35010003 */ ori $at, $t0, 3 -/* 002604 80001A04 38210002 */ xori $at, $at, 2 -/* 002608 80001A08 44C1F800 */ ctc1 $at, $31 -/* 00260C 80001A0C 00000000 */ nop -/* 002610 80001A10 46009124 */ cvt.w.s $f4, $f18 -/* 002614 80001A14 44052000 */ mfc1 $a1, $f4 -/* 002618 80001A18 44C8F800 */ ctc1 $t0, $31 -/* 00261C 80001A1C 00054A03 */ sra $t1, $a1, 8 -/* 002620 80001A20 00095400 */ sll $t2, $t1, 0x10 -/* 002624 80001A24 0C031E14 */ jal alCSPSetVol -/* 002628 80001A28 000A2C03 */ sra $a1, $t2, 0x10 -/* 00262C 80001A2C 8FBF0014 */ lw $ra, 0x14($sp) -/* 002630 80001A30 27BD0018 */ addiu $sp, $sp, 0x18 -/* 002634 80001A34 03E00008 */ jr $ra -/* 002638 80001A38 00000000 */ nop - diff --git a/asm/non_matchings/unknown_080500/MenuTitleScreenInit.s b/asm/non_matchings/unknown_080500/MenuTitleScreenInit.s index 06eb5af9..adef7ec6 100644 --- a/asm/non_matchings/unknown_080500/MenuTitleScreenInit.s +++ b/asm/non_matchings/unknown_080500/MenuTitleScreenInit.s @@ -19,7 +19,7 @@ glabel MenuTitleScreenInit /* 084180 80083580 AC2FF4BC */ sw $t7, %lo(D_800DF4BC)($at) /* 084184 80083584 0C0002CD */ jal func_80000B34 /* 084188 80083588 24040001 */ li $a0, 1 -/* 08418C 8008358C 0C0006BB */ jal func_80001AEC +/* 08418C 8008358C 0C0006BB */ jal musicGetRelativeVolume /* 084190 80083590 00000000 */ nop /* 084194 80083594 3C03800E */ lui $v1, %hi(D_800DF458) # $v1, 0x800e /* 084198 80083598 3C01800E */ lui $at, %hi(D_800DF760) # $at, 0x800e diff --git a/data/dkr.data.s b/data/dkr.data.s index 30c6b654..5806f731 100644 --- a/data/dkr.data.s +++ b/data/dkr.data.s @@ -12,7 +12,7 @@ glabel gMusicPlayer glabel gSndFxPlayer .word 0x00000000 -glabel D_800DC638 +glabel musicRelativeVolume .word 0x7F000000 glabel D_800DC63C diff --git a/src/unknown_001050.c b/src/unknown_001050.c index 553c38ad..7f3cde6f 100644 --- a/src/unknown_001050.c +++ b/src/unknown_001050.c @@ -24,7 +24,7 @@ typedef struct unk800DC630 { extern ALCSPlayer* gMusicPlayer; extern ALCSPlayer* gSndFxPlayer; -extern u8 D_800DC638; +extern u8 musicRelativeVolume; extern u8 D_800DC63C; extern u8 D_800DC640; extern u8 D_800DC644; @@ -218,7 +218,7 @@ void func_80000890(u8 arg0){ D_80115F78 = arg0; if(D_80115F78 == 0){ D_800DC66C = 256; - musicSetRelativeVolume(D_800DC638); + musicSetRelativeVolume(musicRelativeVolume); func_80004A60(0,D_800DC66C*128-1); func_80004A60(1,D_800DC66C*128-1); func_80004A60(2,D_800DC66C*128-1); @@ -236,7 +236,7 @@ void func_80000968(s32 arg0) { func_80004A60(1, 0x7FFF); func_80004A60(2, 0); func_80004A60(4, 0); - alCSPSetVol(gMusicPlayer, (s16) (D_800DC638 * musicVolumeSliderPercentage >> 2)); + alCSPSetVol(gMusicPlayer, (s16) (musicRelativeVolume * musicVolumeSliderPercentage >> 2)); alCSPSetVol(gSndFxPlayer, 0); break; case 2: @@ -256,7 +256,7 @@ void func_80000968(s32 arg0) { func_80004A60(1, 0x7FFF); func_80004A60(2, 0x7FFF); func_80004A60(4, 0x7FFF); - alCSPSetVol(gMusicPlayer, (s16) (D_800DC638 * musicVolumeSliderPercentage)); + alCSPSetVol(gMusicPlayer, (s16) (musicRelativeVolume * musicVolumeSliderPercentage)); alCSPSetVol(gSndFxPlayer, (s16) (sfxVolumeSliderPercentage() * D_800DC63C)); break; } @@ -276,7 +276,7 @@ void func_800022BC(u8, ALCSPlayer*); void func_80000B34(u8 arg0) { if (D_800DC648 == 0 && musicVolumeSliderPercentage != 0) { D_80115D04 = arg0; - D_800DC638 = 0x7F; + musicRelativeVolume = 0x7F; if (D_800DC640 != 0) { func_800022BC(D_80115D04, gMusicPlayer); } @@ -321,7 +321,7 @@ void func_80000CBC(void) { D_80115D38 = 0; D_80115D3C = 0; D_800DC650 = 1.0f; - musicSetRelativeVolume(D_800DC638); + musicSetRelativeVolume(musicRelativeVolume); } void func_80001D04(u16,void*); @@ -340,7 +340,7 @@ void func_80000D00(u8 arg0){ D_80115D3C = 0; D_800DC650 = 1.0f; } - musicSetRelativeVolume(D_800DC638); + musicSetRelativeVolume(musicRelativeVolume); }else if(D_80115D3C < 0) { D_80115D38 -= arg0; @@ -350,7 +350,7 @@ void func_80000D00(u8 arg0){ D_80115D3C = 0; D_800DC650 = 0.0f; } - musicSetRelativeVolume(D_800DC638); + musicSetRelativeVolume(musicRelativeVolume); } if(D_800DC658 > 0){ @@ -619,20 +619,30 @@ u8 func_80001980(void) { return D_80115D05; } - +#if 0 GLOBAL_ASM("asm/non_matchings/unknown_001050/musicSetRelativeVolume.s") +#else +void musicSetRelativeVolume(u8 vol){ + f32 normalized_vol; -void musicSetVolSlider(u32 arg0){ + musicRelativeVolume = vol; + normalized_vol = musicVolumeSliderPercentage*musicRelativeVolume*D_800DC650; + alCSPSetVol(gMusicPlayer, (s16)((s32)(D_800DC66C*normalized_vol)>>8)); +} +#endif + + +void musicSetVolSlider(u32 slider_val){ f32 normalized_vol; - arg0 = (arg0 < 0x101)?arg0:256; - musicVolumeSliderPercentage = arg0; - normalized_vol = musicVolumeSliderPercentage*D_800DC638*D_800DC650; + slider_val = (slider_val < 0x101)?slider_val:256; + musicVolumeSliderPercentage = slider_val; + normalized_vol = musicVolumeSliderPercentage*musicRelativeVolume*D_800DC650; alCSPSetVol(gMusicPlayer, (s16)((s32)(D_800DC66C*normalized_vol)>>8)); } -u8 func_80001AEC(void) { - return D_800DC638; +u8 musicGetRelativeVolume(void) { + return musicRelativeVolume; } s32 musicGetVolSliderPercentage(void) { diff --git a/undefined_syms.txt b/undefined_syms.txt index 74988c59..688a7a33 100755 --- a/undefined_syms.txt +++ b/undefined_syms.txt @@ -73,7 +73,7 @@ D_800D9790 = 0x800D9790; D_800DA970 = 0x800DA970; gMusicPlayer = 0x800DC630; gSndFxPlayer = 0x800DC634; -D_800DC638 = 0x800DC638; +musicRelativeVolume = 0x800DC638; D_800DC63C = 0x800DC63C; D_800DC640 = 0x800DC640; D_800DC644 = 0x800DC644;