From 3c2094e4bcbcb21c5469d87a8ad28501fae0aa8b Mon Sep 17 00:00:00 2001 From: ElectroDeoxys Date: Fri, 21 May 2021 12:19:35 +0100 Subject: Identify some sequence functions --- src/engine/bank07.asm | 12 ++++++------ src/engine/sequences/credits_sequence_commands.asm | 21 +++++++++++---------- src/engine/sequences/opening_sequence_commands.asm | 15 ++++++++------- src/wram.asm | 5 ++++- 4 files changed, 29 insertions(+), 24 deletions(-) (limited to 'src') diff --git a/src/engine/bank07.asm b/src/engine/bank07.asm index 8c98a87..d57e53c 100644 --- a/src/engine/bank07.asm +++ b/src/engine/bank07.asm @@ -2288,7 +2288,7 @@ Func_1d335: ; 1d335 (7:5335) xor a ld [wd317], a ld [wd634], a - ld [wd633], a + ld [wSequenceDelay], a farcall FlashWhiteScreen .asm_1d364 @@ -2302,8 +2302,8 @@ Func_1d335: ; 1d335 (7:5335) jr z, .asm_1d37a farcall Func_10d74 .asm_1d37a - call Func_1d408 - ld a, [wd633] + call ExecuteOpeningSequenceCmd + ld a, [wSequenceDelay] cp $ff jr nz, .asm_1d364 jr .asm_1d39f @@ -2388,12 +2388,12 @@ Credits_1d6ad: ; 1d6ad (7:56ad) ld a, MUSIC_CREDITS call PlaySong farcall FlashWhiteScreen - call Func_1d7fc + call SetCreditsSequenceCmdPtr .asm_1d6c8 call DoFrameIfLCDEnabled call Func_1d765 - call Func_1d80b - ld a, [wd633] + call ExecuteCreditsSequenceCmd + ld a, [wSequenceDelay] cp $ff jr nz, .asm_1d6c8 call WaitForSongToFinish diff --git a/src/engine/sequences/credits_sequence_commands.asm b/src/engine/sequences/credits_sequence_commands.asm index 630760e..dece700 100644 --- a/src/engine/sequences/credits_sequence_commands.asm +++ b/src/engine/sequences/credits_sequence_commands.asm @@ -1,21 +1,22 @@ -Func_1d7fc: ; 1d7fc (7:57fc) +SetCreditsSequenceCmdPtr: ; 1d7fc (7:57fc) ld a, LOW(CreditsSequence) ld [wSequenceCmdPtr + 0], a ld a, HIGH(CreditsSequence) ld [wSequenceCmdPtr + 1], a xor a - ld [wd633], a + ld [wSequenceDelay], a ret ; 0x1d80b -Func_1d80b: ; 1d80b (7:580b) - ld a, [wd633] +ExecuteCreditsSequenceCmd: ; 1d80b (7:580b) + ld a, [wSequenceDelay] or a jr z, .call_func cp $ff - ret z - dec a - ld [wd633], a + ret z ; sequence ended + + dec a ; still waiting + ld [wSequenceDelay], a ret .call_func @@ -38,7 +39,7 @@ Func_1d80b: ; 1d80b (7:580b) ld d, a pop hl call CallHL2 - jr Func_1d80b + jr ExecuteCreditsSequenceCmd ; 0x1d834 ret ; stray ret @@ -77,7 +78,7 @@ AdvanceCreditsSequenceCmdPtr: ; 1d847 (7:5847) CreditsSequenceCmd_Wait: ; 1d853 (7:5853) ld a, c - ld [wd633], a + ld [wSequenceDelay], a jp AdvanceCreditsSequenceCmdPtrBy3 ; 0x1d85a @@ -453,7 +454,7 @@ CreditsSequenceCmd_TransformOverlay: ; 1daa5 (7:5aa5) or a jr z, .advance_sequence ld a, $01 - ld [wd633], a + ld [wSequenceDelay], a ret .advance_sequence diff --git a/src/engine/sequences/opening_sequence_commands.asm b/src/engine/sequences/opening_sequence_commands.asm index 6f82387..be8639d 100644 --- a/src/engine/sequences/opening_sequence_commands.asm +++ b/src/engine/sequences/opening_sequence_commands.asm @@ -1,11 +1,12 @@ -Func_1d408: ; 1d408 (7:5408) - ld a, [wd633] +ExecuteOpeningSequenceCmd: ; 1d408 (7:5408) + ld a, [wSequenceDelay] or a jr z, .call_function cp $ff - ret z - dec a - ld [wd633], a + ret z ; sequence ended + + dec a ; still waiting + ld [wSequenceDelay], a ret .call_function @@ -24,7 +25,7 @@ Func_1d408: ; 1d408 (7:5408) ld l, e ld h, d call CallHL2 - jr c, Func_1d408 + jr c, ExecuteOpeningSequenceCmd ret ; 0x1d42e @@ -75,7 +76,7 @@ OpeningSequenceCmd_WaitOrbsAnimation: ; 1d444 (7:5444) OpeningSequenceCmd_Wait: ; 1d460 (7:5460) ld a, c - ld [wd633], a + ld [wSequenceDelay], a call AdvanceOpeningSequenceCmdPtrBy3 scf ret diff --git a/src/wram.asm b/src/wram.asm index 7cfb777..5fd63bb 100644 --- a/src/wram.asm +++ b/src/wram.asm @@ -3043,7 +3043,10 @@ wTitleScreenSprites:: ; d629 wSequenceCmdPtr:: ; d631 ds $2 -wd633:: ; d633 +; when non-zero, is decremented and only +; executes the next sequence command when it's 0 +; when it's $ff, it is interpreted as end of sequence +wSequenceDelay:: ; d633 ds $1 wd634:: ; d634 -- cgit v1.2.3