mirror of
https://github.com/pret/pokered.git
synced 2024-10-24 15:27:10 +00:00
120 lines
1.8 KiB
NASM
Executable file
120 lines
1.8 KiB
NASM
Executable file
TitleScroll_WaitBall: ; 37244 (d:7244)
|
|
; Wait around for the TitleBall animation to play out.
|
|
; hi: speed
|
|
; lo: duration
|
|
db $05, $05, 0
|
|
|
|
TitleScroll_In: ; 37247 (d:7247)
|
|
; Scroll a TitleMon in from the right.
|
|
; hi: speed
|
|
; lo: duration
|
|
db $a2, $94, $84, $63, $52, $31, $11, 0
|
|
|
|
TitleScroll_Out: ; 3724f (d:724f)
|
|
; Scroll a TitleMon out to the left.
|
|
; hi: speed
|
|
; lo: duration
|
|
db $12, $22, $32, $42, $52, $62, $83, $93, 0
|
|
|
|
TitleScroll: ; 37258 (d:7258)
|
|
ld a, d
|
|
|
|
ld bc, TitleScroll_In
|
|
ld d, $88
|
|
ld e, 0 ; don't animate titleball
|
|
|
|
and a
|
|
jr nz, .ok
|
|
|
|
ld bc, TitleScroll_Out
|
|
ld d, $00
|
|
ld e, 0 ; don't animate titleball
|
|
.ok
|
|
|
|
_TitleScroll: ; 3726a (d:726a)
|
|
ld a, [bc]
|
|
and a
|
|
ret z
|
|
|
|
inc bc
|
|
push bc
|
|
|
|
ld b, a
|
|
and $f
|
|
ld c, a
|
|
ld a, b
|
|
and $f0
|
|
swap a
|
|
ld b, a
|
|
|
|
.loop
|
|
ld h, d
|
|
ld l, $48
|
|
call .ScrollBetween
|
|
|
|
ld h, $00
|
|
ld l, $88
|
|
call .ScrollBetween
|
|
|
|
ld a, d
|
|
add b
|
|
ld d, a
|
|
|
|
call GetTitleBallY
|
|
dec c
|
|
jr nz, .loop
|
|
|
|
pop bc
|
|
jr _TitleScroll
|
|
|
|
.ScrollBetween ; 37292 (d:7292)
|
|
.wait
|
|
ld a, [rLY] ; rLY
|
|
cp l
|
|
jr nz, .wait
|
|
|
|
ld a, h
|
|
ld [rSCX], a
|
|
|
|
.wait2
|
|
ld a, [rLY] ; rLY
|
|
cp h
|
|
jr z, .wait2
|
|
ret
|
|
|
|
TitleBallYTable: ; 372a0 (d:72a0)
|
|
; OBJ y-positions for the Poke Ball held by Red in the title screen.
|
|
; This is really two 0-terminated lists. Initiated with an index of 1.
|
|
db 0, $71, $6f, $6e, $6d, $6c, $6d, $6e, $6f, $71, $74, 0
|
|
|
|
TitleScreenAnimateBallIfStarterOut: ; 372ac (d:72ac)
|
|
; Animate the TitleBall if a starter just got scrolled out.
|
|
ld a, [wTitleMonSpecies]
|
|
cp STARTER1
|
|
jr z, .ok
|
|
cp STARTER2
|
|
jr z, .ok
|
|
cp STARTER3
|
|
ret nz
|
|
.ok
|
|
ld e, 1 ; animate titleball
|
|
ld bc, TitleScroll_WaitBall
|
|
ld d, 0
|
|
jp _TitleScroll
|
|
|
|
GetTitleBallY: ; 372c4 (d:72c4)
|
|
; Get position e from TitleBallYTable
|
|
push de
|
|
push hl
|
|
xor a
|
|
ld d, a
|
|
ld hl, TitleBallYTable
|
|
add hl, de
|
|
ld a, [hl]
|
|
pop hl
|
|
pop de
|
|
and a
|
|
ret z
|
|
ld [wOAMBuffer + $28], a
|
|
inc e
|
|
ret
|