Some further docs for audio spec and planet paths (#219)

* avoid ub

* format

* torch

* more stuff
This commit is contained in:
petrie911 2024-04-20 17:07:29 -05:00 committed by GitHub
parent e3716b5d48
commit 95e5f4f07a
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
17 changed files with 243 additions and 146 deletions

View File

@ -52,7 +52,7 @@ 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 D_ctx_80177BD8[22]; // overruns D_ctx_80177C30?
extern s32 gPlanetPathStatus[22]; // overruns D_ctx_80177C30?
extern s32 gPrevPlanetTeamShields[6];
extern s32 D_ctx_80177C58[6];
extern u8 gSoundMode;

View File

@ -6,6 +6,47 @@
#define AUDIO_PLAY_SFX(sfxId, srcPos, token) (Audio_PlaySfx((sfxId),(srcPos),(token),&gDefaultMod,&gDefaultMod,&gDefaultReverb))
#define AUDIO_PLAY_BGM(seqId) Audio_PlaySequence(SEQ_PLAYER_BGM, (seqId), 0, -1)
#define AUDIO_SET_SPEC(sfxLayout, spec) Audio_SetAudioSpec(0, ((sfxLayout) << 8) | (spec))
#define AUDIO_SET_SPEC_ALT(sfxLayout, spec) Audio_SetAudioSpec((sfxLayout), ((sfxLayout) << 8) | (spec))
typedef enum {
/* 0 */ SFXCHAN_0,
/* 1 */ SFXCHAN_1,
/* 2 */ SFXCHAN_2,
/* 3 */ SFXCHAN_3
} SfxChannelLayout;
typedef enum {
/* 0 */ AUDIOSPEC_0,
/* 1 */ AUDIOSPEC_1,
/* 2 */ AUDIOSPEC_2,
/* 3 */ AUDIOSPEC_3,
/* 4 */ AUDIOSPEC_4,
/* 5 */ AUDIOSPEC_5,
/* 6 */ AUDIOSPEC_6,
/* 7 */ AUDIOSPEC_7,
/* 8 */ AUDIOSPEC_8,
/* 9 */ AUDIOSPEC_9,
/* 10 */ AUDIOSPEC_10,
/* 11 */ AUDIOSPEC_11,
/* 12 */ AUDIOSPEC_12,
/* 13 */ AUDIOSPEC_13,
/* 14 */ AUDIOSPEC_14,
/* 15 */ AUDIOSPEC_15,
/* 16 */ AUDIOSPEC_16,
/* 17 */ AUDIOSPEC_17,
/* 18 */ AUDIOSPEC_18,
/* 19 */ AUDIOSPEC_19,
/* 20 */ AUDIOSPEC_20,
/* 21 */ AUDIOSPEC_21,
/* 22 */ AUDIOSPEC_22,
/* 23 */ AUDIOSPEC_23,
/* 24 */ AUDIOSPEC_24,
/* 25 */ AUDIOSPEC_25,
/* 26 */ AUDIOSPEC_26,
/* 27 */ AUDIOSPEC_27,
/* 28 */ AUDIOSPEC_28,
} AudioSpecID;
typedef enum {
/* 0 */ SOUNDMODE_STEREO,

View File

@ -593,7 +593,7 @@ typedef struct {
*/
typedef struct {
/* 0x00 */ u32 samplingFrequency; // Target sampling rate in Hz
/* 0x04 */ u8 unk_04;
/* 0x04 */ u8 numBuffers;
/* 0x05 */ u8 numNotes;
/* 0x06 */ u8 numReverbs;
/* 0x08 */ ReverbSettings* reverbSettings;
@ -617,7 +617,7 @@ typedef struct {
* processing audio commands. This struct parameterizes that buffer.
*/
typedef struct {
/* 0x00 */ s16 specUnk4;
/* 0x00 */ s16 count;
/* 0x02 */ u16 samplingFrequency; // Target sampling rate in Hz
/* 0x04 */ u16 aiSamplingFrequency; // True sampling rate of the audio interface (AI), see `osAiSetFrequency`
/* 0x06 */ s16 samplesPerFrameTarget;

View File

@ -517,7 +517,7 @@ D_ctx_80177B70 = 0x80177B70;
D_ctx_80177B90 = 0x80177B90;
D_ctx_80177BB0 = 0x80177BB0;
gControllerRumbleTimers = 0x80177BD0;
D_ctx_80177BD8 = 0x80177BD8;
gPlanetPathStatus = 0x80177BD8;
D_ctx_80177C30 = 0x80177C30;
D_ctx_80177C50 = 0x80177C50;
D_ctx_80177C58 = 0x80177C58;

View File

@ -144,35 +144,92 @@ static ReverbSettings D_800C76A8[] = {
{ 1, 0x30, 0x4FFF, 0, 0 },
};
AudioSpec gAudioSpecs[] = {
{ 0x7D00, 2, 0x16, 2, D_800C74D0, 0x7FFF, 0x1200, 0x1100, 0, 0x5000, 0x2400, 0, 0x1B000, 0x35000 },
{ 0x7D00, 2, 0x16, 2, D_800C74E0, 0x7FFF, 0x1200, 0x1100, 0, 0x5000, 0x2400, 0, 0x1B000, 0x35000 },
{ 0x7D00, 2, 0x16, 2, D_800C74F0, 0x7FFF, 0x1200, 0x1100, 0, 0x5000, 0x2400, 0, 0x1B000, 0x35000 },
{ 0x7D00, 2, 0x16, 2, D_800C7500, 0x7FFF, 0x1200, 0x1100, 0, 0x5000, 0x2400, 0, 0x1B000, 0x35000 },
{ 0x7D00, 2, 0x16, 2, D_800C7510, 0x7FFF, 0x1200, 0x1100, 0, 0x5000, 0x2400, 0, 0x1B000, 0x35000 },
{ 0x7D00, 2, 0x16, 2, D_800C7520, 0x7FFF, 0x1200, 0x1100, 0, 0x5000, 0x2400, 0, 0x1B000, 0x35000 },
{ 0x7D00, 2, 0x16, 2, D_800C7530, 0x7FFF, 0x1200, 0x1100, 0, 0x5000, 0x2400, 0, 0x1B000, 0x35000 },
{ 0x7D00, 2, 0x16, 2, D_800C7540, 0x7FFF, 0x1200, 0x1100, 0, 0x5000, 0x2400, 0, 0x1B000, 0x35000 },
{ 0x7D00, 2, 0x16, 2, D_800C7550, 0x7FFF, 0x1200, 0x1100, 0, 0x5000, 0x2400, 0, 0x1B000, 0x35000 },
{ 0x7D00, 2, 0x16, 2, D_800C7560, 0x7FFF, 0x1200, 0x1100, 0, 0x5000, 0x2400, 0, 0x1B000, 0x35000 },
{ 0x7D00, 2, 0x16, 2, D_800C7570, 0x7FFF, 0x1200, 0x1100, 0, 0x5000, 0x2400, 0, 0x1B000, 0x35000 },
{ 0x7D00, 2, 0x16, 2, D_800C7580, 0x7FFF, 0x1200, 0x1100, 0, 0x5000, 0x2400, 0, 0x1B000, 0x35000 },
{ 0x7D00, 1, 0x16, 2, D_800C7590, 0x7FFF, 0x1200, 0x1100, 0, 0x5000, 0x2400, 0, 0x2B000, 0x35000 },
{ 0x7D00, 2, 0x16, 2, D_800C75A0, 0x7FFF, 0x1200, 0x1100, 0, 0x5000, 0x2400, 0, 0x1B000, 0x35000 },
{ 0x7D00, 2, 0x16, 2, D_800C75B0, 0x7FFF, 0x1200, 0x1100, 0, 0x5000, 0x2400, 0, 0x1B000, 0x35000 },
{ 0x7D00, 2, 0x16, 3, D_800C75C0, 0x7FFF, 0x1200, 0x1100, 0, 0x5000, 0x2400, 0, 0x1B000, 0x34000 },
{ 0x7D00, 2, 0x16, 2, D_800C75D8, 0x7FFF, 0x1200, 0x1100, 0, 0x5000, 0x2400, 0, 0x1B000, 0x35000 },
{ 0x7D00, 2, 0x16, 2, D_800C75E8, 0x7FFF, 0x1200, 0x1100, 0, 0x5000, 0x2400, 0, 0x1B000, 0x35000 },
{ 0x7D00, 2, 0x16, 2, D_800C75F8, 0x7FFF, 0x1200, 0x1100, 0, 0x5000, 0x2400, 0, 0x1B000, 0x35000 },
{ 0x7D00, 2, 0x16, 2, D_800C7608, 0x7FFF, 0x1200, 0x1100, 0, 0x5000, 0x2400, 0, 0x1B000, 0x35000 },
{ 0x7D00, 2, 0x16, 2, D_800C7618, 0x7FFF, 0x1200, 0x1100, 0, 0x5000, 0x2400, 0, 0x1B000, 0x35000 },
{ 0x7D00, 2, 0x20, 2, D_800C7628, 0x7FFF, 0x1200, 0x1100, 0, 0x5000, 0x2400, 0, 0x1B000, 0 },
{ 0x7D00, 1, 0x20, 2, D_800C7638, 0x7FFF, 0x1200, 0x1100, 0, 0x5000, 0x2400, 0, 0x1B000, 0 },
{ 0x7D00, 1, 0x20, 2, D_800C7648, 0x7FFF, 0x1200, 0xA000, 0, 0x5B00, 0x1D00, 0, 0, 0 },
{ 0x7D00, 1, 0x16, 2, D_800C7658, 0x7FFF, 0x1200, 0x1100, 0, 0x5000, 0x2400, 0, 0, 0x60000 },
{ 0x7D00, 2, 0x16, 2, D_800C7668, 0x7FFF, 0x1200, 0x1100, 0, 0x5000, 0x2400, 0, 0x1B000, 0 },
{ 0x7D00, 2, 0x16, 2, D_800C7678, 0x7FFF, 0x1200, 0x1100, 0, 0x5000, 0x2400, 0, 0x1B000, 0 },
{ 0x7D00, 2, 0x20, 2, D_800C7688, 0x7FFF, 0x1200, 0x1100, 0, 0x5000, 0x2400, 0, 0x1B000, 0 },
{ 0x7D00, 2, 0x16, 2, D_800C74D0, 0x7FFF, 0x1200, 0x1100, 0, 0x5000, 0x2400, 0, 0x1B000, 0x35000 },
/* 0 */ { 32000, 2, 22, ARRAY_COUNT(D_800C74D0), D_800C74D0, 0x7FFF, 0x1200, 0x1100, 0, 0x5000, 0x2400, 0, 0x1B000,
0x35000 },
/* 1 */
{ 32000, 2, 22, ARRAY_COUNT(D_800C74E0), D_800C74E0, 0x7FFF, 0x1200, 0x1100, 0, 0x5000, 0x2400, 0, 0x1B000,
0x35000 },
/* 2 */
{ 32000, 2, 22, ARRAY_COUNT(D_800C74F0), D_800C74F0, 0x7FFF, 0x1200, 0x1100, 0, 0x5000, 0x2400, 0, 0x1B000,
0x35000 },
/* 3 */
{ 32000, 2, 22, ARRAY_COUNT(D_800C7500), D_800C7500, 0x7FFF, 0x1200, 0x1100, 0, 0x5000, 0x2400, 0, 0x1B000,
0x35000 },
/* 4 */
{ 32000, 2, 22, ARRAY_COUNT(D_800C7510), D_800C7510, 0x7FFF, 0x1200, 0x1100, 0, 0x5000, 0x2400, 0, 0x1B000,
0x35000 },
/* 5 */
{ 32000, 2, 22, ARRAY_COUNT(D_800C7520), D_800C7520, 0x7FFF, 0x1200, 0x1100, 0, 0x5000, 0x2400, 0, 0x1B000,
0x35000 },
/* 6 */
{ 32000, 2, 22, ARRAY_COUNT(D_800C7530), D_800C7530, 0x7FFF, 0x1200, 0x1100, 0, 0x5000, 0x2400, 0, 0x1B000,
0x35000 },
/* 7 */
{ 32000, 2, 22, ARRAY_COUNT(D_800C7540), D_800C7540, 0x7FFF, 0x1200, 0x1100, 0, 0x5000, 0x2400, 0, 0x1B000,
0x35000 },
/* 8 */
{ 32000, 2, 22, ARRAY_COUNT(D_800C7550), D_800C7550, 0x7FFF, 0x1200, 0x1100, 0, 0x5000, 0x2400, 0, 0x1B000,
0x35000 },
/* 9 */
{ 32000, 2, 22, ARRAY_COUNT(D_800C7560), D_800C7560, 0x7FFF, 0x1200, 0x1100, 0, 0x5000, 0x2400, 0, 0x1B000,
0x35000 },
/* 10 */
{ 32000, 2, 22, ARRAY_COUNT(D_800C7570), D_800C7570, 0x7FFF, 0x1200, 0x1100, 0, 0x5000, 0x2400, 0, 0x1B000,
0x35000 },
/* 11 */
{ 32000, 2, 22, ARRAY_COUNT(D_800C7580), D_800C7580, 0x7FFF, 0x1200, 0x1100, 0, 0x5000, 0x2400, 0, 0x1B000,
0x35000 },
/* 12 */
{ 32000, 1, 22, ARRAY_COUNT(D_800C7590), D_800C7590, 0x7FFF, 0x1200, 0x1100, 0, 0x5000, 0x2400, 0, 0x2B000,
0x35000 },
/* 13 */
{ 32000, 2, 22, ARRAY_COUNT(D_800C75A0), D_800C75A0, 0x7FFF, 0x1200, 0x1100, 0, 0x5000, 0x2400, 0, 0x1B000,
0x35000 },
/* 14 */
{ 32000, 2, 22, ARRAY_COUNT(D_800C75B0), D_800C75B0, 0x7FFF, 0x1200, 0x1100, 0, 0x5000, 0x2400, 0, 0x1B000,
0x35000 },
/* 15 */
{ 32000, 2, 22, ARRAY_COUNT(D_800C75C0), D_800C75C0, 0x7FFF, 0x1200, 0x1100, 0, 0x5000, 0x2400, 0, 0x1B000,
0x34000 },
/* 16 */
{ 32000, 2, 22, ARRAY_COUNT(D_800C75D8), D_800C75D8, 0x7FFF, 0x1200, 0x1100, 0, 0x5000, 0x2400, 0, 0x1B000,
0x35000 },
/* 17 */
{ 32000, 2, 22, ARRAY_COUNT(D_800C75E8), D_800C75E8, 0x7FFF, 0x1200, 0x1100, 0, 0x5000, 0x2400, 0, 0x1B000,
0x35000 },
/* 18 */
{ 32000, 2, 22, ARRAY_COUNT(D_800C75F8), D_800C75F8, 0x7FFF, 0x1200, 0x1100, 0, 0x5000, 0x2400, 0, 0x1B000,
0x35000 },
/* 19 */
{ 32000, 2, 22, ARRAY_COUNT(D_800C7608), D_800C7608, 0x7FFF, 0x1200, 0x1100, 0, 0x5000, 0x2400, 0, 0x1B000,
0x35000 },
/* 20 */
{ 32000, 2, 22, ARRAY_COUNT(D_800C7618), D_800C7618, 0x7FFF, 0x1200, 0x1100, 0, 0x5000, 0x2400, 0, 0x1B000,
0x35000 },
/* 21 */
{ 32000, 2, 32, ARRAY_COUNT(D_800C7628), D_800C7628, 0x7FFF, 0x1200, 0x1100, 0, 0x5000, 0x2400, 0, 0x1B000,
0x00000 },
/* 22 */
{ 32000, 1, 32, ARRAY_COUNT(D_800C7638), D_800C7638, 0x7FFF, 0x1200, 0x1100, 0, 0x5000, 0x2400, 0, 0x1B000,
0x00000 },
/* 23 */
{ 32000, 1, 32, ARRAY_COUNT(D_800C7648), D_800C7648, 0x7FFF, 0x1200, 0xA000, 0, 0x5B00, 0x1D00, 0, 0x00000,
0x00000 },
/* 24 */
{ 32000, 1, 22, ARRAY_COUNT(D_800C7658), D_800C7658, 0x7FFF, 0x1200, 0x1100, 0, 0x5000, 0x2400, 0, 0x00000,
0x60000 },
/* 25 */
{ 32000, 2, 22, ARRAY_COUNT(D_800C7668), D_800C7668, 0x7FFF, 0x1200, 0x1100, 0, 0x5000, 0x2400, 0, 0x1B000,
0x00000 },
/* 26 */
{ 32000, 2, 22, ARRAY_COUNT(D_800C7678), D_800C7678, 0x7FFF, 0x1200, 0x1100, 0, 0x5000, 0x2400, 0, 0x1B000,
0x00000 },
/* 27 */
{ 32000, 2, 32, ARRAY_COUNT(D_800C7688), D_800C7688, 0x7FFF, 0x1200, 0x1100, 0, 0x5000, 0x2400, 0, 0x1B000,
0x00000 },
/* 28 */
{ 32000, 2, 22, ARRAY_COUNT(D_800C74D0), D_800C74D0, 0x7FFF, 0x1200, 0x1100, 0, 0x5000, 0x2400, 0, 0x1B000,
0x35000 },
};
s32 D_800C7C28 = 0x20000000; // unused?
s16 gSeqTicksPerBeat = 0x30;

View File

@ -215,8 +215,7 @@ f32 func_80013B90(AdsrState* adsr) {
break;
default:
if (adsr->delay >= 4) {
adsr->delay =
(adsr->delay * gAudioBufferParams.ticksPerUpdate / gAudioBufferParams.specUnk4) / 4;
adsr->delay = (adsr->delay * gAudioBufferParams.ticksPerUpdate / gAudioBufferParams.count) / 4;
}
if (adsr->delay == 0) {
adsr->delay = 1;

View File

@ -82,7 +82,7 @@ u8 sSeqCmdWritePos = 0;
u8 sSeqCmdReadPos = 0;
u8 sStartSeqDisabled = 0;
u8 sSoundModeList[4] = { SOUNDMODE_STEREO, SOUNDMODE_HEADSET, SOUNDMODE_SURROUND, SOUNDMODE_MONO };
u8 sNewAudioSpecId = 0;
u8 sNewAudioSpecId = AUDIOSPEC_0;
u8 D_800C5D58 = 0;
s32 D_800C5D5C = 0; // unused. file split?
s8 sBaseReverb = 0;
@ -751,7 +751,7 @@ void func_80017494(void) {
}
void func_80017550(void) {
if (sNewAudioSpecId == 12) {
if (sNewAudioSpecId == AUDIOSPEC_12) {
AUDIOCMD_GLOBAL_SYNC_LOAD_SEQ_PARTS(14, 0);
}
}
@ -2684,7 +2684,7 @@ void Audio_PlayFanfare(u16 seqId, u8 bgmVolume, u8 bgmFadeoutTime, u8 bgmFadeinT
void func_8001D520(void) {
u8 i;
if (sNewAudioSpecId == 24) {
if (sNewAudioSpecId == AUDIOSPEC_24) {
Audio_ClearVoice();
func_8001D6DC(0);
AUDIO_PLAY_SFX(0x0903F004, gDefaultSfxSource, 4);
@ -2840,9 +2840,9 @@ void func_8001DD40(void) {
u16 sp1E = 1;
Audio_StartSequence(SEQ_PLAYER_VOICE, SEQ_ID_VOICE, 0xFF, 1);
if (sNewAudioSpecId == 12) {
if (sNewAudioSpecId == AUDIOSPEC_12) {
sp1E = 360;
} else if (sNewAudioSpecId < 23) {
} else if (sNewAudioSpecId < AUDIOSPEC_23) {
sp1E = 90;
}
Audio_StartSequence(SEQ_PLAYER_SFX, SEQ_ID_SFX, 0xFF, sp1E);
@ -2860,11 +2860,11 @@ void func_8001DD40(void) {
}
void func_8001DE1C(u8 oldSpecId) {
if (oldSpecId == 16) {
if ((sNewAudioSpecId == 22) || (sNewAudioSpecId == 23)) {
if (oldSpecId == AUDIOSPEC_16) {
if ((sNewAudioSpecId == AUDIOSPEC_22) || (sNewAudioSpecId == AUDIOSPEC_23)) {
D_800C5D58 = 2;
}
} else if ((oldSpecId == 28) && (sNewAudioSpecId == 23)) {
} else if ((oldSpecId == AUDIOSPEC_28) && (sNewAudioSpecId == AUDIOSPEC_23)) {
D_800C5D58 = 2;
} else {
D_800C5D58 = 1;

View File

@ -535,7 +535,7 @@ void AudioHeap_UpdateReverbs(void) {
s32 count;
s32 reverbIndex;
if (gAudioBufferParams.specUnk4 == 2) {
if (gAudioBufferParams.count == 2) {
count = 2;
} else {
count = 1;
@ -563,7 +563,7 @@ s32 AudioHeap_ResetStep(void) {
s32 j;
s32 sp24;
if (gAudioBufferParams.specUnk4 == 2) {
if (gAudioBufferParams.count == 2) {
sp24 = 2;
} else {
sp24 = 1;
@ -665,12 +665,12 @@ void AudioHeap_Init(void) {
gNumNotes = spec->numNotes;
D_8014C1B0 = spec->unk_14;
gMaxTempo = (u16) ((gAudioBufferParams.ticksPerUpdate * 2880000.0f / gSeqTicksPerBeat) / gMaxTempoTvTypeFactors);
gAudioBufferParams.specUnk4 = spec->unk_04;
gAudioBufferParams.samplesPerFrameTarget *= gAudioBufferParams.specUnk4;
gAudioBufferParams.maxAiBufferLength *= gAudioBufferParams.specUnk4;
gAudioBufferParams.minAiBufferLength *= gAudioBufferParams.specUnk4;
gAudioBufferParams.ticksPerUpdate *= gAudioBufferParams.specUnk4;
if (gAudioBufferParams.specUnk4 >= 2) {
gAudioBufferParams.count = spec->numBuffers;
gAudioBufferParams.samplesPerFrameTarget *= gAudioBufferParams.count;
gAudioBufferParams.maxAiBufferLength *= gAudioBufferParams.count;
gAudioBufferParams.minAiBufferLength *= gAudioBufferParams.count;
gAudioBufferParams.ticksPerUpdate *= gAudioBufferParams.count;
if (gAudioBufferParams.count >= 2) {
gAudioBufferParams.maxAiBufferLength -= 0x10;
}
gMaxAudioCmds = (gNumNotes * 0x14 * gAudioBufferParams.ticksPerUpdate) + (spec->numReverbs * 0x20) + 0x1E0;

View File

@ -157,7 +157,7 @@ void AudioLoad_InitSampleDmaBuffers(s32 numNotes) {
u8* dma;
gSampleDmaBuffSize = 0x2D0;
for (i = 0; i < (3 * gNumNotes * gAudioBufferParams.specUnk4); i++) {
for (i = 0; i < (3 * gNumNotes * gAudioBufferParams.count); i++) {
dma = AudioHeap_Alloc(&gMiscPool, gSampleDmaBuffSize);
gSampleDmas[gSampleDmaCount].ramAddr = dma;
if (dma == NULL) {
@ -876,7 +876,7 @@ void AudioLoad_Init(void) {
gAiBuffers[i][j] = 0;
}
}
gAudioSpecId = 0;
gAudioSpecId = AUDIOSPEC_0;
gResetStatus = 1;
AudioHeap_ResetStep();
gSequenceTable = &gSeqTableInit;

View File

@ -54,7 +54,7 @@ SPTask* AudioThread_CreateTask(void) {
s32 pad30;
gAudioTaskCountQ++;
if ((gAudioTaskCountQ % gAudioBufferParams.specUnk4) != 0) {
if ((gAudioTaskCountQ % gAudioBufferParams.count) != 0) {
return gWaitingAudioTask;
}
osSendMesg(gAudioTaskStartQueue, (OSMesg) gAudioTaskCountQ, 0);
@ -142,7 +142,7 @@ SPTask* AudioThread_CreateTask(void) {
gMaxAbiCmdCnt = sp50;
}
if (gAudioBufferParams.specUnk4 == 1) {
if (gAudioBufferParams.count == 1) {
return gAudioCurTask;
} else {
gWaitingAudioTask = gAudioCurTask;

View File

@ -51,9 +51,9 @@ s32 D_ctx_80177B70[7];
PlanetId D_ctx_80177B90[7];
s32 D_ctx_80177BB0[7];
#ifdef AVOID_UB
s32 D_ctx_80177BD8[24];
s32 gPlanetPathStatus[24];
#else
s32 D_ctx_80177BD8[22]; // overruns gPrevPlanetTeamShields?
s32 gPlanetPathStatus[22]; // overruns gPrevPlanetTeamShields?
#endif
s32 gPrevPlanetTeamShields[6];
s32 D_ctx_80177C58[6];

View File

@ -100,7 +100,7 @@ u8 Overlay_Load(u8 ovlSetup, u8 ovlStage) {
case OVL_SETUP_TITLE:
changeOvl = Overlay_Init(&sOvlmenu_Title[ovlStage]);
if (changeOvl == true) {
Audio_SetAudioSpec(0, 0x16);
AUDIO_SET_SPEC(SFXCHAN_0, AUDIOSPEC_22);
}
break;
case OVL_SETUP_MENU:
@ -175,13 +175,13 @@ u8 Overlay_Load(u8 ovlSetup, u8 ovlStage) {
case OVL_SETUP_VERSUS:
changeOvl = Overlay_Init(&sOvli2_Versus[ovlStage]);
if (changeOvl == true) {
Audio_SetAudioSpec(3, 0x310);
AUDIO_SET_SPEC_ALT(SFXCHAN_3, AUDIOSPEC_16);
}
break;
case OVL_SETUP_LOGO:
changeOvl = Overlay_Init(&sNoOvl_Logo[ovlStage]); // Logo does not load an overlay file
if (changeOvl == true) {
Audio_SetAudioSpec(0, 0xE);
AUDIO_SET_SPEC(SFXCHAN_0, AUDIOSPEC_14);
}
break;
case OVL_SETUP_CREDITS:

View File

@ -2371,17 +2371,17 @@ void func_play_800AB334(void) {
switch (gCurrentLevel) {
case LEVEL_TRAINING:
Audio_SetAudioSpec(0, 28);
AUDIO_SET_SPEC(SFXCHAN_0, AUDIOSPEC_28);
D_ctx_8017796C = -1;
break;
case LEVEL_VENOM_1:
Audio_SetAudioSpec(0, 6);
AUDIO_SET_SPEC(SFXCHAN_0, AUDIOSPEC_6);
break;
case LEVEL_VENOM_2:
Audio_SetAudioSpec(0, 6);
AUDIO_SET_SPEC(SFXCHAN_0, AUDIOSPEC_6);
break;
case LEVEL_VENOM_ANDROSS:
Audio_SetAudioSpec(0, 15);
AUDIO_SET_SPEC(SFXCHAN_0, AUDIOSPEC_15);
Audio_SetBaseSfxReverb(0);
D_ctx_8017796C = -1;
break;

View File

@ -3947,7 +3947,7 @@ void Andross_80193C4C(Player* player) {
gNextGameState = GSTATE_ENDING;
D_ending_80196D00 = 0;
D_play_800D3180[LEVEL_VENOM_ANDROSS] = Play_CheckMedalStatus(200) + 1;
Audio_SetAudioSpec(0, 0x1B);
AUDIO_SET_SPEC(SFXCHAN_0, AUDIOSPEC_27);
}
}
break;

View File

@ -1154,7 +1154,7 @@ void Map_801A5E80(void);
void Map_801A6368(void);
void Map_801A61B4(LevelId level);
bool Map_801A62FC(PlanetId planet);
s32 Map_801A655C(PlanetId start, PlanetId end);
s32 Map_GetPathId(PlanetId start, PlanetId end);
void Map_801A6628(void);
void Map_801A6694(void);
void Map_801A68E4(void);
@ -1266,7 +1266,7 @@ void Map_8019E99C(void) {
s32 i;
s32 j;
Audio_SetAudioSpec(0, 0x118);
AUDIO_SET_SPEC(SFXCHAN_1, AUDIOSPEC_24);
gVIsPerFrame = 2;
gGameFrameCount = 0;
@ -1534,12 +1534,12 @@ void Map_8019F42C(void) {
if (gCurrentPlanet != 0) {
for (i = 0; i < gCurrentPlanet; i++) {
D_menu_801CD8E0[i] = Map_801A655C(D_ctx_80177B90[i], D_ctx_80177B90[i + 1]);
D_menu_801CD8E0[i] = Map_GetPathId(D_ctx_80177B90[i], D_ctx_80177B90[i + 1]);
}
}
for (i = 0; i < 24; i++) {
D_ctx_80177BD8[i] = 0;
gPlanetPathStatus[i] = 0;
}
for (i = 0; i < 15; i++) {
@ -1550,7 +1550,7 @@ void Map_8019F42C(void) {
D_menu_801CD9AC = 0;
Audio_SetAudioSpec(0, 0x19);
AUDIO_SET_SPEC(SFXCHAN_0, AUDIOSPEC_25);
D_menu_801CD948 = 0;
D_menu_801CD94C = 0;
@ -1586,7 +1586,7 @@ void Map_8019F600(void) {
D_menu_801CD970 = 0;
for (i = 0; i < 24; i++) {
D_ctx_80177BD8[i] = 0;
gPlanetPathStatus[i] = 0;
gTexturedLines[i].unk_24 = 0.0f;
}
@ -1616,10 +1616,10 @@ void Map_8019F600(void) {
D_menu_801CD9B4 = 0.01f;
D_menu_801CD944 = 0;
sp18 = Map_801A655C(sCurrentPlanetId, sPlanets[sCurrentPlanetId].dest1);
temp_t4 = Map_801A655C(sCurrentPlanetId, sPlanets[sCurrentPlanetId].dest2);
D_ctx_80177BD8[sp18] = 1;
D_ctx_80177BD8[temp_t4] = 1;
sp18 = Map_GetPathId(sCurrentPlanetId, sPlanets[sCurrentPlanetId].dest1);
temp_t4 = Map_GetPathId(sCurrentPlanetId, sPlanets[sCurrentPlanetId].dest2);
gPlanetPathStatus[sp18] = 1;
gPlanetPathStatus[temp_t4] = 1;
}
void Map_8019F83C(void) {
@ -1628,12 +1628,12 @@ void Map_8019F83C(void) {
D_menu_801CD970 = 0;
for (i = 0; i < 24; i++) {
if ((D_ctx_80177BD8[i] == 4) || (D_ctx_80177BD8[i] == 5) || (D_ctx_80177BD8[i] == 1) ||
(D_ctx_80177BD8[i] == 11)) {
D_ctx_80177BD8[i] = 0;
if ((gPlanetPathStatus[i] == 4) || (gPlanetPathStatus[i] == 5) || (gPlanetPathStatus[i] == 1) ||
(gPlanetPathStatus[i] == 11)) {
gPlanetPathStatus[i] = 0;
}
if (D_ctx_80177BD8[i] == 6) {
if (gPlanetPathStatus[i] == 6) {
sPaths[i].unk_14 = 5;
}
@ -1889,7 +1889,7 @@ void Map_801A01A8(void) {
if (D_menu_801CD974 && D_menu_801CD944 != 0) {
for (i = 0; i < 24; i++) {
if (D_ctx_80177BD8[i] == 0) {
if (gPlanetPathStatus[i] == 0) {
continue;
}
if (sPaths[i].alpha == 0) {
@ -2698,7 +2698,7 @@ void Map_801A2674(void) {
}
for (i = 0; i < 24; i++) {
if (D_ctx_80177BD8[i] == 0) {
if (gPlanetPathStatus[i] == 0) {
continue;
}
@ -2778,13 +2778,13 @@ void Map_801A281C(void) {
D_menu_801CEEE8[7].y = D_menu_801CEEE8[6].y;
D_menu_801CEEE8[7].z = D_menu_801CEEE8[6].z;
D_menu_801CEECC = Map_801A655C(sCurrentPlanetId, sNextPlanetId);
D_menu_801CEECC = Map_GetPathId(sCurrentPlanetId, sNextPlanetId);
if (D_menu_801CD93C == 2) {
D_ctx_80177BD8[D_menu_801CEECC] = 5;
gPlanetPathStatus[D_menu_801CEECC] = 5;
sPaths[D_menu_801CEECC].unk_14 = 5;
} else {
D_ctx_80177BD8[D_menu_801CEECC] = 2;
gPlanetPathStatus[D_menu_801CEECC] = 2;
sPaths[D_menu_801CEECC].unk_14 = 1;
}
}
@ -2945,7 +2945,7 @@ void Map_801A2EB8(void) {
}
for (i = 0; i < 24; i++) {
if (D_ctx_80177BD8[i] == 0) {
if (gPlanetPathStatus[i] == 0) {
continue;
}
sPaths[i].alpha += 16;
@ -2995,16 +2995,16 @@ void Map_801A2EB8(void) {
D_menu_801CEED4 = -1;
if (sPlanets[sNextPlanetId].dest1 != PLANET_NONE) {
temp1 = Map_801A655C(sNextPlanetId, sPlanets[sNextPlanetId].dest1);
D_ctx_80177BD8[temp1] = 1;
temp1 = Map_GetPathId(sNextPlanetId, sPlanets[sNextPlanetId].dest1);
gPlanetPathStatus[temp1] = 1;
sPaths[temp1].alpha = 255;
D_menu_801CEED4 = temp1;
}
D_menu_801CEED0 = -1;
if (sPlanets[sNextPlanetId].dest2 != PLANET_NONE) {
temp2 = Map_801A655C(sNextPlanetId, sPlanets[sNextPlanetId].dest2);
D_ctx_80177BD8[temp2] = 1;
temp2 = Map_GetPathId(sNextPlanetId, sPlanets[sNextPlanetId].dest2);
gPlanetPathStatus[temp2] = 1;
sPaths[temp2].alpha = 255;
D_menu_801CEED0 = temp2;
}
@ -3352,10 +3352,10 @@ void Map_801A4394(void) {
if ((sPaths[D_menu_801CD8E0[D_menu_801CD9AC]].type == 3) ||
(sPaths[D_menu_801CD8E0[D_menu_801CD9AC]].type == 4)) {
D_ctx_80177BD8[D_menu_801CD8E0[D_menu_801CD9AC]] = 5;
gPlanetPathStatus[D_menu_801CD8E0[D_menu_801CD9AC]] = 5;
sPaths[D_menu_801CD8E0[D_menu_801CD9AC]].unk_14 = 5;
} else {
D_ctx_80177BD8[D_menu_801CD8E0[D_menu_801CD9AC]] = 2;
gPlanetPathStatus[D_menu_801CD8E0[D_menu_801CD9AC]] = 2;
sPaths[D_menu_801CD8E0[D_menu_801CD9AC]].unk_14 = 0;
}
@ -3366,8 +3366,8 @@ void Map_801A4394(void) {
break;
case 2:
if ((D_ctx_80177BD8[D_menu_801CD8E0[D_menu_801CD9AC]] == 3) ||
(D_ctx_80177BD8[D_menu_801CD8E0[D_menu_801CD9AC]] == 6)) {
if ((gPlanetPathStatus[D_menu_801CD8E0[D_menu_801CD9AC]] == 3) ||
(gPlanetPathStatus[D_menu_801CD8E0[D_menu_801CD9AC]] == 6)) {
D_menu_801CD9AC++;
D_menu_801CD94C = 1;
}
@ -3633,20 +3633,20 @@ void Map_801A4FC4(void) {
gBombCount[gPlayerNum] = 3;
if (sPlanets[sCurrentPlanetId].dest1 != PLANET_NONE) {
temp2 = Map_801A655C(sCurrentPlanetId, sPlanets[sCurrentPlanetId].dest1);
D_ctx_80177BD8[temp2] = 0;
temp2 = Map_GetPathId(sCurrentPlanetId, sPlanets[sCurrentPlanetId].dest1);
gPlanetPathStatus[temp2] = 0;
sPaths[temp2].alpha = 0;
}
if (sPlanets[sCurrentPlanetId].dest2 != PLANET_NONE) {
temp = Map_801A655C(sCurrentPlanetId, sPlanets[sCurrentPlanetId].dest2);
D_ctx_80177BD8[temp] = 0;
temp = Map_GetPathId(sCurrentPlanetId, sPlanets[sCurrentPlanetId].dest2);
gPlanetPathStatus[temp] = 0;
sPaths[temp].alpha = 0;
}
if (sPlanets[sCurrentPlanetId].warp != PLANET_NONE) {
temp = Map_801A655C(sCurrentPlanetId, sPlanets[sCurrentPlanetId].warp);
D_ctx_80177BD8[temp] = 0;
temp = Map_GetPathId(sCurrentPlanetId, sPlanets[sCurrentPlanetId].warp);
gPlanetPathStatus[temp] = 0;
sPaths[temp].alpha = 0;
}
@ -3669,20 +3669,20 @@ void Map_801A4FC4(void) {
sCurrentPlanetId = D_menu_801CD950;
if (sPlanets[sCurrentPlanetId].dest1 != PLANET_NONE) {
temp2 = Map_801A655C(sCurrentPlanetId, sPlanets[sCurrentPlanetId].dest1);
D_ctx_80177BD8[temp2] = 1;
temp2 = Map_GetPathId(sCurrentPlanetId, sPlanets[sCurrentPlanetId].dest1);
gPlanetPathStatus[temp2] = 1;
sPaths[temp2].alpha = 255;
}
if (sPlanets[sCurrentPlanetId].dest2 != PLANET_NONE) {
temp = Map_801A655C(sCurrentPlanetId, sPlanets[sCurrentPlanetId].dest2);
D_ctx_80177BD8[temp] = 1;
temp = Map_GetPathId(sCurrentPlanetId, sPlanets[sCurrentPlanetId].dest2);
gPlanetPathStatus[temp] = 1;
sPaths[temp].alpha = 255;
}
if (sPlanets[sCurrentPlanetId].warp != PLANET_NONE) {
temp = Map_801A655C(sCurrentPlanetId, sPlanets[sCurrentPlanetId].warp);
D_ctx_80177BD8[temp] = 0;
temp = Map_GetPathId(sCurrentPlanetId, sPlanets[sCurrentPlanetId].warp);
gPlanetPathStatus[temp] = 0;
sPaths[temp].alpha = 0;
}
@ -3696,18 +3696,18 @@ void Map_801A53C8(void) {
D_menu_801CEFD8 ^= 1;
if (sPlanets[sCurrentPlanetId].dest1 != PLANET_NONE) {
temp2 = Map_801A655C(sCurrentPlanetId, sPlanets[sCurrentPlanetId].dest1);
D_ctx_80177BD8[temp2] = 0;
temp2 = Map_GetPathId(sCurrentPlanetId, sPlanets[sCurrentPlanetId].dest1);
gPlanetPathStatus[temp2] = 0;
sPaths[temp2].alpha = 0;
}
if (sPlanets[sCurrentPlanetId].dest2 != PLANET_NONE) {
temp = Map_801A655C(sCurrentPlanetId, sPlanets[sCurrentPlanetId].dest2);
D_ctx_80177BD8[temp] = 0;
temp = Map_GetPathId(sCurrentPlanetId, sPlanets[sCurrentPlanetId].dest2);
gPlanetPathStatus[temp] = 0;
sPaths[temp].alpha = 0;
}
D_ctx_80177BD8[D_menu_801CEECC] = 0;
gPlanetPathStatus[D_menu_801CEECC] = 0;
sPaths[D_menu_801CEECC].alpha = 0;
sPaths[D_menu_801CEECC].unk_14 = 0;
@ -3728,16 +3728,16 @@ void Map_801A53C8(void) {
sNextPlanetId = sPlanets[sCurrentPlanetId].dest1;
}
D_menu_801CEECC = Map_801A655C(sCurrentPlanetId, sNextPlanetId);
D_menu_801CEECC = Map_GetPathId(sCurrentPlanetId, sNextPlanetId);
sPaths[D_menu_801CEECC].alpha = 255;
D_ctx_80177BD8[D_menu_801CEECC] = 3;
gPlanetPathStatus[D_menu_801CEECC] = 3;
sPaths[D_menu_801CEECC].unk_14 = 2;
if ((sPaths[D_menu_801CEECC].type == PL_WARP_YLW) || (sPaths[D_menu_801CEECC].type == PL_WARP_RED)) {
D_ctx_80177BD8[D_menu_801CEECC] = 5;
gPlanetPathStatus[D_menu_801CEECC] = 5;
sPaths[D_menu_801CEECC].unk_14 = 5;
}
@ -3752,14 +3752,14 @@ void Map_801A53C8(void) {
Map_801A6368();
if (sPlanets[sNextPlanetId].dest1 != PLANET_NONE) {
temp2 = Map_801A655C(sNextPlanetId, sPlanets[sNextPlanetId].dest1);
D_ctx_80177BD8[temp2] = 1;
temp2 = Map_GetPathId(sNextPlanetId, sPlanets[sNextPlanetId].dest1);
gPlanetPathStatus[temp2] = 1;
sPaths[temp2].alpha = 255;
}
if (sPlanets[sNextPlanetId].dest2 != PLANET_NONE) {
temp = Map_801A655C(sNextPlanetId, sPlanets[sNextPlanetId].dest2);
D_ctx_80177BD8[temp] = 1;
temp = Map_GetPathId(sNextPlanetId, sPlanets[sNextPlanetId].dest2);
gPlanetPathStatus[temp] = 1;
sPaths[temp].alpha = 255;
}
}
@ -4012,59 +4012,59 @@ void Map_801A5E80(void) {
void Map_801A61B4(LevelId level) {
switch (level) {
case LEVEL_CORNERIA:
Audio_SetAudioSpec(0, 0);
AUDIO_SET_SPEC(SFXCHAN_0, AUDIOSPEC_0);
break;
case LEVEL_METEO:
Audio_SetAudioSpec(0, 1);
AUDIO_SET_SPEC(SFXCHAN_0, AUDIOSPEC_1);
break;
case LEVEL_TITANIA:
Audio_SetAudioSpec(0, 2);
AUDIO_SET_SPEC(SFXCHAN_0, AUDIOSPEC_2);
break;
case LEVEL_AQUAS:
Audio_SetAudioSpec(0, 12);
AUDIO_SET_SPEC(SFXCHAN_0, AUDIOSPEC_12);
break;
case LEVEL_BOLSE:
Audio_SetAudioSpec(0, 10);
AUDIO_SET_SPEC(SFXCHAN_0, AUDIOSPEC_10);
break;
case LEVEL_KATINA:
Audio_SetAudioSpec(0, 11);
AUDIO_SET_SPEC(SFXCHAN_0, AUDIOSPEC_11);
break;
case LEVEL_AREA_6:
Audio_SetAudioSpec(0, 5);
AUDIO_SET_SPEC(SFXCHAN_0, AUDIOSPEC_5);
break;
case LEVEL_SECTOR_Z:
Audio_SetAudioSpec(0, 13);
AUDIO_SET_SPEC(SFXCHAN_0, AUDIOSPEC_13);
break;
case LEVEL_FORTUNA:
Audio_SetAudioSpec(0, 8);
AUDIO_SET_SPEC(SFXCHAN_0, AUDIOSPEC_8);
break;
case LEVEL_SECTOR_X:
Audio_SetAudioSpec(0, 3);
AUDIO_SET_SPEC(SFXCHAN_0, AUDIOSPEC_3);
break;
case LEVEL_MACBETH:
Audio_SetAudioSpec(0, 14);
AUDIO_SET_SPEC(SFXCHAN_0, AUDIOSPEC_14);
break;
case LEVEL_ZONESS:
Audio_SetAudioSpec(0, 4);
AUDIO_SET_SPEC(SFXCHAN_0, AUDIOSPEC_4);
break;
case LEVEL_SECTOR_Y:
Audio_SetAudioSpec(0, 7);
AUDIO_SET_SPEC(SFXCHAN_0, AUDIOSPEC_7);
break;
case LEVEL_SOLAR:
Audio_SetAudioSpec(0, 0x209);
AUDIO_SET_SPEC(SFXCHAN_2, AUDIOSPEC_9);
default:
break;
@ -4245,7 +4245,7 @@ PlanetId Map_GetPlanetId(LevelId level) {
return planet;
}
s32 Map_801A655C(PlanetId start, PlanetId end) {
s32 Map_GetPathId(PlanetId start, PlanetId end) {
s32 i;
for (i = 0; i < 24; i++) {
@ -5519,7 +5519,7 @@ void Map_801AA1CC(s32 arg0) {
if (i < 6) {
r = g = b = 255;
if (i < arg0) {
temp = Map_801A655C(*ptr, *(ptr + 1));
temp = Map_GetPathId(*ptr, *(ptr + 1));
switch (sPaths[temp].type) {
case 0:
r = 16;
@ -6358,10 +6358,10 @@ void Map_801AC9A0(s32 index) {
gTexturedLines[index].unk_20 = Math_Atan2F(x, z);
gTexturedLines[index].unk_1C = -Math_Atan2F(y, sqrtf(SQ(x) + SQ(z)));
switch (D_ctx_80177BD8[index]) {
switch (gPlanetPathStatus[index]) {
case 1:
AUDIO_PLAY_SFX(0x1900404D, gDefaultSfxSource, 4);
D_ctx_80177BD8[index] = 11;
gPlanetPathStatus[index] = 11;
break;
case 11:
@ -6369,7 +6369,7 @@ void Map_801AC9A0(s32 index) {
gTexturedLines[index].unk_2F = 255;
if (gTexturedLines[index].unk_24 == target) {
Audio_KillSfxById(0x1900404D);
D_ctx_80177BD8[index] = 4;
gPlanetPathStatus[index] = 4;
}
break;
@ -6378,7 +6378,7 @@ void Map_801AC9A0(s32 index) {
Math_SmoothStepToF(&gTexturedLines[index].unk_24, target, 0.1f, 100.0f, 1.0f);
if (gTexturedLines[index].unk_24 == target) {
gTexturedLines[index].unk_24 = 0.0f;
D_ctx_80177BD8[index] = 6;
gPlanetPathStatus[index] = 6;
D_menu_801CEEAC = 255;
}
break;
@ -6391,7 +6391,7 @@ void Map_801AC9A0(s32 index) {
Math_SmoothStepToF(&gTexturedLines[index].unk_24, target, temp, 100.0f, 4.0f);
gTexturedLines[index].unk_2F = 255;
if (gTexturedLines[index].unk_24 == target) {
D_ctx_80177BD8[index] = 3;
gPlanetPathStatus[index] = 3;
}
break;
@ -6402,7 +6402,7 @@ void Map_801AC9A0(s32 index) {
break;
}
if ((D_ctx_80177BD8[index] == 1) || (D_ctx_80177BD8[index] == 11) || (D_ctx_80177BD8[index] == 4)) {
if ((gPlanetPathStatus[index] == 1) || (gPlanetPathStatus[index] == 11) || (gPlanetPathStatus[index] == 4)) {
gTexturedLines[index].unk_2C = 32;
gTexturedLines[index].unk_2D = 32;
gTexturedLines[index].unk_2E = 32;

View File

@ -558,7 +558,7 @@ void Option_Init(void) {
case OPTION_WAIT:
if (gNextGameStateTimer == 0) {
gOptionMenuStatus = OPTION_SETUP;
Audio_SetAudioSpec(0, 23);
AUDIO_SET_SPEC(SFXCHAN_0, AUDIOSPEC_23);
}
break;
@ -806,7 +806,7 @@ void Option_TrainingUpdate(void) {
D_ctx_80177CB0 = 0.0f;
D_ctx_8017782C = 1;
gControllerLock = 3;
Audio_SetAudioSpec(0, 28);
AUDIO_SET_SPEC(SFXCHAN_0, AUDIOSPEC_28);
} else {
gFillScreenAlpha += 32;
if (gFillScreenAlpha > 255) {

View File

@ -205,11 +205,11 @@ void Title_801875E0(void) {
Title_80188010();
if ((gMainController == -1) || (D_menu_801B827C != 0)) {
Audio_SetAudioSpec(0, 0x17);
AUDIO_SET_SPEC(SFXCHAN_0, AUDIOSPEC_23);
D_menu_801B82C4 = 0;
D_menu_801B827C = 0;
} else {
Audio_SetAudioSpec(0, 0x16);
AUDIO_SET_SPEC(SFXCHAN_0, AUDIOSPEC_22);
D_menu_801B82C4 = 1;
}
gControllerLock = 30;
@ -379,7 +379,7 @@ void Title_80187B00(void) {
gRadioState = 0;
D_menu_801B82C0 = 0;
gDrawMode = DRAW_NONE;
Audio_SetAudioSpec(0, 0x16);
AUDIO_SET_SPEC(SFXCHAN_0, AUDIOSPEC_22);
D_menu_801B82C4 = 1;
}
@ -2102,7 +2102,7 @@ void Title_8018C644(void) {
D_menu_801B82C0 = 0;
gDrawMode = DRAW_NONE;
D_menu_801B82C4 = 0;
Audio_SetAudioSpec(0, 23);
AUDIO_SET_SPEC(SFXCHAN_0, AUDIOSPEC_23);
break;
}
@ -3216,7 +3216,7 @@ void Title_80190EA4(void) {
if (D_menu_801B8284 < 120) {
D_menu_801B8284 += 18;
} else {
Audio_SetAudioSpec(0, 0x17);
AUDIO_SET_SPEC(SFXCHAN_0, AUDIOSPEC_23);
D_ctx_80178410 = 0;
gRadioState = 0;
D_menu_801B82C0 = 0;