mirror of
https://github.com/izzy2lost/Starship.git
synced 2026-07-05 15:19:42 -07:00
Cumulative docs update (#221)
* lights fix * names * remove header * so many names * format * more docs * makefile
This commit is contained in:
@@ -378,6 +378,7 @@ toolchain:
|
||||
|
||||
torch:
|
||||
@$(MAKE) -s -C tools torch
|
||||
rm -f torch.hash.yml
|
||||
|
||||
init:
|
||||
@$(MAKE) clean
|
||||
|
||||
+6
-6
@@ -24,7 +24,7 @@ extern s32 gTeamShields[6];
|
||||
extern s32 gSavedTeamShields[6];
|
||||
extern s32 gPrevPlanetSavedTeamShields[6];
|
||||
extern s32 gTeamDamage[6];
|
||||
extern u8 gNextPlanetPath; // next planet path
|
||||
extern u8 gMissionStatus; // next planet path
|
||||
extern f32 gGroundHeight;
|
||||
extern f32 D_ctx_80177950;
|
||||
extern f32 D_ctx_80177968;
|
||||
@@ -47,11 +47,11 @@ extern u8 gAqDrawMode;
|
||||
extern s32 D_ctx_80177AE0;
|
||||
extern s32 gMainController;
|
||||
extern s32 D_ctx_80177B40;
|
||||
extern PlanetId gMissionNumber; // D_ctx_80177B48 // Arrow pointer?
|
||||
extern s32 D_ctx_80177B50[7];
|
||||
extern s32 D_ctx_80177B70[7];
|
||||
extern PlanetId D_ctx_80177B90[7];
|
||||
extern s32 D_ctx_80177BB0[7];
|
||||
extern s32 gMissionNumber;
|
||||
extern s32 gMissionTeamStatus[7];
|
||||
extern s32 gMissionHitCount[7];
|
||||
extern PlanetId gMissionPlanet[7];
|
||||
extern s32 gMissionMedal[7];
|
||||
extern s32 gPlanetPathStatus[]; // overruns D_ctx_80177C30?
|
||||
extern s32 gPrevPlanetTeamShields[6];
|
||||
extern s32 D_ctx_80177C58[6];
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
#ifndef PREVENT_CONTEXT_REORDERING_H
|
||||
#define PREVENT_CONTEXT_REORDERING_H
|
||||
|
||||
// extern int Dummyhalf;
|
||||
extern int Dummyhalf;
|
||||
// struct Dummy0 {int x;};
|
||||
// struct Dummy1 {int x;};
|
||||
// struct Dummy2 {int x;};
|
||||
struct Dummy3 {int x;};
|
||||
struct Dummy4 {int x;};
|
||||
// struct Dummy3 {int x;};
|
||||
// struct Dummy4 {int x;};
|
||||
struct Dummy5 {int x;};
|
||||
struct Dummy6 {int x;};
|
||||
struct Dummy7 {int x;};
|
||||
|
||||
@@ -151,29 +151,29 @@ void Audio_PlayVoiceWithoutBGM(u32 msgId);
|
||||
void Audio_ClearVoice(void);
|
||||
s32 Audio_GetCurrentVoice(void);
|
||||
s32 Audio_GetCurrentVoiceStatus(void);
|
||||
void func_8001AF40(u8 unkVoiceParam);
|
||||
void Audio_SetUnkVoiceParam(u8 unkVoiceParam);
|
||||
u8* Audio_UpdateFrequencyAnalysis(void);
|
||||
void Audio_StartPlayerNoise(u8 playerId);
|
||||
void func_8001CA24(u8 playerId);
|
||||
void func_8001CB80(u8 playerId, u8 arg1);
|
||||
void func_8001CCDC(u8 playerId, f32* sfxSource);
|
||||
void func_8001CE28(u8 playerId, f32* sfxSource);
|
||||
void func_8001CF60(f32* sfxSource);
|
||||
void func_8001CFA8(f32 arg0);
|
||||
void func_8001D034(f32* sfxSource, u32 sfxId, u8 semitones);
|
||||
void func_8001D0B4(f32* sfxSource, u32 sfxId, f32 freqMod);
|
||||
void func_8001D10C(f32* sfxSource, u32 sfxId);
|
||||
void func_8001D15C(u8 arg0);
|
||||
void func_8001D1C8(u8 arg0, u8 arg1);
|
||||
void Audio_PlayEventSfx(f32* sfxSource, u16 arg1);
|
||||
void Audio_StopEventSfx(f32* sfxSource, u16 arg1);
|
||||
void Audio_SetBaseSfxReverb(s8 reverb);
|
||||
void Audio_StopPlayerNoise(u8 playerId);
|
||||
void Audio_InitBombSfx(u8 playerId, u8 type);
|
||||
void Audio_PlayBombFlightSfx(u8 playerId, f32* sfxSource);
|
||||
void Audio_PlayBombExplodeSfx(u8 playerId, f32* sfxSource);
|
||||
void Audio_StopEngineNoise(f32* sfxSource);
|
||||
void Audio_SetSfxSpeedModulation(f32 vel);
|
||||
void Audio_SetTransposeAndPlaySfx(f32* sfxSource, u32 sfxId, u8 semitones);
|
||||
void Audio_SetModulationAndPlaySfx(f32* sfxSource, u32 sfxId, f32 freqMod);
|
||||
void Audio_PlaySfxModulated(f32* sfxSource, u32 sfxId);
|
||||
void Audio_SetSfxMapModulation(u8 fMod);
|
||||
void Audio_SetHeatAlarmParams(u8 shields, u8 heightParam);
|
||||
void Audio_PlayEventSfx(f32* sfxSource, u16 eventSfxId);
|
||||
void Audio_StopEventSfx(f32* sfxSource, u16 eventSfxId);
|
||||
void Audio_SetEnvSfxReverb(s8 reverb);
|
||||
void Audio_SetBgmParam(s8 bgmParam);
|
||||
void Audio_PlaySequence(u8 seqPlayId, u16 seqId, u8 fadeinTime, u8 bgmParam);
|
||||
void Audio_PlayFanfare(u16 seqId, u8 bgmVolume, u8 bgmFadeoutTime, u8 bgmFadeinTime);
|
||||
void func_8001D520(void);
|
||||
void func_8001D638(u8 arg0);
|
||||
void func_8001D6DC(u8 arg0);
|
||||
void Audio_PlayDeathSequence(void);
|
||||
void Audio_PlayPauseSfx(u8 active);
|
||||
void Audio_PlayMapMenuSfx(u8 active);
|
||||
void Audio_SetVolume(u8 audioType, u8 volume);
|
||||
void Audio_PlaySoundTest(u8 enable);
|
||||
void Audio_PlaySequenceDistorted(u8 seqPlayId, u16 seqId, u16 distortion, u8 fadeinTime, u8 unused);
|
||||
|
||||
@@ -122,6 +122,12 @@ typedef enum {
|
||||
/* 5 */ LOAD_STATUS_PERMANENTLY_LOADED // the entry data is loaded in the permanent pool, it won't be discarded
|
||||
} AudioLoadStatus;
|
||||
|
||||
typedef enum AudioResetStatus {
|
||||
AUDIORESET_READY,
|
||||
AUDIORESET_WAIT,
|
||||
AUDIORESET_BLOCK,
|
||||
} AudioResetStatus;
|
||||
|
||||
typedef s32 (*DmaHandler)(OSPiHandle* handle, OSIoMesg* mb, s32 direction);
|
||||
|
||||
struct Note;
|
||||
@@ -752,7 +758,7 @@ typedef struct {
|
||||
/* 0x14 */ u32 chunkSize;
|
||||
/* 0x18 */ OSMesg retMsg;
|
||||
/* 0x1C */ OSMesgQueue* retQueue;
|
||||
/* 0x20 */ OSMesgQueue msgQueue;
|
||||
/* 0x20 */ OSMesgQueue mesgQueue;
|
||||
/* 0x38 */ OSMesg msg;
|
||||
/* 0x3C */ OSIoMesg ioMesg;
|
||||
} AudioAsyncLoad; // size = 0x54
|
||||
@@ -768,7 +774,7 @@ typedef struct {
|
||||
/* 0x14 */ s32 bytesRemaining;
|
||||
/* 0x18 */ s8* status; // write-only
|
||||
/* 0x1C */ Sample sample;
|
||||
/* 0x2C */ OSMesgQueue msgQueue;
|
||||
/* 0x2C */ OSMesgQueue mesgQueue;
|
||||
/* 0x44 */ OSMesg msg;
|
||||
/* 0x48 */ OSIoMesg ioMesg;
|
||||
} AudioSlowLoad; // size = 0x60
|
||||
@@ -812,7 +818,7 @@ typedef struct SampleDma {
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ OSTask task;
|
||||
/* 0x40 */ OSMesgQueue* msgQueue;
|
||||
/* 0x40 */ OSMesgQueue* mesgQueue;
|
||||
/* 0x44 */ void* unk_44; // probably a message that gets unused.
|
||||
/* 0x48 */ char unk_48[0x8];
|
||||
} AudioTask; // size = 0x50
|
||||
@@ -1081,7 +1087,7 @@ void func_800168BC(void);
|
||||
void AudioThread_ScheduleProcessCmds(void);
|
||||
u32 AudioThread_GetAsyncLoadStatus(u32 *);
|
||||
u8* AudioThread_GetFontsForSequence(s32 seqId, u32* outNumFonts);
|
||||
s32 func_8001ED34(void);
|
||||
bool AudioThread_ResetComplete(void);
|
||||
void AudioThread_ResetAudioHeap(s32);
|
||||
void AudioThread_Init(void);
|
||||
|
||||
|
||||
@@ -12,6 +12,12 @@ typedef enum {
|
||||
/* 3 */ LEVELTYPE_UNK3,
|
||||
} LevelType;
|
||||
|
||||
typedef enum {
|
||||
/* 0 */ MISSION_COMPLETE,
|
||||
/* 1 */ MISSION_ACCOMPLISHED,
|
||||
/* 2 */ MISSION_WARP,
|
||||
} MissionStatus;
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ s32 type;
|
||||
/* 0x04 */ s32 unk_04;
|
||||
|
||||
+19
-15
@@ -42,7 +42,7 @@ typedef struct {
|
||||
typedef struct {
|
||||
/* 0x000 */ OSThread thread;
|
||||
/* 0x1B0 */ char stack[0x800];
|
||||
/* 0x9B0 */ OSMesgQueue msgQueue;
|
||||
/* 0x9B0 */ OSMesgQueue mesgQueue;
|
||||
/* 0x9C8 */ OSMesg msg;
|
||||
/* 0x9CC */ FrameBuffer* fb;
|
||||
/* 0x9D0 */ u16 width;
|
||||
@@ -59,7 +59,7 @@ typedef enum {
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ OSTask task;
|
||||
/* 0x40 */ OSMesgQueue* msgQueue;
|
||||
/* 0x40 */ OSMesgQueue* mesgQueue;
|
||||
/* 0x44 */ OSMesg msg;
|
||||
/* 0x48 */ SpTaskState state;
|
||||
} SPTask; // size = 0x50, 0x8 aligned
|
||||
@@ -126,32 +126,32 @@ extern u32 gSegments[16]; // 800E1FD0
|
||||
extern OSMesgQueue gPiMgrCmdQueue; // 800E2010
|
||||
extern OSMesg sPiMgrCmdBuff[50]; // 800E2028
|
||||
|
||||
extern OSMesgQueue gDmaMsgQueue;
|
||||
extern OSMesgQueue gDmaMesgQueue;
|
||||
extern OSMesg sDmaMsgBuff[1];
|
||||
extern OSIoMesg gDmaIOMsg;
|
||||
extern OSMesgQueue gSerialEventQueue;
|
||||
extern OSMesg sSerialEventBuff[1];
|
||||
extern OSMesgQueue gMainThreadMsgQueue;
|
||||
extern OSMesgQueue gMainThreadMesgQueue;
|
||||
extern OSMesg sMainThreadMsgBuff[32];
|
||||
extern OSMesgQueue gTaskMsgQueue;
|
||||
extern OSMesgQueue gTaskMesgQueue;
|
||||
extern OSMesg sTaskMsgBuff[16];
|
||||
extern OSMesgQueue gAudioVImsgQueue;
|
||||
extern OSMesgQueue gAudioVImesgQueue;
|
||||
extern OSMesg sAudioVImsgBuff[1];
|
||||
extern OSMesgQueue gAudioTaskMsgQueue;
|
||||
extern OSMesgQueue gAudioTaskMesgQueue;
|
||||
extern OSMesg sAudioTaskMsgBuff[1];
|
||||
extern OSMesgQueue gGfxVImsgQueue;
|
||||
extern OSMesgQueue gGfxVImesgQueue;
|
||||
extern OSMesg sGfxVImsgBuff[4];
|
||||
extern OSMesgQueue gGfxTaskMsgQueue;
|
||||
extern OSMesgQueue gGfxTaskMesgQueue;
|
||||
extern OSMesg sGfxTaskMsgBuff[2];
|
||||
extern OSMesgQueue gSerialThreadMsgQueue;
|
||||
extern OSMesgQueue gSerialThreadMesgQueue;
|
||||
extern OSMesg sSerialThreadMsgBuff[8];
|
||||
extern OSMesgQueue gControllerMsgQueue;
|
||||
extern OSMesgQueue gControllerMesgQueue;
|
||||
extern OSMesg sControllerMsgBuff[1];
|
||||
extern OSMesgQueue gSaveMsgQueue;
|
||||
extern OSMesgQueue gSaveMesgQueue;
|
||||
extern OSMesg sSaveMsgBuff[1];
|
||||
extern OSMesgQueue gTimerTaskMsgQueue;
|
||||
extern OSMesgQueue gTimerTaskMesgQueue;
|
||||
extern OSMesg sTimerTaskMsgBuff[16];
|
||||
extern OSMesgQueue gTimerWaitMsgQueue;
|
||||
extern OSMesgQueue gTimerWaitMesgQueue;
|
||||
extern OSMesg sTimerWaitMsgBuff[1];
|
||||
|
||||
extern GfxPool gGfxPools[2]; // 800E23B0
|
||||
@@ -182,7 +182,11 @@ extern OSThread gMainThread; // 8013A040
|
||||
extern u8 sMainThreadStack[0x1000]; // 8013A1F0
|
||||
extern OSThread gAudioThread; //8013B1F0
|
||||
|
||||
#define MSG_QUEUE_EMPTY -1
|
||||
#define MESG_QUEUE_EMPTY -1
|
||||
|
||||
#define MQ_GET_MESG(mq, mesg) (osRecvMesg((mq), (OSMesg*) (mesg), OS_MESG_NOBLOCK) != -1)
|
||||
#define MQ_WAIT_FOR_MESG(mq, mesg) osRecvMesg((mq), (OSMesg*) (mesg), OS_MESG_BLOCK)
|
||||
#define MQ_CLEAR_QUEUE(mq) do {s32 m1 = -1; s32 mesg; do {} while(osRecvMesg((mq), (OSMesg*) &(mesg), OS_MESG_NOBLOCK) != m1);} while(0)
|
||||
|
||||
#define FAULT_MESG_BREAK 1
|
||||
#define FAULT_MESG_FAULT 2
|
||||
|
||||
+2
-2
@@ -89,7 +89,7 @@ extern CollisionHeader2 D_800D2CA0[];
|
||||
|
||||
// fox_play
|
||||
extern u8 gVenomHardClear;
|
||||
extern u8 D_play_800D3180[30];
|
||||
extern u8 gLeveLClearStatus[30];
|
||||
|
||||
// fox_radio
|
||||
extern s32 gCurrentMsgPri;
|
||||
@@ -99,7 +99,7 @@ extern s32 gAllRangeSupplyTimer;
|
||||
extern s32 sStarWolfKillTimer;
|
||||
extern s16 gStarWolfMsgTimer;
|
||||
extern s32 gAllRangeWingRepairTimer;
|
||||
extern s32 gAllRangeWingRepairSent;
|
||||
extern s32 gAllRangeSuppliesSent;
|
||||
extern f32 gSzMissileR;
|
||||
extern f32 gSzMissileG;
|
||||
extern f32 gSzMissileB;
|
||||
|
||||
@@ -70,7 +70,7 @@ D_display_801613E0 = 0x801613E0;//size:0x18
|
||||
D_edata_800CC124 = 0x800CC124;//type:u8
|
||||
D_boss_800C9E90 = 0x800C9E90;//size:0x70
|
||||
|
||||
D_play_800D3180 = 0x800D3180; // size:0x20
|
||||
gLeveLClearStatus = 0x800D3180; // size:0x20
|
||||
gRcpSetupDLs = 0x800D31B0; // size:0x18C0
|
||||
|
||||
D_edisplay_800CFCA0 = 0x800CFCA0;
|
||||
|
||||
@@ -23,10 +23,10 @@ sSeqCmdWritePos = 0x800C5D44;
|
||||
sSeqCmdReadPos = 0x800C5D48;
|
||||
sStartSeqDisabled = 0x800C5D4C;
|
||||
sSoundModeList = 0x800C5D50;
|
||||
sNewAudioSpecId = 0x800C5D54;
|
||||
sAudioSpecId = 0x800C5D54;
|
||||
D_800C5D58 = 0x800C5D58;
|
||||
|
||||
sBaseReverb = 0x800C5D60;
|
||||
sEnvReverb = 0x800C5D60;
|
||||
sAudioSpecReverb = 0x800C5D64;
|
||||
sVolumeSettings = 0x800C5D68;
|
||||
D_800C5D6C = 0x800C5D6C;
|
||||
@@ -39,7 +39,7 @@ sSfxVolMod = 0x800C5E78;
|
||||
sPlaylistIndex = 0x800C5E7C;
|
||||
sPlaylistTimer = 0x800C5E80;
|
||||
sPlaylistCmdIndex = 0x800C5E84;
|
||||
D_800C5E88 = 0x800C5E88;
|
||||
sEventSfx = 0x800C5E88;
|
||||
sSoundTestTracks = 0x800C5EE4;
|
||||
sPlaylists = 0x800C5FF4; //type:u16 size:5000
|
||||
|
||||
@@ -47,7 +47,7 @@ D_800C7380 = 0x800C7380;
|
||||
D_800C7384 = 0x800C7384;
|
||||
D_800C7388 = 0x800C7388;
|
||||
D_800C738C = 0x800C738C;
|
||||
D_800C7390 = 0x800C7390;
|
||||
sUnkVoiceParam = 0x800C7390;
|
||||
D_800C7394 = 0x800C7394;
|
||||
D_800C7398 = 0x800C7398;
|
||||
D_800C7418 = 0x800C7418;
|
||||
@@ -67,7 +67,7 @@ gThreadCmdWritePos = 0x800C7C50;
|
||||
gThreadCmdReadPos = 0x800C7C54;
|
||||
gAudioTaskStartQueue = 0x800C7C58;
|
||||
gThreadCmdProcQueue = 0x800C7C5C;
|
||||
gAudioUnkQueue = 0x800C7C60;
|
||||
gAudioSpecQueue = 0x800C7C60;
|
||||
gAudioResetQueue = 0x800C7C64;
|
||||
gMaxAbiCmdCnt = 0x800C7C68;
|
||||
gWaitingAudioTask = 0x800C7C6C;
|
||||
@@ -106,7 +106,7 @@ D_80149AD8 = 0x80149AD8;
|
||||
D_80149ED8 = 0x80149ED8;
|
||||
D_8014A2D8 = 0x8014A2D8;
|
||||
D_8014A8D8 = 0x8014A8D8;
|
||||
D_8014A958 = 0x8014A958;
|
||||
sFreqAnalyzerBars = 0x8014A958;
|
||||
sSeqRequests = 0x8014A978;
|
||||
sNumSeqRequests = 0x8014A9A0;
|
||||
sAudioSeqCmds = 0x8014A9A8;
|
||||
@@ -115,10 +115,10 @@ sDelayedSeqCmdFlags = 0x8014B708;
|
||||
sDelayedSeqCmds = 0x8014B710;
|
||||
sSfxChannelState = 0x8014B790;
|
||||
sPlayerNoise = 0x8014B850;
|
||||
D_8014BA10 = 0x8014BA10;
|
||||
D_8014BA20 = 0x8014BA20;
|
||||
D_8014BA24 = 0x8014BA24;
|
||||
D_8014BA28 = 0x8014BA28;
|
||||
sBombFreqMod = 0x8014BA10;
|
||||
sBombType = 0x8014BA20;
|
||||
sBombState = 0x8014BA24;
|
||||
sBombStartFrame = 0x8014BA28;
|
||||
|
||||
gAudioContextStart = 0x8014BA40; // size:0x10
|
||||
gSynthReverbs = 0x8014BA50; // size:0x750
|
||||
@@ -212,12 +212,12 @@ gAudioContextEnd = 0x80155D90;//size:0x10
|
||||
|
||||
sAudioTaskStartQueue = 0x80155DA0;
|
||||
sThreadCmdProcQueue = 0x80155DB8;
|
||||
sAudioUnkQueue = 0x80155DD0;
|
||||
sAudioSpecQueue = 0x80155DD0;
|
||||
sAudioResetQueue = 0x80155DE8;
|
||||
gThreadCmdBuffer = 0x80155E00;
|
||||
sAudioTaskStartMsg = 0x80156600;
|
||||
sThreadCmdProcMsg = 0x80156608;
|
||||
sAudioUnkMsg = 0x80156618;
|
||||
sAudioSpecMsg = 0x80156618;
|
||||
sAudioResetMsg = 0x8015661C;
|
||||
|
||||
|
||||
@@ -408,8 +408,8 @@ Audio_GetSfxPan = 0x80016CDC;
|
||||
Audio_GetSfxFreqMod = 0x80016EE4;
|
||||
Audio_SetSfxProperties = 0x80016FF0;
|
||||
Audio_UpdateDopplerShift = 0x80017360;
|
||||
func_80017494 = 0x80017494;
|
||||
func_80017550 = 0x80017550;
|
||||
Audio_LoadInstruments = 0x80017494;
|
||||
Audio_LoadAquasSequence = 0x80017550;
|
||||
Audio_ResetSfxChannelState = 0x80017588;
|
||||
Audio_StartSequence = 0x80017600;
|
||||
Audio_StopSequence = 0x80017760;
|
||||
@@ -420,12 +420,12 @@ Audio_GetActiveSeqId = 0x8001839C;
|
||||
Audio_SeqCmdNotQueued = 0x80018410;
|
||||
Audio_SeqCmdValueNotQueued = 0x80018470;
|
||||
Audio_ResetSequenceRequests = 0x800184D4;
|
||||
func_800184EC = 0x800184EC;
|
||||
Audio_DisableSetupOp = 0x800184EC;
|
||||
Audio_SetSequenceFade = 0x800185A0;
|
||||
Audio_UpdateActiveSequences = 0x800185F8;
|
||||
Audio_SetDelayedSeqCmd = 0x80018E9C;
|
||||
Audio_UpdateDelayedSeqCmds = 0x80018EE0;
|
||||
func_80018FA4 = 0x80018FA4;
|
||||
Audio_HandleReset = 0x80018FA4;
|
||||
Audio_ResetActiveSequences = 0x80019068;
|
||||
Audio_ResetActiveSequencesAndVolume = 0x800190E4;
|
||||
Audio_SetSfxBanksMute = 0x80019158;
|
||||
@@ -454,8 +454,8 @@ Audio_UpdateVoice = 0x8001AD44;
|
||||
Audio_ClearVoice = 0x8001AE58;
|
||||
Audio_GetCurrentVoice = 0x8001AE78;
|
||||
Audio_GetCurrentVoiceStatus = 0x8001AED4;
|
||||
func_8001AF40 = 0x8001AF40;
|
||||
func_8001AF50 = 0x8001AF50;
|
||||
Audio_SetUnkVoiceParam = 0x8001AF40;
|
||||
Audio_UpdateUnkVoiceParam = 0x8001AF50;
|
||||
Audio_ResetPlayerFreqMods = 0x8001AF9C;
|
||||
Audio_UpdateArwingNoise = 0x8001B014;
|
||||
Audio_UpdateLandmasterNoise = 0x8001B454;
|
||||
@@ -465,31 +465,31 @@ Audio_UpdatePlayerReverb = 0x8001BB74;
|
||||
Audio_UpdatePlayerNoise = 0x8001BC20;
|
||||
Audio_ResetVoicesAndPlayers = 0x8001BC48;
|
||||
Audio_ProcessPlaylist = 0x8001BD0C;
|
||||
func_8001BFC0 = 0x8001BFC0;
|
||||
Audio_AnalyzeFrequencies = 0x8001BFC0;
|
||||
Audio_UpdateFrequencyAnalysis = 0x8001C3EC;
|
||||
Audio_StartPlayerNoise = 0x8001C8B8;
|
||||
func_8001CA24 = 0x8001CA24;
|
||||
func_8001CB80 = 0x8001CB80;
|
||||
func_8001CCDC = 0x8001CCDC;
|
||||
func_8001CE28 = 0x8001CE28;
|
||||
func_8001CEFC = 0x8001CEFC;
|
||||
func_8001CF60 = 0x8001CF60;
|
||||
func_8001CFA8 = 0x8001CFA8;
|
||||
func_8001D034 = 0x8001D034;
|
||||
func_8001D0B4 = 0x8001D0B4;
|
||||
func_8001D10C = 0x8001D10C;
|
||||
func_8001D15C = 0x8001D15C;
|
||||
func_8001D1C8 = 0x8001D1C8;
|
||||
Audio_StopPlayerNoise = 0x8001CA24;
|
||||
Audio_InitBombSfx = 0x8001CB80;
|
||||
Audio_PlayBombFlightSfx = 0x8001CCDC;
|
||||
Audio_PlayBombExplodeSfx = 0x8001CE28;
|
||||
Audio_StartEngineNoise = 0x8001CEFC;
|
||||
Audio_StopEngineNoise = 0x8001CF60;
|
||||
Audio_SetSfxSpeedModulation = 0x8001CFA8;
|
||||
Audio_SetTransposeAndPlaySfx = 0x8001D034;
|
||||
Audio_SetModulationAndPlaySfx = 0x8001D0B4;
|
||||
Audio_PlaySfxModulated = 0x8001D10C;
|
||||
Audio_SetSfxMapModulation = 0x8001D15C;
|
||||
Audio_SetHeatAlarmParams = 0x8001D1C8;
|
||||
Audio_PlayEventSfx = 0x8001D2FC;
|
||||
Audio_StopEventSfx = 0x8001D3A0;
|
||||
Audio_SetBaseSfxReverb = 0x8001D400;
|
||||
Audio_SetEnvSfxReverb = 0x8001D400;
|
||||
Audio_SetBgmParam = 0x8001D410;
|
||||
Audio_PlaySequence = 0x8001D444;
|
||||
Audio_PlayFanfare = 0x8001D4AC;
|
||||
func_8001D520 = 0x8001D520;
|
||||
func_8001D638 = 0x8001D638;
|
||||
func_8001D6DC = 0x8001D6DC;
|
||||
func_8001D780 = 0x8001D780;
|
||||
Audio_PlayDeathSequence = 0x8001D520;
|
||||
Audio_PlayPauseSfx = 0x8001D638;
|
||||
Audio_PlayMapMenuSfx = 0x8001D6DC;
|
||||
Audio_RestoreVolumeSettings = 0x8001D780;
|
||||
Audio_SetVolume = 0x8001D8A8;
|
||||
Audio_PlaySoundTest = 0x8001D8F4;
|
||||
Audio_PlaySequenceDistorted = 0x8001D9E0;
|
||||
@@ -499,8 +499,8 @@ Audio_KillAllSfx = 0x8001DC2C;
|
||||
Audio_SetAudioSpec = 0x8001DC6C;
|
||||
Audio_PlayBgm = 0x8001DCB4;
|
||||
Audio_InitSounds = 0x8001DCE0;
|
||||
func_8001DD40 = 0x8001DD40;
|
||||
func_8001DE1C = 0x8001DE1C;
|
||||
Audio_RestartSeqPlayers = 0x8001DD40;
|
||||
Audio_StartReset = 0x8001DE1C;
|
||||
Audio_Update = 0x8001DECC;
|
||||
|
||||
|
||||
@@ -519,7 +519,7 @@ AudioThread_ResetCmdQueue = 0x8001E998;
|
||||
AudioThread_ProcessCmds = 0x8001E9AC;
|
||||
AudioThread_GetAsyncLoadStatus = 0x8001ECAC;
|
||||
AudioThread_GetFontsForSequence = 0x8001ED14;
|
||||
func_8001ED34 = 0x8001ED34;
|
||||
AudioThread_ResetComplete = 0x8001ED34;
|
||||
AudioThread_ResetAudioHeap = 0x8001ED8C;
|
||||
AudioThread_PreNMIReset = 0x8001EE00;
|
||||
AudioThread_Init = 0x8001EE3C;
|
||||
|
||||
@@ -472,7 +472,7 @@ gPrevPlanetSavedTeamShields = 0x801778F0;//size=0x18
|
||||
gBoostButton = 0x80177908;
|
||||
gTeamDamage = 0x80177910;
|
||||
gBrakeButton = 0x80177928;
|
||||
gNextPlanetPath = 0x80177930;
|
||||
gMissionStatus = 0x80177930;
|
||||
gShootButton = 0x80177938;
|
||||
gGroundHeight = 0x80177940;
|
||||
gBombButton = 0x80177948;
|
||||
@@ -512,10 +512,10 @@ gVsLockOnTimers = 0x80177B00;
|
||||
D_ctx_80177B40 = 0x80177B40;
|
||||
gStartAndrossFightTimer = 0x80177B44;
|
||||
gMissionNumber = 0x80177B48;
|
||||
D_ctx_80177B50 = 0x80177B50;
|
||||
D_ctx_80177B70 = 0x80177B70;
|
||||
D_ctx_80177B90 = 0x80177B90;
|
||||
D_ctx_80177BB0 = 0x80177BB0;
|
||||
gMissionTeamStatus = 0x80177B50;
|
||||
gMissionHitCount = 0x80177B70;
|
||||
gMissionPlanet = 0x80177B90;
|
||||
gMissionMedal = 0x80177BB0;
|
||||
gControllerRumbleTimers = 0x80177BD0;
|
||||
gPlanetPathStatus = 0x80177BD8;
|
||||
D_ctx_80177C30 = 0x80177C30;
|
||||
|
||||
@@ -35,33 +35,33 @@ gSegments = 0x800E1FD0;
|
||||
gPiMgrCmdQueue = 0x800E2010;
|
||||
sPiMgrCmdBuff = 0x800E2028;
|
||||
|
||||
gDmaMsgQueue = 0x800E20F0;
|
||||
gDmaMesgQueue = 0x800E20F0;
|
||||
|
||||
sDmaMsgBuff = 0x800E2108;
|
||||
gDmaIOMsg = 0x800E2110;
|
||||
gSerialEventQueue = 0x800E2128;
|
||||
sSerialEventBuff = 0x800E2140;
|
||||
gMainThreadMsgQueue = 0x800E2148;
|
||||
gMainThreadMesgQueue = 0x800E2148;
|
||||
sMainThreadMsgBuff = 0x800E2160;
|
||||
gTaskMsgQueue = 0x800E21E0;
|
||||
gTaskMesgQueue = 0x800E21E0;
|
||||
sTaskMsgBuff = 0x800E21F8;
|
||||
gAudioVImsgQueue = 0x800E2238;
|
||||
gAudioTaskMsgQueue = 0x800E2258;
|
||||
gGfxVImsgQueue = 0x800E2278;
|
||||
gGfxTaskMsgQueue = 0x800E22A0;
|
||||
gAudioVImesgQueue = 0x800E2238;
|
||||
gAudioTaskMesgQueue = 0x800E2258;
|
||||
gGfxVImesgQueue = 0x800E2278;
|
||||
gGfxTaskMesgQueue = 0x800E22A0;
|
||||
sAudioVImsgBuff = 0x800E2250;
|
||||
sAudioTaskMsgBuff = 0x800E2270;
|
||||
sGfxVImsgBuff = 0x800E2290;
|
||||
sGfxTaskMsgBuff = 0x800E22B8;
|
||||
gSerialThreadMsgQueue = 0x800E22C0;
|
||||
gSerialThreadMesgQueue = 0x800E22C0;
|
||||
sSerialThreadMsgBuff = 0x800E22D8;
|
||||
gControllerMsgQueue = 0x800E22F8;
|
||||
gControllerMesgQueue = 0x800E22F8;
|
||||
sControllerMsgBuff = 0x800E2310;
|
||||
gSaveMsgQueue = 0x800E2318;
|
||||
gSaveMesgQueue = 0x800E2318;
|
||||
sSaveMsgBuff = 0x800E2330;
|
||||
gTimerTaskMsgQueue = 0x800E2338;
|
||||
gTimerTaskMesgQueue = 0x800E2338;
|
||||
sTimerTaskMsgBuff = 0x800E2350;
|
||||
gTimerWaitMsgQueue = 0x800E2390;
|
||||
gTimerWaitMesgQueue = 0x800E2390;
|
||||
sTimerWaitMsgBuff = 0x800E23A8;
|
||||
|
||||
gGfxPools = 0x800E23B0; // size:0x55AA0
|
||||
|
||||
+203
-196
File diff suppressed because it is too large
Load Diff
+15
-15
@@ -291,7 +291,7 @@ s32 AudioLoad_SyncLoadInstrument(s32 fontId, s32 instId, s32 drumId) {
|
||||
|
||||
void AudioLoad_AsyncLoadSampleBank(s32 sampleBankId, s32 nChunks, s32 retData, OSMesgQueue* retQueue) {
|
||||
if (AudioLoad_AsyncLoadInner(2, AudioLoad_GetLoadTableIndex(2, sampleBankId), nChunks, retData, retQueue) == NULL) {
|
||||
osSendMesg(retQueue, NULL, 0);
|
||||
osSendMesg(retQueue, NULL, OS_MESG_NOBLOCK);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -642,14 +642,14 @@ void AudioLoad_SyncDma(u32 devAddr, u8* ramAddr, u32 size, s32 medium) {
|
||||
break;
|
||||
}
|
||||
AudioLoad_Dma(&gSyncDmaIoMsg, 1, 0, devAddr, ramAddr, 0x400, &gSyncDmaQueue, medium, D_800C50E8);
|
||||
osRecvMesg(&gSyncDmaQueue, NULL, 1);
|
||||
MQ_WAIT_FOR_MESG(&gSyncDmaQueue, NULL);
|
||||
size -= 0x400;
|
||||
devAddr += 0x400;
|
||||
ramAddr += 0x400;
|
||||
}
|
||||
if (size != 0) {
|
||||
AudioLoad_Dma(&gSyncDmaIoMsg, 1, 0, devAddr, ramAddr, size, &gSyncDmaQueue, medium, D_800C50F4);
|
||||
osRecvMesg(&gSyncDmaQueue, NULL, 1);
|
||||
MQ_WAIT_FOR_MESG(&gSyncDmaQueue, NULL);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -737,7 +737,7 @@ void* AudioLoad_AsyncLoadInner(s32 tableType, s32 id, s32 nChunks, s32 retData,
|
||||
ramAddr = AudioLoad_SearchCaches(tableType, id);
|
||||
if (ramAddr != NULL) {
|
||||
loadStatus = 2;
|
||||
osSendMesg(retQueue, (void*) (retData << 0x18), 0);
|
||||
osSendMesg(retQueue, (void*) (retData << 0x18), OS_MESG_NOBLOCK);
|
||||
} else {
|
||||
table = AudioLoad_GetLoadTable(tableType);
|
||||
size = table->entries[id].size;
|
||||
@@ -990,7 +990,7 @@ void AudioLoad_ProcessSlowLoads(s32 resetStatus) {
|
||||
slowLoad = &gSlowLoads.slowLoad[i];
|
||||
switch (slowLoad->state) {
|
||||
case 2:
|
||||
osRecvMesg(&slowLoad->msgQueue, NULL, 1);
|
||||
MQ_WAIT_FOR_MESG(&slowLoad->mesgQueue, NULL);
|
||||
if (resetStatus != 0) {
|
||||
slowLoad->state = 3;
|
||||
break;
|
||||
@@ -1035,8 +1035,8 @@ static char devstr47[] = "Other Type: Not Write ID.\n";
|
||||
|
||||
void AudioLoad_DmaSlowCopy(AudioSlowLoad* slowLoad, s32 size) {
|
||||
osInvalDCache(slowLoad->curRamAddr, size);
|
||||
osCreateMesgQueue(&slowLoad->msgQueue, &slowLoad->msg, 1);
|
||||
AudioLoad_Dma(&slowLoad->ioMesg, 0, 0, slowLoad->curDevAddr, slowLoad->curRamAddr, size, &slowLoad->msgQueue,
|
||||
osCreateMesgQueue(&slowLoad->mesgQueue, &slowLoad->msg, 1);
|
||||
AudioLoad_Dma(&slowLoad->ioMesg, 0, 0, slowLoad->curDevAddr, slowLoad->curRamAddr, size, &slowLoad->mesgQueue,
|
||||
slowLoad->medium, D_800C52F4);
|
||||
}
|
||||
|
||||
@@ -1081,7 +1081,7 @@ AudioAsyncLoad* AudioLoad_StartAsyncLoad(u32 devAddr, u8* ramAddr, u32 size, s32
|
||||
asyncLoad->medium = medium;
|
||||
asyncLoad->retMsg = retMesg;
|
||||
|
||||
osCreateMesgQueue(&asyncLoad->msgQueue, &asyncLoad->msg, 1);
|
||||
osCreateMesgQueue(&asyncLoad->mesgQueue, &asyncLoad->msg, 1);
|
||||
return asyncLoad;
|
||||
}
|
||||
|
||||
@@ -1114,11 +1114,11 @@ void AudioLoad_ProcessAsyncLoad(AudioAsyncLoad* asyncLoad, s32 resetStatus) {
|
||||
asyncLoad->delay = 0;
|
||||
} else {
|
||||
if (resetStatus != 0) {
|
||||
osRecvMesg(&asyncLoad->msgQueue, NULL, 1);
|
||||
MQ_WAIT_FOR_MESG(&asyncLoad->mesgQueue, NULL);
|
||||
asyncLoad->status = 0;
|
||||
return;
|
||||
}
|
||||
if (osRecvMesg(&asyncLoad->msgQueue, NULL, 0) == -1) {
|
||||
if (!MQ_GET_MESG(&asyncLoad->mesgQueue, NULL)) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
@@ -1160,7 +1160,7 @@ void AudioLoad_ProcessAsyncLoad(AudioAsyncLoad* asyncLoad, s32 resetStatus) {
|
||||
break;
|
||||
}
|
||||
asyncLoad->status = 0;
|
||||
osSendMesg(asyncLoad->retQueue, asyncLoad->retMsg, 0);
|
||||
osSendMesg(asyncLoad->retQueue, asyncLoad->retMsg, OS_MESG_NOBLOCK);
|
||||
} else {
|
||||
if (asyncLoad->bytesRemaining < asyncLoad->chunkSize) {
|
||||
if (asyncLoad->medium == MEDIUM_UNK) {
|
||||
@@ -1190,9 +1190,9 @@ static char D_800C53AC[] = "BGCOPY";
|
||||
void AudioLoad_AsyncDma(AudioAsyncLoad* asyncLoad, u32 size) {
|
||||
size = ALIGN16(size);
|
||||
osInvalDCache(asyncLoad->curRamAddr, size);
|
||||
osCreateMesgQueue(&asyncLoad->msgQueue, &asyncLoad->msg, 1);
|
||||
osCreateMesgQueue(&asyncLoad->mesgQueue, &asyncLoad->msg, 1);
|
||||
if (size) {}
|
||||
AudioLoad_Dma(&asyncLoad->ioMesg, 0, 0, asyncLoad->curDevAddr, asyncLoad->curRamAddr, size, &asyncLoad->msgQueue,
|
||||
AudioLoad_Dma(&asyncLoad->ioMesg, 0, 0, asyncLoad->curDevAddr, asyncLoad->curRamAddr, size, &asyncLoad->mesgQueue,
|
||||
asyncLoad->medium, D_800C53AC);
|
||||
}
|
||||
|
||||
@@ -1353,11 +1353,11 @@ s32 AudioLoad_ProcessSamplePreloads(s32 resetStatus) {
|
||||
|
||||
if (gPreloadSampleStackTop > 0) {
|
||||
if (resetStatus != 0) {
|
||||
if (osRecvMesg(&gPreloadSampleQueue, (OSMesg) &preloadIndex, 0)) {}
|
||||
if (!MQ_GET_MESG(&gPreloadSampleQueue, &preloadIndex)) {}
|
||||
gPreloadSampleStackTop = 0;
|
||||
return false;
|
||||
}
|
||||
if (osRecvMesg(&gPreloadSampleQueue, (OSMesg) &preloadIndex, 0) == -1) {
|
||||
if (!MQ_GET_MESG(&gPreloadSampleQueue, &preloadIndex)) {
|
||||
return false;
|
||||
}
|
||||
// "Receive %d\n"
|
||||
|
||||
+46
-46
@@ -165,44 +165,44 @@ TunedSample* func_80011D10(Instrument* instrument, s32 arg1) {
|
||||
return sample;
|
||||
}
|
||||
|
||||
Instrument* Audio_GetInstrument(s32 arg0, s32 arg1) {
|
||||
Instrument* temp_v1;
|
||||
Instrument* Audio_GetInstrument(s32 fontId, s32 instId) {
|
||||
Instrument* instrument;
|
||||
|
||||
if ((gFontLoadStatus[arg0] < 2) != 0) {
|
||||
D_80155D88 = arg0 + 0x10000000;
|
||||
if ((gFontLoadStatus[fontId] < 2) != 0) {
|
||||
D_80155D88 = fontId + 0x10000000;
|
||||
return NULL;
|
||||
}
|
||||
if (arg1 >= gSoundFontList[arg0].numInstruments) {
|
||||
D_80155D88 = (arg0 << 8) + arg1 + 0x03000000;
|
||||
if (instId >= gSoundFontList[fontId].numInstruments) {
|
||||
D_80155D88 = (fontId << 8) + instId + 0x03000000;
|
||||
return NULL;
|
||||
}
|
||||
temp_v1 = gSoundFontList[arg0].instruments[arg1];
|
||||
if (temp_v1 == NULL) {
|
||||
D_80155D88 = (arg0 << 8) + arg1 + 0x01000000;
|
||||
return temp_v1;
|
||||
instrument = gSoundFontList[fontId].instruments[instId];
|
||||
if (instrument == NULL) {
|
||||
D_80155D88 = (fontId << 8) + instId + 0x01000000;
|
||||
return instrument;
|
||||
}
|
||||
return temp_v1;
|
||||
return instrument;
|
||||
}
|
||||
|
||||
Drum* Audio_GetDrum(s32 arg0, s32 arg1) {
|
||||
Drum* temp;
|
||||
Drum* Audio_GetDrum(s32 fontId, s32 drumId) {
|
||||
Drum* drum;
|
||||
|
||||
if ((gFontLoadStatus[arg0] < 2) != 0) {
|
||||
D_80155D88 = arg0 + 0x10000000;
|
||||
if ((gFontLoadStatus[fontId] < 2) != 0) {
|
||||
D_80155D88 = fontId + 0x10000000;
|
||||
return NULL;
|
||||
}
|
||||
if (arg1 >= gSoundFontList[arg0].numDrums) {
|
||||
D_80155D88 = (arg0 << 8) + arg1 + 0x04000000;
|
||||
if (drumId >= gSoundFontList[fontId].numDrums) {
|
||||
D_80155D88 = (fontId << 8) + drumId + 0x04000000;
|
||||
return NULL;
|
||||
}
|
||||
if ((u32) gSoundFontList[arg0].drums < AUDIO_RELOCATED_ADDRESS_START) {
|
||||
if ((u32) gSoundFontList[fontId].drums < AUDIO_RELOCATED_ADDRESS_START) {
|
||||
return NULL;
|
||||
}
|
||||
temp = gSoundFontList[arg0].drums[arg1];
|
||||
if (gSoundFontList[arg0].drums[arg1] == NULL) {
|
||||
D_80155D88 = (arg0 << 8) + arg1 + 0x05000000;
|
||||
drum = gSoundFontList[fontId].drums[drumId];
|
||||
if (gSoundFontList[fontId].drums[drumId] == NULL) {
|
||||
D_80155D88 = (fontId << 8) + drumId + 0x05000000;
|
||||
}
|
||||
return temp;
|
||||
return drum;
|
||||
}
|
||||
|
||||
void func_80011EB8(Note* note) {
|
||||
@@ -428,35 +428,35 @@ void func_8001268C(SequenceLayer* layer) {
|
||||
func_80012438(layer, 7);
|
||||
}
|
||||
|
||||
s32 func_800126AC(Note* note, SequenceLayer* layer, s32 arg2) {
|
||||
f32 var_fv0;
|
||||
u8 var_v1 = 0;
|
||||
s32 func_800126AC(Note* note, SequenceLayer* layer, s32 waveId) {
|
||||
f32 freqMod;
|
||||
u8 harmonicIndex = 0;
|
||||
|
||||
if (arg2 < 128) {
|
||||
arg2 = 128;
|
||||
if (waveId < 128) {
|
||||
waveId = 128;
|
||||
}
|
||||
var_fv0 = layer->freqMod;
|
||||
freqMod = layer->freqMod;
|
||||
if ((layer->portamento.mode != 0) && (layer->portamento.extent > 0.0f)) {
|
||||
var_fv0 *= layer->portamento.extent + 1.0f;
|
||||
freqMod *= layer->portamento.extent + 1.0f;
|
||||
}
|
||||
if (var_fv0 < 1.0f) {
|
||||
var_fv0 = 1.0465f;
|
||||
} else if (var_fv0 < 2.0f) {
|
||||
var_v1 = 1;
|
||||
var_fv0 = 0.52325f;
|
||||
} else if (var_fv0 < 4.0f) {
|
||||
var_v1 = 2;
|
||||
var_fv0 = 0.26263f;
|
||||
if (freqMod < 1.0f) {
|
||||
freqMod = 1.0465f;
|
||||
} else if (freqMod < 2.0f) {
|
||||
harmonicIndex = 1;
|
||||
freqMod = 0.52325f;
|
||||
} else if (freqMod < 4.0f) {
|
||||
harmonicIndex = 2;
|
||||
freqMod = 0.26263f;
|
||||
} else {
|
||||
var_v1 = 3;
|
||||
var_fv0 = 0.13081f;
|
||||
harmonicIndex = 3;
|
||||
freqMod = 0.13081f;
|
||||
}
|
||||
|
||||
layer->freqMod *= var_fv0;
|
||||
note->playbackState.waveId = arg2;
|
||||
note->playbackState.harmonicIndex = var_v1;
|
||||
note->noteSubEu.waveSampleAddr = &gWaveSamples[arg2 - 128][var_v1 * 64];
|
||||
return var_v1;
|
||||
layer->freqMod *= freqMod;
|
||||
note->playbackState.waveId = waveId;
|
||||
note->playbackState.harmonicIndex = harmonicIndex;
|
||||
note->noteSubEu.waveSampleAddr = &gWaveSamples[waveId - 128][harmonicIndex * 64];
|
||||
return harmonicIndex;
|
||||
}
|
||||
|
||||
void func_800127B0(Note* note, SequenceLayer* layer) {
|
||||
@@ -601,7 +601,7 @@ void func_80012C40(Note* note) {
|
||||
}
|
||||
}
|
||||
|
||||
Note* func_80012C6C(AudioListItem* item, s32 arg1) {
|
||||
Note* func_80012C6C(AudioListItem* item, s32 priority) {
|
||||
AudioListItem* var_v0;
|
||||
AudioListItem* var_v1;
|
||||
void* temp_a0;
|
||||
@@ -620,7 +620,7 @@ Note* func_80012C6C(AudioListItem* item, s32 arg1) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if (((Note*) var_v1->u.value)->playbackState.priority >= arg1) {
|
||||
if (((Note*) var_v1->u.value)->playbackState.priority >= priority) {
|
||||
return NULL;
|
||||
}
|
||||
return (Note*) var_v1->u.value;
|
||||
|
||||
+103
-103
File diff suppressed because it is too large
Load Diff
@@ -1,7 +1,9 @@
|
||||
#include "sys.h"
|
||||
#include "sf64audio_provisional.h"
|
||||
|
||||
s32 D_80145D40;
|
||||
s32 D_80145D40; // unused
|
||||
|
||||
// all of these are part of the DFT-related function
|
||||
f32 D_80145D48[256];
|
||||
f32 D_80146148[256];
|
||||
f32 D_80146548[515];
|
||||
|
||||
+24
-26
@@ -8,19 +8,19 @@ void AudioThread_SetFadeInTimer(s32 seqPlayId, s32 fadeTime);
|
||||
|
||||
OSMesgQueue sAudioTaskStartQueue;
|
||||
OSMesgQueue sThreadCmdProcQueue;
|
||||
OSMesgQueue sAudioUnkQueue;
|
||||
OSMesgQueue sAudioSpecQueue;
|
||||
OSMesgQueue sAudioResetQueue;
|
||||
AudioCmd gThreadCmdBuffer[256];
|
||||
OSMesg sAudioTaskStartMsg[1];
|
||||
OSMesg sThreadCmdProcMsg[4];
|
||||
OSMesg sAudioUnkMsg[1];
|
||||
OSMesg sAudioSpecMsg[1];
|
||||
OSMesg sAudioResetMsg[1];
|
||||
|
||||
u8 gThreadCmdWritePos = 0;
|
||||
u8 gThreadCmdReadPos = 0;
|
||||
OSMesgQueue* gAudioTaskStartQueue = &sAudioTaskStartQueue;
|
||||
OSMesgQueue* gThreadCmdProcQueue = &sThreadCmdProcQueue;
|
||||
OSMesgQueue* gAudioUnkQueue = &sAudioUnkQueue;
|
||||
OSMesgQueue* gAudioSpecQueue = &sAudioSpecQueue;
|
||||
OSMesgQueue* gAudioResetQueue = &sAudioResetQueue;
|
||||
|
||||
static const char devstr0[] = "DAC:Lost 1 Frame.\n";
|
||||
@@ -57,7 +57,7 @@ SPTask* AudioThread_CreateTask(void) {
|
||||
if ((gAudioTaskCountQ % gAudioBufferParams.count) != 0) {
|
||||
return gWaitingAudioTask;
|
||||
}
|
||||
osSendMesg(gAudioTaskStartQueue, (OSMesg) gAudioTaskCountQ, 0);
|
||||
osSendMesg(gAudioTaskStartQueue, (OSMesg) gAudioTaskCountQ, OS_MESG_NOBLOCK);
|
||||
gAudioTaskIndexQ ^= 1;
|
||||
gCurAiBuffIndex++;
|
||||
gCurAiBuffIndex %= 3;
|
||||
@@ -71,7 +71,7 @@ SPTask* AudioThread_CreateTask(void) {
|
||||
gCurAudioFrameDmaCount = 0;
|
||||
AudioLoad_DecreaseSampleDmaTtls();
|
||||
AudioLoad_ProcessLoads(gResetStatus);
|
||||
if (osRecvMesg(gAudioUnkQueue, (OSMesg) &sp38, 0) != -1) {
|
||||
if (MQ_GET_MESG(gAudioSpecQueue, &sp38)) {
|
||||
if (gResetStatus == 0) {
|
||||
gResetStatus = 5;
|
||||
}
|
||||
@@ -79,7 +79,7 @@ SPTask* AudioThread_CreateTask(void) {
|
||||
}
|
||||
if ((gResetStatus != 0) && (AudioHeap_ResetStep() == 0)) {
|
||||
if (gResetStatus == 0) {
|
||||
osSendMesg(gAudioResetQueue, (OSMesg) (s32) gAudioSpecId, 0);
|
||||
osSendMesg(gAudioResetQueue, (OSMesg) (s32) gAudioSpecId, OS_MESG_NOBLOCK);
|
||||
}
|
||||
gWaitingAudioTask = NULL;
|
||||
return NULL;
|
||||
@@ -102,7 +102,7 @@ SPTask* AudioThread_CreateTask(void) {
|
||||
if (gAiBuffLengths[sp4C] > gAudioBufferParams.maxAiBufferLength) {
|
||||
gAiBuffLengths[sp4C] = gAudioBufferParams.maxAiBufferLength;
|
||||
}
|
||||
while (osRecvMesg(gThreadCmdProcQueue, (OSMesg) &sp34, 0) != -1) {
|
||||
while (MQ_GET_MESG(gThreadCmdProcQueue, &sp34)) {
|
||||
AudioThread_ProcessCmds(sp34);
|
||||
}
|
||||
gCurAbiCmdBuffer = func_80009B64(gCurAbiCmdBuffer, &sp50, sp40, gAiBuffLengths[sp4C]);
|
||||
@@ -111,7 +111,7 @@ SPTask* AudioThread_CreateTask(void) {
|
||||
|
||||
sp4C = gAudioTaskIndexQ;
|
||||
|
||||
gAudioCurTask->msgQueue = NULL;
|
||||
gAudioCurTask->mesgQueue = NULL;
|
||||
gAudioCurTask->msg = NULL;
|
||||
|
||||
task = &gAudioCurTask->task.t;
|
||||
@@ -244,7 +244,7 @@ void AudioThread_InitQueues(void) {
|
||||
gThreadCmdReadPos = 0;
|
||||
osCreateMesgQueue(gAudioTaskStartQueue, sAudioTaskStartMsg, 1);
|
||||
osCreateMesgQueue(gThreadCmdProcQueue, sThreadCmdProcMsg, 4);
|
||||
osCreateMesgQueue(gAudioUnkQueue, sAudioUnkMsg, 1);
|
||||
osCreateMesgQueue(gAudioSpecQueue, sAudioSpecMsg, 1);
|
||||
osCreateMesgQueue(gAudioResetQueue, sAudioResetMsg, 1);
|
||||
}
|
||||
|
||||
@@ -282,7 +282,7 @@ void AudioThread_ScheduleProcessCmds(void) {
|
||||
D_800C7C70 = (u8) (gThreadCmdWritePos - gThreadCmdReadPos + 0x100);
|
||||
}
|
||||
msg = (((gThreadCmdReadPos & 0xFF) << 8) | (gThreadCmdWritePos & 0xFF));
|
||||
osSendMesg(gThreadCmdProcQueue, (OSMesg) msg, 0);
|
||||
osSendMesg(gThreadCmdProcQueue, (OSMesg) msg, OS_MESG_NOBLOCK);
|
||||
gThreadCmdReadPos = gThreadCmdWritePos;
|
||||
}
|
||||
|
||||
@@ -327,10 +327,10 @@ void AudioThread_ProcessCmds(u32 msg) {
|
||||
player->recalculateVolume = true;
|
||||
}
|
||||
break;
|
||||
case AUDIOCMD_OP_SEQPLAYER_SET_TEMPO: /* switch 1 */
|
||||
case AUDIOCMD_OP_SEQPLAYER_SET_TEMPO:
|
||||
player->tempo = cmd->asInt * 48;
|
||||
break;
|
||||
case AUDIOCMD_OP_SEQPLAYER_SET_TRANSPOSITION: /* switch 1 */
|
||||
case AUDIOCMD_OP_SEQPLAYER_SET_TRANSPOSITION:
|
||||
player->transposition = cmd->asSbyte;
|
||||
break;
|
||||
case 0x46: // AUDIOCMD_OP_SEQPLAYER_SET_IO?
|
||||
@@ -387,45 +387,43 @@ void AudioThread_ProcessCmds(u32 msg) {
|
||||
}
|
||||
|
||||
u32 AudioThread_GetAsyncLoadStatus(u32* outData) {
|
||||
u32 sp1C;
|
||||
u32 loadStatus;
|
||||
|
||||
if (osRecvMesg(&gExternalLoadQueue, (OSMesg*) &sp1C, 0) == -1) {
|
||||
if (!MQ_GET_MESG(&gExternalLoadQueue, &loadStatus)) {
|
||||
*outData = 0;
|
||||
return 0;
|
||||
}
|
||||
*outData = sp1C & 0xFFFFFF;
|
||||
return sp1C >> 0x18;
|
||||
*outData = loadStatus & 0xFFFFFF;
|
||||
return loadStatus >> 0x18;
|
||||
}
|
||||
|
||||
u8* AudioThread_GetFontsForSequence(s32 seqId, u32* outNumFonts) {
|
||||
return AudioLoad_GetFontsForSequence(seqId, outNumFonts);
|
||||
}
|
||||
|
||||
s32 func_8001ED34(void) {
|
||||
bool AudioThread_ResetComplete(void) {
|
||||
s32 pad;
|
||||
s32 sp18;
|
||||
|
||||
if (osRecvMesg(gAudioResetQueue, (OSMesg*) &sp18, 0) == -1) {
|
||||
return 0;
|
||||
if (!MQ_GET_MESG(gAudioResetQueue, &sp18)) {
|
||||
return false;
|
||||
}
|
||||
if (sp18 != gAudioSpecId) {
|
||||
return 0;
|
||||
return false;
|
||||
}
|
||||
return 1;
|
||||
return true;
|
||||
}
|
||||
|
||||
void AudioThread_ResetAudioHeap(s32 specId) {
|
||||
// clang-format off
|
||||
s32 m1 = -1;OSMesg sp28;do {} while (osRecvMesg(gAudioResetQueue, &sp28, 0) != m1);
|
||||
// clang-format on
|
||||
MQ_CLEAR_QUEUE(gAudioResetQueue);
|
||||
|
||||
AudioThread_ResetCmdQueue();
|
||||
osSendMesg(gAudioUnkQueue, (OSMesg) specId, 0);
|
||||
osSendMesg(gAudioSpecQueue, (OSMesg) specId, OS_MESG_NOBLOCK);
|
||||
}
|
||||
|
||||
void AudioThread_PreNMIReset(void) {
|
||||
gResetTimer = 1;
|
||||
AudioThread_ResetAudioHeap(0);
|
||||
AudioThread_ResetAudioHeap(AUDIOSPEC_0);
|
||||
gResetStatus = 0;
|
||||
}
|
||||
|
||||
|
||||
+138
-145
File diff suppressed because it is too large
Load Diff
@@ -31,7 +31,7 @@ void func_800A3E00(void) {
|
||||
break;
|
||||
case 2:
|
||||
if ((gControllerPress[0].button & START_BUTTON) || (gControllerPress[1].button & START_BUTTON)) {
|
||||
func_8001D638(0);
|
||||
Audio_PlayPauseSfx(0);
|
||||
D_ctx_80177868 = 3;
|
||||
gDrawMode = DRAW_NONE;
|
||||
Play_Setup();
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user