diff --git a/asm/non_matchings/unknown_001050/func_80001990.s b/asm/non_matchings/unknown_001050/func_80001990.s index ab6b7a6a..9224d90b 100644 --- a/asm/non_matchings/unknown_001050/func_80001990.s +++ b/asm/non_matchings/unknown_001050/func_80001990.s @@ -3,8 +3,8 @@ glabel func_80001990 /* 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(D_800DC654) # $t7, 0x800e -/* 0025A4 800019A4 8DEFC654 */ lw $t7, %lo(D_800DC654)($t7) +/* 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 diff --git a/asm/non_matchings/unknown_001050/func_80001A3C.s b/asm/non_matchings/unknown_001050/func_80001A3C.s index 0700c6af..7482d87a 100644 --- a/asm/non_matchings/unknown_001050/func_80001A3C.s +++ b/asm/non_matchings/unknown_001050/func_80001A3C.s @@ -6,8 +6,8 @@ glabel func_80001A3C /* 00264C 80001A4C 00803025 */ move $a2, $a0 /* 002650 80001A50 24060100 */ li $a2, 256 .L80001A54: -/* 002654 80001A54 3C02800E */ lui $v0, %hi(D_800DC654) # $v0, 0x800e -/* 002658 80001A58 2442C654 */ addiu $v0, %lo(D_800DC654) # addiu $v0, $v0, -0x39ac +/* 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) diff --git a/asm/non_matchings/unknown_00BC20/func_80018CE0.s b/asm/non_matchings/unknown_00BC20/func_80018CE0.s index 6392bead..2096ca95 100644 --- a/asm/non_matchings/unknown_00BC20/func_80018CE0.s +++ b/asm/non_matchings/unknown_00BC20/func_80018CE0.s @@ -170,7 +170,7 @@ glabel func_80018CE0 /* 019B60 80018F60 320400FF */ andi $a0, $s0, 0xff /* 019B64 80018F64 18400007 */ blez $v0, .L80018F84 /* 019B68 80018F68 00000000 */ nop -/* 019B6C 80018F6C 0C000453 */ jal func_8000114C +/* 019B6C 80018F6C 0C000453 */ jal musicGetChnlActive /* 019B70 80018F70 02202025 */ move $a0, $s1 /* 019B74 80018F74 14400003 */ bnez $v0, .L80018F84 /* 019B78 80018F78 320400FF */ andi $a0, $s0, 0xff diff --git a/data/dkr.data.s b/data/dkr.data.s index 296536c1..30c6b654 100644 --- a/data/dkr.data.s +++ b/data/dkr.data.s @@ -33,7 +33,7 @@ glabel D_800DC64C glabel D_800DC650 .word 0x3F800000 -glabel D_800DC654 +glabel musicVolumeSliderPercentage .word 0x00000100 glabel D_800DC658 diff --git a/src/unknown_001050.c b/src/unknown_001050.c index e650d2ce..d7354c51 100644 --- a/src/unknown_001050.c +++ b/src/unknown_001050.c @@ -30,8 +30,9 @@ extern u8 D_800DC640; extern s32 D_800DC648; extern s32 D_800DC64C; extern f32 D_800DC650; -extern s32 D_800DC654; +extern s32 musicVolumeSliderPercentage; extern s32 D_800DC658; +extern u8 D_800DC65C; extern u8 D_800DC660; extern u8 D_800DC670; @@ -48,7 +49,7 @@ extern unk80115CF8 *D_80115CF8; extern u8 D_80115D04; extern u8 D_80115D05; -extern s32 D_80115D08; +extern s32 musicTempo; extern ALBank ** D_80115D10; @@ -105,6 +106,7 @@ extern s32 D_80115F7C; GLOBAL_ASM("asm/non_matchings/unknown_001050/func_80000450.s") GLOBAL_ASM("asm/non_matchings/unknown_001050/func_80000890.s") + void func_80000968(s32 arg0) { switch(arg0) { case 1: @@ -112,7 +114,7 @@ void func_80000968(s32 arg0) { func_80004A60(1, 0x7FFF); func_80004A60(2, 0); func_80004A60(4, 0); - alCSPSetVol(gMusicPlayer, (s16) (D_800DC638 * D_800DC654 >> 2)); + alCSPSetVol(gMusicPlayer, (s16) (D_800DC638 * musicVolumeSliderPercentage >> 2)); alCSPSetVol(gSndFxPlayer, 0); break; case 2: @@ -132,7 +134,7 @@ void func_80000968(s32 arg0) { func_80004A60(1, 0x7FFF); func_80004A60(2, 0x7FFF); func_80004A60(4, 0x7FFF); - alCSPSetVol(gMusicPlayer, (s16) (D_800DC638 * D_800DC654)); + alCSPSetVol(gMusicPlayer, (s16) (D_800DC638 * musicVolumeSliderPercentage)); alCSPSetVol(gSndFxPlayer, (s16) (sfxVolumeSliderPercentage() * D_800DC63C)); break; } @@ -150,13 +152,13 @@ void func_80000B28(void) { void func_800022BC(u8, ALCSPlayer*); void func_80000B34(u8 arg0) { - if (D_800DC648 == 0 && D_800DC654 != 0) { + if (D_800DC648 == 0 && musicVolumeSliderPercentage != 0) { D_80115D04 = arg0; D_800DC638 = 0x7F; if (D_800DC640 != 0) { func_800022BC(D_80115D04, gMusicPlayer); } - D_80115D08 = alCSPGetTempo(gMusicPlayer); + musicTempo = alCSPGetTempo(gMusicPlayer); D_800DC64C = osGetCount(); D_80115D40 = 1; D_80115F7C = -1; @@ -218,8 +220,29 @@ void func_80001050(void) { u16 musicGetChanMask(void) { return gMusicPlayer->chanMask; } +void func_80001114(u8 arg0); +void func_80001170(u8 arg0); +//GLOBAL_ASM("asm/non_matchings/unknown_001050/func_80001074.s") +void func_80001074(u16 arg0){ + u32 s0; + if(D_800DC65C){ + D_80115F7C = arg0; + } + else{ + gMusicPlayer->chanMask = arg0; + for(s0 = 0; s0 != 16; s0++){ + if(arg0 & (1 << s0)){ + func_80001170(s0); + } + else{ + func_80001114(s0); + } -GLOBAL_ASM("asm/non_matchings/unknown_001050/func_80001074.s") + } + + } + return; +} void func_80001114(u8 arg0) { if (arg0 < 0x10) { @@ -227,7 +250,7 @@ void func_80001114(u8 arg0) { } } -s32 func_8000114C(s32 arg0) { +s32 musicGetChnlActive(s32 arg0) { return (gMusicPlayer->chanMask & (1 << arg0)) == 0; } @@ -335,6 +358,7 @@ 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") @@ -342,8 +366,8 @@ u8 func_80001AEC(void) { return D_800DC638; } -s32 musicVolumeSliderPercentage(void) { - return D_800DC654; +s32 musicGetVolSliderPercentage(void) { + return musicVolumeSliderPercentage; } void sfxSetRelativeVolume(u8 arg0) { diff --git a/src/unknown_080500.c b/src/unknown_080500.c index 59407a65..086fadc9 100644 --- a/src/unknown_080500.c +++ b/src/unknown_080500.c @@ -542,7 +542,7 @@ void MenuAudioOptionsInit(void) { func_8008E4B0(); func_800C01D8(&D_800DF77C); func_8007FFEC(2); - D_800DFAC4 = musicVolumeSliderPercentage(); + D_800DFAC4 = musicGetVolSliderPercentage(); D_800DFAC0 = sfxVolumeSliderPercentage(); if (gActiveMagicCodes & 0x40) { // Check if "JUKEBOX" cheat is active D_800DFA3C.unk6C = D_801269E0; diff --git a/undefined_syms.txt b/undefined_syms.txt index f584b0fd..c4d57caa 100755 --- a/undefined_syms.txt +++ b/undefined_syms.txt @@ -80,7 +80,7 @@ D_800DC644 = 0x800DC644; D_800DC648 = 0x800DC648; D_800DC64C = 0x800DC64C; D_800DC650 = 0x800DC650; -D_800DC654 = 0x800DC654; +musicVolumeSliderPercentage = 0x800DC654; D_800DC658 = 0x800DC658; D_800DC65C = 0x800DC65C; D_800DC660 = 0x800DC660; @@ -1722,7 +1722,7 @@ D_80115CFC = 0x80115CFC; D_80115D00 = 0x80115D00; D_80115D04 = 0x80115D04; D_80115D05 = 0x80115D05; -D_80115D08 = 0x80115D08; +musicTempo = 0x80115D08; D_80115D0C = 0x80115D0C; D_80115D10 = 0x80115D10; D_80115D14 = 0x80115D14;