83 voice = &globals->
voices[i];
158 instrument->
type = 0;
167 instrument->pitchRatio = 0.5f;
234 if (globals->
unk_80 != 0) {
376#define TUNE_SCALING_ARR_AMPLIFY_FINE 0
377#define TUNE_SCALING_ARR_AMPLIFY_COARSE 128
378#define TUNE_SCALING_ARR_ATTENUATE_FINE 160
379#define TUNE_SCALING_ARR_ATTENUATE_COARSE 288
404 fade->onCompleteCallback = NULL;
410 fade->onCompleteCallback = NULL;
416 if ((fade->
fadeTime << 0x10) != 0) {
420 if (fade->onCompleteCallback != NULL) {
421 fade->onCompleteCallback();
423 fade->onCompleteCallback = NULL;
451 if (arg1 >= 250 && arg1 <= 100000) {
452 time = (s32)(arg1 * 1000) /
AU_5750;
479 u32 envelopeIdx = bank & 3;
481 if (envelopeIdx < preset->count) {
494 switch (playerIndex) {
496 *outFile = globals->
dataBGM[0];
500 *outFile = globals->
dataBGM[1];
504 *outFile = globals->
dataBGM[0];
515 switch (playerIndex) {
555 songInfo = &soundData->
songList[songID];
569 if (bkFileIndex != 0) {
570 bkFileEntry = &soundData->
sbnFileList[bkFileIndex];
573 fileEntry2.
offset = offset;
575 data = bkFileEntry->data;
576 fileEntry2.data = data;
584 arg2_copy->
songID = songID;
587 return arg1_copy->
name;
604 songInfo = &soundData->
songList[songID];
611 if (bkFileIndex != 0) {
612 bkFileEntry = &soundData->
sbnFileList[bkFileIndex];
615 fileEntry.data = bkFileEntry->data;
617 if ((fileEntry.data >> 0x18) ==
AU_FMT_BK) {
636#define SBN_LOOKUP(i,fmt,e) (au_fetch_SBN_file(globals->mseqFileList[AmbientSoundIDtoMSEQFileIndex[i]], fmt, &e))
715 s32 tableSize, initBase, size;
716 s32 tblAddr, shortsAddr;
719 s32 tblOffset, shortsOffset;
722 au_read_rom(romAddr, &sbnHeader,
sizeof(sbnHeader));
732 if ((entry->
offset & 0xFFFFFF) == 0) {
737 entry->data = (size + 0xF) & ~0xF;
743 au_read_rom(initBase, &initHeader,
sizeof(initHeader));
746 size = (initHeader.
tblSize + 0xF) & 0xFFF0;
747 tblAddr = initBase + tblOffset;
752 size = (initHeader.
shortsSize + 0xF) & 0xFFF0;
753 shortsAddr = initBase + shortsOffset;
767 if (fileIdx < gSoundGlobals->fileListLength) {
771 fileEntry.
offset = offset;
772 fileEntry.data = entry->data;
773 if ((fileEntry.data >> 0x18) == format) {
774 outEntry->
offset = offset;
775 outEntry->data = fileEntry.data;
793 size = header.
mdata.
size -
sizeof(header);
796 numItemsLeft = 6 - numItems;
797 if (numItemsLeft > 0) {
798 end = &globals->
dataPER[numItems];
813 dataRomAddr = romAddr +
sizeof(header);
814 size = header.
mdata.
size -
sizeof(header);
820 numItemsLeft = 0x40 - numItems;
821 if (numItemsLeft > 0) {
822 end = &arg0->
dataPRG[numItems];
842 if (bkFileIndex != 0) {
847 fileEntry.data = bkFileEntry->data;
848 if ((fileEntry.data >> 0x18) == 0x30) {
906#define AL_HEADER_SIG_BK 0x424B
907#define AL_HEADER_SIG_CR 0x4352
908#define AL_HEADER_SIG_DR 0x4452
909#define AL_HEADER_SIG_SR 0x5352
923 au_read_rom(bkFileOffset, header,
sizeof(*header));
927 while (keepReading) {
935 }
else if (header->
size == 0) {
970 if (instOffset != 0) {
978 if (instrumentCount != 0) {
1010 for (i = 0; i < instrumentCount; i++) {
1013 if (instrument != NULL) {
1014 if (instrument->
base != 0) {
1015 instrument->
base += bkFileOffset;
1026 instrument->
unk_25 = arg4;
1027 instrument->pitchRatio = instrument->outputRate / outputRate;
1029 instruments[i] = defaultInstrument;
1036s32*
func_80054AA0(s32* bkFileOffset,
void* vaddr, s32 bankIndex, s32 bankGroup) {
1039 void* fileData = vaddr;
1054 while (keepReading) {
1055 switch (readState) {
1057 keepReading = FALSE;
1060 au_read_rom(*bkFileOffset, &localHeader,
sizeof(localHeader));
1062 keepReading = FALSE;
1063 }
else if (header->
size == 0) {
1064 keepReading = FALSE;
1066 keepReading = FALSE;
1072 if (fileData == NULL) {
1082 if(instOffset != 0) {
1090 if (instrCount != 0) {
1093 keepReading = FALSE;
1101 keepReading = FALSE;
1118 if (group != NULL) {
1120 *ptr++ = instrument;
1149 if (bMonoSound % 2 == 1) {
1166 s32 nchunks = size / 0x2000;
1171 nuPiReadRom(romAddr + offset, buffer + offset, 0x2000);
1178 nuPiReadRom(romAddr + offset, buffer + offset, size);
1192 *(u8*)dst++ = value;
1195 count = (u32)dst & 0x3;
1200 *(u8*)dst++ = value;
1205 intValue = (value << 8) + value;
1206 intValue = (intValue << 16) + intValue;
1208 *(u32*)dst = intValue;
1215 *(u8*)dst++ = value;
1223 while (size-- != 0) {
1233 if (!(((s32) src | (s32) dst) & 3)) {
1239 *dstIt++ = *srcIt++;
1240 }
while (size-- != 0);
void func_8004DFD4(AuGlobals *globals)
void au_bgm_update_main(BGMPlayer *player)
void func_8004E444(BGMPlayer *arg0)
void au_bgm_set_effect_indices(BGMPlayer *player, u8 *list)
void au_bgm_update_fade(BGMPlayer *player)
s32 func_8004DB28(BGMPlayer *player)
s32 au_bgm_player_update_main(BGMPlayer *player)
void au_bgm_player_init(BGMPlayer *player, s32 priority, s32 busId, AuGlobals *globals)
void au_amb_manager_update(AmbienceManager *manager)
void au_amb_manager_init(AmbienceManager *manager, s8 priority, s8 busId, AuGlobals *globals)
void au_init_voices(AuGlobals *globals)
void au_update_voices(AuGlobals *globals)
void au_voice_start(AuVoice *voice, EnvelopeData *envData)
void func_80054CE0(s32 arg0, u32 idx)
u8 EnvelopeReleaseDefault[]
u8 EnvelopePressDefault[]
void au_reset_voice(AuVoice *voice, u8 voiceIdx)
void au_copy_bytes(s8 *src, s8 *dest, s32 size)
void func_80054DA8(u32 bMonoSound)
void au_get_bgm_player_and_file(u32 playerIndex, BGMHeader **outFile, BGMPlayer **outPlayer)
Instrument * au_get_instrument(AuGlobals *globals, u32 bank, u32 patch, EnvelopeData *envData)
#define TUNE_SCALING_ARR_AMPLIFY_COARSE
void au_reset_instrument_entry(BGMInstrumentInfo *arg0)
#define TUNE_SCALING_ARR_ATTENUATE_COARSE
void func_80054C84(s32 bankIndex, s32 bankGroup)
#define TUNE_SCALING_ARR_ATTENUATE_FINE
void au_fade_update(Fade *fade)
SoundManager * gSoundManager
#define SBN_LOOKUP(i, fmt, e)
AuGlobals * gSoundGlobals
void au_engine_init(s32 outputRate)
void func_80053B04(Fade *fade, u32 arg1, s32 target)
s32 snd_load_BK(s32 bkFileOffset, s32 bankIndex)
void func_80052E30(u8 index)
void au_reset_instrument(Instrument *instrument)
void au_get_bgm_player(u32 playerIndex, BGMPlayer **outPlayer)
void au_syn_update(AuGlobals *globals)
SoundBank * au_load_BK_to_bank(s32 bkFileOffset, SoundBank *bank, s32 bankIndex, s32 bankGroup)
AuResult func_80053E58(s32 songID, BGMHeader *bgmFile)
void au_fade_set_volume(u8 busId, u16 volume, s32 busVolume)
void au_update_players_main(void)
void au_read_rom(s32 romAddr, void *buffer, u32 size)
AuResult au_load_song_files(u32 songID, BGMHeader *bgmFile, BGMPlayer *player)
void au_load_PRG(AuGlobals *arg0, s32 romAddr)
void au_reset_drum_entry(BGMDrumInfo *arg0)
f32 au_compute_pitch_ratio(s32 pitch)
BGMPlayer * func_80053F64(s32 arg0)
AuResult au_fetch_SBN_file(u32 fileIdx, AuFileFormat format, SBNFileEntry *outEntry)
void func_80053BA8(Fade *fade)
void au_memset(void *dst, s32 size, u8 value)
AuResult au_ambient_load(u32 ambSoundID)
BGMPlayer * func_80054248(u8 arg0)
void au_fade_init(Fade *fade, s32 time, s32 startValue, s32 endValue)
#define TUNE_SCALING_ARR_AMPLIFY_FINE
AuCallback BeginSoundUpdateCallback
void au_load_INIT(AuGlobals *arg0, s32 romAddr, ALHeap *heap)
void au_load_PER(AuGlobals *globals, s32 romAddr)
s32 func_80054D74(s32 arg0, s32 arg1)
s32 * func_80054AA0(s32 *bkFileOffset, void *vaddr, s32 bankIndex, s32 bankGroup)
void au_update_clients_2(void)
InstrumentGroup * au_get_BK_instruments(s32 bankGroup, u32 bankIndex)
void au_swizzle_BK_instruments(s32 bkFileOffset, SoundBank *bank, InstrumentGroup instruments, u32 instrumentCount, u8 arg4)
void au_copy_words(void *src, void *dst, s32 size)
s32 snd_load_BGM(s32 arg0)
void au_fade_clear(Fade *fade)
void au_fade_set_vol_scale(Fade *fade, s16 value)
void func_80053AC8(Fade *fade)
void au_reset_nonfree_voice(AuVoice *voice, u8 index)
AmbienceManager * gAuAmbienceManager
void au_load_BK_headers(AuGlobals *globals, ALHeap *heap)
void func_80055050(ALHeap *heap)
void bgm_clear_music_events(void)
void au_bus_set_volume(u8 index, u16 arg1)
void au_syn_set_volume_delta(u8 voiceIdx, s16 vol, s32 delta)
void au_disable_channel_delay(void)
void au_delay_right_channel(u8 groupIdx)
void au_pvoice_set_bus(u8 index, s8 busId)
void au_syn_stop_voice(u8 voiceIdx)
void au_syn_set_pitch(u8 voiceIdx, f32 pitch)
void au_set_delay_time(s32 arg0)
void * alHeapAlloc(ALHeap *heap, s32 count, s32 size)
void au_delay_channel(s16 arg0)
void au_bus_set_effect(u8 index, u8 effectType)
void au_syn_set_pan_fxmix(u8 voiceIdx, u8 pan, u8 fxMix)
void au_syn_start_voice_params(u8 voiceIdx, u8 busId, Instrument *instrument, f32 pitch, s16 vol, u8 pan, u8 fxMix, s32 delta)
void au_delay_left_channel(u8 groupIdx)
void au_syn_set_mixer_params(u8 voiceIdx, s16 volume, s32 delta, u8 pan, u8 fxMix)
void au_syn_set_wavetable(u8 voiceIdx, Instrument *instrument)
MSEQHeader * mseqFiles[4]
struct BGMHeader * bgmFile
SoundManager * soundManager
Instrument * defaultInstrument
InstrumentGroup instrumentGroup6[4]
EnvelopePreset DummyInstrumentEnvelope
MusicEventTrigger * musicEventQueue
struct MSEQHeader * dataMSEQ[2]
EnvelopeOffset offsets[1]
InstrumentGroup instrumentGroup3[16]
AuCallback audioThreadCallbacks[2]
#define AU_FILE_RELATIVE(base, offset)
InstrumentGroup instrumentGroup1[4]
BGMInstrumentInfo * dataPRG
SBNFileEntry * sbnFileList
@ AU_VOICE_SYNC_FLAG_PARAMS
@ AU_VOICE_SYNC_FLAG_PAN_FXMIX
@ AU_VOICE_SYNC_FLAG_PITCH
u16 DummyInstrumentPredictor[32]
u8 DummyInstrumentBase[190]
s32 PreventBGMPlayerUpdate
InstrumentGroup instrumentGroup2[16]
AuSynDriver * gSynDriverPtr
AmbiencePlayer players[4]
struct BGMHeader * dataBGM[2]
EnvelopePreset * envelopes
BGMInstrumentInfo defaultPRGEntry
struct BGMPlayer * bgmPlayer
InstrumentGroup instrumentGroupX[1]
@ AU_PRIORITY_BGM_PLAYER_MAIN
@ AU_PRIORITY_MSEQ_MANAGER
@ AU_PRIORITY_SFX_MANAGER
@ AU_PRIORITY_BGM_PLAYER_AUX
SndGlobalsSub6C unk_globals_6C[1]
InstrumentGroup * instrumentGroups[8]
AuEffectChange effectChanges[4]
InstrumentGroup instrumentGroup4[16]
Instrument * InstrumentGroup[16]
InstrumentGroup instrumentGroup5[16]
BGMDrumInfo defaultDrumEntry
@ AU_ERROR_SBN_INDEX_OUT_OF_RANGE
@ AU_ERROR_SBN_FORMAT_MISMATCH
s16 au_sfx_manager_update(SoundManager *manager)
void au_sfx_update_main(SoundManager *manager)
void au_sfx_load_groups_from_SEF(SoundManager *sndMgr)
s32 au_sfx_set_reverb_type(SoundManager *manager, s32 arg1)
void au_sfx_init(SoundManager *manager, u8 arg1, u8 arg2, AuGlobals *arg3, u8 arg4)