Audio Sfx Functions Decompiled and Documented (code_8019AF00.c) (#1242)

* sfx decomp and docs

* function headers

* namefixer

* oops

* better sfx name

* PR review

* namefixer

* PR review

* float

* namefixer

* namefixer

* namefixer

* PR Suggestions
This commit is contained in:
engineer124
2023-06-21 13:13:51 +10:00
committed by GitHub
parent 7194936203
commit 9c0fc94fe3
256 changed files with 1837 additions and 1401 deletions
+11 -61
View File
@@ -649,14 +649,14 @@ void func_800B8DD4(PlayState* play, Actor* actor, f32 arg2, s16 arg3, f32 arg4,
void func_800B8E1C(PlayState* play, Actor* actor, f32 arg2, s16 arg3, f32 arg4);
void Player_PlaySfx(Player* player, u16 sfxId);
void Actor_PlaySfx(Actor* actor, u16 sfxId);
void func_800B8EF4(PlayState* play, Actor* actor);
void func_800B8F98(Actor* actor, u16 sfxId);
void func_800B8FC0(Actor* actor, u16 sfxId);
void func_800B8FE8(Actor* actor, u16 sfxId);
void func_800B9010(Actor* actor, u16 sfxId);
void func_800B9038(Actor* actor, s32 timer);
void func_800B9084(Actor* actor);
void func_800B9098(Actor* actor);
void Actor_PlaySfx_SurfaceBomb(PlayState* play, Actor* actor);
void Actor_PlaySfx_FlaggedCentered1(Actor* actor, u16 sfxId);
void Actor_PlaySfx_FlaggedCentered2(Actor* actor, u16 sfxId);
void Actor_PlaySfx_FlaggedCentered3(Actor* actor, u16 sfxId);
void Actor_PlaySfx_Flagged(Actor* actor, u16 sfxId);
void Actor_PlaySfx_FlaggedTimer(Actor* actor, s32 timer);
void Actor_PlaySeq_FlaggedKamaroDance(Actor* actor);
void Actor_PlaySeq_FlaggedMusicBoxHouse(Actor* actor);
s32 func_800B90AC(PlayState* play, Actor* actor, CollisionPoly* polygon, s32 bgId, Vec3f* arg4);
void Actor_DeactivateLens(PlayState* play);
void Actor_InitHalfDaysBit(ActorContext* actorCtx);
@@ -900,9 +900,9 @@ void* Lib_MemSet(void* buffer, s32 value, size_t size);
void func_800FF3A0(f32* distOut, s16* angleOut, Input* input);
void Actor_ProcessInitChain(Actor* actor, InitChainEntry* ichain);
void Color_RGBA8_Copy(Color_RGBA8* dst, Color_RGBA8* src);
void func_801000A4(u16 sfxId);
void func_801000CC(u16 sfxId);
void Lib_PlaySfxAtPos(Vec3f* pos, u16 sfxId);
void Lib_PlaySfx(u16 sfxId);
void Lib_PlaySfx_2(u16 sfxId);
void Lib_PlaySfx_AtPos(Vec3f* pos, u16 sfxId);
void Lib_Vec3f_TranslateAndRotateY(Vec3f* translation, s16 rotAngle, Vec3f* src, Vec3f* dst);
void Lib_LerpRGB(Color_RGB8* a, Color_RGB8* b, f32 t, Color_RGB8* dst);
void Lib_Nop801004FC(void);
@@ -1873,53 +1873,12 @@ void AudioOcarina_PlayLongScarecrowSong(void);
void Audio_Update(void);
void AudioSfx_SetProperties(u8 bankId, u8 entryIndex, u8 channelIndex);
void play_sound(u16 sfxId);
void func_8019F128(u16 sfxId);
void func_8019F170(Vec3f* pos, u16 sfxId);
void Audio_PlaySfxAtPos(Vec3f* pos, u16 sfxId);
void func_8019F208(void); // decide sfx
void func_8019F230(void); // cancel sfx
void func_8019F420(Vec3f* pos, u16 sfxId);
void func_8019F4AC(Vec3f* pos, u16 sfxId);
void func_8019F540(s8 arg0);
void AudioSfx_LowerSfxSettingsReverb(Vec3f* pos, s8 isReverbLowered);
f32 func_8019F5AC(f32 arg0);
void func_8019F638(Vec3f* arg0, u16 sfxId, f32 arg2);
void func_8019F780(Vec3f* arg0, u16 sfxId, f32 arg2);
// void func_8019F7D8(void);
void func_8019F830(Vec3f* arg0, u16 arg1);
void func_8019F88C(Vec3f* arg0, u16 sfxId, UNK_TYPE arg2);
void func_8019F900(Vec3f* pos, u8 chargeLevel);
// void func_8019FA18(void);
void func_8019FAD8(Vec3f* param_1, u16 sfxId, f32 param_3);
void func_8019FB0C(Vec3f* arg0, u16 sfxId, f32 arg2, s32 arg3);
void func_8019FC20(Vec3f* pos, u16 sfxId);
void func_8019FCB8(Vec3f* arg0, u16 arg1, f32 arg2);
void func_8019FD90(s8 arg0, s8 arg1);
void func_8019FDC8(UNK_PTR arg0, u16 sfxId, UNK_TYPE arg2);
// void func_8019FE1C(void);
void func_8019FE74(f32* arg0, f32 arg1, s32 arg2);
// void func_8019FEDC(void);
// void func_8019FF38(void);
void Audio_PlaySfxForRiver(Vec3f* pos, f32 freqScale);
// void Audio_PlaySfxForWaterfall(void);
// void Audio_StepFreqLerp(void);
void func_801A0124(Vec3f* pos, u8 arg1);
void Audio_SetBgmVolumeOff(void);
void Audio_SetBgmVolumeOn(void);
void func_801A0204(s8 seqId);
void Audio_SetMainBgmVolume(u8 targetVolume, u8 volumeFadeTimer);
// void Audio_SetGanonsTowerBgmVolumeLevel(void);
// void Audio_SetGanonsTowerBgmVolume(void);
// void Audio_UpdateRiverSoundVolumes(void);
// void func_801A0554(void);
// void func_801A05F0(void);
void AudioSfx_SetChannelIO(Vec3f* pos, u16 sfxId, u8 ioData);
void func_801A0810(Vec3f* arg0, u16 sfxId, u8 arg2);
void func_801A0868(Vec3f* pos, u16 sfxId, u8 val);
// void func_801A09D4(void);
// void Audio_SplitBgmChannels(void);
// void func_801A0E44(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5, UNK_TYPE4 param_6, UNK_TYPE4 param_7);
// void func_801A1290(void);
// void func_801A1348(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5, UNK_TYPE4 param_6, UNK_TYPE4 param_7);
// void func_801A13BC(void);
@@ -1958,7 +1917,6 @@ u8 func_801A3950(s32 playerIndex, s32 isChannelIOSet);
u8 func_801A39F8(void);
void func_801A3A7C(s32 arg0);
// void func_801A3AC0(void);
void func_801A3AEC(s32 arg0);
void func_801A3B48(UNK_TYPE arg0);
// void func_801A3B90(void);
void func_801A3CD8(s8 param_1);
@@ -1967,23 +1925,15 @@ void func_801A3D98(s8 audioSetting);
void func_801A3E38(u8 arg0);
void func_801A3EC0(u8 arg0);
void Audio_SetCutsceneFlag(s8 flag);
// void func_801A3F6C(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5, UNK_TYPE4 param_6);
// void func_801A3FB4(void);
// void func_801A3FFC(UNK_TYPE1 param_1);
void Audio_SetSpec(u32 specId);
void func_801A4058(UNK_TYPE arg0);
void func_801A41C8(s32 arg0);
void func_801A41F8(UNK_TYPE arg0);
// void func_801A429C(void);
// void func_801A42C8(void);
// void func_801A4324(void);
// void func_801A4348(void);
void Audio_SetSfxVolumeExceptSystemAndOcarinaBanks(u8 arg0);
void func_801A4428(u8 reverbIndex);
void Audio_PreNMI(void);
s32 func_801A46F8(void);
void func_801A4748(Vec3f* pos, u16 sfxId);
void func_801A479C(Vec3f* arg0, u16 sfxId, s32 arg2);
void Audio_SetAmbienceChannelIO(u8 channelIndexRange, u8 ioPort, u8 ioData);
void Audio_PlayAmbience(u8 ambienceId);
void Audio_Init(void);
+42
View File
@@ -1,6 +1,8 @@
#ifndef SFX_H
#define SFX_H
#include "z64math.h"
/**
* With `SFX_FLAG` on, play the entire sfx audio clip.
* Requesting the sfx while playing will restart the sfx from the beginning.
@@ -2354,4 +2356,44 @@ typedef enum {
#undef DEFINE_SFX
*/
typedef enum SfxPauseMenu {
/* 0 */ SFX_PAUSE_MENU_CLOSE,
/* 1 */ SFX_PAUSE_MENU_OPEN
} SfxPauseMenu;
// Various wrappers to AudioSfx_PlaySfx
void Audio_PlaySfx(u16 sfxId);
void Audio_PlaySfx_2(u16 sfxId);
void Audio_PlaySfx_AtPosWithPresetLowFreqAndHighReverb(Vec3f* pos, u16 sfxId);
void Audio_PlaySfx_AtPos(Vec3f* pos, u16 sfxId);
void Audio_PlaySfx_MessageDecide(void);
void Audio_PlaySfx_MessageCancel(void);
void Audio_PlaySfx_Underwater(Vec3f* pos, u16 sfxId);
void Audio_PlaySfx_WithSfxSettingsReverb(Vec3f* pos, u16 sfxId);
void Audio_PlaySfx_AtPosForMetalEffectsWithSyncedFreqAndVolume(Vec3f* pos, u16 sfxId, f32 freqVolParam);
void Audio_PlaySfx_AtPosWithSyncedFreqAndVolume(Vec3f* pos, u16 sfxId, f32 freqVolParam);
void Audio_PlaySfx_GiantsMask(Vec3f* pos, u16 sfxId);
void Audio_PlaySfx_Randomized(Vec3f* pos, u16 baseSfxId, u8 randLim);
void Audio_PlaySfx_SwordCharge(Vec3f* pos, u8 chargeLevel);
void Audio_PlaySfx_AtPosWithFreq(Vec3f* pos, u16 sfxId, f32 freqScale);
void Audio_PlaySfx_AtPosWithFreqAndChannelIO(Vec3f* pos, u16 sfxId, f32 freqScale, u8 arg3);
void Audio_PlaySfx_WaterWheel(Vec3f* pos, u16 sfxId);
void Audio_PlaySfx_AtPosWithTimer(Vec3f* pos, u16 sfxId, f32 timerShiftedLerp);
void Audio_PlaySfx_AtPosWithReverb(Vec3f* pos, u16 sfxId, s8 reverbAdd);
void Audio_PlaySfx_AtPosWithVolume(Vec3f* pos, u16 sfxId, f32 volume);
void Audio_PlaySfx_River(Vec3f* pos, f32 freqScale);
void Audio_PlaySfx_BigBells(Vec3f* pos, u8 volumeIndex);
void Audio_PlaySfx_AtPosWithChannelIO(Vec3f* pos, u16 sfxId, u8 ioData);
void Audio_PlaySfx_AtPosWithAllChannelsIO(Vec3f* pos, u16 sfxId, u8 ioData);
void Audio_PlaySfx_PauseMenuOpenOrClose(u8 pauseMenuOpenOrClose);
void Audio_PlaySfx_IfNotInCutscene(u16 sfxId);
void Audio_PlaySfx_AtFixedPos(Vec3f* pos, u16 sfxId);
void Audio_PlaySfx_AtPosWithVolumeTransition(Vec3f* pos, u16 sfxId, u16 duration);
// Sfx helper functions
void Audio_SetSfxUnderwaterReverb(s8 isUnderwaterReverbActivated);
void Audio_SetSfxTimerLerpInterval(s8 timerLerpRange1, s8 timerLerpRange2);
void Audio_SetSfxVolumeTransition(f32* volume, f32 volumeTarget, u16 duration);
void Audio_SetSfxReverbIndexExceptOcarinaBank(u8 reverbIndex);
#endif