header reorg

This commit is contained in:
z64a 2025-05-22 00:07:34 -04:00
parent 73e68a4f5c
commit 3f7d8be600
15 changed files with 139 additions and 134 deletions

View File

@ -442,21 +442,20 @@ typedef union VolumeField {
s32 s32;
} VolumeField;
// envelope related?
/// Structure for volume fading for SFX and BGM. Has independent controls for base and envelope volumes.
typedef struct Fade {
/* 0x0 */ VolumeField curVolume;
/* 0x4 */ s32 fadeStep;
/* 0x8 */ s16 targetVolume;
/* 0xA */ s16 fadeTicks;
/* 0x0 */ VolumeField baseVolume;
/* 0x4 */ s32 baseStep;
/* 0x8 */ s16 baseTarget;
/* 0xA */ s16 baseTicks;
union {
/* 0xC */ AuCallback onCompleteCallback;
/* 0xC */ s32 variation;
};
// fields below are envelope?
/* 0x10 */ VolumeField volScale;
/* 0x14 */ s32 volScaleStep;
/* 0x18 */ s16 targetVolScale;
/* 0x1A */ s16 volScaleTime;
/* 0x10 */ VolumeField envelopeVolume;
/* 0x14 */ s32 envelopeStep;
/* 0x18 */ s16 envelopeTarget;
/* 0x1A */ s16 envelopeTicks;
} Fade; // size = 0x10
typedef struct AuDelay {
@ -735,7 +734,7 @@ typedef struct SoundManager {
/* 0x034 */ s32 nextUpdateStep;
/* 0x038 */ s32 nextUpdateInterval;
/* 0x03C */ s32 nextUpdateCounter;
/* 0x040 */ struct Fade fadeInfo;
/* 0x040 */ Fade fadeInfo;
/* 0x05C */ s32 busVolume;
/* 0x060 */ s32 randomValue;
/* 0x064 */ s32* customReverbParams[8];
@ -1033,7 +1032,6 @@ typedef struct BGMPlayerTrack {
/* 0x20 */ s16_16 subTrackVolumeTarget;
/* 0x24 */ s32 subTrackVolumeTime;
/* 0x28 */ s32 delayTime;
//TODO Fade struct?
/* 0x2C */ s16_16 proxVolume;
/* 0x30 */ s16_16 proxVolumeStep;
/* 0x34 */ s16 proxVolumeTarget;

View File

@ -176,8 +176,8 @@ AuResult au_bgm_dispatch_player_event(SongUpdateEvent* event) {
}
au_fade_init(&player->fadeInfo, duration, volume0, volume1);
player->fadeInfo.targetVolScale = AU_MAX_VOLUME_16;
player->fadeInfo.volScaleTime = 1;
player->fadeInfo.envelopeTarget = AU_MAX_VOLUME_16;
player->fadeInfo.envelopeTicks = 1;
au_bgm_set_tick_resolution(player, BGM_SAMPLE_RATE, BgmTicksRates[fileInfo->timingPreset & 7]);
if (variation < BGM_VARIATION_0 || variation > BGM_VARIATION_3 || fileInfo->compositions[variation] == 0) {
@ -296,9 +296,9 @@ AuResult func_8004DB4C(SongUpdateEvent* s) {
if (player->songName == songName) {
if (player->masterState != BGM_PLAY_STATE_IDLE) {
if (!player->unk_220) {
player->fadeInfo.targetVolume = volume;
player->fadeInfo.fadeTicks = (duration * 1000) / AU_FRAME_USEC;
player->fadeInfo.fadeStep = ((volume << 0x10) - player->fadeInfo.curVolume.s32) / player->fadeInfo.fadeTicks;
player->fadeInfo.baseTarget = volume;
player->fadeInfo.baseTicks = (duration * 1000) / AU_FRAME_USEC;
player->fadeInfo.baseStep = ((volume << 0x10) - player->fadeInfo.baseVolume.s32) / player->fadeInfo.baseTicks;
player->fadeInfo.variation = s->variation;
if (s->unk14 == 1) {
player->fadeSongName = songName;
@ -498,7 +498,7 @@ void func_8004DFD4(AuGlobals* globals) {
globals->unk_80 = 0;
}
AuResult func_8004E0F4(SongUpdateEvent* update) {
AuResult au_bgm_adjust_volume(SongUpdateEvent* update) {
BGMPlayer* player;
AuResult status = AU_RESULT_OK;
@ -616,12 +616,12 @@ void au_bgm_set_effect_indices(BGMPlayer* player, u8* list) {
}
void au_bgm_update_fade(BGMPlayer* player) {
player->fadeInfo.fadeTicks--;
player->fadeInfo.baseTicks--;
if (player->fadeInfo.fadeTicks != 0) {
player->fadeInfo.curVolume.s32 += player->fadeInfo.fadeStep;
if (player->fadeInfo.baseTicks != 0) {
player->fadeInfo.baseVolume.s32 += player->fadeInfo.baseStep;
} else {
player->fadeInfo.curVolume.s32 = player->fadeInfo.targetVolume << 16;
player->fadeInfo.baseVolume.s32 = player->fadeInfo.baseTarget << 16;
if (player->fadeInfo.onCompleteCallback != NULL) {
player->fadeInfo.onCompleteCallback();
@ -629,7 +629,7 @@ void au_bgm_update_fade(BGMPlayer* player) {
if (player->fadeSongName != 0) {
func_8004DC80(player->fadeSongName);
} else if (player->fadeInfo.curVolume.s32 == 0) {
} else if (player->fadeInfo.baseVolume.s32 == 0) {
au_bgm_stop_player(player);
}
}
@ -637,7 +637,7 @@ void au_bgm_update_fade(BGMPlayer* player) {
}
void au_bgm_update_bus_volumes(BGMPlayer* player) {
u16 mult = (player->fadeInfo.curVolume.u16 * player->fadeInfo.volScale.u16) >> 15;
u16 volume = (player->fadeInfo.baseVolume.u16 * player->fadeInfo.envelopeVolume.u16) >> 15;
s32 i;
for (i = 0; i < ARRAY_COUNT(player->effectIndices); i++) {
@ -646,7 +646,7 @@ void au_bgm_update_bus_volumes(BGMPlayer* player) {
if (busID < 0) {
return;
}
au_fade_set_volume(busID, mult, player->busVolume);
au_fade_set_volume(busID, volume, player->busVolume);
}
}
@ -1837,7 +1837,7 @@ void au_BGMCmd_FF(BGMPlayer* player, BGMPlayerTrack* track) {
if ((player->soundManager->bgmSounds[i].index) == 0) {
player->soundManager->bgmSounds[i].index = arg1;
player->soundManager->bgmSounds[i].volume =
((player->fadeInfo.curVolume.u16 * player->fadeInfo.volScale.u16) + AU_MAX_VOLUME_16) >> 0x17;
((player->fadeInfo.baseVolume.u16 * player->fadeInfo.envelopeVolume.u16) + AU_MAX_VOLUME_16) >> 0x17;
break;
}
}

View File

@ -51,10 +51,10 @@ void au_fade_init(Fade* fade, s32 time, s32 startValue, s32 endValue);
void au_fade_clear(Fade* fade);
void au_fade_update(Fade* fade);
void au_fade_set_volume(u8 arg0, u16 arg1, s32 arg2);
void au_unk_80053AC8(Fade* fade);
void au_fade_flush(Fade* fade);
void au_fade_set_vol_scale(Fade* fade, s16 value);
void au_unk_80053B04(Fade* fade, u32 arg1, s32 target);
void au_unk_80053BA8(Fade* fade);
void au_fade_update_envelope(Fade* fade);
Instrument* au_get_instrument(AuGlobals* globals, BankSetIndex bank, s32 patch, EnvelopeData* arg3);
void au_get_bgm_player_and_file(u32 playerIndex, BGMHeader** outCurrentTrackData, BGMPlayer** outPlayer);
void au_get_bgm_player(u32 playerIndex, BGMPlayer** outPlayer);

View File

@ -154,7 +154,7 @@ void au_engine_init(s32 outputRate) {
globals->channelDelayPending = FALSE;
au_init_delay_channel(0);
func_80055050(alHeap);
snd_notify_engine_ready(alHeap);
}
/// used to initialize the default Instrument
@ -223,9 +223,9 @@ void au_update_clients_for_audio_frame(void) {
}
// Update volume fade for SFX bus
if (sfxManager->fadeInfo.fadeTicks != 0) {
if (sfxManager->fadeInfo.baseTicks != 0) {
au_fade_update(&sfxManager->fadeInfo);
au_fade_set_volume(sfxManager->busID, sfxManager->fadeInfo.curVolume.u16, sfxManager->busVolume);
au_fade_set_volume(sfxManager->busID, sfxManager->fadeInfo.baseVolume.u16, sfxManager->busVolume);
}
// Periodic SFX manager update
@ -238,7 +238,7 @@ void au_update_clients_for_audio_frame(void) {
// update gBGMPlayerB
if (!PreventBGMPlayerUpdate) {
bgmPlayer = gBGMPlayerB;
if (bgmPlayer->fadeInfo.fadeTicks != 0) {
if (bgmPlayer->fadeInfo.baseTicks != 0) {
au_bgm_update_fade(bgmPlayer);
}
if (bgmPlayer->songName != 0) {
@ -257,14 +257,14 @@ void au_update_clients_for_audio_frame(void) {
func_8004DFD4(globals);
}
bgmPlayer = gBGMPlayerA;
if (bgmPlayer->fadeInfo.volScaleTime != 0) {
au_unk_80053BA8(&bgmPlayer->fadeInfo);
if (bgmPlayer->fadeInfo.fadeTicks == 0) {
if (bgmPlayer->fadeInfo.envelopeTicks != 0) {
au_fade_update_envelope(&bgmPlayer->fadeInfo);
if (bgmPlayer->fadeInfo.baseTicks == 0) {
au_bgm_update_bus_volumes(bgmPlayer);
} else {
au_bgm_update_fade(bgmPlayer);
}
} else if (bgmPlayer->fadeInfo.fadeTicks != 0) {
} else if (bgmPlayer->fadeInfo.baseTicks != 0) {
au_bgm_update_fade(bgmPlayer);
}
if (bgmPlayer->songName != 0) {
@ -413,36 +413,36 @@ f32 au_compute_pitch_ratio(s32 tuning) {
}
void au_fade_init(Fade* fade, s32 time, s32 startValue, s32 endValue) {
fade->curVolume.s32 = startValue << 16;
fade->targetVolume = endValue;
fade->baseVolume.s32 = startValue << 16;
fade->baseTarget = endValue;
if (time != 0) {
fade->fadeTicks = (time * 1000) / AU_FRAME_USEC;
fade->fadeStep = ((endValue << 16) - fade->curVolume.s32) / fade->fadeTicks;
fade->baseTicks = (time * 1000) / AU_FRAME_USEC;
fade->baseStep = ((endValue << 16) - fade->baseVolume.s32) / fade->baseTicks;
} else {
fade->fadeTicks = 1;
fade->fadeStep = 0;
fade->baseTicks = 1;
fade->baseStep = 0;
}
fade->onCompleteCallback = NULL;
}
void au_fade_clear(Fade* fade) {
fade->fadeTicks = 0;
fade->fadeStep = 0;
fade->baseTicks = 0;
fade->baseStep = 0;
fade->onCompleteCallback = NULL;
}
void au_fade_update(Fade* fade) {
fade->fadeTicks--;
fade->baseTicks--;
if ((fade->fadeTicks << 0x10) != 0) {
fade->curVolume.s32 += fade->fadeStep;
if ((fade->baseTicks << 0x10) != 0) {
fade->baseVolume.s32 += fade->baseStep;
} else {
fade->curVolume.s32 = fade->targetVolume << 0x10;
fade->baseVolume.s32 = fade->baseTarget << 0x10;
if (fade->onCompleteCallback != NULL) {
fade->onCompleteCallback();
fade->fadeStep = 0;
fade->baseStep = 0;
fade->onCompleteCallback = NULL;
}
}
@ -452,46 +452,46 @@ void au_fade_set_volume(u8 busID, u16 volume, s32 busVolume) {
au_bus_set_volume(busID, (u32)(volume * busVolume) / AU_MAX_BUS_VOLUME);
}
void au_unk_80053AC8(Fade* fade) {
if (fade->fadeTicks == 0) {
fade->fadeTicks = 1;
fade->fadeStep = 0;
fade->targetVolume = fade->curVolume.u16;
void au_fade_flush(Fade* fade) {
if (fade->baseTicks == 0) {
fade->baseTicks = 1;
fade->baseStep = 0;
fade->baseTarget = fade->baseVolume.u16;
}
}
void au_fade_set_vol_scale(Fade* fade, s16 value) {
fade->volScale.s32 = value << 16;
fade->targetVolScale = value;
fade->volScaleTime = 0;
fade->volScaleStep = 0;
fade->envelopeVolume.s32 = value << 16;
fade->envelopeTarget = value;
fade->envelopeTicks = 0;
fade->envelopeStep = 0;
}
void au_unk_80053B04(Fade* fade, u32 arg1, s32 target) {
s16 time;
void au_unk_80053B04(Fade* fade, u32 duration, s32 target) {
s16 ticks;
s32 delta;
if (arg1 >= 250 && arg1 <= 100000) {
time = (s32)(arg1 * 1000) / AU_FRAME_USEC;
delta = (target << 16) - fade->volScale.s32;
if (duration >= 250 && duration <= 100000) {
ticks = (s32)(duration * 1000) / AU_FRAME_USEC;
delta = (target << 16) - fade->envelopeVolume.s32;
fade->targetVolScale = target;
fade->volScaleTime = time;
fade->volScaleStep = delta / time;
fade->envelopeTarget = target;
fade->envelopeTicks = ticks;
fade->envelopeStep = delta / ticks;
} else {
fade->volScaleTime = 0;
fade->volScaleStep = 0;
fade->envelopeTicks = 0;
fade->envelopeStep = 0;
}
}
void au_unk_80053BA8(Fade* fade) {
fade->volScaleTime--;
void au_fade_update_envelope(Fade* fade) {
fade->envelopeTicks--;
if (fade->volScaleTime != 0) {
fade->volScale.s32 += fade->volScaleStep;
if (fade->envelopeTicks != 0) {
fade->envelopeVolume.s32 += fade->envelopeStep;
} else {
fade->volScaleStep = 0;
fade->volScale.s32 = fade->targetVolScale << 16;
fade->envelopeStep = 0;
fade->envelopeVolume.s32 = fade->envelopeTarget << 16;
}
}
@ -1168,13 +1168,13 @@ void au_set_bus_volume_level(s32 soundTypeFlags, u32 volPreset) {
s32 vol = PerceptualVolumeLevels[volPreset];
if (soundTypeFlags & AUDIO_TYPE_BGM) {
gBGMPlayerA->busVolume = vol;
au_unk_80053AC8(&gBGMPlayerA->fadeInfo);
au_fade_flush(&gBGMPlayerA->fadeInfo);
gBGMPlayerB->busVolume = vol;
au_unk_80053AC8(&gBGMPlayerB->fadeInfo);
au_fade_flush(&gBGMPlayerB->fadeInfo);
}
if (soundTypeFlags & AUDIO_TYPE_SFX) {
gSoundManager->busVolume = vol;
au_unk_80053AC8(&gSoundManager->fadeInfo);
au_fade_flush(&gSoundManager->fadeInfo);
}
}
}

View File

@ -58,7 +58,7 @@ AuResult func_8004DC80(s32 songName);
AuResult func_8004DCB8(SongUpdateEvent* update, s32 clearChanged);
AuResult func_8004DE2C(SongUpdateEvent* update);
void func_8004DFD4(AuGlobals* globals);
AuResult func_8004E0F4(SongUpdateEvent* update);
AuResult au_bgm_adjust_volume(SongUpdateEvent* update);
void au_bgm_player_init(BGMPlayer* player, s32 arg1, s32 arg2, AuGlobals* arg3);
void au_bgm_set_effect_indices(BGMPlayer* player, u8* list);
void au_bgm_update_fade(BGMPlayer* player);
@ -110,15 +110,14 @@ void au_bgm_reset_all_voices(BGMPlayer* player);
AuResult au_bgm_set_linked_tracks(SongUpdateEvent* arg0);
// ----------------------------------------------------------------------------------
// bgm_control.c
// snd_interface.c
// ----------------------------------------------------------------------------------
void snd_bgm_clear_legacy_commands(BGMPlayer* player);
/*
void func_80055050(ALHeap* heap);
void func_80055068(u32 arg0);
*/
void snd_notify_engine_ready(ALHeap* heap);
void snd_legacy_sound_dispatch(u32 arg0);
void snd_bgm_clear_legacy_commands(BGMPlayer* player);
void snd_bgm_enqueue_legacy_command(u32 arg0);
/*
void snd_start_sound(s32 soundID, u8 volume, u8 pan);
void snd_start_sound_with_shift(s32 soundID, u8 volume, u8 pan, s16 pitchShift);
void snd_adjust_sound(s32 soundID, u8 volume, u8 pan);
@ -155,8 +154,8 @@ AuResult func_80055B80(s32 songName);
AuResult func_80055BB8(s32 songName, s32 fadeTime);
AuResult func_80055BF0(s32 songName);
AuResult func_80055C2C(s32 songName);
AuResult func_80055C64(s32 songName);
AuResult func_80055C94(s32 songName);
AuResult snd_song_set_volume_quiet(s32 songName);
AuResult snd_song_set_volume_full(s32 songName);
AuResult snd_song_set_linked_mode(s32 songName, s32 mode);
*/
AuResult snd_song_get_playing_info(s32 songName, BGMHeader** outTrackData, BGMPlayer** outPlayer);
@ -166,7 +165,6 @@ AuResult snd_song_set_playback_rate(s32 songName, f32 arg1);
AuResult snd_song_set_detune(s32 songName, s32 arg1);
AuResult snd_song_set_track_volumes(s32 songName, MusicTrackVols arg1);
AuResult snd_song_clear_track_volumes(s32 songName, MusicTrackVols arg1);
u8* func_80055EB4(MusicTrackVols arg0);
AuResult snd_song_set_track_vol_mute(s32 arg0, s32 arg1);
AuResult snd_song_set_track_vol_quiet(s32 arg0, s32 arg1);
AuResult snd_song_set_track_vol_full(s32 arg0, s32 arg1);
@ -178,9 +176,7 @@ void snd_song_poll_music_events(u32** arg0, s32* arg1);
void snd_song_flush_music_events(void);
void snd_song_trigger_music_event(s32 playerID, s32 trackIndex, s32 eventInfo);
void snd_song_clear_music_events(void);
*/
void snd_register_callback(AuCallback arg0, s32 arg1);
/*
void snd_register_callback(AuCallback func, s32 index);
void snd_set_stereo(void);
void snd_set_mono(void);
void snd_set_bgm_volume(s32 arg0);
@ -190,7 +186,9 @@ void snd_enable_sfx(void);
void snd_disable_sfx(void);
*/
// sfx.c
// ----------------------------------------------------------------------------------
// sfx_control.c
// ----------------------------------------------------------------------------------
/*
void sfx_reset_door_sounds(void);
void sfx_clear_sounds(void);

View File

@ -1,11 +1,15 @@
#ifndef _AUDIO_PUBLIC_H_
#define _AUDIO_PUBLIC_H_
// 30450.c
void func_80055050(ALHeap* heap);
void func_80055068(u32 arg0);
#include "audio.h"
// ----------------------------------------------------------------------------------
// snd_interface.c
// ----------------------------------------------------------------------------------
void snd_notify_engine_ready(ALHeap* heap);
void snd_legacy_sound_dispatch(u32 id);
//void snd_bgm_clear_legacy_commands(BGMPlayer* player);
//void snd_bgm_enqueue_legacy_command(u32 arg0);
void snd_bgm_enqueue_legacy_command(u32 cmd);
void snd_start_sound(s32 soundID, u8 volume, u8 pan);
void snd_start_sound_with_shift(s32 soundID, u8 volume, u8 pan, s16 pitchShift);
void snd_adjust_sound(s32 soundID, u8 volume, u8 pan);
@ -42,8 +46,8 @@ AuResult func_80055B80(s32 songName);
AuResult func_80055BB8(s32 songName, s32 fadeTime);
AuResult func_80055BF0(s32 songName);
AuResult func_80055C2C(s32 songName);
AuResult func_80055C64(s32 songName);
AuResult func_80055C94(s32 songName);
AuResult snd_song_set_volume_quiet(s32 songName);
AuResult snd_song_set_volume_full(s32 songName);
AuResult snd_song_set_linked_mode(s32 songName, s32 mode);
//AuResult snd_song_get_playing_info(s32 songName, BGMHeader** outTrackData, BGMPlayer** outPlayer);
AuResult snd_song_set_playback_rate(s32 songName, f32 arg1);
@ -62,7 +66,7 @@ void snd_song_poll_music_events(u32** arg0, s32* arg1);
void snd_song_flush_music_events(void);
void snd_song_trigger_music_event(s32 playerID, s32 trackIndex, s32 eventInfo);
void snd_song_clear_music_events(void);
//void func_80056144(AuCallback arg0, s32 arg1);
//void snd_register_callback(AuCallback func, s32 index);
void snd_set_stereo(void);
void snd_set_mono(void);
void snd_set_bgm_volume(VolumeLevels volume);
@ -71,10 +75,12 @@ void snd_set_sfx_reverb_type(s32 arg0);
void snd_enable_sfx(void);
void snd_disable_sfx(void);
enum AuResult bgm_set_track_volumes(s32 playerIndex, s16 trackVolSet);
enum AuResult bgm_clear_track_volumes(s32 playerIndex, s16 trackVolSet);
enum AuResult bgm_set_linked_mode(s32 playerIndex, s16 mode);
// ----------------------------------------------------------------------------------
// bgm_control.c
// ----------------------------------------------------------------------------------
AuResult bgm_set_track_volumes(s32 playerIndex, s16 trackVolSet);
AuResult bgm_clear_track_volumes(s32 playerIndex, s16 trackVolSet);
AuResult bgm_set_linked_mode(s32 playerIndex, s16 mode);
void bgm_quiet_max_volume(void);
void bgm_reset_max_volume(void);
void bgm_reset_volume(void);
@ -83,7 +89,6 @@ s32 bgm_set_song(s32 playerIndex, s32 songID, s32 variation, s32 fadeOutTime, s1
void bgm_set_battle_song(s32, s32);
void bgm_push_battle_song(void);
s32 bgm_adjust_proximity(s32 playerIndex, s32 arg1, s16 arg2);
void func_801491E4(Matrix4f mtx, s32, s32, s32, s32, s32 alpha);
s32 bgm_fade_in_song(s32 playerIndex, s32 songID, s32 variation, s32 fadeInTime, s16 arg4, s16 arg5);
void bgm_update_music_settings(void);
@ -93,7 +98,9 @@ void bgm_pop_song(void);
void bgm_push_song(s32 songID, s32 variation);
void bgm_pop_battle_song(void);
// sfx.h
// ----------------------------------------------------------------------------------
// sfx_control.c
// ----------------------------------------------------------------------------------
void sfx_reset_door_sounds(void);
void sfx_clear_sounds(void);
void sfx_clear_env_sounds(s16 playSounds);

View File

@ -483,7 +483,7 @@ void au_sfx_init(SoundManager* manager, u8 priority, u8 busID, AuGlobals* global
}
manager->busVolume = AU_MAX_BUS_VOLUME;
manager->baseVolume = 0x8000;
manager->baseVolume = AU_MAX_BUS_VOLUME;
manager->frameCounter = 0;
manager->randomValue = 0;
@ -524,7 +524,7 @@ void au_sfx_init(SoundManager* manager, u8 priority, u8 busID, AuGlobals* global
au_sfx_set_state(manager, SND_MANAGER_STATE_ENABLED);
au_sfx_clear_queue(manager);
au_fade_init(&manager->fadeInfo, 0, AU_MAX_VOLUME_16, AU_MAX_VOLUME_16);
au_fade_set_volume(manager->busID, manager->fadeInfo.curVolume.u16, manager->busVolume);
au_fade_set_volume(manager->busID, manager->fadeInfo.baseVolume.u16, manager->busVolume);
manager->lastCustomEffectIdx = 0xFF;
manager->customReverbParams[0] = CUSTOM_SMALL_ROOM_PARAMS;

View File

@ -5,7 +5,7 @@
static u8* snd_song_get_track_volumes_set(MusicTrackVols arg0);
s32 PreventBGMPlayerUpdate = FALSE;
u16 D_80078DB4 = 0;
u16 SoundEngineReady = 0;
u16 AmbienceRadioChannel = 0;
// lists of data:
@ -101,32 +101,32 @@ u8 TrackVols_KPA_3[] = {
0
};
void func_80055050(ALHeap* heap) {
D_80078DB4 = 1;
void snd_notify_engine_ready(ALHeap* heap) {
SoundEngineReady = 1;
PreventBGMPlayerUpdate = FALSE;
}
/// Unused
/// Seems to be an early function that accepts a command to play any kind of audio asset,
// but only BGM and SFX are supported.
void func_80055068(u32 arg0) {
u16 temp_a0 = D_80078DB4;
u32 temp_v1 = arg0 & 0xF;
void snd_legacy_sound_dispatch(u32 id) {
u16 ready = SoundEngineReady;
u32 type = id & 0xF;
if (temp_a0 == 1) {
switch (temp_v1) {
if (ready == 1) {
switch (type) {
case 2:
case 3:
break;
case 4:
snd_start_sound_with_shift(arg0 >> 4, 0, 0, 0);
snd_start_sound_with_shift(id >> 4, 0, 0, 0);
break;
case 1:
if (temp_v1 == 1) {
s32 filename = snd_song_load((arg0 >> 4) & 0xFF, 0);
if (type == 1) {
s32 filename = snd_song_load((id >> 4) & 0xFF, 0);
if (filename > ASCII_TO_U32('0', ' ', ' ', '\0')) {
snd_song_start_variation(filename, (arg0 >> 0xC) & 3);
snd_song_start_variation(filename, (id >> 0xC) & 3);
}
}
break;
@ -617,20 +617,20 @@ AuResult func_80055C2C(s32 songName) {
return func_8004DE2C(&s);
}
AuResult func_80055C64(s32 songName) {
AuResult snd_song_set_volume_quiet(s32 songName) {
SongUpdateEvent s;
s.songName = songName;
s.duration = 500;
s.finalVolume = 0x2000;
return func_8004E0F4(&s);
s.finalVolume = 0.25001 * AU_MAX_VOLUME_16;
return au_bgm_adjust_volume(&s);
}
AuResult func_80055C94(s32 songName) {
AuResult snd_song_set_volume_full(s32 songName) {
SongUpdateEvent s;
s.songName = songName;
s.duration = 500;
s.finalVolume = AU_MAX_VOLUME_16;
return func_8004E0F4(&s);
return au_bgm_adjust_volume(&s);
}
AuResult snd_song_set_linked_mode(s32 songName, s32 mode) {

View File

@ -177,6 +177,8 @@ s32 spr_get_npc_color_variations(s32 npcSpriteID);
void create_shading_palette(Matrix4f mtx, s32 uls, s32 ult, s32 lrs, s32 lrt, s32 alpha, s32);
void func_801491E4(Matrix4f mtx, s32, s32, s32, s32, s32 alpha);
SpriteAnimData* spr_load_sprite(s32 idx, s32 arg1, s32 arg2);
#endif

View File

@ -794,7 +794,7 @@ segments:
- [auto, c, audio/ambience]
- [auto, c, windows]
- [auto, c, sprite_shading]
- [auto, c, audio/sfx]
- [auto, c, audio/sfx_control]
- [auto, c, audio/bgm_control]
- [auto, c, bss/engine2_post_bss]
- start: 0xE1D60

View File

@ -807,7 +807,7 @@ segments:
- [auto, c, audio/ambience]
- [auto, c, windows]
- [auto, c, sprite_shading]
- [auto, c, audio/sfx]
- [auto, c, audio/sfx_control]
- [auto, c, audio/bgm_control]
- [auto, c, bss/engine2_post_bss]
- start: 0xE6620

View File

@ -873,7 +873,7 @@ segments:
- [auto, c, audio/ambience]
- [auto, c, windows]
- [auto, c, sprite_shading]
- [auto, c, audio/sfx]
- [auto, c, audio/sfx_control]
- [auto, c, audio/bgm_control]
- [auto, c, bss/engine2_post_bss]
- start: 0xE1610

View File

@ -840,7 +840,7 @@ segments:
- [auto, c, audio/ambience]
- [auto, c, windows]
- [auto, c, sprite_shading]
- [auto, c, audio/sfx]
- [auto, c, audio/sfx_control]
- [auto, c, audio/bgm_control]
- [auto, c, bss/engine2_post_bss]
- start: 0xE2DF0

View File

@ -558,7 +558,7 @@ func_8004DC80 = 0x8004DC80; // type:func rom:0x29080
func_8004DCB8 = 0x8004DCB8; // type:func rom:0x290B8
func_8004DE2C = 0x8004DE2C; // type:func rom:0x2922C
func_8004DFD4 = 0x8004DFD4; // type:func rom:0x293D4
func_8004E0F4 = 0x8004E0F4; // type:func rom:0x294F4
au_bgm_adjust_volume = 0x8004E0F4; // type:func rom:0x294F4
au_bgm_player_init = 0x8004E158; // type:func rom:0x29558
au_bgm_set_effect_indices = 0x8004E344; // type:func rom:0x29744
au_bgm_update_fade = 0x8004E3A4; // type:func rom:0x297A4
@ -656,10 +656,10 @@ au_fade_init = 0x80053974; // type:func rom:0x2ED74
au_fade_clear = 0x80053A18; // type:func rom:0x2EE18
au_fade_update = 0x80053A28; // type:func rom:0x2EE28
au_fade_set_volume = 0x80053A98; // type:func rom:0x2EE98
au_unk_80053AC8 = 0x80053AC8; // type:func rom:0x2EEC8
au_fade_flush = 0x80053AC8; // type:func rom:0x2EEC8
au_fade_set_vol_scale = 0x80053AEC; // type:func rom:0x2EEEC
au_unk_80053B04 = 0x80053B04; // type:func rom:0x2EF04
au_unk_80053BA8 = 0x80053BA8; // type:func rom:0x2EFA8
au_fade_update_envelope = 0x80053BA8; // type:func rom:0x2EFA8
au_get_instrument = 0x80053BE8; // type:func rom:0x2EFE8
au_get_bgm_player_and_file = 0x80053C58; // type:func rom:0x2F058
au_get_bgm_player = 0x80053CB4; // type:func rom:0x2F0B4
@ -687,8 +687,8 @@ au_memset = 0x80054E90; // type:func rom:0x30290
au_copy_bytes = 0x80054F48; // type:func rom:0x30348
au_copy_words = 0x80054F74; // type:func rom:0x30374
au_load_BK_headers = 0x80054FC0; // type:func rom:0x303C0
func_80055050 = 0x80055050; // type:func rom:0x30450
func_80055068 = 0x80055068; // type:func rom:0x30468
snd_notify_engine_ready = 0x80055050; // type:func rom:0x30450
snd_legacy_sound_dispatch = 0x80055068; // type:func rom:0x30468
snd_bgm_clear_legacy_commands = 0x80055110; // type:func rom:0x30510
snd_bgm_enqueue_legacy_command = 0x8005513C; // type:func rom:0x3053C
snd_start_sound = 0x800551E0; // type:func rom:0x305E0
@ -727,8 +727,8 @@ func_80055B80 = 0x80055B80; // type:func rom:0x30F80
func_80055BB8 = 0x80055BB8; // type:func rom:0x30FB8
func_80055BF0 = 0x80055BF0; // type:func rom:0x30FF0
func_80055C2C = 0x80055C2C; // type:func rom:0x3102C
func_80055C64 = 0x80055C64; // type:func rom:0x31064
func_80055C94 = 0x80055C94; // type:func rom:0x31094
snd_song_set_volume_quiet = 0x80055C64; // type:func rom:0x31064
snd_song_set_volume_full = 0x80055C94; // type:func rom:0x31094
snd_song_set_linked_mode = 0x80055CC4; // type:func rom:0x310C4
snd_song_get_playing_info = 0x80055CE8; // type:func rom:0x310E8
snd_song_set_playback_rate = 0x80055D38; // type:func rom:0x31138
@ -1411,7 +1411,7 @@ nuAuFrameCounter = 0x8007817C; // rom:0x5357C
nuAuTaskStop = 0x80078180; // rom:0x53580
AuSynUseStereo = 0x80078181; // rom:0x53581
PreventBGMPlayerUpdate = 0x80078DB0; // rom:0x541B0
D_80078DB4 = 0x80078DB4; // rom:0x541B4
SoundEngineReady = 0x80078DB4; // rom:0x541B4
AuAmbienceEnabledOnlyPlayer = 0x80078DB6; // rom:0x541B6
TrackVols_JAN_Full = 0x80078DB8; // rom:0x541B8
TrackVols_Unused1 = 0x80078DC4; // rom:0x541C4