Finish documenting Sound_PlayBGM

This commit is contained in:
Fexty12573 2025-03-18 15:47:28 +01:00
parent 69f1ec4b14
commit e013edd202
10 changed files with 123 additions and 114 deletions

View File

@ -24,6 +24,7 @@ enum SoundHeapState {
enum SoundSystemState {
SOUND_SYSTEM_STATE_IDLE = 0,
SOUND_SYSTEM_STATE_PLAY = 1, // Start playing a sound
};
enum SoundHandleType {
@ -46,6 +47,8 @@ enum SoundSystemParam {
SOUND_SYSTEM_PARAM_CURRENT_BGM = 10,
SOUND_SYSTEM_PARAM_NEXT_BGM,
SOUND_SYSTEM_PARAM_FIELD_BGM_BANK_STATE = 19,
SOUND_SYSTEM_PARAM_MAIN_SCENE = 21,
SOUND_SYSTEM_PARAM_SUB_SCENE,
SOUND_SYSTEM_PARAM_HEAP_STATE_EMPTY,
@ -53,6 +56,8 @@ enum SoundSystemParam {
SOUND_SYSTEM_PARAM_HEAP_STATE_BGM_BANK,
SOUND_SYSTEM_PARAM_HEAP_STATE_SFX,
SOUND_SYSTEM_PARAM_HEAP_STATE_BGM,
SOUND_SYSTEM_PARAM_FIELD_BGM = 32,
};
typedef struct SoundSystem {
@ -79,14 +84,14 @@ typedef struct SoundSystem {
u8 unk_BCD61;
u8 unk_BCD62;
u8 unk_BCD63;
u8 unk_BCD64;
u8 fieldBGMBankState;
u8 unk_BCD65;
u8 mainScene;
u8 subScene;
int heapStates[SOUND_HEAP_STATE_COUNT];
u8 unk_BCD84;
u8 unk_BCD85;
u16 unk_BCD86;
u16 currentFieldBGM;
const SNDWaveData *unk_BCD88;
void *unk_BCD8C;
int unk_BCD90;

View File

@ -9,34 +9,38 @@
#include "struct_defs/struct_02004CB4.h"
#define FIELD_BGM_BANK_STATE_IDLE 0
#define FIELD_BGM_BANK_STATE_SWITCH 1
void Sound_SetBGMFixed(u8 fixed);
u8 Sound_IsBGMFixed(void);
void Sound_SetCurrentBGM(u16 bgmID);
u16 Sound_GetCurrentBGM();
void Sound_SetNextBGM(u16 bgmID);
u16 Sound_GetNextBGM();
void sub_02004224(u16 param0);
void Sound_SetFieldBGM(u16 param0);
void Sound_SetScene(u8 scene);
void Sound_SetSubScene(u8 scene);
int Sound_LoadSoundEffectsForScene(u8 param0);
BOOL sub_02004550(u8 param0, u16 param1, int param2);
void sub_020047E8(u16 param0, u16 param1);
void Sound_LoadSoundDataForFieldBGM(u16 param0, u16 param1);
void sub_02004950(u16 param0);
void sub_02004964(void);
int Sound_GetHeapState(enum SoundHeapState state);
void sub_020049F4(u8 param0, BOOL param1);
void sub_02004A3C();
void sub_02004A54(int param0, int param1, int param2);
void sub_02004A68(int param0, int param1);
void Sound_SetInitialVolumeForHandle(enum SoundHandleType param0, int param1);
void sub_02004A84(int param0);
void sub_02004AA0(int param0, int param1);
void Sound_AdjustVolumeForVoiceChat(int param0, enum SoundHandleType param1);
void sub_02004AD4(u16 param0, int param1);
BOOL sub_02004AE8(int param0, int param1, u16 param2);
int sub_02004B04(int param0);
u8 Sound_GetPlayerForSequence(u16 param0);
int Sound_GetSequenceFromSoundHandle(NNSSndHandle *param0);
int Sound_GetSequenceIDFromSoundHandle(NNSSndHandle *param0);
const NNSSndArcBankInfo *sub_02004B3C(int param0);
u16 sub_02004B48(int param0);
u16 Sound_GetBankIDFromSequenceID(int param0);
MICResult sub_02004B5C(MICAutoParam *param0);
MICResult sub_02004B64(void);
MICResult sub_02004B70(MICSamplingType param0, void *param1, MICCallback param2, void *param3);
@ -68,7 +72,7 @@ void sub_02004FDC(int param0);
int sub_02004FEC(void);
void sub_0200500C(int param0);
void *sub_02005014(void);
void sub_0200501C(int param0);
void Sound_SetFieldBGMBankState(int param0);
BOOL sub_0200502C(u8 param0, u16 param1, int param2, int param3, u8 param4, void *param5);
BOOL sub_02005068(u8 param0, u16 param1, int param2, int param3, int param4, u8 param5, void *param6);
const u8 *sub_020050E0(const SNDWaveData *param0);

View File

@ -916,7 +916,7 @@ int ov65_0222E548(OverlayManager *param0, int *param1)
}
if (ov65_02231A54() == 1) {
sub_02004A68(0, 120);
Sound_SetInitialVolumeForHandle(SOUND_HANDLE_TYPE_FIELD_BGM, 120);
}
return 1;

View File

@ -1246,7 +1246,7 @@ static void ov65_02237520(UnkStruct_ov65_022367A8 *param0)
static void ov65_02237534(UnkStruct_ov65_022367A8 *param0)
{
if (ov65_02237504(param0)) {
sub_02004A68(0, 120);
Sound_SetInitialVolumeForHandle(SOUND_HANDLE_TYPE_FIELD_BGM, 120);
}
}

View File

@ -96,7 +96,7 @@ int ov73_021D3280 (OverlayManager * param0, int * param1)
if (v0->unk_24) {
v0->unk_24--;
} else {
sub_02004224(1030);
Sound_SetFieldBGM(1030);
sub_02004550(4, 1030, 1);
v0->unk_24 = 3 * 30;

View File

@ -195,8 +195,8 @@ void *SoundSystem_GetParam(enum SoundSystemParam param)
return &soundSys->unk_BCD62;
case 18:
return &soundSys->unk_BCD63;
case 19:
return &soundSys->unk_BCD64;
case SOUND_SYSTEM_PARAM_FIELD_BGM_BANK_STATE:
return &soundSys->fieldBGMBankState;
case 20:
return &soundSys->unk_BCD65;
case SOUND_SYSTEM_PARAM_MAIN_SCENE:
@ -221,8 +221,8 @@ void *SoundSystem_GetParam(enum SoundSystemParam param)
return &soundSys->unk_BCD84;
case 31:
return &soundSys->unk_BCD85;
case 32:
return &soundSys->unk_BCD86;
case SOUND_SYSTEM_PARAM_FIELD_BGM:
return &soundSys->currentFieldBGM;
case 33:
return &soundSys->unk_BCD88;
case 34:

View File

@ -16,7 +16,7 @@ void Sound_SetCurrentBGM(u16 param0);
u16 Sound_GetCurrentBGM(void);
void Sound_SetNextBGM(u16 param0);
u16 Sound_GetNextBGM(void);
void sub_02004224(u16 param0);
void Sound_SetFieldBGM(u16 param0);
void sub_02004964(void);
int Sound_GetHeapState(enum SoundHeapState state);
void Sound_SetScene(u8 param0);
@ -26,7 +26,7 @@ BOOL sub_02004550(u8 param0, u16 param1, int param2);
static void Sound_LoadSoundEffectsForSceneWithState(u8 param0);
static void sub_020046F8(u16 param0, int param1);
static void sub_0200478C(u16 param0, u16 param1);
void sub_020047E8(u16 param0, u16 param1);
void Sound_LoadSoundDataForFieldBGM(u16 param0, u16 param1);
static void sub_02004874(u16 param0, int param1);
static void sub_020048AC(u16 param0, int param1);
static void sub_020048CC(u16 param0, int param1);
@ -37,16 +37,16 @@ void sub_02004950(u16 param0);
void sub_020049F4(u8 param0, BOOL param1);
void sub_02004A3C(void);
void sub_02004A54(int param0, int param1, int param2);
void sub_02004A68(int param0, int param1);
void Sound_SetInitialVolumeForHandle(enum SoundHandleType param0, int param1);
void sub_02004A84(int param0);
void sub_02004AA0(int param0, int param1);
void Sound_AdjustVolumeForVoiceChat(int param0, enum SoundHandleType param1);
void sub_02004AD4(u16 param0, int param1);
BOOL sub_02004AE8(int param0, int param1, u16 param2);
int sub_02004B04(int param0);
u8 Sound_GetPlayerForSequence(u16 param0);
int Sound_GetSequenceFromSoundHandle(NNSSndHandle *param0);
int Sound_GetSequenceIDFromSoundHandle(NNSSndHandle *param0);
const NNSSndArcBankInfo *sub_02004B3C(int param0);
u16 sub_02004B48(int param0);
u16 Sound_GetBankIDFromSequenceID(int param0);
MICResult sub_02004B5C(MICAutoParam *param0);
MICResult sub_02004B64(void);
NNSSndWaveOutHandle *sub_02004B78(u32 param0);
@ -78,7 +78,7 @@ void sub_02004FDC(int param0);
int sub_02004FEC(void);
void sub_0200500C(int param0);
void *sub_02005014(void);
void sub_0200501C(int param0);
void Sound_SetFieldBGMBankState(int param0);
BOOL sub_0200502C(u8 param0, u16 param1, int param2, int param3, u8 param4, void *param5);
BOOL sub_02005068(u8 param0, u16 param1, int param2, int param3, int param4, u8 param5, void *param6);
static void sub_020050A4(u8 param0, u16 param1, int param2, int param3, u8 param4, void *param5);
@ -134,12 +134,10 @@ u16 Sound_GetNextBGM(void)
return *param;
}
void sub_02004224(u16 param0)
void Sound_SetFieldBGM(u16 bgmID)
{
u16 *v0 = SoundSystem_GetParam(32);
*v0 = param0;
return;
u16 *param = SoundSystem_GetParam(SOUND_SYSTEM_PARAM_FIELD_BGM);
*param = bgmID;
}
void Sound_SetScene(u8 scene)
@ -417,7 +415,7 @@ static void sub_020046F8(u16 param0, int param1)
int *v4 = SoundSystem_GetParam(24);
u16 *v5 = SoundSystem_GetParam(32);
v1 = Sound_GetSequenceFromSoundHandle(SoundSystem_GetSoundHandle(0));
v1 = Sound_GetSequenceIDFromSoundHandle(SoundSystem_GetSoundHandle(0));
if (*v3 == 0) {
if (v1 == param0) {
@ -427,7 +425,7 @@ static void sub_020046F8(u16 param0, int param1)
}
}
sub_0200501C(1);
Sound_SetFieldBGMBankState(FIELD_BGM_BANK_STATE_SWITCH);
sub_020056D4();
if (v1 != param0) {
@ -456,7 +454,7 @@ static void sub_020046F8(u16 param0, int param1)
static void sub_0200478C(u16 param0, u16 param1)
{
u16 *v0 = SoundSystem_GetParam(32);
u16 v1 = sub_02004B48(*v0);
u16 v1 = Sound_GetBankIDFromSequenceID(*v0);
if ((v1 != 701) && (v1 != 703)) {
SoundSystem_LoadSequenceEx(param0, NNS_SND_ARC_LOAD_WAVE);
@ -468,35 +466,33 @@ static void sub_0200478C(u16 param0, u16 param1)
SoundSystem_SaveHeapState(SoundSystem_GetParam(27));
sub_020049F4(1, 0);
sub_0200560C(127, 40, 0);
sub_0200501C(0);
Sound_SetFieldBGMBankState(FIELD_BGM_BANK_STATE_IDLE);
return;
}
void sub_020047E8(u16 param0, u16 param1)
void Sound_LoadSoundDataForFieldBGM(u16 seqID, u16 currentBankID)
{
u16 v0;
u8 *v1 = SoundSystem_GetParam(19);
u16 *v2 = SoundSystem_GetParam(32);
u16 *newFieldBGM = SoundSystem_GetParam(SOUND_SYSTEM_PARAM_FIELD_BGM);
if ((*v1 == 1) || (param1 == 0)) {
if (*v1 == 1 || currentBankID == 0) {
SoundSystem_LoadHeapState(Sound_GetHeapState(SOUND_HEAP_STATE_PERSISTENT));
Sound_SetSubScene(0);
SoundSystem_LoadSequenceEx(*v2, NNS_SND_ARC_LOAD_BANK);
SoundSystem_SaveHeapState(SoundSystem_GetParam(25));
SoundSystem_LoadSequenceEx(*newFieldBGM, NNS_SND_ARC_LOAD_BANK);
SoundSystem_SaveHeapState(SoundSystem_GetParam(SOUND_SYSTEM_PARAM_HEAP_STATE_BGM_BANK));
Sound_LoadSoundEffectsForScene(4);
SoundSystem_SaveHeapState(SoundSystem_GetParam(26));
SoundSystem_SaveHeapState(SoundSystem_GetParam(SOUND_SYSTEM_PARAM_HEAP_STATE_SFX));
v0 = sub_02004B48(*v2);
if ((v0 != 701) && (v0 != 703)) {
SoundSystem_LoadSequenceEx(param0, NNS_SND_ARC_LOAD_WAVE);
u16 newBankID = Sound_GetBankIDFromSequenceID(*newFieldBGM);
if (newBankID != BANK_BGM_FIELD && newBankID != BANK_BGM_DUNGEON) {
SoundSystem_LoadSequenceEx(seqID, NNS_SND_ARC_LOAD_WAVE);
GF_ASSERT(FALSE);
} else {
SoundSystem_LoadSequenceEx(*v2, NNS_SND_ARC_LOAD_WAVE);
SoundSystem_LoadSequenceEx(*newFieldBGM, NNS_SND_ARC_LOAD_WAVE);
}
SoundSystem_SaveHeapState(SoundSystem_GetParam(27));
SoundSystem_SaveHeapState(SoundSystem_GetParam(SOUND_SYSTEM_PARAM_HEAP_STATE_BGM));
}
return;
@ -510,7 +506,7 @@ static void sub_02004874(u16 param0, int param1)
SoundSystem_LoadHeapState(Sound_GetHeapState(SOUND_HEAP_STATE_BGM_BANK));
Sound_LoadSoundEffectsForScene(5);
SoundSystem_SaveHeapState(SoundSystem_GetParam(26));
sub_0200501C(1);
Sound_SetFieldBGMBankState(FIELD_BGM_BANK_STATE_SWITCH);
Sound_PlayBGM(param0);
return;
@ -534,7 +530,7 @@ void sub_020048CC(u16 param0, int param1)
Sound_StopAll();
Sound_LoadSoundEffectsForSceneWithState(6);
sub_0200501C(1);
Sound_SetFieldBGMBankState(FIELD_BGM_BANK_STATE_SWITCH);
Sound_PlayBGM(param0);
return;
@ -546,7 +542,7 @@ void sub_020048F0(u16 param0, int param1)
Sound_StopAll();
Sound_LoadSoundEffectsForSceneWithState(7);
sub_0200501C(1);
Sound_SetFieldBGMBankState(FIELD_BGM_BANK_STATE_SWITCH);
Sound_PlayBGM(param0);
return;
@ -642,7 +638,7 @@ void sub_020049F4(u8 param0, BOOL param1)
}
if (param1 == 0) {
Sound_SetCurrentBGM(Sound_GetSequenceFromSoundHandle(SoundSystem_GetSoundHandle(v0)));
Sound_SetCurrentBGM(Sound_GetSequenceIDFromSoundHandle(SoundSystem_GetSoundHandle(v0)));
}
NNS_SndPlayerPause(SoundSystem_GetSoundHandle(v0), param1);
@ -668,18 +664,17 @@ void sub_02004A54(int param0, int param1, int param2)
return;
}
void sub_02004A68(int param0, int param1)
void Sound_SetInitialVolumeForHandle(enum SoundHandleType handleType, int volume)
{
if (param1 < 0) {
param1 = 0;
if (volume < 0) {
volume = 0;
}
if (param1 > 127) {
param1 = 127;
if (volume > 127) {
volume = 127;
}
NNS_SndPlayerSetInitialVolume(SoundSystem_GetSoundHandle(param0), param1);
return;
NNS_SndPlayerSetInitialVolume(SoundSystem_GetSoundHandle(handleType), volume);
}
void sub_02004A84(int param0)
@ -687,31 +682,32 @@ void sub_02004A84(int param0)
u8 v0 = Sound_GetPlayerForSequence(param0);
int v1 = SoundSystem_GetSoundHandleTypeFromPlayerID(v0);
sub_02004AA0(param0, v1);
Sound_AdjustVolumeForVoiceChat(param0, v1);
return;
}
void sub_02004AA0(int param0, int param1)
void Sound_AdjustVolumeForVoiceChat(int seqID, enum SoundHandleType handleType)
{
u8 v0;
const NNSSndSeqParam *v1 = NNS_SndArcGetSeqParam(param0);
u8 volume;
const NNSSndSeqParam *param = NNS_SndArcGetSeqParam(seqID);
switch (param1) {
case 1:
switch (handleType) {
case SOUND_HANDLE_TYPE_POKEMON_CRY:
case 8:
v0 = 127;
volume = 127;
break;
default:
if (v1 == NULL) {
if (param == NULL) {
return;
}
v0 = v1->volume;
volume = param->volume;
break;
}
if (sub_02036314() == 1) {
sub_02004A68(param1, (v0 / 5));
if (sub_02036314() == TRUE) {
Sound_SetInitialVolumeForHandle(handleType, (volume / 5));
}
return;
@ -722,7 +718,7 @@ void sub_02004AD4(u16 param0, int param1)
u8 v0 = Sound_GetPlayerForSequence(param0);
int v1 = SoundSystem_GetSoundHandleTypeFromPlayerID(v0);
sub_02004A68(v1, param1);
Sound_SetInitialVolumeForHandle(v1, param1);
return;
}
@ -754,14 +750,14 @@ u8 Sound_GetPlayerForSequence(u16 seqID)
return param->playerNo;
}
int Sound_GetSequenceFromSoundHandle(NNSSndHandle *handle)
int Sound_GetSequenceIDFromSoundHandle(NNSSndHandle *handle)
{
return NNS_SndPlayerGetSeqNo(handle);
}
const NNSSndArcBankInfo *sub_02004B3C(int param0)
{
const NNSSndArcBankInfo *v0 = NNS_SndArcGetBankInfo(sub_02004B48(param0));
const NNSSndArcBankInfo *v0 = NNS_SndArcGetBankInfo(Sound_GetBankIDFromSequenceID(param0));
if (v0 == NULL) {
(void)0;
@ -770,15 +766,14 @@ const NNSSndArcBankInfo *sub_02004B3C(int param0)
return v0;
}
u16 sub_02004B48(int param0)
u16 Sound_GetBankIDFromSequenceID(int seqID)
{
const NNSSndSeqParam *v0 = NNS_SndArcGetSeqParam(param0);
if (v0 == NULL) {
const NNSSndSeqParam *param = NNS_SndArcGetSeqParam(seqID);
if (param == NULL) {
return 0;
}
return v0->bankNo;
return param->bankNo;
}
MICResult sub_02004B5C(MICAutoParam *param0)
@ -1214,12 +1209,12 @@ void *sub_02005014(void)
return &Unk_021BEBA0[0];
}
void sub_0200501C(int param0)
// Needs to be set to FIELD_BGM_BANK_STATE_SWITCH before calling
// Sound_PlayBGM, if the bank needs to be switched
void Sound_SetFieldBGMBankState(int state)
{
u8 *v0 = SoundSystem_GetParam(19);
*v0 = param0;
return;
u8 *param = SoundSystem_GetParam(SOUND_SYSTEM_PARAM_FIELD_BGM_BANK_STATE);
*param = state;
}
BOOL sub_0200502C(u8 param0, u16 param1, int param2, int param3, u8 param4, void *param5)
@ -1255,7 +1250,7 @@ static void sub_020050A4(u8 param0, u16 param1, int param2, int param3, u8 param
sub_02004FDC(param3);
*v0 = sub_02004B3C(param1);
sub_0200501C(param4);
Sound_SetFieldBGMBankState(param4);
return;
}
@ -1536,7 +1531,7 @@ void sub_020053CC(int param0)
static void sub_0200540C(void)
{
if ((Sound_CheckFade() == 0) && (Sound_GetSequenceFromSoundHandle(SoundSystem_GetSoundHandle(0)) != -1) && (Sound_GetCurrentBGM() != 1150)) {
if ((Sound_CheckFade() == 0) && (Sound_GetSequenceIDFromSoundHandle(SoundSystem_GetSoundHandle(0)) != -1) && (Sound_GetCurrentBGM() != 1150)) {
sub_020056D4();
sub_020049F4(1, 1);
} else {

View File

@ -22,9 +22,9 @@ typedef struct {
BOOL sub_02005474(u16 param0);
BOOL Sound_PlayBGM(u16 param0);
static void sub_020054EC(u16 param0, int param1);
static BOOL Sound_PlayRegularBGM(u16 seqID, u8 playerID, enum SoundHandleType handleType);
static BOOL Sound_PlayFieldBGM(u16 seqID, u8 playerID, enum SoundHandleType handleType);
static void Sound_Impl_HandleBGMChange(u16 param0, enum SoundHandleType param1);
static BOOL Sound_Impl_PlayBGM(u16 seqID, u8 playerID, enum SoundHandleType handleType);
static BOOL Sound_Impl_PlayFieldBGM(u16 seqID, u8 playerID, enum SoundHandleType handleType);
BOOL sub_02005588(u8 param0, u16 param1);
void sub_020055D0(u16 param0, int param1);
static void sub_020055F4(void);
@ -71,41 +71,40 @@ BOOL sub_02005474(u16 param0)
(void)0;
}
sub_020054EC(param0, v2);
Sound_Impl_HandleBGMChange(param0, v2);
return v0;
}
BOOL Sound_PlayBGM(u16 seqID)
BOOL Sound_PlayBGM(u16 bgmID)
{
int result;
u8 player = Sound_GetPlayerForSequence(seqID);
u8 player = Sound_GetPlayerForSequence(bgmID);
enum SoundHandleType handleType = SoundSystem_GetSoundHandleTypeFromPlayerID(player);
if (player == PLAYER_BGM) {
result = Sound_PlayRegularBGM(seqID, player, handleType);
result = Sound_Impl_PlayBGM(bgmID, player, handleType);
} else if (player == PLAYER_FIELD) {
result = Sound_PlayFieldBGM(seqID, player, handleType);
result = Sound_Impl_PlayFieldBGM(bgmID, player, handleType);
} else {
GF_ASSERT(FALSE);
return FALSE;
}
sub_0200501C(0);
// Field BGM Bank may or may not have been switched, so set it to idle
Sound_SetFieldBGMBankState(FIELD_BGM_BANK_STATE_IDLE);
sub_020054EC(seqID, handleType);
Sound_Impl_HandleBGMChange(bgmID, handleType);
return result;
}
static void sub_020054EC(u16 param0, int param1)
static void Sound_Impl_HandleBGMChange(u16 seqID, enum SoundHandleType handleType)
{
Sound_SetCurrentBGM(param0);
sub_02004AA0(param0, param1);
SoundSystem_SetState(1);
return;
Sound_SetCurrentBGM(seqID);
Sound_AdjustVolumeForVoiceChat(seqID, handleType);
SoundSystem_SetState(SOUND_SYSTEM_STATE_PLAY);
}
static BOOL Sound_PlayRegularBGM(u16 seqID, u8 playerID, enum SoundHandleType handleType)
static BOOL Sound_Impl_PlayBGM(u16 seqID, u8 playerID, enum SoundHandleType handleType)
{
SoundSystem_LoadHeapState(Sound_GetHeapState(SOUND_HEAP_STATE_SFX));
SoundSystem_LoadSequence(seqID);
@ -114,15 +113,21 @@ static BOOL Sound_PlayRegularBGM(u16 seqID, u8 playerID, enum SoundHandleType ha
return NNS_SndArcPlayerStartSeq(SoundSystem_GetSoundHandle(handleType), seqID);
}
static BOOL Sound_PlayFieldBGM(u16 seqID, u8 playerID, enum SoundHandleType handleType)
static BOOL Sound_Impl_PlayFieldBGM(u16 seqID, u8 playerID, enum SoundHandleType handleType)
{
u8 *v1 = SoundSystem_GetParam(19);
u16 *v2 = SoundSystem_GetParam(32);
u16 *newFieldBGM = SoundSystem_GetParam(SOUND_SYSTEM_PARAM_FIELD_BGM);
int v0 = Sound_GetSequenceFromSoundHandle(SoundSystem_GetSoundHandle(SOUND_HANDLE_TYPE_FIELD_BGM));
sub_020047E8(seqID, sub_02004B48(v0));
int currentSeqID = Sound_GetSequenceIDFromSoundHandle(SoundSystem_GetSoundHandle(SOUND_HANDLE_TYPE_FIELD_BGM));
Sound_LoadSoundDataForFieldBGM(seqID, Sound_GetBankIDFromSequenceID(currentSeqID));
return NNS_SndArcPlayerStartSeqEx(SoundSystem_GetSoundHandle(handleType), -1, sub_02004B48(*v2), -1, seqID);
return NNS_SndArcPlayerStartSeqEx(
SoundSystem_GetSoundHandle(handleType),
-1,
Sound_GetBankIDFromSequenceID(*newFieldBGM),
-1,
seqID
);
}
BOOL sub_02005588(u8 param0, u16 param1)
@ -292,7 +297,7 @@ BOOL Sound_PlayEffect(u16 sdatID)
int v0 = SoundSystem_GetSoundHandleTypeFromPlayerID(Sound_GetPlayerForSequence(sdatID));
int v1 = NNS_SndArcPlayerStartSeq(SoundSystem_GetSoundHandle(v0), sdatID);
sub_02004AA0(sdatID, v0);
Sound_AdjustVolumeForVoiceChat(sdatID, v0);
return v1;
}
@ -302,7 +307,7 @@ BOOL sub_02005770(u16 param0, int param1)
int v0 = SoundSystem_GetSoundHandleTypeFromPlayerID(param1);
int v1 = NNS_SndArcPlayerStartSeqEx(SoundSystem_GetSoundHandle(v0), param1, -1, -1, param0);
sub_02004AA0(param0, v0);
Sound_AdjustVolumeForVoiceChat(param0, v0);
if (v1 == 0) {
(void)0;
@ -403,10 +408,10 @@ BOOL sub_02005844(u16 species, u8 form)
}
v1 = NNS_SndArcPlayerStartSeqEx(SoundSystem_GetSoundHandle(1), -1, species, -1, 2);
sub_02004AA0(species, 1);
Sound_AdjustVolumeForVoiceChat(species, 1);
} else {
v1 = NNS_SndArcPlayerStartSeqEx(SoundSystem_GetSoundHandle(8), -1, species, -1, 2);
sub_02004AA0(species, 8);
Sound_AdjustVolumeForVoiceChat(species, 8);
}
Sound_FlagDefaultChatotCry(FALSE);
@ -661,8 +666,8 @@ BOOL Sound_PlayPokemonCry(enum PokemonCryMod cryMod, u16 species, int param2, in
static void sub_02005E4C(u16 param0, int param1, int param2)
{
sub_02004A68(param1, param2);
sub_02004AA0(param0, param1);
Sound_SetInitialVolumeForHandle(param1, param2);
Sound_AdjustVolumeForVoiceChat(param0, param1);
return;
}
@ -894,7 +899,7 @@ BOOL sub_02006150(u16 param0)
v2 = SoundSystem_LoadSequenceEx(param0, (NNS_SND_ARC_LOAD_SEQ | NNS_SND_ARC_LOAD_BANK));
v2 = NNS_SndArcPlayerStartSeq(SoundSystem_GetSoundHandle(2), param0);
sub_02004AA0(param0, 2);
Sound_AdjustVolumeForVoiceChat(param0, 2);
return v2;
}

View File

@ -319,7 +319,7 @@ void Sound_PlayMapBGM(FieldSystem *fieldSystem, int param1)
v0 = sub_020554A4(fieldSystem, param1);
sub_02004224(v0);
Sound_SetFieldBGM(v0);
sub_02004550(4, v0, 1);
}
@ -327,6 +327,6 @@ void sub_020556A0(FieldSystem *fieldSystem, int param1)
{
u16 v0 = sub_02055428(fieldSystem, param1);
sub_02004224(sub_020554A4(fieldSystem, param1));
Sound_SetFieldBGM(sub_020554A4(fieldSystem, param1));
sub_02004550(4, v0, 1);
}

View File

@ -322,7 +322,7 @@ static BOOL sub_0208BC8C(UnkStruct_0208BC3C *param0, int heapID)
v1 = sub_02055428(param0->fieldSystem, param0->fieldSystem->location->mapId);
sub_02004224(sub_020554A4(param0->fieldSystem, param0->fieldSystem->location->mapId));
Sound_SetFieldBGM(sub_020554A4(param0->fieldSystem, param0->fieldSystem->location->mapId));
sub_02004550(4, v1, 1);
}