diff options
author | ElectroDeoxys <ElectroDeoxys@gmail.com> | 2021-09-27 12:25:56 +0100 |
---|---|---|
committer | ElectroDeoxys <ElectroDeoxys@gmail.com> | 2021-09-27 12:25:56 +0100 |
commit | a53828331cf4c86f7d14e3b178eaa18817b514a3 (patch) | |
tree | 4ce731fcf42324466ba9899a3fe8343bfbeb9dda /src/engine/credits.asm | |
parent | 7825b5ef0f09a877142ea1eb221e895bb60a0253 (diff) |
Split part of bank 7
Diffstat (limited to 'src/engine/credits.asm')
-rw-r--r-- | src/engine/credits.asm | 189 |
1 files changed, 189 insertions, 0 deletions
diff --git a/src/engine/credits.asm b/src/engine/credits.asm new file mode 100644 index 0000000..d2da5d8 --- /dev/null +++ b/src/engine/credits.asm @@ -0,0 +1,189 @@ +PlayCreditsSequence: + ld a, MUSIC_STOP + call PlaySong + call Func_1d705 + call AddAllMastersToMastersBeatenList + xor a + ld [wOWMapEvents + 1], a + ld a, MUSIC_CREDITS + call PlaySong + farcall FlashWhiteScreen + call SetCreditsSequenceCmdPtr +.asm_1d6c8 + call DoFrameIfLCDEnabled + call Func_1d765 + call ExecuteCreditsSequenceCmd + ld a, [wSequenceDelay] + cp $ff + jr nz, .asm_1d6c8 + call WaitForSongToFinish + ld a, $8 + farcall Func_12863 + ld a, MUSIC_STOP + call PlaySong + farcall Func_10ab4 + call Func_3ca4 + call SetWDOff + call Func_1d758 + call EnableLCD + call DoFrameIfLCDEnabled + call DisableLCD + ld hl, wLCDC + set 1, [hl] + call ResetDoFrameFunction + ret + +Func_1d705: + call DisableLCD + farcall Func_10a9b + call Func_3ca0 + farcall Func_10000 + call Func_1d7ee + ld hl, Func_3e31 + call SetDoFrameFunction + call .Func_1d720 ; can be fallthrough + ret + +.Func_1d720 + ld a, $91 + ld [wd647], a + ld [wd649], a + ld a, $01 + ld [wd648], a + ld [wd64a], a + call Func_1d765 + call Set_WD_on + call .Func_1d73a ; can be fallthrough + ret + +.Func_1d73a + push hl + di + xor a + ld [wd657], a + ld hl, wLCDCFunctionTrampoline + 1 + ld [hl], LOW(Func_3e44) + inc hl + ld [hl], HIGH(Func_3e44) + ei + + ld hl, rSTAT + set STAT_LYC, [hl] + xor a + ldh [rLYC], a + ld hl, rIE + set INT_LCD_STAT, [hl] + pop hl + ret + +Func_1d758: + push hl + ld hl, rSTAT + res STAT_LYC, [hl] + ld hl, rIE + res INT_LCD_STAT, [hl] + pop hl + ret + +Func_1d765: + push hl + push bc + push de + xor a + ldh [hWY], a + + ld hl, wd659 + ld de, wd65f + ld a, [wd648] + or a + jr nz, .asm_1d785 + ld a, $a7 + ldh [hWX], a + ld [hli], a + push hl + ld hl, wLCDC + set 1, [hl] + pop hl + jr .asm_1d7e2 + +.asm_1d785 + ld a, [wd647] + or a + jr z, .asm_1d79e + dec a + ld [de], a + inc de + ld a, $a7 + ldh [hWX], a + ld [hli], a + push hl + ld hl, wLCDC + set 1, [hl] + pop hl + ld a, $07 + jr .asm_1d7a9 + +.asm_1d79e + ld a, $07 + ldh [hWX], a + push hl + ld hl, wLCDC + res 1, [hl] + pop hl +.asm_1d7a9 + ld [hli], a + ld a, [wd647] + dec a + ld c, a + ld a, [wd648] + add c + ld c, a + ld a, [wd649] + dec a + cp c + jr c, .asm_1d7d4 + jr z, .asm_1d7d4 + ld a, c + ld [de], a + inc de + push af + ld a, $a7 + ld [hli], a + pop bc + ld a, [wd64a] + or a + jr z, .asm_1d7e2 + ld a, [wd649] + dec a + ld [de], a + inc de + ld a, $07 + ld [hli], a + +.asm_1d7d4 + ld a, [wd649] + dec a + ld c, a + ld a, [wd64a] + add c + ld [de], a + inc de + ld a, $a7 + ld [hli], a +.asm_1d7e2 + ld a, $ff + ld [de], a + ld a, $01 + ld [wd665], a + pop de + pop bc + pop hl + ret + +Func_1d7ee: + xor a + lb de, 0, 32 + lb bc, 20, 18 + lb hl, 0, 0 + call FillRectangle + ret |