diff options
| author | Tharo <17233964+Thar0@users.noreply.github.com> | 2021-11-23 01:20:30 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-11-22 20:20:30 -0500 |
| commit | a497f33bda7686e3aa948898000ecd3a861c5704 (patch) | |
| tree | 23484d614897f25b2d10b465a52c1ce6d34a0c59 /src/code/code_800EC960.c | |
| parent | 03636166b35b4ff8fac5991bea51eccb071f1f31 (diff) | |
z_message_PAL, message_data_static and surrounding doc (#996)
* Initial progress on z_message_PAL, very messy
* Fix merge
* Some more progress
* Fix merge
* More z_message_PAL
* Small progress
* More small progress
* message_data_static files OK
* Prepare z_message_tables
* Matched another function, small updates
* Attempt to use asm-processor static-symbols branch
* Refactor text id declarations
* Begin large text codes parser function
* Fix merge
* Refactor done
* Build OK, add color and highscore names
* Remove encoded text headers and automatically encode during build
* Fix kanfont
* Various cleanups
* DISP macros
* Another match aside data
* Further progress
* Small improvements
* Deduplicate magic values for text control codes, small improvements
* Tiny progress
* Minor cleanups
* Clean up z_message_PAL comment
* Progress on large functions
* Further progress on large functions
* Changes to mkldscript to link .data in the .rodata section
* data OK
* Few improvements
* Use gDPLoadTextureBlock macros where appropriate
* rm z_message_tables, progress on large functions
* 2 more matches
* Improvements
* Small progress
* More progress on big function
* progress
* match func_80107980
* match Message_Update
* match func_8010BED8
* done
* Progress on remaining large functions
* Small progress on largest function
* Another match, extract text and move to assets, improve text build system
* Small nonmatchings improvements
* docs wip
* Largest function maybe equivalent
* Fix merge
* Document do_action values, largest function is almost instruction-matching
* Rename NAVI do_action to NONE, as that appears to be how that value is used in practice
* Fix merge
* one match
* Last function is instruction-matching
* Fix
* Improvements thanks to engineer124
* Stack matched thanks to petrie911, now just a/v/low t regalloc issues, some cleanup
* More variables labeled, use text state enum everywhere
* More labels and names
* Fix
* Actor_IsTalking -> Actor_TalkRequested
* Match func_8010C39C and remove unused asm
* More docs
* Mostly ocarina related docs
* All msgModes named
* Fix assetclean
* Cleanup
* Extraction fixes and headers
* Suggestions
* Review suggestions
* Change text extraction again, only extract if the headers do not already exist
* Fix
* Use ast for charmap, fix assetclean for real this time
* Review suggestions
* BGM ids and ran formatter
* Review comments
* rename include_readonly to include_data_with_rodata
* Remove leading 0s in number directives
* Review suggestions for message_data_static
* textbox pos enum comments, rename several enum names from Message to TextBox
Co-authored-by: Thar0 <maximilianc64@gmail.com>
Co-authored-by: Zelllll <56516451+Zelllll@users.noreply.github.com>
Co-authored-by: petrie911 <pmontag@DESKTOP-LG8A167.localdomain>
Co-authored-by: Roman971 <romanlasnier@hotmail.com>
Diffstat (limited to 'src/code/code_800EC960.c')
| -rw-r--r-- | src/code/code_800EC960.c | 427 |
1 files changed, 269 insertions, 158 deletions
diff --git a/src/code/code_800EC960.c b/src/code/code_800EC960.c index 3dad66642..811e16447 100644 --- a/src/code/code_800EC960.c +++ b/src/code/code_800EC960.c @@ -82,9 +82,6 @@ typedef enum { #define SCROLL_PRINT_BUF_SIZE 25 -#define OCA_SONGS_SCARECROW 12 -#define OCA_SONGS_MEMORYGAME 13 - #define SFX_PLAYER_CHANNEL_OCARINA 13 extern f32 D_8012F6B4[]; // from audio_synthesis @@ -219,8 +216,8 @@ u8 sOcaMinigameAppendPos = 0; u8 sOcaMinigameEndPos = 0; u8 sOcaMinigameNoteCnts[] = { 5, 6, 8 }; -OcarinaNote sOcarinaSongs[14][20] = { - // minuet +OcarinaNote sOcarinaSongs[OCARINA_SONG_MAX][20] = { + // Minuet { { 2, 0, 18, 86, 0, 0, 0 }, { 14, 0, 18, 92, 0, 0, 0 }, @@ -231,7 +228,7 @@ OcarinaNote sOcarinaSongs[14][20] = { { 0xFF, 0, 0, 86, 0, 0, 0 }, }, - // bolero + // Bolero { { 5, 0, 15, 80, 0, 0, 0 }, { 2, 0, 15, 72, 0, 0, 0 }, @@ -244,7 +241,7 @@ OcarinaNote sOcarinaSongs[14][20] = { { 0xFF, 0, 0, 66, 0, 0, 0 }, }, - // serenade + // Serenade { { 2, 0, 36, 60, 0, 0, 0 }, { 5, 0, 36, 78, 0, 0, 0 }, @@ -255,7 +252,7 @@ OcarinaNote sOcarinaSongs[14][20] = { { 0xFF, 0, 0, 90, 0, 0, 0 }, }, - // requiem + // Requiem { { 2, 0, 45, 88, 0, 0, 0 }, { 5, 0, 23, 86, 0, 0, 0 }, @@ -266,7 +263,7 @@ OcarinaNote sOcarinaSongs[14][20] = { { 0xFF, 0, 0, 94, 0, 0, 0 }, }, - // nocturne + // Nocturne { { 11, 0, 36, 88, 0, 0, 0 }, { 9, 0, 33, 84, 0, 0, 0 }, @@ -279,7 +276,7 @@ OcarinaNote sOcarinaSongs[14][20] = { { 0xFF, 0, 0, 96, 0, 0, 0 }, }, - // prelude + // Prelude { { 14, 0, 15, 84, 0, 0, 0 }, { 9, 0, 45, 88, 0, 0, 0 }, @@ -291,7 +288,7 @@ OcarinaNote sOcarinaSongs[14][20] = { { 0xFF, 0, 0, 90, 0, 0, 0 }, }, - // sarias + // Sarias { { 5, 0, 17, 84, 0, 0, 0 }, { 9, 0, 17, 88, 0, 0, 0 }, @@ -302,7 +299,7 @@ OcarinaNote sOcarinaSongs[14][20] = { { 0xFF, 0, 0, 90, 0, 0, 0 }, }, - // epona + // Epona { { 14, 0, 18, 84, 0, 0, 0 }, { 11, 0, 18, 88, 0, 0, 0 }, @@ -313,7 +310,7 @@ OcarinaNote sOcarinaSongs[14][20] = { { 0xFF, 0, 0, 90, 0, 0, 0 }, }, - // lullaby + // Lullaby { { 11, 0, 51, 84, 0, 0, 0 }, { 14, 0, 25, 88, 0, 0, 0 }, @@ -324,7 +321,7 @@ OcarinaNote sOcarinaSongs[14][20] = { { 0xFF, 0, 0, 90, 0, 0, 0 }, }, - // suns + // Suns { { 9, 0, 12, 84, 0, 0, 0 }, { 5, 0, 13, 88, 0, 0, 0 }, @@ -336,7 +333,7 @@ OcarinaNote sOcarinaSongs[14][20] = { { 0xFF, 0, 0, 90, 0, 0, 0 }, }, - // song of time + // Song of Time { { 9, 0, 32, 84, 0, 0, 0 }, { 2, 0, 65, 88, 0, 0, 0 }, @@ -347,7 +344,7 @@ OcarinaNote sOcarinaSongs[14][20] = { { 0xFF, 0, 0, 90, 0, 0, 0 }, }, - // storms + // Storms { { 2, 0, 11, 84, 0, 0, 0 }, { 5, 0, 11, 88, 0, 0, 0 }, @@ -358,13 +355,13 @@ OcarinaNote sOcarinaSongs[14][20] = { { 0xFF, 0, 0, 90, 0, 0, 0 }, }, - // scarecrow + // Scarecrow { { 2, 0, 3, 0, 0, 0, 0 }, { 0xFF, 0, 0, 255, 0, 0, 0 }, }, - // OCA_SONGS_MEMORYGAME + // Lost Woods Memory Game { { 2, 0, 3, 0, 0, 0, 0 }, { 0xFF, 0, 0, 0, 0, 0, 0 }, @@ -372,9 +369,13 @@ OcarinaNote sOcarinaSongs[14][20] = { }; OcarinaNote* sPlaybackSong = sOcarinaSongs[0]; -u8 D_80131844[14] = { 0, 3, 2, 1, 3, 2, 1, 0, 1, 0, 1, 2, 3, 0 }; -u8* gFrogsSongPtr = D_80131844; -u8 D_80131858 = 0; // "REC" +u8 sFrogsSongNotes[14] = { + OCARINA_NOTE_A, OCARINA_NOTE_C_LEFT, OCARINA_NOTE_C_RIGHT, OCARINA_NOTE_C_DOWN, OCARINA_NOTE_C_LEFT, + OCARINA_NOTE_C_RIGHT, OCARINA_NOTE_C_DOWN, OCARINA_NOTE_A, OCARINA_NOTE_C_DOWN, OCARINA_NOTE_A, + OCARINA_NOTE_C_DOWN, OCARINA_NOTE_C_RIGHT, OCARINA_NOTE_C_LEFT, OCARINA_NOTE_A, +}; +u8* gFrogsSongPtr = sFrogsSongNotes; +u8 sRecordingState = 0; u8 sRecordSongPos = 0; u32 D_80131860 = 0; u8 D_80131864 = 0; @@ -392,26 +393,137 @@ OcarinaNote sPierresSong[108] = { }; OcarinaNote* gScarecrowCustomSongPtr = sPierresSong; -u8* gScarecrowSpawnSongPtr = (u8*)&sOcarinaSongs[OCA_SONGS_SCARECROW]; -OcarinaNote* D_80131BEC = sOcarinaSongs[OCA_SONGS_MEMORYGAME]; +u8* gScarecrowSpawnSongPtr = (u8*)&sOcarinaSongs[OCARINA_SONG_SCARECROW]; +OcarinaNote* D_80131BEC = sOcarinaSongs[OCARINA_SONG_MEMORY_GAME]; u8 sNoteValueIndexMap[16] = { 0, 0, 0, 0, 1, 1, 1, 2, 2, 2, 5, 3, 3, 4, 4, 4 }; -// clang-format off -OcarinaSongInfo gOcarinaSongNotes[14] = { - { 6, { 0, 4, 3, 2, 3, 2 }}, - { 8, { 1, 0, 1, 0, 2, 1, 2, 1 }}, - { 5, { 0, 1, 2, 2, 3 }}, - { 6, { 0, 1, 0, 2, 1, 0 }}, - { 7, { 3, 2, 2, 0, 3, 2, 1 }}, - { 6, { 4, 2, 4, 2, 3, 4 }}, - { 6, { 1, 2, 3, 1, 2, 3 }}, - { 6, { 4, 3, 2, 4, 3, 2 }}, - { 6, { 3, 4, 2, 3, 4, 2 }}, - { 6, { 2, 1, 4, 2, 1, 4 }}, - { 6, { 2, 0, 1, 2, 0, 1 }}, - { 6, { 0, 1, 4, 0, 1, 4 }}, - { 8, { 0, 0, 0, 0, 0, 0, 0, 0 }}, - { 0, { 0, 0, 0, 0, 0, 0, 0, 0 }}, +OcarinaSongInfo gOcarinaSongNotes[OCARINA_SONG_MAX] = { + // Minuet + { 6, + { + OCARINA_NOTE_A, + OCARINA_NOTE_C_UP, + OCARINA_NOTE_C_LEFT, + OCARINA_NOTE_C_RIGHT, + OCARINA_NOTE_C_LEFT, + OCARINA_NOTE_C_RIGHT, + } }, + // Bolero + { 8, + { + OCARINA_NOTE_C_DOWN, + OCARINA_NOTE_A, + OCARINA_NOTE_C_DOWN, + OCARINA_NOTE_A, + OCARINA_NOTE_C_RIGHT, + OCARINA_NOTE_C_DOWN, + OCARINA_NOTE_C_RIGHT, + OCARINA_NOTE_C_DOWN, + } }, + // Serenade + { 5, + { + OCARINA_NOTE_A, + OCARINA_NOTE_C_DOWN, + OCARINA_NOTE_C_RIGHT, + OCARINA_NOTE_C_RIGHT, + OCARINA_NOTE_C_LEFT, + } }, + // Requiem + { 6, + { + OCARINA_NOTE_A, + OCARINA_NOTE_C_DOWN, + OCARINA_NOTE_A, + OCARINA_NOTE_C_RIGHT, + OCARINA_NOTE_C_DOWN, + OCARINA_NOTE_A, + } }, + // Nocturne + { 7, + { + OCARINA_NOTE_C_LEFT, + OCARINA_NOTE_C_RIGHT, + OCARINA_NOTE_C_RIGHT, + OCARINA_NOTE_A, + OCARINA_NOTE_C_LEFT, + OCARINA_NOTE_C_RIGHT, + OCARINA_NOTE_C_DOWN, + } }, + // Prelude + { 6, + { + OCARINA_NOTE_C_UP, + OCARINA_NOTE_C_RIGHT, + OCARINA_NOTE_C_UP, + OCARINA_NOTE_C_RIGHT, + OCARINA_NOTE_C_LEFT, + OCARINA_NOTE_C_UP, + } }, + // Sarias + { 6, + { + OCARINA_NOTE_C_DOWN, + OCARINA_NOTE_C_RIGHT, + OCARINA_NOTE_C_LEFT, + OCARINA_NOTE_C_DOWN, + OCARINA_NOTE_C_RIGHT, + OCARINA_NOTE_C_LEFT, + } }, + // Epona + { 6, + { + OCARINA_NOTE_C_UP, + OCARINA_NOTE_C_LEFT, + OCARINA_NOTE_C_RIGHT, + OCARINA_NOTE_C_UP, + OCARINA_NOTE_C_LEFT, + OCARINA_NOTE_C_RIGHT, + } }, + // Lullaby + { 6, + { + OCARINA_NOTE_C_LEFT, + OCARINA_NOTE_C_UP, + OCARINA_NOTE_C_RIGHT, + OCARINA_NOTE_C_LEFT, + OCARINA_NOTE_C_UP, + OCARINA_NOTE_C_RIGHT, + } }, + // Suns + { 6, + { + OCARINA_NOTE_C_RIGHT, + OCARINA_NOTE_C_DOWN, + OCARINA_NOTE_C_UP, + OCARINA_NOTE_C_RIGHT, + OCARINA_NOTE_C_DOWN, + OCARINA_NOTE_C_UP, + } }, + // Song of Time + { 6, + { + OCARINA_NOTE_C_RIGHT, + OCARINA_NOTE_A, + OCARINA_NOTE_C_DOWN, + OCARINA_NOTE_C_RIGHT, + OCARINA_NOTE_A, + OCARINA_NOTE_C_DOWN, + } }, + // Storms + { 6, + { + OCARINA_NOTE_A, + OCARINA_NOTE_C_DOWN, + OCARINA_NOTE_C_UP, + OCARINA_NOTE_A, + OCARINA_NOTE_C_DOWN, + OCARINA_NOTE_C_UP, + } }, + // Scarecrow + { 8, { 0, 0, 0, 0, 0, 0, 0, 0 } }, + // Lost Woods Memory Game + { 0, { 0, 0, 0, 0, 0, 0, 0, 0 } }, }; // clang-format on @@ -454,9 +566,9 @@ u8 D_8016B9F3; u8 D_8016B9F4; u16 D_8016B9F6; -OcarinaStaff D_8016B9F8; // playing along staff? -OcarinaStaff sDisplayedStaff; // displayed staff? -OcarinaStaff D_8016BA00; // ?? note and status not updated, pos updated as you play +OcarinaStaff sPlayingStaff; +OcarinaStaff sDisplayedStaff; +OcarinaStaff sRecordingStaff; u32 D_8016BA04; typedef struct { s8 x; @@ -474,7 +586,7 @@ u8 sOcarinaHasStartedSong; u8 sOcarinaSongNoteStartIdx; u8 sOcarinaSongCnt; u16 sOcarinaAvailSongs; -u8 D_8016BA2E; +u8 sStaffPlayingPos; u16 sLearnSongPos[0x10]; u16 D_8016BA50[0x10]; u16 D_8016BA70[0x10]; @@ -547,7 +659,7 @@ f32 Audio_OcaAdjStick(s8 inp) { return ret; } -u8 func_800ECAF0(void) { +u8 Audio_OcaGetPlayingState(void) { u8 ret; if (D_80131878 != 0) { @@ -585,7 +697,7 @@ void func_800ECB7C(u8 songIdx) { while (savedSongIdx < 8 && scarecrowSongIdx < 0x10) { noteIdx = sOcarinaSongs[songIdx][scarecrowSongIdx++].noteIdx; if (noteIdx != 0xFF) { - gOcarinaSongNotes[OCA_SONGS_SCARECROW].notesIdx[savedSongIdx++] = sNoteValueIndexMap[noteIdx]; + gOcarinaSongNotes[OCARINA_SONG_SCARECROW].notesIdx[savedSongIdx++] = sNoteValueIndexMap[noteIdx]; } } } @@ -594,15 +706,15 @@ void func_800ECB7C(u8 songIdx) { void func_800ECC04(u16 flg) { u8 i; - if ((sOcarinaSongs[OCA_SONGS_SCARECROW][1].volume != 0xFF) && ((flg & 0xFFF) == 0xFFF)) { + if ((sOcarinaSongs[OCARINA_SONG_SCARECROW][1].volume != 0xFF) && ((flg & 0xFFF) == 0xFFF)) { flg |= 0x1000; } - if ((flg == 0xCFFF) && (sOcarinaSongs[OCA_SONGS_SCARECROW][1].volume != 0xFF)) { + if ((flg == 0xCFFF) && (sOcarinaSongs[OCARINA_SONG_SCARECROW][1].volume != 0xFF)) { flg = 0xDFFF; } - if ((flg == 0xFFF) && (sOcarinaSongs[OCA_SONGS_SCARECROW][1].volume != 0xFF)) { + if ((flg == 0xFFF) && (sOcarinaSongs[OCARINA_SONG_SCARECROW][1].volume != 0xFF)) { flg = 0x1FFF; } @@ -617,8 +729,8 @@ void func_800ECC04(u16 flg) { D_8013187C = 8; sOcarinaHasStartedSong = 0; D_80131878 = 0; - D_8016BA2E = 0; - D_8016B9F8.state = func_800ECAF0(); + sStaffPlayingPos = 0; + sPlayingStaff.state = Audio_OcaGetPlayingState(); sOcarinaInpEnabled = 1; D_80130F4C = 0; for (i = 0; i < 0xE; i++) { @@ -637,8 +749,7 @@ void func_800ECC04(u16 flg) { } if (flg & 0xD000) { - func_800ECB7C(0xC); - return; + func_800ECB7C(OCARINA_SONG_SCARECROW); } } else { D_80130F3C = 0; @@ -707,7 +818,8 @@ void func_800ECDF8(void) { if (sCurOcarinaBtnVal != sLearnSongExpectedNote[i]) { sOcarinaAvailSongs ^= sh; } - while (prevNote->noteIdx == note->noteIdx || (note->noteIdx == 0xFF && note->unk_02 != 0)) { + while (prevNote->noteIdx == note->noteIdx || + (note->noteIdx == OCARINA_NOTE_INVALID && note->unk_02 != 0)) { D_8016BA70[i] += note->unk_02; prevNote = &sOcarinaSongs[i][sLearnSongPos[i]]; note = &sOcarinaSongs[i][sLearnSongPos[i] + 1]; @@ -722,7 +834,7 @@ void func_800ECDF8(void) { } } - if (sOcarinaAvailSongs == 0 && D_8016BA2E >= D_8013187C) { + if (sOcarinaAvailSongs == 0 && sStaffPlayingPos >= D_8013187C) { sOcarinaInpEnabled = 0; if (CHECK_BTN_ANY(D_80130F3C, BTN_B) && sCurOcarinaBtnVal == sOcarinaSongs[i][0].noteIdx) { D_80130F4C = D_80130F3C; @@ -734,7 +846,7 @@ void func_800ECDF8(void) { if (!inputChanged) { sLearnSongLastBtn = sCurOcarinaBtnVal; - D_8016BA2E += sp57 + 1; + sStaffPlayingPos += sp57 + 1; } } } @@ -754,9 +866,9 @@ void func_800ED200(void) { if (sOcarinaHasStartedSong) { if ((sPrevOcarinaNoteVal != sCurOcarinaBtnVal) && (sCurOcarinaBtnVal != 0xFF)) { - D_8016BA2E++; - if (D_8016BA2E >= 9) { - D_8016BA2E = 1; + sStaffPlayingPos++; + if (sStaffPlayingPos >= 9) { + sStaffPlayingPos = 1; } if (sOcarinaSongAppendPos == 8) { @@ -839,17 +951,17 @@ void func_800ED458(s32 arg0) { sCurOcarinaBtnIdx = 4; } - if (sCurOcarinaBtnVal != 0xFF && sCurOcarinaBtnPress & 0x10 && D_80131858 != 2) { + if (sCurOcarinaBtnVal != 0xFF && sCurOcarinaBtnPress & 0x10 && sRecordingState != 2) { sCurOcarinaBtnIdx += 0x80; sCurOcarinaBtnVal++; } - if ((sCurOcarinaBtnVal != 0xFF) && (sCurOcarinaBtnPress & 0x2000) && (D_80131858 != 2)) { + if ((sCurOcarinaBtnVal != 0xFF) && (sCurOcarinaBtnPress & 0x2000) && (sRecordingState != 2)) { sCurOcarinaBtnIdx += 0x40; sCurOcarinaBtnVal--; } - if (D_80131858 != 2) { + if (sRecordingState != 2) { D_80130F2C = sCurOcaStick.y; D_80130F24 = Audio_OcaAdjStick(D_80130F2C); @@ -874,7 +986,7 @@ void func_800ED848(u8 inputEnabled) { sOcarinaInpEnabled = inputEnabled; } -void func_800ED858(u8 arg0) { +void Audio_OcaSetInstrument(u8 arg0) { if (D_80130F10 == arg0) { return; } @@ -902,25 +1014,25 @@ void func_800ED858(u8 arg0) { } } -void func_800ED93C(s8 songIdx, s8 arg1) { - if (songIdx == 0) { +void Audio_OcaSetSongPlayback(s8 songIdxPlusOne, s8 playbackState) { + if (songIdxPlusOne == 0) { sPlaybackState = 0; Audio_StopSfxById(NA_SE_OC_OCARINA); return; } - if (songIdx < 0xF) { - sPlaybackSong = sOcarinaSongs[songIdx - 1]; + if (songIdxPlusOne < 0xF) { + sPlaybackSong = sOcarinaSongs[songIdxPlusOne - 1]; } else { sPlaybackSong = sPierresSong; } - sPlaybackState = arg1; + sPlaybackState = playbackState; sNotePlaybackTimer = 0; sDisplayedNoteValue = 0xFF; sPlaybackNotePos = 0; sStaffPlaybackPos = 0; - while (sPlaybackSong[sPlaybackNotePos].noteIdx == 0xFF) { + while (sPlaybackSong[sPlaybackNotePos].noteIdx == OCARINA_NOTE_INVALID) { sPlaybackNotePos++; } } @@ -1020,7 +1132,7 @@ void func_800EDD68(u8 arg0) { s32 t; OcarinaNote* song; - if (D_80131858 == 1) { + if (sRecordingState == 1) { song = gScarecrowCustomSongPtr; } else { song = D_80131BEC; @@ -1058,26 +1170,26 @@ void func_800EDD68(u8 arg0) { song[sRecordSongPos].unk_02 = 0; - if (D_80131858 == 2) { - if (D_8016BA2E >= 8) { + if (sRecordingState == 2) { + if (sStaffPlayingPos >= 8) { for (i = 0; i < sRecordSongPos; i++) { song[i] = song[i + 1]; } - func_800ECB7C(OCA_SONGS_MEMORYGAME); + func_800ECB7C(OCARINA_SONG_MEMORY_GAME); - for (i = 0; i < OCA_SONGS_SCARECROW; i++) { + for (i = 0; i < OCARINA_SONG_SCARECROW; i++) { for (j = 0; j < 9 - gOcarinaSongNotes[i].len; j++) { for (k = 0; k < gOcarinaSongNotes[i].len && k + j < 8 && - gOcarinaSongNotes[i].notesIdx[k] == gOcarinaSongNotes[OCA_SONGS_SCARECROW].notesIdx[k + j]; + gOcarinaSongNotes[i].notesIdx[k] == gOcarinaSongNotes[OCARINA_SONG_SCARECROW].notesIdx[k + j]; k++) { ; } if (k == gOcarinaSongNotes[i].len) { - D_80131858 = 0xFF; - sOcarinaSongs[OCA_SONGS_SCARECROW][1].volume = 0xFF; + sRecordingState = 0xFF; + sOcarinaSongs[OCARINA_SONG_SCARECROW][1].volume = 0xFF; return; } } @@ -1085,8 +1197,8 @@ void func_800EDD68(u8 arg0) { i = 1; while (i < 8) { - if (gOcarinaSongNotes[OCA_SONGS_SCARECROW].notesIdx[0] != - gOcarinaSongNotes[OCA_SONGS_SCARECROW].notesIdx[i]) { + if (gOcarinaSongNotes[OCARINA_SONG_SCARECROW].notesIdx[0] != + gOcarinaSongNotes[OCARINA_SONG_SCARECROW].notesIdx[i]) { i = 9; } else { i++; @@ -1094,35 +1206,35 @@ void func_800EDD68(u8 arg0) { } if (i == 8) { - D_80131858 = 0xFF; - sOcarinaSongs[OCA_SONGS_SCARECROW][1].volume = 0xFF; + sRecordingState = 0xFF; + sOcarinaSongs[OCARINA_SONG_SCARECROW][1].volume = 0xFF; return; } for (i = 0; i < sRecordSongPos; i++) { - sOcarinaSongs[OCA_SONGS_SCARECROW][i] = sOcarinaSongs[OCA_SONGS_MEMORYGAME][i]; + sOcarinaSongs[OCARINA_SONG_SCARECROW][i] = sOcarinaSongs[OCARINA_SONG_MEMORY_GAME][i]; } sOcarinaInpEnabled = 0; } else { - sOcarinaSongs[OCA_SONGS_SCARECROW][1].volume = 0xFF; + sOcarinaSongs[OCARINA_SONG_SCARECROW][1].volume = 0xFF; } } - D_80131858 = 0; + sRecordingState = 0; } // start custom song? /** - * arg0 = 1, start - * arg0 = 0, finish - * arg0 = 2, also start? + * recordingState = 1, start long scarecrows song + * recordingState = 0, end + * recordingState = 2, also scarecrows song */ -void func_800EE170(u8 arg0) { - if ((u32)arg0 == D_80131858) { +void Audio_OcaSetRecordingState(u8 recordingState) { + if ((u32)recordingState == sRecordingState) { return; } - if (arg0 != 0) { + if (recordingState != 0) { D_80131860 = D_8016BA04; D_80131864 = 0xFF; D_80131868 = 0x57; @@ -1131,41 +1243,41 @@ void func_800EE170(u8 arg0) { D_80131874 = 0; sRecordSongPos = 0; sOcarinaInpEnabled = 1; - D_8016BA2E = 0; + sStaffPlayingPos = 0; D_8016BAA0 = sPierresSong[1]; } else { if (sRecordSongPos == 0) { sPierresSong[1] = D_8016BAA0; } else { - if (D_80131858 == 2) { - D_8016BA2E = 1; + if (sRecordingState == 2) { + sStaffPlayingPos = 1; } func_800EDD68(1); } sOcarinaInpEnabled = 0; - D_8016BA2E = 0; + sStaffPlayingPos = 0; } - D_80131858 = arg0; + sRecordingState = recordingState; } -void func_800EE29C(void) { - D_8016BA00.state = D_80131858; - D_8016BA00.pos = D_8016BA2E; - if (D_80131858 == 0xFF) { - D_80131858 = 0; +void Audio_OcaUpdateRecordingStaff(void) { + sRecordingStaff.state = sRecordingState; + sRecordingStaff.pos = sStaffPlayingPos; + if (sRecordingState == 0xFF) { + sRecordingState = 0; } } -void func_800EE2D4(void) { - D_8016B9F8.noteIdx = sCurOcarinaBtnIdx & 0x3F; - D_8016B9F8.state = func_800ECAF0(); - D_8016B9F8.pos = D_8016BA2E; +void Audio_OcaUpdatePlayingStaff(void) { + sPlayingStaff.noteIdx = sCurOcarinaBtnIdx & 0x3F; + sPlayingStaff.state = Audio_OcaGetPlayingState(); + sPlayingStaff.pos = sStaffPlayingPos; } -void func_800EE318(void) { +void Audio_OcaUpdateDisplayedStaff(void) { if ((sDisplayedNoteValue & 0x3F) < 0x10) { sDisplayedStaff.noteIdx = Audio_OcaMapNoteValue(sDisplayedNoteValue); } @@ -1181,42 +1293,42 @@ void func_800EE318(void) { } } -OcarinaStaff* func_800EE3C8(void) { - return &D_8016BA00; +OcarinaStaff* Audio_OcaGetRecordingStaff(void) { + return &sRecordingStaff; } -OcarinaStaff* func_800EE3D4(void) { - if (D_8016B9F8.state < 0xFE) { +OcarinaStaff* Audio_OcaGetPlayingStaff(void) { + if (sPlayingStaff.state < 0xFE) { D_80130F3C = 0; } - return &D_8016B9F8; + return &sPlayingStaff; } -OcarinaStaff* Audio_OcaGetDisplayStaff(void) { +OcarinaStaff* Audio_OcaGetDisplayingStaff(void) { return &sDisplayedStaff; } void func_800EE404(void) { s32 noteChanged; - if ((D_80131858 != 0) && ((D_8016BA04 - D_80131860) >= 3)) { + if ((sRecordingState != 0) && ((D_8016BA04 - D_80131860) >= 3)) { noteChanged = false; if (D_80131864 != sCurOcarinaBtnVal) { if (sCurOcarinaBtnVal != 0xFF) { - D_8016BA00.noteIdx = sCurOcarinaBtnIdx & 0x3F; - D_8016BA2E++; - } else if ((D_80131858 == 2) && (D_8016BA2E == 8)) { + sRecordingStaff.noteIdx = sCurOcarinaBtnIdx & 0x3F; + sStaffPlayingPos++; + } else if ((sRecordingState == 2) && (sStaffPlayingPos == 8)) { func_800EDD68(1); return; } - if (D_8016BA2E > 8) { - if (D_80131858 == 2) { + if (sStaffPlayingPos > 8) { + if (sRecordingState == 2) { // notes played are over 8 and in recording mode. func_800EDD68(1); return; } - D_8016BA2E = true; + sStaffPlayingPos = true; } noteChanged = true; @@ -1235,22 +1347,22 @@ void func_800EE404(void) { } } -void func_800EE57C(u8 minigameIdx) { +void Audio_OcaMemoryGameStart(u8 minigameRound) { u8 i; - if (minigameIdx > 2) { - minigameIdx = 2; + if (minigameRound > 2) { + minigameRound = 2; } sOcaMinigameAppendPos = 0; - sOcaMinigameEndPos = sOcaMinigameNoteCnts[minigameIdx]; + sOcaMinigameEndPos = sOcaMinigameNoteCnts[minigameRound]; for (i = 0; i < 3; i++) { - func_800EE5EC(); + Audio_OcaMemoryGameGenNote(); } } -s32 func_800EE5EC(void) { +s32 Audio_OcaMemoryGameGenNote(void) { u32 rnd; u8 rndNote; @@ -1261,22 +1373,22 @@ s32 func_800EE5EC(void) { rnd = Audio_NextRandom(); rndNote = sOcarinaNoteValues[rnd % 5]; - if (sOcarinaSongs[OCA_SONGS_MEMORYGAME][sOcaMinigameAppendPos - 1].noteIdx == rndNote) { + if (sOcarinaSongs[OCARINA_SONG_MEMORY_GAME][sOcaMinigameAppendPos - 1].noteIdx == rndNote) { rndNote = sOcarinaNoteValues[(rnd + 1) % 5]; } - sOcarinaSongs[OCA_SONGS_MEMORYGAME][sOcaMinigameAppendPos].noteIdx = rndNote; - sOcarinaSongs[OCA_SONGS_MEMORYGAME][sOcaMinigameAppendPos].unk_02 = 0x2D; - sOcarinaSongs[OCA_SONGS_MEMORYGAME][sOcaMinigameAppendPos].volume = 0x50; - sOcarinaSongs[OCA_SONGS_MEMORYGAME][sOcaMinigameAppendPos].vibrato = 0; - sOcarinaSongs[OCA_SONGS_MEMORYGAME][sOcaMinigameAppendPos].tone = 0; + sOcarinaSongs[OCARINA_SONG_MEMORY_GAME][sOcaMinigameAppendPos].noteIdx = rndNote; + sOcarinaSongs[OCARINA_SONG_MEMORY_GAME][sOcaMinigameAppendPos].unk_02 = 0x2D; + sOcarinaSongs[OCARINA_SONG_MEMORY_GAME][sOcaMinigameAppendPos].volume = 0x50; + sOcarinaSongs[OCARINA_SONG_MEMORY_GAME][sOcaMinigameAppendPos].vibrato = 0; + sOcarinaSongs[OCARINA_SONG_MEMORY_GAME][sOcaMinigameAppendPos].tone = 0; sOcaMinigameAppendPos++; - sOcarinaSongs[OCA_SONGS_MEMORYGAME][sOcaMinigameAppendPos].noteIdx = 0xFF; - sOcarinaSongs[OCA_SONGS_MEMORYGAME][sOcaMinigameAppendPos].unk_02 = 0; - sOcarinaSongs[OCA_SONGS_MEMORYGAME][sOcaMinigameAppendPos + 1].noteIdx = 0xFF; - sOcarinaSongs[OCA_SONGS_MEMORYGAME][sOcaMinigameAppendPos + 1].unk_02 = 0; + sOcarinaSongs[OCARINA_SONG_MEMORY_GAME][sOcaMinigameAppendPos].noteIdx = 0xFF; + sOcarinaSongs[OCARINA_SONG_MEMORY_GAME][sOcaMinigameAppendPos].unk_02 = 0; + sOcarinaSongs[OCARINA_SONG_MEMORY_GAME][sOcaMinigameAppendPos + 1].noteIdx = 0xFF; + sOcarinaSongs[OCARINA_SONG_MEMORY_GAME][sOcaMinigameAppendPos + 1].unk_02 = 0; if (1) {} return 0; } @@ -1313,9 +1425,9 @@ void func_800EE6F4(void) { sPrevOcarinaNoteVal = sCurOcarinaBtnVal; } - func_800EE2D4(); - func_800EE318(); - func_800EE29C(); + Audio_OcaUpdatePlayingStaff(); + Audio_OcaUpdateDisplayedStaff(); + Audio_OcaUpdateRecordingStaff(); } void func_800EE824(void) { @@ -1330,20 +1442,20 @@ void func_800EE824(void) { D_80131C80++; } else { D_80131C80 = 3; - func_800ED858(0); + Audio_OcaSetInstrument(0); } D_80131C88 = 1200; } break; case 1: Audio_SetSoundBanksMute(0); - func_800ED858(D_80131C84); - func_800ED93C(0xF, 1); + Audio_OcaSetInstrument(D_80131C84); + Audio_OcaSetSongPlayback(OCARINA_SONG_SCARECROW_LONG + 1, 1); D_80131C84++; D_80131C80++; break; case 2: - if (Audio_OcaGetDisplayStaff()->state == 0) { + if (Audio_OcaGetDisplayingStaff()->state == 0) { D_80131C80 = 0; } break; @@ -1351,15 +1463,15 @@ void func_800EE824(void) { } void func_800EE930(void) { - D_8016B9F8.noteIdx = 0xFF; - D_8016B9F8.state = 0xFF; - D_8016B9F8.pos = 0; - sDisplayedStaff.noteIdx = 0xFF; + sPlayingStaff.noteIdx = OCARINA_NOTE_INVALID; + sPlayingStaff.state = 0xFF; + sPlayingStaff.pos = 0; + sDisplayedStaff.noteIdx = OCARINA_NOTE_INVALID; sDisplayedStaff.state = 0; sDisplayedStaff.pos = 0; - D_8016BA00.noteIdx = 0xFF; - D_8016BA00.state = 0xFF; - D_8016BA00.pos = 0; + sRecordingStaff.noteIdx = OCARINA_NOTE_INVALID; + sRecordingStaff.state = 0xFF; + sRecordingStaff.pos = 0; D_80131880 = 0; } @@ -2022,7 +2134,8 @@ void AudioDebug_Draw(GfxPrint* printer) { sDisplayedStaff.pos); GfxPrint_SetPos(printer, 3, 5); - GfxPrint_Printf(printer, "PLAY INFO : %2d %02x %d", D_8016B9F8.noteIdx, D_8016B9F8.state, D_8016B9F8.pos); + GfxPrint_Printf(printer, "PLAY INFO : %2d %02x %d", sPlayingStaff.noteIdx, sPlayingStaff.state, + sPlayingStaff.pos); GfxPrint_SetPos(printer, 3, 6); GfxPrint_Printf(printer, "8note REC POINTER : %08x", gScarecrowSpawnSongPtr); @@ -2037,7 +2150,7 @@ void AudioDebug_Draw(GfxPrint* printer) { GfxPrint_SetPos(printer, 3, 24); GfxPrint_Printf(printer, "OCA:%02x SEQ:%04x PLAY:%02x REC:%02x", D_80130F10, D_80130F3C, sPlaybackState, - D_80131858); + sRecordingState); break; case PAGE_SFX_PARAMETER_CHANGE: @@ -2438,15 +2551,13 @@ void AudioDebug_ProcessInput_SfxSwap(void) { val = gAudioSfxSwapSource[sAudioSfxSwapSel] >> ((3 - sAudioSfxSwapNibbleSel) * 4); val = (val + step) & 0xF; gAudioSfxSwapSource[sAudioSfxSwapSel] = - (gAudioSfxSwapSource[sAudioSfxSwapSel] & - ((0xF << ((3 - sAudioSfxSwapNibbleSel) * 4)) ^ 0xFFFF)) + + (gAudioSfxSwapSource[sAudioSfxSwapSel] & ((0xF << ((3 - sAudioSfxSwapNibbleSel) * 4)) ^ 0xFFFF)) + (val << ((3 - sAudioSfxSwapNibbleSel) * 4)); } else { val = gAudioSfxSwapTarget[sAudioSfxSwapSel] >> ((7 - sAudioSfxSwapNibbleSel) * 4); val = (val + step) & 0xF; gAudioSfxSwapTarget[sAudioSfxSwapSel] = - (gAudioSfxSwapTarget[sAudioSfxSwapSel] & - ((0xF << ((7 - sAudioSfxSwapNibbleSel) * 4)) ^ 0xFFFF)) + + (gAudioSfxSwapTarget[sAudioSfxSwapSel] & ((0xF << ((7 - sAudioSfxSwapNibbleSel) * 4)) ^ 0xFFFF)) + (val << ((7 - sAudioSfxSwapNibbleSel) * 4)); } } @@ -3648,7 +3759,7 @@ void func_800F595C(u16 arg0) { u8 arg0b = arg0 & 0xFF; if (D_80130658[arg0b] & 2) { - func_800F5C64(arg0); + Audio_PlayFanfare(arg0); } else if (D_80130658[arg0b] & 4) { Audio_StartSeq(1, 0, arg0); @@ -3730,7 +3841,7 @@ void func_800F5C2C(void) { D_80130628 = NA_BGM_DISABLED; } -void func_800F5C64(u16 arg0) { +void Audio_PlayFanfare(u16 seqId) { u16 sp26; u32 sp20; u8* sp1C; @@ -3738,14 +3849,14 @@ void func_800F5C64(u16 arg0) { sp26 = func_800FA0B4(1); sp1C = func_800E5E84(sp26 & 0xFF, &sp20); - sp18 = func_800E5E84(arg0 & 0xFF, &sp20); + sp18 = func_800E5E84(seqId & 0xFF, &sp20); if ((sp26 == NA_BGM_DISABLED) || (*sp1C == *sp18)) { D_8016B9F4 = 1; } else { D_8016B9F4 = 5; Audio_SeqCmd1(1, 0); } - D_8016B9F6 = arg0; + D_8016B9F6 = seqId; } void func_800F5CF8(void) { @@ -4125,7 +4236,7 @@ void func_800F6C34(void) { sAudioExtraFilter = 0; sAudioBaseFilter2 = 0; sAudioExtraFilter2 = 0; - func_800ED858(0); + Audio_OcaSetInstrument(0); sRiverFreqScaleLerp.remainingFrames = 0; sWaterfallFreqScaleLerp.remainingFrames = 0; sRiverFreqScaleLerp.value = 1.0f; |
