From 0c9be776da37e754a9b9422a945bf1bc5cfd7e75 Mon Sep 17 00:00:00 2001 From: petrie911 <69443847+petrie911@users.noreply.github.com> Date: Wed, 24 Apr 2024 23:14:49 -0500 Subject: [PATCH] Cumulative docs update (#221) * lights fix * names * remove header * so many names * format * more docs * makefile --- Makefile | 1 + include/context.h | 12 +- include/prevent_context_reordering.h | 6 +- include/sf64audio_external.h | 36 +- include/sf64audio_provisional.h | 14 +- include/sf64level.h | 6 + include/sf64thread.h | 34 +- include/variables.h | 4 +- linker_scripts/us/symbol_addrs.txt | 2 +- linker_scripts/us/symbol_addrs_audio.txt | 78 ++-- linker_scripts/us/symbol_addrs_engine.txt | 10 +- linker_scripts/us/symbol_addrs_nlib_vars.txt | 24 +- src/audio/audio_general.c | 399 ++++++++++--------- src/audio/audio_load.c | 30 +- src/audio/audio_playback.c | 92 ++--- src/audio/audio_seqplayer.c | 206 +++++----- src/audio/audio_synthesis.c | 4 +- src/audio/audio_thread.c | 50 ++- src/engine/fox_360.c | 283 +++++++------ src/engine/fox_A48A0.c | 2 +- src/engine/fox_beam.c | 2 +- src/engine/fox_bg.c | 2 +- src/engine/fox_context.c | 14 +- src/engine/fox_demo.c | 12 +- src/engine/fox_edisplay.c | 4 +- src/engine/fox_enmy.c | 8 +- src/engine/fox_enmy2.c | 34 +- src/engine/fox_game.c | 4 +- src/engine/fox_hud.c | 26 +- src/engine/fox_play.c | 38 +- src/engine/fox_save.c | 8 +- src/engine/fox_versus.c | 2 +- src/libultra/io/pfsgetstatus.c | 10 +- src/mods/levelselect.c | 5 +- src/overlays/ovl_ending/fox_end2.c | 10 +- src/overlays/ovl_i1/fox_co.c | 6 +- src/overlays/ovl_i1/fox_tr360.c | 2 +- src/overlays/ovl_i1/fox_ve1.c | 2 +- src/overlays/ovl_i2/fox_me.c | 4 +- src/overlays/ovl_i2/fox_sx.c | 4 +- src/overlays/ovl_i3/fox_a6.c | 4 +- src/overlays/ovl_i3/fox_so.c | 8 +- src/overlays/ovl_i3/fox_zo.c | 10 +- src/overlays/ovl_i4/fox_bo.c | 58 +-- src/overlays/ovl_i4/fox_fo.c | 34 +- src/overlays/ovl_i4/fox_ka.c | 16 +- src/overlays/ovl_i4/fox_sz.c | 12 +- src/overlays/ovl_i5/fox_ma.c | 32 +- src/overlays/ovl_i5/fox_ti.c | 8 +- src/overlays/ovl_i5/fox_ti_cs.c | 4 +- src/overlays/ovl_i6/fox_andross.c | 18 +- src/overlays/ovl_i6/fox_sy.c | 6 +- src/overlays/ovl_i6/fox_ve2.c | 6 +- src/overlays/ovl_menu/fox_map.c | 176 ++++---- src/overlays/ovl_menu/fox_option.c | 30 +- src/overlays/ovl_menu/fox_title.c | 4 +- src/sys/sys_fault.c | 12 +- src/sys/sys_joybus.c | 14 +- src/sys/sys_lib.c | 8 +- src/sys/sys_main.c | 121 +++--- src/sys/sys_timer.c | 6 +- tools/Torch | 2 +- 62 files changed, 1051 insertions(+), 1028 deletions(-) diff --git a/Makefile b/Makefile index 41aaebe9..5938057c 100644 --- a/Makefile +++ b/Makefile @@ -378,6 +378,7 @@ toolchain: torch: @$(MAKE) -s -C tools torch + rm -f torch.hash.yml init: @$(MAKE) clean diff --git a/include/context.h b/include/context.h index 69b40f0b..cae98592 100644 --- a/include/context.h +++ b/include/context.h @@ -24,7 +24,7 @@ extern s32 gTeamShields[6]; extern s32 gSavedTeamShields[6]; extern s32 gPrevPlanetSavedTeamShields[6]; extern s32 gTeamDamage[6]; -extern u8 gNextPlanetPath; // next planet path +extern u8 gMissionStatus; // next planet path extern f32 gGroundHeight; extern f32 D_ctx_80177950; extern f32 D_ctx_80177968; @@ -47,11 +47,11 @@ extern u8 gAqDrawMode; extern s32 D_ctx_80177AE0; extern s32 gMainController; extern s32 D_ctx_80177B40; -extern PlanetId gMissionNumber; // D_ctx_80177B48 // Arrow pointer? -extern s32 D_ctx_80177B50[7]; -extern s32 D_ctx_80177B70[7]; -extern PlanetId D_ctx_80177B90[7]; -extern s32 D_ctx_80177BB0[7]; +extern s32 gMissionNumber; +extern s32 gMissionTeamStatus[7]; +extern s32 gMissionHitCount[7]; +extern PlanetId gMissionPlanet[7]; +extern s32 gMissionMedal[7]; extern s32 gPlanetPathStatus[]; // overruns D_ctx_80177C30? extern s32 gPrevPlanetTeamShields[6]; extern s32 D_ctx_80177C58[6]; diff --git a/include/prevent_context_reordering.h b/include/prevent_context_reordering.h index 9da5e25d..31026d79 100644 --- a/include/prevent_context_reordering.h +++ b/include/prevent_context_reordering.h @@ -1,12 +1,12 @@ #ifndef PREVENT_CONTEXT_REORDERING_H #define PREVENT_CONTEXT_REORDERING_H -// extern int Dummyhalf; +extern int Dummyhalf; // struct Dummy0 {int x;}; // struct Dummy1 {int x;}; // struct Dummy2 {int x;}; -struct Dummy3 {int x;}; -struct Dummy4 {int x;}; +// struct Dummy3 {int x;}; +// struct Dummy4 {int x;}; struct Dummy5 {int x;}; struct Dummy6 {int x;}; struct Dummy7 {int x;}; diff --git a/include/sf64audio_external.h b/include/sf64audio_external.h index 51e9e3e9..db903add 100644 --- a/include/sf64audio_external.h +++ b/include/sf64audio_external.h @@ -151,29 +151,29 @@ void Audio_PlayVoiceWithoutBGM(u32 msgId); void Audio_ClearVoice(void); s32 Audio_GetCurrentVoice(void); s32 Audio_GetCurrentVoiceStatus(void); -void func_8001AF40(u8 unkVoiceParam); +void Audio_SetUnkVoiceParam(u8 unkVoiceParam); u8* Audio_UpdateFrequencyAnalysis(void); void Audio_StartPlayerNoise(u8 playerId); -void func_8001CA24(u8 playerId); -void func_8001CB80(u8 playerId, u8 arg1); -void func_8001CCDC(u8 playerId, f32* sfxSource); -void func_8001CE28(u8 playerId, f32* sfxSource); -void func_8001CF60(f32* sfxSource); -void func_8001CFA8(f32 arg0); -void func_8001D034(f32* sfxSource, u32 sfxId, u8 semitones); -void func_8001D0B4(f32* sfxSource, u32 sfxId, f32 freqMod); -void func_8001D10C(f32* sfxSource, u32 sfxId); -void func_8001D15C(u8 arg0); -void func_8001D1C8(u8 arg0, u8 arg1); -void Audio_PlayEventSfx(f32* sfxSource, u16 arg1); -void Audio_StopEventSfx(f32* sfxSource, u16 arg1); -void Audio_SetBaseSfxReverb(s8 reverb); +void Audio_StopPlayerNoise(u8 playerId); +void Audio_InitBombSfx(u8 playerId, u8 type); +void Audio_PlayBombFlightSfx(u8 playerId, f32* sfxSource); +void Audio_PlayBombExplodeSfx(u8 playerId, f32* sfxSource); +void Audio_StopEngineNoise(f32* sfxSource); +void Audio_SetSfxSpeedModulation(f32 vel); +void Audio_SetTransposeAndPlaySfx(f32* sfxSource, u32 sfxId, u8 semitones); +void Audio_SetModulationAndPlaySfx(f32* sfxSource, u32 sfxId, f32 freqMod); +void Audio_PlaySfxModulated(f32* sfxSource, u32 sfxId); +void Audio_SetSfxMapModulation(u8 fMod); +void Audio_SetHeatAlarmParams(u8 shields, u8 heightParam); +void Audio_PlayEventSfx(f32* sfxSource, u16 eventSfxId); +void Audio_StopEventSfx(f32* sfxSource, u16 eventSfxId); +void Audio_SetEnvSfxReverb(s8 reverb); void Audio_SetBgmParam(s8 bgmParam); void Audio_PlaySequence(u8 seqPlayId, u16 seqId, u8 fadeinTime, u8 bgmParam); void Audio_PlayFanfare(u16 seqId, u8 bgmVolume, u8 bgmFadeoutTime, u8 bgmFadeinTime); -void func_8001D520(void); -void func_8001D638(u8 arg0); -void func_8001D6DC(u8 arg0); +void Audio_PlayDeathSequence(void); +void Audio_PlayPauseSfx(u8 active); +void Audio_PlayMapMenuSfx(u8 active); void Audio_SetVolume(u8 audioType, u8 volume); void Audio_PlaySoundTest(u8 enable); void Audio_PlaySequenceDistorted(u8 seqPlayId, u16 seqId, u16 distortion, u8 fadeinTime, u8 unused); diff --git a/include/sf64audio_provisional.h b/include/sf64audio_provisional.h index 8cece3a1..9abfc390 100644 --- a/include/sf64audio_provisional.h +++ b/include/sf64audio_provisional.h @@ -122,6 +122,12 @@ typedef enum { /* 5 */ LOAD_STATUS_PERMANENTLY_LOADED // the entry data is loaded in the permanent pool, it won't be discarded } AudioLoadStatus; +typedef enum AudioResetStatus { + AUDIORESET_READY, + AUDIORESET_WAIT, + AUDIORESET_BLOCK, +} AudioResetStatus; + typedef s32 (*DmaHandler)(OSPiHandle* handle, OSIoMesg* mb, s32 direction); struct Note; @@ -752,7 +758,7 @@ typedef struct { /* 0x14 */ u32 chunkSize; /* 0x18 */ OSMesg retMsg; /* 0x1C */ OSMesgQueue* retQueue; - /* 0x20 */ OSMesgQueue msgQueue; + /* 0x20 */ OSMesgQueue mesgQueue; /* 0x38 */ OSMesg msg; /* 0x3C */ OSIoMesg ioMesg; } AudioAsyncLoad; // size = 0x54 @@ -768,7 +774,7 @@ typedef struct { /* 0x14 */ s32 bytesRemaining; /* 0x18 */ s8* status; // write-only /* 0x1C */ Sample sample; - /* 0x2C */ OSMesgQueue msgQueue; + /* 0x2C */ OSMesgQueue mesgQueue; /* 0x44 */ OSMesg msg; /* 0x48 */ OSIoMesg ioMesg; } AudioSlowLoad; // size = 0x60 @@ -812,7 +818,7 @@ typedef struct SampleDma { typedef struct { /* 0x00 */ OSTask task; - /* 0x40 */ OSMesgQueue* msgQueue; + /* 0x40 */ OSMesgQueue* mesgQueue; /* 0x44 */ void* unk_44; // probably a message that gets unused. /* 0x48 */ char unk_48[0x8]; } AudioTask; // size = 0x50 @@ -1081,7 +1087,7 @@ void func_800168BC(void); void AudioThread_ScheduleProcessCmds(void); u32 AudioThread_GetAsyncLoadStatus(u32 *); u8* AudioThread_GetFontsForSequence(s32 seqId, u32* outNumFonts); -s32 func_8001ED34(void); +bool AudioThread_ResetComplete(void); void AudioThread_ResetAudioHeap(s32); void AudioThread_Init(void); diff --git a/include/sf64level.h b/include/sf64level.h index 24f7aaeb..f1f03a4a 100644 --- a/include/sf64level.h +++ b/include/sf64level.h @@ -12,6 +12,12 @@ typedef enum { /* 3 */ LEVELTYPE_UNK3, } LevelType; +typedef enum { + /* 0 */ MISSION_COMPLETE, + /* 1 */ MISSION_ACCOMPLISHED, + /* 2 */ MISSION_WARP, +} MissionStatus; + typedef struct { /* 0x00 */ s32 type; /* 0x04 */ s32 unk_04; diff --git a/include/sf64thread.h b/include/sf64thread.h index e56936dd..e3d20022 100644 --- a/include/sf64thread.h +++ b/include/sf64thread.h @@ -42,7 +42,7 @@ typedef struct { typedef struct { /* 0x000 */ OSThread thread; /* 0x1B0 */ char stack[0x800]; - /* 0x9B0 */ OSMesgQueue msgQueue; + /* 0x9B0 */ OSMesgQueue mesgQueue; /* 0x9C8 */ OSMesg msg; /* 0x9CC */ FrameBuffer* fb; /* 0x9D0 */ u16 width; @@ -59,7 +59,7 @@ typedef enum { typedef struct { /* 0x00 */ OSTask task; - /* 0x40 */ OSMesgQueue* msgQueue; + /* 0x40 */ OSMesgQueue* mesgQueue; /* 0x44 */ OSMesg msg; /* 0x48 */ SpTaskState state; } SPTask; // size = 0x50, 0x8 aligned @@ -126,32 +126,32 @@ extern u32 gSegments[16]; // 800E1FD0 extern OSMesgQueue gPiMgrCmdQueue; // 800E2010 extern OSMesg sPiMgrCmdBuff[50]; // 800E2028 -extern OSMesgQueue gDmaMsgQueue; +extern OSMesgQueue gDmaMesgQueue; extern OSMesg sDmaMsgBuff[1]; extern OSIoMesg gDmaIOMsg; extern OSMesgQueue gSerialEventQueue; extern OSMesg sSerialEventBuff[1]; -extern OSMesgQueue gMainThreadMsgQueue; +extern OSMesgQueue gMainThreadMesgQueue; extern OSMesg sMainThreadMsgBuff[32]; -extern OSMesgQueue gTaskMsgQueue; +extern OSMesgQueue gTaskMesgQueue; extern OSMesg sTaskMsgBuff[16]; -extern OSMesgQueue gAudioVImsgQueue; +extern OSMesgQueue gAudioVImesgQueue; extern OSMesg sAudioVImsgBuff[1]; -extern OSMesgQueue gAudioTaskMsgQueue; +extern OSMesgQueue gAudioTaskMesgQueue; extern OSMesg sAudioTaskMsgBuff[1]; -extern OSMesgQueue gGfxVImsgQueue; +extern OSMesgQueue gGfxVImesgQueue; extern OSMesg sGfxVImsgBuff[4]; -extern OSMesgQueue gGfxTaskMsgQueue; +extern OSMesgQueue gGfxTaskMesgQueue; extern OSMesg sGfxTaskMsgBuff[2]; -extern OSMesgQueue gSerialThreadMsgQueue; +extern OSMesgQueue gSerialThreadMesgQueue; extern OSMesg sSerialThreadMsgBuff[8]; -extern OSMesgQueue gControllerMsgQueue; +extern OSMesgQueue gControllerMesgQueue; extern OSMesg sControllerMsgBuff[1]; -extern OSMesgQueue gSaveMsgQueue; +extern OSMesgQueue gSaveMesgQueue; extern OSMesg sSaveMsgBuff[1]; -extern OSMesgQueue gTimerTaskMsgQueue; +extern OSMesgQueue gTimerTaskMesgQueue; extern OSMesg sTimerTaskMsgBuff[16]; -extern OSMesgQueue gTimerWaitMsgQueue; +extern OSMesgQueue gTimerWaitMesgQueue; extern OSMesg sTimerWaitMsgBuff[1]; extern GfxPool gGfxPools[2]; // 800E23B0 @@ -182,7 +182,11 @@ extern OSThread gMainThread; // 8013A040 extern u8 sMainThreadStack[0x1000]; // 8013A1F0 extern OSThread gAudioThread; //8013B1F0 -#define MSG_QUEUE_EMPTY -1 +#define MESG_QUEUE_EMPTY -1 + +#define MQ_GET_MESG(mq, mesg) (osRecvMesg((mq), (OSMesg*) (mesg), OS_MESG_NOBLOCK) != -1) +#define MQ_WAIT_FOR_MESG(mq, mesg) osRecvMesg((mq), (OSMesg*) (mesg), OS_MESG_BLOCK) +#define MQ_CLEAR_QUEUE(mq) do {s32 m1 = -1; s32 mesg; do {} while(osRecvMesg((mq), (OSMesg*) &(mesg), OS_MESG_NOBLOCK) != m1);} while(0) #define FAULT_MESG_BREAK 1 #define FAULT_MESG_FAULT 2 diff --git a/include/variables.h b/include/variables.h index 5fbe0197..aa2b6f9c 100644 --- a/include/variables.h +++ b/include/variables.h @@ -89,7 +89,7 @@ extern CollisionHeader2 D_800D2CA0[]; // fox_play extern u8 gVenomHardClear; -extern u8 D_play_800D3180[30]; +extern u8 gLeveLClearStatus[30]; // fox_radio extern s32 gCurrentMsgPri; @@ -99,7 +99,7 @@ extern s32 gAllRangeSupplyTimer; extern s32 sStarWolfKillTimer; extern s16 gStarWolfMsgTimer; extern s32 gAllRangeWingRepairTimer; -extern s32 gAllRangeWingRepairSent; +extern s32 gAllRangeSuppliesSent; extern f32 gSzMissileR; extern f32 gSzMissileG; extern f32 gSzMissileB; diff --git a/linker_scripts/us/symbol_addrs.txt b/linker_scripts/us/symbol_addrs.txt index b629a9f5..2f4d01f7 100644 --- a/linker_scripts/us/symbol_addrs.txt +++ b/linker_scripts/us/symbol_addrs.txt @@ -70,7 +70,7 @@ D_display_801613E0 = 0x801613E0;//size:0x18 D_edata_800CC124 = 0x800CC124;//type:u8 D_boss_800C9E90 = 0x800C9E90;//size:0x70 -D_play_800D3180 = 0x800D3180; // size:0x20 +gLeveLClearStatus = 0x800D3180; // size:0x20 gRcpSetupDLs = 0x800D31B0; // size:0x18C0 D_edisplay_800CFCA0 = 0x800CFCA0; diff --git a/linker_scripts/us/symbol_addrs_audio.txt b/linker_scripts/us/symbol_addrs_audio.txt index bf9f7536..c3f16723 100644 --- a/linker_scripts/us/symbol_addrs_audio.txt +++ b/linker_scripts/us/symbol_addrs_audio.txt @@ -23,10 +23,10 @@ sSeqCmdWritePos = 0x800C5D44; sSeqCmdReadPos = 0x800C5D48; sStartSeqDisabled = 0x800C5D4C; sSoundModeList = 0x800C5D50; -sNewAudioSpecId = 0x800C5D54; +sAudioSpecId = 0x800C5D54; D_800C5D58 = 0x800C5D58; -sBaseReverb = 0x800C5D60; +sEnvReverb = 0x800C5D60; sAudioSpecReverb = 0x800C5D64; sVolumeSettings = 0x800C5D68; D_800C5D6C = 0x800C5D6C; @@ -39,7 +39,7 @@ sSfxVolMod = 0x800C5E78; sPlaylistIndex = 0x800C5E7C; sPlaylistTimer = 0x800C5E80; sPlaylistCmdIndex = 0x800C5E84; -D_800C5E88 = 0x800C5E88; +sEventSfx = 0x800C5E88; sSoundTestTracks = 0x800C5EE4; sPlaylists = 0x800C5FF4; //type:u16 size:5000 @@ -47,7 +47,7 @@ D_800C7380 = 0x800C7380; D_800C7384 = 0x800C7384; D_800C7388 = 0x800C7388; D_800C738C = 0x800C738C; -D_800C7390 = 0x800C7390; +sUnkVoiceParam = 0x800C7390; D_800C7394 = 0x800C7394; D_800C7398 = 0x800C7398; D_800C7418 = 0x800C7418; @@ -67,7 +67,7 @@ gThreadCmdWritePos = 0x800C7C50; gThreadCmdReadPos = 0x800C7C54; gAudioTaskStartQueue = 0x800C7C58; gThreadCmdProcQueue = 0x800C7C5C; -gAudioUnkQueue = 0x800C7C60; +gAudioSpecQueue = 0x800C7C60; gAudioResetQueue = 0x800C7C64; gMaxAbiCmdCnt = 0x800C7C68; gWaitingAudioTask = 0x800C7C6C; @@ -106,7 +106,7 @@ D_80149AD8 = 0x80149AD8; D_80149ED8 = 0x80149ED8; D_8014A2D8 = 0x8014A2D8; D_8014A8D8 = 0x8014A8D8; -D_8014A958 = 0x8014A958; +sFreqAnalyzerBars = 0x8014A958; sSeqRequests = 0x8014A978; sNumSeqRequests = 0x8014A9A0; sAudioSeqCmds = 0x8014A9A8; @@ -115,10 +115,10 @@ sDelayedSeqCmdFlags = 0x8014B708; sDelayedSeqCmds = 0x8014B710; sSfxChannelState = 0x8014B790; sPlayerNoise = 0x8014B850; -D_8014BA10 = 0x8014BA10; -D_8014BA20 = 0x8014BA20; -D_8014BA24 = 0x8014BA24; -D_8014BA28 = 0x8014BA28; +sBombFreqMod = 0x8014BA10; +sBombType = 0x8014BA20; +sBombState = 0x8014BA24; +sBombStartFrame = 0x8014BA28; gAudioContextStart = 0x8014BA40; // size:0x10 gSynthReverbs = 0x8014BA50; // size:0x750 @@ -212,12 +212,12 @@ gAudioContextEnd = 0x80155D90;//size:0x10 sAudioTaskStartQueue = 0x80155DA0; sThreadCmdProcQueue = 0x80155DB8; -sAudioUnkQueue = 0x80155DD0; +sAudioSpecQueue = 0x80155DD0; sAudioResetQueue = 0x80155DE8; gThreadCmdBuffer = 0x80155E00; sAudioTaskStartMsg = 0x80156600; sThreadCmdProcMsg = 0x80156608; -sAudioUnkMsg = 0x80156618; +sAudioSpecMsg = 0x80156618; sAudioResetMsg = 0x8015661C; @@ -408,8 +408,8 @@ Audio_GetSfxPan = 0x80016CDC; Audio_GetSfxFreqMod = 0x80016EE4; Audio_SetSfxProperties = 0x80016FF0; Audio_UpdateDopplerShift = 0x80017360; -func_80017494 = 0x80017494; -func_80017550 = 0x80017550; +Audio_LoadInstruments = 0x80017494; +Audio_LoadAquasSequence = 0x80017550; Audio_ResetSfxChannelState = 0x80017588; Audio_StartSequence = 0x80017600; Audio_StopSequence = 0x80017760; @@ -420,12 +420,12 @@ Audio_GetActiveSeqId = 0x8001839C; Audio_SeqCmdNotQueued = 0x80018410; Audio_SeqCmdValueNotQueued = 0x80018470; Audio_ResetSequenceRequests = 0x800184D4; -func_800184EC = 0x800184EC; +Audio_DisableSetupOp = 0x800184EC; Audio_SetSequenceFade = 0x800185A0; Audio_UpdateActiveSequences = 0x800185F8; Audio_SetDelayedSeqCmd = 0x80018E9C; Audio_UpdateDelayedSeqCmds = 0x80018EE0; -func_80018FA4 = 0x80018FA4; +Audio_HandleReset = 0x80018FA4; Audio_ResetActiveSequences = 0x80019068; Audio_ResetActiveSequencesAndVolume = 0x800190E4; Audio_SetSfxBanksMute = 0x80019158; @@ -454,8 +454,8 @@ Audio_UpdateVoice = 0x8001AD44; Audio_ClearVoice = 0x8001AE58; Audio_GetCurrentVoice = 0x8001AE78; Audio_GetCurrentVoiceStatus = 0x8001AED4; -func_8001AF40 = 0x8001AF40; -func_8001AF50 = 0x8001AF50; +Audio_SetUnkVoiceParam = 0x8001AF40; +Audio_UpdateUnkVoiceParam = 0x8001AF50; Audio_ResetPlayerFreqMods = 0x8001AF9C; Audio_UpdateArwingNoise = 0x8001B014; Audio_UpdateLandmasterNoise = 0x8001B454; @@ -465,31 +465,31 @@ Audio_UpdatePlayerReverb = 0x8001BB74; Audio_UpdatePlayerNoise = 0x8001BC20; Audio_ResetVoicesAndPlayers = 0x8001BC48; Audio_ProcessPlaylist = 0x8001BD0C; -func_8001BFC0 = 0x8001BFC0; +Audio_AnalyzeFrequencies = 0x8001BFC0; Audio_UpdateFrequencyAnalysis = 0x8001C3EC; Audio_StartPlayerNoise = 0x8001C8B8; -func_8001CA24 = 0x8001CA24; -func_8001CB80 = 0x8001CB80; -func_8001CCDC = 0x8001CCDC; -func_8001CE28 = 0x8001CE28; -func_8001CEFC = 0x8001CEFC; -func_8001CF60 = 0x8001CF60; -func_8001CFA8 = 0x8001CFA8; -func_8001D034 = 0x8001D034; -func_8001D0B4 = 0x8001D0B4; -func_8001D10C = 0x8001D10C; -func_8001D15C = 0x8001D15C; -func_8001D1C8 = 0x8001D1C8; +Audio_StopPlayerNoise = 0x8001CA24; +Audio_InitBombSfx = 0x8001CB80; +Audio_PlayBombFlightSfx = 0x8001CCDC; +Audio_PlayBombExplodeSfx = 0x8001CE28; +Audio_StartEngineNoise = 0x8001CEFC; +Audio_StopEngineNoise = 0x8001CF60; +Audio_SetSfxSpeedModulation = 0x8001CFA8; +Audio_SetTransposeAndPlaySfx = 0x8001D034; +Audio_SetModulationAndPlaySfx = 0x8001D0B4; +Audio_PlaySfxModulated = 0x8001D10C; +Audio_SetSfxMapModulation = 0x8001D15C; +Audio_SetHeatAlarmParams = 0x8001D1C8; Audio_PlayEventSfx = 0x8001D2FC; Audio_StopEventSfx = 0x8001D3A0; -Audio_SetBaseSfxReverb = 0x8001D400; +Audio_SetEnvSfxReverb = 0x8001D400; Audio_SetBgmParam = 0x8001D410; Audio_PlaySequence = 0x8001D444; Audio_PlayFanfare = 0x8001D4AC; -func_8001D520 = 0x8001D520; -func_8001D638 = 0x8001D638; -func_8001D6DC = 0x8001D6DC; -func_8001D780 = 0x8001D780; +Audio_PlayDeathSequence = 0x8001D520; +Audio_PlayPauseSfx = 0x8001D638; +Audio_PlayMapMenuSfx = 0x8001D6DC; +Audio_RestoreVolumeSettings = 0x8001D780; Audio_SetVolume = 0x8001D8A8; Audio_PlaySoundTest = 0x8001D8F4; Audio_PlaySequenceDistorted = 0x8001D9E0; @@ -499,8 +499,8 @@ Audio_KillAllSfx = 0x8001DC2C; Audio_SetAudioSpec = 0x8001DC6C; Audio_PlayBgm = 0x8001DCB4; Audio_InitSounds = 0x8001DCE0; -func_8001DD40 = 0x8001DD40; -func_8001DE1C = 0x8001DE1C; +Audio_RestartSeqPlayers = 0x8001DD40; +Audio_StartReset = 0x8001DE1C; Audio_Update = 0x8001DECC; @@ -519,7 +519,7 @@ AudioThread_ResetCmdQueue = 0x8001E998; AudioThread_ProcessCmds = 0x8001E9AC; AudioThread_GetAsyncLoadStatus = 0x8001ECAC; AudioThread_GetFontsForSequence = 0x8001ED14; -func_8001ED34 = 0x8001ED34; +AudioThread_ResetComplete = 0x8001ED34; AudioThread_ResetAudioHeap = 0x8001ED8C; AudioThread_PreNMIReset = 0x8001EE00; AudioThread_Init = 0x8001EE3C; diff --git a/linker_scripts/us/symbol_addrs_engine.txt b/linker_scripts/us/symbol_addrs_engine.txt index 2d93d445..03dd42b3 100644 --- a/linker_scripts/us/symbol_addrs_engine.txt +++ b/linker_scripts/us/symbol_addrs_engine.txt @@ -472,7 +472,7 @@ gPrevPlanetSavedTeamShields = 0x801778F0;//size=0x18 gBoostButton = 0x80177908; gTeamDamage = 0x80177910; gBrakeButton = 0x80177928; -gNextPlanetPath = 0x80177930; +gMissionStatus = 0x80177930; gShootButton = 0x80177938; gGroundHeight = 0x80177940; gBombButton = 0x80177948; @@ -512,10 +512,10 @@ gVsLockOnTimers = 0x80177B00; D_ctx_80177B40 = 0x80177B40; gStartAndrossFightTimer = 0x80177B44; gMissionNumber = 0x80177B48; -D_ctx_80177B50 = 0x80177B50; -D_ctx_80177B70 = 0x80177B70; -D_ctx_80177B90 = 0x80177B90; -D_ctx_80177BB0 = 0x80177BB0; +gMissionTeamStatus = 0x80177B50; +gMissionHitCount = 0x80177B70; +gMissionPlanet = 0x80177B90; +gMissionMedal = 0x80177BB0; gControllerRumbleTimers = 0x80177BD0; gPlanetPathStatus = 0x80177BD8; D_ctx_80177C30 = 0x80177C30; diff --git a/linker_scripts/us/symbol_addrs_nlib_vars.txt b/linker_scripts/us/symbol_addrs_nlib_vars.txt index 7df28f31..4bfa4433 100644 --- a/linker_scripts/us/symbol_addrs_nlib_vars.txt +++ b/linker_scripts/us/symbol_addrs_nlib_vars.txt @@ -35,33 +35,33 @@ gSegments = 0x800E1FD0; gPiMgrCmdQueue = 0x800E2010; sPiMgrCmdBuff = 0x800E2028; -gDmaMsgQueue = 0x800E20F0; +gDmaMesgQueue = 0x800E20F0; sDmaMsgBuff = 0x800E2108; gDmaIOMsg = 0x800E2110; gSerialEventQueue = 0x800E2128; sSerialEventBuff = 0x800E2140; -gMainThreadMsgQueue = 0x800E2148; +gMainThreadMesgQueue = 0x800E2148; sMainThreadMsgBuff = 0x800E2160; -gTaskMsgQueue = 0x800E21E0; +gTaskMesgQueue = 0x800E21E0; sTaskMsgBuff = 0x800E21F8; -gAudioVImsgQueue = 0x800E2238; -gAudioTaskMsgQueue = 0x800E2258; -gGfxVImsgQueue = 0x800E2278; -gGfxTaskMsgQueue = 0x800E22A0; +gAudioVImesgQueue = 0x800E2238; +gAudioTaskMesgQueue = 0x800E2258; +gGfxVImesgQueue = 0x800E2278; +gGfxTaskMesgQueue = 0x800E22A0; sAudioVImsgBuff = 0x800E2250; sAudioTaskMsgBuff = 0x800E2270; sGfxVImsgBuff = 0x800E2290; sGfxTaskMsgBuff = 0x800E22B8; -gSerialThreadMsgQueue = 0x800E22C0; +gSerialThreadMesgQueue = 0x800E22C0; sSerialThreadMsgBuff = 0x800E22D8; -gControllerMsgQueue = 0x800E22F8; +gControllerMesgQueue = 0x800E22F8; sControllerMsgBuff = 0x800E2310; -gSaveMsgQueue = 0x800E2318; +gSaveMesgQueue = 0x800E2318; sSaveMsgBuff = 0x800E2330; -gTimerTaskMsgQueue = 0x800E2338; +gTimerTaskMesgQueue = 0x800E2338; sTimerTaskMsgBuff = 0x800E2350; -gTimerWaitMsgQueue = 0x800E2390; +gTimerWaitMesgQueue = 0x800E2390; sTimerWaitMsgBuff = 0x800E23A8; gGfxPools = 0x800E23B0; // size:0x55AA0 diff --git a/src/audio/audio_general.c b/src/audio/audio_general.c index 04ee7736..cbabdbc5 100644 --- a/src/audio/audio_general.c +++ b/src/audio/audio_general.c @@ -4,15 +4,15 @@ #include "audiothread_cmd.h" #include "audioseq_cmd.h" -void func_8001D0B4(f32* sfxSource, u32 sfxId, f32 freqMod); +void Audio_SetModulationAndPlaySfx(f32* sfxSource, u32 sfxId, f32 freqMod); s32 Audio_GetCurrentVoice(void); void Audio_PlaySequence(u8, u16, u8, u8); void Audio_PlayFanfare(u16, u8, u8, u8); void Audio_PlaySequenceDistorted(u8, u16, u16, u8, u8); -void func_8001DD40(void); -void func_8001D6DC(u8); -void func_8001DE1C(u8); +void Audio_RestartSeqPlayers(void); +void Audio_PlayMapMenuSfx(u8); +void Audio_StartReset(u8); static const char devstr1[] = "preload start (%d): "; static const char devstr2[] = "%d "; @@ -45,11 +45,11 @@ ActiveSfx sActiveSfx[5][8]; u8 sCurSfxPlayerChannelIndex; u8 sSfxBankMuted[5]; Modulation sSfxVolumeMods[5]; -f32 D_80149AD8[256]; -f32 D_80149ED8[256]; -f32 D_8014A2D8[384]; -f32 D_8014A8D8[32]; -u8 D_8014A958[32]; +f32 sAudioAnalyzerData[256]; +f32 sAnalyzerBuffer1[256]; +f32 sAnalyzerBuffer2[384]; +f32 sNewFreqAmplitudes[32]; +u8 sFreqAnalyzerBars[32]; SeqRequest sSeqRequests[4][5]; u8 sNumSeqRequests[4]; s32 sAudioSeqCmds[256]; @@ -58,10 +58,10 @@ u16 sDelayedSeqCmdFlags; DelayedSeqCmd sDelayedSeqCmds[16]; SfxChannelState sSfxChannelState[16]; PlayerNoiseModulation sPlayerNoise[4]; -f32 D_8014BA10[4]; -u8 D_8014BA20[4]; -u8 D_8014BA24[4]; -s32 D_8014BA28[4]; +f32 sBombFreqMod[4]; +u8 sBombType[4]; +u8 sBombState[4]; +s32 sBombStartFrame[4]; u8 sChannelsPerBank[5][5] = { { 3, 2, 2, 2, 2 }, { 3, 1, 2, 2, 2 }, { 3, 2, 2, 2, 3 }, { 6, 0, 2, 0, 4 }, { 0, 0, 0, 0, 0 }, @@ -82,13 +82,13 @@ u8 sSeqCmdWritePos = 0; u8 sSeqCmdReadPos = 0; u8 sStartSeqDisabled = 0; u8 sSoundModeList[4] = { SOUNDMODE_STEREO, SOUNDMODE_HEADSET, SOUNDMODE_SURROUND, SOUNDMODE_MONO }; -u8 sNewAudioSpecId = AUDIOSPEC_0; -u8 D_800C5D58 = 0; +u8 sAudioSpecId = AUDIOSPEC_0; +u8 sAudioResetStatus = AUDIORESET_READY; s32 D_800C5D5C = 0; // unused. file split? -s8 sBaseReverb = 0; +s8 sEnvReverb = 0; s8 sAudioSpecReverb = 0; u8 sVolumeSettings[3] = { 99, 99, 99 }; -u8 D_800C5D6C[29][7] = { +u8 sAudioSpecInstrumentSets[29][7] = { { 0, 3, 4, 80, 12, 21, 255 }, { 17, 18, 15, 96, 20, 22, 255 }, { 0, 3, 5, 80, 16, 255, 0 }, { 17, 18, 15, 96, 20, 22, 255 }, { 0, 3, 4, 80, 12, 21, 255 }, { 17, 18, 15, 96, 20, 22, 255 }, { 0, 3, 4, 80, 12, 21, 255 }, { 17, 18, 15, 96, 20, 22, 255 }, { 0, 3, 4, 80, 12, 21, 255 }, @@ -100,10 +100,10 @@ u8 D_800C5D6C[29][7] = { { 255, 0, 0, 0, 0, 0, 0 }, { 255, 0, 0, 0, 0, 0, 0 }, { 255, 0, 0, 0, 0, 0, 0 }, { 255, 0, 0, 0, 0, 0, 0 }, { 0, 3, 4, 80, 12, 21, 255 }, }; -s8 D_800C5E38[29] = { +s8 sAudioSpecReverbAdd[29] = { 10, 0, 25, 0, 25, 0, 10, 0, 10, 35, 0, 10, 40, 0, 25, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }; -u32 D_800C5E58[5] = { 20, 16, 10, 10, 20 }; +u32 sPlayerNoiseTimes[5] = { 20, 16, 10, 10, 20 }; s32 D_800C5E6C = 0; // unused. file split? u8 D_800C5E70 = 0; f32 sSfxFreqMod = 1.0f; @@ -111,7 +111,7 @@ f32 sSfxVolMod = 1.0f; // never modified u8 sPlaylistIndex = 255; s32 sPlaylistTimer = 0; u8 sPlaylistCmdIndex = 0; -u32 D_800C5E88[] = { +u32 sEventSfx[] = { 0x1903000D, 0x1903000E, 0x19500015, 0x2903A021, 0x4900000C, 0x19122005, 0x1913204A, 0x2900306A, 0x29034024, 0x2902306C, 0x19032056, 0x19030057, 0x19033058, 0x19030006, 0x29503032, 0x1903407D, 0x4900402E, 0x19038072, 0x1903807E, 0x1903807F, 0x19038080, 0x11032081, 0x19031082, @@ -508,12 +508,12 @@ PlaylistCmd sPlaylists[][100] = { }, }; -s32 D_800C737C = 0; // unused. file split? -f32 D_800C7380 = 1.0f; +s32 D_800C737C = 0; // unused. file split? +f32 D_800C7380 = 1.0f; // unused/ u32 sNextVoiceId = 0; u32 sCurrentVoiceId = 0; u8 sSetNextVoiceId = 0; -u8 D_800C7390 = 0; +u8 sUnkVoiceParam = 0; u8 sMuteBgmForVoice = 0; void func_80016A50(void) { @@ -581,7 +581,7 @@ s8 Audio_GetSfxReverb(u8 bankId, u8 entryIndex, u8 channelId) { if (scriptReverb == -1) { scriptReverb = 0; } - totalReverb = *sSfxBanks[bankId][entryIndex].reverbAdd + distReverb + scriptReverb + sBaseReverb + sAudioSpecReverb; + totalReverb = *sSfxBanks[bankId][entryIndex].reverbAdd + distReverb + scriptReverb + sEnvReverb + sAudioSpecReverb; totalReverb = MIN(127, totalReverb); return totalReverb; } @@ -688,6 +688,7 @@ void Audio_SetSfxProperties(u8 bankId, u8 entryIndex, u8 channelId) { sSfxChannelState[channelId].pan = pan; } } + f32 Audio_UpdateDopplerShift(f32* srcPos, f32* srcVel, f32 soundSpeed, f32* curDopplerShift) { f32 xVel; f32 zVel; @@ -742,25 +743,25 @@ f32 Audio_UpdateDopplerShift(f32* srcPos, f32* srcVel, f32 soundSpeed, f32* curD return newShift; } -void func_80017494(void) { +void Audio_LoadInstruments(void) { u8 i; - for (i = 0; D_800C5D6C[sNewAudioSpecId][i] != 0xFF; i++) { - AUDIOCMD_GLOBAL_SYNC_LOAD_INSTRUMENT(0, D_800C5D6C[sNewAudioSpecId][i], 0); + for (i = 0; sAudioSpecInstrumentSets[sAudioSpecId][i] != 0xFF; i++) { + AUDIOCMD_GLOBAL_SYNC_LOAD_INSTRUMENT(0, sAudioSpecInstrumentSets[sAudioSpecId][i], 0); } } -void func_80017550(void) { - if (sNewAudioSpecId == AUDIOSPEC_12) { - AUDIOCMD_GLOBAL_SYNC_LOAD_SEQ_PARTS(14, 0); +void Audio_LoadAquasSequence(void) { + if (sAudioSpecId == AUDIOSPEC_12) { + AUDIOCMD_GLOBAL_SYNC_LOAD_SEQ_PARTS(SEQ_ID_AQUAS, 0); } } void Audio_ResetSfxChannelState(void) { u8 i; - sBaseReverb = 0; - sAudioSpecReverb = D_800C5E38[sNewAudioSpecId]; + sEnvReverb = 0; + sAudioSpecReverb = sAudioSpecReverbAdd[sAudioSpecId]; for (i = 0; i < 16; i++) { sSfxChannelState[i].volMod = 1.0f; sSfxChannelState[i].freqMod = 1.0f; @@ -805,7 +806,7 @@ void Audio_ProcessSeqCmd(u32 seqCmd) { s32 priority; u8 i; // sp63 u8 specId; - u8 sp61; + u8 oldSpecId; u8 ioPort; u8 channel; u8 found; @@ -1018,12 +1019,12 @@ void Audio_ProcessSeqCmd(u32 seqCmd) { case SEQCMD_OP_RESET_AUDIO_HEAP: specId = seqCmd & 0xFF; sSfxChannelLayout = (seqCmd & 0xFF00) >> 8; - sp61 = sNewAudioSpecId; - sNewAudioSpecId = specId; + oldSpecId = sAudioSpecId; + sAudioSpecId = specId; - if (sp61 != specId) { + if (oldSpecId != specId) { AudioThread_ResetAudioHeap(specId); - func_8001DE1C(sp61); + Audio_StartReset(oldSpecId); AUDIOCMD_GLOBAL_STOP_AUDIOCMDS(); } else { @@ -1082,14 +1083,15 @@ void Audio_ResetSequenceRequests(u8 seqPlayId) { sNumSeqRequests[seqPlayId] = 0; } -void func_800184EC(u8 seqPlayId, u8 setupOpDisable) { +// unused +void Audio_DisableSetupOp(u8 seqPlayId, u8 opcode) { u8 i; for (i = 0; i < sActiveSequences[seqPlayId].setupCmdNum; i++) { u8 setupOp = ((sActiveSequences[seqPlayId].setupCmd[i] & 0xF00000) >> 20); - if (setupOp == setupOpDisable) { - sActiveSequences[seqPlayId].setupCmd[i] = 0xFF000000; + if (setupOp == opcode) { + sActiveSequences[seqPlayId].setupCmd[i] = 0xFF000000; // 0 duration volume reset on SEQ_PLAYER_BGM } } } @@ -1246,7 +1248,7 @@ void Audio_UpdateActiveSequences(void) { if (sActiveSequences[seqPlayId].setupCmdNum == 0) { continue; } - if (!Audio_SeqCmdValueNotQueued(SEQCMD_OP_MASK, SEQCMD_OP_RESET_AUDIO_HEAP << 28)) { + if (!Audio_SeqCmdValueNotQueued(SEQCMD_OP_RESET_AUDIO_HEAP << 28, SEQCMD_OP_MASK)) { sActiveSequences[seqPlayId].setupCmdNum = 0; break; } @@ -1254,9 +1256,9 @@ void Audio_UpdateActiveSequences(void) { sActiveSequences[seqPlayId].setupCmdTimer--; } else if (!gSeqPlayers[seqPlayId].enabled) { for (i = 0; i < sActiveSequences[seqPlayId].setupCmdNum; i++) { - setupOp = (sActiveSequences[seqPlayId].setupCmd[i] & 0xF00000) >> 0x14; + setupOp = (sActiveSequences[seqPlayId].setupCmd[i] & 0xF00000) >> 20; - setupSeqPlayId = (sActiveSequences[seqPlayId].setupCmd[i] & 0xF0000) >> 0x10; + setupSeqPlayId = (sActiveSequences[seqPlayId].setupCmd[i] & 0xF0000) >> 16; val2 = (sActiveSequences[seqPlayId].setupCmd[i] & 0xFF00) >> 8; val1 = sActiveSequences[seqPlayId].setupCmd[i] & 0xFF; switch (setupOp) { @@ -1321,24 +1323,24 @@ void Audio_UpdateDelayedSeqCmds(void) { } } -u8 func_80018FA4(void) { - if (D_800C5D58 != 0) { - if (D_800C5D58 == 1) { - if (func_8001ED34() == 1) { - D_800C5D58 = 0; +u8 Audio_HandleReset(void) { + if (sAudioResetStatus != AUDIORESET_READY) { + if (sAudioResetStatus == AUDIORESET_WAIT) { + if (AudioThread_ResetComplete() == true) { + sAudioResetStatus = AUDIORESET_READY; AUDIOCMD_SEQPLAYER_SET_IO(SEQ_PLAYER_SFX, 0, sSfxChannelLayout); - func_8001DD40(); + Audio_RestartSeqPlayers(); } - } else if (D_800C5D58 == 2) { - while (func_8001ED34() != 1) { + } else if (sAudioResetStatus == AUDIORESET_BLOCK) { + while (AudioThread_ResetComplete() != true) { ; } - D_800C5D58 = 0; + sAudioResetStatus = AUDIORESET_READY; AUDIOCMD_SEQPLAYER_SET_IO(SEQ_PLAYER_SFX, 0, sSfxChannelLayout); - func_8001DD40(); + Audio_RestartSeqPlayers(); } } - return D_800C5D58; + return sAudioResetStatus; } void Audio_ResetActiveSequences(void) { @@ -2008,14 +2010,14 @@ s32 Audio_GetCurrentVoiceStatus(void) { return 0; } -void func_8001AF40(u8 unkVoiceParam) { - D_800C7390 = unkVoiceParam; +void Audio_SetUnkVoiceParam(u8 unkVoiceParam) { + sUnkVoiceParam = unkVoiceParam; } -void func_8001AF50(void) { - if (D_800C7390 != 0xFF) { - AUDIOCMD_CHANNEL_SET_IO(SEQ_PLAYER_VOICE, 14, 0, D_800C7390); - D_800C7390 = 0xFF; +void Audio_UpdateUnkVoiceParam(void) { + if (sUnkVoiceParam != 0xFF) { + AUDIOCMD_CHANNEL_SET_IO(SEQ_PLAYER_VOICE, 14, 0, sUnkVoiceParam); + sUnkVoiceParam = 0xFF; } } @@ -2093,9 +2095,9 @@ void Audio_UpdateArwingNoise(u8 playerId) { sPlayerNoise[playerId].freqMod[i].value += sPlayerNoise[playerId].freqMod[i].step; if ((sPlayerNoise[playerId].freqMod[i].timer == 0) && (sPlayerNoise[playerId].freqMod[i].target != 1.0f)) { sPlayerNoise[playerId].freqMod[i].target = 1.0f; - sPlayerNoise[playerId].freqMod[i].timer = D_800C5E58[i]; + sPlayerNoise[playerId].freqMod[i].timer = sPlayerNoiseTimes[i]; sPlayerNoise[playerId].freqMod[i].step = - (1.0f - sPlayerNoise[playerId].freqMod[i].value) / D_800C5E58[i]; + (1.0f - sPlayerNoise[playerId].freqMod[i].value) / sPlayerNoiseTimes[i]; } } } @@ -2138,9 +2140,9 @@ void Audio_UpdateLandmasterNoise(u8 playerId) { sPlayerNoise[playerId].freqMod[i].value += sPlayerNoise[playerId].freqMod[i].step; if ((sPlayerNoise[playerId].freqMod[i].timer == 0) && (sPlayerNoise[playerId].freqMod[i].target != 1.0f)) { sPlayerNoise[playerId].freqMod[i].target = 1.0f; - sPlayerNoise[playerId].freqMod[i].timer = D_800C5E58[i]; + sPlayerNoise[playerId].freqMod[i].timer = sPlayerNoiseTimes[i]; sPlayerNoise[playerId].freqMod[i].step = - (1.0f - sPlayerNoise[playerId].freqMod[i].value) / D_800C5E58[i]; + (1.0f - sPlayerNoise[playerId].freqMod[i].value) / sPlayerNoiseTimes[i]; } } } @@ -2196,9 +2198,9 @@ void Audio_UpdateBlueMarineNoise(u8 playerId) { sPlayerNoise[playerId].freqMod[i].value += sPlayerNoise[playerId].freqMod[i].step; if ((sPlayerNoise[playerId].freqMod[i].timer == 0) && (sPlayerNoise[playerId].freqMod[i].target != 1.0f)) { sPlayerNoise[playerId].freqMod[i].target = 1.0f; - sPlayerNoise[playerId].freqMod[i].timer = D_800C5E58[i]; + sPlayerNoise[playerId].freqMod[i].timer = sPlayerNoiseTimes[i]; sPlayerNoise[playerId].freqMod[i].step = - (1.0f - sPlayerNoise[playerId].freqMod[i].value) / D_800C5E58[i]; + (1.0f - sPlayerNoise[playerId].freqMod[i].value) / sPlayerNoiseTimes[i]; } } } @@ -2268,8 +2270,8 @@ void Audio_ResetVoicesAndPlayers(void) { sPlayerNoise[playerId].reverbAdd = 0; sPlayerNoise[playerId].totalMod = 1.0f; sPlayerNoise[playerId].dopplerShift = 1.0f; - D_8014BA24[playerId] = 0; - D_8014BA28[playerId] = 0; + sBombState[playerId] = 0; + sBombStartFrame[playerId] = 0; } sSfxFreqMod = 1.0f; sSfxVolMod = 1.0f; @@ -2321,7 +2323,7 @@ void Audio_ProcessPlaylist(void) { } } -void func_8001BFC0(f32* buffer0, f32* buffer1, s32 length, f32* buffer2) { +void Audio_AnalyzeFrequencies(f32* buffer0, f32* buffer1, s32 length, f32* buffer2) { f32 temp_ft0; f32 var_fs0; f32* buff0fromStart; @@ -2399,14 +2401,14 @@ void func_8001BFC0(f32* buffer0, f32* buffer1, s32 length, f32* buffer2) { } u8* Audio_UpdateFrequencyAnalysis(void) { - s32 temp2; - s32 i; - s32 j; - s32 k; - s32 l; - s32 m; - s16* temp; - f32* test; + s32 fmax; + s32 i1; + s32 fmin; + s32 i2; + s32 i3; + s32 fbin; + s16* aiData; + s32 pad; static s32 sFreqBins[] = { 0, 1, 2, 3, 4, 6, 7, 8, 9, 10, 11, 12, 14, 16, 19, 22, 26, 31, 37, 44, 54, 68, 88, 108, 138, 163, 188, 208, 222, 234, 242, 246, @@ -2419,36 +2421,36 @@ u8* Audio_UpdateFrequencyAnalysis(void) { Audio_ProcessPlaylist(); // clang-format off - temp = gAiBuffers[gCurAiBuffIndex];\ - for(l = 0; l < 256; l++) {\ - D_80149AD8[l] = *temp++; + aiData = gAiBuffers[gCurAiBuffIndex];\ + for(i3 = 0; i3 < 256; i3++) {\ + sAudioAnalyzerData[i3] = *aiData++; } // clang-format on - func_8001BFC0(D_80149AD8, D_80149ED8, 8, D_8014A2D8); - j = 0; - for (i = 0; i < 32; i++) { - temp2 = sFreqBins[i] + 1; - for (m = j; m < temp2; m++) { - if (D_80149AD8[m] > 0.0f) { - D_8014A8D8[i] += D_80149AD8[m]; + Audio_AnalyzeFrequencies(sAudioAnalyzerData, sAnalyzerBuffer1, 8, sAnalyzerBuffer2); + fmin = 0; + for (i1 = 0; i1 < 32; i1++) { + fmax = sFreqBins[i1] + 1; + for (fbin = fmin; fbin < fmax; fbin++) { + if (sAudioAnalyzerData[fbin] > 0.0f) { + sNewFreqAmplitudes[i1] += sAudioAnalyzerData[fbin]; } else { - D_8014A8D8[i] -= D_80149AD8[m]; + sNewFreqAmplitudes[i1] -= sAudioAnalyzerData[fbin]; } } - j = m; + fmin = fbin; } - for (k = 0; k < 32; k++) { - D_8014A8D8[k] /= 8; + for (i2 = 0; i2 < 32; i2++) { + sNewFreqAmplitudes[i2] /= 8; } - for (l = 0; l < 32; l++) { - D_8014A8D8[l] = (D_8014A8D8[l] / 32768.0f) * sFreqGain; - if (D_8014A8D8[l] > 1.0f) { - D_8014A8D8[l] = 1.0f; + for (i3 = 0; i3 < 32; i3++) { + sNewFreqAmplitudes[i3] = (sNewFreqAmplitudes[i3] / 32768.0f) * sFreqGain; + if (sNewFreqAmplitudes[i3] > 1.0f) { + sNewFreqAmplitudes[i3] = 1.0f; } - sFreqAmplitudes[l] = sFreqAmplitudes[l] * 0.75f + 0.25f * D_8014A8D8[l]; - D_8014A958[l] = sFreqAmplitudes[l] * 255.0f; + sFreqAmplitudes[i3] = sFreqAmplitudes[i3] * 0.75f + 0.25f * sNewFreqAmplitudes[i3]; + sFreqAnalyzerBars[i3] = sFreqAmplitudes[i3] * 255.0f; } - return D_8014A958; + return sFreqAnalyzerBars; } void Audio_StartPlayerNoise(u8 playerId) { @@ -2479,7 +2481,7 @@ void Audio_StartPlayerNoise(u8 playerId) { } } -void func_8001CA24(u8 playerId) { +void Audio_StopPlayerNoise(u8 playerId) { u32 sfxId = 0x00000000; switch (sPlayerNoise[playerId].form) { @@ -2505,56 +2507,56 @@ void func_8001CA24(u8 playerId) { } } -void func_8001CB80(u8 playerId, u8 arg1) { - D_8014BA28[playerId] = sAudioFrameCounter; - switch (arg1) { +void Audio_InitBombSfx(u8 playerId, u8 type) { + sBombStartFrame[playerId] = sAudioFrameCounter; + switch (type) { case 1: - D_8014BA10[playerId] = 1.0f; - D_8014BA20[playerId] = 1; + sBombFreqMod[playerId] = 1.0f; + sBombType[playerId] = 1; break; case 2: - D_8014BA10[playerId] = 1.5f; - D_8014BA20[playerId] = 2; + sBombFreqMod[playerId] = 1.5f; + sBombType[playerId] = 2; break; default: case 0: - D_8014BA10[playerId] = 0.75f; - D_8014BA20[playerId] = 0; + sBombFreqMod[playerId] = 0.75f; + sBombType[playerId] = 0; break; } - if (D_8014BA24[playerId] != 1) { - Audio_PlaySfx(0x01008008, gPlayer[playerId].sfx.srcPos, playerId, &D_8014BA10[playerId], &gDefaultMod, + if (sBombState[playerId] != 1) { + Audio_PlaySfx(0x01008008, gPlayer[playerId].sfx.srcPos, playerId, &sBombFreqMod[playerId], &gDefaultMod, &sPlayerNoise[playerId].reverbAdd); - D_8014BA24[playerId] = 1; + sBombState[playerId] = 1; } } -void func_8001CCDC(u8 playerId, f32* sfxSource) { - if (D_8014BA24[playerId] != 0) { - switch (D_8014BA20[playerId]) { +void Audio_PlayBombFlightSfx(u8 playerId, f32* sfxSource) { + if (sBombState[playerId] != 0) { + switch (sBombType[playerId]) { case 1: - D_8014BA10[playerId] = 1.2f; + sBombFreqMod[playerId] = 1.2f; break; case 2: - D_8014BA10[playerId] = 1.5f; + sBombFreqMod[playerId] = 1.5f; break; default: case 0: - D_8014BA10[playerId] = 1.0f; + sBombFreqMod[playerId] = 1.0f; break; } Audio_KillSfxBySourceAndId(gPlayer[playerId].sfx.srcPos, 0x01008008); - Audio_PlaySfx(0x09001001, sfxSource, playerId, &D_8014BA10[playerId], &gDefaultMod, + Audio_PlaySfx(0x09001001, sfxSource, playerId, &sBombFreqMod[playerId], &gDefaultMod, &sPlayerNoise[playerId].reverbAdd); - D_8014BA24[playerId] = 2; + sBombState[playerId] = 2; } } -void func_8001CE28(u8 playerId, f32* sfxSource) { +void Audio_PlayBombExplodeSfx(u8 playerId, f32* sfxSource) { u32 sfxId; - if (D_8014BA24[playerId] != 0) { - switch (D_8014BA20[playerId]) { + if (sBombState[playerId] != 0) { + switch (sBombType[playerId]) { case 1: sfxId = 0x0903A00A; break; @@ -2568,35 +2570,35 @@ void func_8001CE28(u8 playerId, f32* sfxSource) { } Audio_KillSfxByTokenAndId(playerId, 0x09001001); AUDIO_PLAY_SFX(sfxId, sfxSource, playerId); - D_8014BA24[playerId] = 0; + sBombState[playerId] = 0; } } -void func_8001CEFC(f32* sfxSource) { +void Audio_StartEngineNoise(f32* sfxSource) { u32 sfxId = (gPlayer[0].sfx.levelType == LEVELTYPE_SPACE) ? 0x31000040 : 0x3100000C; AUDIO_PLAY_SFX(sfxId, sfxSource, 0); } -void func_8001CF60(f32* sfxSource) { +void Audio_StopEngineNoise(f32* sfxSource) { u32 sfxId = (gPlayer[0].sfx.levelType == LEVELTYPE_SPACE) ? 0x31000040 : 0x3100000C; Audio_KillSfxBySourceAndId(sfxSource, sfxId); } -void func_8001CFA8(f32 arg0) { - f32 var_fv0 = ABS(arg0); +void Audio_SetSfxSpeedModulation(f32 vel) { + f32 speed = ABS(vel); - if (var_fv0 < 6.0f) { - var_fv0 = 6.0f; - } else if (var_fv0 > 30.0f) { - var_fv0 = 30.0f; + if (speed < 6.0f) { + speed = 6.0f; + } else if (speed > 30.0f) { + speed = 30.0f; } - sSfxFreqMod = ((var_fv0 - 18.0f) / 24.0f) + 1.0f; + sSfxFreqMod = ((speed - 18.0f) / 24.0f) + 1.0f; } -void func_8001D034(f32* sfxSource, u32 sfxId, u8 semitones) { +void Audio_SetTransposeAndPlaySfx(f32* sfxSource, u32 sfxId, u8 semitones) { f32 semitoneMods[] = { 1.0f, 1.059f, 1.122f, 1.189f, 1.26f, 1.335f, 1.414f, 1.498f, 1.587f, 1.682f, 1.782f, 1.888f, 2.0f, }; @@ -2604,64 +2606,69 @@ void func_8001D034(f32* sfxSource, u32 sfxId, u8 semitones) { if (semitones > 12) { semitones = 12; } - func_8001D0B4(sfxSource, sfxId, semitoneMods[semitones]); + Audio_SetModulationAndPlaySfx(sfxSource, sfxId, semitoneMods[semitones]); } -void func_8001D0B4(f32* sfxSource, u32 sfxId, f32 freqMod) { +void Audio_SetModulationAndPlaySfx(f32* sfxSource, u32 sfxId, f32 freqMod) { sSfxFreqMod = freqMod; Audio_PlaySfx(sfxId, sfxSource, 0, &sSfxFreqMod, &gDefaultMod, &gDefaultReverb); } -void func_8001D10C(f32* sfxSource, u32 sfxId) { +void Audio_PlaySfxModulated(f32* sfxSource, u32 sfxId) { Audio_PlaySfx(sfxId, sfxSource, 0, &sSfxFreqMod, &sSfxVolMod, &gDefaultReverb); } -void func_8001D15C(u8 arg0) { - if (arg0 < 12) { - sSfxFreqMod = (arg0 / 11.0f) + 0.5f; +void Audio_SetSfxMapModulation(u8 fMod) { + if (fMod < 12) { + sSfxFreqMod = (fMod / 11.0f) + 0.5f; } else { sSfxFreqMod = 1.5f; } } -void func_8001D1C8(u8 arg0, u8 arg1) { - u8 temp1; - u8 temp2; +void Audio_SetHeatAlarmParams(u8 shields, u8 heightParam) { + // height param is (s32) height / 100 - 1, clamped to [0, 5] + u8 alarmVolume; + u8 heightVolume; - AUDIOCMD_CHANNEL_SET_IO(SEQ_PLAYER_SFX, 9, 2, 8 + (arg0 >> 2)); - AUDIOCMD_CHANNEL_SET_IO(SEQ_PLAYER_SFX, 10, 2, 8 + (arg0 >> 2)); - AUDIOCMD_CHANNEL_SET_IO(SEQ_PLAYER_SFX, 11, 2, 8 + (arg0 >> 2)); - AUDIOCMD_CHANNEL_SET_IO(SEQ_PLAYER_SFX, 9, 1, 19 - (arg1 * 3)); - AUDIOCMD_CHANNEL_SET_IO(SEQ_PLAYER_SFX, 10, 1, 19 - (arg1 * 3)); - AUDIOCMD_CHANNEL_SET_IO(SEQ_PLAYER_SFX, 11, 1, 19 - (arg1 * 3)); - temp1 = 68 - (arg0 >> 3); - temp2 = 80 - (arg1 * 10); - if (temp1 < temp2) { - temp1 = temp2; + // modifies tempo + AUDIOCMD_CHANNEL_SET_IO(SEQ_PLAYER_SFX, 9, 2, 8 + (shields >> 2)); + AUDIOCMD_CHANNEL_SET_IO(SEQ_PLAYER_SFX, 10, 2, 8 + (shields >> 2)); + AUDIOCMD_CHANNEL_SET_IO(SEQ_PLAYER_SFX, 11, 2, 8 + (shields >> 2)); + + // modifies frequency + AUDIOCMD_CHANNEL_SET_IO(SEQ_PLAYER_SFX, 9, 1, 19 - (heightParam * 3)); + AUDIOCMD_CHANNEL_SET_IO(SEQ_PLAYER_SFX, 10, 1, 19 - (heightParam * 3)); + AUDIOCMD_CHANNEL_SET_IO(SEQ_PLAYER_SFX, 11, 1, 19 - (heightParam * 3)); + + alarmVolume = 68 - (shields >> 3); + heightVolume = 80 - (heightParam * 10); + if (heightVolume > alarmVolume) { + alarmVolume = heightVolume; } - AUDIOCMD_CHANNEL_SET_IO(SEQ_PLAYER_SFX, 9, 3, temp1); - AUDIOCMD_CHANNEL_SET_IO(SEQ_PLAYER_SFX, 10, 3, temp1); - AUDIOCMD_CHANNEL_SET_IO(SEQ_PLAYER_SFX, 11, 3, temp1); + AUDIOCMD_CHANNEL_SET_IO(SEQ_PLAYER_SFX, 9, 3, alarmVolume); + AUDIOCMD_CHANNEL_SET_IO(SEQ_PLAYER_SFX, 10, 3, alarmVolume); + AUDIOCMD_CHANNEL_SET_IO(SEQ_PLAYER_SFX, 11, 3, alarmVolume); } -void Audio_PlayEventSfx(f32* sfxSource, u16 arg1) { - if ((D_800C5E88[arg1] & 0xF0000000) != 0x40000000) { - AUDIO_PLAY_SFX(D_800C5E88[arg1], sfxSource, 0); +void Audio_PlayEventSfx(f32* sfxSource, u16 eventSfxId) { + if ((sEventSfx[eventSfxId] & 0xF0000000) != 0x40000000) { + AUDIO_PLAY_SFX(sEventSfx[eventSfxId], sfxSource, 0); } else { - AUDIO_PLAY_SFX(D_800C5E88[arg1], gDefaultSfxSource, 0); + AUDIO_PLAY_SFX(sEventSfx[eventSfxId], gDefaultSfxSource, 0); } } -void Audio_StopEventSfx(f32* sfxSource, u16 arg1) { - if ((D_800C5E88[arg1] & 0xF0000000) != 0x40000000) { - Audio_KillSfxBySourceAndId(sfxSource, D_800C5E88[arg1]); +void Audio_StopEventSfx(f32* sfxSource, u16 eventSfxId) { + if ((sEventSfx[eventSfxId] & 0xF0000000) != 0x40000000) { + Audio_KillSfxBySourceAndId(sfxSource, sEventSfx[eventSfxId]); } else { - Audio_KillSfxBySourceAndId(gDefaultSfxSource, D_800C5E88[arg1]); + Audio_KillSfxBySourceAndId(gDefaultSfxSource, sEventSfx[eventSfxId]); } } -void Audio_SetBaseSfxReverb(s8 reverb) { - sBaseReverb = reverb; +void Audio_SetEnvSfxReverb(s8 reverb) { + sEnvReverb = reverb; } void Audio_SetBgmParam(s8 bgmParam) { @@ -2681,16 +2688,16 @@ void Audio_PlayFanfare(u16 seqId, u8 bgmVolume, u8 bgmFadeoutTime, u8 bgmFadeinT } } -void func_8001D520(void) { +void Audio_PlayDeathSequence(void) { u8 i; - if (sNewAudioSpecId == AUDIOSPEC_24) { + if (sAudioSpecId == AUDIOSPEC_24) { Audio_ClearVoice(); - func_8001D6DC(0); + Audio_PlayMapMenuSfx(0); AUDIO_PLAY_SFX(0x0903F004, gDefaultSfxSource, 4); SEQCMD_SET_SEQPLAYER_VOLUME(SEQ_PLAYER_BGM, 5, 30); SEQCMD_SETUP_RESTORE_SEQPLAYER_VOLUME(SEQ_PLAYER_FANFARE, SEQ_PLAYER_BGM, 30); - SEQCMD_PLAY_SEQUENCE(SEQ_PLAYER_FANFARE, 0, 0, 39); + SEQCMD_PLAY_SEQUENCE(SEQ_PLAYER_FANFARE, 0, 0, SEQ_ID_DEATH); } else { for (i = 0; i < 5; i++) { Audio_KillSfxByBank(i); @@ -2699,12 +2706,12 @@ void func_8001D520(void) { AUDIO_PLAY_SFX(0x0903F004, gDefaultSfxSource, 4); SEQCMD_STOP_SEQUENCE(SEQ_PLAYER_BGM, 0); SEQCMD_STOP_SEQUENCE(SEQ_PLAYER_FANFARE, 0); - SEQCMD_PLAY_SEQUENCE(SEQ_PLAYER_BGM, 0, 0, 39); + SEQCMD_PLAY_SEQUENCE(SEQ_PLAYER_BGM, 0, 0, SEQ_ID_DEATH); } } -void func_8001D638(u8 arg0) { - if (arg0) { +void Audio_PlayPauseSfx(u8 active) { + if (active) { AUDIO_PLAY_SFX(0x4900F000, gDefaultSfxSource, 4); AUDIOCMD_GLOBAL_MUTE(); } else { @@ -2713,8 +2720,8 @@ void func_8001D638(u8 arg0) { } } -void func_8001D6DC(u8 arg0) { - if (arg0) { +void Audio_PlayMapMenuSfx(u8 active) { + if (active) { AUDIO_PLAY_SFX(0x49000019, gDefaultSfxSource, 4); AUDIOCMD_GLOBAL_MUTE(); } else { @@ -2723,7 +2730,7 @@ void func_8001D6DC(u8 arg0) { } } -void func_8001D780(u8 audioType) { +void Audio_RestoreVolumeSettings(u8 audioType) { s8 volume = ((sVolumeSettings[audioType] * 127) / 99) % 128U; u8 i; @@ -2748,7 +2755,7 @@ void Audio_SetVolume(u8 audioType, u8 volume) { volume = 99; } sVolumeSettings[audioType] = volume; - func_8001D780(audioType); + Audio_RestoreVolumeSettings(audioType); } void Audio_PlaySoundTest(u8 enable) { @@ -2834,40 +2841,40 @@ void Audio_InitSounds(void) { Audio_StartSequence(SEQ_PLAYER_SFX, SEQ_ID_SFX, 0xFF, 10); } -void func_8001DD40(void) { +void Audio_RestartSeqPlayers(void) { s32 pad1; s32 pad2; - u16 sp1E = 1; + u16 fadeIn = 1; Audio_StartSequence(SEQ_PLAYER_VOICE, SEQ_ID_VOICE, 0xFF, 1); - if (sNewAudioSpecId == AUDIOSPEC_12) { - sp1E = 360; - } else if (sNewAudioSpecId < AUDIOSPEC_23) { - sp1E = 90; + if (sAudioSpecId == AUDIOSPEC_12) { + fadeIn = 360; + } else if (sAudioSpecId < AUDIOSPEC_23) { + fadeIn = 90; } - Audio_StartSequence(SEQ_PLAYER_SFX, SEQ_ID_SFX, 0xFF, sp1E); - func_80017494(); - func_80017550(); + Audio_StartSequence(SEQ_PLAYER_SFX, SEQ_ID_SFX, 0xFF, fadeIn); + Audio_LoadInstruments(); + Audio_LoadAquasSequence(); SEQCMD_SET_SEQPLAYER_VOLUME(SEQ_PLAYER_SFX, 0, 127); SEQCMD_SET_SEQPLAYER_VOLUME(SEQ_PLAYER_VOICE, 0, 127); AudioThread_ScheduleProcessCmds(); AUDIOCMD_GLOBAL_STOP_AUDIOCMDS(); AUDIOCMD_GLOBAL_STOP_AUDIOCMDS(); AUDIOCMD_GLOBAL_STOP_AUDIOCMDS(); - func_8001D780(0); - func_8001D780(2); - func_8001D780(1); + Audio_RestoreVolumeSettings(0); + Audio_RestoreVolumeSettings(2); + Audio_RestoreVolumeSettings(1); } -void func_8001DE1C(u8 oldSpecId) { +void Audio_StartReset(u8 oldSpecId) { if (oldSpecId == AUDIOSPEC_16) { - if ((sNewAudioSpecId == AUDIOSPEC_22) || (sNewAudioSpecId == AUDIOSPEC_23)) { - D_800C5D58 = 2; + if ((sAudioSpecId == AUDIOSPEC_22) || (sAudioSpecId == AUDIOSPEC_23)) { + sAudioResetStatus = AUDIORESET_BLOCK; } - } else if ((oldSpecId == AUDIOSPEC_28) && (sNewAudioSpecId == AUDIOSPEC_23)) { - D_800C5D58 = 2; + } else if ((oldSpecId == AUDIOSPEC_28) && (sAudioSpecId == AUDIOSPEC_23)) { + sAudioResetStatus = AUDIORESET_BLOCK; } else { - D_800C5D58 = 1; + sAudioResetStatus = AUDIORESET_WAIT; } AUDIOCMD_GLOBAL_UNMUTE(true); Audio_ResetVoicesAndPlayers(); @@ -2877,13 +2884,13 @@ void func_8001DE1C(u8 oldSpecId) { } void Audio_Update(void) { - if (func_80018FA4() == 0) { + if (Audio_HandleReset() == AUDIORESET_READY) { Audio_ProcessSfxRequests(); Audio_ProcessSeqCmds(); Audio_PlayAllSfx(); Audio_UpdatePlayerNoise(); Audio_UpdateVoice(); - func_8001AF50(); + Audio_UpdateUnkVoiceParam(); Audio_UpdateActiveSequences(); Audio_UpdateDelayedSeqCmds(); AudioThread_ScheduleProcessCmds(); diff --git a/src/audio/audio_load.c b/src/audio/audio_load.c index a86837e6..7cf8671e 100644 --- a/src/audio/audio_load.c +++ b/src/audio/audio_load.c @@ -291,7 +291,7 @@ s32 AudioLoad_SyncLoadInstrument(s32 fontId, s32 instId, s32 drumId) { void AudioLoad_AsyncLoadSampleBank(s32 sampleBankId, s32 nChunks, s32 retData, OSMesgQueue* retQueue) { if (AudioLoad_AsyncLoadInner(2, AudioLoad_GetLoadTableIndex(2, sampleBankId), nChunks, retData, retQueue) == NULL) { - osSendMesg(retQueue, NULL, 0); + osSendMesg(retQueue, NULL, OS_MESG_NOBLOCK); } } @@ -642,14 +642,14 @@ void AudioLoad_SyncDma(u32 devAddr, u8* ramAddr, u32 size, s32 medium) { break; } AudioLoad_Dma(&gSyncDmaIoMsg, 1, 0, devAddr, ramAddr, 0x400, &gSyncDmaQueue, medium, D_800C50E8); - osRecvMesg(&gSyncDmaQueue, NULL, 1); + MQ_WAIT_FOR_MESG(&gSyncDmaQueue, NULL); size -= 0x400; devAddr += 0x400; ramAddr += 0x400; } if (size != 0) { AudioLoad_Dma(&gSyncDmaIoMsg, 1, 0, devAddr, ramAddr, size, &gSyncDmaQueue, medium, D_800C50F4); - osRecvMesg(&gSyncDmaQueue, NULL, 1); + MQ_WAIT_FOR_MESG(&gSyncDmaQueue, NULL); } } @@ -737,7 +737,7 @@ void* AudioLoad_AsyncLoadInner(s32 tableType, s32 id, s32 nChunks, s32 retData, ramAddr = AudioLoad_SearchCaches(tableType, id); if (ramAddr != NULL) { loadStatus = 2; - osSendMesg(retQueue, (void*) (retData << 0x18), 0); + osSendMesg(retQueue, (void*) (retData << 0x18), OS_MESG_NOBLOCK); } else { table = AudioLoad_GetLoadTable(tableType); size = table->entries[id].size; @@ -990,7 +990,7 @@ void AudioLoad_ProcessSlowLoads(s32 resetStatus) { slowLoad = &gSlowLoads.slowLoad[i]; switch (slowLoad->state) { case 2: - osRecvMesg(&slowLoad->msgQueue, NULL, 1); + MQ_WAIT_FOR_MESG(&slowLoad->mesgQueue, NULL); if (resetStatus != 0) { slowLoad->state = 3; break; @@ -1035,8 +1035,8 @@ static char devstr47[] = "Other Type: Not Write ID.\n"; void AudioLoad_DmaSlowCopy(AudioSlowLoad* slowLoad, s32 size) { osInvalDCache(slowLoad->curRamAddr, size); - osCreateMesgQueue(&slowLoad->msgQueue, &slowLoad->msg, 1); - AudioLoad_Dma(&slowLoad->ioMesg, 0, 0, slowLoad->curDevAddr, slowLoad->curRamAddr, size, &slowLoad->msgQueue, + osCreateMesgQueue(&slowLoad->mesgQueue, &slowLoad->msg, 1); + AudioLoad_Dma(&slowLoad->ioMesg, 0, 0, slowLoad->curDevAddr, slowLoad->curRamAddr, size, &slowLoad->mesgQueue, slowLoad->medium, D_800C52F4); } @@ -1081,7 +1081,7 @@ AudioAsyncLoad* AudioLoad_StartAsyncLoad(u32 devAddr, u8* ramAddr, u32 size, s32 asyncLoad->medium = medium; asyncLoad->retMsg = retMesg; - osCreateMesgQueue(&asyncLoad->msgQueue, &asyncLoad->msg, 1); + osCreateMesgQueue(&asyncLoad->mesgQueue, &asyncLoad->msg, 1); return asyncLoad; } @@ -1114,11 +1114,11 @@ void AudioLoad_ProcessAsyncLoad(AudioAsyncLoad* asyncLoad, s32 resetStatus) { asyncLoad->delay = 0; } else { if (resetStatus != 0) { - osRecvMesg(&asyncLoad->msgQueue, NULL, 1); + MQ_WAIT_FOR_MESG(&asyncLoad->mesgQueue, NULL); asyncLoad->status = 0; return; } - if (osRecvMesg(&asyncLoad->msgQueue, NULL, 0) == -1) { + if (!MQ_GET_MESG(&asyncLoad->mesgQueue, NULL)) { return; } } @@ -1160,7 +1160,7 @@ void AudioLoad_ProcessAsyncLoad(AudioAsyncLoad* asyncLoad, s32 resetStatus) { break; } asyncLoad->status = 0; - osSendMesg(asyncLoad->retQueue, asyncLoad->retMsg, 0); + osSendMesg(asyncLoad->retQueue, asyncLoad->retMsg, OS_MESG_NOBLOCK); } else { if (asyncLoad->bytesRemaining < asyncLoad->chunkSize) { if (asyncLoad->medium == MEDIUM_UNK) { @@ -1190,9 +1190,9 @@ static char D_800C53AC[] = "BGCOPY"; void AudioLoad_AsyncDma(AudioAsyncLoad* asyncLoad, u32 size) { size = ALIGN16(size); osInvalDCache(asyncLoad->curRamAddr, size); - osCreateMesgQueue(&asyncLoad->msgQueue, &asyncLoad->msg, 1); + osCreateMesgQueue(&asyncLoad->mesgQueue, &asyncLoad->msg, 1); if (size) {} - AudioLoad_Dma(&asyncLoad->ioMesg, 0, 0, asyncLoad->curDevAddr, asyncLoad->curRamAddr, size, &asyncLoad->msgQueue, + AudioLoad_Dma(&asyncLoad->ioMesg, 0, 0, asyncLoad->curDevAddr, asyncLoad->curRamAddr, size, &asyncLoad->mesgQueue, asyncLoad->medium, D_800C53AC); } @@ -1353,11 +1353,11 @@ s32 AudioLoad_ProcessSamplePreloads(s32 resetStatus) { if (gPreloadSampleStackTop > 0) { if (resetStatus != 0) { - if (osRecvMesg(&gPreloadSampleQueue, (OSMesg) &preloadIndex, 0)) {} + if (!MQ_GET_MESG(&gPreloadSampleQueue, &preloadIndex)) {} gPreloadSampleStackTop = 0; return false; } - if (osRecvMesg(&gPreloadSampleQueue, (OSMesg) &preloadIndex, 0) == -1) { + if (!MQ_GET_MESG(&gPreloadSampleQueue, &preloadIndex)) { return false; } // "Receive %d\n" diff --git a/src/audio/audio_playback.c b/src/audio/audio_playback.c index dc533ce1..21639354 100644 --- a/src/audio/audio_playback.c +++ b/src/audio/audio_playback.c @@ -165,44 +165,44 @@ TunedSample* func_80011D10(Instrument* instrument, s32 arg1) { return sample; } -Instrument* Audio_GetInstrument(s32 arg0, s32 arg1) { - Instrument* temp_v1; +Instrument* Audio_GetInstrument(s32 fontId, s32 instId) { + Instrument* instrument; - if ((gFontLoadStatus[arg0] < 2) != 0) { - D_80155D88 = arg0 + 0x10000000; + if ((gFontLoadStatus[fontId] < 2) != 0) { + D_80155D88 = fontId + 0x10000000; return NULL; } - if (arg1 >= gSoundFontList[arg0].numInstruments) { - D_80155D88 = (arg0 << 8) + arg1 + 0x03000000; + if (instId >= gSoundFontList[fontId].numInstruments) { + D_80155D88 = (fontId << 8) + instId + 0x03000000; return NULL; } - temp_v1 = gSoundFontList[arg0].instruments[arg1]; - if (temp_v1 == NULL) { - D_80155D88 = (arg0 << 8) + arg1 + 0x01000000; - return temp_v1; + instrument = gSoundFontList[fontId].instruments[instId]; + if (instrument == NULL) { + D_80155D88 = (fontId << 8) + instId + 0x01000000; + return instrument; } - return temp_v1; + return instrument; } -Drum* Audio_GetDrum(s32 arg0, s32 arg1) { - Drum* temp; +Drum* Audio_GetDrum(s32 fontId, s32 drumId) { + Drum* drum; - if ((gFontLoadStatus[arg0] < 2) != 0) { - D_80155D88 = arg0 + 0x10000000; + if ((gFontLoadStatus[fontId] < 2) != 0) { + D_80155D88 = fontId + 0x10000000; return NULL; } - if (arg1 >= gSoundFontList[arg0].numDrums) { - D_80155D88 = (arg0 << 8) + arg1 + 0x04000000; + if (drumId >= gSoundFontList[fontId].numDrums) { + D_80155D88 = (fontId << 8) + drumId + 0x04000000; return NULL; } - if ((u32) gSoundFontList[arg0].drums < AUDIO_RELOCATED_ADDRESS_START) { + if ((u32) gSoundFontList[fontId].drums < AUDIO_RELOCATED_ADDRESS_START) { return NULL; } - temp = gSoundFontList[arg0].drums[arg1]; - if (gSoundFontList[arg0].drums[arg1] == NULL) { - D_80155D88 = (arg0 << 8) + arg1 + 0x05000000; + drum = gSoundFontList[fontId].drums[drumId]; + if (gSoundFontList[fontId].drums[drumId] == NULL) { + D_80155D88 = (fontId << 8) + drumId + 0x05000000; } - return temp; + return drum; } void func_80011EB8(Note* note) { @@ -428,35 +428,35 @@ void func_8001268C(SequenceLayer* layer) { func_80012438(layer, 7); } -s32 func_800126AC(Note* note, SequenceLayer* layer, s32 arg2) { - f32 var_fv0; - u8 var_v1 = 0; +s32 func_800126AC(Note* note, SequenceLayer* layer, s32 waveId) { + f32 freqMod; + u8 harmonicIndex = 0; - if (arg2 < 128) { - arg2 = 128; + if (waveId < 128) { + waveId = 128; } - var_fv0 = layer->freqMod; + freqMod = layer->freqMod; if ((layer->portamento.mode != 0) && (layer->portamento.extent > 0.0f)) { - var_fv0 *= layer->portamento.extent + 1.0f; + freqMod *= layer->portamento.extent + 1.0f; } - if (var_fv0 < 1.0f) { - var_fv0 = 1.0465f; - } else if (var_fv0 < 2.0f) { - var_v1 = 1; - var_fv0 = 0.52325f; - } else if (var_fv0 < 4.0f) { - var_v1 = 2; - var_fv0 = 0.26263f; + if (freqMod < 1.0f) { + freqMod = 1.0465f; + } else if (freqMod < 2.0f) { + harmonicIndex = 1; + freqMod = 0.52325f; + } else if (freqMod < 4.0f) { + harmonicIndex = 2; + freqMod = 0.26263f; } else { - var_v1 = 3; - var_fv0 = 0.13081f; + harmonicIndex = 3; + freqMod = 0.13081f; } - layer->freqMod *= var_fv0; - note->playbackState.waveId = arg2; - note->playbackState.harmonicIndex = var_v1; - note->noteSubEu.waveSampleAddr = &gWaveSamples[arg2 - 128][var_v1 * 64]; - return var_v1; + layer->freqMod *= freqMod; + note->playbackState.waveId = waveId; + note->playbackState.harmonicIndex = harmonicIndex; + note->noteSubEu.waveSampleAddr = &gWaveSamples[waveId - 128][harmonicIndex * 64]; + return harmonicIndex; } void func_800127B0(Note* note, SequenceLayer* layer) { @@ -601,7 +601,7 @@ void func_80012C40(Note* note) { } } -Note* func_80012C6C(AudioListItem* item, s32 arg1) { +Note* func_80012C6C(AudioListItem* item, s32 priority) { AudioListItem* var_v0; AudioListItem* var_v1; void* temp_a0; @@ -620,7 +620,7 @@ Note* func_80012C6C(AudioListItem* item, s32 arg1) { return NULL; } - if (((Note*) var_v1->u.value)->playbackState.priority >= arg1) { + if (((Note*) var_v1->u.value)->playbackState.priority >= priority) { return NULL; } return (Note*) var_v1->u.value; diff --git a/src/audio/audio_seqplayer.c b/src/audio/audio_seqplayer.c index badce99d..c936fbe9 100644 --- a/src/audio/audio_seqplayer.c +++ b/src/audio/audio_seqplayer.c @@ -349,25 +349,25 @@ void func_80014748(SequenceLayer* layer) { break; } switch (cmd) { /* switch 5; irregular */ - case 0xFF: /* switch 5 */ + case 0xFF: if (state->depth == 0) { func_800140D0(layer); return; } state->pc = state->stack[--state->depth]; break; - case 0xFC: /* switch 5 */ + case 0xFC: sp44 = func_800146D4(state); state->stack[state->depth] = state->pc; state->depth++; state->pc = &seqPlayer->seqData[sp44]; break; - case 0xF8: /* switch 5 */ + case 0xF8: state->remLoopIters[state->depth] = func_800146C0(state); state->stack[state->depth] = state->pc; state->depth++; break; - case 0xF7: /* switch 5 */ + case 0xF7: state->remLoopIters[state->depth - 1]--; if (state->remLoopIters[state->depth - 1] != 0) { state->pc = state->stack[state->depth - 1]; @@ -375,15 +375,15 @@ void func_80014748(SequenceLayer* layer) { state->depth--; } break; - case 0xFB: /* switch 5 */ + case 0xFB: sp44 = func_800146D4(state); state->pc = &seqPlayer->seqData[sp44]; break; - case 0xF4: /* switch 5 */ + case 0xF4: state->pc += (s8) func_800146C0(state); break; - case 0xC1: /* switch 5 */ - case 0xCA: /* switch 5 */ + case 0xC1: + case 0xCA: var_s2 = *state->pc++; if (cmd == 0xC1) { layer->velocitySquare = (f32) (var_s2 * var_s2) / 16129.0f; @@ -391,8 +391,8 @@ void func_80014748(SequenceLayer* layer) { layer->pan = var_s2; } break; - case 0xC2: /* switch 5 */ - case 0xC9: /* switch 5 */ + case 0xC2: + case 0xC9: var_s2 = *state->pc++; if (cmd == 0xC9) { layer->gateTime = var_s2; @@ -400,8 +400,8 @@ void func_80014748(SequenceLayer* layer) { layer->transposition = var_s2; } break; - case 0xC4: /* switch 5 */ - case 0xC5: /* switch 5 */ + case 0xC4: + case 0xC5: if (cmd == 0xC4) { layer->continuousNotes = 1; } else { @@ -409,11 +409,11 @@ void func_80014748(SequenceLayer* layer) { } func_8001266C(layer); break; - case 0xC3: /* switch 5 */ + case 0xC3: sp44 = func_80014704(state); layer->shortNoteDefaultDelay = sp44; break; - case 0xC6: /* switch 5 */ + case 0xC6: cmd = func_800146C0(state); if (cmd >= 127) { if (cmd == 127) { @@ -433,7 +433,7 @@ void func_80014748(SequenceLayer* layer) { } } break; - case 0xC7: /* switch 5 */ + case 0xC7: layer->portamento.mode = func_800146C0(state); cmd = func_800146C0(state) + channel->transposition + layer->transposition + seqPlayer->transposition; if (cmd > 127) { @@ -447,27 +447,27 @@ void func_80014748(SequenceLayer* layer) { layer->portamentoTime = sp44; } break; - case 0xC8: /* switch 5 */ + case 0xC8: layer->portamento.mode = 0; break; - case 0xCB: /* switch 5 */ + case 0xCB: sp44 = func_800146D4(state); layer->adsr.envelope = (EnvelopePoint*) &seqPlayer->seqData[sp44]; layer->adsr.decayIndex = func_800146C0(state); break; - case 0xCC: /* switch 5 */ + case 0xCC: layer->bit1 = 1; break; - case 0xCD: /* switch 5 */ + case 0xCD: layer->stereo.asByte = func_800146C0(state); break; - default: /* switch 5 */ + default: switch (cmd & 0xF0) { /* switch 6; irregular */ - case 0xD0: /* switch 6 */ + case 0xD0: sp44 = (u16) seqPlayer->shortNoteVelocityTable[cmd & 0xF]; layer->velocitySquare = (f32) (sp44 * sp44) / 16129.0f; break; - case 0xE0: /* switch 6 */ + case 0xE0: layer->gateTime = seqPlayer->shortNoteGateTimeTable[cmd & 0xF]; break; default: @@ -518,14 +518,14 @@ void func_80014748(SequenceLayer* layer) { cmd -= (cmd & 0xC0); } else { switch (cmd & 0xC0) { /* switch 4; irregular */ - case 0x0: /* switch 4 */ + case 0x0: sp44 = func_80014704(state); layer->lastDelay = sp44; break; - case 0x40: /* switch 4 */ + case 0x40: sp44 = layer->shortNoteDefaultDelay; break; - case 0x80: /* switch 4 */ + case 0x80: sp44 = layer->lastDelay; break; } @@ -587,19 +587,19 @@ void func_80014748(SequenceLayer* layer) { temp_fv1 = gPitchFrequencies[cmd] * tuning; temp_fa1 = gPitchFrequencies[layer->portamentoTargetNote] * tuning; portamento = &layer->portamento; - switch (portamento->mode & ~0x80) { /* switch 3 */ - case 1: /* switch 3 */ - case 3: /* switch 3 */ - case 5: /* switch 3 */ + switch (portamento->mode & ~0x80) { + case 1: + case 3: + case 5: var_v0_2 = temp_fv1; freqMod = temp_fa1; break; - case 2: /* switch 3 */ - case 4: /* switch 3 */ + case 2: + case 4: freqMod = temp_fv1; var_v0_2 = temp_fa1; break; - default: /* switch 3 */ + default: freqMod = temp_fv1; var_v0_2 = temp_fv1; break; @@ -741,7 +741,7 @@ void func_800153E8(SequenceChannel* channel) { case 0xD5: case 0xD6: break; - case 0xFF: /* switch 3 */ + case 0xFF: if (state->depth == 0) { func_8001415C(channel); goto end_loop; @@ -750,10 +750,10 @@ void func_800153E8(SequenceChannel* channel) { break; case 0xFE: goto end_loop; - case 0xFD: /* switch 3 */ + case 0xFD: channel->delay = func_80014704(state); goto end_loop; - case 0xEA: /* switch 3 */ + case 0xEA: channel->stopScript = 1; goto end_loop; case 0xFC: @@ -764,14 +764,14 @@ void func_800153E8(SequenceChannel* channel) { state->depth++; state->pc = &seqPlayer->seqData[sp52]; break; - case 0xF8: /* switch 3 */ + case 0xF8: // if (0 && state->depth >= 4) { // } state->remLoopIters[state->depth] = func_800146C0(state); state->stack[state->depth] = state->pc; state->depth++; break; - case 0xF7: /* switch 3 */ + case 0xF7: state->remLoopIters[state->depth - 1]--; if (state->remLoopIters[state->depth - 1] != 0) { state->pc = state->stack[state->depth - 1]; @@ -779,13 +779,13 @@ void func_800153E8(SequenceChannel* channel) { state->depth--; } break; - case 0xF6: /* switch 3 */ + case 0xF6: state->depth--; break; - case 0xF5: /* switch 3 */ - case 0xF9: /* switch 3 */ - case 0xFA: /* switch 3 */ - case 0xFB: /* switch 3 */ + case 0xF5: + case 0xF9: + case 0xFA: + case 0xFB: sp52 = func_800146D4(state); if (((cmd == 0xFA) && (sp4B != 0)) || ((cmd == 0xF9) && (sp4B >= 0)) || ((cmd == 0xF5) && (sp4B < 0))) { @@ -793,34 +793,34 @@ void func_800153E8(SequenceChannel* channel) { } state->pc = &seqPlayer->seqData[sp52]; break; - case 0xF2: /* switch 3 */ - case 0xF3: /* switch 3 */ - case 0xF4: /* switch 3 */ + case 0xF2: + case 0xF3: + case 0xF4: temps8 = func_800146C0(state); if (((cmd == 0xF3) && (sp4B != 0)) || ((cmd == 0xF2) && (sp4B >= 0))) { break; } state->pc = &state->pc[temps8]; break; - case 0xF1: /* switch 3 */ + case 0xF1: func_80012964(&channel->notePool); func_80012AC4(&channel->notePool, func_800146C0(state)); break; - case 0xF0: /* switch 3 */ + case 0xF0: func_80012964(&channel->notePool); break; - case 0xC2: /* switch 3 */ + case 0xC2: sp52 = func_800146D4(state); channel->dynTable = (u8(*)[2]) & seqPlayer->seqData[sp52]; break; - case 0xC5: /* switch 3 */ + case 0xC5: if (sp4B != -1) { seqData = channel->dynTable[sp4B]; sp52 = (seqData[0] << 8) + seqData[1]; channel->dynTable = (u8(*)[2]) & seqPlayer->seqData[sp52]; } break; - case 0xEB: /* switch 3 */ + case 0xEB: cmd = func_800146C0(state); sp52 = ((u16*) gSeqFontTable)[seqPlayer->seqId]; loBits = gSeqFontTable[sp52]; @@ -829,85 +829,85 @@ void func_800153E8(SequenceChannel* channel) { channel->fontId = cmd; } /* fallthrough */ - case 0xC1: /* switch 3 */ + case 0xC1: cmd = func_800146C0(state); func_80015330(channel, cmd); break; - case 0xC3: /* switch 3 */ + case 0xC3: channel->largeNotes = false; break; - case 0xC4: /* switch 3 */ + case 0xC4: channel->largeNotes = true; break; - case 0xDF: /* switch 3 */ + case 0xDF: cmd = func_800146C0(state); func_800153C4(channel, cmd); channel->changes.s.volume = 1; break; - case 0xE0: /* switch 3 */ + case 0xE0: channel->volumeMod = (s32) func_800146C0(state) * 0.0078125f; channel->changes.s.volume = 1; break; - case 0xDE: /* switch 3 */ + case 0xDE: sp52 = func_800146D4(state); channel->freqMod = (s32) sp52 / 32768.0f; channel->changes.s.freqMod = 1; break; - case 0xD3: /* switch 3 */ + case 0xD3: cmd = func_800146C0(state) + 0x80; channel->freqMod = gBendPitchOneOctaveFrequencies[cmd]; channel->changes.s.freqMod = 1; break; - case 0xEE: /* switch 3 */ + case 0xEE: cmd = func_800146C0(state) + 0x80; channel->freqMod = gBendPitchTwoSemitonesFrequencies[cmd]; channel->changes.s.freqMod = 1; break; - case 0xDD: /* switch 3 */ + case 0xDD: channel->newPan = func_800146C0(state); channel->changes.s.pan = 1; break; - case 0xDC: /* switch 3 */ + case 0xDC: channel->panChannelWeight = func_800146C0(state); channel->changes.s.pan = 1; break; - case 0xDB: /* switch 3 */ + case 0xDB: temps8 = *(state->pc++); channel->transposition = temps8; break; - case 0xDA: /* switch 3 */ + case 0xDA: sp52 = func_800146D4(state); channel->adsr.envelope = (EnvelopePoint*) &seqPlayer->seqData[sp52]; break; - case 0xD9: /* switch 3 */ + case 0xD9: channel->adsr.decayIndex = func_800146C0(state); break; - case 0xD8: /* switch 3 */ + case 0xD8: channel->vibratoDepthTarget = func_800146C0(state) * 8; channel->vibratoDepthStart = 0; channel->vibratoDepthChangeDelay = 0; break; - case 0xD7: /* switch 3 */ + case 0xD7: channel->vibratoRateStart = channel->vibratoRateTarget = func_800146C0(state) * 32; channel->vibratoRateChangeDelay = 0; break; - case 0xE2: /* switch 3 */ + case 0xE2: channel->vibratoDepthStart = func_800146C0(state) * 8; channel->vibratoDepthTarget = func_800146C0(state) * 8; channel->vibratoDepthChangeDelay = func_800146C0(state) * 0x10; break; - case 0xE1: /* switch 3 */ + case 0xE1: channel->vibratoRateStart = func_800146C0(state) * 32; channel->vibratoRateTarget = func_800146C0(state) * 32; channel->vibratoRateChangeDelay = func_800146C0(state) * 0x10; break; - case 0xE3: /* switch 3 */ + case 0xE3: channel->vibratoDelay = func_800146C0(state) * 0x10; break; - case 0xD4: /* switch 3 */ + case 0xD4: channel->targetReverbVol = func_800146C0(state); break; - case 0xC6: /* switch 3 */ + case 0xC6: cmd = func_800146C0(state); sp52 = ((u16*) gSeqFontTable)[seqPlayer->seqId]; loBits = gSeqFontTable[sp52]; @@ -916,15 +916,15 @@ void func_800153E8(SequenceChannel* channel) { channel->fontId = cmd; } break; - case 0xC7: /* switch 3 */ + case 0xC7: cmd = func_800146C0(state); sp52 = func_800146D4(state); seqData = &seqPlayer->seqData[sp52]; *seqData = (u8) sp4B + cmd; break; - case 0xC8: /* switch 3 */ - case 0xC9: /* switch 3 */ - case 0xCC: /* switch 3 */ + case 0xC8: + case 0xC9: + case 0xCC: temps8 = func_800146C0(state); if (cmd == 0xC8) { sp4B -= temps8; @@ -934,40 +934,40 @@ void func_800153E8(SequenceChannel* channel) { sp4B &= temps8; } break; - case 0xCD: /* switch 3 */ + case 0xCD: func_8001415C(seqPlayer->channels[func_800146C0(state)]); break; - case 0xCA: /* switch 3 */ + case 0xCA: channel->muteBehavior = func_800146C0(state); break; - case 0xCB: /* switch 3 */ + case 0xCB: sp52 = func_800146D4(state); pad = sp52 + sp4B; // seqData =&seqPlayer->seqData[sp4B]; sp4B = seqPlayer->seqData[pad]; break; - case 0xCE: /* switch 3 */ + case 0xCE: channel->unkC4 = func_800146D4(state); break; - case 0xCF: /* switch 3 */ + case 0xCF: sp52 = func_800146D4(state); seqData = &seqPlayer->seqData[sp52]; seqData[0] = (channel->unkC4 >> 8) & 0xFF; seqData[1] = channel->unkC4 & 0xFF; break; - case 0xD0: /* switch 3 */ + case 0xD0: channel->stereoHeadsetEffects = func_800146C0(state); break; - case 0xD1: /* switch 3 */ + case 0xD1: channel->noteAllocPolicy = func_800146C0(state); break; - case 0xD2: /* switch 3 */ + case 0xD2: channel->adsr.sustain = func_800146C0(state); break; - case 0xE5: /* switch 3 */ + case 0xE5: channel->someOtherPriority = func_800146C0(state); break; - case 0xE4: /* switch 3 */ + case 0xE4: if (sp4B != -1) { if (state->depth >= 4) { // eu_stubbed_printf_0("Audio:Track: CTBLCALL Macro Level Over Error!\n"); @@ -982,10 +982,10 @@ void func_800153E8(SequenceChannel* channel) { // } } break; - case 0xE6: /* switch 3 */ + case 0xE6: channel->bookOffset = func_800146C0(state); break; - case 0xE7: /* switch 3 */ + case 0xE7: sp52 = func_800146D4(state); seqData = &seqPlayer->seqData[sp52]; channel->muteBehavior = *seqData++; @@ -998,7 +998,7 @@ void func_800153E8(SequenceChannel* channel) { channel->someOtherPriority = *seqData++; channel->changes.s.pan = 1; break; - case 0xE8: /* switch 3 */ + case 0xE8: channel->muteBehavior = func_800146C0(state); channel->noteAllocPolicy = func_800146C0(state); channel->notePriority = func_800146C0(state); @@ -1009,7 +1009,7 @@ void func_800153E8(SequenceChannel* channel) { channel->someOtherPriority = func_800146C0(state); channel->changes.s.pan = 1; break; - case 0xEC: /* switch 3 */ + case 0xEC: channel->vibratoDepthTarget = 0; channel->vibratoDepthStart = 0; channel->vibratoDepthChangeDelay = 0; @@ -1018,58 +1018,58 @@ void func_800153E8(SequenceChannel* channel) { channel->vibratoRateChangeDelay = 0; channel->freqMod = 1.0f; break; - case 0xE9: /* switch 3 */ + case 0xE9: channel->notePriority = func_800146C0(state); break; - case 0xED: /* switch 3 */ + case 0xED: // cmd = channel->reverbIndex = func_800146C0(state); break; - case 0xEF: /* switch 3 */ + case 0xEF: func_800146D4(state); func_800146C0(state); break; } } else { loBits = cmd & 0xF; - switch (cmd & 0xF0) { /* switch 2 */ - case 0x0: /* switch 2 */ + switch (cmd & 0xF0) { + case 0x0: if (channel->layers[loBits] != NULL) { sp4B = channel->layers[loBits]->finished; } else { sp4B = -1; } break; - case 0x10: /* switch 2 */ + case 0x10: channel->seqScriptIO[loBits] = -1; if (AudioLoad_SlowLoadSample(channel->fontId, sp4B, &channel->seqScriptIO[loBits]) == -1) {} break; - case 0x70: /* switch 2 */ + case 0x70: channel->seqScriptIO[loBits] = sp4B; break; - case 0x80: /* switch 2 */ + case 0x80: sp4B = channel->seqScriptIO[loBits]; if (loBits < 4) { channel->seqScriptIO[loBits] = -1; } break; - case 0x50: /* switch 2 */ + case 0x50: sp4B -= channel->seqScriptIO[loBits]; break; - case 0x60: /* switch 2 */ + case 0x60: channel->delay = loBits; goto end_loop; - case 0x90: /* switch 2 */ + case 0x90: sp52 = func_800146D4(state); if (func_80013FC4(channel, loBits) == 0) { // if(1) {} channel->layers[loBits]->state.pc = &seqPlayer->seqData[sp52]; } break; - case 0xA0: /* switch 2 */ + case 0xA0: func_8001410C(channel, loBits); break; - case 0xB0: /* switch 2 */ + case 0xB0: if ((sp4B != -1) && (func_80013FC4(channel, loBits) != -1)) { seqData = channel->dynTable[sp4B]; sp52 = (seqData[0] << 8) + seqData[1]; @@ -1080,11 +1080,11 @@ void func_800153E8(SequenceChannel* channel) { sp52 = func_800146D4(state); func_80014440(seqPlayer, loBits, &seqPlayer->seqData[sp52]); break; - case 0x30: /* switch 2 */ + case 0x30: cmd = func_800146C0(state); seqPlayer->channels[loBits]->seqScriptIO[cmd] = sp4B; break; - case 0x40: /* switch 2 */ + case 0x40: cmd = func_800146C0(state); sp4B = seqPlayer->channels[loBits]->seqScriptIO[cmd]; break; diff --git a/src/audio/audio_synthesis.c b/src/audio/audio_synthesis.c index ebd3f6af..f7705523 100644 --- a/src/audio/audio_synthesis.c +++ b/src/audio/audio_synthesis.c @@ -1,7 +1,9 @@ #include "sys.h" #include "sf64audio_provisional.h" -s32 D_80145D40; +s32 D_80145D40; // unused + +// all of these are part of the DFT-related function f32 D_80145D48[256]; f32 D_80146148[256]; f32 D_80146548[515]; diff --git a/src/audio/audio_thread.c b/src/audio/audio_thread.c index e8c067b9..499cb668 100644 --- a/src/audio/audio_thread.c +++ b/src/audio/audio_thread.c @@ -8,19 +8,19 @@ void AudioThread_SetFadeInTimer(s32 seqPlayId, s32 fadeTime); OSMesgQueue sAudioTaskStartQueue; OSMesgQueue sThreadCmdProcQueue; -OSMesgQueue sAudioUnkQueue; +OSMesgQueue sAudioSpecQueue; OSMesgQueue sAudioResetQueue; AudioCmd gThreadCmdBuffer[256]; OSMesg sAudioTaskStartMsg[1]; OSMesg sThreadCmdProcMsg[4]; -OSMesg sAudioUnkMsg[1]; +OSMesg sAudioSpecMsg[1]; OSMesg sAudioResetMsg[1]; u8 gThreadCmdWritePos = 0; u8 gThreadCmdReadPos = 0; OSMesgQueue* gAudioTaskStartQueue = &sAudioTaskStartQueue; OSMesgQueue* gThreadCmdProcQueue = &sThreadCmdProcQueue; -OSMesgQueue* gAudioUnkQueue = &sAudioUnkQueue; +OSMesgQueue* gAudioSpecQueue = &sAudioSpecQueue; OSMesgQueue* gAudioResetQueue = &sAudioResetQueue; static const char devstr0[] = "DAC:Lost 1 Frame.\n"; @@ -57,7 +57,7 @@ SPTask* AudioThread_CreateTask(void) { if ((gAudioTaskCountQ % gAudioBufferParams.count) != 0) { return gWaitingAudioTask; } - osSendMesg(gAudioTaskStartQueue, (OSMesg) gAudioTaskCountQ, 0); + osSendMesg(gAudioTaskStartQueue, (OSMesg) gAudioTaskCountQ, OS_MESG_NOBLOCK); gAudioTaskIndexQ ^= 1; gCurAiBuffIndex++; gCurAiBuffIndex %= 3; @@ -71,7 +71,7 @@ SPTask* AudioThread_CreateTask(void) { gCurAudioFrameDmaCount = 0; AudioLoad_DecreaseSampleDmaTtls(); AudioLoad_ProcessLoads(gResetStatus); - if (osRecvMesg(gAudioUnkQueue, (OSMesg) &sp38, 0) != -1) { + if (MQ_GET_MESG(gAudioSpecQueue, &sp38)) { if (gResetStatus == 0) { gResetStatus = 5; } @@ -79,7 +79,7 @@ SPTask* AudioThread_CreateTask(void) { } if ((gResetStatus != 0) && (AudioHeap_ResetStep() == 0)) { if (gResetStatus == 0) { - osSendMesg(gAudioResetQueue, (OSMesg) (s32) gAudioSpecId, 0); + osSendMesg(gAudioResetQueue, (OSMesg) (s32) gAudioSpecId, OS_MESG_NOBLOCK); } gWaitingAudioTask = NULL; return NULL; @@ -102,7 +102,7 @@ SPTask* AudioThread_CreateTask(void) { if (gAiBuffLengths[sp4C] > gAudioBufferParams.maxAiBufferLength) { gAiBuffLengths[sp4C] = gAudioBufferParams.maxAiBufferLength; } - while (osRecvMesg(gThreadCmdProcQueue, (OSMesg) &sp34, 0) != -1) { + while (MQ_GET_MESG(gThreadCmdProcQueue, &sp34)) { AudioThread_ProcessCmds(sp34); } gCurAbiCmdBuffer = func_80009B64(gCurAbiCmdBuffer, &sp50, sp40, gAiBuffLengths[sp4C]); @@ -111,7 +111,7 @@ SPTask* AudioThread_CreateTask(void) { sp4C = gAudioTaskIndexQ; - gAudioCurTask->msgQueue = NULL; + gAudioCurTask->mesgQueue = NULL; gAudioCurTask->msg = NULL; task = &gAudioCurTask->task.t; @@ -244,7 +244,7 @@ void AudioThread_InitQueues(void) { gThreadCmdReadPos = 0; osCreateMesgQueue(gAudioTaskStartQueue, sAudioTaskStartMsg, 1); osCreateMesgQueue(gThreadCmdProcQueue, sThreadCmdProcMsg, 4); - osCreateMesgQueue(gAudioUnkQueue, sAudioUnkMsg, 1); + osCreateMesgQueue(gAudioSpecQueue, sAudioSpecMsg, 1); osCreateMesgQueue(gAudioResetQueue, sAudioResetMsg, 1); } @@ -282,7 +282,7 @@ void AudioThread_ScheduleProcessCmds(void) { D_800C7C70 = (u8) (gThreadCmdWritePos - gThreadCmdReadPos + 0x100); } msg = (((gThreadCmdReadPos & 0xFF) << 8) | (gThreadCmdWritePos & 0xFF)); - osSendMesg(gThreadCmdProcQueue, (OSMesg) msg, 0); + osSendMesg(gThreadCmdProcQueue, (OSMesg) msg, OS_MESG_NOBLOCK); gThreadCmdReadPos = gThreadCmdWritePos; } @@ -327,10 +327,10 @@ void AudioThread_ProcessCmds(u32 msg) { player->recalculateVolume = true; } break; - case AUDIOCMD_OP_SEQPLAYER_SET_TEMPO: /* switch 1 */ + case AUDIOCMD_OP_SEQPLAYER_SET_TEMPO: player->tempo = cmd->asInt * 48; break; - case AUDIOCMD_OP_SEQPLAYER_SET_TRANSPOSITION: /* switch 1 */ + case AUDIOCMD_OP_SEQPLAYER_SET_TRANSPOSITION: player->transposition = cmd->asSbyte; break; case 0x46: // AUDIOCMD_OP_SEQPLAYER_SET_IO? @@ -387,45 +387,43 @@ void AudioThread_ProcessCmds(u32 msg) { } u32 AudioThread_GetAsyncLoadStatus(u32* outData) { - u32 sp1C; + u32 loadStatus; - if (osRecvMesg(&gExternalLoadQueue, (OSMesg*) &sp1C, 0) == -1) { + if (!MQ_GET_MESG(&gExternalLoadQueue, &loadStatus)) { *outData = 0; return 0; } - *outData = sp1C & 0xFFFFFF; - return sp1C >> 0x18; + *outData = loadStatus & 0xFFFFFF; + return loadStatus >> 0x18; } u8* AudioThread_GetFontsForSequence(s32 seqId, u32* outNumFonts) { return AudioLoad_GetFontsForSequence(seqId, outNumFonts); } -s32 func_8001ED34(void) { +bool AudioThread_ResetComplete(void) { s32 pad; s32 sp18; - if (osRecvMesg(gAudioResetQueue, (OSMesg*) &sp18, 0) == -1) { - return 0; + if (!MQ_GET_MESG(gAudioResetQueue, &sp18)) { + return false; } if (sp18 != gAudioSpecId) { - return 0; + return false; } - return 1; + return true; } void AudioThread_ResetAudioHeap(s32 specId) { - // clang-format off - s32 m1 = -1;OSMesg sp28;do {} while (osRecvMesg(gAudioResetQueue, &sp28, 0) != m1); - // clang-format on + MQ_CLEAR_QUEUE(gAudioResetQueue); AudioThread_ResetCmdQueue(); - osSendMesg(gAudioUnkQueue, (OSMesg) specId, 0); + osSendMesg(gAudioSpecQueue, (OSMesg) specId, OS_MESG_NOBLOCK); } void AudioThread_PreNMIReset(void) { gResetTimer = 1; - AudioThread_ResetAudioHeap(0); + AudioThread_ResetAudioHeap(AUDIOSPEC_0); gResetStatus = 0; } diff --git a/src/engine/fox_360.c b/src/engine/fox_360.c index 566ab856..b74b9e33 100644 --- a/src/engine/fox_360.c +++ b/src/engine/fox_360.c @@ -62,7 +62,7 @@ s32 gAllRangeSupplyTimer; s32 sStarWolfKillTimer; s16 gStarWolfMsgTimer; s32 gAllRangeWingRepairTimer; -s32 gAllRangeWingRepairSent; +s32 gAllRangeSuppliesSent; f32 gSzMissileR; f32 gSzMissileG; f32 gSzMissileB; @@ -250,7 +250,7 @@ void AllRange_GreatFoxRepair(Player* player) { player->unk_014 = 0; player->unk_018 = 0; player->unk_01C = 0; - gActors[0].state = 2; + gActors[0].state = STATE360_2; } break; } @@ -402,10 +402,10 @@ void ActorAllRange_SpawnTeam(void) { } else { actor->aiIndex = D_360_800C9ADC[i]; } - actor->state = 2; + actor->state = STATE360_2; actor->unk_0F4.y = 180.0f; if (actor->aiIndex <= -1) { - actor->state = 3; + actor->state = STATE360_3; } actor->health = 50; if ((gLevelType == LEVELTYPE_PLANET) || (gCurrentLevel == LEVEL_BOLSE)) { @@ -442,7 +442,7 @@ void ActorAllRange_SpawnStarWolf(void) { actor->health = 100; actor->unk_0C9 = 1; actor->unk_0F4.y = 225.0f; - actor->state = 0; + actor->state = STATE360_0; actor->timer_0BC = 250; actor->unk_0F4.x = -20.0f; actor->iwork[11] = 1; @@ -474,8 +474,8 @@ void ActorAllRange_StarWolfDefeatMesg(u16* msg, RadioCharacterId character) { ActorAllRange_PlayMessage(msg, character); } -void func_360_8002F69C(Actor* actor) { - Actor* otherActor; +void func_360_8002F69C(Actor* this) { + Actor* actor; s32 i; if (sStarWolfKillTimer != 0) { @@ -492,7 +492,7 @@ void func_360_8002F69C(Actor* actor) { } if (gAllRangeEventTimer == D_360_800C9B4C) { ActorAllRange_SpawnStarWolf(); - actor->state = 3; + this->state = STATE360_3; gPlayer[0].state_1C8 = PLAYERSTATE_1C8_STANDBY; if ((gCurrentLevel == LEVEL_VENOM_2) || (gCurrentLevel == LEVEL_BOLSE)) { gPlayer[0].camRoll = 20.0f; @@ -510,56 +510,53 @@ void func_360_8002F69C(Actor* actor) { gPlayer[0].cam.at.y = gActors[4].obj.pos.y; gPlayer[0].cam.at.z = gActors[4].obj.pos.z; } - if (gAllRangeEventTimer > D_360_800C9B4C) { - if (gStarWolfMsgTimer == 0) { - gAllRangeFrameCount++; - for (i = 1, otherActor = &gActors[1]; i < 8; i++, otherActor++) { - if ((otherActor->obj.status == OBJ_ACTIVE) && (otherActor->state == 2) && (otherActor->health < 70) && - (otherActor->timer_0C6 != 0) && (otherActor->unk_0D4 == 1)) { - if ((gActors[otherActor->aiIndex].state == STATE360_3) && - (gActors[otherActor->aiIndex].aiType <= AI360_ANDREW)) { - gActors[otherActor->aiIndex].iwork[2] = AI360_FOX; - gActors[otherActor->aiIndex].state = 2; - gActors[otherActor->aiIndex].aiIndex = otherActor->aiType; - if (gTeamHelpActor == &gActors[otherActor->aiIndex]) { - gTeamHelpActor = NULL; - gTeamHelpTimer = 0; - } - if (gActors[otherActor->aiIndex].iwork[3] == 0) { - switch (gActors[otherActor->aiIndex].aiType) { - case AI360_FALCO: - ActorAllRange_PlayMessage(gMsg_ID_9160, RCID_FALCO); - break; - case AI360_SLIPPY: - ActorAllRange_PlayMessage(gMsg_ID_9170, RCID_SLIPPY); - break; - case AI360_PEPPY: - ActorAllRange_PlayMessage(gMsg_ID_9180, RCID_PEPPY); - break; - } - gActors[otherActor->aiIndex].iwork[3] = 200; - } + if ((gAllRangeEventTimer > D_360_800C9B4C) && (gStarWolfMsgTimer == 0)) { + gAllRangeFrameCount++; + for (i = 1, actor = &gActors[1]; i < 8; i++, actor++) { + if ((actor->obj.status == OBJ_ACTIVE) && (actor->state == STATE360_2) && (actor->health < 70) && + (actor->timer_0C6 != 0) && (actor->unk_0D4 == 1)) { + if ((gActors[actor->aiIndex].state == STATE360_3) && (gActors[actor->aiIndex].aiType <= AI360_ANDREW)) { + gActors[actor->aiIndex].iwork[2] = AI360_FOX; + gActors[actor->aiIndex].state = STATE360_2; + gActors[actor->aiIndex].aiIndex = actor->aiType; + if (gTeamHelpActor == &gActors[actor->aiIndex]) { + gTeamHelpActor = NULL; + gTeamHelpTimer = 0; } - if (otherActor->aiType == AI360_WOLF) { - if (gCurrentLevel != LEVEL_VENOM_2) { - otherActor->state = STATE360_3; - otherActor->unk_04E = 300; + if (gActors[actor->aiIndex].iwork[3] == 0) { + switch (gActors[actor->aiIndex].aiType) { + case AI360_FALCO: + ActorAllRange_PlayMessage(gMsg_ID_9160, RCID_FALCO); + break; + case AI360_SLIPPY: + ActorAllRange_PlayMessage(gMsg_ID_9170, RCID_SLIPPY); + break; + case AI360_PEPPY: + ActorAllRange_PlayMessage(gMsg_ID_9180, RCID_PEPPY); + break; } - } else { - otherActor->state = STATE360_3; - otherActor->aiIndex = -1; + gActors[actor->aiIndex].iwork[3] = 200; } } + if (actor->aiType == AI360_WOLF) { + if (gCurrentLevel != LEVEL_VENOM_2) { + actor->state = STATE360_3; + actor->unk_04E = 300; + } + } else { + actor->state = STATE360_3; + actor->aiIndex = -1; + } } - if (gTeamShields[TEAM_ID_FALCO] <= 0) { - gActors[AI360_LEON].aiIndex = AI360_FOX; - } - if (gTeamShields[TEAM_ID_SLIPPY] <= 0) { - gActors[AI360_ANDREW].aiIndex = AI360_FOX; - } - if (gTeamShields[TEAM_ID_PEPPY] <= 0) { - gActors[AI360_PIGMA].aiIndex = AI360_FOX; - } + } + if (gTeamShields[TEAM_ID_FALCO] <= 0) { + gActors[AI360_LEON].aiIndex = AI360_FOX; + } + if (gTeamShields[TEAM_ID_SLIPPY] <= 0) { + gActors[AI360_ANDREW].aiIndex = AI360_FOX; + } + if (gTeamShields[TEAM_ID_PEPPY] <= 0) { + gActors[AI360_PIGMA].aiIndex = AI360_FOX; } } } @@ -582,7 +579,7 @@ void func_360_8002FB4C(Actor* actor) { } if (!var_a0) { actor->aiIndex = i; - actor->state = 2; + actor->state = STATE360_2; actor->iwork[2] = AI360_FOX; break; } @@ -590,31 +587,29 @@ void func_360_8002FB4C(Actor* actor) { } } -void func_360_8002FC00(Actor* actor) { - Actor* otherActor; +void func_360_8002FC00(Actor* this) { + Actor* actor; s32 i; - for (i = 0, otherActor = &gActors[10]; i < 50; i++, otherActor++) { - if ((otherActor->obj.status == OBJ_DYING) && (otherActor->aiIndex >= AI360_FALCO) && - (otherActor->aiIndex <= AI360_PEPPY)) { + for (i = 0, actor = &gActors[10]; i < 50; i++, actor++) { + if ((actor->obj.status == OBJ_DYING) && (actor->aiIndex >= AI360_FALCO) && (actor->aiIndex <= AI360_PEPPY)) { Actor* actor2; s32 j; for (j = 0, actor2 = &gActors[10]; j < 51; j++, actor2++) { - if ((actor2->obj.status == OBJ_ACTIVE) && (actor2->state == 2) && - (actor2->aiIndex == otherActor->aiIndex)) { + if ((actor2->obj.status == OBJ_ACTIVE) && (actor2->state == STATE360_2) && + (actor2->aiIndex == actor->aiIndex)) { return; } } - if (gTeamShields[otherActor->aiIndex] > 0) { - func_360_8002FB4C(&gActors[otherActor->aiIndex]); - if ((otherActor->iwork[5] != 0) && (otherActor->unk_0D4 == 1) && - (gActors[otherActor->aiIndex].iwork[3] == 0)) { - if (gTeamHelpActor == &gActors[otherActor->aiIndex]) { + if (gTeamShields[actor->aiIndex] > 0) { + func_360_8002FB4C(&gActors[actor->aiIndex]); + if ((actor->iwork[5] != 0) && (actor->unk_0D4 == 1) && (gActors[actor->aiIndex].iwork[3] == 0)) { + if (gTeamHelpActor == &gActors[actor->aiIndex]) { gTeamHelpActor = NULL; gTeamHelpTimer = 0; } - switch (gActors[otherActor->aiIndex].aiType) { + switch (gActors[actor->aiIndex].aiType) { case AI360_FALCO: ActorAllRange_PlayMessage(gMsg_ID_9160, RCID_FALCO); break; @@ -625,15 +620,15 @@ void func_360_8002FC00(Actor* actor) { ActorAllRange_PlayMessage(gMsg_ID_9180, RCID_PEPPY); break; } - gActors[otherActor->aiIndex].iwork[3] = 200; - gActors[otherActor->aiIndex].timer_0C4 = 600; + gActors[actor->aiIndex].iwork[3] = 200; + gActors[actor->aiIndex].timer_0C4 = 600; } } } } } -bool func_360_8002FE74(void) { +bool AllRange_SupplyEvent(void) { switch (gCurrentLevel) { case LEVEL_FORTUNA: return gAllRangeEventTimer == D_360_800C9B4C + 2400; @@ -650,7 +645,7 @@ void ActorAllRange_SpawnSupplies(Actor* this) { s32 i; if ((gCallTimer != 0) && (gControllerPress[gMainController].button & R_CBUTTONS)) { - func_8001AF40(0); + Audio_SetUnkVoiceParam(0); gCallVoiceParam = 0; gCallTimer = 0; Radio_PlayMessage(gMsg_ID_20230, RCID_ROB64); @@ -682,13 +677,13 @@ void ActorAllRange_SpawnSupplies(Actor* this) { } } } - if ((gPlayer[0].state_1C8 == PLAYERSTATE_1C8_ACTIVE) && !gAllRangeWingRepairSent) { + if ((gPlayer[0].state_1C8 == PLAYERSTATE_1C8_ACTIVE) && !gAllRangeSuppliesSent) { if (gAllRangeWingRepairTimer != 0) { gAllRangeWingRepairTimer--; } - if ((gPlayer[0].shields < 64) || func_360_8002FE74() || (gAllRangeWingRepairTimer == 1)) { + if ((gPlayer[0].shields < 64) || AllRange_SupplyEvent() || (gAllRangeWingRepairTimer == 1)) { gCallTimer = 60; - gAllRangeWingRepairSent = true; + gAllRangeSuppliesSent = true; } } } @@ -719,27 +714,27 @@ void ActorAllRange_UpdateEvents(Actor* this) { ActorAllRange_SpawnSupplies(this); } -s32 func_360_800301F4(Actor* actor) { +s32 func_360_800301F4(Actor* this) { Boss* boss; f32 temp_ft4; f32 temp_ft5; s32 i; - f32 sp1C; - f32 sp18; + f32 sinY; + f32 cosY; if (gLevelMode == LEVELMODE_ON_RAILS) { return 0; } - sp1C = SIN_DEG(actor->obj.rot.y); - sp18 = COS_DEG(actor->obj.rot.y); - temp_ft4 = actor->fwork[9] * 10.0f + (sp1C * 650.0f); - temp_ft5 = actor->fwork[9] * 10.0f + (sp18 * 650.0f); + sinY = SIN_DEG(this->obj.rot.y); + cosY = COS_DEG(this->obj.rot.y); + temp_ft4 = this->fwork[9] * 10.0f + (sinY * 650.0f); + temp_ft5 = this->fwork[9] * 10.0f + (cosY * 650.0f); for (i = 0; i < 200; i++) { if ((gScenery360[i].obj.status == OBJ_ACTIVE) && - (fabsf(gScenery360[i].obj.pos.x - (actor->obj.pos.x + temp_ft4)) < 1000.0f) && - (fabsf(gScenery360[i].obj.pos.z - (actor->obj.pos.z + temp_ft5)) < 1000.0f)) { - if (fabsf(gScenery360[i].obj.pos.y - actor->obj.pos.y) < 1000.0f) { - if (gScenery360[i].obj.pos.y < actor->obj.pos.y) { + (fabsf(gScenery360[i].obj.pos.x - (this->obj.pos.x + temp_ft4)) < 1000.0f) && + (fabsf(gScenery360[i].obj.pos.z - (this->obj.pos.z + temp_ft5)) < 1000.0f)) { + if (fabsf(gScenery360[i].obj.pos.y - this->obj.pos.y) < 1000.0f) { + if (gScenery360[i].obj.pos.y < this->obj.pos.y) { return 1; } else { return -1; @@ -748,10 +743,10 @@ s32 func_360_800301F4(Actor* actor) { } } boss = &gBosses[0]; - if ((gCurrentLevel == LEVEL_SECTOR_Z) && (fabsf(boss->obj.pos.x - (actor->obj.pos.x + temp_ft4)) < 2000.0f) && - (fabsf(boss->obj.pos.z - (actor->obj.pos.z + temp_ft5)) < 2000.0f)) { - if (fabsf(boss->obj.pos.y - actor->obj.pos.y) < 1500.0f) { - if (boss->obj.pos.y < actor->obj.pos.y) { + if ((gCurrentLevel == LEVEL_SECTOR_Z) && (fabsf(boss->obj.pos.x - (this->obj.pos.x + temp_ft4)) < 2000.0f) && + (fabsf(boss->obj.pos.z - (this->obj.pos.z + temp_ft5)) < 2000.0f)) { + if (fabsf(boss->obj.pos.y - this->obj.pos.y) < 1500.0f) { + if (boss->obj.pos.y < this->obj.pos.y) { return 1; } else { return -1; @@ -761,7 +756,7 @@ s32 func_360_800301F4(Actor* actor) { return 0; } -s32 func_360_8003049C(Actor* actor) { +s32 func_360_8003049C(Actor* this) { Scenery360* scenery360; s32 i; f32 sp44; @@ -777,25 +772,24 @@ s32 func_360_8003049C(Actor* actor) { return 0; } if ((gLevelType == LEVELTYPE_SPACE) && (gCurrentLevel != LEVEL_BOLSE)) { - return func_360_800301F4(actor); + return func_360_800301F4(this); } - sp40 = SIN_DEG(actor->obj.rot.y); - sp3C = COS_DEG(actor->obj.rot.y); - temp_fa0 = actor->fwork[9] * 10.0f + (sp40 * 650.0f); - temp_ft4 = actor->fwork[9] * 10.0f + (sp3C * 650.0f); + sp40 = SIN_DEG(this->obj.rot.y); + sp3C = COS_DEG(this->obj.rot.y); + temp_fa0 = this->fwork[9] * 10.0f + (sp40 * 650.0f); + temp_ft4 = this->fwork[9] * 10.0f + (sp3C * 650.0f); if (gLevelMode == LEVELMODE_ALL_RANGE) { for (i = 0, scenery360 = gScenery360; i < 200; i++, scenery360++) { if ((scenery360->obj.status == OBJ_ACTIVE) && - (fabsf(scenery360->obj.pos.x - (actor->obj.pos.x + temp_fa0)) < 1200.0f) && - (fabsf(scenery360->obj.pos.z - (actor->obj.pos.z + temp_ft4)) < 1200.0f) && - (actor->obj.pos.y < 650.0f)) { + (fabsf(scenery360->obj.pos.x - (this->obj.pos.x + temp_fa0)) < 1200.0f) && + (fabsf(scenery360->obj.pos.z - (this->obj.pos.z + temp_ft4)) < 1200.0f) && (this->obj.pos.y < 650.0f)) { return 1; } } } sp44 = 1200.0f; var_ft5 = 650.0f; - if (actor->aiType < AI360_KATT) { + if (this->aiType < AI360_KATT) { var_ft5 = 720.0f; } @@ -808,9 +802,9 @@ s32 func_360_8003049C(Actor* actor) { sp44 = 1500.0f; var_ft5 = 700.0f; } - if ((fabsf(boss->obj.pos.x - (actor->obj.pos.x + temp_fa0)) < sp44) && - (fabsf(boss->obj.pos.z - (actor->obj.pos.z + temp_ft4)) < sp44) && - (fabsf(boss->obj.pos.y - actor->obj.pos.y) < var_ft5)) { + if ((fabsf(boss->obj.pos.x - (this->obj.pos.x + temp_fa0)) < sp44) && + (fabsf(boss->obj.pos.z - (this->obj.pos.z + temp_ft4)) < sp44) && + (fabsf(boss->obj.pos.y - this->obj.pos.y) < var_ft5)) { return 1; } return 0; @@ -857,7 +851,7 @@ void ActorAllRange_ApplyDamage(Actor* this) { ((this->aiType != AI360_MISSILE) || (this->unk_0D0 != 2))) { this->health -= this->damage; } - } else if ((this->aiType <= AI360_PEPPY) && (this->state != 6)) { + } else if ((this->aiType <= AI360_PEPPY) && (this->state != STATE360_6)) { if (this->aiType == AI360_FALCO) { gTeamDamage[this->aiType] = this->damage; } else { @@ -1226,42 +1220,42 @@ void ActorAllRange_Update(Actor* this) { ActorAllRange_UpdateEvents(this); return; } - if ((this->iwork[17] != 0) && (this->iwork[16] == 0) && (this->aiType >= AI360_WOLF)) { + if ((this->iwork[17] != 0) && (this->iwork[16] == STATE360_0) && (this->aiType >= AI360_WOLF)) { switch (RAND_INT(3.9f)) { case 0: case 1: if (gCurrentLevel == LEVEL_VENOM_2) { - this->iwork[16] = 10; + this->iwork[16] = STATE360_10; } break; case 2: - this->iwork[16] = 8; + this->iwork[16] = STATE360_8; break; case 3: - this->iwork[16] = 7; + this->iwork[16] = STATE360_7; break; } this->iwork[17] = 0; if (this->iwork[18] != 0) { this->iwork[18]--; - this->iwork[16] = 0; + this->iwork[16] = STATE360_0; } } - if ((this->lockOnTimers[0] != 0) && (gCurrentLevel != LEVEL_VENOM_2) && (this->aiType < AI360_10) && - (this->lockOnTimers[0] < 5) && ((gGameFrameCount % 32) == 0)) { - this->iwork[16] = 10; + if ((this->lockOnTimers[TEAM_ID_FOX] != 0) && (gCurrentLevel != LEVEL_VENOM_2) && (this->aiType < AI360_10) && + (this->lockOnTimers[TEAM_ID_FOX] < 5) && ((gGameFrameCount % 32) == 0)) { + this->iwork[16] = STATE360_10; } - if ((this->iwork[16] != 0) && (this->state < 7)) { + if ((this->iwork[16] != STATE360_0) && (this->state < STATE360_7)) { this->state = this->iwork[16]; switch (this->state) { - case 7: - case 8: + case STATE360_7: + case STATE360_8: if (this->unk_0F4.x > 180.0f) { this->unk_0F4.x -= 360.0f; } this->unk_046 = 0; break; - case 9: + case STATE360_9: this->timer_0BC = RAND_INT(20.0f) + 30; if (Rand_ZeroOne() < 0.5f) { this->fwork[19] = this->obj.rot.y + 50.0f; @@ -1275,7 +1269,7 @@ void ActorAllRange_Update(Actor* this) { this->fwork[19] += 360.0f; } break; - case 10: + case STATE360_10: this->timer_0BC = 35; if (Rand_ZeroOne() < 0.5f) { this->fwork[7] = 360.0f; @@ -1290,7 +1284,7 @@ void ActorAllRange_Update(Actor* this) { break; } } - this->iwork[16] = 0; + this->iwork[16] = STATE360_0; spCC = spC8 = spC4 = 0.0f; if (this->iwork[7] != 0) { this->iwork[7]--; @@ -1352,8 +1346,8 @@ void ActorAllRange_Update(Actor* this) { sp104 = 0; this->iwork[5] = 0; if ((this->aiType > AI360_FOX) && (this->aiType <= AI360_PEPPY) && (gTeamShields[this->aiType] <= 0) && - (this->state != 6)) { - this->state = 6; + (this->state != STATE360_6)) { + this->state = STATE360_6; if (this->timer_0C2 < 100) { gTeamShields[this->aiType] = 1; switch (this->aiType) { @@ -1412,20 +1406,20 @@ void ActorAllRange_Update(Actor* this) { case STATE360_0: if (gPlayer[0].state_1C8 != PLAYERSTATE_1C8_START_360) { this->fwork[0] = this->fwork[1] = 40.0f; - if (gActors[0].state == 5) { + if (gActors[0].state == STATE360_5) { Math_SmoothStepToF(&this->unk_0F4.x, 30.0f, 0.1f, 0.5f, 0.0f); this->fwork[1] = 200.0f; } if (this->timer_0BC == 0) { if (this->aiType == AI360_WOLF) { - this->state = 3; + this->state = STATE360_3; if (gCurrentLevel == LEVEL_VENOM_2) { this->unk_04E = 200; } else { this->unk_04E = 200; } } else { - this->state = 2; + this->state = STATE360_2; if (this->aiType == AI360_KATT) { this->fwork[7] = 360.0f; this->fwork[8] = 0.0f; @@ -1441,9 +1435,9 @@ void ActorAllRange_Update(Actor* this) { Math_SmoothStepToF(&this->unk_0F4.x, 15.0f, 0.1f, 1.0f, 0.0f); } if (this->timer_0BC == 0) { - this->state = 3; + this->state = STATE360_3; if ((gCurrentLevel == LEVEL_BOLSE) && (this->aiIndex > -1)) { - this->state = 2; + this->state = STATE360_2; } } break; @@ -1464,7 +1458,7 @@ void ActorAllRange_Update(Actor* this) { spF0 = 0.2f; } if (this->aiIndex <= -1) { - this->state = 3; + this->state = STATE360_3; } else { if (gActors[this->aiIndex].aiType == AI360_MISSILE) { spF0 = 0.8f; @@ -1475,7 +1469,7 @@ void ActorAllRange_Update(Actor* this) { if (gCurrentLevel != LEVEL_VENOM_2) { if ((gPlayer[0].somersault && (this->iwork[4] > 10)) || ((gCurrentLevel == LEVEL_BOLSE) && (gPlayer[0].state_1C8 == PLAYERSTATE_1C8_STANDBY))) { - this->state = 3; + this->state = STATE360_3; this->unk_04E = 300; this->timer_0BC = 160; if (this->aiType == AI360_WOLF) { @@ -1488,7 +1482,7 @@ void ActorAllRange_Update(Actor* this) { } } if ((this->aiType >= AI360_WOLF) && (this->aiType != AI360_KATT) && - ((gCurrentLevel != LEVEL_VENOM_2) || (this->aiType != AI360_WOLF))) { + !((gCurrentLevel == LEVEL_VENOM_2) && (this->aiType == AI360_WOLF))) { spCC = SIN_DEG((this->index * 45) + gGameFrameCount) * 100.0f; spC8 = COS_DEG((this->index * 45) + (gGameFrameCount * 2)) * 100.0f; spC4 = SIN_DEG((this->index * 45) + gGameFrameCount) * 100.0f; @@ -1499,7 +1493,7 @@ void ActorAllRange_Update(Actor* this) { this->fwork[6] = gPlayer[0].unk_138 + spC4; this->fwork[1] = gPlayer[0].unk_0D0 + 10.0f; } - if ((gActors[0].state == 6) && (this->aiType <= AI360_PEPPY)) { + if ((gActors[0].state == STATE360_6) && (this->aiType <= AI360_PEPPY)) { this->fwork[3] = 3.0f; this->fwork[1] = gPlayer[0].unk_0D0 - 5.0f; this->iwork[11] = 2; @@ -1545,7 +1539,7 @@ void ActorAllRange_Update(Actor* this) { this->fwork[6] = gBosses[0].obj.pos.z; this->fwork[1] = 40.0f; } - if ((this->aiIndex > -1) && (this->aiIndex != AI360_GREAT_FOX) && (gActors[0].state != 6)) { + if ((this->aiIndex > -1) && (this->aiIndex != AI360_GREAT_FOX) && (gActors[0].state != STATE360_6)) { if (spE8 < spF8) { if (spEC < spF8) { if (this->aiIndex != AI360_FOX) { @@ -1554,7 +1548,7 @@ void ActorAllRange_Update(Actor* this) { this->fwork[1] = gPlayer[0].unk_0D0 - 5.0f; if ((gCurrentLevel == LEVEL_VENOM_2) && (gPlayer[0].state_1C8 == PLAYERSTATE_1C8_U_TURN) && (gPlayer[0].unk_4D8 > 100.0f)) { - this->iwork[16] = 8; + this->iwork[16] = STATE360_8; } } } @@ -1752,10 +1746,10 @@ void ActorAllRange_Update(Actor* this) { } else { this->iwork[4] = 0; } - if ((this->aiIndex >= AI360_FALCO) && - ((gActors[this->aiIndex].obj.status == OBJ_DYING) || (gActors[this->aiIndex].state == 6) || - (gActors[this->aiIndex].obj.status == OBJ_FREE))) { - this->state = 3; + if ((this->aiIndex >= AI360_FALCO) && ((gActors[this->aiIndex].obj.status == OBJ_DYING) || + (gActors[this->aiIndex].state == STATE360_6) || + (gActors[this->aiIndex].obj.status == OBJ_FREE))) { + this->state = STATE360_3; if (gCurrentLevel == LEVEL_BOLSE) { func_360_8002FB4C(this); } @@ -1783,7 +1777,7 @@ void ActorAllRange_Update(Actor* this) { this->fwork[3] = 1.0f; this->fwork[1] = 38.0f; } - if ((gCurrentLevel == LEVEL_SECTOR_Z) && (gActors[0].state == 10)) { + if ((gCurrentLevel == LEVEL_SECTOR_Z) && (gActors[0].state == STATE360_10)) { this->fwork[10] = 30.0f; } if ((gLevelType == LEVELTYPE_SPACE) && (gCurrentLevel != LEVEL_BOLSE)) { @@ -1823,7 +1817,7 @@ void ActorAllRange_Update(Actor* this) { } if ((this->aiIndex >= AI360_FALCO) && (gActors[this->aiIndex].obj.id == OBJ_ACTOR_ALLRANGE) && (gActors[this->aiIndex].timer_0C2 == 0) && (gActors[this->aiIndex].obj.status == OBJ_ACTIVE)) { - this->state = 2; + this->state = STATE360_2; this->iwork[2] = AI360_FOX; } if (this->aiIndex == AI360_FOX) { @@ -1831,7 +1825,7 @@ void ActorAllRange_Update(Actor* this) { this->unk_04E--; } if (this->unk_04E == 0) { - this->state = 2; + this->state = STATE360_2; this->iwork[2] = AI360_FOX; } } @@ -1841,7 +1835,7 @@ void ActorAllRange_Update(Actor* this) { Math_SmoothStepToF(&this->unk_0F4.x, 360.0f, 0.1f, 5.0f, 0.0001f); Math_SmoothStepToAngle(&this->obj.rot.z, 0.0f, 0.1f, 3.0f, 0.01f); if (this->unk_0F4.x > 350.0f) { - this->state = 3; + this->state = STATE360_3; } break; case STATE360_8: @@ -1871,7 +1865,7 @@ void ActorAllRange_Update(Actor* this) { break; case 1: if (this->timer_0BC == 0) { - this->state = 3; + this->state = STATE360_3; } break; } @@ -1885,13 +1879,13 @@ void ActorAllRange_Update(Actor* this) { } Math_SmoothStepToAngle(&this->obj.rot.z, spD0, 0.1f, 15.0f, 0.01f); if (this->timer_0BC == 0) { - this->state = 3; + this->state = STATE360_3; } break; case STATE360_10: sp104 = 1; if (this->timer_0BC == 0) { - this->state = 3; + this->state = STATE360_3; } if (this->timer_0BC > 20) { Math_SmoothStepToF(&this->fwork[23], 180.0f, 1.0f, 60.0f, 0.0f); @@ -1899,14 +1893,14 @@ void ActorAllRange_Update(Actor* this) { break; } if (sp104 != 0) { - s32 var_v0 = 3; + s32 var_v0 = 4 - 1; spE4 = this->fwork[4] - this->obj.pos.x; spE0 = this->fwork[5] - this->obj.pos.y; spDC = this->fwork[6] - this->obj.pos.z; if (gCurrentLevel == LEVEL_VENOM_2) { - var_v0 = 1; + var_v0 = 2 - 1; } if (!((this->index + gGameFrameCount) & var_v0)) { this->fwork[19] = Math_RadToDeg(Math_Atan2F(spE4, spDC)); @@ -1956,7 +1950,7 @@ void ActorAllRange_Update(Actor* this) { } if ((this->fwork[7] > 0.01f) && (this->fwork[7] < 359.9f)) { if ((((gGameFrameCount + 15) % 32) == 0) && (gCurrentLevel != LEVEL_VENOM_2)) { - this->lockOnTimers[0] = 0; + this->lockOnTimers[TEAM_ID_FOX] = 0; } } else { Math_SmoothStepToAngle(&this->obj.rot.z, spD0, 0.1f, 3.0f, 0.01f); @@ -1977,7 +1971,6 @@ void ActorAllRange_Update(Actor* this) { Matrix_RotateZ(gCalcMatrix, this->obj.rot.z * M_DTOR, MTXF_APPLY); spA8.x = 0.0f; spA8.y = 70.0f; - spA8.z = -70.0f; Matrix_MultVec3fNoTranslate(gCalcMatrix, &spA8, &sp9C); func_effect_80078E50(this->obj.pos.x + sp9C.x, this->obj.pos.y + sp9C.y, this->obj.pos.z + sp9C.z, diff --git a/src/engine/fox_A48A0.c b/src/engine/fox_A48A0.c index 01036834..677cf218 100644 --- a/src/engine/fox_A48A0.c +++ b/src/engine/fox_A48A0.c @@ -31,7 +31,7 @@ void func_800A3E00(void) { break; case 2: if ((gControllerPress[0].button & START_BUTTON) || (gControllerPress[1].button & START_BUTTON)) { - func_8001D638(0); + Audio_PlayPauseSfx(0); D_ctx_80177868 = 3; gDrawMode = DRAW_NONE; Play_Setup(); diff --git a/src/engine/fox_beam.c b/src/engine/fox_beam.c index 98ba98d2..fb588b6e 100644 --- a/src/engine/fox_beam.c +++ b/src/engine/fox_beam.c @@ -56,7 +56,7 @@ void func_beam_80035E78(PlayerShot* shot) { shot->unk_5C = 1; shot->unk_64 = 30; shot->unk_58 = 150; - func_8001CE28(shot->playerNum, shot->sfxSource); + Audio_PlayBombExplodeSfx(shot->playerNum, shot->sfxSource); gScreenFlashTimer = 4; if (shot->obj.pos.y < (gGroundHeight + 450.0f)) { gCameraShake = 15; diff --git a/src/engine/fox_bg.c b/src/engine/fox_bg.c index d185de70..b78a0593 100644 --- a/src/engine/fox_bg.c +++ b/src/engine/fox_bg.c @@ -611,7 +611,7 @@ void Background_DrawBackdrop(void) { break; case LEVEL_FORTUNA: sp128 = 1.5f; - if ((gCsFrameCount > 400) && (gNextPlanetPath == 0)) { + if ((gCsFrameCount > 400) && (gMissionStatus == MISSION_COMPLETE)) { sp128 = 0.75f; } Matrix_Translate(gGfxMatrix, sp138 - 120.0f, -(sp134 - 120.0f), -290.0f, MTXF_APPLY); diff --git a/src/engine/fox_context.c b/src/engine/fox_context.c index 7434822e..b56f03d7 100644 --- a/src/engine/fox_context.c +++ b/src/engine/fox_context.c @@ -22,7 +22,7 @@ s32 gTeamShields[6]; s32 gSavedTeamShields[6]; s32 gPrevPlanetSavedTeamShields[6]; s32 gTeamDamage[6]; -u8 gNextPlanetPath; // next planet path +u8 gMissionStatus; // next planet path f32 gGroundHeight; f32 D_ctx_80177950; f32 D_ctx_80177968; @@ -45,11 +45,11 @@ u8 gAqDrawMode; s32 D_ctx_80177AE0; s32 gMainController; s32 D_ctx_80177B40; -s32 gMissionNumber; // D_ctx_80177B48 // Arrow pointer? -s32 D_ctx_80177B50[7]; -s32 D_ctx_80177B70[7]; -PlanetId D_ctx_80177B90[7]; -s32 D_ctx_80177BB0[7]; +s32 gMissionNumber; +s32 gMissionTeamStatus[7]; +s32 gMissionHitCount[7]; +PlanetId gMissionPlanet[7]; +s32 gMissionMedal[7]; #ifdef AVOID_UB s32 gPlanetPathStatus[24]; #else @@ -93,7 +93,7 @@ s32 gRadioState; s32 D_ctx_801782A4; s32 D_Timer_801782AC; s32 D_Timer_801782B4; -u8 D_play_800D3180[30] = { +u8 gLeveLClearStatus[30] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }; s32 D_ctx_801782C0; diff --git a/src/engine/fox_demo.c b/src/engine/fox_demo.c index e4035b99..b2a2da19 100644 --- a/src/engine/fox_demo.c +++ b/src/engine/fox_demo.c @@ -292,11 +292,11 @@ void Cutscene_WarpZoneComplete(Player* player) { player->timer_1F8 = 0; gFadeoutType = 4; if (gCurrentLevel == LEVEL_METEO) { - D_play_800D3180[LEVEL_METEO] = Play_CheckMedalStatus(200) + 1; + gLeveLClearStatus[LEVEL_METEO] = Play_CheckMedalStatus(200) + 1; } else { - D_play_800D3180[LEVEL_SECTOR_X] = Play_CheckMedalStatus(150) + 1; + gLeveLClearStatus[LEVEL_SECTOR_X] = Play_CheckMedalStatus(150) + 1; } - gNextPlanetPath = 2; + gMissionStatus = MISSION_WARP; } } } else { @@ -1290,7 +1290,7 @@ void Cutscene_CoComplete2(Player* player) { player->timer_1F8 = 0; gFadeoutType = 4; Audio_FadeOutAll(10); - D_play_800D3180[gCurrentLevel] = Play_CheckMedalStatus(150) + 1; + gLeveLClearStatus[gCurrentLevel] = Play_CheckMedalStatus(150) + 1; } break; } @@ -1422,7 +1422,7 @@ void Cutscene_LevelComplete(Player* player) { if (gCurrentLevel == LEVEL_TITANIA) { Titania_LevelComplete(player); - } else if (gNextPlanetPath != 0) { + } else if (gMissionStatus != MISSION_COMPLETE) { Macbeth_LevelComplete2(player); } else { Macbeth_LevelComplete1(player); @@ -1610,7 +1610,7 @@ void Cutscene_DropVsItem(Player* player, ObjectId itemId, Item* item) { void Cutscene_KillPlayer(Player* player) { s32 teamId; - func_8001CA24(player->num); + Audio_StopPlayerNoise(player->num); Audio_KillSfxBySourceAndId(player->sfxSource, 0x0900C010); func_play_800A5FA0(player->sfxSource, 0x0903F004, player->num); player->state_1C8 = PLAYERSTATE_1C8_NEXT; diff --git a/src/engine/fox_edisplay.c b/src/engine/fox_edisplay.c index c6218e05..2815176a 100644 --- a/src/engine/fox_edisplay.c +++ b/src/engine/fox_edisplay.c @@ -1026,11 +1026,11 @@ void Actor_DrawOnRails(Actor* this) { Matrix_MultVec3f(gGfxMatrix, &sp34, &gTeamArrowsViewPos[this->aiType]); } } - if ((this->lockOnTimers[0] != 0) && (gReflectY > 0)) { + if ((this->lockOnTimers[TEAM_ID_FOX] != 0) && (gReflectY > 0)) { sp34.y += this->info.unk_1C; Matrix_MultVec3f(gGfxMatrix, &sp34, &D_display_80161578[0]); if (D_display_80161578[0].z > -200.0f) { - this->lockOnTimers[0] = 0; + this->lockOnTimers[TEAM_ID_FOX] = 0; } } } diff --git a/src/engine/fox_enmy.c b/src/engine/fox_enmy.c index a277bb15..26bcc7eb 100644 --- a/src/engine/fox_enmy.c +++ b/src/engine/fox_enmy.c @@ -2286,8 +2286,8 @@ void ItemMeteoWarp_Update(ItemMeteoWarp* this) { gPlayer[0].state_1C8 = PLAYERSTATE_1C8_ENTER_WARP_ZONE; gPlayer[0].unk_1D0 = 0; AUDIO_PLAY_SFX(0x1900602A, gDefaultSfxSource, 0); - gNextPlanetPath = 2; - D_play_800D3180[gCurrentLevel] = 1; + gMissionStatus = MISSION_WARP; + gLeveLClearStatus[gCurrentLevel] = 1; } } } @@ -2642,9 +2642,9 @@ void Actor_Update(Actor* this) { gChargeTimers[i] = 0; } } - } else if (this->lockOnTimers[0] != 0) { + } else if (this->lockOnTimers[TEAM_ID_FOX] != 0) { if (!(gControllerHold[gMainController].button & A_BUTTON)) { - this->lockOnTimers[0]--; + this->lockOnTimers[TEAM_ID_FOX]--; } gChargeTimers[0] = 0; } diff --git a/src/engine/fox_enmy2.c b/src/engine/fox_enmy2.c index c303222f..9980eaa5 100644 --- a/src/engine/fox_enmy2.c +++ b/src/engine/fox_enmy2.c @@ -307,11 +307,11 @@ void Actor194_8006B46C(Actor194* this, f32 xTrans, f32 yTrans, f32 zTrans, f32 x if (arg7 != 1) { RCP_SetupDL_29(gFogRed, gFogGreen, gFogBlue, gFogAlpha, gFogNear, gFogFar); - if ((arg7 == 0) && (this->lockOnTimers[0] != 0)) { + if ((arg7 == 0) && (this->lockOnTimers[TEAM_ID_FOX] != 0)) { sp34.y += this->info.unk_1C; Matrix_MultVec3f(gGfxMatrix, &sp34, D_display_80161578); if (D_display_80161578->z > -500.0f) { - this->lockOnTimers[0] = 0; + this->lockOnTimers[TEAM_ID_FOX] = 0; } } } else { @@ -1265,7 +1265,7 @@ void ActorEvent_ProcessScript(ActorEvent* this) { break; case EV_OPC(EVOP_SET_REVERB): - Audio_SetBaseSfxReverb(actorScript[this->aiIndex + 1]); + Audio_SetEnvSfxReverb(actorScript[this->aiIndex + 1]); this->aiIndex += 2; ActorEvent_ProcessScript(this); break; @@ -2626,7 +2626,7 @@ void ActorEvent_ProcessTriggers(ActorEvent* this) { case EVC_PRESS_CRIGHT: if (gControllerPress[gMainController].button & R_CBUTTONS) { - func_8001AF40(0); + Audio_SetUnkVoiceParam(0); gCallVoiceParam = 0; gCallTimer = 0; ActorEvent_TriggerBranch(this); @@ -2640,79 +2640,79 @@ void ActorEvent_ProcessTriggers(ActorEvent* this) { break; case EVC_ME_CLEAR: - if (D_play_800D3180[LEVEL_METEO] != 0) { + if (gLeveLClearStatus[LEVEL_METEO] != 0) { ActorEvent_TriggerBranch(this); } break; case EVC_FO_CLEAR: - if (D_play_800D3180[LEVEL_FORTUNA] != 0) { + if (gLeveLClearStatus[LEVEL_FORTUNA] != 0) { ActorEvent_TriggerBranch(this); } break; case EVC_SX_CLEAR: - if (D_play_800D3180[LEVEL_SECTOR_X] != 0) { + if (gLeveLClearStatus[LEVEL_SECTOR_X] != 0) { ActorEvent_TriggerBranch(this); } break; case EVC_TI_CLEAR: - if (D_play_800D3180[LEVEL_TITANIA] != 0) { + if (gLeveLClearStatus[LEVEL_TITANIA] != 0) { ActorEvent_TriggerBranch(this); } break; case EVC_BO_CLEAR: - if (D_play_800D3180[LEVEL_BOLSE] != 0) { + if (gLeveLClearStatus[LEVEL_BOLSE] != 0) { ActorEvent_TriggerBranch(this); } break; case EVC_SY_CLEAR: - if (D_play_800D3180[LEVEL_SECTOR_Y] != 0) { + if (gLeveLClearStatus[LEVEL_SECTOR_Y] != 0) { ActorEvent_TriggerBranch(this); } break; case EVC_KA_CLEAR: - if (D_play_800D3180[LEVEL_KATINA] != 0) { + if (gLeveLClearStatus[LEVEL_KATINA] != 0) { ActorEvent_TriggerBranch(this); } break; case EVC_SO_CLEAR: - if (D_play_800D3180[LEVEL_SOLAR] != 0) { + if (gLeveLClearStatus[LEVEL_SOLAR] != 0) { ActorEvent_TriggerBranch(this); } break; case EVC_MA_CLEAR: - if (D_play_800D3180[LEVEL_MACBETH] != 0) { + if (gLeveLClearStatus[LEVEL_MACBETH] != 0) { ActorEvent_TriggerBranch(this); } break; case EVC_AQ_CLEAR: - if (D_play_800D3180[LEVEL_AQUAS] != 0) { + if (gLeveLClearStatus[LEVEL_AQUAS] != 0) { ActorEvent_TriggerBranch(this); } break; case EVC_ZO_CLEAR: - if (D_play_800D3180[LEVEL_ZONESS] != 0) { + if (gLeveLClearStatus[LEVEL_ZONESS] != 0) { ActorEvent_TriggerBranch(this); } break; case EVC_SZ_CLEAR: - if (D_play_800D3180[LEVEL_SECTOR_Z] != 0) { + if (gLeveLClearStatus[LEVEL_SECTOR_Z] != 0) { ActorEvent_TriggerBranch(this); } break; case EVC_A6_CLEAR: - if (D_play_800D3180[LEVEL_AREA_6] != 0) { + if (gLeveLClearStatus[LEVEL_AREA_6] != 0) { ActorEvent_TriggerBranch(this); } break; diff --git a/src/engine/fox_game.c b/src/engine/fox_game.c index 389eb086..20167e46 100644 --- a/src/engine/fox_game.c +++ b/src/engine/fox_game.c @@ -115,7 +115,7 @@ void Game_SetGameState(void) { gBlurAlpha = 255; gDrawMode = DRAW_NONE; Audio_ClearVoice(); - Audio_SetBaseSfxReverb(0); + Audio_SetEnvSfxReverb(0); } bool Game_ChangeScene(void) { @@ -413,7 +413,7 @@ void Game_Update(void) { D_ctx_801778A4 = 3; gBlurAlpha = 255; for (i = 0; i < 30; i++) { - D_play_800D3180[i] = 0; + gLeveLClearStatus[i] = 0; } gExpertMode = false; gOptionSoundMode = gSaveFile.save.data.soundMode; diff --git a/src/engine/fox_hud.c b/src/engine/fox_hud.c index 03affb02..96eb29fc 100644 --- a/src/engine/fox_hud.c +++ b/src/engine/fox_hud.c @@ -759,7 +759,7 @@ void func_hud_80086DCC(void) { gLevelClearScreenTimer--; } - boolTemp = gNextPlanetPath; + boolTemp = gMissionStatus; if ((gCurrentLevel == LEVEL_TITANIA) || (gCurrentLevel == LEVEL_BOLSE) || (gCurrentLevel == LEVEL_VENOM_1) || (gCurrentLevel == LEVEL_VENOM_2) || (gCurrentLevel == LEVEL_AREA_6) || (gCurrentLevel == LEVEL_AQUAS) || @@ -1258,14 +1258,14 @@ void func_hud_800884E4(void) { s32 mask; s32 i; - D_ctx_80177B70[gMissionNumber] = gHitCount; + gMissionHitCount[gMissionNumber] = gHitCount; mask = 0x00FF0000; for (i = 0; i < 3; i++) { if (gTeamShields[3 - i] <= 0) { - D_ctx_80177B50[gMissionNumber] ^= mask; + gMissionTeamStatus[gMissionNumber] ^= mask; } else { - D_ctx_80177B50[gMissionNumber] |= mask; + gMissionTeamStatus[gMissionNumber] |= mask; } mask >>= 8; } @@ -1289,8 +1289,8 @@ void func_hud_80088564(void) { gSaveFile.save.data.planet[planetId].normalClear = 1; } - if (D_play_800D3180[gCurrentLevel] == 2) { - D_ctx_80177BB0[gMissionNumber] = 1; + if (gLeveLClearStatus[gCurrentLevel] == 2) { + gMissionMedal[gMissionNumber] = 1; if (gExpertMode) { gSaveFile.save.data.planet[planetId].expertMedal = 1; @@ -1456,7 +1456,7 @@ void func_hud_80088970(void) { break; } - func_8001CA24(gPlayer[0].num); + Audio_StopPlayerNoise(gPlayer[0].num); Audio_ClearVoice(); gRadioState = 0; @@ -1496,7 +1496,7 @@ void func_hud_80088970(void) { if (gFillScreenAlpha == 0) { if (gLevelType == LEVELTYPE_PLANET) { if (D_80161838[1] == 0) { - func_8001D520(); + Audio_PlayDeathSequence(); } if (D_80161838[1] == 10) { gLifeCount[gPlayerNum]--; @@ -1509,7 +1509,7 @@ void func_hud_80088970(void) { } } else { if (D_80161838[1] == 0) { - func_8001D520(); + Audio_PlayDeathSequence(); } if (D_80161838[1] == 6) { gLifeCount[gPlayerNum]--; @@ -1564,7 +1564,7 @@ void func_hud_80088970(void) { gSavedHitCount = D_ctx_80177CA0 = 0; - func_8001CA24(0); + Audio_StopPlayerNoise(0); gPlayer[0].state_1C8 = PLAYERSTATE_1C8_NEXT; gScreenFlashTimer = 0; gPlayer[0].timer_1F8 = 0; @@ -1576,7 +1576,7 @@ void func_hud_80088970(void) { break; case 10: - func_8001D638(0); + Audio_PlayPauseSfx(0); gDrawMode = DRAW_PLAY; gPlayState = PLAY_UPDATE; break; @@ -2252,7 +2252,7 @@ void func_hud_8008B044(void) { AUDIO_PLAY_SFX(0x49002018, gDefaultSfxSource, 4); if (gCallVoiceParam != 0) { - func_8001AF40(1); + Audio_SetUnkVoiceParam(1); } D_80161794 = 0; D_80161798 = 1; @@ -5861,7 +5861,7 @@ void HUD_AquasComplete(Player* player) { gFillScreenAlphaStep = 16; if (gFillScreenAlpha == 255) { - D_play_800D3180[LEVEL_AQUAS] = Play_CheckMedalStatus(150) + 1; + gLeveLClearStatus[LEVEL_AQUAS] = Play_CheckMedalStatus(150) + 1; player->state_1C8 = PLAYERSTATE_1C8_NEXT; player->timer_1F8 = 0; Audio_FadeOutAll(10); diff --git a/src/engine/fox_play.c b/src/engine/fox_play.c index 8f424900..c81521e5 100644 --- a/src/engine/fox_play.c +++ b/src/engine/fox_play.c @@ -497,7 +497,7 @@ void func_play_800A594C(void) { } if (D_ctx_8017782C == 0) { if (gCurrentLevel == LEVEL_SOLAR) { - func_8001D1C8(255, 1); + Audio_SetHeatAlarmParams(255, 1); AUDIO_PLAY_SFX(0x4100C023, gDefaultSfxSource, 4); Audio_KillSfxBySourceAndId(gPlayer[0].sfxSource, 0x3140807E); } @@ -2393,7 +2393,7 @@ void func_play_800AB334(void) { break; case LEVEL_VENOM_ANDROSS: AUDIO_SET_SPEC(SFXCHAN_0, AUDIOSPEC_15); - Audio_SetBaseSfxReverb(0); + Audio_SetEnvSfxReverb(0); D_ctx_8017796C = -1; break; } @@ -2562,7 +2562,7 @@ void Play_Init(void) { Audio_KillSfxById(0x49000014); Memory_FreeAll(); D_ctx_80177C78 = D_ctx_80177C8C = gShowBossHealth = gStarWolfMsgTimer = gAllRangeWingRepairTimer = - gAllRangeWingRepairSent = 0; + gAllRangeSuppliesSent = 0; D_display_800CA220 = 0; gShowLevelClearStatusScreen = 0; if (gCurrentLevel != LEVEL_VERSUS) { @@ -2589,10 +2589,10 @@ void Play_Init(void) { func_play_800A594C(); gDropHitCountItem = D_ctx_8017796C = gStartAndrossFightTimer = gSoShieldsEmpty = gAllRangeEventTimer = gAllRangeFrameCount = gBossActive = gGameFrameCount = gCameraShake = D_ctx_801782FC = gBossFrameCount = - gCallTimer = gAllRangeSupplyTimer = gNextPlanetPath = 0; + gCallTimer = gAllRangeSupplyTimer = gMissionStatus = 0; if (gCurrentLevel == LEVEL_SECTOR_X) { - gNextPlanetPath = 1; + gMissionStatus = MISSION_ACCOMPLISHED; } D_ctx_80177CC0 = -25000.0f; D_ctx_80177950 = 1.0f; @@ -2893,8 +2893,8 @@ void func_play_800ACC7C(Player* player) { } gPlayerShots[ARRAY_COUNT(gPlayerShots) - 1].unk_48 = 30.0f; gPlayerShots[ARRAY_COUNT(gPlayerShots) - 1].unk_60 = 0; - func_8001CB80(player->num, 1); - func_8001CCDC(player->num, gPlayerShots[ARRAY_COUNT(gPlayerShots) - 1].sfxSource); + Audio_InitBombSfx(player->num, 1); + Audio_PlayBombFlightSfx(player->num, gPlayerShots[ARRAY_COUNT(gPlayerShots) - 1].sfxSource); } } @@ -3074,8 +3074,8 @@ bool func_play_800AD1F4(Player* player) { } gPlayerShots[ARRAY_COUNT(gPlayerShots) - 1].unk_48 = 30.0f; gPlayerShots[ARRAY_COUNT(gPlayerShots) - 1].unk_60 = 0; - func_8001CB80(player->num, 1); - func_8001CCDC(player->num, gPlayerShots[ARRAY_COUNT(gPlayerShots) - 1].sfxSource); + Audio_InitBombSfx(player->num, 1); + Audio_PlayBombFlightSfx(player->num, gPlayerShots[ARRAY_COUNT(gPlayerShots) - 1].sfxSource); return true; } } @@ -4283,7 +4283,7 @@ void func_play_800B0F50(Player* playerx) { player->unk_018 = 1.0f; } if ((D_ctx_8017782C != 0) && (D_ctx_80177CA0 == 0)) { - D_play_800D3180[gCurrentLevel] = 0; + gLeveLClearStatus[gCurrentLevel] = 0; for (j = 0; j < 10; j++) { D_ctx_80177A10[j] = 0; D_ctx_80177A48[j] = 0.0f; @@ -5107,7 +5107,7 @@ void func_play_800B41EC(Player* player) { if (gCurrentLevel == LEVEL_SOLAR) { Audio_KillSfxById(0x4100C023); } - func_8001CA24(player->num); + Audio_StopPlayerNoise(player->num); func_play_800A5FA0(player->sfxSource, 0x0900C010, player->num); player->shields = 0; player->unk_1D0 = 0; @@ -5521,7 +5521,7 @@ void Player_Update(Player* player) { gPlayerGlareAlphas[0] = 0; gShowAllRangeCountdown = gRadioState = 0; Audio_ClearVoice(); - Audio_SetBaseSfxReverb(0); + Audio_SetEnvSfxReverb(0); D_ctx_80161A94[0] = gGoldRingCount[0]; if (gCurrentLevel == LEVEL_VENOM_ANDROSS) { D_ctx_80177C94 = gGoldRingCount[0]; @@ -6205,8 +6205,8 @@ void Play_UpdateLevel(void) { gPlayer[0].unk_1D0 = 0; gSceneSetup = 1; AUDIO_PLAY_SFX(0x1900602A, gDefaultSfxSource, 0); - gNextPlanetPath = 2; - D_play_800D3180[gCurrentLevel] = 1; + gMissionStatus = MISSION_WARP; + gLeveLClearStatus[gCurrentLevel] = 1; } break; case LEVEL_CORNERIA: @@ -6268,7 +6268,7 @@ void Play_UpdateLevel(void) { } } shields = MIN(gPlayer[0].shields, 255); - func_8001D1C8(shields, heightParam); + Audio_SetHeatAlarmParams(shields, heightParam); if (((gGameFrameCount % 8) == 0) && (gPlayer[0].state_1C8 != PLAYERSTATE_1C8_LEVEL_COMPLETE)) { Solar_8019E8B8(RAND_FLOAT_CENTERED(6000.0f), -80.0f, gPlayer[0].unk_138 + (RAND_FLOAT(2000.0f) + -6000.0f), @@ -6448,11 +6448,11 @@ void Play_Main(void) { (gPlayer[0].state_1C8 == PLAYERSTATE_1C8_LEVEL_INTRO) && gSaveFile.save.data.planet[D_800D2F6C[gCurrentLevel]].normalClear) { Audio_ClearVoice(); - Audio_SetBaseSfxReverb(0); + Audio_SetEnvSfxReverb(0); Play_ClearObjectData(); for (i = 0; i < gCamCount; i++) { Audio_KillSfxBySource(gPlayer[i].sfxSource); - func_8001CA24(i); + Audio_StopPlayerNoise(i); } gPlayState = PLAY_INIT; gDrawMode = gVersusMode = 0; @@ -6465,7 +6465,7 @@ void Play_Main(void) { func_versus_800C1E9C(); } if ((gControllerPress[gMainController].button & START_BUTTON) && gPauseEnabled) { - func_8001D638(1); + Audio_PlayPauseSfx(1); gPlayState = PLAY_PAUSE; D_ctx_80177868 = 4; D_ctx_80178484 = 100000; @@ -6494,7 +6494,7 @@ void Play_Main(void) { } if ((D_ctx_80177868 == 4) && (gControllerPress[gMainController].button & START_BUTTON) && (gPauseEnabled != 0)) { - func_8001D638(0); + Audio_PlayPauseSfx(0); gPlayState = PLAY_UPDATE; gDrawMode = DRAW_PLAY; } diff --git a/src/engine/fox_save.c b/src/engine/fox_save.c index 086e2d12..c6a88897 100644 --- a/src/engine/fox_save.c +++ b/src/engine/fox_save.c @@ -44,8 +44,8 @@ s32 Save_Write(void) { gSaveFile.save.checksum = Save_Checksum(&gSaveFile.save); gSaveFile.backup = gSaveFile.save; gSaveIOBuffer = gSaveFile; - osSendMesg(&gSerialThreadMsgQueue, (OSMesg) SI_WRITE_SAVE, OS_MESG_PRI_NORMAL); - osRecvMesg(&gSaveMsgQueue, &sp1C, OS_MESG_BLOCK); + osSendMesg(&gSerialThreadMesgQueue, (OSMesg) SI_WRITE_SAVE, OS_MESG_NOBLOCK); + MQ_WAIT_FOR_MESG(&gSaveMesgQueue, &sp1C); if (sp1C != (OSMesg) SI_SAVE_SUCCESS) { return -1; } @@ -56,8 +56,8 @@ s32 Save_Read(void) { OSMesg sp24; s32 i; - osSendMesg(&gSerialThreadMsgQueue, (OSMesg) SI_READ_SAVE, OS_MESG_PRI_NORMAL); - osRecvMesg(&gSaveMsgQueue, &sp24, OS_MESG_BLOCK); + osSendMesg(&gSerialThreadMesgQueue, (OSMesg) SI_READ_SAVE, OS_MESG_NOBLOCK); + MQ_WAIT_FOR_MESG(&gSaveMesgQueue, &sp24); if ((s32) sp24 != SI_SAVE_SUCCESS) { return -1; } diff --git a/src/engine/fox_versus.c b/src/engine/fox_versus.c index 6340a806..1ed295c9 100644 --- a/src/engine/fox_versus.c +++ b/src/engine/fox_versus.c @@ -56,7 +56,7 @@ void func_versus_800BC760(void) { for (i = 0; i < gCamCount; i++) { Audio_KillSfxBySource(gPlayer[i].sfxSource); - func_8001CA24(i); + Audio_StopPlayerNoise(i); } gGameState = GSTATE_INIT; diff --git a/src/libultra/io/pfsgetstatus.c b/src/libultra/io/pfsgetstatus.c index 8c8ab37d..a07f1874 100644 --- a/src/libultra/io/pfsgetstatus.c +++ b/src/libultra/io/pfsgetstatus.c @@ -8,11 +8,11 @@ s32 __osPfsGetStatus(OSMesgQueue* queue, int channel) { u8 pattern; OSContStatus status[4]; - __osPfsRequestData(0); - ret = __osSiRawStartDma(1, &__osPfsPifRam); - osRecvMesg(queue, &dummy, 1); - ret = __osSiRawStartDma(0, &__osPfsPifRam); - osRecvMesg(queue, &dummy, 1); + __osPfsRequestData(CONT_CMD_REQUEST_STATUS); + ret = __osSiRawStartDma(OS_WRITE, &__osPfsPifRam); + osRecvMesg(queue, &dummy, OS_MESG_BLOCK); + ret = __osSiRawStartDma(OS_READ, &__osPfsPifRam); + osRecvMesg(queue, &dummy, OS_MESG_BLOCK); __osPfsGetInitData(&pattern, status); if (status[channel].status & CONT_CARD_ON && status[channel].status & CONT_CARD_PULL) { diff --git a/src/mods/levelselect.c b/src/mods/levelselect.c index d9c8a0ad..4a51f980 100644 --- a/src/mods/levelselect.c +++ b/src/mods/levelselect.c @@ -5,6 +5,8 @@ extern PlanetId sPlanetList[15]; extern PlanetId sCurrentPlanetId; extern s32 D_menu_801B8280; extern s32 D_menu_801CD968; +extern s32 D_menu_801CD944; +extern s32 D_menu_801CD948; void Map_801A61B4(LevelId level); void Map_801A6368(void); @@ -48,7 +50,8 @@ void Map_LevelSelect(void) { } // Bypass briefing - if (gControllerPress[0].button & A_BUTTON) { + // if (gControllerPress[0].button & A_BUTTON) { + if ((D_menu_801CD944 == 2) && (D_menu_801CD948 > 0)) { Map_801A61B4(gCurrentLevel); D_menu_801B8280 = 0; D_menu_801CD968 = 0; diff --git a/src/overlays/ovl_ending/fox_end2.c b/src/overlays/ovl_ending/fox_end2.c index 567ab4e1..a97b4119 100644 --- a/src/overlays/ovl_ending/fox_end2.c +++ b/src/overlays/ovl_ending/fox_end2.c @@ -241,9 +241,9 @@ bool Ending_8018DCB4(void) { s32 unk40[10]; for (i = 0; i < gMissionNumber + 1; i++) { - temp2 += ((D_ctx_80177B50[i] & 0x00FF0000) >> 16) & 1; - temp2 += ((D_ctx_80177B50[i] & 0x0000FF00) >> 8) & 1; - temp2 += (D_ctx_80177B50[i] & 0x000000FF) & 1; + temp2 += ((gMissionTeamStatus[i] & 0x00FF0000) >> 16) & 1; + temp2 += ((gMissionTeamStatus[i] & 0x0000FF00) >> 8) & 1; + temp2 += (gMissionTeamStatus[i] & 0x000000FF) & 1; } for (i = 0; i < 10; i += 1) { @@ -502,7 +502,7 @@ void Ending_8018F2A8(u32 arg0, AssetInfo* asset) { void Ending_8018F64C(u32 arg0, AssetInfo* asset) { f32 temp; - if (D_play_800D3180[8] == 0) { + if (gLeveLClearStatus[LEVEL_ZONESS] == 0) { return; } @@ -569,7 +569,7 @@ void Ending_8018F64C(u32 arg0, AssetInfo* asset) { void Ending_8018FC60(u32 arg0, AssetInfo* asset) { f32 temp; - if (D_play_800D3180[16] == 0) { + if (gLeveLClearStatus[LEVEL_KATINA] == 0) { return; } diff --git a/src/overlays/ovl_i1/fox_co.c b/src/overlays/ovl_i1/fox_co.c index 5ff17edc..e653f380 100644 --- a/src/overlays/ovl_i1/fox_co.c +++ b/src/overlays/ovl_i1/fox_co.c @@ -1140,7 +1140,7 @@ void Corneria_8018ACE0(Actor* actor) { Object_SetInfo(&actor->info, actor->obj.id); actor->state = 100; actor->timer_0BC = 10; - actor->lockOnTimers[0] = 0; + actor->lockOnTimers[TEAM_ID_FOX] = 0; actor->vel.x = actor->vel.y = actor->vel.z = 0.0f; } } @@ -1951,7 +1951,7 @@ void Corneria_8018C19C(Boss* boss) { func_boss_80042EC0(boss); boss->fwork[17] = 10.0f; boss->vel.y *= 1.5f; - gNextPlanetPath = 1; + gMissionStatus = MISSION_ACCOMPLISHED; if ((gPlayer[0].state_1C8 == PLAYERSTATE_1C8_ACTIVE) || (gPlayer[0].state_1C8 == PLAYERSTATE_1C8_U_TURN)) { func_boss_8004319C(gPlayer, boss->obj.pos.x, boss->obj.pos.y, boss->obj.pos.z); @@ -3168,7 +3168,7 @@ void Corneria_LevelComplete1(Player* player) { player->state_1C8 = PLAYERSTATE_1C8_NEXT; player->timer_1F8 = 0; gFadeoutType = 4; - D_play_800D3180[gCurrentLevel] = Play_CheckMedalStatus(150) + 1; + gLeveLClearStatus[gCurrentLevel] = Play_CheckMedalStatus(150) + 1; } } break; diff --git a/src/overlays/ovl_i1/fox_tr360.c b/src/overlays/ovl_i1/fox_tr360.c index 0387d8e4..8dcedd49 100644 --- a/src/overlays/ovl_i1/fox_tr360.c +++ b/src/overlays/ovl_i1/fox_tr360.c @@ -236,7 +236,7 @@ void Training_8019949C(void) { } if ((gCallTimer != 0) && (gControllerPress[gMainController].button & R_CBUTTONS)) { - func_8001AF40(0); + Audio_SetUnkVoiceParam(0); gCallVoiceParam = 0; gCallTimer = 0; // This is ROB 64. Keep up the good work. diff --git a/src/overlays/ovl_i1/fox_ve1.c b/src/overlays/ovl_i1/fox_ve1.c index f98852e5..c3edfb90 100644 --- a/src/overlays/ovl_i1/fox_ve1.c +++ b/src/overlays/ovl_i1/fox_ve1.c @@ -2350,7 +2350,7 @@ void Venom1_80198414(void) { D_ctx_80177CB4 = gPlayer[0].wings.leftState; D_ctx_80177CBC = gRightWingHealth[0]; D_ctx_80177CC4 = gLeftWingHealth[0]; - func_8001CA24(0); + Audio_StopPlayerNoise(0); Audio_KillSfxBySource(gPlayer[0].sfxSource); } diff --git a/src/overlays/ovl_i2/fox_me.c b/src/overlays/ovl_i2/fox_me.c index baa43a47..2479cd07 100644 --- a/src/overlays/ovl_i2/fox_me.c +++ b/src/overlays/ovl_i2/fox_me.c @@ -395,7 +395,7 @@ void Meteo_80188344(Boss* boss) { boss->timer_054 = 5; boss->swork[0] += 32; - func_8001D034(boss->sfxSource, 0x3103605B, boss->unk_04A); + Audio_SetTransposeAndPlaySfx(boss->sfxSource, 0x3103605B, boss->unk_04A); boss->unk_04A++; if (boss->unk_04A >= 8) { @@ -2330,7 +2330,7 @@ void Meteo_LevelComplete(Player* player) { player->state_1C8 = PLAYERSTATE_1C8_NEXT; player->timer_1F8 = 0; gFadeoutType = 4; - D_play_800D3180[LEVEL_METEO] = Play_CheckMedalStatus(0xC8) + 1; + gLeveLClearStatus[LEVEL_METEO] = Play_CheckMedalStatus(200) + 1; } } } else { diff --git a/src/overlays/ovl_i2/fox_sx.c b/src/overlays/ovl_i2/fox_sx.c index 8936b38b..55e90771 100644 --- a/src/overlays/ovl_i2/fox_sx.c +++ b/src/overlays/ovl_i2/fox_sx.c @@ -1076,7 +1076,7 @@ void SectorX_80190078(Boss* boss) { gPlayer[0].unk_234 = 1; } Object_Kill(&boss->obj, boss->sfxSource); - gNextPlanetPath = boss->swork[6]; + gMissionStatus = boss->swork[6]; } break; @@ -1759,7 +1759,7 @@ void SectorX_LevelComplete(Player* player) { gFadeoutType = 4; player->timer_1F8 = 0; Play_ClearObjectData(); - D_play_800D3180[LEVEL_SECTOR_X] = Play_CheckMedalStatus(150) + 1; + gLeveLClearStatus[LEVEL_SECTOR_X] = Play_CheckMedalStatus(150) + 1; } } break; diff --git a/src/overlays/ovl_i3/fox_a6.c b/src/overlays/ovl_i3/fox_a6.c index 80b7722e..34a25827 100644 --- a/src/overlays/ovl_i3/fox_a6.c +++ b/src/overlays/ovl_i3/fox_a6.c @@ -2729,7 +2729,7 @@ void Area6_LevelComplete(Player* player) { gFillScreenAlphaTarget = 255; gFillScreenAlphaStep = 8; if (gFillScreenAlpha == 255) { - D_play_800D3180[LEVEL_AREA_6] = Play_CheckMedalStatus(300) + 1; + gLeveLClearStatus[LEVEL_AREA_6] = Play_CheckMedalStatus(300) + 1; for (i = TEAM_ID_FALCO; i < TEAM_ID_MAX; i++) { gPrevPlanetTeamShields[i] = gTeamShields[i]; gPrevPlanetSavedTeamShields[i] = gSavedTeamShields[i]; @@ -2741,7 +2741,7 @@ void Area6_LevelComplete(Player* player) { } } D_ctx_80161A94[0] = gGoldRingCount[0]; - func_8001CA24(0); + Audio_StopPlayerNoise(0); Audio_KillSfxBySource(player->sfxSource); Play_ClearObjectData(); gNextGameState = GSTATE_PLAY; diff --git a/src/overlays/ovl_i3/fox_so.c b/src/overlays/ovl_i3/fox_so.c index 506fa6a1..722c15b7 100644 --- a/src/overlays/ovl_i3/fox_so.c +++ b/src/overlays/ovl_i3/fox_so.c @@ -1128,7 +1128,7 @@ void Solar_LevelStart(Player* player) { player->cam.at.z = player->unk_138; D_ctx_80177950 = 1.0f; - func_8001D1C8(255, 3); + Audio_SetHeatAlarmParams(255, 3); AUDIO_PLAY_SFX(0x4100C023, gDefaultSfxSource, 4); gLoadLevelObjects = 1; gFillScreenAlphaTarget = 0; @@ -2876,7 +2876,7 @@ void Solar_LevelComplete(Player* player) { if (gCsFrameCount == 400) { player->unk_1D0++; Play_ClearObjectData(); - func_8001CA24(0); + Audio_StopPlayerNoise(0); Audio_KillSfxBySource(player->sfxSource); gFillScreenAlpha = 250; player->timer_1F8 = 20; @@ -3016,12 +3016,12 @@ void Solar_LevelComplete(Player* player) { gFillScreenRed = gFillScreenGreen = gFillScreenBlue = 0; gFillScreenAlphaStep = 8; if (gFillScreenAlpha == 255) { - func_8001CA24(0); + Audio_StopPlayerNoise(0); Audio_FadeOutAll(10); player->state_1C8 = PLAYERSTATE_1C8_NEXT; player->timer_1F8 = 0; gFadeoutType = 4; - D_play_800D3180[LEVEL_SOLAR] = Play_CheckMedalStatus(100) + 1; + gLeveLClearStatus[LEVEL_SOLAR] = Play_CheckMedalStatus(100) + 1; } } break; diff --git a/src/overlays/ovl_i3/fox_zo.c b/src/overlays/ovl_i3/fox_zo.c index 41b76607..7513903b 100644 --- a/src/overlays/ovl_i3/fox_zo.c +++ b/src/overlays/ovl_i3/fox_zo.c @@ -1007,7 +1007,7 @@ void Zoness_80191680(Actor* actor) { sp54 = Math_RadToDeg(Math_Atan2F(sp64, sp5C)); otherActor = &gActors[actor->iwork[0]]; if ((actor->state != 0) || (otherActor->obj.status == OBJ_FREE)) { - actor->lockOnTimers[0] = 0; + actor->lockOnTimers[TEAM_ID_FOX] = 0; actor->info.unk_1C = 0.0f; sp54 += 180.0f; if (sp54 > 360.0f) { @@ -4582,7 +4582,7 @@ void Zoness_LevelComplete(Player* player) { if (gCsFrameCount == 160) { player->unk_1D0++; Play_ClearObjectData(); - func_8001CA24(0); + Audio_StopPlayerNoise(0); Audio_KillSfxBySource(player->sfxSource); gFillScreenAlpha = 250; player->timer_1F8 = 20; @@ -4672,12 +4672,12 @@ void Zoness_LevelComplete(Player* player) { gFillScreenRed = gFillScreenGreen = gFillScreenBlue = 0; gFillScreenAlphaStep = 8; if (gFillScreenAlpha == 255) { - func_8001CA24(0); + Audio_StopPlayerNoise(0); Audio_FadeOutAll(10); player->state_1C8 = PLAYERSTATE_1C8_NEXT; player->timer_1F8 = 0; gFadeoutType = 4; - D_play_800D3180[LEVEL_ZONESS] = Play_CheckMedalStatus(250) + 1; + gLeveLClearStatus[LEVEL_ZONESS] = Play_CheckMedalStatus(250) + 1; } } break; @@ -4686,7 +4686,7 @@ void Zoness_LevelComplete(Player* player) { switch (gCsFrameCount) { case 320: if (!gMissedZoSearchlight) { - gNextPlanetPath = 1; + gMissionStatus = MISSION_ACCOMPLISHED; } gLevelClearScreenTimer = 100; break; diff --git a/src/overlays/ovl_i4/fox_bo.c b/src/overlays/ovl_i4/fox_bo.c index dcf0f275..984b032e 100644 --- a/src/overlays/ovl_i4/fox_bo.c +++ b/src/overlays/ovl_i4/fox_bo.c @@ -88,39 +88,39 @@ s32 D_i4_801A0530; f32 D_i4_8019EEC0 = 0.0f; -void Bolse_8018BD60(Actor* actor) { +void Bolse_8018BD60(Actor* this) { s32 i; - Actor* actorPtr; + Actor* actor; f32 D_i4_8019EEC4[4] = { 8000.0f, -8000.0f, 8000.0f, -8000.0f }; f32 D_i4_8019EED4[4] = { 8000.0f, 8000.0f, -8000.0f, -8000.0f }; if (gAllRangeCheckpoint == 0) { - actor->unk_04E++; - if (actor->unk_04E >= 4) { - actor->unk_04E = 0; + this->unk_04E++; + if (this->unk_04E >= 4) { + this->unk_04E = 0; } - for (actorPtr = gActors + 10, i = 10; i < 16; i++, actorPtr++) { - if (actorPtr->obj.status == OBJ_FREE) { - Actor_Initialize(actorPtr); - actorPtr->obj.status = OBJ_ACTIVE; - actorPtr->obj.id = OBJ_ACTOR_ALLRANGE; - actorPtr->obj.pos.x = D_i4_8019EEC4[actor->unk_04E]; - actorPtr->obj.pos.y = 1000.0f; - actorPtr->obj.pos.z = D_i4_8019EED4[actor->unk_04E]; - actorPtr->state = 1; - actorPtr->aiIndex = -1; - actorPtr->health = 24; - actorPtr->iwork[11] = 1; - actorPtr->itemDrop = DROP_SILVER_RING_50p; - actorPtr->aiType = i; - Object_SetInfo(&actorPtr->info, actorPtr->obj.id); - AUDIO_PLAY_SFX(0x3100000C, actorPtr->sfxSource, 4); + for (actor = &gActors[10], i = 10; i < 16; i++, actor++) { + if (actor->obj.status == OBJ_FREE) { + Actor_Initialize(actor); + actor->obj.status = OBJ_ACTIVE; + actor->obj.id = OBJ_ACTOR_ALLRANGE; + actor->obj.pos.x = D_i4_8019EEC4[this->unk_04E]; + actor->obj.pos.y = 1000.0f; + actor->obj.pos.z = D_i4_8019EED4[this->unk_04E]; + actor->state = 1; + actor->aiIndex = -1; + actor->health = 24; + actor->iwork[11] = 1; + actor->itemDrop = DROP_SILVER_RING_50p; + actor->aiType = i; + Object_SetInfo(&actor->info, actor->obj.id); + AUDIO_PLAY_SFX(0x3100000C, actor->sfxSource, 4); break; } } } - func_360_8002F69C(actor); - func_360_8002FC00(actor); + func_360_8002F69C(this); + func_360_8002FC00(this); } f32 D_i4_8019EEE4[] = { -200.0f, -100.0f, -0.0f, 100.0f, 200.0f }; @@ -431,7 +431,7 @@ void Bolse_UpdateEventHandler(Actor* this) { break; case 390: - if (D_play_800D3180[LEVEL_FORTUNA] == 0) { + if (gLeveLClearStatus[LEVEL_FORTUNA] == 0) { Radio_PlayMessage(gMsg_ID_9285, RCID_FOX); } else { Radio_PlayMessage(gMsg_ID_11241, RCID_FOX); @@ -628,7 +628,7 @@ bool Bolse_8018D278(Actor* actor) { Object_Kill(&actor->obj, actor->sfxSource); actor->info.bonus = 0; - actor->lockOnTimers[0] = 0; + actor->lockOnTimers[TEAM_ID_FOX] = 0; actor->info.unk_1C = 0.0f; return true; @@ -743,7 +743,7 @@ void Bolse_8018D7F0(Actor* actor) { Bolse_8018D4F0(actor); Bolse_8018D584(actor); } else { - actor->lockOnTimers[0] = 0; + actor->lockOnTimers[TEAM_ID_FOX] = 0; actor->info.bonus = 0; actor->info.unk_1C = 0.0f; } @@ -1407,7 +1407,7 @@ void Bolse_LevelComplete(Player* player) { if (player->timer_1F8 == 0) { player->unk_1D0 = 5; player->timer_1F8 = 1000; - func_8001CA24(0); + Audio_StopPlayerNoise(0); Audio_KillSfxBySource(player->sfxSource); Play_ClearObjectData(); @@ -1629,9 +1629,9 @@ void Bolse_LevelComplete(Player* player) { D_ctx_80161A94[0] = gGoldRingCount[0]; gNextGameState = GSTATE_PLAY; gNextLevel = LEVEL_VENOM_1; - func_8001CA24(0); + Audio_StopPlayerNoise(0); Audio_KillSfxBySource(player->sfxSource); - D_play_800D3180[LEVEL_BOLSE] = Play_CheckMedalStatus(150) + 1; + gLeveLClearStatus[LEVEL_BOLSE] = Play_CheckMedalStatus(150) + 1; for (i = TEAM_ID_FALCO; i < TEAM_ID_MAX; i++) { gPrevPlanetTeamShields[i] = gTeamShields[i]; diff --git a/src/overlays/ovl_i4/fox_fo.c b/src/overlays/ovl_i4/fox_fo.c index 301525cc..7d3ba318 100644 --- a/src/overlays/ovl_i4/fox_fo.c +++ b/src/overlays/ovl_i4/fox_fo.c @@ -203,7 +203,7 @@ void Fortuna_80187960(Actor* actor) { if ((gStarWolfTeamAlive[0] == 0) && (gStarWolfTeamAlive[1] == 0) && (gStarWolfTeamAlive[2] == 0) && (gStarWolfTeamAlive[3] == 0)) { Radio_PlayMessage(gMsg_ID_9411, RCID_FOX); - gNextPlanetPath = 1; + gMissionStatus = MISSION_ACCOMPLISHED; gPlayer[0].timer_1F8 = 50; player->unk_190 = 5.0f; player->unk_194 = 5.0f; @@ -211,7 +211,7 @@ void Fortuna_80187960(Actor* actor) { SEQCMD_STOP_SEQUENCE(SEQ_PLAYER_BGM, 30); SEQCMD_STOP_SEQUENCE(SEQ_PLAYER_FANFARE, 30); } else { - gNextPlanetPath = 0; + gMissionStatus = MISSION_COMPLETE; gPlayer[0].timer_1F8 = 30; } } @@ -363,7 +363,7 @@ void Fortuna_80187960(Actor* actor) { case 6: actor->iwork[0] += 1; - if (gNextPlanetPath == 0) { + if (gMissionStatus == MISSION_COMPLETE) { actor1->aiIndex = AI360_FOX; actor1->state = 2; actor2->aiIndex = AI360_FOX; @@ -494,7 +494,7 @@ void Fortuna_80188AD0(Actor* actor) { actor->state = 1; actor->info.hitbox = SEGMENTED_TO_VIRTUAL(D_FO_600FF64); actor->info.unk_1C = 0.0f; - actor->lockOnTimers[0] = 0; + actor->lockOnTimers[TEAM_ID_FOX] = 0; actor->info.bonus = 0; AUDIO_PLAY_SFX(0x2903B009, actor->sfxSource, 4); } @@ -645,7 +645,7 @@ void Fortuna_LevelComplete(Player* player) { Math_SmoothStepToF(&player->unk_12C, 0.0f, 0.1f, 15.0f, 0.0f); Math_SmoothStepToF(&player->camRoll, 0.0f, 0.1f, 3.0f, 0.0f); Math_SmoothStepToAngle(&player->unk_4D8, 0.0f, 0.1f, 20.0f, 0.0f); - if (gNextPlanetPath == 0) { + if (gMissionStatus == MISSION_COMPLETE) { if (player->pos.y < 700.0f) { Math_SmoothStepToF(&player->pos.y, 700.0f, 0.1f, 10.0f, 0.0f); } @@ -695,7 +695,7 @@ void Fortuna_LevelComplete(Player* player) { break; case 0: - if (gNextPlanetPath == 0) { + if (gMissionStatus == MISSION_COMPLETE) { Math_SmoothStepToF(&player->unk_0E8, 40.0f, 0.1f, 2.5f, 0.0f); Math_SmoothStepToF(&player->unk_0EC, 60.0f, 0.2f, 5.0f, 0.0f); Math_SmoothStepToF(&player->unk_0E4, 0.0f, 0.1f, 2.5f, 0.0f); @@ -712,7 +712,7 @@ void Fortuna_LevelComplete(Player* player) { } if (player->timer_1F8 == 0) { - if (gNextPlanetPath != 0) { + if (gMissionStatus != MISSION_COMPLETE) { player->timer_1F8 = 150; player->unk_1D0 = -1; player->pos.x = 0.0f; @@ -752,7 +752,7 @@ void Fortuna_LevelComplete(Player* player) { //! FAKE: if (((&dest) && (&dest)) && (&dest)) {} - func_8001CA24(0); + Audio_StopPlayerNoise(0); Audio_KillSfxBySource(player->sfxSource); player->unk_234 = 0; gFillScreenAlpha = 255; @@ -763,7 +763,7 @@ void Fortuna_LevelComplete(Player* player) { break; case 2: - if (!(gNextPlanetPath) && (player->timer_1F8) > 830) { + if (!(gMissionStatus) && (player->timer_1F8) > 830) { gFillScreenAlphaTarget = 0; gFillScreenAlphaStep = 8; } @@ -778,9 +778,9 @@ void Fortuna_LevelComplete(Player* player) { gBosses[0].swork[0] = 1; - if ((func_hud_80090200(&gBosses[0]) == 2) || (gNextPlanetPath != 0)) { + if ((func_hud_80090200(&gBosses[0]) == 2) || (gMissionStatus != MISSION_COMPLETE)) { Play_ClearObjectData(); - if (gNextPlanetPath == 0) { + if (gMissionStatus == MISSION_COMPLETE) { player->unk_1D0 = 10; } else { player->unk_1D0 = 20; @@ -803,7 +803,7 @@ void Fortuna_LevelComplete(Player* player) { D_ctx_801784D4 = D_ctx_801784C8 = D_ctx_801784C8 = D_ctx_801784FC = D_ctx_801784C8 = 58.0f; D_ctx_801784D8 = D_ctx_801784CC = D_ctx_801784CC = D_ctx_80178500 = D_ctx_801784CC = 13.0f; - if (gNextPlanetPath == 0) { + if (gMissionStatus == MISSION_COMPLETE) { player->pos.x = 0.0f; player->pos.y = 0.0f; player->unk_0E4 = 0.0f; @@ -829,7 +829,7 @@ void Fortuna_LevelComplete(Player* player) { SEQCMD_STOP_SEQUENCE(SEQ_PLAYER_BGM, 100); SEQCMD_STOP_SEQUENCE(SEQ_PLAYER_FANFARE, 100); Audio_StartPlayerNoise(0); - if (gNextPlanetPath == 0) { + if (gMissionStatus == MISSION_COMPLETE) { Fortuna_801890EC(actor0, 3); } } @@ -871,7 +871,7 @@ void Fortuna_LevelComplete(Player* player) { } if (gCsFrameCount == 200) { - if (gNextPlanetPath == 0) { + if (gMissionStatus == MISSION_COMPLETE) { AUDIO_PLAY_BGM(SEQ_ID_BAD_END); } else { AUDIO_PLAY_BGM(SEQ_ID_GOOD_END); @@ -919,7 +919,7 @@ void Fortuna_LevelComplete(Player* player) { Radio_PlayMessage(gMsg_ID_20010, RCID_FOX); } - if (gNextPlanetPath == 0) { + if (gMissionStatus == MISSION_COMPLETE) { switch (gCsFrameCount) { case 588: switch (gTeamShields[TEAM_ID_SLIPPY]) { @@ -1101,7 +1101,7 @@ void Fortuna_LevelComplete(Player* player) { for (i = 0; i < 6; i++) { gSavedStarWolfTeamAlive[i] = gStarWolfTeamAlive[i]; } - D_play_800D3180[LEVEL_FORTUNA] = Play_CheckMedalStatus(50) + 1; + gLeveLClearStatus[LEVEL_FORTUNA] = Play_CheckMedalStatus(50) + 1; } break; @@ -1328,7 +1328,7 @@ void Fortuna_LevelComplete(Player* player) { } // clang-format on - D_play_800D3180[LEVEL_FORTUNA] = Play_CheckMedalStatus(50) + 1; + gLeveLClearStatus[LEVEL_FORTUNA] = Play_CheckMedalStatus(50) + 1; Play_ClearObjectData(); break; } diff --git a/src/overlays/ovl_i4/fox_ka.c b/src/overlays/ovl_i4/fox_ka.c index 8154ae20..6e0d4094 100644 --- a/src/overlays/ovl_i4/fox_ka.c +++ b/src/overlays/ovl_i4/fox_ka.c @@ -1042,7 +1042,7 @@ void Katina_801946C4(Boss* boss) { gPlayer[0].unk_1D0 = 2; gPlayer[0].unk_234 = 1; gCsFrameCount = 200; - func_8001CA24(0); + Audio_StopPlayerNoise(0); Audio_KillSfxBySource(&gPlayer[0].sfxSource[0]); gPlayer[0].timer_1F8 = 50; gPlayer[0].unk_0D0 = 0.0f; @@ -1066,7 +1066,7 @@ void Katina_801946C4(Boss* boss) { (gPlayer[0].state_1C8 == PLAYERSTATE_1C8_U_TURN))) { gPlayer[0].state_1C8 = PLAYERSTATE_1C8_LEVEL_COMPLETE; gPlayer[0].unk_1D0 = 0; - gNextPlanetPath = 1; + gMissionStatus = MISSION_ACCOMPLISHED; boss->obj.pos.z = 0.0f; boss->health = -1; boss->fwork[10] = 0.0f; @@ -1367,7 +1367,7 @@ void Katina_80197024(void) { Rand_SetSeed(1, 29100, 9786); - if (gNextPlanetPath != 0) { + if (gMissionStatus != MISSION_COMPLETE) { target = 19; } else { target = 2; @@ -1481,7 +1481,7 @@ void Katina_LevelComplete(Player* player) { if (gCsFrameCount == 250) { player->unk_1D0 = 2; Play_ClearObjectData(); - func_8001CA24(0); + Audio_StopPlayerNoise(0); Audio_KillSfxBySource(&player->sfxSource[0]); player->timer_1F8 = 50; player->unk_0D0 = 0.0f; @@ -1499,7 +1499,7 @@ void Katina_LevelComplete(Player* player) { player->pos.z = 150.0f; player->unk_1D0 = 3; Audio_StartPlayerNoise(0); - if (gNextPlanetPath != 0) { + if (gMissionStatus != MISSION_COMPLETE) { AUDIO_PLAY_BGM(SEQ_ID_GOOD_END); } else { AUDIO_PLAY_BGM(SEQ_ID_BAD_END); @@ -1553,7 +1553,7 @@ void Katina_LevelComplete(Player* player) { player->state_1C8 = PLAYERSTATE_1C8_NEXT; player->timer_1F8 = 0; gFadeoutType = 4; - D_play_800D3180[LEVEL_KATINA] = Play_CheckMedalStatus(150) + 1; + gLeveLClearStatus[LEVEL_KATINA] = Play_CheckMedalStatus(150) + 1; } } switch (gCsFrameCount) { @@ -1587,7 +1587,7 @@ void Katina_LevelComplete(Player* player) { break; case 570: - if (gNextPlanetPath != 0) { + if (gMissionStatus != MISSION_COMPLETE) { if (gKaAllyKillCount == 0) { Radio_PlayMessage(gMsg_ID_18100, RCID_BILL); } else { @@ -1599,7 +1599,7 @@ void Katina_LevelComplete(Player* player) { break; case 700: - if (gNextPlanetPath != 0) { + if (gMissionStatus != MISSION_COMPLETE) { if (gKaAllyKillCount == 0) { Radio_PlayMessage(gMsg_ID_18105, RCID_FOX); } else { diff --git a/src/overlays/ovl_i4/fox_sz.c b/src/overlays/ovl_i4/fox_sz.c index 466a905a..e45723b5 100644 --- a/src/overlays/ovl_i4/fox_sz.c +++ b/src/overlays/ovl_i4/fox_sz.c @@ -58,7 +58,7 @@ void SectorZ_80199900(Actor* actor, s32 arg1) { SEQCMD_STOP_SEQUENCE(SEQ_PLAYER_FANFARE, 1); } - if ((D_i4_801A0560 == 3) && (D_play_800D3180[LEVEL_ZONESS] != 0)) { + if ((D_i4_801A0560 == 3) && (gLeveLClearStatus[LEVEL_ZONESS] != 0)) { D_360_800C9B4C = gAllRangeEventTimer + 110; } } @@ -1209,7 +1209,7 @@ void SectorZ_LevelComplete(Player* player) { if ((gCsFrameCount == 210) && gGreatFoxIntact) { gLevelClearScreenTimer = 100; - gNextPlanetPath = 1; + gMissionStatus = MISSION_ACCOMPLISHED; } if ((gCsFrameCount == 230) && (D_i4_801A0564 != 0)) { @@ -1240,7 +1240,7 @@ void SectorZ_LevelComplete(Player* player) { player->unk_1D0 = 10; player->timer_1F8 = 1000; - func_8001CA24(0U); + Audio_StopPlayerNoise(0U); Audio_KillSfxBySource(player->sfxSource); Play_ClearObjectData(); @@ -1353,7 +1353,7 @@ void SectorZ_LevelComplete(Player* player) { player->state_1C8 = PLAYERSTATE_1C8_NEXT; player->timer_1F8 = 0; gFadeoutType = 4; - D_play_800D3180[LEVEL_SECTOR_Z] = Play_CheckMedalStatus(100) + 1; + gLeveLClearStatus[LEVEL_SECTOR_Z] = Play_CheckMedalStatus(100) + 1; } } break; @@ -1485,10 +1485,10 @@ void SectorZ_LevelComplete(Player* player) { case 1370: if (gGreatFoxIntact) { - gNextPlanetPath = 1; + gMissionStatus = MISSION_ACCOMPLISHED; } else { AUDIO_PLAY_BGM(SEQ_ID_BAD_END); - gNextPlanetPath = 0; + gMissionStatus = MISSION_COMPLETE; } break; diff --git a/src/overlays/ovl_i5/fox_ma.c b/src/overlays/ovl_i5/fox_ma.c index cd6312e3..28a4e433 100644 --- a/src/overlays/ovl_i5/fox_ma.c +++ b/src/overlays/ovl_i5/fox_ma.c @@ -445,19 +445,19 @@ void Macbeth_8019A198(Actor* actor) { if ((actor->iwork[5] == D_MA_801BE2F0[3] - 1) || (actor->iwork[5] == D_i5_801BA1E4 - 1)) { if (D_i5_801BE310 != actor->iwork[5]) { if (actor->vel.z > -6.0f) { - func_8001CFA8(-6.0f); + Audio_SetSfxSpeedModulation(-6.0f); } else { - func_8001CFA8(actor->vel.z); + Audio_SetSfxSpeedModulation(actor->vel.z); } - func_8001D10C(actor->sfxSource, 0x31078085); + Audio_PlaySfxModulated(actor->sfxSource, 0x31078085); D_i5_801BE310 = actor->iwork[5]; } D_i5_801BA1E0 = actor->obj.pos.z; if (D_i5_801BE313 != 0) { if (actor->vel.z > -6.0f) { - func_8001CFA8(-6.0f); + Audio_SetSfxSpeedModulation(-6.0f); } else { - func_8001CFA8(actor->vel.z); + Audio_SetSfxSpeedModulation(actor->vel.z); } } } @@ -890,7 +890,7 @@ void Macbeth_8019C778(Actor* actor) { if (gPlayer[0].state_1C8 == PLAYERSTATE_1C8_ACTIVE) { gPlayer[0].state_1C8 = PLAYERSTATE_1C8_LEVEL_COMPLETE; gPlayer[0].unk_1D0 = 0; - gNextPlanetPath = 0; + gMissionStatus = MISSION_COMPLETE; } actor->state++; Audio_KillSfxBySourceAndId(gPlayer[0].sfxSource, 0x1100000A); @@ -3043,7 +3043,7 @@ void Macbeth_801A4B24(Actor* actor) { D_ctx_8017796C = -1; gPlayer[0].state_1C8 = PLAYERSTATE_1C8_LEVEL_COMPLETE; gPlayer[0].unk_1D0 = 0; - gNextPlanetPath = 1; + gMissionStatus = MISSION_ACCOMPLISHED; actor->timer_0BC = 5; actor->state = 6; Audio_KillSfxBySourceAndId(gPlayer[0].sfxSource, 0x1100000A); @@ -6363,7 +6363,7 @@ void Macbeth_LevelComplete2(Player* player) { } break; case 1420: - if (D_play_800D3180[LEVEL_ZONESS] != 0) { + if (gLeveLClearStatus[LEVEL_ZONESS] != 0) { Macbeth_801AF44C(); } break; @@ -6371,7 +6371,7 @@ void Macbeth_LevelComplete2(Player* player) { D_i5_801BA88C = 170.0f; break; case 1500: - if (D_play_800D3180[LEVEL_ZONESS] != 0) { + if (gLeveLClearStatus[LEVEL_ZONESS] != 0) { Radio_PlayMessage(gMsg_ID_17300, RCID_KATT); } break; @@ -6422,7 +6422,7 @@ void Macbeth_LevelComplete2(Player* player) { case 2160: gProjectFar = 30000.0f; player->unk_240 = 1; - func_8001CA24(0); + Audio_StopPlayerNoise(0); AUDIO_PLAY_SFX(0x01008016, player->sfxSource, 0); break; case 2310: @@ -6461,7 +6461,7 @@ void Macbeth_LevelComplete2(Player* player) { gFadeoutType = 4; Play_ClearObjectData(); Audio_FadeOutAll(10); - D_play_800D3180[LEVEL_MACBETH] = Play_CheckMedalStatus(150) + 1; + gLeveLClearStatus[LEVEL_MACBETH] = Play_CheckMedalStatus(150) + 1; } } } @@ -6971,17 +6971,17 @@ void Macbeth_LevelComplete1(Player* player) { } break; case 680: - if (D_play_800D3180[LEVEL_ZONESS] != 0) { + if (gLeveLClearStatus[LEVEL_ZONESS] != 0) { Macbeth_801B3718(); } break; case 1027: - if (D_play_800D3180[LEVEL_ZONESS] != 0) { + if (gLeveLClearStatus[LEVEL_ZONESS] != 0) { Radio_PlayMessage(gMsg_ID_17350, RCID_KATT); } break; case 1065: - if (D_play_800D3180[LEVEL_ZONESS] != 0) { + if (gLeveLClearStatus[LEVEL_ZONESS] != 0) { gActors[8].state++; } break; @@ -6995,7 +6995,7 @@ void Macbeth_LevelComplete1(Player* player) { gActors[2].state++; break; case 1158: - if (D_play_800D3180[LEVEL_ZONESS] != 0) { + if (gLeveLClearStatus[LEVEL_ZONESS] != 0) { Object_Kill(&gActors[8].obj, gActors[8].sfxSource); } /* fallthrough */ @@ -7030,7 +7030,7 @@ void Macbeth_LevelComplete1(Player* player) { gFadeoutType = 4; Play_ClearObjectData(); Audio_FadeOutAll(10); - D_play_800D3180[LEVEL_MACBETH] = Play_CheckMedalStatus(150) + 1; + gLeveLClearStatus[LEVEL_MACBETH] = Play_CheckMedalStatus(150) + 1; } } } diff --git a/src/overlays/ovl_i5/fox_ti.c b/src/overlays/ovl_i5/fox_ti.c index 7ff65057..ad546293 100644 --- a/src/overlays/ovl_i5/fox_ti.c +++ b/src/overlays/ovl_i5/fox_ti.c @@ -360,7 +360,7 @@ void Titania_80189CC8(Actor* actor) { if (actor->health <= 0) { actor->health = 0; AUDIO_PLAY_SFX(0x2903A008, actor->sfxSource, 4); - actor->lockOnTimers[0] = actor->itemDrop = 0; + actor->lockOnTimers[TEAM_ID_FOX] = actor->itemDrop = 0; actor->info.unk_1C = 0.0f; Actor_Despawn(actor); actor->info.bonus = 0; @@ -866,7 +866,7 @@ void Titania_8018B268(Actor* actor) { Animation_DrawSkeleton(0, D_TI1_700D700, actor->vwork, Titania_8018AFD4, Titania_8018B1B4, actor, &gIdentityMatrix); func_effect_8007D2C8(actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z, 10.0f); - actor->lockOnTimers[0] = 0; + actor->lockOnTimers[TEAM_ID_FOX] = 0; actor->info.unk_1C = 0.0f; } } @@ -1679,7 +1679,7 @@ void Titania_8018C8A8(Actor* actor) { if (actor->health > 0) { actor->info.unk_1C = actor->fwork[27]; } else { - actor->lockOnTimers[0] = 0; + actor->lockOnTimers[TEAM_ID_FOX] = 0; actor->info.unk_1C = 0.0f; } actor->unk_0D0 = 0; @@ -1882,7 +1882,7 @@ void Titania_8018E5F8(Actor* actor) { if (actor->health <= 0) { BonusText_Display(actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z + actor->fwork[27], 2); gHitCount += 2; - actor->lockOnTimers[0] = actor->health = actor->itemDrop = 0; + actor->lockOnTimers[TEAM_ID_FOX] = actor->health = actor->itemDrop = 0; actor->info.unk_1C = 0.0f; Actor_Despawn(actor); actor->info.bonus = 0; diff --git a/src/overlays/ovl_i5/fox_ti_cs.c b/src/overlays/ovl_i5/fox_ti_cs.c index 0d7c3fd8..c1684749 100644 --- a/src/overlays/ovl_i5/fox_ti_cs.c +++ b/src/overlays/ovl_i5/fox_ti_cs.c @@ -498,7 +498,7 @@ void Titania_LevelComplete(Player* player) { Titania_80188108(&gActors[3], 3); gProjectFar = 30000.0f; player->unk_240 = 1; - func_8001CA24(0); + Audio_StopPlayerNoise(0); AUDIO_PLAY_SFX(0x01008016, player->sfxSource, 0); break; } @@ -526,7 +526,7 @@ void Titania_LevelComplete(Player* player) { gFadeoutType = 4; Play_ClearObjectData(); Audio_FadeOutAll(10); - D_play_800D3180[LEVEL_TITANIA] = Play_CheckMedalStatus(150) + 1; + gLeveLClearStatus[LEVEL_TITANIA] = Play_CheckMedalStatus(150) + 1; } } } diff --git a/src/overlays/ovl_i6/fox_andross.c b/src/overlays/ovl_i6/fox_andross.c index e3d18707..a4eb3f41 100644 --- a/src/overlays/ovl_i6/fox_andross.c +++ b/src/overlays/ovl_i6/fox_andross.c @@ -639,7 +639,7 @@ void Andross_80189470(Actor* actor) { if ((gPlayer[0].state_1C8 == PLAYERSTATE_1C8_ACTIVE) && (fabsf(actor->obj.pos.x - gPlayer[0].pos.x) < 500.0f) && (fabsf(actor->obj.pos.z - gPlayer[0].unk_138) < 500.0f)) { Audio_KillSfxById(0x11403076); - Audio_SetBaseSfxReverb(0); + Audio_SetEnvSfxReverb(0); gCurrentLevel = LEVEL_VENOM_2; gLevelPhase = 1; gVenomHardClear = 1; @@ -950,7 +950,7 @@ void Andross_80189B70(Boss* boss) { if (gCsFrameCount == 200) { gBossActive = 0; gPlayer[0].unk_0D0 = D_play_80161A54; - func_8001CA24(0); + Audio_StopPlayerNoise(0); boss->state = 21; func_effect_8007B344(boss->obj.pos.x, boss->obj.pos.y, boss->obj.pos.z, 60.0f, 5); func_effect_8007A568(boss->obj.pos.x, boss->obj.pos.y, boss->obj.pos.z, 40.0f); @@ -1029,7 +1029,7 @@ void Andross_80189B70(Boss* boss) { Radio_PlayMessage(gMsg_ID_19340, RCID_JAMES); break; case 1000: - Audio_SetBaseSfxReverb(0); + Audio_SetEnvSfxReverb(0); break; case 1300: Radio_PlayMessage(gMsg_ID_19355, RCID_JAMES); @@ -1558,7 +1558,7 @@ void Andross_8018D0D8(Boss* boss) { } void Andross_Boss320_Init(Boss320* this) { - Audio_SetBaseSfxReverb(0x18); + Audio_SetEnvSfxReverb(24); D_i6_801A7F5C = D_i6_801A7F64 = D_i6_801A7F6C = D_i6_801A7F74 = D_i6_801A7F7C = D_i6_801A8430 = 0.0f; gAndrossUnkAlpha = 0.0f; this->health = 100; @@ -2471,7 +2471,7 @@ void Andross_8018DBF0(Boss* boss) { boss->timer_050 = 30; boss->swork[9] = 20; boss->fwork[9] = 0.0f; - func_8001CE28(0, boss->sfxSource); + Audio_PlayBombExplodeSfx(0, boss->sfxSource); boss->timer_05C = 50; } break; @@ -3554,7 +3554,7 @@ void Andross_80193C4C(Player* player) { sp68.z = 0.0f; if (gCsFrameCount == 50) { AUDIO_PLAY_SFX(0x11403071, player->sfxSource, 0); - Audio_SetBaseSfxReverb(0); + Audio_SetEnvSfxReverb(0); } if (gCsFrameCount > 40) { sp90 = 1; @@ -3632,7 +3632,7 @@ void Andross_80193C4C(Player* player) { break; case 340: Audio_KillSfxBySourceAndId(player->sfxSource, 0x11403071); - Audio_SetBaseSfxReverb(0); + Audio_SetEnvSfxReverb(0); gVenomHardClear = 0; gBlurAlpha = 255; gCurrentLevel = LEVEL_VENOM_2; @@ -3720,7 +3720,7 @@ void Andross_80193C4C(Player* player) { D_i6_801A7F50 = gAmbientG; D_i6_801A7F54 = gAmbientB; D_ctx_801784D4 = -50.0f; - gNextPlanetPath = 1; + gMissionStatus = MISSION_ACCOMPLISHED; for (i = 0; i < 200; i++) { gScenery360[i].obj.status = OBJ_FREE; } @@ -3946,7 +3946,7 @@ void Andross_80193C4C(Player* player) { if (gFillScreenAlpha == 255) { gNextGameState = GSTATE_ENDING; D_ending_80196D00 = 0; - D_play_800D3180[LEVEL_VENOM_ANDROSS] = Play_CheckMedalStatus(200) + 1; + gLeveLClearStatus[LEVEL_VENOM_ANDROSS] = Play_CheckMedalStatus(200) + 1; AUDIO_SET_SPEC(SFXCHAN_0, AUDIOSPEC_27); } } diff --git a/src/overlays/ovl_i6/fox_sy.c b/src/overlays/ovl_i6/fox_sy.c index 4ebe5d6b..dda59f43 100644 --- a/src/overlays/ovl_i6/fox_sy.c +++ b/src/overlays/ovl_i6/fox_sy.c @@ -2116,7 +2116,7 @@ void SectorY_LevelComplete(Player* player) { D_ctx_80177A48[0] = 1.0f; player->unk_1D0++; Play_ClearObjectData(); - func_8001CA24(0); + Audio_StopPlayerNoise(0); Audio_KillSfxBySource(player->sfxSource); gFillScreenAlpha = 250; player->timer_1F8 = 50; @@ -2221,7 +2221,7 @@ void SectorY_LevelComplete(Player* player) { player->state_1C8 = PLAYERSTATE_1C8_NEXT; player->timer_1F8 = 0; gFadeoutType = 4; - D_play_800D3180[LEVEL_SECTOR_Y] = Play_CheckMedalStatus(150) + 1; + gLeveLClearStatus[LEVEL_SECTOR_Y] = Play_CheckMedalStatus(150) + 1; } } break; @@ -2230,7 +2230,7 @@ void SectorY_LevelComplete(Player* player) { switch (gCsFrameCount) { case 520: if (gHitCount >= 100) { - gNextPlanetPath = 1; + gMissionStatus = MISSION_ACCOMPLISHED; } gLevelClearScreenTimer = 100; break; diff --git a/src/overlays/ovl_i6/fox_ve2.c b/src/overlays/ovl_i6/fox_ve2.c index 72866fae..26b45964 100644 --- a/src/overlays/ovl_i6/fox_ve2.c +++ b/src/overlays/ovl_i6/fox_ve2.c @@ -110,7 +110,7 @@ void Venom2_80196314(Actor* actor) { player->state_1C8 = PLAYERSTATE_1C8_LEVEL_COMPLETE; player->unk_1D0 = 0; - D_play_800D3180[gCurrentLevel] = 2; + gLeveLClearStatus[gCurrentLevel] = 2; D_ctx_80177C94 = gGoldRingCount[0]; D_ctx_80177C9C = player->shields + 1; D_play_80161A5C = D_ctx_80177CA4 = gHitCount; @@ -415,10 +415,10 @@ void Venom2_LevelComplete(Player* player) { gNextGameState = GSTATE_PLAY; gNextLevel = LEVEL_VENOM_ANDROSS; - if (D_play_800D3180[gCurrentLevel] != 0) { + if (gLeveLClearStatus[gCurrentLevel] != 0) { gNextLevelPhase = 1; } - func_8001CA24(0); + Audio_StopPlayerNoise(0); Audio_KillSfxBySource(player->sfxSource); for (i = 0; i < 200; i++) { diff --git a/src/overlays/ovl_menu/fox_map.c b/src/overlays/ovl_menu/fox_map.c index 8e84c006..8393cfab 100644 --- a/src/overlays/ovl_menu/fox_map.c +++ b/src/overlays/ovl_menu/fox_map.c @@ -30,12 +30,12 @@ s32 D_menu_801CD840[24]; s32 D_menu_801CD8A0[15]; s32 D_menu_801CD8E0[7]; s32 D_menu_801CD900[15]; -s32 D_menu_801CD93C; +MissionStatus sPrevMissionStatus; s32 D_menu_801CD940; s32 D_menu_801CD944; // mapState s32 D_menu_801CD948; s32 D_menu_801CD94C; -s32 D_menu_801CD950; +PlanetId sPrevPlanetId; PlanetId sCurrentPlanetId; // sCurrentPlanetId PlanetId sNextPlanetId; s32 D_menu_801CD95C; @@ -1450,19 +1450,19 @@ void Map_8019F164(void) { } } - D_menu_801CD93C = gNextPlanetPath; + sPrevMissionStatus = gMissionStatus; sCurrentPlanetId = Map_GetPlanetId(gCurrentLevel); - D_menu_801CD950 = sCurrentPlanetId; + sPrevPlanetId = sCurrentPlanetId; D_menu_801CD980 = Map_8019FD1C(gCurrentLevel, 0); Map_8019FD1C(gCurrentLevel, 2); - if (D_play_800D3180[gCurrentLevel] == 2) { + if (gLeveLClearStatus[gCurrentLevel] == 2) { D_menu_801CD98C = 1; - D_ctx_80177BB0[gMissionNumber] = 1; + gMissionMedal[gMissionNumber] = 1; Map_8019FD1C(gCurrentLevel, 1); } @@ -1474,16 +1474,16 @@ void Map_8019F164(void) { Map_8019FA1C(); - switch (D_menu_801CD93C) { - case 0: + switch (sPrevMissionStatus) { + case MISSION_COMPLETE: sNextPlanetId = sPlanets[sCurrentPlanetId].dest1; break; - case 1: + case MISSION_ACCOMPLISHED: sNextPlanetId = sPlanets[sCurrentPlanetId].dest2; break; - case 2: + case MISSION_WARP: sNextPlanetId = sPlanets[sCurrentPlanetId].warp; break; } @@ -1502,7 +1502,7 @@ void Map_8019F164(void) { D_menu_801CEFD8 = 0; - if (D_menu_801CD93C != 0) { + if (sPrevMissionStatus != MISSION_COMPLETE) { D_menu_801CEFD8 = 1; } @@ -1521,7 +1521,7 @@ void Map_8019F42C(void) { D_menu_801CD974 = 1; sCurrentPlanetId = Map_GetPlanetId(gCurrentLevel); - D_ctx_80177B70[gMissionNumber] = gHitCount; + gMissionHitCount[gMissionNumber] = gHitCount; Map_8019F910(); Map_8019FD1C(gCurrentLevel, 0); @@ -1534,7 +1534,7 @@ void Map_8019F42C(void) { if (gMissionNumber != 0) { for (i = 0; i < gMissionNumber; i++) { - D_menu_801CD8E0[i] = Map_GetPathId(D_ctx_80177B90[i], D_ctx_80177B90[i + 1]); + D_menu_801CD8E0[i] = Map_GetPathId(gMissionPlanet[i], gMissionPlanet[i + 1]); } } @@ -1559,8 +1559,8 @@ void Map_8019F42C(void) { void Map_8019F600(void) { s32 i; - s32 sp18; - s32 temp_t4; + s32 path1; + s32 path2; gTotalHits = 0; gHitCount = 0; @@ -1568,58 +1568,59 @@ void Map_8019F600(void) { gTeamShields[TEAM_ID_FALCO] = 255; gTeamShields[TEAM_ID_SLIPPY] = 255; gTeamShields[TEAM_ID_PEPPY] = 255; - gSavedTeamShields[1] = 255; - gSavedTeamShields[2] = 255; - gSavedTeamShields[3] = 255; - gPrevPlanetTeamShields[1] = 255; - gPrevPlanetTeamShields[2] = 255; - gPrevPlanetTeamShields[3] = 255; - D_ctx_80177C58[1] = 255; - D_ctx_80177C58[2] = 255; - D_ctx_80177C58[3] = 255; + gSavedTeamShields[TEAM_ID_FALCO] = 255; + gSavedTeamShields[TEAM_ID_SLIPPY] = 255; + gSavedTeamShields[TEAM_ID_PEPPY] = 255; + gPrevPlanetTeamShields[TEAM_ID_FALCO] = 255; + gPrevPlanetTeamShields[TEAM_ID_SLIPPY] = 255; + gPrevPlanetTeamShields[TEAM_ID_PEPPY] = 255; + D_ctx_80177C58[TEAM_ID_FALCO] = 255; + D_ctx_80177C58[TEAM_ID_SLIPPY] = 255; + D_ctx_80177C58[TEAM_ID_PEPPY] = 255; - D_menu_801CD950 = -1; + sPrevPlanetId = PLANET_NONE; - for (i = 0; i < 15; i++) { + for (i = 0; i < ARRAY_COUNT(sPlanets); i++) { sPlanets[i].alpha = 0; } D_menu_801CD970 = 0; - for (i = 0; i < 24; i++) { + //! @bug gPlanetPathStatus is 2 shorter than sPaths + for (i = 0; i < ARRAY_COUNT(sPaths); i++) { gPlanetPathStatus[i] = 0; gTexturedLines[i].unk_24 = 0.0f; } - for (i = 0; i < 7; i++) { - D_ctx_80177BB0[i] = 0; - D_ctx_80177B70[i] = 0; - D_ctx_80177B50[i] = 0x00FFFFFF; + for (i = 0; i < ARRAY_COUNT(gMissionMedal); i++) { + gMissionMedal[i] = 0; + gMissionHitCount[i] = 0; + gMissionTeamStatus[i] = 0x00FFFFFF; } - D_ctx_80177B90[0] = PLANET_CORNERIA; - D_ctx_80177B90[1] = PLANET_NONE; - D_ctx_80177B90[2] = PLANET_NONE; - D_ctx_80177B90[3] = PLANET_NONE; - D_ctx_80177B90[4] = PLANET_NONE; - D_ctx_80177B90[5] = PLANET_NONE; - D_ctx_80177B90[6] = PLANET_VENOM; + gMissionPlanet[0] = PLANET_CORNERIA; + gMissionPlanet[1] = PLANET_NONE; + gMissionPlanet[2] = PLANET_NONE; + gMissionPlanet[3] = PLANET_NONE; + gMissionPlanet[4] = PLANET_NONE; + gMissionPlanet[5] = PLANET_NONE; + gMissionPlanet[6] = PLANET_VENOM; - for (i = 0; i < 24; i++) { + for (i = 0; i < ARRAY_COUNT(sPaths); i++) { sPaths[i].alpha = 255; } gMissionNumber = 0; - gCurrentLevel = 0; + gCurrentLevel = LEVEL_CORNERIA; - sCurrentPlanetId = 9; + sCurrentPlanetId = PLANET_CORNERIA; D_menu_801CEA9C = 0.0f; D_menu_801CD9B0 = 0.002f; D_menu_801CD9B4 = 0.01f; D_menu_801CD944 = 0; - sp18 = Map_GetPathId(sCurrentPlanetId, sPlanets[sCurrentPlanetId].dest1); - temp_t4 = Map_GetPathId(sCurrentPlanetId, sPlanets[sCurrentPlanetId].dest2); - gPlanetPathStatus[sp18] = 1; - gPlanetPathStatus[temp_t4] = 1; + path1 = Map_GetPathId(sCurrentPlanetId, sPlanets[sCurrentPlanetId].dest1); + path2 = Map_GetPathId(sCurrentPlanetId, sPlanets[sCurrentPlanetId].dest2); + gPlanetPathStatus[path1] = 1; + gPlanetPathStatus[path2] = 1; } void Map_8019F83C(void) { @@ -1648,9 +1649,9 @@ void Map_8019F910(void) { for (i = 0; i < 3; i++) { if (gTeamShields[3 - i] <= 0) { - D_ctx_80177B50[gMissionNumber] ^= mask; + gMissionTeamStatus[gMissionNumber] ^= mask; } else { - D_ctx_80177B50[gMissionNumber] |= mask; + gMissionTeamStatus[gMissionNumber] |= mask; } mask >>= 8; } @@ -1690,10 +1691,10 @@ void Map_8019FC04(void) { } for (i = 0; i < 7; i++) { - if (D_ctx_80177B90[i] == PLANET_KATINA) { + if (gMissionPlanet[i] == PLANET_KATINA) { D_menu_801CEB48[1] = false; } - if (D_ctx_80177B90[i] == PLANET_SECTOR_Y) { + if (gMissionPlanet[i] == PLANET_SECTOR_Y) { D_menu_801CEB48[2] = false; } } @@ -2780,7 +2781,7 @@ void Map_801A281C(void) { D_menu_801CEECC = Map_GetPathId(sCurrentPlanetId, sNextPlanetId); - if (D_menu_801CD93C == 2) { + if (sPrevMissionStatus == MISSION_WARP) { gPlanetPathStatus[D_menu_801CEECC] = 5; sPaths[D_menu_801CEECC].unk_14 = 5; } else { @@ -2907,7 +2908,7 @@ void Map_801A2EB8(void) { s32 temp2; if (D_menu_801CD9C4 == 30) { - if (D_menu_801CD93C == 2) { + if (sPrevMissionStatus == MISSION_WARP) { AUDIO_PLAY_SFX(0x0900802A, gDefaultSfxSource, 4); } else { AUDIO_PLAY_SFX(0x09000032, gDefaultSfxSource, 4); @@ -2918,7 +2919,7 @@ void Map_801A2EB8(void) { if (D_menu_801CD9C4 == 80) { sCurrentPlanetId = sNextPlanetId; - D_ctx_80177B90[gMissionNumber] = sCurrentPlanetId; + gMissionPlanet[gMissionNumber] = sCurrentPlanetId; Map_801A6368(); } @@ -2982,7 +2983,7 @@ void Map_801A2EB8(void) { } if ((D_menu_801CEED8 == 5) && (D_menu_801CEEDC == 0.0f)) { - if (D_menu_801CD93C != 2) { + if (sPrevMissionStatus != MISSION_WARP) { sPaths[D_menu_801CEECC].unk_14 = 2; D_menu_801CEEA0 = 0; D_menu_801CEEA4 = 100; @@ -3482,7 +3483,7 @@ void Map_801A4AE8(void) { if (D_menu_801CF000[D_menu_801CEFDC] == 0) { if (D_menu_801CEFD0 != 0) { if (gLifeCount[gPlayerNum] != 0) { - func_8001D520(); + Audio_PlayDeathSequence(); D_menu_801CD9CC = 1; D_menu_801CD9D0 = 0; D_menu_801CD9B8 = 120; @@ -3508,7 +3509,7 @@ void Map_801A4AE8(void) { D_menu_801CD9CC = 0; var_a0 = D_menu_801CEFDC; - if (D_menu_801CD93C != 0) { + if (sPrevMissionStatus != MISSION_COMPLETE) { var_a0 += 2; } @@ -3555,7 +3556,7 @@ void Map_801A4D7C(void) { if (Map_801A5770() != 0) { D_menu_801CEFE8[D_menu_801CEFDC] = 255.0f; - if (D_menu_801CD93C != 0) { + if (sPrevMissionStatus != MISSION_COMPLETE) { if (D_menu_801CEFD4 < 0) { D_menu_801CEFDC++; if (D_menu_801CEFDC >= 3) { @@ -3583,18 +3584,19 @@ void Map_801A4D7C(void) { } if (gControllerPress[gMainController].button & (B_BUTTON | START_BUTTON)) { - func_8001D6DC(0); + Audio_PlayMapMenuSfx(0); D_menu_801CEFC4 = 0; D_menu_801CD944 = 3; return; } if (gControllerPress[gMainController].button & A_BUTTON) { - func_8001D6DC(0); + Audio_PlayMapMenuSfx(0); AUDIO_PLAY_SFX(0x49000003, gDefaultSfxSource, 4); D_menu_801CF000[D_menu_801CEFDC] = 10; - if (((D_menu_801CD93C != 0) && (D_menu_801CEFDC == 2)) || ((D_menu_801CD93C == 0) && (D_menu_801CEFDC == 1))) { + if (((sPrevMissionStatus != MISSION_COMPLETE) && (D_menu_801CEFDC == 2)) || + ((sPrevMissionStatus == MISSION_COMPLETE) && (D_menu_801CEFDC == 1))) { D_menu_801CEFD0 = 1; D_menu_801CF00C = 10; } @@ -3656,17 +3658,17 @@ void Map_801A4FC4(void) { D_menu_801CEEA8 = 255; D_menu_801CEEAC = 255; - gTotalHits -= D_ctx_80177B70[gMissionNumber - 1]; - D_ctx_80177B90[gMissionNumber] = PLANET_NONE; - D_ctx_80177B70[gMissionNumber - 1] = 0; - D_ctx_80177BB0[gMissionNumber - 1] = 0; - D_ctx_80177B50[gMissionNumber - 1] = 0x00FFFFFF; + gTotalHits -= gMissionHitCount[gMissionNumber - 1]; + gMissionPlanet[gMissionNumber] = PLANET_NONE; + gMissionHitCount[gMissionNumber - 1] = 0; + gMissionMedal[gMissionNumber - 1] = 0; + gMissionTeamStatus[gMissionNumber - 1] = 0x00FFFFFF; gHitCount = 0; gMissionNumber--; D_menu_801CD83C = Map_801A05B4(); - sCurrentPlanetId = D_menu_801CD950; + sCurrentPlanetId = sPrevPlanetId; if (sPlanets[sCurrentPlanetId].dest1 != PLANET_NONE) { temp2 = Map_GetPathId(sCurrentPlanetId, sPlanets[sCurrentPlanetId].dest1); @@ -3712,11 +3714,11 @@ void Map_801A53C8(void) { sPaths[D_menu_801CEECC].alpha = 0; sPaths[D_menu_801CEECC].unk_14 = 0; - sCurrentPlanetId = D_menu_801CD950; + sCurrentPlanetId = sPrevPlanetId; if (!D_menu_801CEFD8) { sNextPlanetId = sPlanets[sCurrentPlanetId].dest1; - } else if (D_menu_801CD93C != 2) { + } else if (sPrevMissionStatus != MISSION_WARP) { if (sPlanets[sCurrentPlanetId].dest2 != PLANET_NONE) { sNextPlanetId = sPlanets[sCurrentPlanetId].dest2; } else { @@ -3747,7 +3749,7 @@ void Map_801A53C8(void) { D_menu_801CEEAC = 255; sCurrentPlanetId = sNextPlanetId; - D_ctx_80177B90[gMissionNumber] = sCurrentPlanetId; + gMissionPlanet[gMissionNumber] = sCurrentPlanetId; Map_801A6368(); @@ -3820,7 +3822,7 @@ void Map_801A5834(void) { } var_t0 = 1; - if (D_menu_801CD93C == 0) { + if (sPrevMissionStatus == MISSION_COMPLETE) { var_t0 = 0; } @@ -3850,7 +3852,7 @@ void Map_801A5834(void) { z = 24.0f; colorIndex++; - if (D_menu_801CD93C != 0) { + if (sPrevMissionStatus != MISSION_COMPLETE) { mask = 0xFFFFFFFF; if (D_menu_801CF000[colorIndex] != 0) { mask = 0x00000001; @@ -4261,7 +4263,7 @@ void Map_801A659C(void) { Audio_KillSfxById(0x1100004C); Audio_KillSfxById(0x1100204C); - if (sCurrentPlanetId != 9) { + if (sCurrentPlanetId != PLANET_CORNERIA) { AUDIO_PLAY_SFX(0x49000003, gDefaultSfxSource, 4); } @@ -4565,7 +4567,7 @@ void Map_801A6EC0(PlanetId planetId) { void Map_801A7230(PlanetId planetId) { switch (sPlanets[planetId].anim) { case PL_ANIM_STATIC: - if ((D_menu_801CD944 == 3 || planetId == sCurrentPlanetId || planetId == sNextPlanetId) && + if (((D_menu_801CD944 == 3) || (planetId == sCurrentPlanetId) || (planetId == sNextPlanetId)) && D_menu_801CD944 != 1 && D_menu_801CD944 != 7) { RCP_SetupDL(&gMasterDisp, 0x35); } else { @@ -4575,7 +4577,7 @@ void Map_801A7230(PlanetId planetId) { break; case PL_ANIM_ROTATE_Y: - if ((D_menu_801CD944 == 3 || planetId == sCurrentPlanetId || planetId == sNextPlanetId) && + if (((D_menu_801CD944 == 3) || (planetId == sCurrentPlanetId) || (planetId == sNextPlanetId)) && D_menu_801CD944 != 1 && D_menu_801CD944 != 7) { RCP_SetupDL(&gMasterDisp, 0x17); } else { @@ -5181,7 +5183,7 @@ void Map_801A9224(void) { mask = 0xFFFFFFFF; } - if ((D_menu_801CD944 == 3) || ((sCurrentPlanetId == 0) && (D_menu_801CD944 != 7))) { + if ((D_menu_801CD944 == 3) || ((sCurrentPlanetId == PLANET_METEO) && (D_menu_801CD944 != 7))) { RCP_SetupDL(&gMasterDisp, 0x35); } else { RCP_SetupDL(&gMasterDisp, 0x40); @@ -5493,9 +5495,9 @@ void Map_801A9FD4(s32 arg0) { Matrix_SetGfxMtx(&gMasterDisp); for (var_fs0 = 0.0f, var_fs1 = -41.5f, i = 0; i < var_s3; i++, var_fs0 += 24.0f + temp, var_fs1 += 13.8f) { - if (D_ctx_80177B90[i] != PLANET_NONE) { - Map_801AA434(i, 28.0f + var_fs0, 182.0f, D_ctx_80177B90[i]); - Map_801AA778(i, var_fs1, -25.4f, D_ctx_80177B90[i]); + if (gMissionPlanet[i] != PLANET_NONE) { + Map_801AA434(i, 28.0f + var_fs0, 182.0f, gMissionPlanet[i]); + Map_801AA778(i, var_fs1, -25.4f, gMissionPlanet[i]); } } @@ -5511,7 +5513,7 @@ void Map_801AA1CC(s32 arg0) { s32 temp; f32 y = 182.0f; f32 x2 = 16.0f; - PlanetId* ptr = &D_ctx_80177B90[0]; + PlanetId* ptr = &gMissionPlanet[0]; for (x = 0.0f, i = 0; i < 7; i++, x += 24.0f + x2, ptr++) { RCP_SetupDL(&gMasterDisp, 0x53); @@ -5567,8 +5569,8 @@ void Map_801AA434(s32 arg0, f32 x, f32 y, s32 idx) { Graphics_DisplaySmallText(x + 12.0f - Graphics_GetSmallTextWidth(sPlanetNames[idx]) * 0.5f, y - 8.0f, 1.0f, 1.0f, sPlanetNames[idx]); - Graphics_DisplaySmallNumber(x + 15.0f - ((func_hud_8008BCBC(D_ctx_80177B70[arg0]) - 1) * 8), y + 24.0f + 1.0f, - D_ctx_80177B70[arg0]); + Graphics_DisplaySmallNumber(x + 15.0f - ((func_hud_8008BCBC(gMissionHitCount[arg0]) - 1) * 8), y + 24.0f + 1.0f, + gMissionHitCount[arg0]); if (D_game_80161A34 == 7) { temp = gMissionNumber; @@ -5581,7 +5583,7 @@ void Map_801AA434(s32 arg0, f32 x, f32 y, s32 idx) { mask = 0x00FF0000; x2 = 0.0f; for (i = 0; i < 3; i++, x2 += 9.0f) { - if ((D_ctx_80177B50[arg0] & mask)) { + if ((gMissionTeamStatus[arg0] & mask)) { RCP_SetupDL(&gMasterDisp, 0x53); gDPSetPrimColor(gMasterDisp++, 0, 0, D_menu_801B6ADC[i], D_menu_801B6AE8[i], D_menu_801B6AF4[i], 255); Graphics_DisplaySmallText((s32) x + x2 - 1.0f, (s32) y + 24.0f + 8.0f + 2.0f, 1.0f, 1.0f, @@ -5753,7 +5755,7 @@ void Map_801AA778(s32 arg0, f32 x, f32 y, PlanetId planetId) { break; } - if (D_ctx_80177BB0[arg0] != 0) { + if (gMissionMedal[arg0] != 0) { Map_801AB17C(x, y, 0.0f); } } @@ -6560,8 +6562,8 @@ void Map_801AD11C(void) { var_t0 = 0; if (gControllerPress[gMainController].button & A_BUTTON) { - if ((D_game_80161A34 == 7) && (D_menu_801CD93C != 0) && (!D_menu_801CEFD0)) { - func_8001D6DC(1); + if ((D_game_80161A34 == 7) && (sPrevMissionStatus != MISSION_COMPLETE) && (!D_menu_801CEFD0)) { + Audio_PlayMapMenuSfx(1); D_menu_801CEFC4 = 1; D_menu_801CEFD4 = 0; D_menu_801CEFDC = 0; @@ -6581,7 +6583,7 @@ void Map_801AD11C(void) { if (D_menu_801CEFD0) { AUDIO_PLAY_SFX(0x4900100A, gDefaultSfxSource, 4); } else { - func_8001D6DC(1); + Audio_PlayMapMenuSfx(1); D_menu_801CEFC4 = 1; D_menu_801CEFD4 = 0; D_menu_801CEFDC = 0; @@ -6620,11 +6622,11 @@ void Map_801AD11C(void) { if (var_a1 < var_a2) { var_a0 = var_a2; } - func_8001D15C(var_a0); + Audio_SetSfxMapModulation(var_a0); } if (D_menu_801CF014 == 0 && var_a3 == 1) { - func_8001D10C(gDefaultSfxSource, 0x1100204C); + Audio_PlaySfxModulated(gDefaultSfxSource, 0x1100204C); D_menu_801CF014 = 1; } diff --git a/src/overlays/ovl_menu/fox_option.c b/src/overlays/ovl_menu/fox_option.c index af8ece76..d2c945dd 100644 --- a/src/overlays/ovl_menu/fox_option.c +++ b/src/overlays/ovl_menu/fox_option.c @@ -435,8 +435,8 @@ void Option_Setup(void) { if ((D_game_80161A34 == 5) || (D_game_80161A34 == 8)) { if (D_game_80161A34 == 8) { - D_ctx_80177B90[gMissionNumber] = PLANET_VENOM; - if (D_play_800D3180[LEVEL_VENOM_ANDROSS] == 1) { + gMissionPlanet[gMissionNumber] = PLANET_VENOM; + if (gLeveLClearStatus[LEVEL_VENOM_ANDROSS] == 1) { gSaveFile.save.data.planet[SAVE_SLOT_VENOM_1].played = 1; if (playedExpertMode) { gSaveFile.save.data.planet[SAVE_SLOT_VENOM_1].expertClear = 1; @@ -444,8 +444,8 @@ void Option_Setup(void) { gSaveFile.save.data.planet[SAVE_SLOT_VENOM_1].normalClear = 1; } Save_Write(); - } else if (D_play_800D3180[LEVEL_VENOM_ANDROSS] == 2) { - D_ctx_80177BB0[gMissionNumber] = 1; + } else if (gLeveLClearStatus[LEVEL_VENOM_ANDROSS] == 2) { + gMissionMedal[gMissionNumber] = 1; gSaveFile.save.data.planet[SAVE_SLOT_VENOM_2].played = 1; if (playedExpertMode) { gSaveFile.save.data.planet[SAVE_SLOT_VENOM_2].expertClear = 1; @@ -3836,9 +3836,9 @@ s32 Option_8019C8C4(void) { s32 temp[10]; for (i = 0; i < gMissionNumber + 1; i++) { - var_v0 += ((D_ctx_80177B50[i] & 0x00FF0000) >> 16) & 1; - var_v0 += ((D_ctx_80177B50[i] & 0x0000FF00) >> 8) & 1; - var_v0 += (D_ctx_80177B50[i] & 0x000000FF) & 1; + var_v0 += ((gMissionTeamStatus[i] & 0x00FF0000) >> 16) & 1; + var_v0 += ((gMissionTeamStatus[i] & 0x0000FF00) >> 8) & 1; + var_v0 += (gMissionTeamStatus[i] & 0x000000FF) & 1; } for (i = 0; i < 10; i++) { @@ -4155,13 +4155,13 @@ void Option_8019D624(void) { sp10A[10] = 0; for (i = 0; i < 7; i++) { - sp10A[10] |= (D_ctx_80177BB0[i] << i); + sp10A[10] |= (gMissionMedal[i] << i); } for (j = 0; j < 7; j++) { var_s0[10][j].unk_C = 0; - var_t2 = D_ctx_80177B70[j]; + var_t2 = gMissionHitCount[j]; if (var_t2 > 255) { var_t2 = var_t2 - 256; @@ -4170,21 +4170,21 @@ void Option_8019D624(void) { var_s0[10][j].unk_0 = var_t2; - var_a0 = D_ctx_80177B90[j]; + var_a0 = gMissionPlanet[j]; - if (D_ctx_80177B90[j] == PLANET_VENOM) { + if (gMissionPlanet[j] == PLANET_VENOM) { var_a0 = SAVE_SLOT_VENOM_1; } - if (D_ctx_80177B90[j] == PLANET_SOLAR) { + if (gMissionPlanet[j] == PLANET_SOLAR) { var_a0 = SAVE_SLOT_SOLAR; } var_s0[10][j].unk_8 = var_a0; - var_s0[10][j].unk_D = ((D_ctx_80177B50[j] & 0x00FF0000) >> 16) & 1; - var_s0[10][j].unk_F = ((D_ctx_80177B50[j] & 0x0000FF00) >> 8) & 1; - var_s0[10][j].unk_E = (D_ctx_80177B50[j] & 0x000000FF) & 1; + var_s0[10][j].unk_D = ((gMissionTeamStatus[j] & 0x00FF0000) >> 16) & 1; + var_s0[10][j].unk_F = ((gMissionTeamStatus[j] & 0x0000FF00) >> 8) & 1; + var_s0[10][j].unk_E = (gMissionTeamStatus[j] & 0x000000FF) & 1; } for (i = 0; i < 10; i++) { diff --git a/src/overlays/ovl_menu/fox_title.c b/src/overlays/ovl_menu/fox_title.c index d6f6897c..21d2077d 100644 --- a/src/overlays/ovl_menu/fox_title.c +++ b/src/overlays/ovl_menu/fox_title.c @@ -1651,7 +1651,7 @@ void Title_8018B5C4(void) { D_menu_801B7BEC = 0; Title_8018B058(); - Audio_SetBaseSfxReverb(0x68); + Audio_SetEnvSfxReverb(104); D_menu_801B82A8 = 30; @@ -1861,7 +1861,7 @@ void Title_8018B5C4(void) { D_menu_801B86AC); if (D_menu_801B82B4 > 8) { - Audio_SetBaseSfxReverb(0); + Audio_SetEnvSfxReverb(0); D_menu_801B82C0 = 0; D_menu_801B82C4 = 5; } diff --git a/src/sys/sys_fault.c b/src/sys/sys_fault.c index 864a3be7..04dc5ea4 100644 --- a/src/sys/sys_fault.c +++ b/src/sys/sys_fault.c @@ -230,12 +230,12 @@ void Fault_ThreadEntry(void* arg0) { var_s0 = 0; var_s2 = 0; - osSetEventMesg(OS_EVENT_CPU_BREAK, &gFaultMgr.msgQueue, (OSMesg) FAULT_MESG_BREAK); - osSetEventMesg(OS_EVENT_FAULT, &gFaultMgr.msgQueue, (OSMesg) FAULT_MESG_FAULT); + osSetEventMesg(OS_EVENT_CPU_BREAK, &gFaultMgr.mesgQueue, (OSMesg) FAULT_MESG_BREAK); + osSetEventMesg(OS_EVENT_FAULT, &gFaultMgr.mesgQueue, (OSMesg) FAULT_MESG_FAULT); sp40 = NULL; while (sp40 == NULL) { - osRecvMesg(&gFaultMgr.msgQueue, &sp44, OS_MESG_BLOCK); + MQ_WAIT_FOR_MESG(&gFaultMgr.mesgQueue, &sp44); sp40 = func_80007CEC(); } @@ -244,8 +244,8 @@ void Fault_ThreadEntry(void* arg0) { #if 1 // Turn this off for instant crash debugger (no button combination needed) while (var_s5 == 0) { - osSendMesg(&gSerialThreadMsgQueue, (OSMesg) SI_READ_CONTROLLER, OS_MESG_PRI_NORMAL); - osRecvMesg(&gControllerMsgQueue, NULL, OS_MESG_BLOCK); + osSendMesg(&gSerialThreadMesgQueue, (OSMesg) SI_READ_CONTROLLER, OS_MESG_NOBLOCK); + MQ_WAIT_FOR_MESG(&gControllerMesgQueue, NULL); Controller_UpdateInput(); switch (var_s0) { case 0: @@ -332,7 +332,7 @@ void Fault_Init(void) { gFaultMgr.fb = (FrameBuffer*) (PHYS_TO_K0(osMemSize) - sizeof(FrameBuffer)); gFaultMgr.width = SCREEN_WIDTH; gFaultMgr.height = SCREEN_HEIGHT; - osCreateMesgQueue(&gFaultMgr.msgQueue, &gFaultMgr.msg, 1); + osCreateMesgQueue(&gFaultMgr.mesgQueue, &gFaultMgr.msg, 1); osCreateThread(&gFaultMgr.thread, THREAD_ID_FAULT, Fault_ThreadEntry, 0, gFaultMgr.stack + sizeof(gFaultMgr.stack), 127); osStartThread(&gFaultMgr.thread); diff --git a/src/sys/sys_joybus.c b/src/sys/sys_joybus.c index ea64bb6a..cbdbf1ce 100644 --- a/src/sys/sys_joybus.c +++ b/src/sys/sys_joybus.c @@ -88,33 +88,33 @@ void Controller_ReadData(void) { } } else { osContStartReadData(&gSerialEventQueue); - osRecvMesg(&gSerialEventQueue, NULL, OS_MESG_BLOCK); + MQ_WAIT_FOR_MESG(&gSerialEventQueue, NULL); osContGetReadData(sNextController); } - osSendMesg(&gControllerMsgQueue, (OSMesg) SI_CONT_READ_DONE, OS_MESG_PRI_NORMAL); + osSendMesg(&gControllerMesgQueue, (OSMesg) SI_CONT_READ_DONE, OS_MESG_NOBLOCK); } void Save_ReadData(void) { if ((gStartNMI == 0) && (Save_ReadEeprom(&gSaveIOBuffer) == 0)) { - osSendMesg(&gSaveMsgQueue, (OSMesg) SI_SAVE_SUCCESS, OS_MESG_PRI_NORMAL); + osSendMesg(&gSaveMesgQueue, (OSMesg) SI_SAVE_SUCCESS, OS_MESG_NOBLOCK); return; } - osSendMesg(&gSaveMsgQueue, (OSMesg) SI_SAVE_FAILED, OS_MESG_PRI_NORMAL); + osSendMesg(&gSaveMesgQueue, (OSMesg) SI_SAVE_FAILED, OS_MESG_NOBLOCK); } void Save_WriteData(void) { if ((gStartNMI == 0) && (Save_WriteEeprom(&gSaveIOBuffer) == 0)) { - osSendMesg(&gSaveMsgQueue, (OSMesg) SI_SAVE_SUCCESS, OS_MESG_PRI_NORMAL); + osSendMesg(&gSaveMesgQueue, (OSMesg) SI_SAVE_SUCCESS, OS_MESG_NOBLOCK); return; } - osSendMesg(&gSaveMsgQueue, (OSMesg) SI_SAVE_FAILED, OS_MESG_PRI_NORMAL); + osSendMesg(&gSaveMesgQueue, (OSMesg) SI_SAVE_FAILED, OS_MESG_NOBLOCK); } void Controller_Rumble(void) { s32 i; osContStartQuery(&gSerialEventQueue); - osRecvMesg(&gSerialEventQueue, NULL, OS_MESG_BLOCK); + MQ_WAIT_FOR_MESG(&gSerialEventQueue, NULL); osContGetQuery(sControllerStatus); for (i = 0; i < 4; i++) { diff --git a/src/sys/sys_lib.c b/src/sys/sys_lib.c index 702c3a19..9360abc0 100644 --- a/src/sys/sys_lib.c +++ b/src/sys/sys_lib.c @@ -105,15 +105,15 @@ void Lib_DmaRead(void* src, void* dst, ptrdiff_t size) { osInvalICache(dst, size); osInvalDCache(dst, size); while (size > 0x100) { - osPiStartDma(&gDmaIOMsg, 0, 0, (uintptr_t) src, dst, 0x100, &gDmaMsgQueue); + osPiStartDma(&gDmaIOMsg, 0, 0, (uintptr_t) src, dst, 0x100, &gDmaMesgQueue); size -= 0x100; src = (void*) ((uintptr_t) src + 0x100); dst = (void*) ((uintptr_t) dst + 0x100); - osRecvMesg(&gDmaMsgQueue, NULL, OS_MESG_BLOCK); + MQ_WAIT_FOR_MESG(&gDmaMesgQueue, NULL); } if (size != 0) { - osPiStartDma(&gDmaIOMsg, 0, 0, (uintptr_t) src, dst, size, &gDmaMsgQueue); - osRecvMesg(&gDmaMsgQueue, NULL, OS_MESG_BLOCK); + osPiStartDma(&gDmaIOMsg, 0, 0, (uintptr_t) src, dst, size, &gDmaMesgQueue); + MQ_WAIT_FOR_MESG(&gDmaMesgQueue, NULL); } } diff --git a/src/sys/sys_main.c b/src/sys/sys_main.c index 7ba1f708..1d16f407 100644 --- a/src/sys/sys_main.c +++ b/src/sys/sys_main.c @@ -12,32 +12,32 @@ u32 gSegments[16]; // 800E1FD0 OSMesgQueue gPiMgrCmdQueue; // 800E2010 OSMesg sPiMgrCmdBuff[50]; // 800E2028 -OSMesgQueue gDmaMsgQueue; +OSMesgQueue gDmaMesgQueue; void* sDmaMsgBuff[1]; OSIoMesg gDmaIOMsg; OSMesgQueue gSerialEventQueue; void* sSerialEventBuff[1]; -OSMesgQueue gMainThreadMsgQueue; +OSMesgQueue gMainThreadMesgQueue; void* sMainThreadMsgBuff[32]; -OSMesgQueue gTaskMsgQueue; +OSMesgQueue gTaskMesgQueue; void* sTaskMsgBuff[16]; -OSMesgQueue gAudioVImsgQueue; +OSMesgQueue gAudioVImesgQueue; void* sAudioVImsgBuff[1]; -OSMesgQueue gAudioTaskMsgQueue; +OSMesgQueue gAudioTaskMesgQueue; void* sAudioTaskMsgBuff[1]; -OSMesgQueue gGfxVImsgQueue; +OSMesgQueue gGfxVImesgQueue; void* sGfxVImsgBuff[4]; -OSMesgQueue gGfxTaskMsgQueue; +OSMesgQueue gGfxTaskMesgQueue; void* sGfxTaskMsgBuff[2]; -OSMesgQueue gSerialThreadMsgQueue; +OSMesgQueue gSerialThreadMesgQueue; void* sSerialThreadMsgBuff[8]; -OSMesgQueue gControllerMsgQueue; +OSMesgQueue gControllerMesgQueue; void* sControllerMsgBuff[1]; -OSMesgQueue gSaveMsgQueue; +OSMesgQueue gSaveMesgQueue; void* sSaveMsgBuff[1]; -OSMesgQueue gTimerTaskMsgQueue; +OSMesgQueue gTimerTaskMesgQueue; void* sTimerTaskMsgBuff[16]; -OSMesgQueue gTimerWaitMsgQueue; +OSMesgQueue gTimerWaitMesgQueue; void* sTimerWaitMsgBuff[1]; GfxPool gGfxPools[2]; @@ -107,28 +107,28 @@ void Audio_ThreadEntry(void* arg0) { Audio_InitSounds(); task = AudioThread_CreateTask(); if (task != NULL) { - task->msgQueue = &gAudioTaskMsgQueue; + task->mesgQueue = &gAudioTaskMesgQueue; task->msg = (OSMesg) TASK_MESG_1; osWritebackDCacheAll(); - osSendMesg(&gTaskMsgQueue, task, OS_MESG_PRI_NORMAL); + osSendMesg(&gTaskMesgQueue, task, OS_MESG_NOBLOCK); } while (1) { task = AudioThread_CreateTask(); if (task != NULL) { - task->msgQueue = &gAudioTaskMsgQueue; + task->mesgQueue = &gAudioTaskMesgQueue; task->msg = (OSMesg) TASK_MESG_1; osWritebackDCacheAll(); } - osRecvMesg(&gAudioTaskMsgQueue, NULL, OS_MESG_NOBLOCK); + MQ_GET_MESG(&gAudioTaskMesgQueue, NULL); if (task != NULL) { - osSendMesg(&gTaskMsgQueue, task, OS_MESG_PRI_NORMAL); + osSendMesg(&gTaskMesgQueue, task, OS_MESG_NOBLOCK); } - osRecvMesg(&gAudioVImsgQueue, NULL, OS_MESG_BLOCK); + MQ_WAIT_FOR_MESG(&gAudioVImesgQueue, NULL); } } void Graphics_SetTask(void) { - gGfxTask->msgQueue = &gGfxTaskMsgQueue; + gGfxTask->mesgQueue = &gGfxTaskMesgQueue; gGfxTask->msg = (OSMesg) TASK_MESG_2; gGfxTask->task.t.type = M_GFXTASK; gGfxTask->task.t.flags = 0; @@ -147,7 +147,7 @@ void Graphics_SetTask(void) { gGfxTask->task.t.yield_data_ptr = (u64*) &gOSYieldData; gGfxTask->task.t.yield_data_size = OS_YIELD_DATA_SIZE; osWritebackDCacheAll(); - osSendMesg(&gTaskMsgQueue, gGfxTask, OS_MESG_PRI_NORMAL); + osSendMesg(&gTaskMesgQueue, gGfxTask, OS_MESG_NOBLOCK); } void Graphics_InitializeTask(u32 frameCount) { @@ -200,7 +200,7 @@ void SerialInterface_ThreadEntry(void* arg0) { Controller_Init(); while (1) { - osRecvMesg(&gSerialThreadMsgQueue, &sp34, OS_MESG_BLOCK); + MQ_WAIT_FOR_MESG(&gSerialThreadMesgQueue, &sp34); switch ((s32) sp34) { case SI_READ_CONTROLLER: @@ -223,7 +223,7 @@ void Timer_ThreadEntry(void* arg0) { void* sp24; while (1) { - osRecvMesg(&gTimerTaskMsgQueue, &sp24, OS_MESG_BLOCK); + MQ_WAIT_FOR_MESG(&gTimerTaskMesgQueue, &sp24); Timer_CompleteTask(sp24); } } @@ -234,7 +234,7 @@ void Graphics_ThreadEntry(void* arg0) { u8 validVIsPerFrame; Game_Initialize(); - osSendMesg(&gSerialThreadMsgQueue, (OSMesg) SI_READ_CONTROLLER, OS_MESG_PRI_NORMAL); + osSendMesg(&gSerialThreadMesgQueue, (OSMesg) SI_READ_CONTROLLER, OS_MESG_NOBLOCK); Graphics_InitializeTask(gSysFrameCount); { gSPSegment(gUnkDisp1++, 0, 0); @@ -250,10 +250,10 @@ void Graphics_ThreadEntry(void* arg0) { while (1) { gSysFrameCount++; Graphics_InitializeTask(gSysFrameCount); - osRecvMesg(&gControllerMsgQueue, NULL, OS_MESG_BLOCK); - osSendMesg(&gSerialThreadMsgQueue, (OSMesg) SI_RUMBLE, OS_MESG_PRI_NORMAL); + MQ_WAIT_FOR_MESG(&gControllerMesgQueue, NULL); + osSendMesg(&gSerialThreadMesgQueue, (OSMesg) SI_RUMBLE, OS_MESG_NOBLOCK); Controller_UpdateInput(); - osSendMesg(&gSerialThreadMsgQueue, (OSMesg) SI_READ_CONTROLLER, OS_MESG_PRI_NORMAL); + osSendMesg(&gSerialThreadMesgQueue, (OSMesg) SI_READ_CONTROLLER, OS_MESG_NOBLOCK); if (gControllerPress[3].button & U_JPAD) { Main_SetVIMode(); } @@ -270,7 +270,7 @@ void Graphics_ThreadEntry(void* arg0) { gDPFullSync(gMasterDisp++); gSPEndDisplayList(gMasterDisp++); } - osRecvMesg(&gGfxTaskMsgQueue, NULL, OS_MESG_BLOCK); + MQ_WAIT_FOR_MESG(&gGfxTaskMesgQueue, NULL); Graphics_SetTask(); if (gFillScreen == 0) { osViSwapBuffer(&gFrameBuffers[(gSysFrameCount - 1) % 3]); @@ -278,9 +278,9 @@ void Graphics_ThreadEntry(void* arg0) { func_80007FE4(&gFrameBuffers[(gSysFrameCount - 1) % 3], SCREEN_WIDTH, 16); visPerFrame = MIN(gVIsPerFrame, 4); - validVIsPerFrame = MAX(visPerFrame, gGfxVImsgQueue.validCount + 1); + validVIsPerFrame = MAX(visPerFrame, gGfxVImesgQueue.validCount + 1); for (i = 0; i < validVIsPerFrame; i += 1) { // Can't be ++ - osRecvMesg(&gGfxVImsgQueue, NULL, OS_MESG_BLOCK); + MQ_WAIT_FOR_MESG(&gGfxVImesgQueue, NULL); } Audio_Update(); @@ -288,38 +288,39 @@ void Graphics_ThreadEntry(void* arg0) { } void Main_InitMesgQueues(void) { - osCreateMesgQueue(&gDmaMsgQueue, sDmaMsgBuff, ARRAY_COUNT(sDmaMsgBuff)); - osCreateMesgQueue(&gTaskMsgQueue, sTaskMsgBuff, ARRAY_COUNT(sTaskMsgBuff)); - osCreateMesgQueue(&gAudioVImsgQueue, sAudioVImsgBuff, ARRAY_COUNT(sAudioVImsgBuff)); - osCreateMesgQueue(&gAudioTaskMsgQueue, sAudioTaskMsgBuff, ARRAY_COUNT(sAudioTaskMsgBuff)); - osCreateMesgQueue(&gGfxVImsgQueue, sGfxVImsgBuff, ARRAY_COUNT(sGfxVImsgBuff)); - osCreateMesgQueue(&gGfxTaskMsgQueue, sGfxTaskMsgBuff, ARRAY_COUNT(sGfxTaskMsgBuff)); + osCreateMesgQueue(&gDmaMesgQueue, sDmaMsgBuff, ARRAY_COUNT(sDmaMsgBuff)); + osCreateMesgQueue(&gTaskMesgQueue, sTaskMsgBuff, ARRAY_COUNT(sTaskMsgBuff)); + osCreateMesgQueue(&gAudioVImesgQueue, sAudioVImsgBuff, ARRAY_COUNT(sAudioVImsgBuff)); + osCreateMesgQueue(&gAudioTaskMesgQueue, sAudioTaskMsgBuff, ARRAY_COUNT(sAudioTaskMsgBuff)); + osCreateMesgQueue(&gGfxVImesgQueue, sGfxVImsgBuff, ARRAY_COUNT(sGfxVImsgBuff)); + osCreateMesgQueue(&gGfxTaskMesgQueue, sGfxTaskMsgBuff, ARRAY_COUNT(sGfxTaskMsgBuff)); osCreateMesgQueue(&gSerialEventQueue, sSerialEventBuff, ARRAY_COUNT(sSerialEventBuff)); osSetEventMesg(OS_EVENT_SI, &gSerialEventQueue, NULL); - osCreateMesgQueue(&gMainThreadMsgQueue, sMainThreadMsgBuff, ARRAY_COUNT(sMainThreadMsgBuff)); - osViSetEvent(&gMainThreadMsgQueue, (OSMesg) EVENT_MESG_VI, 1); - osSetEventMesg(OS_EVENT_SP, &gMainThreadMsgQueue, (OSMesg) EVENT_MESG_SP); - osSetEventMesg(OS_EVENT_DP, &gMainThreadMsgQueue, (OSMesg) EVENT_MESG_DP); - osSetEventMesg(OS_EVENT_PRENMI, &gMainThreadMsgQueue, (OSMesg) EVENT_MESG_PRENMI); - osCreateMesgQueue(&gTimerTaskMsgQueue, sTimerTaskMsgBuff, ARRAY_COUNT(sTimerTaskMsgBuff)); - osCreateMesgQueue(&gTimerWaitMsgQueue, sTimerWaitMsgBuff, ARRAY_COUNT(sTimerWaitMsgBuff)); - osCreateMesgQueue(&gSerialThreadMsgQueue, sSerialThreadMsgBuff, ARRAY_COUNT(sSerialThreadMsgBuff)); - osCreateMesgQueue(&gControllerMsgQueue, sControllerMsgBuff, ARRAY_COUNT(sControllerMsgBuff)); - osCreateMesgQueue(&gSaveMsgQueue, sSaveMsgBuff, ARRAY_COUNT(sSaveMsgBuff)); + osCreateMesgQueue(&gMainThreadMesgQueue, sMainThreadMsgBuff, ARRAY_COUNT(sMainThreadMsgBuff)); + osViSetEvent(&gMainThreadMesgQueue, (OSMesg) EVENT_MESG_VI, 1); + osSetEventMesg(OS_EVENT_SP, &gMainThreadMesgQueue, (OSMesg) EVENT_MESG_SP); + osSetEventMesg(OS_EVENT_DP, &gMainThreadMesgQueue, (OSMesg) EVENT_MESG_DP); + osSetEventMesg(OS_EVENT_PRENMI, &gMainThreadMesgQueue, (OSMesg) EVENT_MESG_PRENMI); + osCreateMesgQueue(&gTimerTaskMesgQueue, sTimerTaskMsgBuff, ARRAY_COUNT(sTimerTaskMsgBuff)); + osCreateMesgQueue(&gTimerWaitMesgQueue, sTimerWaitMsgBuff, ARRAY_COUNT(sTimerWaitMsgBuff)); + osCreateMesgQueue(&gSerialThreadMesgQueue, sSerialThreadMsgBuff, ARRAY_COUNT(sSerialThreadMsgBuff)); + osCreateMesgQueue(&gControllerMesgQueue, sControllerMsgBuff, ARRAY_COUNT(sControllerMsgBuff)); + osCreateMesgQueue(&gSaveMesgQueue, sSaveMsgBuff, ARRAY_COUNT(sSaveMsgBuff)); } void Main_HandleRDP(void) { - SPTask** var_v1 = sGfxTasks; + SPTask** task = sGfxTasks; u8 i; - if ((*var_v1)->msgQueue != NULL) { - osSendMesg((*var_v1)->msgQueue, (*var_v1)->msg, OS_MESG_PRI_NORMAL); + if ((*task)->mesgQueue != NULL) { + osSendMesg((*task)->mesgQueue, (*task)->msg, OS_MESG_NOBLOCK); } - (*var_v1)->state = SPTASK_STATE_FINISHED_DP; - for (i = 0; i < ARRAY_COUNT(sGfxTasks) - 1; i += 1, var_v1++) { - *var_v1 = *(var_v1 + 1); + (*task)->state = SPTASK_STATE_FINISHED_DP; + + for (i = 0; i < ARRAY_COUNT(sGfxTasks) - 1; i += 1, task++) { + *task = *(task + 1); } - *var_v1 = NULL; + *task = NULL; } void Main_HandleRSP(void) { @@ -333,8 +334,8 @@ void Main_HandleRSP(void) { } else { task->state = SPTASK_STATE_FINISHED; if (task->task.t.type == M_AUDTASK) { - if (task->msgQueue != NULL) { - osSendMesg(task->msgQueue, task->msg, OS_MESG_PRI_NORMAL); + if (task->mesgQueue != NULL) { + osSendMesg(task->mesgQueue, task->msg, OS_MESG_NOBLOCK); } sAudioTasks[0] = NULL; } @@ -361,7 +362,7 @@ void Main_GetNewTasks(void) { newAudioTask = sNewAudioTasks; newGfxTask = sNewGfxTasks; - while (osRecvMesg(&gTaskMsgQueue, &spTaskMsg, OS_MESG_NOBLOCK) != MSG_QUEUE_EMPTY) { + while (MQ_GET_MESG(&gTaskMesgQueue, &spTaskMsg)) { newTask = (SPTask*) spTaskMsg; newTask->state = SPTASK_STATE_NOT_STARTED; @@ -421,7 +422,7 @@ void Main_StartNextTask(void) { } void Main_ThreadEntry(void* arg0) { - OSMesg ogMsg; + OSMesg osMesg; u8 mesg; osCreateThread(&gAudioThread, THREAD_ID_AUDIO, Audio_ThreadEntry, arg0, @@ -440,13 +441,13 @@ void Main_ThreadEntry(void* arg0) { Main_InitMesgQueues(); while (true) { - osRecvMesg(&gMainThreadMsgQueue, &ogMsg, OS_MESG_BLOCK); - mesg = (u32) ogMsg; + MQ_WAIT_FOR_MESG(&gMainThreadMesgQueue, &osMesg); + mesg = (u32) osMesg; switch (mesg) { case EVENT_MESG_VI: - osSendMesg(&gAudioVImsgQueue, (OSMesg) EVENT_MESG_VI, OS_MESG_PRI_NORMAL); - osSendMesg(&gGfxVImsgQueue, (OSMesg) EVENT_MESG_VI, OS_MESG_PRI_NORMAL); + osSendMesg(&gAudioVImesgQueue, (OSMesg) EVENT_MESG_VI, OS_MESG_NOBLOCK); + osSendMesg(&gGfxVImesgQueue, (OSMesg) EVENT_MESG_VI, OS_MESG_NOBLOCK); Main_GetNewTasks(); break; case EVENT_MESG_SP: diff --git a/src/sys/sys_timer.c b/src/sys/sys_timer.c index 6e33932e..c3ffaa17 100644 --- a/src/sys/sys_timer.c +++ b/src/sys/sys_timer.c @@ -23,7 +23,7 @@ s32 Timer_CreateTask(u64 time, TimerAction action, s32* address, s32 value) { task->action = action; task->address = address; task->value = value; - return osSetTimer(&task->timer, time, 0, &gTimerTaskMsgQueue, task); + return osSetTimer(&task->timer, time, 0, &gTimerTaskMesgQueue, task); } void Timer_Increment(s32* address, s32 value) { @@ -45,6 +45,6 @@ void Timer_Wait(u64 time) { OSTimer timer; OSMesg dummy; - osSetTimer(&timer, time, 0, &gTimerWaitMsgQueue, NULL); - osRecvMesg(&gTimerWaitMsgQueue, &dummy, OS_MESG_BLOCK); + osSetTimer(&timer, time, 0, &gTimerWaitMesgQueue, NULL); + MQ_WAIT_FOR_MESG(&gTimerWaitMesgQueue, &dummy); } diff --git a/tools/Torch b/tools/Torch index a72020cc..df54367b 160000 --- a/tools/Torch +++ b/tools/Torch @@ -1 +1 @@ -Subproject commit a72020cca7f1498f73d42c71e694fd114843fe73 +Subproject commit df54367b676f44d2b925e681ae05eef665f7c45f