From 123a9352e0359b0e38eabf1a9aac0b6ea54973c9 Mon Sep 17 00:00:00 2001 From: fig02 Date: Wed, 30 Apr 2025 17:16:06 -0400 Subject: [PATCH] Audio Internal Library: Document original function names from Animal Crossing (#2513) * finish thread.c * load.c complete * complete seqplayer.c * format --- src/audio/lib/load.c | 232 +++++++++++++++++++++++++++++++++++++- src/audio/lib/seqplayer.c | 107 ++++++++++++++++++ src/audio/lib/thread.c | 81 +++++++++++++ 3 files changed, 419 insertions(+), 1 deletion(-) diff --git a/src/audio/lib/load.c b/src/audio/lib/load.c index ebd968ae9b..f723e5b836 100644 --- a/src/audio/lib/load.c +++ b/src/audio/lib/load.c @@ -1,3 +1,7 @@ +/** + * Original Filename: system.c + */ + #include "array_count.h" #include "attributes.h" #include "buffers.h" @@ -77,6 +81,9 @@ void* sUnusedHandler = NULL; s32 gAudioContextInitialized = false; +/** + * original name: Nas_WaveDmaFrameWork + */ void AudioLoad_DecreaseSampleDmaTtls(void) { u32 i; @@ -109,6 +116,9 @@ void AudioLoad_DecreaseSampleDmaTtls(void) { gAudioCtx.unused2628 = 0; } +/** + * original name:Nas_WaveDmaCallBack + */ void* AudioLoad_DmaSampleData(u32 devAddr, u32 size, s32 arg2, u8* dmaIndexRef, s32 medium) { s32 pad1; SampleDma* dma; @@ -203,6 +213,9 @@ void* AudioLoad_DmaSampleData(u32 devAddr, u32 size, s32 arg2, u8* dmaIndexRef, return (devAddr - dmaDevAddr) + dma->ramAddr; } +/** + * original name: Nas_WaveDmaNew + */ void AudioLoad_InitSampleDmaBuffers(s32 numNotes) { SampleDma* dma; s32 i; @@ -272,6 +285,9 @@ void AudioLoad_InitSampleDmaBuffers(s32 numNotes) { gAudioCtx.sampleDmaReuseQueue2WrPos = gAudioCtx.sampleDmaCount - gAudioCtx.sampleDmaListSize1; } +/** + * original name: Nas_CheckIDbank + */ s32 AudioLoad_IsFontLoadComplete(s32 fontId) { if (fontId == 0xFF) { return true; @@ -284,6 +300,9 @@ s32 AudioLoad_IsFontLoadComplete(s32 fontId) { } } +/** + * original name: Nas_CheckIDseq + */ s32 AudioLoad_IsSeqLoadComplete(s32 seqId) { if (seqId == 0xFF) { return true; @@ -296,6 +315,9 @@ s32 AudioLoad_IsSeqLoadComplete(s32 seqId) { } } +/** + * original name: Nas_CheckIDwave + */ s32 AudioLoad_IsSampleLoadComplete(s32 sampleBankId) { if (sampleBankId == 0xFF) { return true; @@ -309,18 +331,27 @@ s32 AudioLoad_IsSampleLoadComplete(s32 sampleBankId) { } } +/** + * original name: Nas_WriteIDbank + */ void AudioLoad_SetFontLoadStatus(s32 fontId, s32 loadStatus) { if ((fontId != 0xFF) && (gAudioCtx.fontLoadStatus[fontId] != LOAD_STATUS_PERMANENTLY_LOADED)) { gAudioCtx.fontLoadStatus[fontId] = loadStatus; } } +/** + * original name: Nas_WriteIDseq + */ void AudioLoad_SetSeqLoadStatus(s32 seqId, s32 loadStatus) { if ((seqId != 0xFF) && (gAudioCtx.seqLoadStatus[seqId] != LOAD_STATUS_PERMANENTLY_LOADED)) { gAudioCtx.seqLoadStatus[seqId] = loadStatus; } } +/** + * original name: Nas_WriteIDwave + */ void AudioLoad_SetSampleFontLoadStatusAndApplyCaches(s32 sampleBankId, s32 loadStatus) { if (sampleBankId != 0xFF) { if (gAudioCtx.sampleFontLoadStatus[sampleBankId] != LOAD_STATUS_PERMANENTLY_LOADED) { @@ -334,12 +365,18 @@ void AudioLoad_SetSampleFontLoadStatusAndApplyCaches(s32 sampleBankId, s32 loadS } } +/** + * original name: Nas_WriteIDwaveOnly + */ void AudioLoad_SetSampleFontLoadStatus(s32 sampleBankId, s32 loadStatus) { if ((sampleBankId != 0xFF) && (gAudioCtx.sampleFontLoadStatus[sampleBankId] != LOAD_STATUS_PERMANENTLY_LOADED)) { gAudioCtx.sampleFontLoadStatus[sampleBankId] = loadStatus; } } +/** + * original name: Nas_BankHeaderInit + */ void AudioLoad_InitTable(AudioTable* table, u32 romAddr, u16 unkMediumParam) { s32 i; @@ -353,6 +390,9 @@ void AudioLoad_InitTable(AudioTable* table, u32 romAddr, u16 unkMediumParam) { } } +/** + * original name: Nas_PreLoadBank + */ SoundFontData* AudioLoad_SyncLoadSeqFonts(s32 seqId, u32* outDefaultFontId) { s32 pad[2]; s32 index; @@ -379,6 +419,9 @@ SoundFontData* AudioLoad_SyncLoadSeqFonts(s32 seqId, u32* outDefaultFontId) { return fontData; } +/** + * original name: Nas_PreLoadSeq + */ void AudioLoad_SyncLoadSeqParts(s32 seqId, s32 arg1) { s32 pad; u32 defaultFontId; @@ -393,6 +436,9 @@ void AudioLoad_SyncLoadSeqParts(s32 seqId, s32 arg1) { } } +/** + * original name: __Nas_LoadVoice_Inner + */ s32 AudioLoad_SyncLoadSample(Sample* sample, s32 fontId) { void* sampleAddr; @@ -417,6 +463,9 @@ s32 AudioLoad_SyncLoadSample(Sample* sample, s32 fontId) { //! @bug Missing return, but the return value is never used so it's fine. } +/** + * original name: Nas_LoadVoice + */ s32 AudioLoad_SyncLoadInstrument(s32 fontId, s32 instId, s32 drumId) { if (instId < 0x7F) { Instrument* instrument = Audio_GetInstrumentInner(fontId, instId); @@ -443,24 +492,39 @@ s32 AudioLoad_SyncLoadInstrument(s32 fontId, s32 instId, s32 drumId) { } } +/** + * original name: Nas_PreLoad_BG + */ void AudioLoad_AsyncLoad(s32 tableType, s32 id, s32 nChunks, s32 retData, OSMesgQueue* retQueue) { if (AudioLoad_AsyncLoadInner(tableType, id, nChunks, retData, retQueue) == NULL) { osSendMesg(retQueue, (OSMesg)0xFFFFFFFF, OS_MESG_NOBLOCK); } } +/** + * original name: Nas_PreLoadSeq_BG + */ void AudioLoad_AsyncLoadSeq(s32 seqId, s32 arg1, s32 retData, OSMesgQueue* retQueue) { AudioLoad_AsyncLoad(SEQUENCE_TABLE, seqId, 0, retData, retQueue); } +/** + * original name: Nas_PreLoadWave_BG + */ void AudioLoad_AsyncLoadSampleBank(s32 sampleBankId, s32 arg1, s32 retData, OSMesgQueue* retQueue) { AudioLoad_AsyncLoad(SAMPLE_TABLE, sampleBankId, 0, retData, retQueue); } +/** + * original name: Nas_PreLoadBank_BG + */ void AudioLoad_AsyncLoadFont(s32 fontId, s32 arg1, s32 retData, OSMesgQueue* retQueue) { AudioLoad_AsyncLoad(FONT_TABLE, fontId, 0, retData, retQueue); } +/** + * original name: Nas_SeqToBank + */ u8* AudioLoad_GetFontsForSequence(s32 seqId, u32* outNumFonts) { s32 index = ((u16*)gAudioCtx.sequenceFontTable)[seqId]; @@ -471,6 +535,9 @@ u8* AudioLoad_GetFontsForSequence(s32 seqId, u32* outNumFonts) { return &gAudioCtx.sequenceFontTable[index]; } +/** + * original name: Nas_FlushBank + */ void AudioLoad_DiscardSeqFonts(s32 seqId) { s32 fontId; s32 index = ((u16*)gAudioCtx.sequenceFontTable)[seqId]; @@ -486,6 +553,9 @@ void AudioLoad_DiscardSeqFonts(s32 seqId) { } } +/** + * original name: __Kill_Bank + */ void AudioLoad_DiscardFont(s32 fontId) { u32 i; AudioCache* pool = &gAudioCtx.fontCache; @@ -507,6 +577,9 @@ void AudioLoad_DiscardFont(s32 fontId) { AudioHeap_DiscardFont(fontId); } +/** + * original name: Nas_StartMySeq + */ s32 AudioLoad_SyncInitSeqPlayer(s32 playerIdx, s32 seqId, s32 arg2) { if (gAudioCtx.resetTimer != 0) { return 0; @@ -520,6 +593,9 @@ s32 AudioLoad_SyncInitSeqPlayer(s32 playerIdx, s32 seqId, s32 arg2) { //! The callers of this function do not use the return value, so it's fine. } +/** + * original name: Nas_StartSeq_Skip + */ s32 AudioLoad_SyncInitSeqPlayerSkipTicks(s32 playerIdx, s32 seqId, s32 skipTicks) { if (gAudioCtx.resetTimer != 0) { return 0; @@ -530,6 +606,9 @@ s32 AudioLoad_SyncInitSeqPlayerSkipTicks(s32 playerIdx, s32 seqId, s32 skipTicks //! @bug Missing return, see comment in AudioLoad_SyncInitSeqPlayer above. } +/** + * original name: __Nas_StartSeq + */ s32 AudioLoad_SyncInitSeqPlayerInternal(s32 playerIdx, s32 seqId, s32 arg2) { SequencePlayer* seqPlayer = &gAudioCtx.seqPlayers[playerIdx]; u8* seqData; @@ -572,6 +651,9 @@ s32 AudioLoad_SyncInitSeqPlayerInternal(s32 playerIdx, s32 seqId, s32 arg2) { //! @bug missing return (but the return value is not used so it's not UB) } +/** + * original name: __Load_Seq + */ u8* AudioLoad_SyncLoadSeq(s32 seqId) { s32 pad; s32 didAllocate; @@ -583,10 +665,16 @@ u8* AudioLoad_SyncLoadSeq(s32 seqId) { return AudioLoad_SyncLoad(SEQUENCE_TABLE, seqId, &didAllocate); } +/** + * original name: __Load_Wave_Check + */ u32 AudioLoad_GetSampleBank(u32 sampleBankId, u32* outMedium) { return AudioLoad_TrySyncLoadSampleBank(sampleBankId, outMedium, true); } +/** + * original name: __Load_Wave + */ u32 AudioLoad_TrySyncLoadSampleBank(u32 sampleBankId, u32* outMedium, s32 noLoad) { void* ramAddr; AudioTable* sampleBankTable; @@ -619,6 +707,9 @@ u32 AudioLoad_TrySyncLoadSampleBank(u32 sampleBankId, u32* outMedium, s32 noLoad return sampleBankTable->entries[realTableId].romAddr; } +/** + * original name: __Load_Ctrl + */ SoundFontData* AudioLoad_SyncLoadFont(u32 fontId) { SoundFontData* fontData; s32 sampleBankId1; @@ -658,6 +749,9 @@ SoundFontData* AudioLoad_SyncLoadFont(u32 fontId) { return fontData; } +/** + * original name: __Load_Bank + */ void* AudioLoad_SyncLoad(u32 tableType, u32 id, s32* didAllocate) { u32 size; AudioTable* table; @@ -742,6 +836,9 @@ void* AudioLoad_SyncLoad(u32 tableType, u32 id, s32* didAllocate) { return ramAddr; } +/** + * original name: __Link_BankNum + */ u32 AudioLoad_GetRealTableIndex(s32 tableType, u32 id) { AudioTable* table = AudioLoad_GetLoadTable(tableType); @@ -752,6 +849,9 @@ u32 AudioLoad_GetRealTableIndex(s32 tableType, u32 id) { return id; } +/** + * original name: __Check_Cache + */ void* AudioLoad_SearchCaches(s32 tableType, s32 id) { void* ramAddr; @@ -768,6 +868,10 @@ void* AudioLoad_SearchCaches(s32 tableType, s32 id) { return NULL; } +/** + * Animal Crossing's equivalent to this function is __Get_ArcHeader. + * This name must be new, because ARC files are GameCube speicifc. + */ AudioTable* AudioLoad_GetLoadTable(s32 tableType) { AudioTable* table; @@ -793,7 +897,9 @@ AudioTable* AudioLoad_GetLoadTable(s32 tableType) { /** * Read and extract information from soundFont binary loaded into ram. - * Also relocate offsets into pointers within this loaded soundFont + * Also relocate offsets into pointers within this loaded soundFont. + * + * original name: Nas_BankOfsToAddr_Inner * * @param fontId index of font being processed * @param fontDataStartAddr ram address of raw soundfont binary loaded into cache @@ -923,6 +1029,9 @@ void AudioLoad_RelocateFont(s32 fontId, SoundFontData* fontDataStartAddr, Sample gAudioCtx.soundFontList[fontId].instruments = (Instrument**)(fontData + 2); } +/** + * original name: Nas_FastCopy + */ void AudioLoad_SyncDma(u32 devAddr, u8* ramAddr, u32 size, s32 medium) { OSMesgQueue* msgQueue = &gAudioCtx.syncDmaQueue; OSIoMesg* ioMesg = &gAudioCtx.syncDmaIoMesg; @@ -947,9 +1056,15 @@ void AudioLoad_SyncDma(u32 devAddr, u8* ramAddr, u32 size, s32 medium) { } } +/** + * original name: Nas_FastDiskCopy + */ void AudioLoad_SyncDmaUnkMedium(u32 devAddr, u8* addr, u32 size, s32 unkMediumParam) { } +/** + * original name: Nas_StartDma + */ s32 AudioLoad_Dma(OSIoMesg* mesg, u32 priority, s32 direction, u32 devAddr, void* ramAddr, u32 size, OSMesgQueue* reqQueue, s32 medium, const char* dmaFuncType) { OSPiHandle* handle; @@ -987,15 +1102,24 @@ s32 AudioLoad_Dma(OSIoMesg* mesg, u32 priority, s32 direction, u32 devAddr, void return 0; } +/** + * original name: __OfsToLbaOfs + */ void AudioLoad_Unused1(void) { } +/** + * original name: EmemLoad + */ void AudioLoad_SyncLoadSimple(u32 tableType, u32 fontId) { s32 didAllocate; AudioLoad_SyncLoad(tableType, fontId, &didAllocate); } +/** + * original name: __Load_Bank_BG + */ void* AudioLoad_AsyncLoadInner(s32 tableType, s32 id, s32 nChunks, s32 retData, OSMesgQueue* retQueue) { u32 size; AudioTable* table; @@ -1102,20 +1226,32 @@ void* AudioLoad_AsyncLoadInner(s32 tableType, s32 id, s32 nChunks, s32 retData, return ramAddr; } +/** + * original name: Nas_BgDmaFrameWork + */ void AudioLoad_ProcessLoads(s32 resetStatus) { AudioLoad_ProcessSlowLoads(resetStatus); AudioLoad_ProcessSamplePreloads(resetStatus); AudioLoad_ProcessAsyncLoads(resetStatus); } +/** + * original name: Nas_SetRomHandler + */ void AudioLoad_SetDmaHandler(DmaHandler callback) { sDmaHandler = callback; } +/** + * original name: Nas_SetRomHandler + */ void AudioLoad_SetUnusedHandler(void* callback) { sUnusedHandler = callback; } +/** + * original name: __SetVlute + */ void AudioLoad_InitSoundFont(s32 fontId) { SoundFont* font = &gAudioCtx.soundFontList[fontId]; AudioTableEntry* entry = &gAudioCtx.soundFontTable->entries[fontId]; @@ -1127,6 +1263,9 @@ void AudioLoad_InitSoundFont(s32 fontId) { font->numSfx = entry->shortData3; } +/** + * original name: Nas_InitAudio + */ void AudioLoad_Init(void* heap, u32 heapSize) { s32 pad[18]; s32 numFonts; @@ -1262,11 +1401,17 @@ void AudioLoad_Init(void* heap, u32 heapSize) { osSendMesg(gAudioCtx.taskStartQueueP, (OSMesg)gAudioCtx.totalTaskCount, OS_MESG_NOBLOCK); } +/** + * original name: LpsInit + */ void AudioLoad_InitSlowLoads(void) { gAudioCtx.slowLoads[0].state = SLOW_LOAD_STATE_WAITING; gAudioCtx.slowLoads[1].state = SLOW_LOAD_STATE_WAITING; } +/** + * original name: VoiceLoad + */ s32 AudioLoad_SlowLoadSample(s32 fontId, s32 instId, s8* status) { Sample* sample; AudioSlowLoad* slowLoad; @@ -1317,6 +1462,9 @@ s32 AudioLoad_SlowLoadSample(s32 fontId, s32 instId, s8* status) { return 0; } +/** + * original name: __GetWaveTable + */ Sample* AudioLoad_GetFontSample(s32 fontId, s32 instId) { Sample* sample; @@ -1348,6 +1496,9 @@ Sample* AudioLoad_GetFontSample(s32 fontId, s32 instId) { void AudioLoad_Unused2(void) { } +/** + * original name: __SwapLoadLps + */ void AudioLoad_FinishSlowLoad(AudioSlowLoad* slowLoad) { Sample* sample; @@ -1365,6 +1516,9 @@ void AudioLoad_FinishSlowLoad(AudioSlowLoad* slowLoad) { sample->medium = MEDIUM_RAM; } +/** + * original name: LpsDma + */ void AudioLoad_ProcessSlowLoads(s32 resetStatus) { AudioSlowLoad* slowLoad; s32 i; @@ -1414,6 +1568,9 @@ void AudioLoad_ProcessSlowLoads(s32 resetStatus) { } } +/** + * original name: __Nas_SlowCopy + */ void AudioLoad_DmaSlowCopy(AudioSlowLoad* slowLoad, s32 size) { Audio_InvalDCache(slowLoad->curRamAddr, size); osCreateMesgQueue(&slowLoad->msgQueue, &slowLoad->msg, 1); @@ -1421,9 +1578,15 @@ void AudioLoad_DmaSlowCopy(AudioSlowLoad* slowLoad, s32 size) { &slowLoad->msgQueue, slowLoad->medium, "SLOWCOPY"); } +/** + * original name: __Nas_SlowDiskCopy + */ void AudioLoad_DmaSlowCopyUnkMedium(s32 devAddr, u8* ramAddr, s32 size, s32 arg3) { } +/** + * original name: SeqLoad + */ s32 AudioLoad_SlowLoadSeq(s32 seqId, u8* ramAddr, s8* status) { AudioSlowLoad* slowLoad; AudioTable* seqTable; @@ -1461,6 +1624,9 @@ s32 AudioLoad_SlowLoadSeq(s32 seqId, u8* ramAddr, s8* status) { return 0; } +/** + * original name: Nas_BgCopyInit + */ void AudioLoad_InitAsyncLoads(void) { s32 i; @@ -1469,6 +1635,9 @@ void AudioLoad_InitAsyncLoads(void) { } } +/** + * original name: Nas_BgCopyDisk + */ AudioAsyncLoad* AudioLoad_StartAsyncLoadUnkMedium(s32 unkMediumParam, u32 devAddr, void* ramAddr, s32 size, s32 medium, s32 nChunks, OSMesgQueue* retQueue, s32 retMsg) { AudioAsyncLoad* asyncLoad; @@ -1484,6 +1653,9 @@ AudioAsyncLoad* AudioLoad_StartAsyncLoadUnkMedium(s32 unkMediumParam, u32 devAdd return asyncLoad; } +/** + * original name: Nas_BgCopyReq + */ AudioAsyncLoad* AudioLoad_StartAsyncLoad(u32 devAddr, void* ramAddr, u32 size, s32 medium, s32 nChunks, OSMesgQueue* retQueue, s32 retMsg) { AudioAsyncLoad* asyncLoad; @@ -1526,6 +1698,9 @@ AudioAsyncLoad* AudioLoad_StartAsyncLoad(u32 devAddr, void* ramAddr, u32 size, s return asyncLoad; } +/** + * original name: Nas_BgCopyMain + */ void AudioLoad_ProcessAsyncLoads(s32 resetStatus) { AudioAsyncLoad* asyncLoad; s32 i; @@ -1560,9 +1735,15 @@ void AudioLoad_ProcessAsyncLoads(s32 resetStatus) { } } +/** + * original name: __BgCopyDisk + */ void AudioLoad_ProcessAsyncLoadUnkMedium(AudioAsyncLoad* asyncLoad, s32 resetStatus) { } +/** + * original name: __BgCopyFinishProcess + */ void AudioLoad_FinishAsyncLoad(AudioAsyncLoad* asyncLoad) { u32 retMsg = asyncLoad->retMsg; u32 fontId; @@ -1603,6 +1784,9 @@ void AudioLoad_FinishAsyncLoad(AudioAsyncLoad* asyncLoad) { osSendMesg(asyncLoad->retQueue, doneMsg, OS_MESG_NOBLOCK); } +/** + * original name: __BgCopySub + */ void AudioLoad_ProcessAsyncLoad(AudioAsyncLoad* asyncLoad, s32 resetStatus) { AudioTable* sampleBankTable = gAudioCtx.sampleBankTable; @@ -1651,6 +1835,9 @@ void AudioLoad_ProcessAsyncLoad(AudioAsyncLoad* asyncLoad, s32 resetStatus) { asyncLoad->curRamAddr += asyncLoad->chunkSize; } +/** + * original name: __Nas_BgCopy + */ void AudioLoad_AsyncDma(AudioAsyncLoad* asyncLoad, u32 size) { size = ALIGN16(size); Audio_InvalDCache(asyncLoad->curRamAddr, size); @@ -1659,6 +1846,9 @@ void AudioLoad_AsyncDma(AudioAsyncLoad* asyncLoad, u32 size) { &asyncLoad->msgQueue, asyncLoad->medium, "BGCOPY"); } +/** + * original name: __Nas_BgDiskCopy + */ void AudioLoad_AsyncDmaUnkMedium(u32 devAddr, void* ramAddr, u32 size, s16 arg3) { } @@ -1668,6 +1858,8 @@ void AudioLoad_AsyncDmaUnkMedium(u32 devAddr, void* ramAddr, u32 size, s16 arg3) * TunedSample contains metadata on a sample used by a particular instrument/drum/sfx * Also relocate offsets into pointers within this loaded TunedSample * + * original name: __WaveTouch + * * @param fontId index of font being processed * @param fontData ram address of raw soundfont binary loaded into cache * @param sampleBankReloc information on the sampleBank containing raw audio samples @@ -1724,6 +1916,8 @@ void AudioLoad_RelocateSample(TunedSample* tunedSample, SoundFontData* fontData, } /** + * original name: Nas_BankOfsToAddr + * * @param fontId index of font being processed * @param fontData ram address of raw soundfont binary loaded into cache * @param sampleBankReloc information on the sampleBank containing raw audio samples @@ -1831,6 +2025,9 @@ void AudioLoad_RelocateFontAndPreloadSamples(s32 fontId, SoundFontData* fontData } } +/** + * original name: Nas_CheckBgWave + */ s32 AudioLoad_ProcessSamplePreloads(s32 resetStatus) { Sample* sample; AudioPreloadReq* preload; @@ -1893,6 +2090,9 @@ s32 AudioLoad_ProcessSamplePreloads(s32 resetStatus) { return true; } +/** + * original name: __AddList + */ s32 AudioLoad_AddToSampleSet(Sample* sample, s32 numSamples, Sample** sampleSet) { s32 i; @@ -1910,6 +2110,9 @@ s32 AudioLoad_AddToSampleSet(Sample* sample, s32 numSamples, Sample** sampleSet) return numSamples; } +/** + * original name: MakeWaveList + */ s32 AudioLoad_GetSamplesForFont(s32 fontId, Sample** sampleSet) { s32 i; s32 numSamples = 0; @@ -1943,6 +2146,9 @@ s32 AudioLoad_GetSamplesForFont(s32 fontId, Sample** sampleSet) { return numSamples; } +/** + * original name: __Reload + */ void AudioLoad_AddUsedSample(TunedSample* tunedSample) { Sample* sample = tunedSample->sample; @@ -1951,6 +2157,9 @@ void AudioLoad_AddUsedSample(TunedSample* tunedSample) { } } +/** + * original name: WaveReload + */ void AudioLoad_PreloadSamplesForFont(s32 fontId, s32 async, SampleBankRelocInfo* sampleBankReloc) { s32 numDrums; s32 numInstruments; @@ -2086,6 +2295,9 @@ void AudioLoad_PreloadSamplesForFont(s32 fontId, s32 async, SampleBankRelocInfo* } } +/** + * original name: EmemReload + */ void AudioLoad_LoadPermanentSamples(void) { s32 pad; u32 fontId; @@ -2118,15 +2330,27 @@ void AudioLoad_LoadPermanentSamples(void) { } } +/** + * original name: __ExtDiskFinishCheck + */ void AudioLoad_Unused3(void) { } +/** + * original name: __ExtDiskInit + */ void AudioLoad_Unused4(void) { } +/** + * original name: __ExtDiskLoad + */ void AudioLoad_Unused5(void) { } +/** + * original name: MK_load + */ void AudioLoad_ScriptLoad(s32 tableType, s32 id, s8* status) { static u32 sLoadIndex = 0; @@ -2138,6 +2362,9 @@ void AudioLoad_ScriptLoad(s32 tableType, s32 id, s8* status) { } } +/** + * original name: MK_FrameWork + */ void AudioLoad_ProcessScriptLoads(void) { u32 temp; u32 sp20; @@ -2152,6 +2379,9 @@ void AudioLoad_ProcessScriptLoads(void) { } } +/** + * original name: MK_Init + */ void AudioLoad_InitScriptLoads(void) { osCreateMesgQueue(&sScriptLoadQueue, sScriptLoadMsgBuf, ARRAY_COUNT(sScriptLoadMsgBuf)); } diff --git a/src/audio/lib/seqplayer.c b/src/audio/lib/seqplayer.c index c43ae4848e..1d6fb7c0a6 100644 --- a/src/audio/lib/seqplayer.c +++ b/src/audio/lib/seqplayer.c @@ -1,5 +1,6 @@ /** * @file audio_seqplayer.c + * original name: track.c * * Manages audio sequence players, interprets and executes sequence instructions used to write .seq files * @@ -163,6 +164,8 @@ u8 sSeqInstructionArgsTable[] = { * Read and return the argument from the sequence script for a control flow instruction. * Control flow instructions (>= ASEQ_OP_CONTROL_FLOW_FIRST) can only have 0 or 1 args. * @return the argument value for a control flow instruction, or 0 if there is no argument + * + * original name: Convert_Com */ u16 AudioSeq_GetScriptControlFlowArgument(SeqScriptState* state, u8 cmd) { u8 highBits = sSeqInstructionArgsTable[cmd - 0xB0]; @@ -184,6 +187,8 @@ u16 AudioSeq_GetScriptControlFlowArgument(SeqScriptState* state, u8 cmd) { /** * Read and execute the control flow sequence instructions * @return number of frames until next instruction. -1 signals termination + * + * original name: Common_Com */ s32 AudioSeq_HandleScriptFlowControl(SequencePlayer* seqPlayer, SeqScriptState* state, s32 cmd, s32 cmdArg) { switch (cmd) { @@ -255,6 +260,9 @@ s32 AudioSeq_HandleScriptFlowControl(SequencePlayer* seqPlayer, SeqScriptState* return 0; } +/** + * original name: Nas_InitSubTrack + */ void AudioSeq_InitSequenceChannel(SequenceChannel* channel) { s32 i; @@ -310,6 +318,9 @@ void AudioSeq_InitSequenceChannel(SequenceChannel* channel) { Audio_InitNoteLists(&channel->notePool); } +/** + * original name: Nas_EntryNoteTrack + */ s32 AudioSeq_SeqChannelSetLayer(SequenceChannel* channel, s32 layerIndex) { SequenceLayer* layer; s32 pad; @@ -357,6 +368,9 @@ s32 AudioSeq_SeqChannelSetLayer(SequenceChannel* channel, s32 layerIndex) { return 0; } +/** + * original name: Nas_ReleaseNoteTrack + */ void AudioSeq_SeqLayerDisable(SequenceLayer* layer) { if (layer != NULL) { if (layer->channel != &gAudioCtx.sequenceChannelNone && layer->channel->seqPlayer->finished == 1) { @@ -369,6 +383,9 @@ void AudioSeq_SeqLayerDisable(SequenceLayer* layer) { } } +/** + * original name: Nas_CloseNoteTrack + */ void AudioSeq_SeqLayerFree(SequenceChannel* channel, s32 layerIndex) { SequenceLayer* layer = channel->layers[layerIndex]; @@ -379,6 +396,9 @@ void AudioSeq_SeqLayerFree(SequenceChannel* channel, s32 layerIndex) { } } +/** + * original name: Nas_ReleaseSubTrack + */ void AudioSeq_SequenceChannelDisable(SequenceChannel* channel) { s32 i; @@ -391,6 +411,9 @@ void AudioSeq_SequenceChannelDisable(SequenceChannel* channel) { channel->finished = true; } +/** + * original name: Nas_AllocSub + */ void AudioSeq_SequencePlayerSetupChannels(SequencePlayer* seqPlayer, u16 channelBits) { SequenceChannel* channel; s32 i; @@ -406,6 +429,9 @@ void AudioSeq_SequencePlayerSetupChannels(SequencePlayer* seqPlayer, u16 channel } } +/** + * original name: Nas_DeAllocSub + */ void AudioSeq_SequencePlayerDisableChannels(SequencePlayer* seqPlayer, u16 channelBitsUnused) { SequenceChannel* channel; s32 i; @@ -418,6 +444,9 @@ void AudioSeq_SequencePlayerDisableChannels(SequencePlayer* seqPlayer, u16 chann } } +/** + * original name: Nas_OpenSub + */ void AudioSeq_SequenceChannelEnable(SequencePlayer* seqPlayer, u8 channelIndex, void* script) { SequenceChannel* channel = seqPlayer->channels[channelIndex]; s32 i; @@ -435,11 +464,17 @@ void AudioSeq_SequenceChannelEnable(SequencePlayer* seqPlayer, u8 channelIndex, } } +/** + * original name: Nas_ReleaseGroup_Force + */ void AudioSeq_SequencePlayerDisableAsFinished(SequencePlayer* seqPlayer) { seqPlayer->finished = true; AudioSeq_SequencePlayerDisable(seqPlayer); } +/** + * original name: Nas_ReleaseGroup + */ void AudioSeq_SequencePlayerDisable(SequencePlayer* seqPlayer) { s32 finished = 0; @@ -478,6 +513,9 @@ void AudioSeq_SequencePlayerDisable(SequencePlayer* seqPlayer) { } } +/** + * original name: Nas_AddList + */ void AudioSeq_AudioListPushBack(AudioListItem* list, AudioListItem* item) { if (item->prev == NULL) { list->prev->next = item; @@ -489,6 +527,9 @@ void AudioSeq_AudioListPushBack(AudioListItem* list, AudioListItem* item) { } } +/** + * original name: Nas_GetList + */ void* AudioSeq_AudioListPopBack(AudioListItem* list) { AudioListItem* item = list->prev; @@ -504,6 +545,9 @@ void* AudioSeq_AudioListPopBack(AudioListItem* list) { return item->u.value; } +/** + * original name: Nas_InitNoteList + */ void AudioSeq_InitLayerFreelist(void) { s32 i; @@ -519,10 +563,16 @@ void AudioSeq_InitLayerFreelist(void) { } } +/** + * original name: Nas_ReadByteData + */ u8 AudioSeq_ScriptReadU8(SeqScriptState* state) { return *(state->pc++); } +/** + * original name: Nas_ReadWordData + */ s16 AudioSeq_ScriptReadS16(SeqScriptState* state) { s16 ret = *(state->pc++) << 8; @@ -530,6 +580,9 @@ s16 AudioSeq_ScriptReadS16(SeqScriptState* state) { return ret; } +/** + * original name: Nas_ReadLengthData + */ u16 AudioSeq_ScriptReadCompressedU16(SeqScriptState* state) { u16 ret = *(state->pc++); @@ -540,6 +593,9 @@ u16 AudioSeq_ScriptReadCompressedU16(SeqScriptState* state) { return ret; } +/** + * original name: Nas_NoteSeq + */ void AudioSeq_SeqLayerProcessScript(SequenceLayer* layer) { s32 cmd; @@ -581,6 +637,9 @@ void AudioSeq_SeqLayerProcessScript(SequenceLayer* layer) { } } +/** + * original name: __Stop_Note + */ void AudioSeq_SeqLayerProcessScriptStep1(SequenceLayer* layer) { if (!layer->continuousNotes) { Audio_SeqLayerNoteDecay(layer); @@ -595,6 +654,9 @@ void AudioSeq_SeqLayerProcessScriptStep1(SequenceLayer* layer) { layer->notePropertiesNeedInit = true; } +/** + * original name: __SetChannel + */ s32 AudioSeq_SeqLayerProcessScriptStep5(SequenceLayer* layer, s32 sameTunedSample) { Note* note; @@ -633,6 +695,9 @@ s32 AudioSeq_SeqLayerProcessScriptStep5(SequenceLayer* layer, s32 sameTunedSampl return 0; } +/** + * original name: __Command_Seq + */ s32 AudioSeq_SeqLayerProcessScriptStep2(SequenceLayer* layer) { SequenceChannel* channel = layer->channel; SeqScriptState* state = &layer->scriptState; @@ -789,6 +854,9 @@ s32 AudioSeq_SeqLayerProcessScriptStep2(SequenceLayer* layer) { } } +/** + * original name: __SetVoice + */ s32 AudioSeq_SeqLayerProcessScriptStep4(SequenceLayer* layer, s32 cmd) { s32 sameTunedSample = true; s32 instOrWave; @@ -997,6 +1065,9 @@ s32 AudioSeq_SeqLayerProcessScriptStep4(SequenceLayer* layer, s32 cmd) { return sameTunedSample; } +/** + * original name: __SetNote + */ s32 AudioSeq_SeqLayerProcessScriptStep3(SequenceLayer* layer, s32 cmd) { SeqScriptState* state = &layer->scriptState; u16 delay; @@ -1110,6 +1181,9 @@ s32 AudioSeq_SeqLayerProcessScriptStep3(SequenceLayer* layer, s32 cmd) { return cmd; } +/** + * original name: Nas_PriorityChanger + */ void AudioSeq_SetChannelPriorities(SequenceChannel* channel, u8 priority) { if ((priority & 0xF) != 0) { channel->notePriority = priority & 0xF; @@ -1121,6 +1195,9 @@ void AudioSeq_SetChannelPriorities(SequenceChannel* channel, u8 priority) { } } +/** + * original name: Nas_ProgramChanger + */ u8 AudioSeq_GetInstrument(SequenceChannel* channel, u8 instId, Instrument** instOut, AdsrSettings* adsr) { Instrument* inst = Audio_GetInstrumentInner(channel->fontId, instId); @@ -1140,6 +1217,9 @@ u8 AudioSeq_GetInstrument(SequenceChannel* channel, u8 instId, Instrument** inst return instId; } +/** + * original name: Nas_SubVoiceSet + */ void AudioSeq_SetInstrument(SequenceChannel* channel, u8 instId) { if (instId >= 0x80) { // Synthetic Waves @@ -1165,10 +1245,16 @@ void AudioSeq_SetInstrument(SequenceChannel* channel, u8 instId) { channel->hasInstrument = true; } +/** + * original name: Nas_SubVolumeSet + */ void AudioSeq_SequenceChannelSetVolume(SequenceChannel* channel, u8 volume) { channel->volume = (s32)volume / 127.0f; } +/** + * original name: Nas_SubSeq + */ void AudioSeq_SequenceChannelProcessScript(SequenceChannel* channel) { s32 i; u8* data; @@ -1728,6 +1814,9 @@ exit_loop: } } +/** + * original name: Nas_GroupSeq + */ void AudioSeq_SequencePlayerProcessSequence(SequencePlayer* seqPlayer) { u8 cmd; u8 cmdLowBits; @@ -2055,6 +2144,9 @@ void AudioSeq_SequencePlayerProcessSequence(SequencePlayer* seqPlayer) { } } +/** + * original name: Nas_MySeqMain + */ void AudioSeq_ProcessSequences(s32 arg0) { SequencePlayer* seqPlayer; u32 i; @@ -2072,6 +2164,9 @@ void AudioSeq_ProcessSequences(s32 arg0) { Audio_ProcessNotes(); } +/** + * original name: Nas_SeqSkip + */ void AudioSeq_SkipForwardSequence(SequencePlayer* seqPlayer) { while (seqPlayer->skipTicks > 0) { AudioSeq_SequencePlayerProcessSequence(seqPlayer); @@ -2080,6 +2175,9 @@ void AudioSeq_SkipForwardSequence(SequencePlayer* seqPlayer) { } } +/** + * original name: Nas_InitMySeq + */ void AudioSeq_ResetSequencePlayer(SequencePlayer* seqPlayer) { s32 i; @@ -2107,6 +2205,9 @@ void AudioSeq_ResetSequencePlayer(SequencePlayer* seqPlayer) { } } +/** + * original name: Nas_AssignSubTrack + */ void AudioSeq_InitSequencePlayerChannels(s32 playerIdx) { SequenceChannel* channel; SequencePlayer* seqPlayer = &gAudioCtx.seqPlayers[playerIdx]; @@ -2129,6 +2230,9 @@ void AudioSeq_InitSequencePlayerChannels(s32 playerIdx) { } } +/** + * original name: __InitGroup + */ void AudioSeq_InitSequencePlayer(SequencePlayer* seqPlayer) { s32 i; s32 j; @@ -2154,6 +2258,9 @@ void AudioSeq_InitSequencePlayer(SequencePlayer* seqPlayer) { AudioSeq_ResetSequencePlayer(seqPlayer); } +/** + * original name: Nas_InitPlayer + */ void AudioSeq_InitSequencePlayers(void) { s32 i; diff --git a/src/audio/lib/thread.c b/src/audio/lib/thread.c index b47efa3267..2e2d0630e1 100644 --- a/src/audio/lib/thread.c +++ b/src/audio/lib/thread.c @@ -1,3 +1,7 @@ +/** + * Original Filename: sub_sys.c + */ + #include "array_count.h" #include "audiothread_cmd.h" #include "ultra64.h" @@ -27,6 +31,8 @@ static AudioTask* sWaitingAudioTask = NULL; /** * This is Audio_Update for the audio thread + * + * original name: CreateAudioTask (note: function is heavily modified in Animal Crossing) */ AudioTask* AudioThread_UpdateImpl(void) { #if OOT_VERSION < PAL_1_0 || !PLATFORM_N64 @@ -200,6 +206,9 @@ AudioTask* AudioThread_UpdateImpl(void) { } } +/** + * original name: Nap_AudioSysProcess + */ void AudioThread_ProcessGlobalCmd(AudioCmd* cmd) { s32 i; s32 pad[3]; @@ -325,6 +334,9 @@ void AudioThread_ProcessGlobalCmd(AudioCmd* cmd) { } } +/** + * original name: __Nas_GroupFadeOut + */ void AudioThread_SetFadeOutTimer(s32 seqPlayerIndex, s32 fadeTimer) { SequencePlayer* seqPlayer = &gAudioCtx.seqPlayers[seqPlayerIndex]; @@ -337,6 +349,9 @@ void AudioThread_SetFadeOutTimer(s32 seqPlayerIndex, s32 fadeTimer) { seqPlayer->fadeTimer = fadeTimer; } +/** + * original name: __Nas_GroupFadeIn + */ void AudioThread_SetFadeInTimer(s32 seqPlayerIndex, s32 fadeTimer) { SequencePlayer* seqPlayer; @@ -350,6 +365,9 @@ void AudioThread_SetFadeInTimer(s32 seqPlayerIndex, s32 fadeTimer) { } } +/** + * original name: Nap_AudioPortInit + */ void AudioThread_InitMesgQueuesImpl(void) { gAudioCtx.threadCmdWritePos = 0; gAudioCtx.threadCmdReadPos = 0; @@ -365,6 +383,9 @@ void AudioThread_InitMesgQueuesImpl(void) { osCreateMesgQueue(gAudioCtx.audioResetQueueP, gAudioCtx.audioResetMsgBuf, ARRAY_COUNT(gAudioCtx.audioResetMsgBuf)); } +/** + * original name: Nap_PortSet + */ void AudioThread_QueueCmd(u32 opArgs, void** data) { AudioCmd* cmd = &gAudioCtx.threadCmdBuf[gAudioCtx.threadCmdWritePos & 0xFF]; @@ -378,26 +399,41 @@ void AudioThread_QueueCmd(u32 opArgs, void** data) { } } +/** + * original name: Nap_SetF32 + */ void AudioThread_QueueCmdF32(u32 opArgs, f32 data) { AudioThread_QueueCmd(opArgs, (void**)&data); } +/** + * original name: Nap_SetS32 + */ void AudioThread_QueueCmdS32(u32 opArgs, s32 data) { AudioThread_QueueCmd(opArgs, (void**)&data); } +/** + * original name: Nap_SetS8 + */ void AudioThread_QueueCmdS8(u32 opArgs, s8 data) { u32 uData = data << 0x18; AudioThread_QueueCmd(opArgs, (void**)&uData); } +/** + * original name: Nap_SetU16 + */ void AudioThread_QueueCmdU16(u32 opArgs, u16 data) { u32 uData = data << 0x10; AudioThread_QueueCmd(opArgs, (void**)&uData); } +/** + * original name: Nap_SendStart + */ s32 AudioThread_ScheduleProcessCmds(void) { static s32 D_801304E8 = 0; s32 ret; @@ -419,11 +455,17 @@ s32 AudioThread_ScheduleProcessCmds(void) { return ret; } +/** + * original name: Nap_FlushPort + */ void AudioThread_ResetCmdQueue(void) { gAudioCtx.threadCmdQueueFinished = false; gAudioCtx.threadCmdReadPos = gAudioCtx.threadCmdWritePos; } +/** + * original name: Nap_Process1Command + */ void AudioThread_ProcessCmd(AudioCmd* cmd) { SequencePlayer* seqPlayer; u16 threadCmdChannelMask; @@ -461,6 +503,9 @@ void AudioThread_ProcessCmd(AudioCmd* cmd) { } } +/** + * original name: Nap_AudioPortProcess + */ void AudioThread_ProcessCmds(u32 msg) { static u8 sCurCmdRdPos = 0; AudioCmd* cmd; @@ -508,6 +553,9 @@ void Audio_GetSampleBankIdsOfFont(s32 fontId, u32* sampleBankId1, u32* sampleBan *sampleBankId2 = gAudioCtx.soundFontList[fontId].sampleBankId2; } +/** + * original name: Nap_CheckSpecChange + */ s32 func_800E5EDC(void) { s32 pad; s32 specId; @@ -521,6 +569,9 @@ s32 func_800E5EDC(void) { } } +/** + * original name: __ClearSpecChangeQ + */ void func_800E5F34(void) { // macro? // clang-format off @@ -528,6 +579,9 @@ void func_800E5F34(void) { // clang-format on } +/** + * original name: Nap_StartSpecChange + */ s32 AudioThread_ResetAudioHeap(s32 specId) { s32 resetStatus; OSMesg msg; @@ -553,6 +607,9 @@ s32 AudioThread_ResetAudioHeap(s32 specId) { return AudioThread_ScheduleProcessCmds(); } +/** + * original name: Nap_StartReset + */ void AudioThread_PreNMIInternal(void) { gAudioCtx.resetTimer = 1; if (gAudioContextInitialized) { @@ -561,6 +618,9 @@ void AudioThread_PreNMIInternal(void) { } } +/** + * original name: Nap_ReadSubPort + */ s8 AudioThread_GetChannelIO(s32 seqPlayerIndex, s32 channelIndex, s32 ioPort) { SequencePlayer* seqPlayer = &gAudioCtx.seqPlayers[seqPlayerIndex]; SequenceChannel* channel; @@ -573,6 +633,9 @@ s8 AudioThread_GetChannelIO(s32 seqPlayerIndex, s32 channelIndex, s32 ioPort) { } } +/** + * original name: Nap_ReadGrpPort + */ s8 AudioThread_GetSeqPlayerIO(s32 seqPlayerIndex, s32 ioPort) { return gAudioCtx.seqPlayers[seqPlayerIndex].seqScriptIO[ioPort]; } @@ -585,6 +648,9 @@ void AudioThread_ResetExternalPool(void) { gAudioCtx.externalPool.startRamAddr = NULL; } +/** + * original name: __SetGrpParam + */ void AudioThread_ProcessSeqPlayerCmd(SequencePlayer* seqPlayer, AudioCmd* cmd) { f32 fadeVolume; @@ -665,6 +731,9 @@ void AudioThread_ProcessSeqPlayerCmd(SequencePlayer* seqPlayer, AudioCmd* cmd) { } } +/** + * original name: __SetSubParam + */ void AudioThread_ProcessChannelCmd(SequenceChannel* channel, AudioCmd* cmd) { switch (cmd->op) { case AUDIOCMD_OP_CHANNEL_SET_VOL_SCALE: @@ -771,6 +840,9 @@ void AudioThread_Noop2Cmd(u32 arg0, s32 arg1) { AUDIOCMD_GLOBAL_NOOP_2(0, 0, arg1, arg0); } +/** + * original name: Nap_WaitVsync + */ void AudioThread_WaitForAudioTask(void) { osRecvMesg(gAudioCtx.taskStartQueueP, NULL, OS_MESG_NOBLOCK); osRecvMesg(gAudioCtx.taskStartQueueP, NULL, OS_MESG_BLOCK); @@ -824,6 +896,9 @@ void func_800E66A0(void) { func_800E66C0(2); } +/** + * original name: Nap_SilenceCheck_Inner + */ s32 func_800E66C0(s32 flags) { s32 phi_v1; NotePlaybackState* playbackState; @@ -860,6 +935,9 @@ s32 func_800E66C0(s32 flags) { return phi_v1; } +/** + * original name: Nap_GetRandom + */ u32 AudioThread_NextRandom(void) { static u32 sAudioRandom = 0x12345678; @@ -869,6 +947,9 @@ u32 AudioThread_NextRandom(void) { return sAudioRandom; } +/** + * original name: Nas_InitGAudio + */ void AudioThread_InitMesgQueues(void) { AudioThread_InitMesgQueuesImpl(); }