Decomp, update AudioOcarina (code_800EC960.c) (#6941)

This commit is contained in:
djevangelia
2026-07-19 18:54:43 +02:00
committed by GitHub
parent 81009e9dce
commit 29d4ff4205
24 changed files with 1357 additions and 1095 deletions
+1 -1
View File
@@ -247,7 +247,7 @@ void func_800E5584(AudioCmd* cmd) {
AudioLoad_SyncLoadSeqParts(cmd->arg1, cmd->arg2);
return;
case 0x82:
// 16-bit seqId packed in opArgs bits 0-15. See func_800F9280().
// 16-bit seqId packed in opArgs bits 0-15. See Audio_StartSequence().
AudioLoad_SyncInitSeqPlayer(cmd->arg0, cmd->opArgs & 0xFFFF, 0);
func_800E59AC(cmd->arg0, cmd->data);
return;
File diff suppressed because it is too large Load Diff
+3 -3
View File
@@ -97,7 +97,7 @@ u8 gAudioSfxSwapOff = 0;
u8 D_801333F8 = 0;
void Audio_SetSoundBanksMute(u16 muteMask) {
void Audio_SetSfxBanksMute(u16 muteMask) {
u8 bankId;
for (bankId = 0; bankId < ARRAY_COUNT(gSoundBanks); bankId++) {
@@ -527,7 +527,7 @@ void Audio_PlayActiveSounds(u8 bankId) {
break;
}
}
Audio_SetSoundProperties(bankId, entryIndex, sCurSfxPlayerChannelIdx);
Audio_SetSfxProperties(bankId, entryIndex, sCurSfxPlayerChannelIdx);
Audio_QueueCmdS8(0x6 << 24 | SEQ_PLAYER_SFX << 16 | ((sCurSfxPlayerChannelIdx & 0xFF) << 8), 1);
Audio_QueueCmdS8(0x6 << 24 | SEQ_PLAYER_SFX << 16 | ((sCurSfxPlayerChannelIdx & 0xFF) << 8) | 4,
entry->sfxId & 0xFF);
@@ -543,7 +543,7 @@ void Audio_PlayActiveSounds(u8 bankId) {
} else if ((u8)channel->soundScriptIO[1] == 0xFF) {
Audio_RemoveSoundBankEntry(bankId, entryIndex);
} else if (entry->state == SFX_STATE_PLAYING_REFRESH) {
Audio_SetSoundProperties(bankId, entryIndex, sCurSfxPlayerChannelIdx);
Audio_SetSfxProperties(bankId, entryIndex, sCurSfxPlayerChannelIdx);
if (entry->sfxId & 0xC00) {
entry->state = SFX_STATE_PLAYING_1;
} else {
+7 -6
View File
@@ -36,7 +36,7 @@ u8 D_80133418 = 0;
#define Audio_SetVolScaleNow(playerIdx, volFadeTimer, volScale) \
Audio_ProcessSeqCmd(0x40000000 | ((u8)playerIdx << 24) | ((u8)volFadeTimer << 16) | ((u8)(volScale * 127.0f)));
void func_800F9280(u8 playerIdx, u8 seqId, u8 arg2, u16 fadeTimer) {
void Audio_StartSequence(u8 playerIdx, u8 seqId, u8 arg2, u16 fadeTimer) {
u8 i;
u16 dur;
u16 resolvedSeqId;
@@ -145,7 +145,7 @@ void Audio_ProcessSeqCmd(u32 cmd) {
seqArgs = (cmd & 0xFF00) >> 8;
fadeTimer = (cmd & 0xFF0000) >> 13;
if ((gActiveSeqs[playerIdx].isWaitingForFonts == 0) && (seqArgs < 0x80)) {
func_800F9280(playerIdx, seqId, seqArgs, fadeTimer);
Audio_StartSequence(playerIdx, seqId, seqArgs, fadeTimer);
}
break;
@@ -164,7 +164,7 @@ void Audio_ProcessSeqCmd(u32 cmd) {
for (i = 0; i < sNumSeqRequests[playerIdx]; i++) {
if (D_8016E320[playerIdx][i].unk_0 == seqId) {
if (i == 0) {
func_800F9280(playerIdx, seqId, seqArgs, fadeTimer);
Audio_StartSequence(playerIdx, seqId, seqArgs, fadeTimer);
}
return;
}
@@ -189,7 +189,7 @@ void Audio_ProcessSeqCmd(u32 cmd) {
D_8016E320[playerIdx][found].unk_0 = seqId;
if (found == 0) {
func_800F9280(playerIdx, seqId, seqArgs, fadeTimer);
Audio_StartSequence(playerIdx, seqId, seqArgs, fadeTimer);
}
break;
@@ -217,7 +217,8 @@ void Audio_ProcessSeqCmd(u32 cmd) {
if (found == 0) {
func_800F9474(playerIdx, fadeTimer);
if (sNumSeqRequests[playerIdx] != 0) {
func_800F9280(playerIdx, D_8016E320[playerIdx][0].unk_0, D_8016E320[playerIdx][0].unk_1, fadeTimer);
Audio_StartSequence(playerIdx, D_8016E320[playerIdx][0].unk_0, D_8016E320[playerIdx][0].unk_1,
fadeTimer);
}
}
break;
@@ -380,7 +381,7 @@ void Audio_ProcessSeqCmd(u32 cmd) {
}
void Audio_QueueSeqCmd(u32 cmd) {
// Replacement is resolved per-command in func_800F9280().
// Replacement is resolved per-command in Audio_StartSequence().
sAudioSeqCmds[sSeqCmdWrPos++] = cmd;
}
+1 -1
View File
@@ -465,7 +465,7 @@ void GameState_Init(GameState* gameState, GameStateFunc init, GraphicsContext* g
void GameState_Destroy(GameState* gameState) {
osSyncPrintf("game デストラクタ開始\n"); // "game destructor start"
func_800C3C20();
func_800F3054();
Audio_Update();
osRecvMesg(&gameState->gfxCtx->queue, NULL, OS_MESG_BLOCK);
LOG_CHECK_NULL_POINTER("this->cleanup", gameState->destroy);
if (gameState->destroy != NULL) {
+1 -1
View File
@@ -390,7 +390,7 @@ void Graph_Update(GraphicsContext* gfxCtx, GameState* gameState) {
gfxCtx->fbIdx++;
}
func_800F3054();
Audio_Update();
{
OSTime time = osGetTime();
+3 -3
View File
@@ -427,7 +427,7 @@ void func_80064824(PlayState* play, CutsceneContext* csCtx, CsCmdBase* cmd) {
}
break;
case 35:
func_800EE824();
AudioOcarina_PlayLongScarecrowSong();
csCtx->frames = cmd->startFrame - 1;
break;
}
@@ -912,7 +912,7 @@ void Cutscene_Command_Terminator(PlayState* play, CutsceneContext* csCtx, CsCmdB
break;
case 54:
gSaveContext.gameMode = GAMEMODE_END_CREDITS;
Audio_SetSoundBanksMute(0x6F);
Audio_SetSfxBanksMute(0x6F);
play->linkAgeOnLoad = 1;
play->nextEntranceIndex = ENTR_GERUDO_VALLEY_EAST_EXIT;
gSaveContext.cutsceneIndex = 0xFFF2;
@@ -1309,7 +1309,7 @@ void Cutscene_Command_Terminator(PlayState* play, CutsceneContext* csCtx, CsCmdB
break;
case 117:
gSaveContext.gameMode = GAMEMODE_END_CREDITS;
Audio_SetSoundBanksMute(0x6F);
Audio_SetSfxBanksMute(0x6F);
play->linkAgeOnLoad = 0;
play->nextEntranceIndex = ENTR_HYRULE_FIELD_PAST_BRIDGE_SPAWN;
gSaveContext.cutsceneIndex = 0xFFF7;
+137 -128
View File
@@ -143,16 +143,16 @@ void Message_UpdateOcarinaGame(PlayState* play) {
play->msgCtx.msgMode++;
if (play->msgCtx.msgMode == MSGMODE_MEMORY_GAME_PLAYER_PLAYING) {
AudioOcarina_SetInstrument(1);
msgCtx->ocarinaStaff = Audio_OcaGetPlayingStaff();
AudioOcarina_SetInstrument(OCARINA_INSTRUMENT_DEFAULT);
msgCtx->ocarinaStaff = AudioOcarina_GetPlayingStaff();
msgCtx->ocarinaStaff->pos = sOcarinaButtonIndexBufPos = 0;
func_800ECC04((1 << OCARINA_SONG_MEMORY_GAME) + 0x8000);
AudioOcarina_Start((1 << OCARINA_SONG_MEMORY_GAME) + 0x8000);
msgCtx->textDrawPos = msgCtx->decodedTextLen;
} else if (msgCtx->msgMode == MSGMODE_MEMORY_GAME_RIGHT_SKULLKID_PLAYING) {
AudioOcarina_SetInstrument(6);
msgCtx->ocarinaStaff = Audio_OcaGetDisplayingStaff();
AudioOcarina_SetInstrument(OCARINA_INSTRUMENT_FLUTE);
msgCtx->ocarinaStaff = AudioOcarina_GetPlaybackStaff();
msgCtx->ocarinaStaff->pos = sOcarinaButtonIndexBufPos = 0;
Audio_OcaSetSongPlayback(OCARINA_SONG_MEMORY_GAME + 1, 1);
AudioOcarina_SetPlaybackSong(OCARINA_SONG_MEMORY_GAME + 1, 1);
msgCtx->stateTimer = 2;
}
Message_ResetOcarinaNoteState();
@@ -892,15 +892,15 @@ void Message_HandleOcarina(PlayState* play) {
} else if (msgCtx->ocarinaAction == OCARINA_ACTION_SCARECROW_LONG_PLAYBACK) {
// "Recording Playback / Recording Playback / Recording Playback / Recording Playback -> "
osSyncPrintf("録音再生 録音再生 録音再生 録音再生 -> ");
AudioOcarina_SetInstrument(1);
AudioOcarina_SetInstrument(1);
msgCtx->ocarinaStaff = Audio_OcaGetDisplayingStaff();
AudioOcarina_SetInstrument(OCARINA_INSTRUMENT_DEFAULT);
AudioOcarina_SetInstrument(OCARINA_INSTRUMENT_DEFAULT);
msgCtx->ocarinaStaff = AudioOcarina_GetPlaybackStaff();
sOcarinaButtonIndexBufPos = sOcarinaButtonIndexBufLen = 0;
msgCtx->ocarinaStaff->pos = sOcarinaButtonIndexBufPos;
Message_ResetOcarinaNoteState();
msgCtx->stateTimer = 3;
msgCtx->msgMode = MSGMODE_SCARECROW_LONG_PLAYBACK;
Audio_OcaSetSongPlayback(OCARINA_SONG_SCARECROW_LONG + 1, 1);
AudioOcarina_SetPlaybackSong(OCARINA_SONG_SCARECROW_LONG + 1, 1);
} else if (msgCtx->ocarinaAction == OCARINA_ACTION_SCARECROW_RECORDING) {
msgCtx->msgMode = MSGMODE_SCARECROW_RECORDING_START;
// "8 Note Recording Start / 8 Note Recording Start / 8 Note Recording Start -> "
@@ -908,15 +908,15 @@ void Message_HandleOcarina(PlayState* play) {
} else if (msgCtx->ocarinaAction == OCARINA_ACTION_SCARECROW_PLAYBACK) {
// "8 Note Playback / 8 Note Playback / 8 Note Playback -> "
osSyncPrintf("8音再生 8音再生 8音再生 -> ");
AudioOcarina_SetInstrument(1);
AudioOcarina_SetInstrument(1);
msgCtx->ocarinaStaff = Audio_OcaGetDisplayingStaff();
AudioOcarina_SetInstrument(OCARINA_INSTRUMENT_DEFAULT);
AudioOcarina_SetInstrument(OCARINA_INSTRUMENT_DEFAULT);
msgCtx->ocarinaStaff = AudioOcarina_GetPlaybackStaff();
sOcarinaButtonIndexBufPos = sOcarinaButtonIndexBufLen = 0;
msgCtx->ocarinaStaff->pos = sOcarinaButtonIndexBufPos;
Message_ResetOcarinaNoteState();
msgCtx->stateTimer = 3;
msgCtx->msgMode = MSGMODE_SCARECROW_PLAYBACK;
Audio_OcaSetSongPlayback(OCARINA_SONG_SCARECROW + 1, 1);
AudioOcarina_SetPlaybackSong(OCARINA_SONG_SCARECROW_SPAWN + 1, 1);
} else if (msgCtx->ocarinaAction == OCARINA_ACTION_MEMORY_GAME) {
msgCtx->msgMode = MSGMODE_MEMORY_GAME_START;
// "Musical Round Start / Musical Round Start / Musical Round Start / Musical Round Start -> "
@@ -2895,11 +2895,19 @@ void Message_ContinueTextbox(PlayState* play, u16 textId) {
void Message_StartOcarina(PlayState* play, u16 ocarinaActionId) {
static u16 sOcarinaSongFlagsMap[] = {
(1 << OCARINA_SONG_MINUET), (1 << OCARINA_SONG_BOLERO), (1 << OCARINA_SONG_SERENADE),
(1 << OCARINA_SONG_REQUIEM), (1 << OCARINA_SONG_NOCTURNE), (1 << OCARINA_SONG_PRELUDE),
(1 << OCARINA_SONG_LULLABY), (1 << OCARINA_SONG_EPONAS), (1 << OCARINA_SONG_SARIAS),
(1 << OCARINA_SONG_SUNS), (1 << OCARINA_SONG_TIME), (1 << OCARINA_SONG_STORMS),
(1 << OCARINA_SONG_SCARECROW),
(1 << OCARINA_SONG_MINUET),
(1 << OCARINA_SONG_BOLERO),
(1 << OCARINA_SONG_SERENADE),
(1 << OCARINA_SONG_REQUIEM),
(1 << OCARINA_SONG_NOCTURNE),
(1 << OCARINA_SONG_PRELUDE),
(1 << OCARINA_SONG_LULLABY),
(1 << OCARINA_SONG_EPONAS),
(1 << OCARINA_SONG_SARIAS),
(1 << OCARINA_SONG_SUNS),
(1 << OCARINA_SONG_TIME),
(1 << OCARINA_SONG_STORMS),
(1 << OCARINA_SONG_SCARECROW_SPAWN),
};
MessageContext* msgCtx = &play->msgCtx;
s32 textId;
@@ -2917,13 +2925,13 @@ void Message_StartOcarina(PlayState* play, u16 ocarinaActionId) {
}
}
if (gSaveContext.scarecrowSpawnSongSet) {
sOcarinaSongBitFlags |= (1 << OCARINA_SONG_SCARECROW);
sOcarinaSongBitFlags |= (1 << OCARINA_SONG_SCARECROW_SPAWN);
}
osSyncPrintf("ocarina_bit = %x\n", sOcarinaSongBitFlags);
osSyncPrintf(VT_RST);
sHasSunsSong = CHECK_QUEST_ITEM(QUEST_SONG_SUN);
msgCtx->ocarinaStaff = Audio_OcaGetRecordingStaff();
msgCtx->ocarinaStaff = AudioOcarina_GetRecordingStaff();
msgCtx->ocarinaStaff->pos = sOcarinaButtonIndexBufPos = 0;
sOcarinaButtonIndexBufLen = 0;
Message_ResetOcarinaNoteState();
@@ -3006,15 +3014,15 @@ void Message_StartOcarina(PlayState* play, u16 ocarinaActionId) {
} else if (ocarinaActionId == OCARINA_ACTION_SCARECROW_LONG_PLAYBACK) {
// "?????Recording Playback / Recording Playback / Recording Playback / Recording Playback -> "
osSyncPrintf("?????録音再生 録音再生 録音再生 録音再生 -> ");
AudioOcarina_SetInstrument(1);
AudioOcarina_SetInstrument(1);
msgCtx->ocarinaStaff = Audio_OcaGetDisplayingStaff();
AudioOcarina_SetInstrument(OCARINA_INSTRUMENT_DEFAULT);
AudioOcarina_SetInstrument(OCARINA_INSTRUMENT_DEFAULT);
msgCtx->ocarinaStaff = AudioOcarina_GetPlaybackStaff();
sOcarinaButtonIndexBufPos = sOcarinaButtonIndexBufLen = 0;
msgCtx->ocarinaStaff->pos = sOcarinaButtonIndexBufPos;
Message_ResetOcarinaNoteState();
msgCtx->stateTimer = 3;
msgCtx->msgMode = MSGMODE_SCARECROW_LONG_PLAYBACK;
Audio_OcaSetSongPlayback(OCARINA_SONG_SCARECROW_LONG + 1, 1);
AudioOcarina_SetPlaybackSong(OCARINA_SONG_SCARECROW_LONG + 1, 1);
gSaveContext.hudVisibilityMode = 0;
Interface_ChangeHudVisibilityMode(1);
}
@@ -3365,8 +3373,8 @@ void Message_DrawMain(PlayState* play, Gfx** p) {
case MSGMODE_OCARINA_STARTING:
case MSGMODE_SONG_DEMONSTRATION_STARTING:
case MSGMODE_SONG_PLAYBACK_STARTING:
AudioOcarina_SetInstrument(1);
msgCtx->ocarinaStaff = Audio_OcaGetPlayingStaff();
AudioOcarina_SetInstrument(OCARINA_INSTRUMENT_DEFAULT);
msgCtx->ocarinaStaff = AudioOcarina_GetPlayingStaff();
msgCtx->ocarinaStaff->pos = sOcarinaButtonIndexBufPos = 0;
play->msgCtx.ocarinaMode = OCARINA_MODE_01;
Message_ResetOcarinaNoteState();
@@ -3380,22 +3388,22 @@ void Message_DrawMain(PlayState* play, Gfx** p) {
msgCtx->ocarinaAction >= OCARINA_ACTION_CHECK_SARIA) {
if (msgCtx->ocarinaAction == OCARINA_ACTION_FREE_PLAY ||
msgCtx->ocarinaAction == OCARINA_ACTION_CHECK_NOWARP) {
func_800ECC04(sOcarinaSongBitFlags + 0xC000);
AudioOcarina_Start(sOcarinaSongBitFlags + 0xC000);
} else {
// "On Stage Performance"
osSyncPrintf("台上演奏\n");
func_800ECC04(sOcarinaSongBitFlags);
AudioOcarina_Start(sOcarinaSongBitFlags);
}
} else {
osSyncPrintf("Na_StartOcarinaSinglePlayCheck2( message->ocarina_no );\n");
func_800ECC04((1 << (msgCtx->ocarinaAction % 32)) + 0x8000);
AudioOcarina_Start((1 << (msgCtx->ocarinaAction % 32)) + 0x8000);
}
msgCtx->msgMode = MSGMODE_OCARINA_PLAYING;
} else if (msgCtx->msgMode == MSGMODE_SONG_DEMONSTRATION_STARTING) {
msgCtx->stateTimer = 20;
msgCtx->msgMode = MSGMODE_SONG_DEMONSTRATION_SELECT_INSTRUMENT;
} else {
func_800ECC04((1 << ((msgCtx->ocarinaAction + 0x11) % 32)) + 0x8000);
AudioOcarina_Start((1 << ((msgCtx->ocarinaAction + 0x11) % 32)) + 0x8000);
// "Performance Check"
osSyncPrintf("演奏チェック=%d\n", msgCtx->ocarinaAction - OCARINA_ACTION_PLAYBACK_MINUET);
msgCtx->msgMode = MSGMODE_SONG_PLAYBACK;
@@ -3410,7 +3418,7 @@ void Message_DrawMain(PlayState* play, Gfx** p) {
}
break;
case MSGMODE_OCARINA_PLAYING:
msgCtx->ocarinaStaff = Audio_OcaGetPlayingStaff();
msgCtx->ocarinaStaff = AudioOcarina_GetPlayingStaff();
if (msgCtx->ocarinaStaff->pos) {
osSyncPrintf("locate=%d onpu_pt=%d\n", msgCtx->ocarinaStaff->pos, sOcarinaButtonIndexBufPos);
if (msgCtx->ocarinaStaff->pos == 1 && sOcarinaButtonIndexBufPos == 8) {
@@ -3418,22 +3426,22 @@ void Message_DrawMain(PlayState* play, Gfx** p) {
}
if (sOcarinaButtonIndexBufPos == msgCtx->ocarinaStaff->pos - 1) {
msgCtx->lastOcaNoteIdx = sOcarinaButtonIndexBuf[msgCtx->ocarinaStaff->pos - 1] =
msgCtx->ocarinaStaff->noteIdx;
sOcarinaButtonIndexBuf[msgCtx->ocarinaStaff->pos] = OCARINA_NOTE_INVALID;
msgCtx->ocarinaStaff->buttonIndex;
sOcarinaButtonIndexBuf[msgCtx->ocarinaStaff->pos] = OCARINA_BTN_INVALID;
sOcarinaButtonIndexBufPos++;
}
}
msgCtx->lastPlayedSong = msgCtx->ocarinaStaff->state;
if (msgCtx->ocarinaStaff->state < OCARINA_SONG_MEMORY_GAME) {
if (msgCtx->ocarinaStaff->state == OCARINA_SONG_SCARECROW ||
if (msgCtx->ocarinaStaff->state == OCARINA_SONG_SCARECROW_SPAWN ||
CHECK_QUEST_ITEM(QUEST_SONG_MINUET + gOcarinaSongItemMap[msgCtx->ocarinaStaff->state])) {
sLastPlayedSong = msgCtx->unk_E3F2 = msgCtx->lastPlayedSong = msgCtx->ocarinaStaff->state;
msgCtx->msgMode = MSGMODE_OCARINA_CORRECT_PLAYBACK;
msgCtx->stateTimer = 20;
if (msgCtx->ocarinaAction == OCARINA_ACTION_CHECK_NOWARP) {
if (msgCtx->ocarinaStaff->state < OCARINA_SONG_SARIAS ||
msgCtx->ocarinaStaff->state == OCARINA_SONG_SCARECROW) {
AudioOcarina_SetInstrument(0);
msgCtx->ocarinaStaff->state == OCARINA_SONG_SCARECROW_SPAWN) {
AudioOcarina_SetInstrument(OCARINA_INSTRUMENT_OFF);
Audio_PlaySoundGeneral(NA_SE_SY_OCARINA_ERROR, &gSfxDefaultPos, 4,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultReverb);
@@ -3451,8 +3459,8 @@ void Message_DrawMain(PlayState* play, Gfx** p) {
Interface_ChangeHudVisibilityMode(1);
}
} else if (msgCtx->ocarinaAction == OCARINA_ACTION_CHECK_SCARECROW) {
if (msgCtx->ocarinaStaff->state < OCARINA_SONG_SCARECROW) {
AudioOcarina_SetInstrument(0);
if (msgCtx->ocarinaStaff->state < OCARINA_SONG_SCARECROW_SPAWN) {
AudioOcarina_SetInstrument(OCARINA_INSTRUMENT_OFF);
Audio_PlaySoundGeneral(NA_SE_SY_OCARINA_ERROR, &gSfxDefaultPos, 4,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultReverb);
@@ -3487,19 +3495,19 @@ void Message_DrawMain(PlayState* play, Gfx** p) {
}
Interface_ChangeHudVisibilityMode(1);
} else {
AudioOcarina_SetInstrument(0);
AudioOcarina_SetInstrument(OCARINA_INSTRUMENT_OFF);
Audio_PlaySoundGeneral(NA_SE_SY_OCARINA_ERROR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
msgCtx->msgMode = MSGMODE_OCARINA_STARTING;
}
} else if (msgCtx->ocarinaStaff->state == 0xFF) {
AudioOcarina_SetInstrument(0);
AudioOcarina_SetInstrument(OCARINA_INSTRUMENT_OFF);
Audio_PlaySoundGeneral(NA_SE_SY_OCARINA_ERROR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
msgCtx->stateTimer = 10;
msgCtx->msgMode = MSGMODE_OCARINA_FAIL;
} else if (isB_Held) {
AudioOcarina_SetInstrument(0);
AudioOcarina_SetInstrument(OCARINA_INSTRUMENT_OFF);
play->msgCtx.ocarinaMode = OCARINA_MODE_04;
Message_CloseTextbox(play);
}
@@ -3544,7 +3552,7 @@ void Message_DrawMain(PlayState* play, Gfx** p) {
msgCtx->stateTimer--;
if (msgCtx->stateTimer == 0) {
AudioOcarina_SetInstrument(0);
AudioOcarina_SetInstrument(OCARINA_INSTRUMENT_OFF);
if (msgCtx->msgMode == MSGMODE_OCARINA_CORRECT_PLAYBACK) {
// "Correct Example Performance"
osSyncPrintf("正解模範演奏=%x\n", msgCtx->lastPlayedSong);
@@ -3604,7 +3612,7 @@ void Message_DrawMain(PlayState* play, Gfx** p) {
}
R_OCARINA_NOTES_YPOS_OFFSET += R_OCARINA_NOTES_YPOS_OFFSET;
if (R_OCARINA_NOTES_YPOS_OFFSET >= 550) {
sOcarinaButtonIndexBuf[0] = OCARINA_NOTE_INVALID;
sOcarinaButtonIndexBuf[0] = OCARINA_BTN_INVALID;
sOcarinaNotesAlphaValues[0] = sOcarinaNotesAlphaValues[1] = sOcarinaNotesAlphaValues[2] =
sOcarinaNotesAlphaValues[3] = sOcarinaNotesAlphaValues[4] = sOcarinaNotesAlphaValues[5] =
sOcarinaNotesAlphaValues[6] = sOcarinaNotesAlphaValues[7] = sOcarinaNotesAlphaValues[8] = 0;
@@ -3618,7 +3626,7 @@ void Message_DrawMain(PlayState* play, Gfx** p) {
case MSGMODE_SONG_PLAYED:
msgCtx->stateTimer--;
if (msgCtx->stateTimer == 0) {
AudioOcarina_SetInstrument(0);
AudioOcarina_SetInstrument(OCARINA_INSTRUMENT_OFF);
osSyncPrintf(VT_FGCOL(GREEN));
osSyncPrintf("Na_StopOcarinaMode();\n");
osSyncPrintf("Na_StopOcarinaMode();\n");
@@ -3626,7 +3634,7 @@ void Message_DrawMain(PlayState* play, Gfx** p) {
osSyncPrintf(VT_RST);
Message_Decode(play);
msgCtx->msgMode = MSGMODE_SETUP_DISPLAY_SONG_PLAYED;
msgCtx->ocarinaStaff = Audio_OcaGetPlayingStaff();
msgCtx->ocarinaStaff = AudioOcarina_GetPlayingStaff();
msgCtx->ocarinaStaff->pos = sOcarinaButtonIndexBufPos = 0;
Message_ResetOcarinaNoteState();
if (msgCtx->lastPlayedSong >= OCARINA_SONG_SARIAS &&
@@ -3648,16 +3656,16 @@ void Message_DrawMain(PlayState* play, Gfx** p) {
} else {
Message_DrawText(play, &gfx);
}
AudioOcarina_SetInstrument(1);
AudioOcarina_SetInstrument(1);
Audio_OcaSetSongPlayback(msgCtx->lastPlayedSong + 1, 1);
AudioOcarina_SetInstrument(OCARINA_INSTRUMENT_DEFAULT);
AudioOcarina_SetInstrument(OCARINA_INSTRUMENT_DEFAULT);
AudioOcarina_SetPlaybackSong(msgCtx->lastPlayedSong + 1, 1);
} else {
AudioOcarina_SetInstrument(1);
AudioOcarina_SetInstrument(1);
AudioOcarina_SetInstrument(OCARINA_INSTRUMENT_DEFAULT);
AudioOcarina_SetInstrument(OCARINA_INSTRUMENT_DEFAULT);
}
if (msgCtx->lastPlayedSong != OCARINA_SONG_SCARECROW) {
if (msgCtx->lastPlayedSong != OCARINA_SONG_SCARECROW_SPAWN) {
Audio_PlayFanfare(sOcarinaSongFanfares[msgCtx->lastPlayedSong]);
Audio_SetSoundBanksMute(0x20);
Audio_SetSfxBanksMute(0x20);
}
play->msgCtx.ocarinaMode = OCARINA_MODE_01;
if (msgCtx->ocarinaAction == OCARINA_ACTION_FREE_PLAY) {
@@ -3675,19 +3683,19 @@ void Message_DrawMain(PlayState* play, Gfx** p) {
// "ocarina_no=%d Song Chosen=%d"
osSyncPrintf("ocarina_no=%d 選曲=%d\n", msgCtx->ocarinaAction, 0x16);
if (msgCtx->ocarinaAction < OCARINA_ACTION_TEACH_SARIA) {
AudioOcarina_SetInstrument(4);
AudioOcarina_SetInstrument(OCARINA_INSTRUMENT_HARP);
} else if (msgCtx->ocarinaAction == OCARINA_ACTION_TEACH_EPONA) {
AudioOcarina_SetInstrument(2);
AudioOcarina_SetInstrument(OCARINA_INSTRUMENT_MALON);
} else if (msgCtx->ocarinaAction == OCARINA_ACTION_TEACH_LULLABY) {
AudioOcarina_SetInstrument(3);
AudioOcarina_SetInstrument(OCARINA_INSTRUMENT_WHISTLE);
} else if (msgCtx->ocarinaAction == OCARINA_ACTION_TEACH_STORMS) {
AudioOcarina_SetInstrument(5);
AudioOcarina_SetInstrument(OCARINA_INSTRUMENT_GRIND_ORGAN);
} else {
AudioOcarina_SetInstrument(1);
AudioOcarina_SetInstrument(OCARINA_INSTRUMENT_DEFAULT);
}
// "Example Performance"
osSyncPrintf("模範演奏=%x\n", msgCtx->ocarinaAction - OCARINA_ACTION_TEACH_MINUET);
Audio_OcaSetSongPlayback(msgCtx->ocarinaAction - OCARINA_ACTION_TEACH_MINUET + 1, 2);
AudioOcarina_SetPlaybackSong(msgCtx->ocarinaAction - OCARINA_ACTION_TEACH_MINUET + 1, 2);
sOcarinaButtonIndexBufPos = 0;
msgCtx->msgMode = MSGMODE_SONG_DEMONSTRATION;
}
@@ -3729,7 +3737,7 @@ void Message_DrawMain(PlayState* play, Gfx** p) {
}
break;
case MSGMODE_SONG_PLAYED_ACT_BEGIN:
AudioOcarina_SetInstrument(0);
AudioOcarina_SetInstrument(OCARINA_INSTRUMENT_OFF);
Message_ResetOcarinaNoteState();
msgCtx->msgMode = MSGMODE_SONG_PLAYED_ACT;
msgCtx->stateTimer = 2;
@@ -3765,7 +3773,7 @@ void Message_DrawMain(PlayState* play, Gfx** p) {
msgCtx->ocarinaAction);
if (msgCtx->ocarinaAction == OCARINA_ACTION_FREE_PLAY_DONE) {
play->msgCtx.ocarinaMode = OCARINA_MODE_01;
if (msgCtx->lastPlayedSong == OCARINA_SONG_SCARECROW) {
if (msgCtx->lastPlayedSong == OCARINA_SONG_SCARECROW_SPAWN) {
play->msgCtx.ocarinaMode = OCARINA_MODE_0B;
}
} else if (msgCtx->ocarinaAction >= OCARINA_ACTION_CHECK_MINUET) {
@@ -3795,7 +3803,7 @@ void Message_DrawMain(PlayState* play, Gfx** p) {
break;
case MSGMODE_DISPLAY_SONG_PLAYED:
case MSGMODE_SONG_DEMONSTRATION:
msgCtx->ocarinaStaff = Audio_OcaGetDisplayingStaff();
msgCtx->ocarinaStaff = AudioOcarina_GetPlaybackStaff();
if (msgCtx->ocarinaStaff->state == 0) {
if (msgCtx->msgMode == MSGMODE_DISPLAY_SONG_PLAYED) {
msgCtx->msgMode = MSGMODE_DISPLAY_SONG_PLAYED_TEXT_BEGIN;
@@ -3810,8 +3818,8 @@ void Message_DrawMain(PlayState* play, Gfx** p) {
}
if (msgCtx->ocarinaStaff->pos && sOcarinaButtonIndexBufPos == msgCtx->ocarinaStaff->pos - 1) {
msgCtx->lastOcaNoteIdx = sOcarinaButtonIndexBuf[msgCtx->ocarinaStaff->pos - 1] =
msgCtx->ocarinaStaff->noteIdx;
sOcarinaButtonIndexBuf[msgCtx->ocarinaStaff->pos] = OCARINA_NOTE_INVALID;
msgCtx->ocarinaStaff->buttonIndex;
sOcarinaButtonIndexBuf[msgCtx->ocarinaStaff->pos] = OCARINA_BTN_INVALID;
sOcarinaButtonIndexBufPos++;
}
}
@@ -3823,10 +3831,10 @@ void Message_DrawMain(PlayState* play, Gfx** p) {
}
break;
case MSGMODE_SONG_PLAYBACK:
msgCtx->ocarinaStaff = Audio_OcaGetPlayingStaff();
msgCtx->ocarinaStaff = AudioOcarina_GetPlayingStaff();
if (msgCtx->ocarinaStaff->pos && sOcarinaButtonIndexBufPos == msgCtx->ocarinaStaff->pos - 1) {
sOcarinaButtonIndexBuf[msgCtx->ocarinaStaff->pos - 1] = msgCtx->ocarinaStaff->noteIdx;
sOcarinaButtonIndexBuf[msgCtx->ocarinaStaff->pos] = OCARINA_NOTE_INVALID;
sOcarinaButtonIndexBuf[msgCtx->ocarinaStaff->pos - 1] = msgCtx->ocarinaStaff->buttonIndex;
sOcarinaButtonIndexBuf[msgCtx->ocarinaStaff->pos] = OCARINA_BTN_INVALID;
sOcarinaButtonIndexBufPos++;
}
if (msgCtx->ocarinaStaff->state < OCARINA_SONG_MEMORY_GAME) {
@@ -3873,9 +3881,9 @@ void Message_DrawMain(PlayState* play, Gfx** p) {
case MSGMODE_SCARECROW_LONG_RECORDING_START:
// "Scarecrow Recording Initialization"
osSyncPrintf("案山子録音 初期化\n");
Audio_OcaSetRecordingState(1);
AudioOcarina_SetInstrument(1);
msgCtx->ocarinaStaff = Audio_OcaGetRecordingStaff();
AudioOcarina_SetRecordingState(OCARINA_RECORD_SCARECROW_LONG);
AudioOcarina_SetInstrument(OCARINA_INSTRUMENT_DEFAULT);
msgCtx->ocarinaStaff = AudioOcarina_GetRecordingStaff();
msgCtx->ocarinaStaff->pos = sOcarinaButtonIndexBufPos = 0;
sOcarinaButtonIndexBufLen = 0;
Message_ResetOcarinaNoteState();
@@ -3887,7 +3895,7 @@ void Message_DrawMain(PlayState* play, Gfx** p) {
}
break;
case MSGMODE_SCARECROW_LONG_RECORDING_ONGOING:
msgCtx->ocarinaStaff = Audio_OcaGetRecordingStaff();
msgCtx->ocarinaStaff = AudioOcarina_GetRecordingStaff();
osSyncPrintf("\nonpu_pt=%d, locate=%d", sOcarinaButtonIndexBufPos, msgCtx->ocarinaStaff->pos);
if (msgCtx->ocarinaStaff->pos && sOcarinaButtonIndexBufPos == msgCtx->ocarinaStaff->pos - 1) {
if (sOcarinaButtonIndexBufLen >= 8) {
@@ -3897,11 +3905,12 @@ void Message_DrawMain(PlayState* play, Gfx** p) {
sOcarinaButtonIndexBufLen--;
}
// "Button Entered"
osSyncPrintf(" 入力ボタン【%d】=%d", sOcarinaButtonIndexBufLen, msgCtx->ocarinaStaff->noteIdx);
osSyncPrintf(" 入力ボタン【%d】=%d", sOcarinaButtonIndexBufLen,
msgCtx->ocarinaStaff->buttonIndex);
msgCtx->lastOcaNoteIdx = sOcarinaButtonIndexBuf[sOcarinaButtonIndexBufLen] =
msgCtx->ocarinaStaff->noteIdx;
msgCtx->ocarinaStaff->buttonIndex;
sOcarinaButtonIndexBufLen++;
sOcarinaButtonIndexBuf[sOcarinaButtonIndexBufLen] = OCARINA_NOTE_INVALID;
sOcarinaButtonIndexBuf[sOcarinaButtonIndexBufLen] = OCARINA_BTN_INVALID;
sOcarinaButtonIndexBufPos++;
if (msgCtx->ocarinaStaff->pos == 8) {
sOcarinaButtonIndexBufPos = 0;
@@ -3917,7 +3926,7 @@ void Message_DrawMain(PlayState* play, Gfx** p) {
Audio_PlaySoundGeneral(NA_SE_SY_OCARINA_ERROR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
osSyncPrintf("aaaaaaaaaaaaaa\n");
Audio_OcaSetRecordingState(0);
AudioOcarina_SetRecordingState(OCARINA_RECORD_OFF);
msgCtx->stateTimer = 10;
play->msgCtx.ocarinaMode = OCARINA_MODE_04;
Message_CloseTextbox(play);
@@ -3925,7 +3934,7 @@ void Message_DrawMain(PlayState* play, Gfx** p) {
osSyncPrintf("録音終了!!!!!!!!!録音終了\n");
osSyncPrintf(VT_FGCOL(YELLOW));
osSyncPrintf("\n====================================================================\n");
memcpy(gSaveContext.scarecrowLongSong, gScarecrowCustomSongPtr,
memcpy(gSaveContext.scarecrowLongSong, gScarecrowLongSongPtr,
sizeof(gSaveContext.scarecrowLongSong));
for (i = 0; i < ARRAY_COUNT(gSaveContext.scarecrowLongSong); i++) {
osSyncPrintf("%d, ", gSaveContext.scarecrowLongSong[i]);
@@ -3941,7 +3950,7 @@ void Message_DrawMain(PlayState* play, Gfx** p) {
break;
case MSGMODE_SCARECROW_LONG_PLAYBACK:
case MSGMODE_SCARECROW_PLAYBACK:
msgCtx->ocarinaStaff = Audio_OcaGetDisplayingStaff();
msgCtx->ocarinaStaff = AudioOcarina_GetPlaybackStaff();
if (msgCtx->ocarinaStaff->pos && sOcarinaButtonIndexBufPos == msgCtx->ocarinaStaff->pos - 1) {
if (sOcarinaButtonIndexBufLen >= 8) {
for (noteBufPos = sOcarinaButtonIndexBufLen - 8, i = 0; i < 8; i++, noteBufPos++) {
@@ -3949,9 +3958,9 @@ void Message_DrawMain(PlayState* play, Gfx** p) {
}
sOcarinaButtonIndexBufLen--;
}
sOcarinaButtonIndexBuf[sOcarinaButtonIndexBufLen] = msgCtx->ocarinaStaff->noteIdx;
sOcarinaButtonIndexBuf[sOcarinaButtonIndexBufLen] = msgCtx->ocarinaStaff->buttonIndex;
sOcarinaButtonIndexBufLen++;
sOcarinaButtonIndexBuf[sOcarinaButtonIndexBufLen] = OCARINA_NOTE_INVALID;
sOcarinaButtonIndexBuf[sOcarinaButtonIndexBufLen] = OCARINA_BTN_INVALID;
sOcarinaButtonIndexBufPos++;
if (msgCtx->ocarinaStaff->pos == 8) {
sOcarinaButtonIndexBufLen = sOcarinaButtonIndexBufPos = 0;
@@ -3961,7 +3970,7 @@ void Message_DrawMain(PlayState* play, Gfx** p) {
if (msgCtx->stateTimer == 0) {
if (msgCtx->ocarinaStaff->state == 0) {
osSyncPrintf("bbbbbbbbbbb\n");
AudioOcarina_SetInstrument(0);
AudioOcarina_SetInstrument(OCARINA_INSTRUMENT_OFF);
play->msgCtx.ocarinaMode = OCARINA_MODE_0F;
Message_CloseTextbox(play);
}
@@ -3970,8 +3979,8 @@ void Message_DrawMain(PlayState* play, Gfx** p) {
}
break;
case MSGMODE_SCARECROW_RECORDING_START:
Audio_OcaSetRecordingState(2);
AudioOcarina_SetInstrument(1);
AudioOcarina_SetRecordingState(OCARINA_RECORD_SCARECROW_SPAWN);
AudioOcarina_SetInstrument(OCARINA_INSTRUMENT_DEFAULT);
msgCtx->msgMode = MSGMODE_SCARECROW_RECORDING_ONGOING;
if (gSaveContext.language == LANGUAGE_JPN && !sDisplayNextMessageAsEnglish) {
Message_DrawTextJPN(play, &gfx);
@@ -3980,12 +3989,12 @@ void Message_DrawMain(PlayState* play, Gfx** p) {
}
break;
case MSGMODE_SCARECROW_RECORDING_ONGOING:
msgCtx->ocarinaStaff = Audio_OcaGetRecordingStaff();
msgCtx->ocarinaStaff = AudioOcarina_GetRecordingStaff();
if (msgCtx->ocarinaStaff->pos && sOcarinaButtonIndexBufPos == msgCtx->ocarinaStaff->pos - 1) {
msgCtx->lastOcaNoteIdx = sOcarinaButtonIndexBuf[sOcarinaButtonIndexBufPos] =
msgCtx->ocarinaStaff->noteIdx;
msgCtx->ocarinaStaff->buttonIndex;
sOcarinaButtonIndexBufPos++;
sOcarinaButtonIndexBuf[sOcarinaButtonIndexBufPos] = OCARINA_NOTE_INVALID;
sOcarinaButtonIndexBuf[sOcarinaButtonIndexBufPos] = OCARINA_BTN_INVALID;
}
if (msgCtx->ocarinaStaff->state == 0) {
// "8 Note Recording OK!"
@@ -4004,10 +4013,10 @@ void Message_DrawMain(PlayState* play, Gfx** p) {
}
osSyncPrintf(VT_RST);
osSyncPrintf("\n====================================================================\n");
} else if (msgCtx->ocarinaStaff->state == 0xFF || isB_Held) {
} else if (msgCtx->ocarinaStaff->state == OCARINA_RECORD_REJECTED || isB_Held) {
// "Played an existing song!!!"
osSyncPrintf("すでに存在する曲吹いた!!! \n");
Audio_OcaSetRecordingState(0);
AudioOcarina_SetRecordingState(OCARINA_RECORD_OFF);
Audio_PlaySoundGeneral(NA_SE_SY_OCARINA_ERROR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
Message_CloseTextbox(play);
@@ -4021,18 +4030,18 @@ void Message_DrawMain(PlayState* play, Gfx** p) {
break;
case MSGMODE_SCARECROW_RECORDING_FAILED:
osSyncPrintf("cccccccccccc\n");
AudioOcarina_SetInstrument(0);
AudioOcarina_SetInstrument(OCARINA_INSTRUMENT_OFF);
Message_StartTextbox(play, 0x40AD, NULL); // Bonooru doesn't remember your song
play->msgCtx.ocarinaMode = OCARINA_MODE_04;
break;
case MSGMODE_MEMORY_GAME_START:
AudioOcarina_SetInstrument(1);
AudioOcarina_SetInstrument(6);
Audio_OcaMemoryGameStart(gSaveContext.ocarinaGameRoundNum);
msgCtx->ocarinaStaff = Audio_OcaGetDisplayingStaff();
AudioOcarina_SetInstrument(OCARINA_INSTRUMENT_DEFAULT);
AudioOcarina_SetInstrument(OCARINA_INSTRUMENT_FLUTE);
AudioOcarina_MemoryGameInit(gSaveContext.ocarinaGameRoundNum);
msgCtx->ocarinaStaff = AudioOcarina_GetPlaybackStaff();
msgCtx->ocarinaStaff->pos = sOcarinaButtonIndexBufPos = 0;
Message_ResetOcarinaNoteState();
Audio_OcaSetSongPlayback(OCARINA_SONG_MEMORY_GAME + 1, 1);
AudioOcarina_SetPlaybackSong(OCARINA_SONG_MEMORY_GAME + 1, 1);
msgCtx->msgMode = MSGMODE_MEMORY_GAME_LEFT_SKULLKID_PLAYING;
msgCtx->stateTimer = 2;
break;
@@ -4040,10 +4049,10 @@ void Message_DrawMain(PlayState* play, Gfx** p) {
case MSGMODE_MEMORY_GAME_RIGHT_SKULLKID_PLAYING:
Audio_PlaySoundGeneral(NA_SE_SY_METRONOME_LV - SFX_FLAG, &gSfxDefaultPos, 4,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
msgCtx->ocarinaStaff = Audio_OcaGetDisplayingStaff();
msgCtx->ocarinaStaff = AudioOcarina_GetPlaybackStaff();
if (msgCtx->ocarinaStaff->pos && sOcarinaButtonIndexBufPos == msgCtx->ocarinaStaff->pos - 1) {
sOcarinaButtonIndexBuf[msgCtx->ocarinaStaff->pos - 1] = msgCtx->ocarinaStaff->noteIdx;
sOcarinaButtonIndexBuf[msgCtx->ocarinaStaff->pos] = OCARINA_NOTE_INVALID;
sOcarinaButtonIndexBuf[msgCtx->ocarinaStaff->pos - 1] = msgCtx->ocarinaStaff->buttonIndex;
sOcarinaButtonIndexBuf[msgCtx->ocarinaStaff->pos] = OCARINA_BTN_INVALID;
sOcarinaButtonIndexBufPos++;
}
if (msgCtx->stateTimer == 0) {
@@ -4064,26 +4073,26 @@ void Message_DrawMain(PlayState* play, Gfx** p) {
break;
case MSGMODE_MEMORY_GAME_LEFT_SKULLKID_WAIT:
case MSGMODE_MEMORY_GAME_RIGHT_SKULLKID_WAIT:
msgCtx->ocarinaStaff = Audio_OcaGetDisplayingStaff();
msgCtx->ocarinaStaff = AudioOcarina_GetPlaybackStaff();
if (msgCtx->ocarinaStaff->pos && sOcarinaButtonIndexBufPos == msgCtx->ocarinaStaff->pos - 1) {
sOcarinaButtonIndexBuf[msgCtx->ocarinaStaff->pos - 1] = msgCtx->ocarinaStaff->noteIdx;
sOcarinaButtonIndexBuf[msgCtx->ocarinaStaff->pos] = OCARINA_NOTE_INVALID;
sOcarinaButtonIndexBuf[msgCtx->ocarinaStaff->pos - 1] = msgCtx->ocarinaStaff->buttonIndex;
sOcarinaButtonIndexBuf[msgCtx->ocarinaStaff->pos] = OCARINA_BTN_INVALID;
sOcarinaButtonIndexBufPos++;
}
break;
case MSGMODE_MEMORY_GAME_PLAYER_PLAYING:
Audio_PlaySoundGeneral(NA_SE_SY_METRONOME_LV - SFX_FLAG, &gSfxDefaultPos, 4,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
msgCtx->ocarinaStaff = Audio_OcaGetPlayingStaff();
msgCtx->ocarinaStaff = AudioOcarina_GetPlayingStaff();
if (msgCtx->ocarinaStaff->pos && sOcarinaButtonIndexBufPos == msgCtx->ocarinaStaff->pos - 1) {
sOcarinaButtonIndexBuf[msgCtx->ocarinaStaff->pos - 1] = msgCtx->ocarinaStaff->noteIdx;
sOcarinaButtonIndexBuf[msgCtx->ocarinaStaff->pos] = OCARINA_NOTE_INVALID;
sOcarinaButtonIndexBuf[msgCtx->ocarinaStaff->pos - 1] = msgCtx->ocarinaStaff->buttonIndex;
sOcarinaButtonIndexBuf[msgCtx->ocarinaStaff->pos] = OCARINA_BTN_INVALID;
sOcarinaButtonIndexBufPos++;
}
if (msgCtx->ocarinaStaff->state == 0xFF) {
// "Musical round failed!!!!!!!!!"
osSyncPrintf("輪唱失敗!!!!!!!!!\n");
AudioOcarina_SetInstrument(0);
AudioOcarina_SetInstrument(OCARINA_INSTRUMENT_OFF);
Audio_PlaySoundGeneral(NA_SE_SY_OCARINA_ERROR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
msgCtx->stateTimer = 10;
@@ -4103,18 +4112,18 @@ void Message_DrawMain(PlayState* play, Gfx** p) {
}
break;
case MSGMODE_MEMORY_GAME_ROUND_SUCCESS:
msgCtx->ocarinaStaff = Audio_OcaGetPlayingStaff();
msgCtx->ocarinaStaff = AudioOcarina_GetPlayingStaff();
if (msgCtx->ocarinaStaff->pos && sOcarinaButtonIndexBufPos == msgCtx->ocarinaStaff->pos - 1) {
sOcarinaButtonIndexBuf[msgCtx->ocarinaStaff->pos - 1] = msgCtx->ocarinaStaff->noteIdx;
sOcarinaButtonIndexBuf[msgCtx->ocarinaStaff->pos] = OCARINA_NOTE_INVALID;
sOcarinaButtonIndexBuf[msgCtx->ocarinaStaff->pos - 1] = msgCtx->ocarinaStaff->buttonIndex;
sOcarinaButtonIndexBuf[msgCtx->ocarinaStaff->pos] = OCARINA_BTN_INVALID;
sOcarinaButtonIndexBufPos++;
}
msgCtx->stateTimer--;
if (msgCtx->stateTimer == 0) {
if (Audio_OcaMemoryGameGenNote() != 1) {
if (AudioOcarina_MemoryGameNextNote() != 1) {
Audio_PlaySoundGeneral(NA_SE_SY_METRONOME, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
msgCtx->ocarinaStaff = Audio_OcaGetPlayingStaff();
msgCtx->ocarinaStaff = AudioOcarina_GetPlayingStaff();
msgCtx->ocarinaStaff->pos = sOcarinaButtonIndexBufPos = 0;
Message_ResetOcarinaNoteState();
msgCtx->msgMode = MSGMODE_MEMORY_GAME_START_NEXT_ROUND;
@@ -4130,25 +4139,25 @@ void Message_DrawMain(PlayState* play, Gfx** p) {
break;
case MSGMODE_MEMORY_GAME_START_NEXT_ROUND:
if (!Audio_IsSfxPlaying(NA_SE_SY_METRONOME)) {
msgCtx->ocarinaStaff = Audio_OcaGetDisplayingStaff();
msgCtx->ocarinaStaff = AudioOcarina_GetPlaybackStaff();
msgCtx->ocarinaStaff->pos = sOcarinaButtonIndexBufPos = 0;
Message_ResetOcarinaNoteState();
Audio_OcaSetSongPlayback(OCARINA_SONG_MEMORY_GAME + 1, 1);
AudioOcarina_SetPlaybackSong(OCARINA_SONG_MEMORY_GAME + 1, 1);
}
break;
case MSGMODE_FROGS_START:
AudioOcarina_SetInstrument(1);
msgCtx->ocarinaStaff = Audio_OcaGetPlayingStaff();
AudioOcarina_SetInstrument(OCARINA_INSTRUMENT_DEFAULT);
msgCtx->ocarinaStaff = AudioOcarina_GetPlayingStaff();
msgCtx->ocarinaStaff->pos = sOcarinaButtonIndexBufPos = 0;
play->msgCtx.ocarinaMode = OCARINA_MODE_01;
Message_ResetOcarinaNoteState();
func_800ECC04(sOcarinaSongBitFlags + 0xC000);
AudioOcarina_Start(sOcarinaSongBitFlags + 0xC000);
msgCtx->msgMode = MSGMODE_FROGS_PLAYING;
break;
case MSGMODE_FROGS_PLAYING:
msgCtx->ocarinaStaff = Audio_OcaGetPlayingStaff();
msgCtx->ocarinaStaff = AudioOcarina_GetPlayingStaff();
if (msgCtx->ocarinaStaff->pos && sOcarinaButtonIndexBufPos == msgCtx->ocarinaStaff->pos - 1) {
msgCtx->lastOcaNoteIdx = msgCtx->ocarinaStaff->noteIdx;
msgCtx->lastOcaNoteIdx = msgCtx->ocarinaStaff->buttonIndex;
msgCtx->ocarinaStaff->pos = sOcarinaButtonIndexBufPos = 0;
Message_ResetOcarinaNoteState();
msgCtx->msgMode = MSGMODE_FROGS_WAITING;
@@ -4209,19 +4218,19 @@ void Message_DrawMain(PlayState* play, Gfx** p) {
if (msgCtx->msgMode == MSGMODE_SONG_PLAYBACK) {
g = msgCtx->ocarinaAction - OCARINA_ACTION_PLAYBACK_MINUET;
r = gOcarinaSongNotes[g].len;
r = gOcarinaSongButtons[g].numButtons;
for (notePosX = R_OCARINA_NOTES_XPOS, i = 0; i < r; i++, notePosX += R_OCARINA_NOTES_XPOS_OFFSET) {
gDPPipeSync(gfx++);
gDPSetPrimColor(gfx++, 0, 0, 150, 150, 150, 150);
gDPSetEnvColor(gfx++, 10, 10, 10, 0);
gDPLoadTextureBlock(gfx++, sOcarinaNoteTextures[gOcarinaSongNotes[g].notesIdx[i]], G_IM_FMT_IA,
G_IM_SIZ_8b, 16, 16, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP,
G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD);
gDPLoadTextureBlock(gfx++, sOcarinaNoteTextures[gOcarinaSongButtons[g].buttonsIndex[i]],
G_IM_FMT_IA, G_IM_SIZ_8b, 16, 16, 0, G_TX_NOMIRROR | G_TX_WRAP,
G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD);
gSPTextureRectangle(
gfx++, notePosX << 2, R_OCARINA_NOTES_YPOS(gOcarinaSongNotes[g].notesIdx[i]) << 2,
(notePosX + 16) << 2, (R_OCARINA_NOTES_YPOS(gOcarinaSongNotes[g].notesIdx[i]) + 16) << 2,
gfx++, notePosX << 2, R_OCARINA_NOTES_YPOS(gOcarinaSongButtons[g].buttonsIndex[i]) << 2,
(notePosX + 16) << 2, (R_OCARINA_NOTES_YPOS(gOcarinaSongButtons[g].buttonsIndex[i]) + 16) << 2,
G_TX_RENDERTILE, 0, 0, 1 << 10, 1 << 10);
}
}
@@ -4229,7 +4238,7 @@ void Message_DrawMain(PlayState* play, Gfx** p) {
if (msgCtx->msgMode != MSGMODE_SCARECROW_LONG_RECORDING_START &&
msgCtx->msgMode != MSGMODE_MEMORY_GAME_START) {
for (notePosX = R_OCARINA_NOTES_XPOS, i = 0; i < 8; i++, notePosX += R_OCARINA_NOTES_XPOS_OFFSET) {
if (sOcarinaButtonIndexBuf[i] == OCARINA_NOTE_INVALID) {
if (sOcarinaButtonIndexBuf[i] == OCARINA_BTN_INVALID) {
break;
}
@@ -4245,21 +4254,21 @@ void Message_DrawMain(PlayState* play, Gfx** p) {
// Since I don't know what exactly these Env vars are used for, I elected keep their usage
// consistent with the note played, rather than having AEnv be used for whatever note A happens to
// play at the moment and CEnv for everything else, even with custom controls enabled.
if (sOcarinaButtonIndexBuf[i] == OCARINA_NOTE_D4) {
if (sOcarinaButtonIndexBuf[i] == OCARINA_BTN_A) {
gDPSetPrimColor(gfx++, 0, 0, sOcarinaNoteABtnPrim.r, sOcarinaNoteABtnPrim.g,
sOcarinaNoteABtnPrim.b, sOcarinaNotesAlphaValues[i]);
gDPSetEnvColor(gfx++, sOcarinaNoteABtnEnv.r, sOcarinaNoteABtnEnv.g, sOcarinaNoteABtnEnv.b, 0);
} else {
if (sOcarinaButtonIndexBuf[i] == OCARINA_NOTE_D5) {
if (sOcarinaButtonIndexBuf[i] == OCARINA_BTN_C_UP) {
gDPSetPrimColor(gfx++, 0, 0, sOcarinaNoteCUpBtnPrim.r, sOcarinaNoteCUpBtnPrim.g,
sOcarinaNoteCUpBtnPrim.b, sOcarinaNotesAlphaValues[i]);
} else if (sOcarinaButtonIndexBuf[i] == OCARINA_NOTE_B4) {
} else if (sOcarinaButtonIndexBuf[i] == OCARINA_BTN_C_LEFT) {
gDPSetPrimColor(gfx++, 0, 0, sOcarinaNoteCLeftBtnPrim.r, sOcarinaNoteCLeftBtnPrim.g,
sOcarinaNoteCLeftBtnPrim.b, sOcarinaNotesAlphaValues[i]);
} else if (sOcarinaButtonIndexBuf[i] == OCARINA_NOTE_A4) {
} else if (sOcarinaButtonIndexBuf[i] == OCARINA_BTN_C_RIGHT) {
gDPSetPrimColor(gfx++, 0, 0, sOcarinaNoteCRightBtnPrim.r, sOcarinaNoteCRightBtnPrim.g,
sOcarinaNoteCRightBtnPrim.b, sOcarinaNotesAlphaValues[i]);
} else if (sOcarinaButtonIndexBuf[i] == OCARINA_NOTE_F4) {
} else if (sOcarinaButtonIndexBuf[i] == OCARINA_BTN_C_DOWN) {
gDPSetPrimColor(gfx++, 0, 0, sOcarinaNoteCDownBtnPrim.r, sOcarinaNoteCDownBtnPrim.g,
sOcarinaNoteCDownBtnPrim.b, sOcarinaNotesAlphaValues[i]);
}
@@ -4689,7 +4698,7 @@ void Message_Update(PlayState* play) {
case MSGMODE_PAUSED:
break;
default:
msgCtx->lastOcaNoteIdx = OCARINA_NOTE_INVALID;
msgCtx->lastOcaNoteIdx = OCARINA_BTN_INVALID;
break;
}
}
+2 -2
View File
@@ -159,9 +159,9 @@ void Sram_OpenSave() {
osSyncPrintf(VT_FGCOL(BLUE));
osSyncPrintf("\n====================================================================\n");
memcpy(gScarecrowCustomSongPtr, gSaveContext.scarecrowLongSong, sizeof(gSaveContext.scarecrowLongSong));
memcpy(gScarecrowLongSongPtr, gSaveContext.scarecrowLongSong, sizeof(gSaveContext.scarecrowLongSong));
ptr = (u8*)gScarecrowCustomSongPtr;
ptr = (u8*)gScarecrowLongSongPtr;
for (i = 0; i < ARRAY_COUNT(gSaveContext.scarecrowLongSong); i++, ptr++) {
osSyncPrintf("%d, ", *ptr);
}
+13 -13
View File
@@ -207,7 +207,7 @@ static u8 sJumpOrder[] = {
};
static u8 sOcarinaNotes[] = {
OCARINA_NOTE_D4, OCARINA_NOTE_F4, OCARINA_NOTE_A4, OCARINA_NOTE_B4, OCARINA_NOTE_D5,
OCARINA_BTN_A, OCARINA_BTN_C_DOWN, OCARINA_BTN_C_RIGHT, OCARINA_BTN_C_LEFT, OCARINA_BTN_C_UP,
};
void EnFr_OrientUnderwater(EnFr* this) {
@@ -703,19 +703,19 @@ void EnFr_ListeningToOcarinaNotes(EnFr* this, PlayState* play) {
break;
case OCARINA_MODE_01: // Ocarina note played, but no song played
switch (play->msgCtx.lastOcaNoteIdx) { // Jumping frogs in open ocarina based on ocarina note played
case OCARINA_NOTE_D4:
case OCARINA_BTN_A:
EnFr_SetupJumpingUp(this, FROG_BLUE);
break;
case OCARINA_NOTE_F4:
case OCARINA_BTN_C_DOWN:
EnFr_SetupJumpingUp(this, FROG_YELLOW);
break;
case OCARINA_NOTE_A4:
case OCARINA_BTN_C_RIGHT:
EnFr_SetupJumpingUp(this, FROG_RED);
break;
case OCARINA_NOTE_B4:
case OCARINA_BTN_C_LEFT:
EnFr_SetupJumpingUp(this, FROG_PURPLE);
break;
case OCARINA_NOTE_D5:
case OCARINA_BTN_C_UP:
EnFr_SetupJumpingUp(this, FROG_WHITE);
break;
}
@@ -882,7 +882,7 @@ void EnFr_OcarinaMistake(EnFr* this, PlayState* play) {
Message_CloseTextbox(play);
this->reward = GI_NONE;
Sfx_PlaySfxCentered(NA_SE_SY_OCARINA_ERROR);
AudioOcarina_SetInstrument(0);
AudioOcarina_SetInstrument(OCARINA_INSTRUMENT_OFF);
sEnFrPointers.flags = 12;
EnFr_DeactivateButterfly();
this->actionFunc = EnFr_Deactivate;
@@ -921,19 +921,19 @@ void EnFr_ContinueFrogSong(EnFr* this, PlayState* play) {
if (play->msgCtx.msgMode == MSGMODE_FROGS_WAITING) {
play->msgCtx.msgMode = MSGMODE_FROGS_START;
switch (play->msgCtx.lastOcaNoteIdx) {
case OCARINA_NOTE_D4:
case OCARINA_BTN_A:
EnFr_SetupJumpingUp(this, FROG_BLUE);
break;
case OCARINA_NOTE_F4:
case OCARINA_BTN_C_DOWN:
EnFr_SetupJumpingUp(this, FROG_YELLOW);
break;
case OCARINA_NOTE_A4:
case OCARINA_BTN_C_RIGHT:
EnFr_SetupJumpingUp(this, FROG_RED);
break;
case OCARINA_NOTE_B4:
case OCARINA_BTN_C_LEFT:
EnFr_SetupJumpingUp(this, FROG_PURPLE);
break;
case OCARINA_NOTE_D5:
case OCARINA_BTN_C_UP:
EnFr_SetupJumpingUp(this, FROG_WHITE);
}
if (EnFr_IsFrogSongComplete(this, play)) {
@@ -952,7 +952,7 @@ void EnFr_SetupReward(EnFr* this, PlayState* play, u8 unkCondition) {
Sfx_PlaySfxCentered(NA_SE_SY_CORRECT_CHIME);
}
AudioOcarina_SetInstrument(0);
AudioOcarina_SetInstrument(OCARINA_INSTRUMENT_OFF);
play->msgCtx.msgMode = MSGMODE_PAUSED;
this->actionFunc = EnFr_PrintTextBox;
}
@@ -106,30 +106,30 @@ void func_80A8F320(EnKakasi* this, PlayState* play, s16 arg) {
ocarinaNote = this->unk_1A6;
}
switch (ocarinaNote) {
case OCARINA_NOTE_D4:
case OCARINA_BTN_A:
this->unk_19A++;
if (this->unk_1A4 == 0) {
this->unk_1A4 = 1;
Audio_PlayActorSound2(&this->actor, NA_SE_EV_KAKASHI_ROLL);
}
break;
case OCARINA_NOTE_F4:
case OCARINA_BTN_C_DOWN:
this->unk_19A++;
this->unk_1B8 = 1.0f;
break;
case OCARINA_NOTE_A4:
case OCARINA_BTN_C_RIGHT:
this->unk_19A++;
if (this->unk_1AC == 0) {
this->unk_1AC = 0x1388;
}
break;
case OCARINA_NOTE_B4:
case OCARINA_BTN_C_LEFT:
this->unk_19A++;
if (this->unk_1A8 == 0) {
this->unk_1A8 = 0x1388;
}
break;
case OCARINA_NOTE_D5:
case OCARINA_BTN_C_UP:
this->unk_19A++;
this->unk_1B8 = 2.0f;
break;
@@ -109,30 +109,30 @@ void func_80A90EBC(EnKakasi3* this, PlayState* play, s32 arg) {
ocarinaNote = this->unk_1A6;
}
switch (ocarinaNote) {
case OCARINA_NOTE_D4:
case OCARINA_BTN_A:
this->unk_19A++;
if (this->unk_1A4 == 0) {
this->unk_1A4 = 1;
Audio_PlayActorSound2(&this->actor, NA_SE_EV_KAKASHI_ROLL);
}
break;
case OCARINA_NOTE_F4:
case OCARINA_BTN_C_DOWN:
this->unk_19A++;
this->unk_1B8 = 1.0f;
break;
case OCARINA_NOTE_A4:
case OCARINA_BTN_C_RIGHT:
this->unk_19A++;
if (this->unk_1AE == 0x0) {
this->unk_1AE = 0x1388;
}
break;
case OCARINA_NOTE_B4:
case OCARINA_BTN_C_LEFT:
this->unk_19A++;
if (this->unk_1AA == 0x0) {
this->unk_1AA = 0x1388;
}
break;
case OCARINA_NOTE_D5:
case OCARINA_BTN_C_UP:
this->unk_19A++;
this->unk_1B8 = 2.0f;
break;
@@ -1503,8 +1503,8 @@ void EnSkj_WaitForPlayback(EnSkj* this, PlayState* play) {
SKULL_KID_OCARINA_PLAY_NOTES;
}
this->songFailTimer = 160;
AudioOcarina_SetInstrument(6); // related instrument sound (flute?)
Audio_OcaSetSongPlayback(OCARINA_SONG_MEMORY_GAME + 1, 1);
AudioOcarina_SetInstrument(OCARINA_INSTRUMENT_FLUTE);
AudioOcarina_SetPlaybackSong(OCARINA_SONG_MEMORY_GAME + 1, 1);
play->msgCtx.msgMode = MSGMODE_MEMORY_GAME_LEFT_SKULLKID_PLAYING;
play->msgCtx.stateTimer = 2;
}
@@ -1607,7 +1607,7 @@ void EnZl2_Init(Actor* thisx, PlayState* play) {
switch (thisx->params) {
case 1:
Audio_SetSoundBanksMute(0x6F);
Audio_SetSfxBanksMute(0x6F);
break;
case 4:
gSaveContext.subTimerState = SUBTIMER_STATE_OFF;
@@ -205,9 +205,9 @@ void KaleidoScope_DrawQuestStatus(PlayState* play, GraphicsContext* gfxCtx) {
}
D_8082A11C = 0;
AudioOcarina_SetInstrument(1);
func_800ECC04((1 << pauseCtx->ocarinaSongIdx) + 0x8000);
pauseCtx->ocarinaStaff = Audio_OcaGetDisplayingStaff();
AudioOcarina_SetInstrument(OCARINA_INSTRUMENT_DEFAULT);
AudioOcarina_Start((1 << pauseCtx->ocarinaSongIdx) + 0x8000);
pauseCtx->ocarinaStaff = AudioOcarina_GetPlaybackStaff();
pauseCtx->ocarinaStaff->pos = 0;
pauseCtx->ocarinaStaff->state = 0xFF;
VREG(21) = -62;
@@ -216,13 +216,13 @@ void KaleidoScope_DrawQuestStatus(PlayState* play, GraphicsContext* gfxCtx) {
VREG(24) = -46;
VREG(25) = -41;
pauseCtx->unk_1E4 = 8;
AudioOcarina_SetInstrument(0);
AudioOcarina_SetInstrument(OCARINA_INSTRUMENT_OFF);
}
}
} else if (pauseCtx->unk_1E4 == 5) {
if ((pauseCtx->stickRelX != 0) || (pauseCtx->stickRelY != 0)) {
pauseCtx->unk_1E4 = 0;
AudioOcarina_SetInstrument(0);
AudioOcarina_SetInstrument(OCARINA_INSTRUMENT_OFF);
}
} else if (pauseCtx->unk_1E4 == 8) {
if (CHECK_BTN_ALL(input->press.button, BTN_A) && (sp216 >= QUEST_SONG_MINUET) &&
@@ -292,12 +292,12 @@ void KaleidoScope_DrawQuestStatus(PlayState* play, GraphicsContext* gfxCtx) {
VREG(24) = -46;
VREG(25) = -41;
sp216 = pauseCtx->cursorSlot[PAUSE_QUEST];
AudioOcarina_SetInstrument(1);
AudioOcarina_SetInstrument(1);
AudioOcarina_SetInstrument(OCARINA_INSTRUMENT_DEFAULT);
AudioOcarina_SetInstrument(OCARINA_INSTRUMENT_DEFAULT);
pauseCtx->ocarinaSongIdx = gOcarinaSongItemMap[sp216 - QUEST_SONG_MINUET];
Audio_OcaSetSongPlayback(pauseCtx->ocarinaSongIdx + 1, 1);
AudioOcarina_SetPlaybackSong(pauseCtx->ocarinaSongIdx + 1, 1);
pauseCtx->unk_1E4 = 2;
pauseCtx->ocarinaStaff = Audio_OcaGetDisplayingStaff();
pauseCtx->ocarinaStaff = AudioOcarina_GetPlaybackStaff();
pauseCtx->ocarinaStaff->pos = 0;
sp216 = pauseCtx->cursorSlot[PAUSE_QUEST];
KaleidoScope_SetCursorVtx(pauseCtx, sp216 * 4, pauseCtx->questVtx);
@@ -533,12 +533,15 @@ void KaleidoScope_DrawQuestStatus(PlayState* play, GraphicsContext* gfxCtx) {
}
if (pauseCtx->unk_1E4 == 2) {
pauseCtx->ocarinaStaff = Audio_OcaGetDisplayingStaff();
// Draw ocarina buttons as the song playback progresses
// QUEST_QUAD_SONG_NOTE_A1 to QUEST_QUAD_SONG_NOTE_A8
pauseCtx->ocarinaStaff = AudioOcarina_GetPlaybackStaff();
if (pauseCtx->ocarinaStaff->pos != 0) {
if (D_8082A11C + 1 == pauseCtx->ocarinaStaff->pos) {
D_8082A11C++;
D_8082A124[pauseCtx->ocarinaStaff->pos - 1] = pauseCtx->ocarinaStaff->noteIdx;
D_8082A124[pauseCtx->ocarinaStaff->pos - 1] = pauseCtx->ocarinaStaff->buttonIndex;
}
for (sp218 = 0, phi_s3 = 0; sp218 < 8; sp218++, phi_s3 += 4, sp21A += 4) {
@@ -566,16 +569,16 @@ void KaleidoScope_DrawQuestStatus(PlayState* play, GraphicsContext* gfxCtx) {
gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, aButtonColor.r, aButtonColor.g, aButtonColor.b,
Notes_alpha);
} else {
if (D_8082A124[sp218] == OCARINA_NOTE_D5) {
if (D_8082A124[sp218] == OCARINA_BTN_C_UP) {
gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, cUpButtonColor.r, cUpButtonColor.g, cUpButtonColor.b,
Notes_alpha);
} else if (D_8082A124[sp218] == OCARINA_NOTE_B4) {
} else if (D_8082A124[sp218] == OCARINA_BTN_C_LEFT) {
gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, cLeftButtonColor.r, cLeftButtonColor.g,
cLeftButtonColor.b, Notes_alpha);
} else if (D_8082A124[sp218] == OCARINA_NOTE_A4) {
} else if (D_8082A124[sp218] == OCARINA_BTN_C_RIGHT) {
gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, cRightButtonColor.r, cRightButtonColor.g,
cRightButtonColor.b, Notes_alpha);
} else if (D_8082A124[sp218] == OCARINA_NOTE_F4) {
} else if (D_8082A124[sp218] == OCARINA_BTN_C_DOWN) {
gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, cDownButtonColor.r, cDownButtonColor.g,
cDownButtonColor.b, Notes_alpha);
} else {
@@ -595,12 +598,14 @@ void KaleidoScope_DrawQuestStatus(PlayState* play, GraphicsContext* gfxCtx) {
}
}
} else if (((pauseCtx->unk_1E4 >= 4) && (pauseCtx->unk_1E4 <= 6)) || (pauseCtx->unk_1E4 == 8)) {
// Draw the buttons for playing a song
// QUEST_QUAD_SONG_NOTE_A1 to QUEST_QUAD_SONG_NOTE_A8
sp224 = pauseCtx->ocarinaSongIdx;
sp226 = gOcarinaSongNotes[sp224].len;
sp226 = gOcarinaSongButtons[sp224].numButtons;
for (sp218 = sp21A, phi_s3 = 0; phi_s3 < sp226; phi_s3++, sp21A += 4) {
pauseCtx->questVtx[sp21A + 0].v.ob[1] = pauseCtx->questVtx[sp21A + 1].v.ob[1] =
VREG(21 + gOcarinaSongNotes[sp224].notesIdx[phi_s3]);
VREG(21 + gOcarinaSongButtons[sp224].buttonsIndex[phi_s3]);
pauseCtx->questVtx[sp21A + 2].v.ob[1] = pauseCtx->questVtx[sp21A + 3].v.ob[1] =
pauseCtx->questVtx[sp21A + 0].v.ob[1] - 12;
@@ -609,20 +614,20 @@ void KaleidoScope_DrawQuestStatus(PlayState* play, GraphicsContext* gfxCtx) {
if (pauseCtx->unk_1E4 == 8) {
s16 Notes_alpha = 200;
if (gOcarinaSongNotes[sp224].notesIdx[phi_s3] == 0) {
if (gOcarinaSongButtons[sp224].buttonsIndex[phi_s3] == 0) {
gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, aButtonColor.r, aButtonColor.g, aButtonColor.b,
Notes_alpha);
} else {
if (gOcarinaSongNotes[sp224].notesIdx[phi_s3] == OCARINA_NOTE_D5) {
if (gOcarinaSongButtons[sp224].buttonsIndex[phi_s3] == OCARINA_BTN_C_UP) {
gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, cUpButtonColor.r, cUpButtonColor.g, cUpButtonColor.b,
Notes_alpha);
} else if (gOcarinaSongNotes[sp224].notesIdx[phi_s3] == OCARINA_NOTE_B4) {
} else if (gOcarinaSongButtons[sp224].buttonsIndex[phi_s3] == OCARINA_BTN_C_LEFT) {
gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, cLeftButtonColor.r, cLeftButtonColor.g,
cLeftButtonColor.b, Notes_alpha);
} else if (gOcarinaSongNotes[sp224].notesIdx[phi_s3] == OCARINA_NOTE_A4) {
} else if (gOcarinaSongButtons[sp224].buttonsIndex[phi_s3] == OCARINA_BTN_C_RIGHT) {
gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, cRightButtonColor.r, cRightButtonColor.g,
cRightButtonColor.b, Notes_alpha);
} else if (gOcarinaSongNotes[sp224].notesIdx[phi_s3] == OCARINA_NOTE_F4) {
} else if (gOcarinaSongButtons[sp224].buttonsIndex[phi_s3] == OCARINA_BTN_C_DOWN) {
gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, cDownButtonColor.r, cDownButtonColor.g,
cDownButtonColor.b, Notes_alpha);
} else {
@@ -638,21 +643,21 @@ void KaleidoScope_DrawQuestStatus(PlayState* play, GraphicsContext* gfxCtx) {
gSPVertex(POLY_OPA_DISP++, &pauseCtx->questVtx[sp21A], 4, 0);
gDPLoadTextureBlock(POLY_OPA_DISP++, D_8082A130[gOcarinaSongNotes[sp224].notesIdx[phi_s3]], G_IM_FMT_IA,
G_IM_SIZ_8b, 16, 16, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP,
G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD);
gDPLoadTextureBlock(POLY_OPA_DISP++, D_8082A130[gOcarinaSongButtons[sp224].buttonsIndex[phi_s3]],
G_IM_FMT_IA, G_IM_SIZ_8b, 16, 16, 0, G_TX_NOMIRROR | G_TX_WRAP,
G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD);
gSP1Quadrangle(POLY_OPA_DISP++, 0, 2, 3, 1, 0);
}
if (pauseCtx->unk_1E4 != 8) {
pauseCtx->ocarinaStaff = Audio_OcaGetPlayingStaff();
pauseCtx->ocarinaStaff = AudioOcarina_GetPlayingStaff();
if (pauseCtx->ocarinaStaff->pos != 0) {
if (D_8082A11C == (pauseCtx->ocarinaStaff->pos - 1)) {
if ((pauseCtx->ocarinaStaff->noteIdx >= OCARINA_NOTE_D4) &&
(pauseCtx->ocarinaStaff->noteIdx <= OCARINA_NOTE_D5)) {
D_8082A124[pauseCtx->ocarinaStaff->pos - 1] = pauseCtx->ocarinaStaff->noteIdx;
if ((pauseCtx->ocarinaStaff->buttonIndex >= OCARINA_BTN_A) &&
(pauseCtx->ocarinaStaff->buttonIndex <= OCARINA_BTN_C_UP)) {
D_8082A124[pauseCtx->ocarinaStaff->pos - 1] = pauseCtx->ocarinaStaff->buttonIndex;
D_8082A124[pauseCtx->ocarinaStaff->pos] = 0xFF;
D_8082A11C++;
}
@@ -685,16 +690,16 @@ void KaleidoScope_DrawQuestStatus(PlayState* play, GraphicsContext* gfxCtx) {
gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, aButtonColor.r, aButtonColor.g, aButtonColor.b,
Notes_alpha);
} else {
if (gOcarinaSongNotes[sp224].notesIdx[phi_s3] == OCARINA_NOTE_D5) {
if (gOcarinaSongButtons[sp224].buttonsIndex[phi_s3] == OCARINA_BTN_C_UP) {
gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, cUpButtonColor.r, cUpButtonColor.g, cUpButtonColor.b,
Notes_alpha);
} else if (gOcarinaSongNotes[sp224].notesIdx[phi_s3] == OCARINA_NOTE_B4) {
} else if (gOcarinaSongButtons[sp224].buttonsIndex[phi_s3] == OCARINA_BTN_C_LEFT) {
gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, cLeftButtonColor.r, cLeftButtonColor.g,
cLeftButtonColor.b, Notes_alpha);
} else if (gOcarinaSongNotes[sp224].notesIdx[phi_s3] == OCARINA_NOTE_A4) {
} else if (gOcarinaSongButtons[sp224].buttonsIndex[phi_s3] == OCARINA_BTN_C_RIGHT) {
gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, cRightButtonColor.r, cRightButtonColor.g,
cRightButtonColor.b, Notes_alpha);
} else if (gOcarinaSongNotes[sp224].notesIdx[phi_s3] == OCARINA_NOTE_F4) {
} else if (gOcarinaSongButtons[sp224].buttonsIndex[phi_s3] == OCARINA_BTN_C_DOWN) {
gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, cDownButtonColor.r, cDownButtonColor.g,
cDownButtonColor.b, Notes_alpha);
} else {
@@ -721,9 +726,9 @@ void KaleidoScope_DrawQuestStatus(PlayState* play, GraphicsContext* gfxCtx) {
}
D_8082A11C = 0;
AudioOcarina_SetInstrument(1);
func_800ECC04((1 << pauseCtx->ocarinaSongIdx) + 0x8000);
pauseCtx->ocarinaStaff = Audio_OcaGetDisplayingStaff();
AudioOcarina_SetInstrument(OCARINA_INSTRUMENT_DEFAULT);
AudioOcarina_Start((1 << pauseCtx->ocarinaSongIdx) + 0x8000);
pauseCtx->ocarinaStaff = AudioOcarina_GetPlaybackStaff();
pauseCtx->ocarinaStaff->pos = 0;
pauseCtx->ocarinaStaff->state = 0xFE;
pauseCtx->unk_1E4 = 5;
@@ -4291,10 +4291,10 @@ void KaleidoScope_Update(PlayState* play) {
break;
case 2:
pauseCtx->ocarinaStaff = Audio_OcaGetDisplayingStaff();
pauseCtx->ocarinaStaff = AudioOcarina_GetPlaybackStaff();
if (pauseCtx->ocarinaStaff->state == 0) {
pauseCtx->unk_1E4 = 4;
AudioOcarina_SetInstrument(0);
AudioOcarina_SetInstrument(OCARINA_INSTRUMENT_OFF);
}
break;
@@ -4306,10 +4306,10 @@ void KaleidoScope_Update(PlayState* play) {
break;
case 5:
pauseCtx->ocarinaStaff = Audio_OcaGetPlayingStaff();
pauseCtx->ocarinaStaff = AudioOcarina_GetPlayingStaff();
if (CHECK_BTN_ALL(input->press.button, BTN_START)) {
AudioOcarina_SetInstrument(0);
AudioOcarina_SetInstrument(OCARINA_INSTRUMENT_OFF);
Interface_SetDoAction(play, DO_ACTION_NONE);
pauseCtx->state = 0x12;
WREG(2) = -6240;
@@ -4317,7 +4317,7 @@ void KaleidoScope_Update(PlayState* play) {
pauseCtx->unk_1E4 = 0;
break;
} else if (CHECK_BTN_ALL(input->press.button, BTN_B)) {
AudioOcarina_SetInstrument(0);
AudioOcarina_SetInstrument(OCARINA_INSTRUMENT_OFF);
pauseCtx->unk_1E4 = 0;
pauseCtx->mode = 0;
pauseCtx->promptChoice = 0;
@@ -4352,7 +4352,7 @@ void KaleidoScope_Update(PlayState* play) {
if (D_8082B25C == 0) {
pauseCtx->unk_1E4 = D_8082B258;
if (pauseCtx->unk_1E4 == 0) {
AudioOcarina_SetInstrument(0);
AudioOcarina_SetInstrument(OCARINA_INSTRUMENT_OFF);
}
}
break;
@@ -4362,14 +4362,14 @@ void KaleidoScope_Update(PlayState* play) {
case 8:
if (CHECK_BTN_ALL(input->press.button, BTN_START)) {
AudioOcarina_SetInstrument(0);
AudioOcarina_SetInstrument(OCARINA_INSTRUMENT_OFF);
Interface_SetDoAction(play, DO_ACTION_NONE);
pauseCtx->state = 0x12;
WREG(2) = -6240;
func_800F64E0(0);
pauseCtx->unk_1E4 = 0;
} else if (CHECK_BTN_ALL(input->press.button, BTN_B)) {
AudioOcarina_SetInstrument(0);
AudioOcarina_SetInstrument(OCARINA_INSTRUMENT_OFF);
pauseCtx->unk_1E4 = 0;
pauseCtx->mode = 0;
pauseCtx->promptChoice = 0;