mirror of
https://github.com/thornAvery/kep-hack.git
synced 2026-02-21 06:38:40 +13:00
Separate splash screen, intro, and credits (like pokegold/pokecrystal)
This commit is contained in:
parent
48da6c53be
commit
407b813250
22 changed files with 27 additions and 27 deletions
243
engine/movie/splash.asm
Executable file
243
engine/movie/splash.asm
Executable file
|
|
@ -0,0 +1,243 @@
|
|||
LoadShootingStarGraphics:
|
||||
ld a, $f9
|
||||
ldh [rOBP0], a
|
||||
ld a, $a4
|
||||
ldh [rOBP1], a
|
||||
ld de, AnimationTileset2 tile 3 ; star tile (top left quadrant)
|
||||
ld hl, vChars1 tile $20
|
||||
lb bc, BANK(AnimationTileset2), 1
|
||||
call CopyVideoData
|
||||
ld de, AnimationTileset2 tile 19 ; star tile (bottom left quadrant)
|
||||
ld hl, vChars1 tile $21
|
||||
lb bc, BANK(AnimationTileset2), 1
|
||||
call CopyVideoData
|
||||
ld de, FallingStar
|
||||
ld hl, vChars1 tile $22
|
||||
lb bc, BANK(FallingStar), (FallingStarEnd - FallingStar) / $10
|
||||
call CopyVideoData
|
||||
ld hl, GameFreakLogoOAMData
|
||||
ld de, wOAMBuffer + $60
|
||||
ld bc, GameFreakLogoOAMDataEnd - GameFreakLogoOAMData
|
||||
call CopyData
|
||||
ld hl, GameFreakShootingStarOAMData
|
||||
ld de, wOAMBuffer
|
||||
ld bc, GameFreakShootingStarOAMDataEnd - GameFreakShootingStarOAMData
|
||||
jp CopyData
|
||||
|
||||
AnimateShootingStar:
|
||||
call LoadShootingStarGraphics
|
||||
ld a, SFX_SHOOTING_STAR
|
||||
call PlaySound
|
||||
|
||||
; Move the big star down and left across the screen.
|
||||
ld hl, wOAMBuffer
|
||||
lb bc, $a0, $4
|
||||
.bigStarLoop
|
||||
push hl
|
||||
push bc
|
||||
.bigStarInnerLoop
|
||||
ld a, [hl] ; Y
|
||||
add 4
|
||||
ld [hli], a
|
||||
ld a, [hl] ; X
|
||||
add -4
|
||||
ld [hli], a
|
||||
inc hl
|
||||
inc hl
|
||||
dec c
|
||||
jr nz, .bigStarInnerLoop
|
||||
ld c, 1
|
||||
call CheckForUserInterruption
|
||||
pop bc
|
||||
pop hl
|
||||
ret c
|
||||
ld a, [hl]
|
||||
cp 80
|
||||
jr nz, .next
|
||||
jr .bigStarLoop
|
||||
.next
|
||||
cp b
|
||||
jr nz, .bigStarLoop
|
||||
|
||||
; Clear big star OAM.
|
||||
ld hl, wOAMBuffer
|
||||
ld c, 4
|
||||
ld de, 4
|
||||
.clearOAMLoop
|
||||
ld [hl], 160
|
||||
add hl, de
|
||||
dec c
|
||||
jr nz, .clearOAMLoop
|
||||
|
||||
; Make Gamefreak logo flash.
|
||||
ld b, 3
|
||||
.flashLogoLoop
|
||||
ld hl, rOBP0
|
||||
rrc [hl]
|
||||
rrc [hl]
|
||||
ld c, 10
|
||||
call CheckForUserInterruption
|
||||
ret c
|
||||
dec b
|
||||
jr nz, .flashLogoLoop
|
||||
|
||||
; Copy 24 instances of the small stars OAM data.
|
||||
; Note that their coordinates put them off-screen.
|
||||
ld de, wOAMBuffer
|
||||
ld a, 24
|
||||
.initSmallStarsOAMLoop
|
||||
push af
|
||||
ld hl, SmallStarsOAM
|
||||
ld bc, SmallStarsOAMEnd - SmallStarsOAM
|
||||
call CopyData
|
||||
pop af
|
||||
dec a
|
||||
jr nz, .initSmallStarsOAMLoop
|
||||
|
||||
; Animate the small stars falling from the Gamefreak logo.
|
||||
xor a
|
||||
ld [wMoveDownSmallStarsOAMCount], a
|
||||
ld hl, SmallStarsWaveCoordsPointerTable
|
||||
ld c, 6
|
||||
.smallStarsLoop
|
||||
ld a, [hli]
|
||||
ld e, a
|
||||
ld a, [hli]
|
||||
ld d, a
|
||||
push bc
|
||||
push hl
|
||||
ld hl, wOAMBuffer + $50
|
||||
ld c, 4
|
||||
.smallStarsInnerLoop ; introduce new wave of 4 small stars OAM entries
|
||||
ld a, [de]
|
||||
cp $ff
|
||||
jr z, .next2
|
||||
ld [hli], a ; Y
|
||||
inc de
|
||||
ld a, [de]
|
||||
ld [hli], a ; X
|
||||
inc de
|
||||
inc hl
|
||||
inc hl
|
||||
dec c
|
||||
jr nz, .smallStarsInnerLoop
|
||||
ld a, [wMoveDownSmallStarsOAMCount]
|
||||
cp 24
|
||||
jr z, .next2
|
||||
add 6 ; should be 4, but the extra 2 aren't visible on screen
|
||||
ld [wMoveDownSmallStarsOAMCount], a
|
||||
.next2
|
||||
call MoveDownSmallStars
|
||||
push af
|
||||
|
||||
; shift the existing OAM entries down to make room for the next wave
|
||||
ld hl, wOAMBuffer + $10
|
||||
ld de, wOAMBuffer
|
||||
ld bc, $50
|
||||
call CopyData
|
||||
|
||||
pop af
|
||||
pop hl
|
||||
pop bc
|
||||
ret c
|
||||
dec c
|
||||
jr nz, .smallStarsLoop
|
||||
and a
|
||||
ret
|
||||
|
||||
SmallStarsOAM:
|
||||
dbsprite 0, 0, 0, 0, $A2, OAM_BEHIND_BG | OAM_OBP1
|
||||
SmallStarsOAMEnd:
|
||||
|
||||
SmallStarsWaveCoordsPointerTable:
|
||||
dw SmallStarsWave1Coords
|
||||
dw SmallStarsWave2Coords
|
||||
dw SmallStarsWave3Coords
|
||||
dw SmallStarsWave4Coords
|
||||
dw SmallStarsEmptyWave
|
||||
dw SmallStarsEmptyWave
|
||||
|
||||
; The stars that fall from the Gamefreak logo come in 4 waves of 4 OAM entries.
|
||||
; These arrays contain the Y and X coordinates of each OAM entry.
|
||||
|
||||
SmallStarsWave1Coords:
|
||||
db $68, $30
|
||||
db $68, $40
|
||||
db $68, $58
|
||||
db $68, $78
|
||||
|
||||
SmallStarsWave2Coords:
|
||||
db $68, $38
|
||||
db $68, $48
|
||||
db $68, $60
|
||||
db $68, $70
|
||||
|
||||
SmallStarsWave3Coords:
|
||||
db $68, $34
|
||||
db $68, $4C
|
||||
db $68, $54
|
||||
db $68, $64
|
||||
|
||||
SmallStarsWave4Coords:
|
||||
db $68, $3C
|
||||
db $68, $5C
|
||||
db $68, $6C
|
||||
db $68, $74
|
||||
|
||||
SmallStarsEmptyWave:
|
||||
db $FF
|
||||
|
||||
MoveDownSmallStars:
|
||||
ld b, 8
|
||||
.loop
|
||||
ld hl, wOAMBuffer + $5c
|
||||
ld a, [wMoveDownSmallStarsOAMCount]
|
||||
ld de, -4
|
||||
ld c, a
|
||||
.innerLoop
|
||||
inc [hl] ; Y
|
||||
add hl, de
|
||||
dec c
|
||||
jr nz, .innerLoop
|
||||
; Toggle the palette so that the lower star in the small stars tile blinks in
|
||||
; and out.
|
||||
ldh a, [rOBP1]
|
||||
xor %10100000
|
||||
ldh [rOBP1], a
|
||||
|
||||
ld c, 3
|
||||
call CheckForUserInterruption
|
||||
ret c
|
||||
dec b
|
||||
jr nz, .loop
|
||||
ret
|
||||
|
||||
GameFreakLogoOAMData:
|
||||
dbsprite 10, 9, 0, 0, $8d, 0
|
||||
dbsprite 11, 9, 0, 0, $8e, 0
|
||||
dbsprite 10, 10, 0, 0, $8f, 0
|
||||
dbsprite 11, 10, 0, 0, $90, 0
|
||||
dbsprite 10, 11, 0, 0, $91, 0
|
||||
dbsprite 11, 11, 0, 0, $92, 0
|
||||
dbsprite 6, 12, 0, 0, $80, 0
|
||||
dbsprite 7, 12, 0, 0, $81, 0
|
||||
dbsprite 8, 12, 0, 0, $82, 0
|
||||
dbsprite 9, 12, 0, 0, $83, 0
|
||||
dbsprite 10, 12, 0, 0, $93, 0
|
||||
dbsprite 11, 12, 0, 0, $84, 0
|
||||
dbsprite 12, 12, 0, 0, $85, 0
|
||||
dbsprite 13, 12, 0, 0, $83, 0
|
||||
dbsprite 14, 12, 0, 0, $81, 0
|
||||
dbsprite 15, 12, 0, 0, $86, 0
|
||||
GameFreakLogoOAMDataEnd:
|
||||
|
||||
GameFreakShootingStarOAMData:
|
||||
dbsprite 20, 0, 0, 0, $a0, OAM_OBP1
|
||||
dbsprite 21, 0, 0, 0, $a0, OAM_OBP1 | OAM_HFLIP
|
||||
dbsprite 20, 1, 0, 0, $a1, OAM_OBP1
|
||||
dbsprite 21, 1, 0, 0, $a1, OAM_OBP1 | OAM_HFLIP
|
||||
GameFreakShootingStarOAMDataEnd:
|
||||
|
||||
FallingStar:
|
||||
INCBIN "gfx/splash/falling_star.2bpp"
|
||||
FallingStarEnd:
|
||||
Loading…
Add table
Add a link
Reference in a new issue