From ab6ef2535e044df4421a13817bfa936e11abcbbb Mon Sep 17 00:00:00 2001 From: engineer124 <47598039+engineer124@users.noreply.github.com> Date: Mon, 11 Jul 2022 23:14:07 -0400 Subject: [PATCH] Match and Document code_80172BC0.c (#909) * Match code_80172BC0.c * Better match * brackets * Fix --- include/functions.h | 4 ++-- src/code/code_80172BC0.c | 14 +++++++++++++- src/code/game.c | 2 +- tools/disasm/functions.txt | 2 +- tools/sizes/code_functions.csv | 2 +- 5 files changed, 18 insertions(+), 6 deletions(-) diff --git a/include/functions.h b/include/functions.h index e437b1eca7..bea86cadf3 100644 --- a/include/functions.h +++ b/include/functions.h @@ -2741,7 +2741,7 @@ u32 THA_IsCrash(TwoHeadArena* tha); void THA_Init(TwoHeadArena* tha); void THA_Ct(TwoHeadArena* tha, void* ptr, size_t size); void THA_Dt(TwoHeadArena* tha); -void func_80172BC0(void); +void AudioMgr_StopAllSfxExceptSystem(void); void func_80172C30(AudioMgr* audioMgr); void AudioMgr_HandleRetrace(AudioMgr* audioMgr); void AudioMgr_HandlePRENMI(AudioMgr* audioMgr); @@ -3477,7 +3477,7 @@ void Audio_PlaySfxGeneral(u16 sfxId, Vec3f* param_2, u8 param_3, f32* param_4, f // void func_801A6430(void); // void func_801A65C8(void); // void func_801A6D0C(void); -// void func_801A7084(void); +void func_801A7084(u8 bankId); // void func_801A7168(void); // void func_801A7284(void); void Audio_StopSfxByPos(Vec3f* pos); diff --git a/src/code/code_80172BC0.c b/src/code/code_80172BC0.c index 93aee323fc..2ea9e6c679 100644 --- a/src/code/code_80172BC0.c +++ b/src/code/code_80172BC0.c @@ -1,3 +1,15 @@ #include "global.h" -#pragma GLOBAL_ASM("asm/non_matchings/code/code_80172BC0/func_80172BC0.s") +const u8 sSfxBankIds[] = { + BANK_PLAYER, BANK_ITEM, BANK_ENV, BANK_ENEMY, BANK_SYSTEM, BANK_OCARINA, BANK_VOICE, +}; + +void AudioMgr_StopAllSfxExceptSystem(void) { + volatile const u8* bankIdPtr; + + for (bankIdPtr = sSfxBankIds; bankIdPtr < (sSfxBankIds + ARRAY_COUNT(sSfxBankIds)); bankIdPtr++) { + if (*bankIdPtr != BANK_SYSTEM) { + func_801A7084(*bankIdPtr); + } + } +} diff --git a/src/code/game.c b/src/code/game.c index 60bebd9672..84743b8c5a 100644 --- a/src/code/game.c +++ b/src/code/game.c @@ -224,7 +224,7 @@ void GameState_Init(GameState* gameState, GameStateFunc init, GraphicsContext* g } void GameState_Destroy(GameState* gameState) { - func_80172BC0(); + AudioMgr_StopAllSfxExceptSystem(); func_8019E014(); osRecvMesg(&gameState->gfxCtx->queue, NULL, OS_MESG_BLOCK); diff --git a/tools/disasm/functions.txt b/tools/disasm/functions.txt index f35fe9158a..551119bdfa 100644 --- a/tools/disasm/functions.txt +++ b/tools/disasm/functions.txt @@ -3109,7 +3109,7 @@ 0x80172B3C:("THA_Init",), 0x80172B58:("THA_Ct",), 0x80172B9C:("THA_Dt",), - 0x80172BC0:("func_80172BC0",), + 0x80172BC0:("AudioMgr_StopAllSfxExceptSystem",), 0x80172C30:("func_80172C30",), 0x80172C68:("AudioMgr_HandleRetrace",), 0x80172EAC:("AudioMgr_HandlePRENMI",), diff --git a/tools/sizes/code_functions.csv b/tools/sizes/code_functions.csv index 3370a083ae..45f18ccefe 100644 --- a/tools/sizes/code_functions.csv +++ b/tools/sizes/code_functions.csv @@ -2623,7 +2623,7 @@ asm/non_matchings/code/TwoHeadArena/THA_IsCrash.s,THA_IsCrash,0x80172B18,0x9 asm/non_matchings/code/TwoHeadArena/THA_Init.s,THA_Init,0x80172B3C,0x7 asm/non_matchings/code/TwoHeadArena/THA_Ct.s,THA_Ct,0x80172B58,0x11 asm/non_matchings/code/TwoHeadArena/THA_Dt.s,THA_Dt,0x80172B9C,0x9 -asm/non_matchings/code/code_80172BC0/func_80172BC0.s,func_80172BC0,0x80172BC0,0x1C +asm/non_matchings/code/code_80172BC0/AudioMgr_StopAllSfxExceptSystem.s,AudioMgr_StopAllSfxExceptSystem,0x80172BC0,0x1C asm/non_matchings/code/audioMgr/func_80172C30.s,func_80172C30,0x80172C30,0xE asm/non_matchings/code/audioMgr/AudioMgr_HandleRetrace.s,AudioMgr_HandleRetrace,0x80172C68,0x91 asm/non_matchings/code/audioMgr/AudioMgr_HandlePRENMI.s,AudioMgr_HandlePRENMI,0x80172EAC,0x9