c: musicSetRelativeVolume

This commit is contained in:
Mittenshugg
2020-08-11 13:15:20 -05:00
parent 131afb89e8
commit fe91664879
5 changed files with 28 additions and 63 deletions
@@ -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
@@ -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
+1 -1
View File
@@ -12,7 +12,7 @@ glabel gMusicPlayer
glabel gSndFxPlayer
.word 0x00000000
glabel D_800DC638
glabel musicRelativeVolume
.word 0x7F000000
glabel D_800DC63C
+25 -15
View File
@@ -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) {
+1 -1
View File
@@ -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;