diff options
author | Daniel Harding <33dannye@gmail.com> | 2021-10-10 17:08:01 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-10-10 17:08:01 -0500 |
commit | 7d5761dcd9c0ecca427bd568e91ae137b04ed54e (patch) | |
tree | 2130f26a5bc8005f3df30976f17f0683e6f18113 /src/engine/intro.asm | |
parent | 40d32ea4e266fa2e87f344d50ba854d53b02fba3 (diff) | |
parent | be47e02cd7c844944665108b5c921b1eae27ad7b (diff) |
Merge pull request #112 from ElectroDeoxys/master
Split bank 6 and some bank 7
Diffstat (limited to 'src/engine/intro.asm')
-rw-r--r-- | src/engine/intro.asm | 114 |
1 files changed, 114 insertions, 0 deletions
diff --git a/src/engine/intro.asm b/src/engine/intro.asm new file mode 100644 index 0000000..8a16b3a --- /dev/null +++ b/src/engine/intro.asm @@ -0,0 +1,114 @@ +PlayIntroSequence: + call DisableLCD + farcall Func_10a9b + farcall Func_10000 + call Func_3ca0 + ld hl, HandleAllSpriteAnimations + call SetDoFrameFunction + call LoadTitleScreenSprites + + ld a, LOW(IntroSequence) + ld [wSequenceCmdPtr + 0], a + ld a, HIGH(IntroSequence) + ld [wSequenceCmdPtr + 1], a + + xor a + ld [wd317], a + ld [wIntroSequencePalsNeedUpdate], a + ld [wSequenceDelay], a + farcall FlashWhiteScreen + +.loop_cmds + call DoFrameIfLCDEnabled + call UpdateRNGSources + ldh a, [hKeysPressed] + and A_BUTTON | START + jr nz, .jump_to_title_screen + ld a, [wIntroSequencePalsNeedUpdate] + or a + jr z, .no_pal_update + farcall Func_10d74 +.no_pal_update + call ExecuteIntroSequenceCmd + ld a, [wSequenceDelay] + cp $ff + jr nz, .loop_cmds + jr .asm_1d39f + +.jump_to_title_screen + call AssertSongFinished + or a + jr nz, .asm_1d39f + call DisableLCD + ld a, MUSIC_TITLESCREEN + call PlaySong + lb bc, 0, 0 + ld a, SCENE_TITLE_SCREEN + call LoadScene + call IntroSequenceEmptyFunc +.asm_1d39f + call Func_3ca0 + call .ShowPressStart + call EnableLCD + ret + +.ShowPressStart + ld a, SPRITE_PRESS_START + farcall CreateSpriteAndAnimBufferEntry + ld c, SPRITE_ANIM_COORD_X + call GetSpriteAnimBufferProperty + ld a, 48 + ld [hli], a ; x + ld a, 112 + ld [hl], a ; y + ld c, SPRITE_ANIM_190 + ld a, [wConsole] + cp CONSOLE_CGB + jr nz, .asm_1d3c5 + ld c, SPRITE_ANIM_191 +.asm_1d3c5 + ld a, c + ld bc, 60 + farcall Func_12ac9 + ret + +LoadTitleScreenSprites: + xor a + ld [wd4ca], a + ld [wd4cb], a + ld a, PALETTE_30 + farcall LoadPaletteData + + ld bc, 0 + ld de, wTitleScreenSprites +.loop_load_sprites + push bc + push de + ld hl, .TitleScreenSpriteList + add hl, bc + ld a, [hl] + farcall CreateSpriteAndAnimBufferEntry + ld a, [wWhichSprite] + ld [de], a + call GetFirstSpriteAnimBufferProperty + inc hl + ld a, [hl] ; SPRITE_ANIM_ATTRIBUTES + or c + ld [hl], a + pop de + pop bc + inc de + inc c + ld a, c + cp $7 + jr c, .loop_load_sprites + ret + +.TitleScreenSpriteList + db SPRITE_GRASS + db SPRITE_FIRE + db SPRITE_WATER + db SPRITE_COLORLESS + db SPRITE_LIGHTNING + db SPRITE_PSYCHIC + db SPRITE_FIGHTING |