diff options
| author | engineer124 <47598039+engineer124@users.noreply.github.com> | 2022-10-07 07:29:33 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-10-07 13:29:33 +0200 |
| commit | 062f4d8e158a5f497efad26910d1c799fed3184e (patch) | |
| tree | cf363b6fc08fe61c7ee9158ed21a9d759b2f018e /src/code/code_800EC960.c | |
| parent | a99d41bf35d560996e252dd7db18bd488e98f70c (diff) | |
Document code_800F9280.c -> audio_seqcmd.c i.e. (Audio_QueueSeqCmd) (#1234)
* Document SoundSources
* PR Suggestions
* Duration timers to dec
* `PlaySfxByPosAndId` -> `PlaySoundByPosition`
* Begin importing docs from MM
* Finish cleanup using code from MM
* Start documenting commands
* First attempt at thorough AudioSeqCmd wrappers
* Improve names
* Merge branch 'master' into audio_seqCmd
fix name to minimize conflicts
* Combine macros, implement them through repo
* Improve docs
* More progress, begin sequence command docs
* seqcmd.h
* More documentation of seqcmd.h
* More docs
* cleanup
* More cleanup
* More docs
* VOL_SCALE_INDEX enum
* missed enums
* More Cleanup
* docs
* More docs
* Add comments about sfxChannelLayout
* More cleanup
* Even better docs
* Add a file description
* small touchups
* More cleanup of comments
* more
* More cleanup
* More cleanup
* Missing space
* typos
* Audio_SetVolumeScaleNow
* More cleanup
* Fill in enum
* one more cleanup
* Capitalize macros
* remove AUDIO_
* cleanup
* more cleanup
* Small Fix
* Add a lot of backticks for docs
* Restructuring docs
* More cleanup
* swap channel args, cleanup
* Typos
* Many suggestions, revert filename
* pr suggestions
* even more PR
* more pr suggestions
* pr suggestion
Diffstat (limited to 'src/code/code_800EC960.c')
| -rw-r--r-- | src/code/code_800EC960.c | 357 |
1 files changed, 174 insertions, 183 deletions
diff --git a/src/code/code_800EC960.c b/src/code/code_800EC960.c index db828c39a..c34d00a6b 100644 --- a/src/code/code_800EC960.c +++ b/src/code/code_800EC960.c @@ -1,27 +1,7 @@ #include "ultra64.h" #include "global.h" -// TODO: can these macros be shared between files? code_800F9280 seems to use -// versions without any casts... -#define Audio_DisableSeq(playerIdx, fadeOut) Audio_QueueCmdS32(0x83000000 | ((u8)playerIdx << 16), fadeOut) -#define Audio_StartSeq(playerIdx, fadeTimer, seqId) \ - Audio_QueueSeqCmd(0x00000000 | ((u8)playerIdx << 24) | ((u8)(fadeTimer) << 0x10) | (u16)seqId) -#define Audio_SeqCmd7(playerIdx, a, b) \ - Audio_QueueSeqCmd(0x70000000 | ((u8)playerIdx << 0x18) | ((u8)a << 0x10) | (u8)(b)) -#define Audio_SeqCmdC(playerIdx, a, b, c) \ - Audio_QueueSeqCmd(0xC0000000 | ((u8)playerIdx << 24) | ((u8)a << 16) | ((u8)b << 8) | ((u8)(c))) -#define Audio_SeqCmdA(playerIdx, a) Audio_QueueSeqCmd(0xA0000000 | ((u8)playerIdx << 24) | ((u16)(a))) -#define Audio_SeqCmd1(playerIdx, a) Audio_QueueSeqCmd(0x100000FF | ((u8)playerIdx << 24) | ((u8)(a) << 16)) -#define Audio_SeqCmdB(playerIdx, a, b, c) \ - Audio_QueueSeqCmd(0xB0000000 | ((u8)playerIdx << 24) | ((u8)a << 16) | ((u8)b << 8) | ((u8)c)) -#define Audio_SeqCmdB40(playerIdx, a, b) Audio_QueueSeqCmd(0xB0004000 | ((u8)playerIdx << 24) | ((u8)a << 16) | ((u8)b)) -#define Audio_SeqCmd6(playerIdx, a, b, c) \ - Audio_QueueSeqCmd(0x60000000 | ((u8)playerIdx << 24) | ((u8)(a) << 16) | ((u8)b << 8) | ((u8)c)) -#define Audio_SeqCmdE0(playerIdx, a) Audio_QueueSeqCmd(0xE0000000 | ((u8)playerIdx << 24) | ((u8)a)) -#define Audio_SeqCmdE01(playerIdx, a) Audio_QueueSeqCmd(0xE0000100 | ((u8)playerIdx << 24) | ((u16)a)) -#define Audio_SeqCmd8(playerIdx, a, b, c) \ - Audio_QueueSeqCmd(0x80000000 | ((u8)playerIdx << 24) | ((u8)a << 16) | ((u8)b << 8) | ((u8)c)) -#define Audio_SeqCmdF(playerIdx, a) Audio_QueueSeqCmd(0xF0000000 | ((u8)playerIdx << 24) | ((u8)a)) +#define Audio_DisableSeq(seqPlayerIndex, fadeOut) Audio_QueueCmdS32(0x83000000 | ((u8)seqPlayerIndex << 16), fadeOut) #define ABS_ALT(x) ((x) < 0 ? -(x) : (x)) @@ -1768,7 +1748,7 @@ void AudioOcarina_SetInstrument(u8 ocarinaInstrumentId) { return; } - Audio_SeqCmd8(SEQ_PLAYER_SFX, 1, SFX_CHANNEL_OCARINA, ocarinaInstrumentId); + SEQCMD_SET_CHANNEL_IO(SEQ_PLAYER_SFX, SFX_CHANNEL_OCARINA, 1, ocarinaInstrumentId); sOcarinaInstrumentId = ocarinaInstrumentId; if (ocarinaInstrumentId == OCARINA_INSTRUMENT_OFF) { sOcarinaInputButtonCur = 0; @@ -3158,7 +3138,7 @@ void AudioDebug_ProcessInput_SndCont(void) { switch (sAudioSndContSel) { case 0: case 1: - Audio_StartSeq(sAudioSndContSel, 0, sAudioSndContWork[sAudioSndContSel]); + SEQCMD_PLAY_SEQUENCE(sAudioSndContSel, 0, 0, sAudioSndContWork[sAudioSndContSel]); break; case 2: case 3: @@ -3170,10 +3150,10 @@ void AudioDebug_ProcessInput_SndCont(void) { func_800F6700(sAudioSndContWork[sAudioSndContSel]); break; case 5: - Audio_SeqCmdE01(SEQ_PLAYER_BGM_MAIN, sAudioSndContWork[sAudioSndContSel]); + SEQCMD_DISABLE_PLAY_SEQUENCES(sAudioSndContWork[sAudioSndContSel]); break; case 6: - Audio_SeqCmdF(SEQ_PLAYER_BGM_MAIN, sAudioSndContWork[sAudioSndContSel]); + SEQCMD_RESET_AUDIO_HEAP(0, sAudioSndContWork[sAudioSndContSel]); sAudioSubTrackInfoSpec = sAudioSndContWork[6]; if (sAudioSubTrackInfoPlayerSel > gAudioSpecs[sAudioSubTrackInfoSpec].numSequencePlayers - 1) { sAudioSubTrackInfoPlayerSel = gAudioSpecs[sAudioSubTrackInfoSpec].numSequencePlayers - 1; @@ -3195,10 +3175,10 @@ void AudioDebug_ProcessInput_SndCont(void) { switch (sAudioSndContSel) { case 0: case 1: - Audio_SeqCmd1(sAudioSndContSel, 0); + SEQCMD_STOP_SEQUENCE(sAudioSndContSel, 0); break; case 7: - Audio_SeqCmd1(SEQ_PLAYER_BGM_MAIN, 0); + SEQCMD_STOP_SEQUENCE(SEQ_PLAYER_BGM_MAIN, 0); break; case 2: case 3: @@ -3488,11 +3468,11 @@ void AudioDebug_ProcessInput_BlkChgBgm(void) { if (CHECK_BTN_ANY(sDebugPadPress, BTN_A)) { Audio_QueueCmdS8(MK_CMD(0x46, SEQ_PLAYER_BGM_MAIN, 0x00, 0x00), sAudioBlkChgBgmWork[1]); - Audio_QueueSeqCmd(sAudioBlkChgBgmWork[0] | 0x10000); + SEQCMD_PLAY_SEQUENCE(SEQ_PLAYER_BGM_MAIN, 1, 0, sAudioBlkChgBgmWork[0]); } if (CHECK_BTN_ANY(sDebugPadPress, BTN_B)) { - Audio_QueueSeqCmd(0x100100FF); + SEQCMD_STOP_SEQUENCE(SEQ_PLAYER_BGM_MAIN, 1); } } @@ -3644,12 +3624,12 @@ void AudioDebug_ProcessInput(void) { case PAGE_NON: if (CHECK_BTN_ANY(sDebugPadPress, BTN_A)) { sAudioSndContWork[5] ^= 1; - Audio_SeqCmdE01(SEQ_PLAYER_BGM_MAIN, sAudioSndContWork[5]); - if (func_800FA0B4(SEQ_PLAYER_BGM_MAIN) != NA_BGM_NATURE_AMBIENCE) { - Audio_SeqCmd1(SEQ_PLAYER_BGM_MAIN, 0); + SEQCMD_DISABLE_PLAY_SEQUENCES(sAudioSndContWork[5]); + if (Audio_GetActiveSeqId(SEQ_PLAYER_BGM_MAIN) != NA_BGM_NATURE_AMBIENCE) { + SEQCMD_STOP_SEQUENCE(SEQ_PLAYER_BGM_MAIN, 0); } - Audio_SeqCmd1(SEQ_PLAYER_FANFARE, 0); - Audio_SeqCmd1(SEQ_PLAYER_BGM_SUB, 0); + SEQCMD_STOP_SEQUENCE(SEQ_PLAYER_FANFARE, 0); + SEQCMD_STOP_SEQUENCE(SEQ_PLAYER_BGM_SUB, 0); } if (CHECK_BTN_ANY(sDebugPadPress, BTN_B)) { @@ -3691,7 +3671,7 @@ void AudioDebug_ProcessInput(void) { break; } - D_8013340C = sAudioScrPrtWork[10]; + gAudioDebugPrintSeqCmd = sAudioScrPrtWork[10]; } void Audio_UpdateRiverSoundVolumes(void); @@ -3716,7 +3696,7 @@ void func_800F3054(void) { Audio_ProcessSfxRequests(); Audio_ProcessSeqCmds(); func_800F8F88(); - func_800FA3DC(); + Audio_UpdateActiveSequences(); AudioDebug_SetInput(); AudioDebug_ProcessInput(); Audio_ScheduleProcessCmds(); @@ -4094,8 +4074,8 @@ void Audio_ResetSfxChannelState(void) { void Audio_PlayCutsceneEffectsSequence(u8 csEffectType) { if (gSfxBankMuted[0] != 1) { - Audio_StartSeq(SEQ_PLAYER_BGM_SUB, 0, NA_BGM_CUTSCENE_EFFECTS); - Audio_SeqCmd8(SEQ_PLAYER_BGM_SUB, 0, 0, csEffectType); + SEQCMD_PLAY_SEQUENCE(SEQ_PLAYER_BGM_SUB, 0, 0, NA_BGM_CUTSCENE_EFFECTS); + SEQCMD_SET_CHANNEL_IO(SEQ_PLAYER_BGM_SUB, 0, 0, csEffectType); } } @@ -4263,17 +4243,17 @@ void Audio_StepFreqLerp(FreqLerp* lerp) { } void func_800F47BC(void) { - Audio_SetVolScale(SEQ_PLAYER_BGM_MAIN, 1, 0, 10); - Audio_SetVolScale(SEQ_PLAYER_BGM_SUB, 1, 0, 10); + Audio_SetVolumeScale(SEQ_PLAYER_BGM_MAIN, VOL_SCALE_INDEX_FANFARE, 0, 10); + Audio_SetVolumeScale(SEQ_PLAYER_BGM_SUB, VOL_SCALE_INDEX_FANFARE, 0, 10); } void func_800F47FC(void) { - Audio_SetVolScale(SEQ_PLAYER_BGM_MAIN, 1, 0x7F, 3); - Audio_SetVolScale(SEQ_PLAYER_BGM_SUB, 1, 0x7F, 3); + Audio_SetVolumeScale(SEQ_PLAYER_BGM_MAIN, VOL_SCALE_INDEX_FANFARE, 0x7F, 3); + Audio_SetVolumeScale(SEQ_PLAYER_BGM_SUB, VOL_SCALE_INDEX_FANFARE, 0x7F, 3); } void func_800F483C(u8 targetVol, u8 volFadeTimer) { - Audio_SetVolScale(SEQ_PLAYER_BGM_MAIN, 0, targetVol, volFadeTimer); + Audio_SetVolumeScale(SEQ_PLAYER_BGM_MAIN, VOL_SCALE_INDEX_BGM_MAIN, targetVol, volFadeTimer); } /** @@ -4315,7 +4295,7 @@ s32 Audio_SetGanonsTowerBgmVolume(u8 targetVol) { if (sGanonsTowerVol != targetVol) { // Sets the volume - Audio_SetVolScale(SEQ_PLAYER_BGM_MAIN, 0, targetVol, 2); + Audio_SetVolumeScale(SEQ_PLAYER_BGM_MAIN, VOL_SCALE_INDEX_BGM_MAIN, targetVol, 2); // Sets the filter cutoff of the form (lowPassFilterCutoff << 4) | (highPassFilter & 0xF). highPassFilter is // always set to 0 @@ -4327,7 +4307,7 @@ s32 Audio_SetGanonsTowerBgmVolume(u8 targetVol) { lowPassFilterCutoff = (((targetVol - 0x40) >> 2) + 1) << 4; } // Set lowPassFilterCutoff to io port 4 from channel 15 - Audio_SeqCmd8(SEQ_PLAYER_BGM_MAIN, 4, 15, lowPassFilterCutoff); + SEQCMD_SET_CHANNEL_IO(SEQ_PLAYER_BGM_MAIN, 15, 4, lowPassFilterCutoff); // Sets the reverb for (channelIdx = 0; channelIdx < 16; channelIdx++) { @@ -4369,14 +4349,14 @@ void Audio_UpdateRiverSoundVolumes(void) { if (sRiverSoundMainBgmLower == true) { if (sRiverSoundMainBgmCurrentVol != sRiverSoundMainBgmVol) { // lowers the volume for 1 frame - Audio_SetVolScale(SEQ_PLAYER_BGM_MAIN, 0, sRiverSoundMainBgmVol, 0xA); + Audio_SetVolumeScale(SEQ_PLAYER_BGM_MAIN, VOL_SCALE_INDEX_BGM_MAIN, sRiverSoundMainBgmVol, 10); sRiverSoundMainBgmCurrentVol = sRiverSoundMainBgmVol; sRiverSoundMainBgmRestore = true; } sRiverSoundMainBgmLower = false; } else if (sRiverSoundMainBgmRestore == true && D_80130608 == 0) { // restores the volume every frame - Audio_SetVolScale(SEQ_PLAYER_BGM_MAIN, 0, 0x7F, 0xA); + Audio_SetVolumeScale(SEQ_PLAYER_BGM_MAIN, VOL_SCALE_INDEX_BGM_MAIN, 0x7F, 10); sRiverSoundMainBgmCurrentVol = 0x7F; sRiverSoundMainBgmRestore = false; } @@ -4464,7 +4444,7 @@ void func_800F4E30(Vec3f* pos, f32 arg1) { for (i = 0; i < 0x10; i++) { if (i != 9) { - Audio_SeqCmd6(SEQ_PLAYER_BGM_MAIN, 2, i, (127.0f * phi_f22)); + SEQCMD_SET_CHANNEL_VOLUME(SEQ_PLAYER_BGM_MAIN, i, 2, (127.0f * phi_f22)); Audio_QueueCmdS8(0x3 << 24 | SEQ_PLAYER_BGM_MAIN << 16 | ((u8)((u32)i) << 8), phi_s4); } } @@ -4494,8 +4474,8 @@ void Audio_SplitBgmChannels(s8 volSplit) { u8 channelIdx; u8 i; - if ((func_800FA0B4(SEQ_PLAYER_FANFARE) == NA_BGM_DISABLED) && - (func_800FA0B4(SEQ_PLAYER_BGM_SUB) != NA_BGM_LONLON)) { + if ((Audio_GetActiveSeqId(SEQ_PLAYER_FANFARE) == NA_BGM_DISABLED) && + (Audio_GetActiveSeqId(SEQ_PLAYER_BGM_SUB) != NA_BGM_LONLON)) { for (i = 0; i < ARRAY_COUNT(bgmPlayers); i++) { if (i == 0) { // Main Bgm SeqPlayer @@ -4523,7 +4503,7 @@ void Audio_SplitBgmChannels(s8 volSplit) { } } - Audio_SeqCmdA(bgmPlayers[i], channelBits); + SEQCMD_SET_CHANNEL_DISABLE_MASK(bgmPlayers[i], channelBits); } } } @@ -4570,8 +4550,8 @@ void Audio_PlaySariaBgm(Vec3f* pos, u16 seqId, u16 distMax) { Audio_SplitBgmChannels(vol); } - Audio_SetVolScale(SEQ_PLAYER_BGM_SUB, 3, vol, 0); - Audio_SetVolScale(SEQ_PLAYER_BGM_MAIN, 3, 0x7F - vol, 0); + Audio_SetVolumeScale(SEQ_PLAYER_BGM_SUB, VOL_SCALE_INDEX_BGM_SUB, vol, 0); + Audio_SetVolumeScale(SEQ_PLAYER_BGM_MAIN, VOL_SCALE_INDEX_BGM_SUB, 0x7F - vol, 0); } void Audio_ClearSariaBgm2(void) { @@ -4587,9 +4567,9 @@ void func_800F5550(u16 seqId) { u8 sp27 = 0; u16 nv; - if (func_800FA0B4(SEQ_PLAYER_BGM_MAIN) != NA_BGM_WINDMILL) { - if (func_800FA0B4(SEQ_PLAYER_BGM_SUB) == NA_BGM_LONLON) { - func_800F9474(SEQ_PLAYER_BGM_SUB, 0); + if (Audio_GetActiveSeqId(SEQ_PLAYER_BGM_MAIN) != NA_BGM_WINDMILL) { + if (Audio_GetActiveSeqId(SEQ_PLAYER_BGM_SUB) == NA_BGM_LONLON) { + Audio_StopSequence(SEQ_PLAYER_BGM_SUB, 0); Audio_QueueCmdS32(0xF8000000, 0); } @@ -4617,7 +4597,7 @@ void func_800F56A8(void) { u16 temp_v0; u8 bvar; - temp_v0 = func_800FA0B4(SEQ_PLAYER_BGM_MAIN); + temp_v0 = Audio_GetActiveSeqId(SEQ_PLAYER_BGM_MAIN); bvar = temp_v0 & 0xFF; if ((temp_v0 != NA_BGM_DISABLED) && (sSeqFlags[bvar] & SEQ_FLAG_4)) { if (D_8013062C != 0xC0) { @@ -4629,23 +4609,25 @@ void func_800F56A8(void) { } void func_800F5718(void) { - if (func_800FA0B4(SEQ_PLAYER_BGM_MAIN) != NA_BGM_WINDMILL) { - Audio_StartSeq(SEQ_PLAYER_BGM_MAIN, 0, NA_BGM_WINDMILL); + if (Audio_GetActiveSeqId(SEQ_PLAYER_BGM_MAIN) != NA_BGM_WINDMILL) { + SEQCMD_PLAY_SEQUENCE(SEQ_PLAYER_BGM_MAIN, 0, 0, NA_BGM_WINDMILL); } } -void func_800F574C(f32 arg0, u8 arg2) { - if (arg0 == 1.0f) { - Audio_SeqCmdB40(SEQ_PLAYER_BGM_MAIN, arg2, 0); +void func_800F574C(f32 scaleTempoAndFreq, u8 duration) { + if (scaleTempoAndFreq == 1.0f) { + SEQCMD_RESET_TEMPO(SEQ_PLAYER_BGM_MAIN, duration); } else { - Audio_SeqCmdC(SEQ_PLAYER_FANFARE, 0x30, arg2, arg0 * 100.0f); + SEQCMD_SETUP_SCALE_TEMPO(SEQ_PLAYER_FANFARE, SEQ_PLAYER_BGM_MAIN, duration, scaleTempoAndFreq * 100.0f); } - Audio_SeqCmdC(SEQ_PLAYER_FANFARE, 0xA0, arg2, arg0 * 100.0f); + + SEQCMD_SETUP_SET_PLAYER_FREQ(SEQ_PLAYER_FANFARE, SEQ_PLAYER_BGM_MAIN, duration, scaleTempoAndFreq * 100.0f); } void func_800F5918(void) { - if (func_800FA0B4(SEQ_PLAYER_BGM_MAIN) == NA_BGM_TIMED_MINI_GAME && func_800FA11C(0, 0xF0000000)) { - Audio_SeqCmdB(SEQ_PLAYER_BGM_MAIN, 5, 0, 0xD2); + if (Audio_GetActiveSeqId(SEQ_PLAYER_BGM_MAIN) == NA_BGM_TIMED_MINI_GAME && + Audio_IsSeqCmdNotQueued(SEQCMD_OP_PLAY_SEQUENCE << 28, SEQCMD_OP_MASK)) { + SEQCMD_SET_TEMPO(SEQ_PLAYER_BGM_MAIN, 5, 210); } } @@ -4655,11 +4637,11 @@ void func_800F595C(u16 arg0) { if (sSeqFlags[arg0b] & SEQ_FLAG_FANFARE) { Audio_PlayFanfare(arg0); } else if (sSeqFlags[arg0b] & SEQ_FLAG_FANFARE_GANON) { - Audio_StartSeq(SEQ_PLAYER_FANFARE, 0, arg0); + SEQCMD_PLAY_SEQUENCE(SEQ_PLAYER_FANFARE, 0, 0, arg0); } else { func_800F5E18(SEQ_PLAYER_BGM_MAIN, arg0, 0, 7, -1); - Audio_SeqCmd1(SEQ_PLAYER_FANFARE, 0); + SEQCMD_STOP_SEQUENCE(SEQ_PLAYER_FANFARE, 0); } } @@ -4667,11 +4649,11 @@ void func_800F59E8(u16 arg0) { u8 arg0b = arg0 & 0xFF; if (sSeqFlags[arg0b] & SEQ_FLAG_FANFARE) { - Audio_SeqCmd1(SEQ_PLAYER_FANFARE, 0); + SEQCMD_STOP_SEQUENCE(SEQ_PLAYER_FANFARE, 0); } else if (sSeqFlags[arg0b] & SEQ_FLAG_FANFARE_GANON) { - Audio_SeqCmd1(SEQ_PLAYER_FANFARE, 0); + SEQCMD_STOP_SEQUENCE(SEQ_PLAYER_FANFARE, 0); } else { - Audio_SeqCmd1(SEQ_PLAYER_BGM_MAIN, 0); + SEQCMD_STOP_SEQUENCE(SEQ_PLAYER_BGM_MAIN, 0); } } @@ -4684,7 +4666,7 @@ s32 func_800F5A58(u8 arg0) { phi_a1 = 1; } - if (arg0 == (u8)func_800FA0B4(phi_a1)) { + if (arg0 == (u8)Audio_GetActiveSeqId(phi_a1)) { return 1; } else { return 0; @@ -4696,7 +4678,7 @@ s32 func_800F5A58(u8 arg0) { * Designed for the mini-boss sequence, but also used by mini-game 2 sequence */ void func_800F5ACC(u16 seqId) { - u16 curSeqId = func_800FA0B4(SEQ_PLAYER_BGM_MAIN); + u16 curSeqId = Audio_GetActiveSeqId(SEQ_PLAYER_BGM_MAIN); if ((curSeqId & 0xFF) != NA_BGM_GANON_TOWER && (curSeqId & 0xFF) != NA_BGM_ESCAPE && curSeqId != seqId) { Audio_SetSequenceMode(SEQ_MODE_IGNORE); @@ -4706,7 +4688,7 @@ void func_800F5ACC(u16 seqId) { osSyncPrintf("Middle Boss BGM Start not stack \n"); } - Audio_StartSeq(SEQ_PLAYER_BGM_MAIN, 0, seqId); + SEQCMD_PLAY_SEQUENCE(SEQ_PLAYER_BGM_MAIN, 0, 0, seqId); } } @@ -4714,12 +4696,12 @@ void func_800F5ACC(u16 seqId) { * Restores the previous sequence to the main bgm player before func_800F5ACC was called */ void func_800F5B58(void) { - if ((func_800FA0B4(SEQ_PLAYER_BGM_MAIN) != NA_BGM_DISABLED) && (sPrevMainBgmSeqId != NA_BGM_DISABLED) && - (sSeqFlags[func_800FA0B4(SEQ_PLAYER_BGM_MAIN) & 0xFF] & SEQ_FLAG_RESTORE)) { + if ((Audio_GetActiveSeqId(SEQ_PLAYER_BGM_MAIN) != NA_BGM_DISABLED) && (sPrevMainBgmSeqId != NA_BGM_DISABLED) && + (sSeqFlags[Audio_GetActiveSeqId(SEQ_PLAYER_BGM_MAIN) & 0xFF] & SEQ_FLAG_RESTORE)) { if (sPrevMainBgmSeqId == NA_BGM_DISABLED) { - Audio_SeqCmd1(SEQ_PLAYER_BGM_MAIN, 0); + SEQCMD_STOP_SEQUENCE(SEQ_PLAYER_BGM_MAIN, 0); } else { - Audio_StartSeq(SEQ_PLAYER_BGM_MAIN, 0, sPrevMainBgmSeqId); + SEQCMD_PLAY_SEQUENCE(SEQ_PLAYER_BGM_MAIN, 0, 0, sPrevMainBgmSeqId); } sPrevMainBgmSeqId = NA_BGM_DISABLED; @@ -4730,7 +4712,7 @@ void func_800F5B58(void) { * Plays the nature ambience sequence on the main bgm player, but stores the previous sequence to return to later */ void func_800F5BF0(u8 natureAmbienceId) { - u16 curSeqId = func_800FA0B4(SEQ_PLAYER_BGM_MAIN); + u16 curSeqId = Audio_GetActiveSeqId(SEQ_PLAYER_BGM_MAIN); if (curSeqId != NA_BGM_NATURE_AMBIENCE) { sPrevMainBgmSeqId = curSeqId; @@ -4744,7 +4726,7 @@ void func_800F5BF0(u8 natureAmbienceId) { */ void func_800F5C2C(void) { if (sPrevMainBgmSeqId != NA_BGM_DISABLED) { - Audio_StartSeq(SEQ_PLAYER_BGM_MAIN, 0, sPrevMainBgmSeqId); + SEQCMD_PLAY_SEQUENCE(SEQ_PLAYER_BGM_MAIN, 0, 0, sPrevMainBgmSeqId); } sPrevMainBgmSeqId = NA_BGM_DISABLED; } @@ -4755,53 +4737,58 @@ void Audio_PlayFanfare(u16 seqId) { u8* sp1C; u8* sp18; - sp26 = func_800FA0B4(SEQ_PLAYER_FANFARE); + sp26 = Audio_GetActiveSeqId(SEQ_PLAYER_FANFARE); sp1C = func_800E5E84(sp26 & 0xFF, &sp20); sp18 = func_800E5E84(seqId & 0xFF, &sp20); if ((sp26 == NA_BGM_DISABLED) || (*sp1C == *sp18)) { D_8016B9F4 = 1; } else { D_8016B9F4 = 5; - Audio_SeqCmd1(SEQ_PLAYER_FANFARE, 0); + SEQCMD_STOP_SEQUENCE(SEQ_PLAYER_FANFARE, 0); } D_8016B9F6 = seqId; } void func_800F5CF8(void) { - u16 sp26; - u16 pad; - u16 sp22; + u16 seqIdFanfare; + u16 seqIdBgmMain; + u16 seqIdBgmSub; if (D_8016B9F4 != 0) { D_8016B9F4--; if (D_8016B9F4 == 0) { Audio_QueueCmdS32(0xE3000000, SEQUENCE_TABLE); Audio_QueueCmdS32(0xE3000000, FONT_TABLE); - func_800FA0B4(SEQ_PLAYER_BGM_MAIN); - sp26 = func_800FA0B4(SEQ_PLAYER_FANFARE); - sp22 = func_800FA0B4(SEQ_PLAYER_BGM_SUB); - if (sp26 == NA_BGM_DISABLED) { - Audio_SetVolScale(SEQ_PLAYER_BGM_MAIN, 1, 0, 5); - Audio_SetVolScale(SEQ_PLAYER_BGM_SUB, 1, 0, 5); - Audio_SeqCmdC(SEQ_PLAYER_FANFARE, 0x80, 1, 0xA); - Audio_SeqCmdC(SEQ_PLAYER_FANFARE, 0x83, 1, 0xA); - Audio_SeqCmdC(SEQ_PLAYER_FANFARE, 0x90, 0, 0); - if (sp22 != NA_BGM_LONLON) { - Audio_SeqCmdC(SEQ_PLAYER_FANFARE, 0x93, 0, 0); + + seqIdBgmMain = Audio_GetActiveSeqId(SEQ_PLAYER_BGM_MAIN); + seqIdFanfare = Audio_GetActiveSeqId(SEQ_PLAYER_FANFARE); + seqIdBgmSub = Audio_GetActiveSeqId(SEQ_PLAYER_BGM_SUB); + + (void)seqIdBgmMain; // suppresses set but unused warning + if (seqIdFanfare == NA_BGM_DISABLED) { + Audio_SetVolumeScale(SEQ_PLAYER_BGM_MAIN, VOL_SCALE_INDEX_FANFARE, 0, 5); + Audio_SetVolumeScale(SEQ_PLAYER_BGM_SUB, VOL_SCALE_INDEX_FANFARE, 0, 5); + SEQCMD_SETUP_RESTORE_PLAYER_VOLUME_WITH_SCALE_INDEX(SEQ_PLAYER_FANFARE, SEQ_PLAYER_BGM_MAIN, + VOL_SCALE_INDEX_FANFARE, 10); + SEQCMD_SETUP_RESTORE_PLAYER_VOLUME_WITH_SCALE_INDEX(SEQ_PLAYER_FANFARE, SEQ_PLAYER_BGM_SUB, + VOL_SCALE_INDEX_FANFARE, 10); + SEQCMD_SETUP_SET_CHANNEL_DISABLE_MASK(SEQ_PLAYER_FANFARE, SEQ_PLAYER_BGM_MAIN, 0); + if (seqIdBgmSub != NA_BGM_LONLON) { + SEQCMD_SETUP_SET_CHANNEL_DISABLE_MASK(SEQ_PLAYER_FANFARE, SEQ_PLAYER_BGM_SUB, 0); } } - Audio_StartSeq(SEQ_PLAYER_FANFARE, 1, D_8016B9F6); - Audio_SeqCmdA(0, 0xFFFF); - if (sp22 != NA_BGM_LONLON) { - Audio_SeqCmdA(SEQ_PLAYER_BGM_SUB, 0xFFFF); + SEQCMD_PLAY_SEQUENCE(SEQ_PLAYER_FANFARE, 1, 0, D_8016B9F6); + SEQCMD_SET_CHANNEL_DISABLE_MASK(SEQ_PLAYER_BGM_MAIN, 0xFFFF); + if (seqIdBgmSub != NA_BGM_LONLON) { + SEQCMD_SET_CHANNEL_DISABLE_MASK(SEQ_PLAYER_BGM_SUB, 0xFFFF); } } } } -void func_800F5E18(u8 playerIdx, u16 seqId, u8 fadeTimer, s8 arg3, s8 arg4) { - Audio_SeqCmd7(playerIdx, arg3, arg4); - Audio_StartSeq(playerIdx, fadeTimer, seqId); +void func_800F5E18(u8 seqPlayerIndex, u16 seqId, u8 fadeTimer, s8 ioPort, s8 ioData) { + SEQCMD_SET_PLAYER_IO(seqPlayerIndex, ioPort, ioData); + SEQCMD_PLAY_SEQUENCE(seqPlayerIndex, fadeTimer, 0, seqId); } void Audio_SetSequenceMode(u8 seqMode) { @@ -4815,9 +4802,9 @@ void Audio_SetSequenceMode(u8 seqMode) { seqMode = SEQ_MODE_IGNORE; } - seqId = D_8016E750[SEQ_PLAYER_BGM_MAIN].unk_254; + seqId = gActiveSeqs[SEQ_PLAYER_BGM_MAIN].seqId; - if (seqId == NA_BGM_FIELD_LOGIC && func_800FA0B4(SEQ_PLAYER_BGM_SUB) == (NA_BGM_ENEMY | 0x800)) { + if (seqId == NA_BGM_FIELD_LOGIC && Audio_GetActiveSeqId(SEQ_PLAYER_BGM_SUB) == (NA_BGM_ENEMY | 0x800)) { seqMode = SEQ_MODE_IGNORE; } @@ -4826,29 +4813,33 @@ void Audio_SetSequenceMode(u8 seqMode) { if (seqMode != (sPrevSeqMode & 0x7F)) { if (seqMode == SEQ_MODE_ENEMY) { // Start playing enemy bgm - if (D_8016E750[SEQ_PLAYER_BGM_SUB].volScales[1] - sAudioEnemyVol < 0) { - volumeFadeInTimer = -(D_8016E750[SEQ_PLAYER_BGM_SUB].volScales[1] - sAudioEnemyVol); + if (gActiveSeqs[SEQ_PLAYER_BGM_SUB].volScales[VOL_SCALE_INDEX_FANFARE] - sAudioEnemyVol < 0) { + volumeFadeInTimer = + -(gActiveSeqs[SEQ_PLAYER_BGM_SUB].volScales[VOL_SCALE_INDEX_FANFARE] - sAudioEnemyVol); } else { - volumeFadeInTimer = D_8016E750[SEQ_PLAYER_BGM_SUB].volScales[1] - sAudioEnemyVol; + volumeFadeInTimer = + gActiveSeqs[SEQ_PLAYER_BGM_SUB].volScales[VOL_SCALE_INDEX_FANFARE] - sAudioEnemyVol; } - Audio_SetVolScale(SEQ_PLAYER_BGM_SUB, 3, sAudioEnemyVol, volumeFadeInTimer); - Audio_StartSeq(SEQ_PLAYER_BGM_SUB, 10, NA_BGM_ENEMY | 0x800); + Audio_SetVolumeScale(SEQ_PLAYER_BGM_SUB, VOL_SCALE_INDEX_BGM_SUB, sAudioEnemyVol, + volumeFadeInTimer); + SEQCMD_PLAY_SEQUENCE(SEQ_PLAYER_BGM_SUB, 10, 8, NA_BGM_ENEMY); if (seqId != NA_BGM_NATURE_AMBIENCE) { - Audio_SetVolScale(SEQ_PLAYER_BGM_MAIN, 3, (0x7F - sAudioEnemyVol) & 0xFF, 0xA); + Audio_SetVolumeScale(SEQ_PLAYER_BGM_MAIN, VOL_SCALE_INDEX_BGM_SUB, + (0x7F - sAudioEnemyVol) & 0xFF, 0xA); Audio_SplitBgmChannels(sAudioEnemyVol); } } else if ((sPrevSeqMode & 0x7F) == SEQ_MODE_ENEMY) { // Stop playing enemy bgm - Audio_SeqCmd1(SEQ_PLAYER_BGM_SUB, 10); + SEQCMD_STOP_SEQUENCE(SEQ_PLAYER_BGM_SUB, 10); if (seqMode == SEQ_MODE_IGNORE) { volumeFadeOutTimer = 0; } else { volumeFadeOutTimer = 10; } - Audio_SetVolScale(SEQ_PLAYER_BGM_MAIN, 3, 0x7F, volumeFadeOutTimer); + Audio_SetVolumeScale(SEQ_PLAYER_BGM_MAIN, VOL_SCALE_INDEX_BGM_SUB, 0x7F, volumeFadeOutTimer); Audio_SplitBgmChannels(0); } @@ -4872,7 +4863,7 @@ void Audio_SetSequenceMode(u8 seqMode) { } sPrevSeqMode = seqMode; - Audio_SeqCmd7(SEQ_PLAYER_BGM_MAIN, 2, seqMode); + SEQCMD_SET_PLAYER_IO(SEQ_PLAYER_BGM_MAIN, 2, seqMode); } } } @@ -4891,12 +4882,12 @@ void Audio_SetBgmEnemyVolume(f32 dist) { } sAudioEnemyVol = ((350.0f - adjDist) * 127.0f) / 350.0f; - Audio_SetVolScale(SEQ_PLAYER_BGM_SUB, 3, sAudioEnemyVol, 10); - if (D_8016E750[SEQ_PLAYER_BGM_MAIN].unk_254 != NA_BGM_NATURE_AMBIENCE) { - Audio_SetVolScale(SEQ_PLAYER_BGM_MAIN, 3, (0x7F - sAudioEnemyVol), 10); + Audio_SetVolumeScale(SEQ_PLAYER_BGM_SUB, VOL_SCALE_INDEX_BGM_SUB, sAudioEnemyVol, 10); + if (gActiveSeqs[SEQ_PLAYER_BGM_MAIN].seqId != NA_BGM_NATURE_AMBIENCE) { + Audio_SetVolumeScale(SEQ_PLAYER_BGM_MAIN, VOL_SCALE_INDEX_BGM_SUB, (0x7F - sAudioEnemyVol), 10); } } - if (D_8016E750[SEQ_PLAYER_BGM_MAIN].unk_254 != NA_BGM_NATURE_AMBIENCE) { + if (gActiveSeqs[SEQ_PLAYER_BGM_MAIN].seqId != NA_BGM_NATURE_AMBIENCE) { Audio_SplitBgmChannels(sAudioEnemyVol); } } @@ -4911,7 +4902,7 @@ void func_800F6268(f32 dist, u16 arg1) { sAudioHasMalonBgm = true; sAudioMalonBgmDist = dist; if (D_8016B9F2 == 0) { - temp_a0 = (s8)(func_800FA0B4(SEQ_PLAYER_BGM_MAIN) & 0xFF); + temp_a0 = (s8)(Audio_GetActiveSeqId(SEQ_PLAYER_BGM_MAIN) & 0xFF); if (temp_a0 == (arg1 & 0xFF)) { if ((arg1 & 0xFF) == NA_BGM_LONLON) { @@ -4923,18 +4914,18 @@ void func_800F6268(f32 dist, u16 arg1) { phi_v1 = (s8)(((dist - 200.0f) * 127.0f) / 1800.0f); } // Transition volume of channels 0, 1 and 13 on seq player 0 over 3 frames - Audio_SeqCmd6(SEQ_PLAYER_BGM_MAIN, 3, 0, 127 - phi_v1); - Audio_SeqCmd6(SEQ_PLAYER_BGM_MAIN, 3, 1, 127 - phi_v1); - Audio_SeqCmd6(SEQ_PLAYER_BGM_MAIN, 3, 13, phi_v1); + SEQCMD_SET_CHANNEL_VOLUME(SEQ_PLAYER_BGM_MAIN, 0, 3, 127 - phi_v1); + SEQCMD_SET_CHANNEL_VOLUME(SEQ_PLAYER_BGM_MAIN, 1, 3, 127 - phi_v1); + SEQCMD_SET_CHANNEL_VOLUME(SEQ_PLAYER_BGM_MAIN, 13, 3, phi_v1); if (D_8016B9D8 == 0) { D_8016B9D8++; } } } else if ((temp_a0 == NA_BGM_NATURE_AMBIENCE) && ((arg1 & 0xFF) == NA_BGM_LONLON)) { - temp_a0 = (s8)(func_800FA0B4(SEQ_PLAYER_BGM_SUB) & 0xFF); + temp_a0 = (s8)(Audio_GetActiveSeqId(SEQ_PLAYER_BGM_SUB) & 0xFF); if ((temp_a0 != (arg1 & 0xFF)) && (D_8016B9D8 < 10)) { func_800F5E18(SEQ_PLAYER_BGM_SUB, NA_BGM_LONLON, 0, 0, 0); - Audio_SeqCmdA(SEQ_PLAYER_BGM_SUB, 0xFFFC); + SEQCMD_SET_CHANNEL_DISABLE_MASK(SEQ_PLAYER_BGM_SUB, 0xFFFC); D_8016B9D8 = 10; } @@ -4946,8 +4937,8 @@ void func_800F6268(f32 dist, u16 arg1) { phi_v1 = (s8)(((dist - 200.0f) * 127.0f) / 1800.0f); } // Transition volume of channels 0 and 1 on seq player 0 over 3 frames - Audio_SeqCmd6(SEQ_PLAYER_BGM_SUB, 3, 0, 127 - phi_v1); - Audio_SeqCmd6(SEQ_PLAYER_BGM_SUB, 3, 1, 127 - phi_v1); + SEQCMD_SET_CHANNEL_VOLUME(SEQ_PLAYER_BGM_SUB, 0, 3, 127 - phi_v1); + SEQCMD_SET_CHANNEL_VOLUME(SEQ_PLAYER_BGM_SUB, 1, 3, 127 - phi_v1); } if (D_8016B9D8 < 10) { @@ -4970,34 +4961,34 @@ void func_800F64E0(u8 arg0) { } void func_800F6584(u8 arg0) { - u8 playerIdx; + u8 seqPlayerIndex; u16 sp34; D_8016B9F2 = arg0; - if ((func_800FA0B4(SEQ_PLAYER_BGM_MAIN) & 0xFF) == NA_BGM_LONLON) { - playerIdx = SEQ_PLAYER_BGM_MAIN; + if ((Audio_GetActiveSeqId(SEQ_PLAYER_BGM_MAIN) & 0xFF) == NA_BGM_LONLON) { + seqPlayerIndex = SEQ_PLAYER_BGM_MAIN; sp34 = 0; - } else if ((func_800FA0B4(SEQ_PLAYER_BGM_SUB) & 0xFF) == NA_BGM_LONLON) { - playerIdx = SEQ_PLAYER_BGM_SUB; + } else if ((Audio_GetActiveSeqId(SEQ_PLAYER_BGM_SUB) & 0xFF) == NA_BGM_LONLON) { + seqPlayerIndex = SEQ_PLAYER_BGM_SUB; sp34 = 0xFFFC; } else { return; } if (arg0 != 0) { - Audio_SeqCmd6(playerIdx, 1, 0, 0); - Audio_SeqCmd6(playerIdx, 1, 1, 0); - if (playerIdx == SEQ_PLAYER_BGM_SUB) { - Audio_SeqCmdA(playerIdx, sp34 | 3); + SEQCMD_SET_CHANNEL_VOLUME(seqPlayerIndex, 0, 1, 0); + SEQCMD_SET_CHANNEL_VOLUME(seqPlayerIndex, 1, 1, 0); + if (seqPlayerIndex == SEQ_PLAYER_BGM_SUB) { + SEQCMD_SET_CHANNEL_DISABLE_MASK(seqPlayerIndex, sp34 | 3); } } else { - if (playerIdx == SEQ_PLAYER_BGM_SUB) { + if (seqPlayerIndex == SEQ_PLAYER_BGM_SUB) { func_800F5E18(SEQ_PLAYER_BGM_SUB, NA_BGM_LONLON, 0, 0, 0); } - Audio_SeqCmd6(playerIdx, 1, 0, 0x7F); - Audio_SeqCmd6(playerIdx, 1, 1, 0x7F); - if (playerIdx == SEQ_PLAYER_BGM_SUB) { - Audio_SeqCmdA(playerIdx, sp34); + SEQCMD_SET_CHANNEL_VOLUME(seqPlayerIndex, 0, 1, 0x7F); + SEQCMD_SET_CHANNEL_VOLUME(seqPlayerIndex, 1, 1, 0x7F); + if (seqPlayerIndex == SEQ_PLAYER_BGM_SUB) { + SEQCMD_SET_CHANNEL_DISABLE_MASK(seqPlayerIndex, sp34); } } } @@ -5037,7 +5028,7 @@ void func_800F6700(s8 audioSetting) { break; } - Audio_SeqCmdE0(SEQ_PLAYER_BGM_MAIN, soundModeIndex); + SEQCMD_SET_SOUND_MODE(soundModeIndex); } void Audio_SetBaseFilter(u8 filter) { @@ -5059,7 +5050,7 @@ void Audio_SetExtraFilter(u8 filter) { sAudioExtraFilter2 = filter; sAudioExtraFilter = filter; - if (D_8016E750[SEQ_PLAYER_BGM_MAIN].unk_254 == NA_BGM_NATURE_AMBIENCE) { + if (gActiveSeqs[SEQ_PLAYER_BGM_MAIN].seqId == NA_BGM_NATURE_AMBIENCE) { for (i = 0; i < 16; i++) { t = i; // CHAN_UPD_SCRIPT_IO (seq player 0, all channels, slot 6) @@ -5087,8 +5078,8 @@ void func_800F6964(u16 arg0) { s32 skip; u8 channelIdx; - Audio_SeqCmd1(SEQ_PLAYER_BGM_MAIN, (arg0 * 3) / 2); - Audio_SeqCmd1(SEQ_PLAYER_FANFARE, (arg0 * 3) / 2); + SEQCMD_STOP_SEQUENCE(SEQ_PLAYER_BGM_MAIN, (arg0 * 3) / 2); + SEQCMD_STOP_SEQUENCE(SEQ_PLAYER_FANFARE, (arg0 * 3) / 2); for (channelIdx = 0; channelIdx < 16; channelIdx++) { skip = false; switch (channelIdx) { @@ -5104,23 +5095,23 @@ void func_800F6964(u16 arg0) { } if (!skip) { - Audio_SeqCmd6(SEQ_PLAYER_SFX, arg0 >> 1, channelIdx, 0); + SEQCMD_SET_CHANNEL_VOLUME(SEQ_PLAYER_SFX, channelIdx, arg0 >> 1, 0); } } - Audio_SeqCmd1(SEQ_PLAYER_BGM_SUB, (arg0 * 3) / 2); + SEQCMD_STOP_SEQUENCE(SEQ_PLAYER_BGM_SUB, (arg0 * 3) / 2); } void func_800F6AB0(u16 arg0) { - Audio_SeqCmd1(SEQ_PLAYER_BGM_MAIN, arg0); - Audio_SeqCmd1(SEQ_PLAYER_FANFARE, arg0); - Audio_SeqCmd1(SEQ_PLAYER_BGM_SUB, arg0); - Audio_SetVolScale(SEQ_PLAYER_BGM_MAIN, 3, 0x7F, 0); - Audio_SetVolScale(SEQ_PLAYER_BGM_MAIN, 1, 0x7F, 0); + SEQCMD_STOP_SEQUENCE(SEQ_PLAYER_BGM_MAIN, arg0); + SEQCMD_STOP_SEQUENCE(SEQ_PLAYER_FANFARE, arg0); + SEQCMD_STOP_SEQUENCE(SEQ_PLAYER_BGM_SUB, arg0); + Audio_SetVolumeScale(SEQ_PLAYER_BGM_MAIN, VOL_SCALE_INDEX_BGM_SUB, 0x7F, 0); + Audio_SetVolumeScale(SEQ_PLAYER_BGM_MAIN, VOL_SCALE_INDEX_FANFARE, 0x7F, 0); } void func_800F6B3C(void) { - func_800F9280(SEQ_PLAYER_SFX, 0, 0xFF, 5); + Audio_StartSequence(SEQ_PLAYER_SFX, 0, 0xFF, 5); } void Audio_DisableAllSeq(void) { @@ -5179,19 +5170,20 @@ void func_800F6C34(void) { D_8016B9F2 = 0; } -void Audio_SetNatureAmbienceChannelIO(u8 channelIdxRange, u8 port, u8 val) { +void Audio_SetNatureAmbienceChannelIO(u8 channelIdxRange, u8 ioPort, u8 ioData) { u8 firstChannelIdx; u8 lastChannelIdx; u8 channelIdx; - if ((D_8016E750[SEQ_PLAYER_BGM_MAIN].unk_254 != NA_BGM_NATURE_AMBIENCE) && func_800FA11C(1, 0xF00000FF)) { + if ((gActiveSeqs[SEQ_PLAYER_BGM_MAIN].seqId != NA_BGM_NATURE_AMBIENCE) && + Audio_IsSeqCmdNotQueued(SEQCMD_OP_PLAY_SEQUENCE << 28 | NA_BGM_NATURE_AMBIENCE, SEQCMD_OP_MASK | 0xFF)) { sAudioNatureFailed = true; return; } - // channelIdxRange = 01 on port 1 - if (((channelIdxRange << 8) + port) == ((NATURE_CHANNEL_CRITTER_0 << 8) + CHANNEL_IO_PORT_1)) { - if (func_800FA0B4(SEQ_PLAYER_BGM_SUB) != NA_BGM_LONLON) { + // channelIdxRange = 01 on ioPort 1 + if (((channelIdxRange << 8) + ioPort) == ((NATURE_CHANNEL_CRITTER_0 << 8) + CHANNEL_IO_PORT_1)) { + if (Audio_GetActiveSeqId(SEQ_PLAYER_BGM_SUB) != NA_BGM_LONLON) { D_8016B9D8 = 0; } } @@ -5204,38 +5196,38 @@ void Audio_SetNatureAmbienceChannelIO(u8 channelIdxRange, u8 port, u8 val) { } for (channelIdx = firstChannelIdx; channelIdx <= lastChannelIdx; channelIdx++) { - Audio_SeqCmd8(SEQ_PLAYER_BGM_MAIN, port, channelIdx, val); + SEQCMD_SET_CHANNEL_IO(SEQ_PLAYER_BGM_MAIN, channelIdx, ioPort, ioData); } } void Audio_StartNatureAmbienceSequence(u16 playerIO, u16 channelMask) { u8 channelIdx; - if (func_800FA0B4(SEQ_PLAYER_BGM_MAIN) == NA_BGM_WINDMILL) { + if (Audio_GetActiveSeqId(SEQ_PLAYER_BGM_MAIN) == NA_BGM_WINDMILL) { Audio_PlayCutsceneEffectsSequence(SEQ_CS_EFFECTS_RAINFALL); return; } - Audio_SeqCmd7(SEQ_PLAYER_BGM_MAIN, 0, 1); - Audio_SeqCmd7(SEQ_PLAYER_BGM_MAIN, 4, playerIO >> 8); - Audio_SeqCmd7(SEQ_PLAYER_BGM_MAIN, 5, playerIO & 0xFF); - Audio_SetVolScale(SEQ_PLAYER_BGM_MAIN, 0, 0x7F, 1); + SEQCMD_SET_PLAYER_IO(SEQ_PLAYER_BGM_MAIN, 0, 1); + SEQCMD_SET_PLAYER_IO(SEQ_PLAYER_BGM_MAIN, 4, playerIO >> 8); + SEQCMD_SET_PLAYER_IO(SEQ_PLAYER_BGM_MAIN, 5, playerIO & 0xFF); + Audio_SetVolumeScale(SEQ_PLAYER_BGM_MAIN, VOL_SCALE_INDEX_BGM_MAIN, 0x7F, 1); channelIdx = false; - if (D_80133408 != 0) { + if (gStartSeqDisabled) { channelIdx = true; - Audio_SeqCmdE01(SEQ_PLAYER_BGM_MAIN, 0); + SEQCMD_DISABLE_PLAY_SEQUENCES(false); } - Audio_StartSeq(SEQ_PLAYER_BGM_MAIN, 0, NA_BGM_NATURE_AMBIENCE); + SEQCMD_PLAY_SEQUENCE(SEQ_PLAYER_BGM_MAIN, 0, 0, NA_BGM_NATURE_AMBIENCE); if (channelIdx) { - Audio_SeqCmdE01(SEQ_PLAYER_BGM_MAIN, 1); + SEQCMD_DISABLE_PLAY_SEQUENCES(true); } for (channelIdx = 0; channelIdx < 16; channelIdx++) { if (!(channelMask & (1 << channelIdx)) && (playerIO & (1 << channelIdx))) { - Audio_SeqCmd8(SEQ_PLAYER_BGM_MAIN, CHANNEL_IO_PORT_1, channelIdx, 1); + SEQCMD_SET_CHANNEL_IO(SEQ_PLAYER_BGM_MAIN, channelIdx, CHANNEL_IO_PORT_1, 1); } } } @@ -5243,24 +5235,23 @@ void Audio_StartNatureAmbienceSequence(u16 playerIO, u16 channelMask) { void Audio_PlayNatureAmbienceSequence(u8 natureAmbienceId) { u8 i = 0; u8 channelIdx; - u8 port; - u8 val; + u8 ioPort; + u8 ioData; - if (!((D_8016E750[SEQ_PLAYER_BGM_MAIN].unk_254 != NA_BGM_DISABLED) && - (sSeqFlags[((u8)D_8016E750[SEQ_PLAYER_BGM_MAIN].unk_254) & 0xFF] & SEQ_FLAG_NO_AMBIENCE))) { + if ((gActiveSeqs[SEQ_PLAYER_BGM_MAIN].seqId == NA_BGM_DISABLED) || + !(sSeqFlags[((u8)gActiveSeqs[SEQ_PLAYER_BGM_MAIN].seqId) & 0xFF] & SEQ_FLAG_NO_AMBIENCE)) { Audio_StartNatureAmbienceSequence(sNatureAmbienceDataIO[natureAmbienceId].playerIO, sNatureAmbienceDataIO[natureAmbienceId].channelMask); while ((sNatureAmbienceDataIO[natureAmbienceId].channelIO[i] != 0xFF) && (i < 100)) { - // Probably a fake match, using Audio_SeqCmd8 doesn't work. channelIdx = sNatureAmbienceDataIO[natureAmbienceId].channelIO[i++]; - port = sNatureAmbienceDataIO[natureAmbienceId].channelIO[i++]; - val = sNatureAmbienceDataIO[natureAmbienceId].channelIO[i++]; - Audio_QueueSeqCmd(0x80000000 | (SEQ_PLAYER_BGM_MAIN << 24) | (port << 0x10) | (channelIdx << 8) | val); + ioPort = sNatureAmbienceDataIO[natureAmbienceId].channelIO[i++]; + ioData = sNatureAmbienceDataIO[natureAmbienceId].channelIO[i++]; + SEQCMD_SET_CHANNEL_IO(SEQ_PLAYER_BGM_MAIN, channelIdx, ioPort, ioData); } - Audio_SeqCmd8(SEQ_PLAYER_BGM_MAIN, CHANNEL_IO_PORT_7, NATURE_CHANNEL_UNK, sSoundMode); + SEQCMD_SET_CHANNEL_IO(SEQ_PLAYER_BGM_MAIN, NATURE_CHANNEL_UNK, CHANNEL_IO_PORT_7, sSoundMode); } } @@ -5272,13 +5263,13 @@ void Audio_InitSound(void) { func_800F6C34(); AudioOcarina_ResetStaffs(); Audio_ResetSfxChannelState(); - func_800FAEB4(); + Audio_ResetActiveSequencesAndVolume(); Audio_ResetSfx(); - func_800F9280(SEQ_PLAYER_SFX, 0, 0x70, 10); + Audio_StartSequence(SEQ_PLAYER_SFX, 0, 0x70, 10); } void func_800F7170(void) { - func_800F9280(SEQ_PLAYER_SFX, 0, 0x70, 1); + Audio_StartSequence(SEQ_PLAYER_SFX, 0, 0x70, 1); Audio_QueueCmdS32(0xF2000000, 1); Audio_ScheduleProcessCmds(); Audio_QueueCmdS32(0xF8000000, 0); @@ -5289,14 +5280,14 @@ void func_800F71BC(s32 arg0) { func_800F6C34(); AudioOcarina_ResetStaffs(); Audio_ResetSfxChannelState(); - func_800FADF8(); + Audio_ResetActiveSequences(); Audio_ResetSfx(); } void func_800F7208(void) { - func_800FADF8(); + Audio_ResetActiveSequences(); Audio_QueueCmdS32(0xF2000000, 1); func_800F6C34(); Audio_ResetSfxChannelState(); - func_800F9280(SEQ_PLAYER_SFX, 0, 0x70, 1); + Audio_StartSequence(SEQ_PLAYER_SFX, 0, 0x70, 1); } |
