mirror of https://github.com/pmret/papermario.git
all functions named
This commit is contained in:
parent
b38ba22a90
commit
c9eee0142f
70
src/audio.h
70
src/audio.h
|
@ -62,7 +62,9 @@ typedef u8* WaveData;
|
|||
#define AU_MAX_VOLUME_16 0x7FFF
|
||||
#define AU_MAX_VOLUME_32 0x7FFFFFFF
|
||||
|
||||
#define AU_PAN_MIN 0
|
||||
#define AU_PAN_MID 64
|
||||
#define AU_PAN_MAX 127
|
||||
|
||||
// only valid for vol != 0
|
||||
#define AU_VOL_8_TO_16(vol) (((vol) << 8) | 0xFF)
|
||||
|
@ -144,18 +146,18 @@ typedef enum MusicState {
|
|||
MUSIC_STATE_PLAY_NEXT = 5,
|
||||
} MusicState;
|
||||
|
||||
enum MusicFlags {
|
||||
typedef enum MusicFlags {
|
||||
MUSIC_FLAG_PLAYING = 0x01,
|
||||
MUSIC_FLAG_ENABLE_PROX_MIX = 0x02,
|
||||
MUSIC_FLAG_PUSHING = 0x04,
|
||||
MUSIC_FLAG_POPPING = 0x08,
|
||||
MUSIC_FLAG_IGNORE_POP = 0x10,
|
||||
MUSIC_FLAG_FADE_IN_NEXT = 0x20,
|
||||
};
|
||||
} MusicFlags;
|
||||
|
||||
enum MusicFades {
|
||||
MUSIC_CROSS_FADE = 0,
|
||||
};
|
||||
typedef enum BGMSnapshots {
|
||||
BGM_SNAPSHOT_0 = 0,
|
||||
} BGMSnapshots;
|
||||
|
||||
typedef enum BGMPlayerState {
|
||||
BGM_PLAY_STATE_IDLE = 0,
|
||||
|
@ -197,6 +199,12 @@ typedef enum DelayChannel {
|
|||
AU_DELAY_CHANNEL_RIGHT = 2,
|
||||
} DelayChannel;
|
||||
|
||||
typedef enum DelayState {
|
||||
AU_DELAY_STATE_ON = 0, /// channel delay is enabled (though not necessarily applied)
|
||||
AU_DELAY_STATE_OFF = 1, /// channel delay is disabled
|
||||
AU_DELAY_STATE_REQUEST_OFF = 2, /// game thread has scheduled the channel delay to be disabled
|
||||
} DelayState;
|
||||
|
||||
typedef enum EnvelopeCommand {
|
||||
ENV_CMD_END_LOOP = 0xFB,
|
||||
ENV_CMD_START_LOOP = 0xFC,
|
||||
|
@ -445,7 +453,7 @@ typedef union SeqArgs {
|
|||
u8 type;
|
||||
u8 arg1;
|
||||
u8 arg2;
|
||||
} UnkCmdFF;
|
||||
} Special;
|
||||
} SeqArgs;
|
||||
|
||||
/// Structure for volume fading for SFX and BGM. Has independent controls for base and envelope volumes.
|
||||
|
@ -965,11 +973,11 @@ typedef struct AuEffectChange {
|
|||
/* 0x2 */ char unk_02[2];
|
||||
} AuEffectChange;
|
||||
|
||||
typedef struct SndGlobalsSub6C {
|
||||
typedef struct BGMPlayerSnapshot {
|
||||
/* 0x00 */ struct BGMPlayer* bgmPlayer;
|
||||
/* 0x04 */ u8 assigned;
|
||||
/* 0x05 */ u8 priority;
|
||||
} SndGlobalsSub6C;
|
||||
} BGMPlayerSnapshot;
|
||||
|
||||
// found at 801D57A0
|
||||
typedef struct AuGlobals {
|
||||
|
@ -995,14 +1003,14 @@ typedef struct AuGlobals {
|
|||
/* 0x0058 */ BGMInstrumentInfo* dataPRG;
|
||||
/* 0x005C */ struct BGMHeader* dataBGM[2];
|
||||
/* 0x0064 */ struct MSEQHeader* dataMSEQ[2];
|
||||
/* 0x006C */ SndGlobalsSub6C unk_globals_6C[1];
|
||||
/* 0x0074 */ struct BGMPlayer* unk_74;
|
||||
/* 0x0078 */ struct BGMPlayer* unk_78;
|
||||
/* 0x007C */ s32 unkSongName;
|
||||
/* 0x0080 */ s32 unk_80;
|
||||
/* 0x0084 */ s32 unkFadeTime;
|
||||
/* 0x0088 */ s32 unkFadeStart;
|
||||
/* 0x008C */ s32 unkFadeEnd;
|
||||
/* 0x006C */ BGMPlayerSnapshot snapshots[1];
|
||||
/* 0x0074 */ struct BGMPlayer* resumeCopyTo;
|
||||
/* 0x0078 */ struct BGMPlayer* resumeCopyFrom;
|
||||
/* 0x007C */ s32 resumeSongName;
|
||||
/* 0x0080 */ b32 resumeRequested;
|
||||
/* 0x0084 */ s32 resumeFadeTime;
|
||||
/* 0x0088 */ s32 resumeFadeStart;
|
||||
/* 0x008C */ s32 resumeFadeEnd;
|
||||
/* 0x0090 */ MusicEventTrigger* musicEventQueuePos;
|
||||
/* 0x0094 */ MusicEventTrigger* musicEventQueue;
|
||||
/* 0x0098 */ u32 musicEventQueueCount;
|
||||
|
@ -1017,7 +1025,7 @@ typedef struct AuGlobals {
|
|||
/* 0x0DEC */ InstrumentBank bankSet5[16];
|
||||
/* 0x11EC */ InstrumentBank bankSet6[4];
|
||||
/* 0x12EC */ InstrumentBank* bankSets[8];
|
||||
/* 0x130C */ u8 unk_130C;
|
||||
/* 0x130C */ u8 channelDelayState;
|
||||
/* 0x130D */ char unk_130D[3];
|
||||
/* 0x1310 */ BKFileBuffer* auxBanks[3];
|
||||
/* 0x131C */ char unk_131C[4];
|
||||
|
@ -1033,12 +1041,12 @@ typedef struct BGMPlayerTrack {
|
|||
/* 0x18 */ s8_24 subTrackVolume;
|
||||
/* 0x1C */ s16_16 subTrackVolumeStep;
|
||||
/* 0x20 */ s16_16 subTrackVolumeTarget;
|
||||
/* 0x24 */ s32 subTrackVolumeTime;
|
||||
/* 0x24 */ s32 subTrackVolumeTicks;
|
||||
/* 0x28 */ s32 delayTime;
|
||||
/* 0x2C */ s16_16 proxVolume;
|
||||
/* 0x30 */ s16_16 proxVolumeStep;
|
||||
/* 0x34 */ s16 proxVolumeTarget;
|
||||
/* 0x36 */ s16 proxVolumeTime;
|
||||
/* 0x36 */ s16 proxVolumeTicks;
|
||||
/* 0x38 */ s16 segTrackTune;
|
||||
/* 0x3A */ s16 tremoloDelay;
|
||||
/* 0x3C */ char unk_3C[0x2];
|
||||
|
@ -1093,7 +1101,7 @@ typedef struct BGMPlayer {
|
|||
/* 0x014 */ s32 updateCounter;
|
||||
/* 0x018 */ s32 songPlayingCounter;
|
||||
/* 0x01C */ s32 songName;
|
||||
/* 0x020 */ s32 fadeSongName;
|
||||
/* 0x020 */ s32 pushSongName;
|
||||
/* 0x024 */ s32 bgmFileIndex;
|
||||
/* 0x028 */ s32 songID;
|
||||
/* 0x02C */ Fade fadeInfo;
|
||||
|
@ -1101,27 +1109,27 @@ typedef struct BGMPlayer {
|
|||
/* 0x04C */ u8 effectIndices[4];
|
||||
/* 0x050 */ s32 randomValue1;
|
||||
/* 0x054 */ s32 randomValue2;
|
||||
/* 0x058 */ u16 unk_58;
|
||||
/* 0x05A */ s16 unk_5A;
|
||||
/* 0x058 */ u16 unk_58; // related to legacy command system, unused
|
||||
/* 0x05A */ u16 unk_5A; // related to legacy command system, unused
|
||||
/* 0x05C */ s16 prevUpdateResult; // unused, may indicate error status
|
||||
/* 0x05E */ char pad5E[2];
|
||||
/* 0x05E */ char pad_5E[2];
|
||||
/* 0x060 */ s32 curVariation;
|
||||
/* 0x064 */ struct BGMHeader* bgmFile;
|
||||
/* 0x068 */ SegData* compReadPos;
|
||||
/* 0x06C */ SegData* compStartPos;
|
||||
/* 0x070 */ SegData* phraseStartPos;
|
||||
/* 0x074 */ s32 unk_74;
|
||||
/* 0x074 */ u8* tickRatePtr; // related to legacy command system, unused
|
||||
/* 0x078 */ BGMDrumInfo* drumsInfo;
|
||||
/* 0x07C */ BGMInstrumentInfo* instrumentsInfo;
|
||||
/* 0x080 */ BGMDrumInfo* drums[12];
|
||||
/* 0x0B0 */ s32 masterTempo;
|
||||
/* 0x0B4 */ s32 masterTempoStep;
|
||||
/* 0x0B8 */ s32 masterTempoTarget;
|
||||
/* 0x0BC */ s32 masterTempoTime;
|
||||
/* 0x0BC */ s32 masterTempoTicks;
|
||||
/* 0x0C0 */ s8_24 masterVolume;
|
||||
/* 0x0C4 */ s32 masterVolumeStep;
|
||||
/* 0x0C8 */ s32 masterVolumeTarget;
|
||||
/* 0x0CC */ s32 masterVolumeTime;
|
||||
/* 0x0CC */ s32 masterVolumeTicks;
|
||||
/* 0x0D0 */ f32 playbackRate;
|
||||
/* 0x0D4 */ SeqArgs seqCmdArgs;
|
||||
/* 0x0D8 */ SegData* compLoopStartLabels[32];
|
||||
|
@ -1130,7 +1138,7 @@ typedef struct BGMPlayer {
|
|||
/* 0x16C */ s32 proxMixValue;
|
||||
/* 0x170 */ u8 proxMixID;
|
||||
/* 0x171 */ u8 proxMixVolume;
|
||||
/* 0x172 */ char unk_172[0x2];
|
||||
/* 0x172 */ char pad_172[2];
|
||||
/* 0x174 */ s16 customPressEnvelopes[8][9]; /// Dynamically customizable press envelopes
|
||||
/* 0x204 */ u8* trackVolsConfig;
|
||||
/* 0x208 */ u16 masterTempoBPM;
|
||||
|
@ -1145,19 +1153,19 @@ typedef struct BGMPlayer {
|
|||
/* 0x21C */ u8 bgmDrumCount;
|
||||
/* 0x21D */ u8 bgmInstrumentCount;
|
||||
/* 0x21E */ u8 unk_21E;
|
||||
/* 0x21F */ char unk_21F[0x1];
|
||||
/* 0x21F */ char pad_21F[1];
|
||||
/* 0x220 */ u8 paused;
|
||||
/* 0x221 */ u8 masterState;
|
||||
/* 0x222 */ u8 unk_222;
|
||||
/* 0x223 */ u8 unk_223;
|
||||
/* 0x224 */ u8 effectValues[4];
|
||||
/* 0x227 */ char unk_228[0x2];
|
||||
/* 0x227 */ char pad_228[2];
|
||||
/* 0x22A */ u8 unk_22A[8];
|
||||
/* 0x232 */ u8 bFadeConfigSetsVolume;
|
||||
/* 0x233 */ u8 initLinkMute; /// Used to mute any linked tracks after the first one encountered.
|
||||
/* 0x234 */ u8 priority;
|
||||
/* 0x235 */ u8 busID;
|
||||
/* 0x236 */ char unk_236[0x2];
|
||||
/* 0x236 */ char pad_236[2];
|
||||
/* 0x238 */ s32 cmdBufData[8]; /// Buffer for an unused (legacy) system for controlling the BGMPlayer from the main thread
|
||||
/* 0x258 */ u8 cmdBufPending;
|
||||
/* 0x259 */ u8 cmdBufReadPos;
|
||||
|
@ -1196,7 +1204,7 @@ typedef struct SongUpdateRequestC {
|
|||
/* 0x08 */ s32 startVolume;
|
||||
/* 0x0C */ s32 finalVolume;
|
||||
/* 0x10 */ s32 index;
|
||||
/* 0x14 */ s32 pauseMode;
|
||||
/* 0x14 */ s32 pauseMode; /// if true, the player is paused, else it will be saved to a snapshot
|
||||
/* 0x18 */ char pad_18[8];
|
||||
} SongUpdateRequestC; // size = 0x1C or 0x20
|
||||
|
||||
|
|
|
@ -99,7 +99,7 @@ void bgm_update_music_control(void) {
|
|||
music->state = stateFadeOut;
|
||||
}
|
||||
} else {
|
||||
if (snd_song_UNK_push_stop(music->songName) == AU_RESULT_OK) {
|
||||
if (snd_song_push_stop(music->songName) == AU_RESULT_OK) {
|
||||
music->state = stateFadeOut;
|
||||
}
|
||||
}
|
||||
|
@ -108,7 +108,7 @@ void bgm_update_music_control(void) {
|
|||
music->state = stateFadeOut;
|
||||
}
|
||||
} else {
|
||||
if (snd_song_UNK_request_push_fade_out(music->songName, 250) == AU_RESULT_OK) {
|
||||
if (snd_song_request_push_fade_out(music->songName, 250) == AU_RESULT_OK) {
|
||||
music->state = stateFadeOut;
|
||||
}
|
||||
}
|
||||
|
@ -170,7 +170,7 @@ void bgm_update_music_control(void) {
|
|||
if (music->flags & MUSIC_FLAG_IGNORE_POP) {
|
||||
music->state = MUSIC_STATE_IDLE;
|
||||
music->flags &= ~(MUSIC_FLAG_IGNORE_POP | MUSIC_FLAG_POPPING);
|
||||
} else if (snd_song_UNK_request_pop(music->savedSongName) == AU_RESULT_OK) {
|
||||
} else if (snd_song_request_pop(music->savedSongName) == AU_RESULT_OK) {
|
||||
music->requestedSongID = music->savedSongID;
|
||||
music->variation = music->savedVariation;
|
||||
music->songName = music->savedSongName;
|
||||
|
@ -210,7 +210,7 @@ s32 _bgm_set_song(s32 playerIndex, s32 songID, s32 variation, s32 fadeOutTime, s
|
|||
bgm_set_target_volume(volume);
|
||||
|
||||
if (music->flags & MUSIC_FLAG_PUSHING) {
|
||||
func_80055B80(music->songName);
|
||||
snd_song_request_snapshot(music->songName);
|
||||
music->flags &= ~MUSIC_FLAG_PUSHING;
|
||||
}
|
||||
|
||||
|
|
|
@ -76,7 +76,7 @@ void au_bgm_begin_video_frame(BGMPlayer* player) {
|
|||
}
|
||||
player->bgmFile = bgmFile;
|
||||
bgmData = &bgmFile->info;
|
||||
au_bgm_set_tick_resolution(player, BGM_SAMPLE_RATE, BgmTicksRates[((u8*)player->unk_74)[0] & 7]); //TODO revise unk_74 typing
|
||||
au_bgm_set_tick_resolution(player, BGM_SAMPLE_RATE, BgmTicksRates[*(player->tickRatePtr) & 7]);
|
||||
|
||||
compOffset = bgmData->compositions[compID];
|
||||
if (compOffset == 0) {
|
||||
|
@ -109,7 +109,7 @@ void au_bgm_begin_video_frame(BGMPlayer* player) {
|
|||
player->bgmInstrumentCount = 0;
|
||||
}
|
||||
} else {
|
||||
if (player->unk_58) {
|
||||
if (player->unk_58 != 0) {
|
||||
player->masterState = BGM_PLAY_STATE_STOP;
|
||||
player->nextUpdateCounter = 1;
|
||||
player->nextUpdateStep = 1;
|
||||
|
@ -304,7 +304,7 @@ AuResult au_bgm_process_fade_out(SongUpdateRequestB* request) {
|
|||
player->fadeInfo.baseStep = ((volume << 0x10) - player->fadeInfo.baseVolume) / player->fadeInfo.baseTicks;
|
||||
player->fadeInfo.onCompleteCallback = request->callback;
|
||||
if (request->onPush == 1) {
|
||||
player->fadeSongName = songName;
|
||||
player->pushSongName = songName;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -321,25 +321,25 @@ AuResult au_bgm_process_fade_out(SongUpdateRequestB* request) {
|
|||
return status;
|
||||
}
|
||||
|
||||
AuResult func_8004DC80(s32 songName) {
|
||||
AuResult au_bgm_complete_push(s32 songName) {
|
||||
SongUpdateRequestC s;
|
||||
|
||||
s.songName = songName;
|
||||
s.duration = 0;
|
||||
s.startVolume = 0;
|
||||
s.finalVolume = 0;
|
||||
s.index = MUSIC_CROSS_FADE;
|
||||
s.index = BGM_SNAPSHOT_0;
|
||||
s.pauseMode = FALSE;
|
||||
|
||||
return au_bgm_process_suspend(&s, 0);
|
||||
return au_bgm_process_suspend(&s, 0); // force stop
|
||||
}
|
||||
|
||||
AuResult au_bgm_process_suspend(SongUpdateRequestC* request, s32 clearChanged) {
|
||||
AuResult au_bgm_process_suspend(SongUpdateRequestC* request, b32 skipStop) {
|
||||
AuResult status;
|
||||
BGMPlayer* playerA;
|
||||
BGMPlayer* playerB;
|
||||
BGMPlayer* player;
|
||||
BGMPlayer* snapshot;
|
||||
s32 songName;
|
||||
s32 index; //TODO
|
||||
s32 index;
|
||||
u32 i;
|
||||
u32 j;
|
||||
|
||||
|
@ -348,15 +348,15 @@ AuResult au_bgm_process_suspend(SongUpdateRequestC* request, s32 clearChanged) {
|
|||
status = AU_RESULT_OK;
|
||||
|
||||
if (songName != 0) {
|
||||
playerA = au_bgm_get_player_with_song_name(songName);
|
||||
if (playerA != NULL) {
|
||||
player = au_bgm_get_player_with_song_name(songName);
|
||||
if (player != NULL) {
|
||||
if (!request->pauseMode) {
|
||||
playerB = au_unk_get_temp_player_for_index(index);
|
||||
if (playerB != NULL) {
|
||||
if (songName == playerA->songName) {
|
||||
if (!clearChanged) {
|
||||
for (i = 0; i < ARRAY_COUNT(playerA->tracks); i++) {
|
||||
BGMPlayerTrack* track = &playerA->tracks[i];
|
||||
snapshot = au_get_snapshot_by_index(index);
|
||||
if (snapshot != NULL) {
|
||||
if (songName == player->songName) {
|
||||
if (!skipStop) {
|
||||
for (i = 0; i < ARRAY_COUNT(player->tracks); i++) {
|
||||
BGMPlayerTrack* track = &player->tracks[i];
|
||||
if (track->bgmReadPos != NULL) {
|
||||
for (j = track->firstVoice; j < track->lastVoice; j++) {
|
||||
track->changed.all = 0;
|
||||
|
@ -364,22 +364,22 @@ AuResult au_bgm_process_suspend(SongUpdateRequestC* request, s32 clearChanged) {
|
|||
}
|
||||
}
|
||||
}
|
||||
playerA->globals->unk_globals_6C[index].priority = playerA->priority;
|
||||
playerA->globals->unk_globals_6C[index].assigned = 1;
|
||||
playerA->fadeSongName = 0;
|
||||
au_copy_words(playerA, playerB, sizeof(*playerA));
|
||||
if (clearChanged == 0) {
|
||||
au_bgm_stop_player(playerA);
|
||||
player->globals->snapshots[index].priority = player->priority;
|
||||
player->globals->snapshots[index].assigned = 1;
|
||||
player->pushSongName = 0;
|
||||
au_copy_words(player, snapshot, sizeof(*player));
|
||||
if (!skipStop) {
|
||||
au_bgm_stop_player(player);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
status = AU_ERROR_INVALID_SONG_DURATION;
|
||||
}
|
||||
} else {
|
||||
if (songName == playerA->songName) {
|
||||
if (playerA->masterState != BGM_PLAY_STATE_IDLE) {
|
||||
playerA->paused = TRUE;
|
||||
au_bgm_reset_all_voices(playerA);
|
||||
if (songName == player->songName) {
|
||||
if (player->masterState != BGM_PLAY_STATE_IDLE) {
|
||||
player->paused = TRUE;
|
||||
au_bgm_reset_all_voices(player);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -394,8 +394,8 @@ AuResult au_bgm_process_suspend(SongUpdateRequestC* request, s32 clearChanged) {
|
|||
|
||||
AuResult au_bgm_process_resume(SongUpdateRequestE* request) {
|
||||
AuResult status;
|
||||
BGMPlayer* playerA;
|
||||
BGMPlayer* playerB;
|
||||
BGMPlayer* player;
|
||||
BGMPlayer* snapshot;
|
||||
s32 index;
|
||||
s32 songName;
|
||||
s32 volume0;
|
||||
|
@ -408,12 +408,12 @@ AuResult au_bgm_process_resume(SongUpdateRequestE* request) {
|
|||
|
||||
if (songName != 0) {
|
||||
if (!request->pauseMode) {
|
||||
playerA = au_unk_get_temp_player_for_index(index);
|
||||
if (playerA != NULL && playerA->globals->unk_globals_6C[index].assigned == 1) {
|
||||
playerB = au_get_client_by_priority(playerA->globals->unk_globals_6C[index].priority);
|
||||
if (playerB != NULL) {
|
||||
if (!au_bgm_player_is_active(playerB)) {
|
||||
status = au_unk_80053E58(playerA->songID, playerA->bgmFile);
|
||||
snapshot = au_get_snapshot_by_index(index);
|
||||
if (snapshot != NULL && snapshot->globals->snapshots[index].assigned == 1) {
|
||||
player = au_get_client_by_priority(snapshot->globals->snapshots[index].priority);
|
||||
if (player != NULL) {
|
||||
if (!au_bgm_player_is_active(player)) {
|
||||
status = au_reload_song_files(snapshot->songID, snapshot->bgmFile);
|
||||
duration = request->duration;
|
||||
if (duration != 0) {
|
||||
if (duration > SND_MAX_DURATION) {
|
||||
|
@ -438,13 +438,13 @@ AuResult au_bgm_process_resume(SongUpdateRequestE* request) {
|
|||
} else {
|
||||
volume1 = AU_MAX_VOLUME_16;
|
||||
}
|
||||
playerB->globals->unk_74 = playerB;
|
||||
playerB->globals->unk_78 = playerA;
|
||||
playerB->globals->unkSongName = songName;
|
||||
playerB->globals->unkFadeTime = duration;
|
||||
playerB->globals->unkFadeStart = volume0;
|
||||
playerB->globals->unkFadeEnd = volume1;
|
||||
playerB->globals->unk_80 = 1;
|
||||
player->globals->resumeCopyTo = player;
|
||||
player->globals->resumeCopyFrom = snapshot;
|
||||
player->globals->resumeSongName = songName;
|
||||
player->globals->resumeFadeTime = duration;
|
||||
player->globals->resumeFadeStart = volume0;
|
||||
player->globals->resumeFadeEnd = volume1;
|
||||
player->globals->resumeRequested = TRUE;
|
||||
} else {
|
||||
status = AU_ERROR_7;
|
||||
}
|
||||
|
@ -455,11 +455,11 @@ AuResult au_bgm_process_resume(SongUpdateRequestE* request) {
|
|||
status = AU_ERROR_INVALID_SONG_DURATION;
|
||||
}
|
||||
} else {
|
||||
playerB = au_bgm_get_player_with_song_name(songName);
|
||||
if (playerB != NULL) {
|
||||
if (songName == playerB->songName) {
|
||||
if (playerB->paused) {
|
||||
playerB->paused = FALSE;
|
||||
player = au_bgm_get_player_with_song_name(songName);
|
||||
if (player != NULL) {
|
||||
if (songName == player->songName) {
|
||||
if (player->paused) {
|
||||
player->paused = FALSE;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -470,7 +470,7 @@ AuResult au_bgm_process_resume(SongUpdateRequestE* request) {
|
|||
return status;
|
||||
}
|
||||
|
||||
void func_8004DFD4(AuGlobals* globals) {
|
||||
void au_bgm_restore_copied_player(AuGlobals* globals) {
|
||||
BGMPlayer* player;
|
||||
BGMPlayerTrack* track;
|
||||
SeqNote* note;
|
||||
|
@ -478,9 +478,9 @@ void func_8004DFD4(AuGlobals* globals) {
|
|||
u32 j;
|
||||
s32 k;
|
||||
|
||||
player = globals->unk_74;
|
||||
au_copy_words(globals->unk_78, globals->unk_74, sizeof(*player));
|
||||
if (globals->unkSongName == player->songName) {
|
||||
player = globals->resumeCopyTo;
|
||||
au_copy_words(globals->resumeCopyFrom, globals->resumeCopyTo, sizeof(*player));
|
||||
if (globals->resumeSongName == player->songName) {
|
||||
for (i = 0; i < ARRAY_COUNT(player->tracks); i++) {
|
||||
track = &player->tracks[i];
|
||||
if (track->bgmReadPos != NULL) {
|
||||
|
@ -497,9 +497,9 @@ void func_8004DFD4(AuGlobals* globals) {
|
|||
au_BGMCmd_E6_MasterEffect(player, track);
|
||||
}
|
||||
}
|
||||
au_fade_init(&player->fadeInfo, globals->unkFadeTime, globals->unkFadeStart, globals->unkFadeEnd);
|
||||
au_fade_init(&player->fadeInfo, globals->resumeFadeTime, globals->resumeFadeStart, globals->resumeFadeEnd);
|
||||
}
|
||||
globals->unk_80 = 0;
|
||||
globals->resumeRequested = FALSE;
|
||||
}
|
||||
|
||||
AuResult au_bgm_adjust_volume(SongUpdateRequestA* request) {
|
||||
|
@ -531,16 +531,16 @@ void au_bgm_player_init(BGMPlayer* player, s32 priority, s32 busID, AuGlobals* g
|
|||
player->updateCounter = 0;
|
||||
player->songPlayingCounter = 0;
|
||||
player->songName = 0;
|
||||
player->fadeSongName = 0;
|
||||
player->unk_58 = FALSE;
|
||||
player->unk_5A = FALSE;
|
||||
player->pushSongName = 0;
|
||||
player->unk_58 = 0;
|
||||
player->unk_5A = 0;
|
||||
player->compReadPos = NULL;
|
||||
player->compStartPos = NULL;
|
||||
player->phraseStartPos = 0;
|
||||
player->masterTempoTime = 0;
|
||||
player->masterTempoTicks = 0;
|
||||
player->masterTempoTarget = 0;
|
||||
player->masterTempoStep = 0;
|
||||
player->masterVolumeTime = 0;
|
||||
player->masterVolumeTicks = 0;
|
||||
player->masterVolumeTarget = 0;
|
||||
player->masterVolumeStep = 0;
|
||||
player->masterPitchShift = 0;
|
||||
|
@ -631,8 +631,9 @@ void au_bgm_update_fade(BGMPlayer* player) {
|
|||
player->fadeInfo.onCompleteCallback();
|
||||
}
|
||||
|
||||
if (player->fadeSongName != 0) {
|
||||
func_8004DC80(player->fadeSongName);
|
||||
// Was this fade tagged as a push?
|
||||
if (player->pushSongName != 0) {
|
||||
au_bgm_complete_push(player->pushSongName);
|
||||
} else if (player->fadeInfo.baseVolume == 0) {
|
||||
au_bgm_stop_player(player);
|
||||
}
|
||||
|
@ -725,10 +726,10 @@ void au_bgm_player_initialize(BGMPlayer* player) {
|
|||
track->tremoloRate = 0;
|
||||
track->subTrackVolumeStep = 0;
|
||||
track->subTrackVolumeTarget = 0;
|
||||
track->subTrackVolumeTime = 0;
|
||||
track->subTrackVolumeTicks = 0;
|
||||
track->proxVolumeStep = 0;
|
||||
track->proxVolumeTarget = 0;
|
||||
track->proxVolumeTime = 0;
|
||||
track->proxVolumeTicks = 0;
|
||||
track->unk_4D = FALSE;
|
||||
track->unk_4E = 0;
|
||||
track->unk_4F = 0;
|
||||
|
@ -759,12 +760,12 @@ void au_bgm_player_initialize(BGMPlayer* player) {
|
|||
player->masterTempoBPM = BGM_DEFAULT_TEMPO / 100;
|
||||
player->unk_21E = 0x80;
|
||||
player->masterVolume = AU_MAX_VOLUME_8 << 24;
|
||||
player->fadeSongName = 0;
|
||||
player->unk_74 = 0;
|
||||
player->pushSongName = 0;
|
||||
player->tickRatePtr = NULL;
|
||||
player->masterTempoTarget = 0;
|
||||
player->masterPitchShift = 0;
|
||||
player->detune = 0;
|
||||
player->masterVolumeTime = 0;
|
||||
player->masterVolumeTicks = 0;
|
||||
player->masterVolumeTarget = 0;
|
||||
player->masterVolumeStep = 0;
|
||||
player->proxMixValue = 0;
|
||||
|
@ -852,7 +853,7 @@ void au_bgm_player_read_composition(BGMPlayer* player) {
|
|||
u32 cmd;
|
||||
|
||||
player->masterTempoStep = 0;
|
||||
player->masterTempoTime = 0;
|
||||
player->masterTempoTicks = 0;
|
||||
|
||||
while (continueReading) {
|
||||
cmd = *player->compReadPos++;
|
||||
|
@ -995,9 +996,9 @@ void au_bgm_player_update_stop(BGMPlayer* player) {
|
|||
|
||||
player->paused = FALSE;
|
||||
player->songName = 0;
|
||||
player->fadeSongName = 0;
|
||||
player->unk_58 = FALSE;
|
||||
player->unk_5A = FALSE;
|
||||
player->pushSongName = 0;
|
||||
player->unk_58 = 0;
|
||||
player->unk_5A = 0;
|
||||
for (i = 0; i < ARRAY_COUNT(player->tracks); i++) {
|
||||
player->tracks[i].bgmReadPos = NULL;
|
||||
}
|
||||
|
@ -1014,6 +1015,7 @@ if (track->detourLength != 0) {\
|
|||
}\
|
||||
}
|
||||
|
||||
/// play next tick
|
||||
void au_bgm_player_update_playing(BGMPlayer *player) {
|
||||
s32 bVolumeFading;
|
||||
u8 sp1F;
|
||||
|
@ -1037,9 +1039,9 @@ void au_bgm_player_update_playing(BGMPlayer *player) {
|
|||
bVolumeFading = FALSE;
|
||||
bFinished = FALSE;
|
||||
|
||||
if (player->masterTempoTime != 0) {
|
||||
player->masterTempoTime--;
|
||||
if (player->masterTempoTime == 0) {
|
||||
if (player->masterTempoTicks != 0) {
|
||||
player->masterTempoTicks--;
|
||||
if (player->masterTempoTicks == 0) {
|
||||
player->masterTempo = player->masterTempoTarget;
|
||||
player->masterTempoTarget = 0;
|
||||
player->masterTempoStep = 0;
|
||||
|
@ -1048,9 +1050,9 @@ void au_bgm_player_update_playing(BGMPlayer *player) {
|
|||
}
|
||||
player->nextUpdateStep = player->masterTempo * 10;
|
||||
}
|
||||
if (player->masterVolumeTime != 0) {
|
||||
player->masterVolumeTime--;
|
||||
if (player->masterVolumeTime == 0) {
|
||||
if (player->masterVolumeTicks != 0) {
|
||||
player->masterVolumeTicks--;
|
||||
if (player->masterVolumeTicks == 0) {
|
||||
player->masterVolume = player->masterVolumeTarget;
|
||||
player->masterVolumeTarget = 0;
|
||||
player->masterVolumeStep = 0;
|
||||
|
@ -1106,18 +1108,18 @@ void au_bgm_player_update_playing(BGMPlayer *player) {
|
|||
} else {
|
||||
track->changed.volume = FALSE;
|
||||
}
|
||||
if (track->subTrackVolumeTime != 0) {
|
||||
track->subTrackVolumeTime--;
|
||||
if (track->subTrackVolumeTime == 0) {
|
||||
if (track->subTrackVolumeTicks != 0) {
|
||||
track->subTrackVolumeTicks--;
|
||||
if (track->subTrackVolumeTicks == 0) {
|
||||
track->subTrackVolume = track->subTrackVolumeTarget;
|
||||
} else {
|
||||
track->subTrackVolume += track->subTrackVolumeStep;
|
||||
}
|
||||
track->changed.volume = TRUE;
|
||||
}
|
||||
if (track->proxVolumeTime != 0) {
|
||||
track->proxVolumeTime--;
|
||||
if (track->proxVolumeTime == 0) {
|
||||
if (track->proxVolumeTicks != 0) {
|
||||
track->proxVolumeTicks--;
|
||||
if (track->proxVolumeTicks == 0) {
|
||||
track->proxVolume = track->proxVolumeTarget << 16;
|
||||
} else {
|
||||
track->proxVolume += track->proxVolumeStep;
|
||||
|
@ -1325,7 +1327,7 @@ void au_bgm_player_update_playing(BGMPlayer *player) {
|
|||
voice->reverb = track->subTrackReverb;
|
||||
|
||||
if (track->envelopeOverride != 0) {
|
||||
voice->envelope.cmdListPress = (u8*) player->customPressEnvelopes[track->envelopeOverride - 1]; //TODO ???
|
||||
voice->envelope.cmdListPress = (u8*) player->customPressEnvelopes[track->envelopeOverride - 1];
|
||||
} else {
|
||||
voice->envelope.cmdListPress = track->envelope.cmdListPress;
|
||||
}
|
||||
|
@ -1503,7 +1505,7 @@ void au_BGMCmd_E0_MasterTempo(BGMPlayer* player, BGMPlayerTrack* track) {
|
|||
tempo = au_bgm_bpm_to_tempo(player, bpm);
|
||||
player->masterTempo = tempo;
|
||||
player->nextUpdateStep = tempo * 10;
|
||||
player->masterTempoTime = 0;
|
||||
player->masterTempoTicks = 0;
|
||||
player->masterTempoTarget = 0;
|
||||
player->masterTempoStep = 0;
|
||||
}
|
||||
|
@ -1531,7 +1533,7 @@ void au_BGMCmd_E1_MasterVolume(BGMPlayer* player, BGMPlayerTrack* track) {
|
|||
}
|
||||
|
||||
player->masterVolume = volume;
|
||||
player->masterVolumeTime = 0;
|
||||
player->masterVolumeTicks = 0;
|
||||
player->masterVolumeTarget = 0;
|
||||
player->masterVolumeStep = 0;
|
||||
player->volumeChanged = TRUE;
|
||||
|
@ -1568,7 +1570,7 @@ void au_BGMCmd_E4_MasterTempoFade(BGMPlayer* player, BGMPlayerTrack* track) {
|
|||
time = 1;
|
||||
}
|
||||
|
||||
player->masterTempoTime = time;
|
||||
player->masterTempoTicks = time;
|
||||
player->masterTempoTarget = tempo;
|
||||
player->masterTempoStep = (tempo - player->masterTempo) / time;
|
||||
}
|
||||
|
@ -1585,7 +1587,7 @@ void au_BGMCmd_E5_MasterVolumeFade(BGMPlayer* player, BGMPlayerTrack* track) {
|
|||
time = 1;
|
||||
}
|
||||
|
||||
player->masterVolumeTime = time;
|
||||
player->masterVolumeTicks = time;
|
||||
player->masterVolumeTarget = volume;
|
||||
player->masterVolumeStep = (volume - player->masterVolume) / time;
|
||||
}
|
||||
|
@ -1619,7 +1621,7 @@ void au_BGMCmd_F6_TrackVolumeFade(BGMPlayer* player, BGMPlayerTrack* track) {
|
|||
time = 1;
|
||||
}
|
||||
|
||||
track->subTrackVolumeTime = time;
|
||||
track->subTrackVolumeTicks = time;
|
||||
track->subTrackVolumeTarget = volume;
|
||||
track->subTrackVolumeStep = (volume - track->subTrackVolume) / time;
|
||||
}
|
||||
|
@ -1773,7 +1775,7 @@ void au_BGMCmd_FC_Jump(BGMPlayer* player, BGMPlayerTrack* track) {
|
|||
track->envelopeOverride = 0;
|
||||
track->segTrackTune = 0;
|
||||
track->tremoloDepth = 0;
|
||||
track->subTrackVolumeTime = 0;
|
||||
track->subTrackVolumeTicks = 0;
|
||||
track->randomPanAmount = 0;
|
||||
track->busID = player->busID;
|
||||
}
|
||||
|
@ -1784,9 +1786,9 @@ void au_BGMCmd_FF(BGMPlayer* player, BGMPlayerTrack* track) {
|
|||
u8 delayTime;
|
||||
u32 i;
|
||||
|
||||
u32 type = player->seqCmdArgs.UnkCmdFF.type;
|
||||
u32 arg1 = player->seqCmdArgs.UnkCmdFF.arg1;
|
||||
u32 arg2 = player->seqCmdArgs.UnkCmdFF.arg2;
|
||||
u32 type = player->seqCmdArgs.Special.type;
|
||||
u32 arg1 = player->seqCmdArgs.Special.arg1;
|
||||
u32 arg2 = player->seqCmdArgs.Special.arg2;
|
||||
|
||||
switch (type) {
|
||||
case BGM_SPECIAL_SET_STEREO_DELAY:
|
||||
|
@ -1904,10 +1906,10 @@ static u8 au_bgm_get_random_pan(BGMPlayer* player, u8 pan, u8 amplitude) {
|
|||
} else {
|
||||
retPan = base - ((amplitude * random) >> 8);
|
||||
}
|
||||
if (retPan < 0) {
|
||||
retPan = 0;
|
||||
} else if (retPan >= 0x80) {
|
||||
retPan = 0x7F;
|
||||
if (retPan < AU_PAN_MIN) {
|
||||
retPan = AU_PAN_MIN;
|
||||
} else if (retPan > AU_PAN_MAX) {
|
||||
retPan = AU_PAN_MAX;
|
||||
}
|
||||
return retPan;
|
||||
}
|
||||
|
@ -1997,7 +1999,7 @@ void au_bgm_set_playback_rate(BGMPlayer* player, f32 rate) {
|
|||
player->playbackRate = rate;
|
||||
player->masterTempo = au_bgm_bpm_to_tempo(player, player->masterTempoBPM);
|
||||
player->nextUpdateStep = player->masterTempo * 10;
|
||||
player->masterTempoTime = 0;
|
||||
player->masterTempoTicks = 0;
|
||||
player->masterTempoTarget = 0;
|
||||
player->masterTempoStep = 0;
|
||||
}
|
||||
|
@ -2037,10 +2039,10 @@ void au_bgm_set_prox_mix_fade(BGMPlayer* player, BGMPlayerTrack* track, s32 targ
|
|||
duration = 1000;
|
||||
}
|
||||
if (target == track->proxVolume) {
|
||||
track->proxVolumeTime = 0;
|
||||
track->proxVolumeTicks = 0;
|
||||
return;
|
||||
}
|
||||
track->proxVolumeTime = duration;
|
||||
track->proxVolumeTicks = duration;
|
||||
track->proxVolumeTarget = target;
|
||||
track->proxVolumeStep = ((target << 0x10) - track->proxVolume) / duration;
|
||||
}
|
||||
|
|
|
@ -59,8 +59,8 @@ Instrument* au_get_instrument(AuGlobals* globals, BankSetIndex bank, s32 patch,
|
|||
void au_get_bgm_player_and_file(u32 playerIndex, BGMHeader** outCurrentTrackData, BGMPlayer** outPlayer);
|
||||
void au_get_bgm_player(u32 playerIndex, BGMPlayer** outPlayer);
|
||||
AuResult au_load_song_files(u32 arg0, BGMHeader* arg1, BGMPlayer* arg2);
|
||||
AuResult au_unk_80053E58(s32 songID, BGMHeader* arg1);
|
||||
BGMPlayer* au_unk_get_temp_player_for_index(s32 arg0);
|
||||
AuResult au_reload_song_files(s32 songID, BGMHeader* arg1);
|
||||
BGMPlayer* au_get_snapshot_by_index(s32 index);
|
||||
AuResult au_ambient_load(u32 arg0);
|
||||
BGMPlayer* au_get_client_by_priority(u8 arg0);
|
||||
void au_load_INIT(AuGlobals* arg0, s32 romAddr, ALHeap* heap);
|
||||
|
@ -75,7 +75,7 @@ s32 au_load_aux_bank(s32 bkFileOffset, s32 bankIndex);
|
|||
void au_clear_instrument_group(s32 bankIndex, BankSet bankSet);
|
||||
void au_set_bus_volume_level(s32 arg0, u32 idx);
|
||||
s32 au_set_reverb_type(s32 arg0, s32 arg1);
|
||||
void au_unk_80054DA8(u32 arg0);
|
||||
void au_sync_channel_delay_enabled(u32 arg0);
|
||||
void au_read_rom(s32 romAddr, void* buffer, u32 size);
|
||||
void au_memset(void* dst, s32 size, u8 value);
|
||||
void au_copy_bytes(s8* src, s8* dest, s32 size);
|
||||
|
@ -90,7 +90,7 @@ void au_driver_release(void);
|
|||
void au_use_global_volume(void);
|
||||
void au_set_global_volume(s16 arg0);
|
||||
s16 au_get_global_volume(void);
|
||||
void func_80056D5C(b8 arg0);
|
||||
void au_set_stereo_enabled(b8 enabled);
|
||||
void au_bus_set_volume(u8 busID, u16 value);
|
||||
u16 au_bus_get_volume(u8 busID);
|
||||
void au_bus_set_effect(u8 busID, u8 effectID);
|
||||
|
|
|
@ -59,8 +59,8 @@ void au_engine_init(s32 outputRate) {
|
|||
globals->dataMSEQ[0] = (MSEQHeader*) &dummyTrackData[0x1C00];
|
||||
globals->dataMSEQ[1] = (MSEQHeader*) &dummyTrackData[0x1400];
|
||||
|
||||
for (i = 0; i < ARRAY_COUNT(globals->unk_globals_6C); i++) {
|
||||
globals->unk_globals_6C[i].bgmPlayer = alHeapAlloc(alHeap, 1, sizeof(BGMPlayer));
|
||||
for (i = 0; i < ARRAY_COUNT(globals->snapshots); i++) {
|
||||
globals->snapshots[i].bgmPlayer = alHeapAlloc(alHeap, 1, sizeof(BGMPlayer));
|
||||
}
|
||||
|
||||
globals->dataSEF = alHeapAlloc(alHeap, 1, 0x5200);
|
||||
|
@ -77,9 +77,9 @@ void au_engine_init(s32 outputRate) {
|
|||
globals->audioThreadCallbacks[0] = NULL;
|
||||
globals->audioThreadCallbacks[1] = NULL;
|
||||
|
||||
for (i = 0; i < ARRAY_COUNT(globals->unk_globals_6C); i++) {
|
||||
globals->unk_globals_6C[i].assigned = 0;
|
||||
globals->unk_globals_6C[i].priority = 0;
|
||||
for (i = 0; i < ARRAY_COUNT(globals->snapshots); i++) {
|
||||
globals->snapshots[i].assigned = 0;
|
||||
globals->snapshots[i].priority = 0;
|
||||
}
|
||||
|
||||
for (i = 0; i < ARRAY_COUNT(globals->effectChanges); i++) {
|
||||
|
@ -206,7 +206,7 @@ static void au_reset_instrument_entry(BGMInstrumentInfo* info) {
|
|||
}
|
||||
|
||||
/// Called exactly once per audio frame (every 5.75ms at 32kHz).
|
||||
/// Updates synthesizer, ambience, SFX, and BGM players for the current audio frame.
|
||||
/// Updates MSEQ, SFX, and BGM players for the current audio frame.
|
||||
void au_update_clients_for_audio_frame(void) {
|
||||
AuGlobals* globals = gSoundGlobals;
|
||||
SoundManager* sfxManager = gSoundManager;
|
||||
|
@ -235,7 +235,7 @@ void au_update_clients_for_audio_frame(void) {
|
|||
sfxManager->prevUpdateResult = au_sfx_manager_audio_frame_update(sfxManager);
|
||||
}
|
||||
|
||||
// update gBGMPlayerB
|
||||
// Update gBGMPlayerB
|
||||
if (!PreventBGMPlayerUpdate) {
|
||||
bgmPlayer = gBGMPlayerB;
|
||||
if (bgmPlayer->fadeInfo.baseTicks != 0) {
|
||||
|
@ -252,9 +252,10 @@ void au_update_clients_for_audio_frame(void) {
|
|||
}
|
||||
}
|
||||
|
||||
// Update gBGMPlayerA
|
||||
if (!PreventBGMPlayerUpdate) {
|
||||
if (globals->unk_80 != 0) {
|
||||
func_8004DFD4(globals);
|
||||
if (globals->resumeRequested) {
|
||||
au_bgm_restore_copied_player(globals);
|
||||
}
|
||||
bgmPlayer = gBGMPlayerA;
|
||||
if (bgmPlayer->fadeInfo.envelopeTicks != 0) {
|
||||
|
@ -277,6 +278,8 @@ void au_update_clients_for_audio_frame(void) {
|
|||
bgmPlayer->prevUpdateResult = au_bgm_player_audio_frame_update(bgmPlayer);
|
||||
}
|
||||
}
|
||||
|
||||
// With all clients updated, now update all voices
|
||||
au_update_voices(globals);
|
||||
}
|
||||
|
||||
|
@ -305,12 +308,12 @@ void au_update_clients_for_video_frame(void) {
|
|||
void au_syn_begin_audio_frame(AuGlobals* globals) {
|
||||
u32 i;
|
||||
|
||||
if (globals->unk_130C == 2) {
|
||||
globals->unk_130C = 1;
|
||||
if (globals->channelDelayState == AU_DELAY_STATE_REQUEST_OFF) {
|
||||
globals->channelDelayState = AU_DELAY_STATE_OFF;
|
||||
au_disable_channel_delay();
|
||||
}
|
||||
|
||||
if (globals->channelDelayPending && (globals->unk_130C == 0)) {
|
||||
if (globals->channelDelayPending && (globals->channelDelayState == AU_DELAY_STATE_ON)) {
|
||||
switch (globals->channelDelaySide) {
|
||||
case AU_DELAY_CHANNEL_LEFT:
|
||||
au_set_delay_time(globals->channelDelayTime);
|
||||
|
@ -495,7 +498,6 @@ void au_fade_update_envelope(Fade* fade) {
|
|||
}
|
||||
}
|
||||
|
||||
//TODO cleanup and documentation
|
||||
/// Note that bank is supplied as BankSetIndex and not BankSet, which means it will be used to perform a raw
|
||||
/// access into AuGlobals::bankSets. This does not affect values above 3, but 1 and 2 differ.
|
||||
Instrument* au_get_instrument(AuGlobals* globals, BankSetIndex bank, s32 patch, EnvelopeData* envData) {
|
||||
|
@ -614,7 +616,7 @@ AuResult au_load_song_files(u32 songID, BGMHeader* bgmFile, BGMPlayer* player) {
|
|||
}
|
||||
}
|
||||
|
||||
AuResult au_unk_80053E58(s32 songID, BGMHeader* bgmFile) {
|
||||
AuResult au_reload_song_files(s32 songID, BGMHeader* bgmFile) {
|
||||
AuResult status;
|
||||
SBNFileEntry fileEntry;
|
||||
SBNFileEntry sbnEntry;
|
||||
|
@ -652,9 +654,9 @@ AuResult au_unk_80053E58(s32 songID, BGMHeader* bgmFile) {
|
|||
return status;
|
||||
}
|
||||
|
||||
BGMPlayer* au_unk_get_temp_player_for_index(s32 index) {
|
||||
if (index == MUSIC_CROSS_FADE) {
|
||||
return gSoundGlobals->unk_globals_6C[MUSIC_CROSS_FADE].bgmPlayer;
|
||||
BGMPlayer* au_get_snapshot_by_index(s32 index) {
|
||||
if (index == BGM_SNAPSHOT_0) {
|
||||
return gSoundGlobals->snapshots[BGM_SNAPSHOT_0].bgmPlayer;
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
@ -1188,17 +1190,17 @@ s32 au_set_reverb_type(s32 soundTypeFlags, s32 reverbType) {
|
|||
return 0;
|
||||
}
|
||||
|
||||
void au_unk_80054DA8(u32 bMonoSound) {
|
||||
void au_sync_channel_delay_enabled(u32 bMonoSound) {
|
||||
if (bMonoSound % 2 == 1) {
|
||||
// mono sound
|
||||
if (gSoundGlobals->unk_130C == 0) {
|
||||
gSoundGlobals->unk_130C = 2;
|
||||
if (gSoundGlobals->channelDelayState == AU_DELAY_STATE_ON) {
|
||||
gSoundGlobals->channelDelayState = AU_DELAY_STATE_REQUEST_OFF;
|
||||
}
|
||||
} else {
|
||||
// stereo sound
|
||||
if (gSoundGlobals->unk_130C != 0) {
|
||||
if (gSoundGlobals->channelDelayState != AU_DELAY_STATE_ON) {
|
||||
gSoundGlobals->channelDelayPending = TRUE;
|
||||
gSoundGlobals->unk_130C = 0;
|
||||
gSoundGlobals->channelDelayState = AU_DELAY_STATE_ON;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -14,7 +14,7 @@ BSS s32 AuDelayCount;
|
|||
AuSynDriver* gActiveSynDriverPtr = NULL;
|
||||
AuSynDriver* gSynDriverPtr = NULL;
|
||||
u8 AuUseGlobalVolume = FALSE;
|
||||
u16 AuGlobalVolume = 0x7FFF;
|
||||
u16 AuGlobalVolume = AU_MAX_VOLUME_16;
|
||||
u8 AuSynStereoDirty = FALSE;
|
||||
|
||||
extern s16 AuEqPower[128];
|
||||
|
@ -40,7 +40,7 @@ void au_driver_init(AuSynDriver* driver, ALConfig* config) {
|
|||
gActiveSynDriverPtr = driver;
|
||||
gSynDriverPtr = driver;
|
||||
AuUseGlobalVolume = FALSE;
|
||||
AuGlobalVolume = 0x7FFF;
|
||||
AuGlobalVolume = AU_MAX_VOLUME_16;
|
||||
AuSynStereoDirty = TRUE;
|
||||
|
||||
gSynDriverPtr->pvoices = alHeapAlloc(heap, config->num_pvoice, sizeof(*gSynDriverPtr->pvoices));
|
||||
|
@ -281,8 +281,8 @@ s16 au_get_global_volume(void) {
|
|||
return AuGlobalVolume;
|
||||
}
|
||||
|
||||
void func_80056D5C(b8 bStereoSound) {
|
||||
AuSynUseStereo = bStereoSound;
|
||||
void au_set_stereo_enabled(b8 enabled) {
|
||||
AuSynUseStereo = enabled;
|
||||
AuSynStereoDirty = TRUE;
|
||||
}
|
||||
|
||||
|
|
|
@ -54,10 +54,10 @@ void au_bgm_stop_all(void);
|
|||
AuResult au_bgm_is_song_playing(s32 songName);
|
||||
b32 au_bgm_player_is_active(BGMPlayer* player);
|
||||
AuResult au_bgm_process_fade_out(SongUpdateRequestB* s);
|
||||
AuResult func_8004DC80(s32 songName);
|
||||
AuResult au_bgm_process_suspend(SongUpdateRequestC* update, s32 clearChanged);
|
||||
AuResult au_bgm_complete_push(s32 songName);
|
||||
AuResult au_bgm_process_suspend(SongUpdateRequestC* update, b32 skipStop);
|
||||
AuResult au_bgm_process_resume(SongUpdateRequestE* update);
|
||||
void func_8004DFD4(AuGlobals* globals);
|
||||
void au_bgm_restore_copied_player(AuGlobals* globals);
|
||||
AuResult au_bgm_adjust_volume(SongUpdateRequestA* update);
|
||||
void au_bgm_player_init(BGMPlayer* player, s32 arg1, s32 arg2, AuGlobals* arg3);
|
||||
void au_bgm_set_effect_indices(BGMPlayer* player, u8* list);
|
||||
|
@ -148,10 +148,10 @@ AuResult snd_song_is_playing(s32 songName);
|
|||
AuResult snd_song_request_fade_in(s32 songName, s32 variation, s32 fadeInTime, s32 startVolume, s32 endVolume);
|
||||
AuResult snd_song_request_fade_in_default(s32 songName, s32 fadeInTime, s32 startVolume, s32 endVolume);
|
||||
AuResult snd_song_request_fade_out(s32 songName, s32 fadeTime, AuCallback callback);
|
||||
AuResult snd_song_UNK_push_stop(s32 songName);
|
||||
AuResult snd_song_UNK_request_pop(s32 songName);
|
||||
AuResult func_80055B80(s32 songName);
|
||||
AuResult snd_song_UNK_request_push_fade_out(s32 songName, s32 fadeTime);
|
||||
AuResult snd_song_push_stop(s32 songName);
|
||||
AuResult snd_song_request_pop(s32 songName);
|
||||
AuResult snd_song_request_snapshot(s32 songName);
|
||||
AuResult snd_song_request_push_fade_out(s32 songName, s32 fadeTime);
|
||||
AuResult snd_song_request_pause(s32 songName);
|
||||
AuResult snd_song_request_unpause(s32 songName);
|
||||
AuResult snd_song_set_volume_quiet(s32 songName);
|
||||
|
|
|
@ -41,10 +41,10 @@ AuResult snd_song_is_playing(s32 songName);
|
|||
AuResult snd_song_request_fade_in(s32 songName, s32 variation, s32 fadeInTime, s32 startVolume, s32 endVolume);
|
||||
AuResult snd_song_request_fade_in_default(s32 songName, s32 fadeInTime, s32 startVolume, s32 endVolume);
|
||||
AuResult snd_song_request_fade_out(s32 songName, s32 fadeTime, AuCallback callback);
|
||||
AuResult snd_song_UNK_push_stop(s32 songName);
|
||||
AuResult snd_song_UNK_request_pop(s32 songName);
|
||||
AuResult func_80055B80(s32 songName);
|
||||
AuResult snd_song_UNK_request_push_fade_out(s32 songName, s32 fadeTime);
|
||||
AuResult snd_song_push_stop(s32 songName);
|
||||
AuResult snd_song_request_pop(s32 songName);
|
||||
AuResult snd_song_request_snapshot(s32 songName);
|
||||
AuResult snd_song_request_push_fade_out(s32 songName, s32 fadeTime);
|
||||
AuResult snd_song_request_pause(s32 songName);
|
||||
AuResult snd_song_request_unpause(s32 songName);
|
||||
AuResult snd_song_set_volume_quiet(s32 songName);
|
||||
|
|
|
@ -587,8 +587,8 @@ void sfx_get_spatialized_sound_params(f32 x, f32 y, f32 z, s16* volume, s16* pan
|
|||
if (*pan < 1) {
|
||||
*pan = 1;
|
||||
}
|
||||
if (*pan > 127) {
|
||||
*pan = 127;
|
||||
if (*pan > AU_PAN_MAX) {
|
||||
*pan = AU_PAN_MAX;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1478,10 +1478,10 @@ static u8 au_sfx_get_random_pan(s32 seed, s32 pan, s32 amplitude) {
|
|||
} else {
|
||||
retPan = pan - (((amplitude & 0xFF) * random) >> 8);
|
||||
}
|
||||
if (retPan < 0) {
|
||||
retPan = 0;
|
||||
} else if (retPan > 0x7F) {
|
||||
retPan = 0x7F;
|
||||
if (retPan < AU_PAN_MIN) {
|
||||
retPan = AU_PAN_MIN;
|
||||
} else if (retPan > AU_PAN_MAX) {
|
||||
retPan = AU_PAN_MAX;
|
||||
}
|
||||
return retPan;
|
||||
}
|
||||
|
|
|
@ -202,8 +202,8 @@ void snd_start_sound(s32 soundID, u8 volume, u8 pan) {
|
|||
vol |= 0xFF;
|
||||
}
|
||||
|
||||
if (pan > 0x7F) {
|
||||
pan = 0x7F;
|
||||
if (pan > AU_PAN_MAX) {
|
||||
pan = AU_PAN_MAX;
|
||||
}
|
||||
|
||||
au_sfx_enqueue_event(soundManager, soundID, vol, 0, pan);
|
||||
|
@ -217,8 +217,8 @@ void snd_start_sound_with_shift(s32 soundID, u8 volume, u8 pan, s16 pitchShift)
|
|||
vol |= 0xFF;
|
||||
}
|
||||
|
||||
if (pan > 0x7F) {
|
||||
pan = 0x7F;
|
||||
if (pan > AU_PAN_MAX) {
|
||||
pan = AU_PAN_MAX;
|
||||
}
|
||||
|
||||
if (pitchShift > 2 * AU_OCTAVE) {
|
||||
|
@ -238,8 +238,8 @@ void snd_adjust_sound(s32 soundID, u8 volume, u8 pan) {
|
|||
vol |= 0xFF;
|
||||
}
|
||||
|
||||
if (pan > 0x7F) {
|
||||
pan = 0x7F;
|
||||
if (pan > AU_PAN_MAX) {
|
||||
pan = AU_PAN_MAX;
|
||||
}
|
||||
|
||||
au_sfx_enqueue_event(soundManager, soundID | SOUND_ID_ADJUST, vol, 0, pan);
|
||||
|
@ -253,8 +253,8 @@ void snd_adjust_sound_with_shift(s32 soundID, u8 volume, u8 pan, s16 pitchShift)
|
|||
vol |= 0xFF;
|
||||
}
|
||||
|
||||
if (pan > 0x7F) {
|
||||
pan = 0x7F;
|
||||
if (pan > AU_PAN_MAX) {
|
||||
pan = AU_PAN_MAX;
|
||||
}
|
||||
|
||||
if (pitchShift > 2 * AU_OCTAVE) {
|
||||
|
@ -555,20 +555,20 @@ AuResult snd_song_request_fade_out(s32 songName, s32 fadeTime, AuCallback callba
|
|||
return au_bgm_process_fade_out(&s);
|
||||
}
|
||||
|
||||
AuResult snd_song_UNK_push_stop(s32 songName) {
|
||||
AuResult snd_song_push_stop(s32 songName) {
|
||||
SongUpdateRequestC s;
|
||||
|
||||
s.songName = songName;
|
||||
s.duration = 0;
|
||||
s.startVolume = 0;
|
||||
s.finalVolume = 0;
|
||||
s.index = MUSIC_CROSS_FADE;
|
||||
s.index = BGM_SNAPSHOT_0;
|
||||
s.pauseMode = FALSE;
|
||||
|
||||
return au_bgm_process_suspend(&s, 0);
|
||||
return au_bgm_process_suspend(&s, 0); // force stop
|
||||
}
|
||||
|
||||
AuResult snd_song_UNK_request_pop(s32 songName) {
|
||||
AuResult snd_song_request_pop(s32 songName) {
|
||||
AuResult status;
|
||||
SongUpdateRequestE s;
|
||||
|
||||
|
@ -577,7 +577,7 @@ AuResult snd_song_UNK_request_pop(s32 songName) {
|
|||
s.duration = 2000;
|
||||
s.startVolume = 1;
|
||||
s.finalVolume = AU_MAX_VOLUME_8;
|
||||
s.index = MUSIC_CROSS_FADE;
|
||||
s.index = BGM_SNAPSHOT_0;
|
||||
s.pauseMode = FALSE;
|
||||
status = au_bgm_process_resume(&s);
|
||||
PreventBGMPlayerUpdate = FALSE;
|
||||
|
@ -585,20 +585,20 @@ AuResult snd_song_UNK_request_pop(s32 songName) {
|
|||
return status;
|
||||
}
|
||||
|
||||
AuResult func_80055B80(s32 songName) {
|
||||
AuResult snd_song_request_snapshot(s32 songName) {
|
||||
SongUpdateRequestC s;
|
||||
|
||||
s.songName = songName;
|
||||
s.duration = 0;
|
||||
s.startVolume = 0;
|
||||
s.finalVolume = 0;
|
||||
s.index = MUSIC_CROSS_FADE;
|
||||
s.index = BGM_SNAPSHOT_0;
|
||||
s.pauseMode = FALSE;
|
||||
|
||||
return au_bgm_process_suspend(&s, 1);
|
||||
return au_bgm_process_suspend(&s, 1); // no stop
|
||||
}
|
||||
|
||||
AuResult snd_song_UNK_request_push_fade_out(s32 songName, s32 fadeTime) {
|
||||
AuResult snd_song_request_push_fade_out(s32 songName, s32 fadeTime) {
|
||||
SongUpdateRequestB s;
|
||||
|
||||
s.songName = songName;
|
||||
|
@ -618,10 +618,10 @@ AuResult snd_song_request_pause(s32 songName) {
|
|||
s.duration = 0;
|
||||
s.startVolume = 0;
|
||||
s.finalVolume = 0;
|
||||
s.index = MUSIC_CROSS_FADE;
|
||||
s.index = BGM_SNAPSHOT_0;
|
||||
s.pauseMode = TRUE;
|
||||
|
||||
return au_bgm_process_suspend(&s, 0);
|
||||
return au_bgm_process_suspend(&s, 0); // force stop
|
||||
}
|
||||
|
||||
AuResult snd_song_request_unpause(s32 songName) {
|
||||
|
@ -631,7 +631,7 @@ AuResult snd_song_request_unpause(s32 songName) {
|
|||
s.duration = 0;
|
||||
s.startVolume = 0;
|
||||
s.finalVolume = 0;
|
||||
s.index = MUSIC_CROSS_FADE;
|
||||
s.index = BGM_SNAPSHOT_0;
|
||||
s.pauseMode = TRUE;
|
||||
|
||||
return au_bgm_process_resume(&s);
|
||||
|
@ -871,13 +871,13 @@ void snd_register_callback(AuCallback func, s32 index) {
|
|||
}
|
||||
|
||||
void snd_set_stereo(void) {
|
||||
func_80056D5C(1);
|
||||
au_unk_80054DA8(0);
|
||||
au_set_stereo_enabled(TRUE);
|
||||
au_sync_channel_delay_enabled(0);
|
||||
}
|
||||
|
||||
void snd_set_mono(void) {
|
||||
func_80056D5C(0);
|
||||
au_unk_80054DA8(1);
|
||||
au_set_stereo_enabled(FALSE);
|
||||
au_sync_channel_delay_enabled(1);
|
||||
}
|
||||
|
||||
void snd_set_bgm_volume(VolumeLevels volume) {
|
||||
|
|
|
@ -557,7 +557,7 @@ au_bgm_process_fade_out = 0x8004DB4C; // type:func rom:0x28F4C
|
|||
func_8004DC80 = 0x8004DC80; // type:func rom:0x29080
|
||||
au_bgm_process_suspend = 0x8004DCB8; // type:func rom:0x290B8
|
||||
au_bgm_process_resume = 0x8004DE2C; // type:func rom:0x2922C
|
||||
func_8004DFD4 = 0x8004DFD4; // type:func rom:0x293D4
|
||||
au_bgm_restore_copied_player = 0x8004DFD4; // type:func rom:0x293D4
|
||||
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
|
||||
|
@ -665,7 +665,7 @@ au_get_bgm_player_and_file = 0x80053C58; // type:func rom:0x2F058
|
|||
au_get_bgm_player = 0x80053CB4; // type:func rom:0x2F0B4
|
||||
au_load_song_files = 0x80053CF8; // type:func rom:0x2F0F8
|
||||
au_unk_80053E58 = 0x80053E58; // type:func rom:0x2F258
|
||||
au_unk_get_temp_player_for_index = 0x80053F64; // type:func rom:0x2F364
|
||||
au_get_snapshot_by_index = 0x80053F64; // type:func rom:0x2F364
|
||||
au_ambient_load = 0x80053F80; // type:func rom:0x2F380
|
||||
au_get_client_by_priority = 0x80054248; // type:func rom:0x2F648
|
||||
au_load_INIT = 0x800542BC; // type:func rom:0x2F6BC
|
||||
|
@ -681,7 +681,7 @@ snd_load_BK = 0x80054C4C; // type:func rom:0x3004C
|
|||
func_80054C84 = 0x80054C84; // type:func rom:0x30084
|
||||
au_set_bus_volume_level = 0x80054CE0; // type:func rom:0x300E0
|
||||
au_set_reverb_type = 0x80054D74; // type:func rom:0x30174
|
||||
au_unk_80054DA8 = 0x80054DA8; // type:func rom:0x301A8
|
||||
au_sync_channel_delay_enabled = 0x80054DA8; // type:func rom:0x301A8
|
||||
au_read_rom = 0x80054E00; // type:func rom:0x30200
|
||||
au_memset = 0x80054E90; // type:func rom:0x30290
|
||||
au_copy_bytes = 0x80054F48; // type:func rom:0x30348
|
||||
|
|
Loading…
Reference in New Issue