mirror of
https://github.com/pret/pokeyellow.git
synced 2026-05-23 03:16:20 -05:00
3450 lines
58 KiB
NASM
Executable File
3450 lines
58 KiB
NASM
Executable File
IsPlayerTalkingToPikachu:: ; fcf0c (3f:4f0c)
|
|
ld a, [wd436]
|
|
and a
|
|
ret z
|
|
ld a, [hSpriteIndexOrTextID]
|
|
cp $f
|
|
ret nz
|
|
call InitializePikachuTextID
|
|
xor a
|
|
ld [hSpriteIndexOrTextID], a
|
|
ld [wd436], a
|
|
ret
|
|
|
|
InitializePikachuTextID: ; fcf20 (3f:4f20)
|
|
ld a, $d4 ; display
|
|
ld [hSpriteIndexOrTextID], a
|
|
xor a
|
|
ld [wPlayerMovingDirection], a
|
|
ld a, $1
|
|
ld [wAutoTextBoxDrawingControl], a
|
|
call DisplayTextID
|
|
xor a
|
|
ld [wAutoTextBoxDrawingControl], a
|
|
ret
|
|
|
|
DoStarterPikachuEmotions: ; fcf35 (3f:4f35)
|
|
ld e, a
|
|
ld d, $0
|
|
add hl, de
|
|
add hl, de
|
|
ld e, [hl]
|
|
inc hl
|
|
ld d, [hl]
|
|
.loop
|
|
ld a, [de]
|
|
inc de
|
|
cp $ff
|
|
jr z, .done
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, StarterPikachuEmotionsJumptable
|
|
add hl, bc
|
|
add hl, bc
|
|
ld a, [hli]
|
|
ld h, [hl]
|
|
ld l, a
|
|
call JumpToAddress
|
|
jr .loop
|
|
.done
|
|
ret
|
|
|
|
StarterPikachuEmotionsJumptable: ; fcf54 (3f:4f54)
|
|
dw StarterPikachuEmotionCommand_nop ; 0
|
|
dw StarterPikachuEmotionCommand_text ; 1
|
|
dw StarterPikachuEmotionCommand_pcm ; 2
|
|
dw StarterPikachuEmotionCommand_emote ; 3
|
|
dw StarterPikachuEmotionCommand_4 ; 4
|
|
dw StarterPikachuEmotionCommand_5 ; 5
|
|
dw StarterPikachuEmotionCommand_subcmd ; 6
|
|
dw StarterPikachuEmotionCommand_delay ; 7
|
|
dw StarterPikachuEmotionCommand_nop2 ; 8
|
|
dw StarterPikachuEmotionCommand_9 ; 9
|
|
dw StarterPikachuEmotionCommand_nop3 ; a
|
|
|
|
StarterPikachuEmotionCommand_nop: ; fcf6a (3f:4f6a)
|
|
StarterPikachuEmotionCommand_nop3: ; fcf6a (3f:4f6a)
|
|
ret
|
|
|
|
StarterPikachuEmotionCommand_text: ; fcf6b (3f:4f6b)
|
|
ld a, [de]
|
|
ld l, a
|
|
inc de
|
|
ld a, [de]
|
|
ld h, a
|
|
inc de
|
|
push de
|
|
call PrintText
|
|
pop de
|
|
ret
|
|
|
|
StarterPikachuEmotionCommand_pcm: ; fcf77 (3f:4f77)
|
|
ld a, [de]
|
|
inc de
|
|
push de
|
|
ld e, a
|
|
nop
|
|
call PlayPikachuSoundClip_
|
|
pop de
|
|
ret
|
|
|
|
PlayPikachuSoundClip_: ; fcf81 (3f:4f81)
|
|
cp $ff
|
|
ret z
|
|
callab PlayPikachuSoundClip
|
|
ret
|
|
|
|
StarterPikachuEmotionCommand_emote: ; fcf8d (3f:4f8d)
|
|
ld a, [wUpdateSpritesEnabled]
|
|
push af
|
|
ld a, $ff
|
|
ld [wUpdateSpritesEnabled], a
|
|
ld a, [de]
|
|
inc de
|
|
push de
|
|
call ShowPikachuEmoteBubble
|
|
pop de
|
|
pop af
|
|
ld [wUpdateSpritesEnabled], a
|
|
ret
|
|
|
|
ShowPikachuEmoteBubble: ; fcfa2 (3f:4fa2)
|
|
ld [wWhichEmotionBubble], a
|
|
ld a, $f
|
|
ld [wEmotionBubbleSpriteIndex], a
|
|
predef EmotionBubble
|
|
ret
|
|
|
|
StarterPikachuEmotionCommand_4: ; fcfb0 (3f:4fb0)
|
|
ld a, [de]
|
|
inc de
|
|
ld l, a
|
|
ld a, [de]
|
|
inc de
|
|
ld h, a
|
|
push de
|
|
ld b, $3f
|
|
call Func_fd2a1
|
|
pop de
|
|
ret
|
|
|
|
StarterPikachuEmotionCommand_delay: ; fcfbe (3f:4fbe)
|
|
ld a, [de]
|
|
inc de
|
|
push de
|
|
ld c, a
|
|
call DelayFrames
|
|
pop de
|
|
ret
|
|
|
|
StarterPikachuEmotionCommand_subcmd: ; fcfc7 (3f:4fc7)
|
|
ld a, [de]
|
|
inc de
|
|
push de
|
|
ld e, a
|
|
ld d, $0
|
|
ld hl, Jumptable_fcfda
|
|
add hl, de
|
|
add hl, de
|
|
ld a, [hli]
|
|
ld h, [hl]
|
|
ld l, a
|
|
call JumpToAddress
|
|
pop de
|
|
ret
|
|
|
|
Jumptable_fcfda:
|
|
dw LoadPikachuSpriteIntoVRAM
|
|
dw LoadFontTilePatterns
|
|
dw Pikachu_LoadCurrentMapViewUpdateSpritesAndDelay3
|
|
dw WaitForTextScrollButtonPress
|
|
dw PikachuPewterPokecenterCheck
|
|
dw PikachuFanClubCheck
|
|
dw PikachuBillsHouseCheck
|
|
|
|
StarterPikachuEmotionCommand_nop2: ; fcfe8 (3f:4fe8)
|
|
ret
|
|
|
|
StarterPikachuEmotionCommand_9: ; fcfe9 (3f:4fe9)
|
|
push de
|
|
call Func_fcff2
|
|
call UpdateSprites
|
|
pop de
|
|
ret
|
|
|
|
Func_fcff2: ; fcff2 (3f:4ff2)
|
|
ld a, [wSpriteStateData1 + $9]
|
|
xor $4
|
|
ld [wSpriteStateData1 + $f9], a
|
|
ret
|
|
|
|
Func_fcffb: ; fcffb (3f:4ffb)
|
|
; Inexplicably empty.
|
|
rept 5
|
|
nop
|
|
endr
|
|
ret
|
|
|
|
Func_fd001:: ; fd001 (3f:5001)
|
|
ld a, e
|
|
jr asm_fd00f
|
|
|
|
Func_fd004:: ; fd004 (3f:5004)
|
|
call Func_fd05e
|
|
jr c, asm_fd00f
|
|
call GetPikaPicAnimationScriptIndex
|
|
call Func_fcffb
|
|
asm_fd00f: ; fd00f (3f:500f)
|
|
ld [wExpressionNumber], a
|
|
ld hl, PikachuEmotionTable
|
|
call DoStarterPikachuEmotions
|
|
ret
|
|
|
|
PikachuEmotionTable: ; fd019 (3f:4019)
|
|
dw PikachuEmotion0_fd115
|
|
dw PikachuEmotion1_fd141
|
|
dw PikachuEmotion2_fd116
|
|
dw PikachuEmotion3_fd160
|
|
dw PikachuEmotion4_fd136
|
|
dw PikachuEmotion5_fd14d
|
|
dw PikachuEmotion6_fd153
|
|
dw PikachuEmotion7_fd128
|
|
dw PikachuEmotion8_fd147
|
|
dw PikachuEmotion9_fd166
|
|
dw PikachuEmotion10_fd11e
|
|
dw PikachuEmotion11_fd173
|
|
dw PikachuEmotion12_fd17a
|
|
dw PikachuEmotion13_fd180
|
|
dw PikachuEmotion14_fd189
|
|
dw PikachuEmotion15_fd191
|
|
dw PikachuEmotion16_fd197
|
|
dw PikachuEmotion17_fd19d
|
|
dw PikachuEmotion18_fd1a3
|
|
dw PikachuEmotion19_fd1a9
|
|
dw PikachuEmotion20_fd1b1
|
|
dw PikachuEmotion21_fd1b9
|
|
dw PikachuEmotion22_fd1c1
|
|
dw PikachuEmotion23_fd1c7
|
|
dw PikachuEmotion24_fd1cf
|
|
dw PikachuEmotion25_fd1d7
|
|
dw PikachuEmotion26_fd1df
|
|
dw PikachuEmotion27_fd1eb
|
|
dw PikachuEmotion28_fd1f1
|
|
dw PikachuEmotion29_fd1f7
|
|
dw PikachuEmotion30_fd1fc
|
|
dw PikachuEmotion31_fd20a
|
|
dw PikachuEmotion32_fd213
|
|
dw PikachuEmotion33_fd05d
|
|
|
|
PikachuEmotion33_fd05d: ; fd05d (3f:505d)
|
|
db $ff
|
|
|
|
Func_fd05e: ; fd05e (3f:505e)
|
|
ld a, [wCurMap]
|
|
cp POKEMON_FAN_CLUB
|
|
jr nz, .notFanClub
|
|
ld hl, wPreventBlackout
|
|
bit 7, [hl]
|
|
ld a, $1d
|
|
jr z, .asm_fd0c9
|
|
call CheckPikachuFollowingPlayer
|
|
ld a, $1e
|
|
jr nz, .asm_fd0c9
|
|
jr .asm_fd096
|
|
.notFanClub
|
|
ld a, [wCurMap]
|
|
cp PEWTER_POKECENTER
|
|
jr nz, .notPewterPokecenter
|
|
call CheckPikachuFollowingPlayer
|
|
ld a, $1a
|
|
jr nz, .asm_fd0c9
|
|
jr .asm_fd096
|
|
.notPewterPokecenter
|
|
callab Func_f24ae
|
|
ld a, e
|
|
cp $ff
|
|
jr nz, .asm_fd0c9
|
|
jr .asm_fd096
|
|
.asm_fd096
|
|
call IsPlayerPikachuAsleepInParty
|
|
ld a, $b
|
|
jr c, .asm_fd0c9
|
|
callab Func_fce73 ; same bank
|
|
ld a, $1c
|
|
jr c, .asm_fd0c9
|
|
ld a, [wCurMap]
|
|
cp POKEMONTOWER_1
|
|
jr c, .notInLavenderTower
|
|
cp POKEMONTOWER_7 + 1
|
|
ld a, $16
|
|
jr c, .asm_fd0c9
|
|
.notInLavenderTower
|
|
ld a, [wd49c]
|
|
and a
|
|
jr z, .asm_fd0c7
|
|
dec a
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, Pointer_fd0cb
|
|
add hl, bc
|
|
ld a, [hl]
|
|
jr .asm_fd0c9
|
|
.asm_fd0c7
|
|
and a
|
|
ret
|
|
.asm_fd0c9
|
|
scf
|
|
ret
|
|
|
|
Pointer_fd0cb:
|
|
db $12, $15, $17, $18, $19
|
|
|
|
IsPlayerPikachuAsleepInParty:: ; fd0d0 (3f:50d0)
|
|
xor a
|
|
ld [wWhichPokemon], a
|
|
.loop
|
|
ld a, [wWhichPokemon]
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, wPartySpecies
|
|
add hl, bc
|
|
ld a, [hl]
|
|
cp $ff
|
|
jr z, .done
|
|
cp PIKACHU
|
|
jr nz, .curMonNotStarterPikachu
|
|
callab IsThisPartymonStarterPikachu
|
|
jr nc, .curMonNotStarterPikachu
|
|
ld a, [wWhichPokemon]
|
|
ld hl, wPartyMon1Status
|
|
ld bc, wPartyMon2 - wPartyMon1
|
|
call AddNTimes
|
|
ld a, [hl]
|
|
and SLP
|
|
jr z, .done
|
|
jr .curMonSleepingPikachu
|
|
.curMonNotStarterPikachu
|
|
ld a, [wWhichPokemon]
|
|
cp PARTY_LENGTH - 1
|
|
jr z, .done
|
|
inc a
|
|
ld [wWhichPokemon], a
|
|
jr .loop
|
|
.curMonSleepingPikachu
|
|
scf
|
|
ret
|
|
.done
|
|
and a
|
|
ret
|
|
|
|
PikachuEmotion0_fd115: ; fd115 (3f:5115)
|
|
db $ff
|
|
|
|
PikachuEmotion2_fd116: ; fd116 (3f:5116)
|
|
pikaemotion_dummy2
|
|
pikaemotion_emotebubble SMILE_BUBBLE
|
|
pikaemotion_pcm PikachuCry35
|
|
pikaemotion_5 $2
|
|
db $ff
|
|
|
|
PikachuEmotion10_fd11e: ; fd11e (3f:511e)
|
|
pikaemotion_dummy2
|
|
pikaemotion_subcmd PIKAEMOTION_SUBCMD_LOADEXTRAPIKASPRITES
|
|
pikaemotion_emotebubble HEART_BUBBLE
|
|
pikaemotion_pcm PikachuCry5
|
|
pikaemotion_5 $a
|
|
db $ff
|
|
|
|
PikachuEmotion7_fd128: ; fd128 (3f:5128)
|
|
pikaemotion_dummy2
|
|
pikaemotion_subcmd PIKAEMOTION_SUBCMD_LOADEXTRAPIKASPRITES
|
|
pikaemotion_4 Pointer_fd224
|
|
pikaemotion_pcm PikachuCry1
|
|
pikaemotion_4 Pointer_fd224
|
|
pikaemotion_5 $7
|
|
db $ff
|
|
|
|
PikachuEmotion4_fd136: ; fd136 (3f:5136)
|
|
pikaemotion_dummy2
|
|
pikaemotion_subcmd PIKAEMOTION_SUBCMD_LOADEXTRAPIKASPRITES
|
|
pikaemotion_4 Pointer_fd230
|
|
pikaemotion_pcm PikachuCry29
|
|
pikaemotion_5 $4
|
|
db $ff
|
|
|
|
PikachuEmotion1_fd141: ; fd141 (3f:5141)
|
|
pikaemotion_dummy2
|
|
pikaemotion_pcm
|
|
pikaemotion_5 $1
|
|
db $ff
|
|
|
|
PikachuEmotion8_fd147: ; fd147 (3f:5147)
|
|
pikaemotion_dummy2
|
|
pikaemotion_pcm PikachuCry39
|
|
pikaemotion_5 $8
|
|
db $ff
|
|
|
|
PikachuEmotion5_fd14d: ; fd14d (3f:514d)
|
|
pikaemotion_dummy2
|
|
pikaemotion_pcm PikachuCry31
|
|
pikaemotion_5 $5
|
|
db $ff
|
|
|
|
PikachuEmotion6_fd153: ; fd153 (3f:5153)
|
|
pikaemotion_dummy2
|
|
pikaemotion_subcmd PIKAEMOTION_SUBCMD_LOADEXTRAPIKASPRITES
|
|
pikaemotion_pcm
|
|
pikaemotion_4 Pointer_fd21e
|
|
pikaemotion_emotebubble SKULL_BUBBLE
|
|
pikaemotion_5 $6
|
|
db $ff
|
|
|
|
PikachuEmotion3_fd160: ; fd160 (3f:5160)
|
|
pikaemotion_dummy2
|
|
pikaemotion_pcm PikachuCry40
|
|
pikaemotion_5 $3
|
|
db $ff
|
|
|
|
PikachuEmotion9_fd166: ; fd166 (3f:5166)
|
|
pikaemotion_dummy2
|
|
pikaemotion_subcmd PIKAEMOTION_SUBCMD_LOADEXTRAPIKASPRITES
|
|
pikaemotion_pcm PikachuCry6
|
|
pikaemotion_4 Pointer_fd218
|
|
pikaemotion_emotebubble SKULL_BUBBLE
|
|
pikaemotion_5 $9
|
|
db $ff
|
|
|
|
PikachuEmotion11_fd173: ; fd173 (3f:5173)
|
|
pikaemotion_emotebubble ZZZ_BUBBLE
|
|
pikaemotion_pcm PikachuCry37
|
|
pikaemotion_5 $b
|
|
db $ff
|
|
|
|
PikachuEmotion12_fd17a: ; fd17a (3f:517a)
|
|
pikaemotion_dummy2
|
|
pikaemotion_pcm
|
|
pikaemotion_5 $c
|
|
db $ff
|
|
|
|
PikachuEmotion13_fd180: ; fd180 (3f:5180)
|
|
pikaemotion_dummy2
|
|
pikaemotion_subcmd PIKAEMOTION_SUBCMD_LOADEXTRAPIKASPRITES
|
|
pikaemotion_4 Pointer_fd21e
|
|
pikaemotion_5 $d
|
|
db $ff
|
|
|
|
PikachuEmotion14_fd189: ; fd189 (3f:5189)
|
|
pikaemotion_dummy2
|
|
pikaemotion_emotebubble BOLT_BUBBLE
|
|
pikaemotion_pcm PikachuCry10
|
|
pikaemotion_5 $e
|
|
db $ff
|
|
|
|
PikachuEmotion15_fd191: ; fd191 (3f:5191)
|
|
pikaemotion_dummy2
|
|
pikaemotion_pcm PikachuCry34
|
|
pikaemotion_5 $f
|
|
db $ff
|
|
|
|
PikachuEmotion16_fd197: ; fd197 (3f:5197)
|
|
pikaemotion_dummy2
|
|
pikaemotion_pcm PikachuCry33
|
|
pikaemotion_5 $10
|
|
db $ff
|
|
|
|
PikachuEmotion17_fd19d: ; fd19d (3f:519d)
|
|
pikaemotion_dummy2
|
|
pikaemotion_pcm PikachuCry13
|
|
pikaemotion_5 $11
|
|
db $ff
|
|
|
|
PikachuEmotion18_fd1a3: ; fd1a3 (3f:51a3)
|
|
pikaemotion_dummy2
|
|
pikaemotion_pcm
|
|
pikaemotion_5 $12
|
|
db $ff
|
|
|
|
PikachuEmotion19_fd1a9: ; fd1a9 (3f:51a9)
|
|
pikaemotion_dummy2
|
|
pikaemotion_emotebubble HEART_BUBBLE
|
|
pikaemotion_pcm PikachuCry33
|
|
pikaemotion_5 $13
|
|
db $ff
|
|
|
|
PikachuEmotion20_fd1b1: ; fd1b1 (3f:51b1)
|
|
pikaemotion_dummy2
|
|
pikaemotion_emotebubble HEART_BUBBLE
|
|
pikaemotion_pcm PikachuCry5
|
|
pikaemotion_5 $14
|
|
db $ff
|
|
|
|
PikachuEmotion21_fd1b9: ; fd1b9 (3f:51b9)
|
|
pikaemotion_dummy2
|
|
pikaemotion_emotebubble FISH_BUBBLE
|
|
pikaemotion_pcm
|
|
pikaemotion_5 $15
|
|
db $ff
|
|
|
|
PikachuEmotion22_fd1c1: ; fd1c1 (3f:51c1)
|
|
pikaemotion_dummy2
|
|
pikaemotion_pcm PikachuCry4
|
|
pikaemotion_5 $16
|
|
db $ff
|
|
|
|
PikachuEmotion23_fd1c7: ; fd1c7 (3f:51c7)
|
|
pikaemotion_dummy2
|
|
pikaemotion_pcm PikachuCry19
|
|
pikaemotion_5 $17
|
|
pikaemotion_subcmd PIKAEMOTION_SUBCMD_SHOWMAPVIEW
|
|
db $ff
|
|
|
|
PikachuEmotion24_fd1cf: ; fd1cf (3f:51cf)
|
|
pikaemotion_dummy2
|
|
pikaemotion_emotebubble EXCLAMATION_BUBBLE
|
|
pikaemotion_pcm
|
|
pikaemotion_5 $18
|
|
db $ff
|
|
|
|
PikachuEmotion25_fd1d7: ; fd1d7 (3f:51d7)
|
|
pikaemotion_dummy2
|
|
pikaemotion_emotebubble BOLT_BUBBLE
|
|
pikaemotion_pcm PikachuCry35
|
|
pikaemotion_5 $19
|
|
db $ff
|
|
|
|
PikachuEmotion26_fd1df: ; fd1df (3f:51df)
|
|
pikaemotion_dummy2
|
|
pikaemotion_emotebubble ZZZ_BUBBLE
|
|
pikaemotion_pcm PikachuCry37
|
|
pikaemotion_5 $1a
|
|
pikaemotion_subcmd PIKAEMOTION_SUBCMD_SHOWMAPVIEW
|
|
pikaemotion_subcmd PIKAEMOTION_SUBCMD_CHECKPEWTERCENTER
|
|
db $ff
|
|
|
|
PikachuEmotion27_fd1eb: ; fd1eb (3f:51eb)
|
|
pikaemotion_dummy2
|
|
pikaemotion_pcm PikachuCry9
|
|
pikaemotion_5 $1b
|
|
db $ff
|
|
|
|
PikachuEmotion28_fd1f1: ; fd1f1 (3f:51f1)
|
|
pikaemotion_dummy2
|
|
pikaemotion_pcm PikachuCry15
|
|
pikaemotion_5 $1c
|
|
db $ff
|
|
|
|
PikachuEmotion29_fd1f7: ; fd1f7 (3f:51f7)
|
|
pikaemotion_pcm PikachuCry5
|
|
pikaemotion_5 $a
|
|
db $ff
|
|
|
|
PikachuEmotion30_fd1fc: ; fd1fc (3f:51fc)
|
|
pikaemotion_9
|
|
pikaemotion_emotebubble HEART_BUBBLE
|
|
pikaemotion_pcm PikachuCry5
|
|
pikaemotion_5 $14
|
|
pikaemotion_subcmd PIKAEMOTION_SUBCMD_SHOWMAPVIEW
|
|
pikaemotion_subcmd PIKAEMOTION_SUBCMD_LOADFONT
|
|
pikaemotion_subcmd PIKAEMOTION_SUBCMD_CHECKLAVENDERTOWER
|
|
db $ff
|
|
|
|
PikachuEmotion31_fd20a: ; fd20a (3f:520a)
|
|
pikaemotion_pcm PikachuCry19
|
|
pikaemotion_5 $17
|
|
pikaemotion_subcmd PIKAEMOTION_SUBCMD_SHOWMAPVIEW
|
|
pikaemotion_subcmd PIKAEMOTION_SUBCMD_CHECKBILLSHOUSE
|
|
db $ff
|
|
|
|
PikachuEmotion32_fd213: ; fd213 (3f:5213)
|
|
pikaemotion_pcm PikachuCry26
|
|
pikaemotion_5 $17
|
|
db $ff
|
|
|
|
Pointer_fd218: ; fd218 (3f:5218)
|
|
|
|
db $00
|
|
db $39, $01
|
|
db $3e, $1e
|
|
db $3f
|
|
|
|
Pointer_fd21e: ; fd21e (3f:521e)
|
|
db $00
|
|
db $39, $00
|
|
db $3e, $1e
|
|
db $3f
|
|
|
|
Pointer_fd224: ; fd224 (3f:5224)
|
|
db $00
|
|
db $3c, $07, $2f
|
|
db $3c, $07, $2f
|
|
db $3f
|
|
|
|
Pointer_fd22c: ; fd22c (3f:522c)
|
|
db $3b, $1f, $03
|
|
db $3f
|
|
|
|
Pointer_fd230: ; fd230 (3f:5230)
|
|
db $00
|
|
db $3c, $0f, $1f
|
|
db $3c, $0f, $1f
|
|
db $3f
|
|
|
|
Pointer_fd238: ; fd238 (3f:5238)
|
|
db $00
|
|
db $05, $07
|
|
db $39, $00
|
|
db $05, $07
|
|
db $06, $07
|
|
db $39, $00
|
|
db $06, $07
|
|
db $08, $07
|
|
db $39, $00
|
|
db $08, $07
|
|
db $07, $07
|
|
db $39, $00
|
|
db $07, $07
|
|
db $3f
|
|
|
|
Func_fd252: ; fd252 (3f:5252)
|
|
ld a, $40
|
|
ld [h_0xFFFC], a
|
|
call LoadPikachuSpriteIntoVRAM
|
|
call Func_fd266
|
|
and a
|
|
jr z, .asm_fd262
|
|
call Func_159b
|
|
.asm_fd262
|
|
xor a
|
|
ld [h_0xFFFC], a
|
|
ret
|
|
|
|
Func_fd266:
|
|
ld a, [wSpriteStateData2 + 15 * 16 + 4]
|
|
ld e, a
|
|
ld a, [wSpriteStateData2 + 15 * 16 + 5]
|
|
ld d, a
|
|
ld a, [wYCoord]
|
|
add 4
|
|
cp e
|
|
jr z, .asm_fd280
|
|
jr nc, .asm_fd27e
|
|
ld hl, Data_fd294
|
|
ld a, 1
|
|
ret
|
|
|
|
.asm_fd27e
|
|
xor a
|
|
ret
|
|
|
|
.asm_fd280
|
|
ld a, [wXCoord]
|
|
add 4
|
|
cp d
|
|
jr c, .asm_fd28e
|
|
ld hl, Data_fd299
|
|
ld a, 2
|
|
ret
|
|
|
|
.asm_fd28e
|
|
ld hl, Data_fd29d
|
|
ld a, 3
|
|
ret
|
|
|
|
Data_fd294:
|
|
db $00
|
|
db $36
|
|
db $2b
|
|
db $34
|
|
db $3f
|
|
|
|
Data_fd299:
|
|
db $00
|
|
db $36
|
|
db $34
|
|
db $3f
|
|
|
|
Data_fd29d:
|
|
db $00
|
|
db $36
|
|
db $33
|
|
db $3f
|
|
|
|
Func_fd2a1:: ; fd2a1 (3f:52a1)
|
|
ld a, b
|
|
ld [wd44a], a
|
|
ld a, l
|
|
ld [wd44b], a
|
|
ld a, h
|
|
ld [wd44b + 1], a
|
|
call PikachuSwapSpriteStateData
|
|
.loop
|
|
call Func_fd2f5
|
|
jr nc, .done
|
|
call Func_fd329
|
|
jr .loop
|
|
|
|
.done
|
|
call PikachuSwapSpriteStateData
|
|
call DelayFrame
|
|
ret
|
|
|
|
PikachuSwapSpriteStateData:
|
|
ld a, [wUpdateSpritesEnabled]
|
|
push af
|
|
ld a, $ff
|
|
ld [wUpdateSpritesEnabled], a
|
|
push hl
|
|
push de
|
|
push bc
|
|
|
|
ld hl, wSpriteStateData1
|
|
ld de, wSpriteStateData1 + $f0
|
|
ld c, $10
|
|
call SwapBytes3f
|
|
|
|
ld hl, wSpriteStateData2
|
|
ld de, wSpriteStateData2 + $f0
|
|
ld c, $10
|
|
call SwapBytes3f
|
|
|
|
pop bc
|
|
pop de
|
|
pop hl
|
|
pop af
|
|
ld [wUpdateSpritesEnabled], a
|
|
ret
|
|
|
|
SwapBytes3f:
|
|
.loop
|
|
ld b, [hl]
|
|
ld a, [de]
|
|
ld [hli], a
|
|
ld a, b
|
|
ld [de], a
|
|
inc de
|
|
dec c
|
|
jr nz, .loop
|
|
ret
|
|
|
|
Func_fd2f5:
|
|
call Func_157c
|
|
cp $3f
|
|
ret z
|
|
ld c, a
|
|
ld b, 0
|
|
ld hl, Data_fd3b0
|
|
add hl, bc
|
|
add hl, bc
|
|
add hl, bc
|
|
add hl, bc
|
|
ld a, [hli]
|
|
ld [wPikaPicAnimPointer + 1], a
|
|
ld a, [hli]
|
|
cp $80
|
|
jr nz, .asm_fd311
|
|
call Func_157c
|
|
.asm_fd311
|
|
ld [wPikaPicAnimPointer], a
|
|
ld a, [hli]
|
|
ld [wPikaPicAnimCurGraphicID], a
|
|
ld a, [hli]
|
|
cp $80
|
|
jr nz, .asm_fd320
|
|
call Func_157c
|
|
.asm_fd320
|
|
ld [wPikaPicAnimPointerSetupFinished], a
|
|
xor a
|
|
ld [wPikaPicAnimTimer], a
|
|
scf
|
|
ret
|
|
|
|
Func_fd329:
|
|
xor a
|
|
ld [$d44c], a
|
|
ld [wd457], a
|
|
ld [wd458], a
|
|
ld a, [wSpriteStateData2 + 7]
|
|
push af
|
|
.asm_fd337
|
|
ld bc, wSpriteStateData1
|
|
ld a, [wPikaPicAnimPointer + 1]
|
|
ld hl, Jumptable_fd4ac
|
|
call Func_fd365
|
|
ld a, [wPikaPicAnimCurGraphicID]
|
|
ld hl, Jumptable_fd65c
|
|
call Func_fd365
|
|
call Func_fd36e
|
|
call Func_fd39d
|
|
call DelayFrame
|
|
call DelayFrame
|
|
ld hl, $d44c
|
|
bit 7, [hl]
|
|
jr z, .asm_fd337
|
|
pop af
|
|
ld [wSpriteStateData2 + 7], a
|
|
scf
|
|
ret
|
|
|
|
Func_fd365:
|
|
ld e, a
|
|
ld d, 0
|
|
add hl, de
|
|
add hl, de
|
|
ld a, [hli]
|
|
ld h, [hl]
|
|
ld l, a
|
|
jp [hl]
|
|
|
|
Func_fd36e:
|
|
ld hl, 2
|
|
add hl, bc
|
|
ld a, [wPikaPicAnimTimer + 1]
|
|
ld [hl], a
|
|
ld a, [wPikaSpriteY]
|
|
ld d, a
|
|
ld a, [wd456]
|
|
add d
|
|
ld hl, 4
|
|
add hl, bc
|
|
ld [hl], a
|
|
ld a, [wPikaPicAnimDelay]
|
|
ld d, a
|
|
ld a, [wPikaPicTextboxStartY]
|
|
add d
|
|
ld hl, 6
|
|
add hl, bc
|
|
ld [hl], a
|
|
ld hl, $d44c
|
|
bit 6, [hl]
|
|
ret z
|
|
ld hl, wSpriteStateData2 + 7 - wSpriteStateData1
|
|
add hl, bc
|
|
ld [hl], 0
|
|
ret
|
|
|
|
Func_fd39d:
|
|
ld hl, $d44c
|
|
bit 6, [hl]
|
|
res 6, [hl]
|
|
ld hl, wd736
|
|
res 6, [hl]
|
|
ret z
|
|
set 6, [hl]
|
|
call Func_fd7f3
|
|
ret
|
|
|
|
Data_fd3b0:
|
|
db $01, $00, $00, $00 ; $00
|
|
db $03, $80, $01, $00 ; $01
|
|
db $04, $80, $01, $00 ; $02
|
|
db $05, $80, $01, $00 ; $03
|
|
db $06, $80, $01, $00 ; $04
|
|
db $07, $80, $01, $00 ; $05
|
|
db $08, $80, $01, $00 ; $06
|
|
db $09, $80, $01, $00 ; $07
|
|
db $0a, $80, $01, $00 ; $08
|
|
db $03, $80, $06, $00 ; $09
|
|
db $04, $80, $06, $00 ; $0a
|
|
db $05, $80, $06, $00 ; $0b
|
|
db $06, $80, $06, $00 ; $0c
|
|
db $07, $80, $06, $00 ; $0d
|
|
db $08, $80, $06, $00 ; $0e
|
|
db $09, $80, $06, $00 ; $0f
|
|
db $0a, $80, $06, $00 ; $10
|
|
db $03, $80, $03, $80 ; $11
|
|
db $04, $80, $03, $80 ; $12
|
|
db $05, $80, $03, $80 ; $13
|
|
db $06, $80, $03, $80 ; $14
|
|
db $07, $80, $03, $80 ; $15
|
|
db $08, $80, $03, $80 ; $16
|
|
db $09, $80, $03, $80 ; $17
|
|
db $0a, $80, $03, $80 ; $18
|
|
db $03, $80, $07, $80 ; $19
|
|
db $04, $80, $07, $80 ; $1a
|
|
db $05, $80, $07, $80 ; $1b
|
|
db $06, $80, $07, $80 ; $1c
|
|
db $0b, $27, $02, $00 ; $1d step down
|
|
db $0c, $27, $02, $00 ; $1e step up
|
|
db $0d, $27, $02, $00 ; $1f step left
|
|
db $0e, $27, $02, $00 ; $20 step right
|
|
db $0f, $27, $02, $00 ; $21
|
|
db $10, $27, $02, $00 ; $22
|
|
db $11, $27, $02, $00 ; $23
|
|
db $12, $27, $02, $00 ; $24
|
|
db $0b, $0f, $02, $00 ; $25
|
|
db $0c, $0f, $02, $00 ; $26
|
|
db $0d, $0f, $02, $00 ; $27
|
|
db $0e, $0f, $02, $00 ; $28
|
|
db $0f, $0f, $02, $00 ; $29
|
|
db $10, $0f, $02, $00 ; $2a
|
|
db $11, $0f, $02, $00 ; $2b
|
|
db $12, $0f, $02, $00 ; $2c
|
|
db $0b, $0f, $08, $17 ; $2d
|
|
db $0c, $0f, $08, $17 ; $2e
|
|
db $0d, $0f, $08, $17 ; $2f
|
|
db $0e, $0f, $08, $17 ; $30
|
|
db $0f, $0f, $08, $17 ; $31
|
|
db $10, $0f, $08, $17 ; $32
|
|
db $11, $0f, $08, $17 ; $33
|
|
db $12, $0f, $08, $17 ; $34
|
|
db $13, $0f, $06, $00 ; $35 look down
|
|
db $14, $0f, $06, $00 ; $36 look up
|
|
db $15, $0f, $06, $00 ; $37 look left
|
|
db $16, $0f, $06, $00 ; $38 look right
|
|
db $02, $80, $04, $00 ; $39
|
|
db $02, $80, $05, $00 ; $3a
|
|
db $02, $80, $03, $80 ; $3b
|
|
db $02, $80, $07, $80 ; $3c
|
|
db $02, $80, $09, $80 ; $3d
|
|
db $02, $80, $06, $00 ; $3e
|
|
|
|
Jumptable_fd4ac:
|
|
dw Func_fd4e5
|
|
dw Func_fd4e9
|
|
dw Func_fd504
|
|
dw Func_fd50c
|
|
dw Func_fd511
|
|
dw Func_fd518
|
|
dw Func_fd52c
|
|
dw Func_fd540
|
|
dw Func_fd553
|
|
dw Func_fd566
|
|
dw Func_fd579
|
|
dw Func_fd5b1
|
|
dw Func_fd5b5
|
|
dw Func_fd5b9
|
|
dw Func_fd5bd
|
|
dw Func_fd5c1
|
|
dw Func_fd5c5
|
|
dw Func_fd5c9
|
|
dw Func_fd5cd
|
|
dw Func_fd5ea
|
|
dw Func_fd5ee
|
|
dw Func_fd5f2
|
|
dw Func_fd5f6
|
|
dw Func_fd4e5
|
|
|
|
Func_fd4dc:
|
|
ld a, [$d44c]
|
|
set 7, a
|
|
ld [$d44c], a
|
|
ret
|
|
|
|
Func_fd4e5:
|
|
call Func_fd4dc
|
|
ret
|
|
|
|
Func_fd4e9:
|
|
ld hl, 4
|
|
add hl, bc
|
|
ld a, [hl]
|
|
ld [wPikaSpriteY], a
|
|
ld hl, 6
|
|
add hl, bc
|
|
ld a, [hl]
|
|
ld [wPikaPicAnimDelay], a
|
|
xor a
|
|
ld [wd456], a
|
|
ld [wPikaPicTextboxStartY], a
|
|
call Func_fd4dc
|
|
ret
|
|
|
|
Func_fd504:
|
|
call Func_fd775
|
|
ret nz
|
|
call Func_fd4dc
|
|
ret
|
|
|
|
Func_fd50c:
|
|
call GetObjectFacing
|
|
jr asm_fd58c
|
|
|
|
Func_fd511:
|
|
call GetObjectFacing
|
|
xor %100
|
|
jr asm_fd58c
|
|
|
|
Func_fd518:
|
|
call GetObjectFacing
|
|
ld hl, Data_fd523
|
|
call Func_fd5a0
|
|
jr asm_fd58c
|
|
|
|
Data_fd523:
|
|
db SPRITE_FACING_DOWN, SPRITE_FACING_RIGHT
|
|
db SPRITE_FACING_UP, SPRITE_FACING_LEFT
|
|
db SPRITE_FACING_LEFT, SPRITE_FACING_DOWN
|
|
db SPRITE_FACING_RIGHT, SPRITE_FACING_UP
|
|
db $ff
|
|
|
|
Func_fd52c:
|
|
call GetObjectFacing
|
|
ld hl, Data_fd537
|
|
call Func_fd5a0
|
|
jr asm_fd58c
|
|
|
|
Data_fd537:
|
|
db SPRITE_FACING_DOWN, SPRITE_FACING_LEFT
|
|
db SPRITE_FACING_UP, SPRITE_FACING_RIGHT
|
|
db SPRITE_FACING_LEFT, SPRITE_FACING_UP
|
|
db SPRITE_FACING_RIGHT, SPRITE_FACING_DOWN
|
|
db $ff
|
|
|
|
Func_fd540:
|
|
call GetObjectFacing
|
|
ld hl, Data_fd54b
|
|
call Func_fd5a0
|
|
jr asm_fd58c
|
|
|
|
Data_fd54b:
|
|
db SPRITE_FACING_DOWN, SPRITE_FACING_UP | $10
|
|
db SPRITE_FACING_UP, SPRITE_FACING_LEFT | $10
|
|
db SPRITE_FACING_LEFT, SPRITE_FACING_DOWN | $10
|
|
db SPRITE_FACING_RIGHT, SPRITE_FACING_RIGHT | $10
|
|
|
|
Func_fd553:
|
|
call GetObjectFacing
|
|
ld hl, Data_fd55e
|
|
call Func_fd5a0
|
|
jr asm_fd58c
|
|
|
|
Data_fd55e:
|
|
db SPRITE_FACING_DOWN, SPRITE_FACING_DOWN | $10
|
|
db SPRITE_FACING_UP, SPRITE_FACING_RIGHT | $10
|
|
db SPRITE_FACING_LEFT, SPRITE_FACING_LEFT | $10
|
|
db SPRITE_FACING_RIGHT, SPRITE_FACING_UP | $10
|
|
|
|
Func_fd566:
|
|
call GetObjectFacing
|
|
ld hl, Data_fd571
|
|
call Func_fd5a0
|
|
jr asm_fd58c
|
|
|
|
Data_fd571:
|
|
db SPRITE_FACING_DOWN, SPRITE_FACING_RIGHT | $10
|
|
db SPRITE_FACING_UP, SPRITE_FACING_DOWN | $10
|
|
db SPRITE_FACING_LEFT, SPRITE_FACING_UP | $10
|
|
db SPRITE_FACING_RIGHT, SPRITE_FACING_LEFT | $10
|
|
|
|
Func_fd579:
|
|
call GetObjectFacing
|
|
ld hl, Data_fd584
|
|
call Func_fd5a0
|
|
jr asm_fd58c
|
|
|
|
Data_fd584:
|
|
db SPRITE_FACING_DOWN, SPRITE_FACING_LEFT | $10
|
|
db SPRITE_FACING_UP, SPRITE_FACING_UP | $10
|
|
db SPRITE_FACING_LEFT, SPRITE_FACING_RIGHT | $10
|
|
db SPRITE_FACING_RIGHT, SPRITE_FACING_DOWN | $10
|
|
|
|
asm_fd58c
|
|
rrca
|
|
rrca
|
|
and $7
|
|
ld e, a
|
|
call Func_fd784
|
|
ld d, a
|
|
call UpdatePikachuPosition
|
|
call Func_fd775
|
|
ret nz
|
|
call Func_fd4dc
|
|
ret
|
|
|
|
Func_fd5a0:
|
|
push de
|
|
ld d, a
|
|
.asm_fd5a2
|
|
ld a, [hli]
|
|
cp d
|
|
jr z, .asm_fd5ad
|
|
inc hl
|
|
cp $ff
|
|
jr nz, .asm_fd5a2
|
|
pop de
|
|
ret
|
|
|
|
.asm_fd5ad
|
|
ld a, [hl]
|
|
pop de
|
|
scf
|
|
ret
|
|
|
|
Func_fd5b1:
|
|
ld a, SPRITE_FACING_DOWN >> 2
|
|
jr asm_fd5d1
|
|
|
|
Func_fd5b5:
|
|
ld a, SPRITE_FACING_UP >> 2
|
|
jr asm_fd5d1
|
|
|
|
Func_fd5b9:
|
|
ld a, SPRITE_FACING_LEFT >> 2
|
|
jr asm_fd5d1
|
|
|
|
Func_fd5bd:
|
|
ld a, SPRITE_FACING_RIGHT >> 2
|
|
jr asm_fd5d1
|
|
|
|
Func_fd5c1:
|
|
ld e, 4
|
|
jr asm_fd5d5
|
|
|
|
Func_fd5c5:
|
|
ld e, 5
|
|
jr asm_fd5d5
|
|
|
|
Func_fd5c9:
|
|
ld e, 6
|
|
jr asm_fd5d5
|
|
|
|
Func_fd5cd:
|
|
ld e, 7
|
|
jr asm_fd5d5
|
|
|
|
asm_fd5d1
|
|
ld e, a
|
|
call SetObjectFacing
|
|
asm_fd5d5
|
|
call Func_fd784
|
|
ld d, a
|
|
push de
|
|
call UpdatePikachuPosition
|
|
pop de
|
|
call Func_fd775
|
|
ret nz
|
|
ld a, e
|
|
call Func_fd7cb
|
|
call Func_fd4dc
|
|
ret
|
|
|
|
Func_fd5ea:
|
|
ld a, SPRITE_FACING_DOWN >> 2
|
|
jr asm_fd5fa
|
|
|
|
Func_fd5ee:
|
|
ld a, SPRITE_FACING_UP >> 2
|
|
jr asm_fd5fa
|
|
|
|
Func_fd5f2:
|
|
ld a, SPRITE_FACING_LEFT >> 2
|
|
jr asm_fd5fa
|
|
|
|
Func_fd5f6:
|
|
ld a, SPRITE_FACING_RIGHT >> 2
|
|
jr asm_fd5fa
|
|
|
|
asm_fd5fa
|
|
call SetObjectFacing
|
|
call Func_fd4dc
|
|
ret
|
|
|
|
UpdatePikachuPosition:
|
|
push de
|
|
ld d, 0
|
|
ld hl, Jumptable_fd60f
|
|
add hl, de
|
|
add hl, de
|
|
ld a, [hli]
|
|
ld h, [hl]
|
|
ld l, a
|
|
pop de
|
|
ld a, d
|
|
jp [hl]
|
|
|
|
Jumptable_fd60f:
|
|
dw MovePikachuSpriteDown
|
|
dw MovePikachuSpriteUp
|
|
dw MovePikachuSpriteLeft
|
|
dw MovePikachuSpriteRight
|
|
dw MovePikachuSpriteDownLeft
|
|
dw MovePikachuSpriteDownRight
|
|
dw MovePikachuSpriteUpLeft
|
|
dw MovePikachuSpriteUpRight
|
|
|
|
MovePikachuSpriteDown:
|
|
ld d, 0
|
|
ld e, a
|
|
jr asm_fd64d
|
|
|
|
MovePikachuSpriteUp:
|
|
ld d, 0
|
|
cpl
|
|
inc a
|
|
ld e, a
|
|
jr asm_fd64d
|
|
|
|
MovePikachuSpriteLeft:
|
|
cpl
|
|
inc a
|
|
ld d, a
|
|
ld e, 0
|
|
jr asm_fd64d
|
|
|
|
MovePikachuSpriteRight:
|
|
ld d, a
|
|
ld e, 0
|
|
jr asm_fd64d
|
|
|
|
MovePikachuSpriteDownLeft:
|
|
ld e, a
|
|
cpl
|
|
inc a
|
|
ld d, a
|
|
jr asm_fd64d
|
|
|
|
MovePikachuSpriteDownRight:
|
|
ld e, a
|
|
ld d, a
|
|
jr asm_fd64d
|
|
|
|
MovePikachuSpriteUpLeft:
|
|
cpl
|
|
inc a
|
|
ld e, a
|
|
ld d, a
|
|
jr asm_fd64d
|
|
|
|
MovePikachuSpriteUpRight:
|
|
ld d, a
|
|
cpl
|
|
inc a
|
|
ld e, a
|
|
jr asm_fd64d
|
|
|
|
asm_fd64d
|
|
ld a, [wPikaPicAnimDelay]
|
|
add d
|
|
ld [wPikaPicAnimDelay], a
|
|
ld a, [wPikaSpriteY]
|
|
add e
|
|
ld [wPikaSpriteY], a
|
|
ret
|
|
|
|
Jumptable_fd65c:
|
|
dw Func_fd678
|
|
dw Func_fd6a3
|
|
dw Func_fd698
|
|
dw Func_fd6f4
|
|
dw Func_fd6ff
|
|
dw Func_fd718
|
|
dw Func_fd68c
|
|
dw Func_fd6c6
|
|
dw Func_fd6c0
|
|
dw Func_fd6e2
|
|
dw Func_fd68b
|
|
|
|
Func_fd672:
|
|
ld hl, $d44c
|
|
set 6, [hl]
|
|
ret
|
|
|
|
Func_fd678:
|
|
ld hl, 7
|
|
add hl, bc
|
|
xor a
|
|
ld [hli], a
|
|
ld [hl], a
|
|
call Func_fd74a
|
|
ld d, a
|
|
call GetObjectFacing
|
|
or d
|
|
ld [wPikaPicAnimTimer + 1], a
|
|
ret
|
|
|
|
Func_fd68b:
|
|
ret
|
|
|
|
Func_fd68c:
|
|
call Func_fd74a
|
|
ld d, a
|
|
call Func_fd755
|
|
or d
|
|
ld [wPikaPicAnimTimer + 1], a
|
|
ret
|
|
|
|
Func_fd698:
|
|
call Func_fd74a
|
|
ld d, a
|
|
call GetObjectFacing
|
|
or d
|
|
ld d, a
|
|
jr asm_fd6ac
|
|
|
|
Func_fd6a3:
|
|
call Func_fd74a
|
|
ld d, a
|
|
call Func_fd755
|
|
or d
|
|
ld d, a
|
|
asm_fd6ac
|
|
ld hl, 8
|
|
add hl, bc
|
|
call Func_fd78e
|
|
jr nz, .asm_fd6b6
|
|
inc [hl]
|
|
.asm_fd6b6
|
|
ld a, [hl]
|
|
rrca
|
|
rrca
|
|
and 3
|
|
or d
|
|
ld [wPikaPicAnimTimer + 1], a
|
|
ret
|
|
|
|
Func_fd6c0:
|
|
call GetObjectFacing
|
|
ld d, a
|
|
jr asm_fd6ca
|
|
|
|
Func_fd6c6:
|
|
call Func_fd755
|
|
ld d, a
|
|
asm_fd6ca
|
|
call Func_fd74a
|
|
or d
|
|
ld d, a
|
|
call Func_fd736
|
|
or d
|
|
ld [wPikaPicAnimTimer + 1], a
|
|
call Func_fd79d
|
|
ld [wd456], a
|
|
and a
|
|
ret z
|
|
call Func_fd672
|
|
ret
|
|
|
|
Func_fd6e2:
|
|
call GetObjectFacing
|
|
ld d, a
|
|
call Func_fd74a
|
|
or d
|
|
ld [wPikaPicAnimTimer + 1], a
|
|
call Func_fd79d
|
|
ld [wd456], a
|
|
ret
|
|
|
|
Func_fd6f4:
|
|
ld a, [wPikaPicAnimPointerSetupFinished]
|
|
and $40
|
|
cp $40
|
|
jr z, Func_fd6ff
|
|
jr Func_fd718
|
|
|
|
Func_fd6ff:
|
|
call Func_fd755
|
|
ld d, a
|
|
call Func_fd78e
|
|
jr nz, .asm_fd710
|
|
ld hl, Data_fd731
|
|
.asm_fd70b
|
|
ld a, [hli]
|
|
cp d
|
|
jr nz, .asm_fd70b
|
|
ld d, [hl]
|
|
.asm_fd710
|
|
call Func_fd74a
|
|
or d
|
|
ld [wPikaPicAnimTimer + 1], a
|
|
ret
|
|
|
|
Func_fd718:
|
|
call Func_fd755
|
|
ld d, a
|
|
call Func_fd78e
|
|
jr nz, .asm_fd529
|
|
ld hl, Data_fd731End
|
|
.asm_fd524
|
|
ld a, [hld]
|
|
cp d
|
|
jr nz, .asm_fd524
|
|
ld d, [hl]
|
|
.asm_fd529
|
|
call Func_fd74a
|
|
or d
|
|
ld [wPikaPicAnimTimer + 1], a
|
|
ret
|
|
|
|
Data_fd731:
|
|
db SPRITE_FACING_DOWN
|
|
db SPRITE_FACING_LEFT
|
|
db SPRITE_FACING_UP
|
|
db SPRITE_FACING_RIGHT
|
|
db SPRITE_FACING_DOWN
|
|
Data_fd731End:
|
|
|
|
Func_fd736:
|
|
push hl
|
|
ld hl, 7
|
|
add hl, bc
|
|
ld a, [hl]
|
|
inc a
|
|
and $3
|
|
ld [hli], a
|
|
jr nz, .asm_fd747
|
|
ld a, [hl]
|
|
inc a
|
|
and $3
|
|
ld [hl], a
|
|
.asm_fd747
|
|
ld a, [hl]
|
|
pop hl
|
|
ret
|
|
|
|
Func_fd74a:
|
|
push hl
|
|
ld hl, wSpriteStateData2 - wSpriteStateData1 + 14
|
|
add hl, bc
|
|
ld a, [hl]
|
|
dec a
|
|
swap a
|
|
pop hl
|
|
ret
|
|
|
|
Func_fd755:
|
|
push hl
|
|
ld hl, 2
|
|
add hl, bc
|
|
ld a, [hl]
|
|
and $c
|
|
pop hl
|
|
ret
|
|
|
|
GetObjectFacing:
|
|
push hl
|
|
ld hl, 9
|
|
add hl, bc
|
|
ld a, [hl]
|
|
and $c
|
|
pop hl
|
|
ret
|
|
|
|
SetObjectFacing:
|
|
push hl
|
|
ld hl, 9
|
|
add hl, bc
|
|
add a
|
|
add a
|
|
and $c
|
|
ld [hl], a
|
|
pop hl
|
|
ret
|
|
|
|
Func_fd775:
|
|
ld hl, wd457
|
|
inc [hl]
|
|
ld a, [wPikaPicAnimPointer]
|
|
and $1f
|
|
inc a
|
|
cp [hl]
|
|
ret nz
|
|
ld [hl], 0
|
|
ret
|
|
|
|
Func_fd784:
|
|
ld a, [wPikaPicAnimPointer]
|
|
swap a
|
|
rrca
|
|
and $3
|
|
inc a
|
|
ret
|
|
|
|
Func_fd78e:
|
|
ld hl, wd458
|
|
inc [hl]
|
|
ld a, [wPikaPicAnimPointerSetupFinished]
|
|
and $f
|
|
inc a
|
|
cp [hl]
|
|
ret nz
|
|
ld [hl], 0
|
|
ret
|
|
|
|
Func_fd79d:
|
|
call Func_fd7b2
|
|
ld a, [wd458]
|
|
add e
|
|
ld [wd458], a
|
|
add $20
|
|
ld e, a
|
|
push hl
|
|
push bc
|
|
call Sine_e
|
|
pop bc
|
|
pop hl
|
|
ret
|
|
|
|
Func_fd7b2:
|
|
ld a, [wPikaPicAnimPointerSetupFinished]
|
|
and $f
|
|
inc a
|
|
ld d, a
|
|
ld a, [wPikaPicAnimPointerSetupFinished]
|
|
swap a
|
|
and $7
|
|
ld e, a
|
|
ld a, 1
|
|
jr z, .asm_fd7c9
|
|
.asm_fd7c5
|
|
add a
|
|
dec e
|
|
jr nz, .asm_fd7c5
|
|
.asm_fd7c9
|
|
ld e, a
|
|
ret
|
|
|
|
Func_fd7cb:
|
|
push bc
|
|
ld c, a
|
|
ld b, 0
|
|
ld hl, Data_fd7e3
|
|
add hl, bc
|
|
add hl, bc
|
|
ld d, [hl]
|
|
inc hl
|
|
ld e, [hl]
|
|
pop bc
|
|
ld hl, wSpriteStateData2 - wSpriteStateData1 + 4
|
|
add hl, bc
|
|
ld a, [hl]
|
|
add e
|
|
ld [hli], a
|
|
ld a, [hl]
|
|
add d
|
|
ld [hl], a
|
|
ret
|
|
|
|
Data_fd7e3:
|
|
db 0, 1
|
|
db 0, -1
|
|
db -1, 0
|
|
db 1, 0
|
|
db -1, 1
|
|
db 1, 1
|
|
db -1, -1
|
|
db 1, -1
|
|
|
|
Func_fd7f3:
|
|
push bc
|
|
push de
|
|
push hl
|
|
|
|
ld bc, wOAMBuffer + 4 * 36
|
|
ld a, [wPikaSpriteY]
|
|
ld e, a
|
|
ld a, [wPikaPicAnimDelay]
|
|
ld d, a
|
|
ld hl, Data_fd80b
|
|
call Func_fd814
|
|
|
|
pop hl
|
|
pop de
|
|
pop bc
|
|
ret
|
|
|
|
Data_fd80b:
|
|
db $02
|
|
db $0c, $00, $ff, 0
|
|
db $0c, $08, $ff, 1 << OAM_X_FLIP
|
|
|
|
Func_fd814:
|
|
ld a, e
|
|
add $10
|
|
ld e, a
|
|
ld a, d
|
|
add $8
|
|
ld d, a
|
|
ld a, [hli]
|
|
.asm_fd81d
|
|
push af
|
|
ld a, [hli]
|
|
add e
|
|
ld [bc], a
|
|
inc bc
|
|
ld a, [hli]
|
|
add d
|
|
ld [bc], a
|
|
inc bc
|
|
ld a, [hli]
|
|
ld [bc], a
|
|
inc bc
|
|
ld a, [hli]
|
|
ld [bc], a
|
|
inc bc
|
|
pop af
|
|
dec a
|
|
jr nz, .asm_fd81d
|
|
ret
|
|
|
|
LoadPikachuShadowIntoVRAM:
|
|
ld hl, vNPCSprites2 + $7f * $10
|
|
ld de, LedgeHoppingShadowGFX_3F
|
|
lb bc, BANK(LedgeHoppingShadowGFX_3F), (LedgeHoppingShadowGFX_3FEnd - LedgeHoppingShadowGFX_3F) / 8
|
|
jp CopyVideoDataDoubleAlternate
|
|
|
|
LedgeHoppingShadowGFX_3F:
|
|
INCBIN "gfx/ledge_hopping_shadow.1bpp"
|
|
LedgeHoppingShadowGFX_3FEnd:
|
|
|
|
LoadPikachuBallIconIntoVRAM:
|
|
ld hl, vNPCSprites2 + $7e * $10
|
|
ld de, GFX_fd86b
|
|
lb bc, BANK(GFX_fd86b), 1
|
|
jp CopyVideoDataDoubleAlternate
|
|
|
|
Func_fd851:
|
|
ld hl, vNPCSprites + $c * $10
|
|
ld a, 3
|
|
.asm_fd856
|
|
push af
|
|
push hl
|
|
ld de, GFX_fd86b
|
|
lb bc, BANK(GFX_fd86b), 4
|
|
call CopyVideoDataAlternate
|
|
pop hl
|
|
ld de, 4 * $10
|
|
add hl, de
|
|
pop af
|
|
dec a
|
|
jr nz, .asm_fd856
|
|
ret
|
|
|
|
GFX_fd86b:
|
|
INCBIN "gfx/unknown_fd86b.2bpp"
|
|
|
|
LoadPikachuSpriteIntoVRAM: ; fd8ab (3f:58ab)
|
|
ld de, PikachuSprite
|
|
lb bc, BANK(PikachuSprite), (SandshrewSprite - PikachuSprite) / 32
|
|
ld hl, vNPCSprites + $c * $10
|
|
push bc
|
|
call CopyVideoDataAlternate
|
|
ld de, PikachuSprite + $c * $10
|
|
ld hl, vNPCSprites2 + $c * $10
|
|
ld a, [h_0xFFFC]
|
|
and a
|
|
jr z, .load
|
|
ld de, PikachuSprite + $c * $10
|
|
ld hl, vNPCSprites2 + $4c * $10
|
|
.load
|
|
pop bc
|
|
call CopyVideoDataAlternate
|
|
call LoadPikachuShadowIntoVRAM
|
|
call LoadPikachuBallIconIntoVRAM
|
|
ret
|
|
|
|
PikachuPewterPokecenterCheck: ; fd8d4 (3f:58d4)
|
|
ld a, [wCurMap]
|
|
cp PEWTER_POKECENTER
|
|
ret nz
|
|
call EnablePikachuFollowingPlayer
|
|
call Func_fcff2
|
|
ret
|
|
|
|
PikachuFanClubCheck: ; fd8e1 (3f:58e1)
|
|
ld a, [wCurMap]
|
|
cp POKEMON_FAN_CLUB
|
|
ret nz
|
|
call EnablePikachuFollowingPlayer
|
|
call Func_fcff2
|
|
ret
|
|
|
|
PikachuBillsHouseCheck: ; fd8ee (3f:58ee)
|
|
ld a, [wCurMap]
|
|
cp BILLS_HOUSE
|
|
ret nz
|
|
call EnablePikachuFollowingPlayer
|
|
ret
|
|
|
|
Pikachu_LoadCurrentMapViewUpdateSpritesAndDelay3: ; fd8f8 (3f:58f8)
|
|
call LoadCurrentMapView
|
|
call UpdateSprites
|
|
call Delay3
|
|
ret
|
|
|
|
Cosine_e: ; cosine?
|
|
ld a, e
|
|
add $10
|
|
jr asm_fd908
|
|
|
|
Sine_e: ; sine?
|
|
ld a, e
|
|
asm_fd908
|
|
and $3f
|
|
cp $20
|
|
jr nc, .asm_fd913
|
|
call GetSine
|
|
ld a, h
|
|
ret
|
|
|
|
.asm_fd913
|
|
and $1f
|
|
call GetSine
|
|
ld a, h
|
|
cpl
|
|
inc a
|
|
ret
|
|
|
|
GetSine:
|
|
ld e, a
|
|
ld a, d
|
|
ld d, 0
|
|
ld hl, SineWave_3f
|
|
add hl, de
|
|
add hl, de
|
|
ld e, [hl]
|
|
inc hl
|
|
ld d, [hl]
|
|
ld hl, 0
|
|
.asm_fd92b
|
|
srl a
|
|
jr nc, .asm_fd930
|
|
add hl, de
|
|
.asm_fd930
|
|
sla e
|
|
rl d
|
|
and a
|
|
jr nz, .asm_fd92b
|
|
ret
|
|
|
|
SineWave_3f:
|
|
sine_wave $100
|
|
|
|
GetPikaPicAnimationScriptIndex: ; fd978 (3f:5978)
|
|
ld hl, PikachuMoodLookupTable
|
|
ld a, [wPikachuMood]
|
|
ld d, a
|
|
.asm_fd97f
|
|
ld a, [hli]
|
|
inc hl
|
|
cp d
|
|
jr c, .asm_fd97f
|
|
dec hl
|
|
ld e, [hl]
|
|
ld hl, PikaPicAnimationScriptPointerLookupTable
|
|
ld a, [wPikachuHappiness]
|
|
ld d, a
|
|
ld bc, 6
|
|
.asm_fd990
|
|
ld a, [hl]
|
|
cp d
|
|
jr nc, .asm_fd997
|
|
add hl, bc
|
|
jr .asm_fd990
|
|
|
|
.asm_fd997
|
|
ld d, 0
|
|
add hl, de
|
|
ld a, [hl]
|
|
ret
|
|
|
|
PikachuMoodLookupTable:
|
|
; First byte: mood threshold
|
|
; Second byte: column index in PikaPicAnimationScriptPointerLookupTable
|
|
db $28, 1
|
|
db $7f, 2
|
|
db $80, 3
|
|
db $d2, 4
|
|
db $ff, 5
|
|
|
|
PikaPicAnimationScriptPointerLookupTable:
|
|
; First byte: happiness threshold
|
|
; Remaining bytes: loaded based on Pikachu's mood
|
|
db $32, $0e, $0e, $06, $0d, $0d
|
|
db $64, $09, $09, $05, $0c, $0c
|
|
db $82, $03, $03, $01, $08, $08
|
|
db $a0, $03, $03, $04, $0f, $0f
|
|
db $c8, $11, $11, $07, $02, $02
|
|
db $fa, $11, $11, $10, $0a, $0a
|
|
db $ff, $11, $11, $13, $14, $14
|
|
|
|
StarterPikachuEmotionCommand_5: ; fd9d0 (3f:59d0)
|
|
ld a, [H_AUTOBGTRANSFERENABLED]
|
|
push af
|
|
xor a
|
|
ld [H_AUTOBGTRANSFERENABLED], a
|
|
ld a, [de]
|
|
ld [wExpressionNumber2], a
|
|
inc de
|
|
push de
|
|
call Func_fd9e4
|
|
pop de
|
|
pop af
|
|
ld [H_AUTOBGTRANSFERENABLED], a
|
|
ret
|
|
|
|
Func_fd9e4:
|
|
call Func_fda2c
|
|
callab Func_720e3
|
|
call Func_fd9ff
|
|
call LoadCurrentPikaPicAnimScriptPointer
|
|
call Func_fda9a
|
|
call Func_fda2c
|
|
call RunDefaultPaletteCommand
|
|
ret
|
|
|
|
Func_fd9ff:
|
|
ld hl, wPikaPicAnimPointer
|
|
ld bc, $11
|
|
xor a
|
|
call FillMemory
|
|
ld hl, wPikaPicAnimObjectDataBufferSize
|
|
ld bc, $21
|
|
xor a
|
|
call FillMemory
|
|
call Func_fe15c
|
|
ld hl, $64
|
|
ld a, l
|
|
ld [wPikaPicAnimTimer], a
|
|
ld a, h
|
|
ld [wPikaPicAnimTimer + 1], a
|
|
ld a, $07
|
|
ld [wPikaSpriteY], a
|
|
ld a, $06
|
|
ld [wPikaPicTextboxStartY], a
|
|
ret
|
|
|
|
Func_fda2c:
|
|
xor a
|
|
ld [H_AUTOBGTRANSFERENABLED], a
|
|
coord hl, 6, 5
|
|
lb bc, 5, 5
|
|
call TextBoxBorder
|
|
call Delay3
|
|
call UpdateSprites
|
|
ld a, $01
|
|
ld [H_AUTOBGTRANSFERENABLED], a
|
|
call Delay3
|
|
ret
|
|
|
|
LoadCurrentPikaPicAnimScriptPointer:
|
|
ld a, [wExpressionNumber2]
|
|
cp $1d
|
|
jr c, .valid
|
|
ld a, 0
|
|
.valid
|
|
ld e, a
|
|
ld d, 0
|
|
ld hl, Pointers_fda5e
|
|
add hl, de
|
|
add hl, de
|
|
ld a, [hli]
|
|
ld h, [hl]
|
|
ld l, a
|
|
call UpdatePikaPicAnimPointer
|
|
ret
|
|
|
|
Pointers_fda5e:
|
|
dw Data_fe28a ; 00
|
|
dw Data_fe28a ; 01
|
|
dw Data_fe2a4 ; 02
|
|
dw Data_fe2be ; 03
|
|
dw Data_fe2d8 ; 04
|
|
dw Data_fe2f2 ; 05
|
|
dw Data_fe30c ; 06
|
|
dw Data_fe326 ; 07
|
|
dw Data_fe340 ; 08
|
|
dw Data_fe35a ; 09
|
|
dw Data_fe374 ; 0a
|
|
dw Data_fe390 ; 0b
|
|
dw Data_fe3aa ; 0c
|
|
dw Data_fe3c4 ; 0d
|
|
dw Data_fe3de ; 0e
|
|
dw Data_fe3f8 ; 0f
|
|
dw Data_fe412 ; 10
|
|
dw Data_fe42c ; 11
|
|
dw Data_fe446 ; 12
|
|
dw Data_fe460 ; 13
|
|
dw Data_fe47a ; 14
|
|
dw Data_fe494 ; 15
|
|
dw Data_fe4b4 ; 16
|
|
dw Data_fe4ce ; 17
|
|
dw Data_fe4e8 ; 18
|
|
dw Data_fe502 ; 19
|
|
dw Data_fe520 ; 1a
|
|
dw Data_fe53e ; 1b
|
|
dw Data_fe558 ; 1c
|
|
dw Data_fe28a ; 1d
|
|
|
|
|
|
Func_fda9a:
|
|
.loop
|
|
xor a
|
|
ld [H_AUTOBGTRANSFERENABLED], a
|
|
call RunPikaPicAnimScript
|
|
call Func_fdad5
|
|
call Func_fdad6
|
|
call Func_fdad5
|
|
ld a, $01
|
|
ld [H_AUTOBGTRANSFERENABLED], a
|
|
call PikaPicAnimTimerAndJoypad
|
|
and a
|
|
jr z, .loop
|
|
ret
|
|
|
|
PikaPicAnimTimerAndJoypad:
|
|
call Delay3
|
|
call CheckPikaPicAnimTimer
|
|
and a
|
|
ret nz
|
|
call JoypadLowSensitivity
|
|
ld a, [hJoyPressed]
|
|
and A_BUTTON | B_BUTTON
|
|
ret
|
|
|
|
CheckPikaPicAnimTimer:
|
|
ld hl, wPikaPicAnimTimer
|
|
dec [hl]
|
|
jr nz, .not_done_yet
|
|
inc hl
|
|
ld a, [hl]
|
|
and a
|
|
jr z, .timer_expired
|
|
dec [hl]
|
|
.not_done_yet
|
|
xor a
|
|
ret
|
|
|
|
.timer_expired
|
|
ld a, $01
|
|
ret
|
|
|
|
Func_fdad5:
|
|
ret
|
|
|
|
Func_fdad6:
|
|
ld bc, wPikaPicAnimObjectDataBuffer
|
|
ld a, 4
|
|
.asm_fdadb
|
|
push af
|
|
push bc
|
|
ld hl, 0
|
|
add hl, bc
|
|
ld a, [hli]
|
|
and a
|
|
jr z, .asm_fdb26
|
|
ld a, [hli]
|
|
ld [wCurPikaPicAnimObject], a
|
|
ld a, [hli]
|
|
ld [wCurPikaPicAnimObject + 1], a
|
|
ld a, [hli]
|
|
ld [wCurPikaPicAnimObject + 2], a
|
|
ld a, [hli]
|
|
ld [wd456], a
|
|
ld a, [hli]
|
|
ld [wd457], a
|
|
ld a, [hli]
|
|
ld [wd458], a
|
|
ld a, [hli]
|
|
ld [wCurPikaPicAnimObject + 3], a
|
|
push bc
|
|
call Func_fdb7e
|
|
pop bc
|
|
ld hl, 1
|
|
add hl, bc
|
|
ld a, [wCurPikaPicAnimObject]
|
|
ld [hli], a
|
|
ld a, [wCurPikaPicAnimObject + 1]
|
|
ld [hli], a
|
|
ld a, [wCurPikaPicAnimObject + 2]
|
|
ld [hli], a
|
|
ld a, [wd456]
|
|
ld [hli], a
|
|
ld a, [wd457]
|
|
ld [hli], a
|
|
ld a, [wd458]
|
|
ld [hli], a
|
|
ld a, [wCurPikaPicAnimObject + 3]
|
|
ld [hl], a
|
|
.asm_fdb26
|
|
pop bc
|
|
ld hl, 8
|
|
add hl, bc
|
|
ld b, h
|
|
ld c, l
|
|
pop af
|
|
dec a
|
|
jr nz, .asm_fdadb
|
|
ret
|
|
|
|
PikaPicAnimCommand_object:
|
|
ld hl, wPikaPicAnimObjectDataBuffer
|
|
ld de, 8
|
|
ld c, 4
|
|
.loop
|
|
ld a, [hl]
|
|
and a
|
|
jr z, .found
|
|
add hl, de
|
|
dec c
|
|
jr nz, .loop
|
|
scf
|
|
ret
|
|
|
|
.found
|
|
ld a, [wPikaPicAnimObjectDataBufferSize]
|
|
inc a
|
|
ld [wPikaPicAnimObjectDataBufferSize], a
|
|
ld [hli], a
|
|
call GetPikaPicAnimByte
|
|
ld [hli], a
|
|
call GetPikaPicAnimByte
|
|
ld [hl], a
|
|
xor a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
call GetPikaPicAnimByte
|
|
ld [hli], a
|
|
call GetPikaPicAnimByte
|
|
ld [hli], a
|
|
call GetPikaPicAnimByte
|
|
ld [hli], a
|
|
and a
|
|
ret
|
|
|
|
PikaPicAnimCommand_deleteobject:
|
|
call GetPikaPicAnimByte
|
|
ld b, a
|
|
ld hl, wPikaPicAnimObjectDataBuffer
|
|
ld de, 8
|
|
ld c, 4
|
|
.search
|
|
ld a, [hl]
|
|
cp b
|
|
jr z, .delete
|
|
add hl, de
|
|
dec c
|
|
jr nz, .search
|
|
scf
|
|
ret
|
|
|
|
.delete
|
|
xor a
|
|
ld [hl], a
|
|
ret
|
|
|
|
Func_fdb7e:
|
|
.asm_fdb7e
|
|
ld a, [wCurPikaPicAnimObject]
|
|
cp $23
|
|
jr c, .asm_fdb87
|
|
ld a, $04
|
|
.asm_fdb87
|
|
ld e, a
|
|
ld d, $00
|
|
ld hl, Pointers_fdbc9
|
|
add hl, de
|
|
add hl, de
|
|
ld a, [hli]
|
|
ld h, [hl]
|
|
ld l, a
|
|
ld a, [wCurPikaPicAnimObject + 1]
|
|
ld e, a
|
|
ld d, 0
|
|
add hl, de
|
|
add hl, de
|
|
ld a, [hli]
|
|
cp $e0
|
|
jr z, .asm_fdba1
|
|
jr .asm_fdbaa
|
|
|
|
.asm_fdba1
|
|
xor a
|
|
ld [wCurPikaPicAnimObject + 1], a
|
|
ld [wCurPikaPicAnimObject + 2], a
|
|
jr .asm_fdb7e
|
|
|
|
.asm_fdbaa
|
|
push hl
|
|
call Func_fdd62
|
|
pop hl
|
|
ld a, [hl]
|
|
and a
|
|
jr z, .asm_fdbc8
|
|
ld a, [wCurPikaPicAnimObject + 2]
|
|
inc a
|
|
ld [wCurPikaPicAnimObject + 2], a
|
|
cp [hl]
|
|
jr nz, .asm_fdbc8
|
|
xor a
|
|
ld [wCurPikaPicAnimObject + 2], a
|
|
ld a, [wCurPikaPicAnimObject + 1]
|
|
inc a
|
|
ld [wCurPikaPicAnimObject + 1], a
|
|
.asm_fdbc8
|
|
ret
|
|
|
|
Pointers_fdbc9:
|
|
dw Data_fdc11
|
|
dw Data_fdc11
|
|
dw Data_fdc29
|
|
dw Data_fdc32
|
|
dw Data_fdc3b
|
|
dw Data_fdc3e
|
|
dw Data_fdc41
|
|
dw Data_fdc50
|
|
dw Data_fdc61
|
|
dw Data_fdc6e
|
|
dw Data_fdc77
|
|
dw Data_fdc84
|
|
dw Data_fdc8d
|
|
dw Data_fdc98
|
|
dw Data_fdca5
|
|
dw Data_fdcb2
|
|
dw Data_fdcb7
|
|
dw Data_fdcc2
|
|
dw Data_fdccb
|
|
dw Data_fdcd4
|
|
dw Data_fdcdf
|
|
dw Data_fdce8
|
|
dw Data_fdcf1
|
|
dw Data_fdcf6
|
|
dw Data_fdd01
|
|
dw Data_fdd0a
|
|
dw Data_fdd13
|
|
dw Data_fdd1c
|
|
dw Data_fdd27
|
|
dw Data_fdd2c
|
|
dw Data_fdd35
|
|
dw Data_fdd40
|
|
dw Data_fdd47
|
|
dw Data_fdd54
|
|
dw Data_fdd59
|
|
dw Data_fdc3b
|
|
|
|
Data_fdc11:
|
|
db $01, $14
|
|
db $07, $02
|
|
db $01, $01
|
|
db $07, $02
|
|
db $01, $01
|
|
db $07, $08
|
|
db $e0
|
|
Data_fdc1e:
|
|
db $02, $02
|
|
db $01, $01
|
|
db $02, $02
|
|
db $01, $01
|
|
db $02, $08
|
|
db $e0
|
|
Data_fdc29:
|
|
db $00, $08
|
|
db $08, $08
|
|
db $00, $08
|
|
db $08, $08
|
|
db $e0
|
|
Data_fdc32:
|
|
db $08, $08
|
|
db $00, $08
|
|
db $08, $08
|
|
db $00, $08
|
|
db $e0
|
|
Data_fdc3b:
|
|
db $01, $00
|
|
db $e0
|
|
Data_fdc3e:
|
|
db $09, $00
|
|
db $e0
|
|
Data_fdc41:
|
|
db $00, $02
|
|
db $0e, $04
|
|
db $00, $08
|
|
db $0e, $04
|
|
db $00, $40
|
|
db $0e, $04
|
|
db $00, $40
|
|
db $e0
|
|
Data_fdc50:
|
|
db $00, $04
|
|
db $0f, $04
|
|
db $00, $04
|
|
db $0f, $04
|
|
db $00, $08
|
|
db $0f, $04
|
|
db $00, $08
|
|
db $0f, $04
|
|
db $e0
|
|
Data_fdc61:
|
|
db $10, $01
|
|
db $00, $01
|
|
db $10, $01
|
|
db $00, $40
|
|
db $10, $01
|
|
db $00, $40
|
|
db $e0
|
|
Data_fdc6e:
|
|
db $00, $08
|
|
db $11, $08
|
|
db $00, $14
|
|
db $11, $08
|
|
db $e0
|
|
Data_fdc77:
|
|
db $00, $02
|
|
db $12, $02
|
|
db $00, $02
|
|
db $12, $40
|
|
db $00, $03
|
|
db $12, $40
|
|
db $e0
|
|
Data_fdc84:
|
|
db $00, $08
|
|
db $13, $40
|
|
db $00, $04
|
|
db $13, $40
|
|
db $e0
|
|
Data_fdc8d:
|
|
db $14, $08
|
|
db $00, $02
|
|
db $14, $08
|
|
db $00, $02
|
|
db $14, $08
|
|
db $e0
|
|
Data_fdc98:
|
|
db $15, $04
|
|
db $00, $08
|
|
db $15, $04
|
|
db $00, $40
|
|
db $15, $04
|
|
db $00, $40
|
|
db $e0
|
|
Data_fdca5:
|
|
db $00, $02
|
|
db $16, $02
|
|
db $00, $02
|
|
db $16, $02
|
|
db $00, $14
|
|
db $16, $02
|
|
db $e0
|
|
Data_fdcb2:
|
|
db $00, $08
|
|
db $17, $08
|
|
db $e0
|
|
Data_fdcb7:
|
|
db $00, $08
|
|
db $17, $03
|
|
db $18, $05
|
|
db $17, $03
|
|
db $00, $05
|
|
db $e0
|
|
Data_fdcc2:
|
|
db $00, $14
|
|
db $19, $08
|
|
db $00, $14
|
|
db $19, $08
|
|
db $e0
|
|
Data_fdccb:
|
|
db $00, $0d
|
|
db $1a, $0c
|
|
db $00, $64
|
|
db $1a, $08
|
|
db $e0
|
|
Data_fdcd4:
|
|
db $00, $05
|
|
db $1b, $05
|
|
db $00, $05
|
|
db $1b, $05
|
|
db $00, $64
|
|
db $e0
|
|
Data_fdcdf:
|
|
db $00, $02
|
|
db $1c, $02
|
|
db $00, $02
|
|
db $1c, $02
|
|
db $e0
|
|
Data_fdce8:
|
|
db $00, $05
|
|
db $1d, $05
|
|
db $00, $05
|
|
db $1d, $05
|
|
db $e0
|
|
Data_fdcf1:
|
|
db $1e, $08
|
|
db $00, $64
|
|
db $e0
|
|
Data_fdcf6:
|
|
db $00, $0a
|
|
db $1f, $03
|
|
db $00, $03
|
|
db $1f, $03
|
|
db $00, $64
|
|
db $e0
|
|
Data_fdd01:
|
|
db $00, $03
|
|
db $20, $64
|
|
db $00, $08
|
|
db $20, $08
|
|
db $e0
|
|
Data_fdd0a:
|
|
db $21, $06
|
|
db $00, $06
|
|
db $21, $06
|
|
db $00, $06
|
|
db $e0
|
|
Data_fdd13:
|
|
db $00, $08
|
|
db $22, $0c
|
|
db $00, $08
|
|
db $22, $0c
|
|
db $e0
|
|
Data_fdd1c:
|
|
db $00, $08
|
|
db $09, $02
|
|
db $0a, $01
|
|
db $0b, $01
|
|
db $0c, $64
|
|
db $e0
|
|
Data_fdd27:
|
|
db $00, $08
|
|
db $24, $64
|
|
db $e0
|
|
Data_fdd2c:
|
|
db $00, $10
|
|
db $25, $10
|
|
db $00, $10
|
|
db $25, $10
|
|
db $e0
|
|
Data_fdd35:
|
|
db $00, $06
|
|
db $26, $06
|
|
db $00, $06
|
|
db $26, $06
|
|
db $00, $64
|
|
db $e0
|
|
Data_fdd40:
|
|
db $00, $06
|
|
db $09, $06
|
|
db $0a, $64
|
|
db $e0
|
|
Data_fdd47:
|
|
db $00, $14
|
|
db $09, $08
|
|
db $00, $14
|
|
db $09, $08
|
|
db $0a, $08
|
|
db $0b, $64
|
|
db $e0
|
|
Data_fdd54:
|
|
db $00, $04
|
|
db $09, $64
|
|
db $e0
|
|
Data_fdd59:
|
|
db $00, $0c
|
|
db $09, $0c
|
|
db $00, $0c
|
|
db $09, $64
|
|
db $e0
|
|
|
|
Func_fdd62:
|
|
and a
|
|
ret z
|
|
ld e, a
|
|
ld d, 0
|
|
ld hl, Pointers_fddb8
|
|
add hl, de
|
|
add hl, de
|
|
ld e, [hl]
|
|
inc hl
|
|
ld d, [hl]
|
|
ld a, [de]
|
|
ld c, a
|
|
inc de
|
|
ld a, [de]
|
|
ld b, a
|
|
inc de
|
|
push de
|
|
push bc
|
|
call Func_fdd98
|
|
pop bc
|
|
pop de
|
|
.asm_fdd7c
|
|
push bc
|
|
push hl
|
|
ld a, [wd456]
|
|
ld c, a
|
|
.asm_fdd82
|
|
ld a, [de]
|
|
inc de
|
|
cp $ff
|
|
jr z, .asm_fdd8a
|
|
add c
|
|
ld [hl], a
|
|
.asm_fdd8a
|
|
inc hl
|
|
dec b
|
|
jr nz, .asm_fdd82
|
|
pop hl
|
|
ld bc, SCREEN_WIDTH
|
|
add hl, bc
|
|
pop bc
|
|
dec c
|
|
jr nz, .asm_fdd7c
|
|
ret
|
|
|
|
Func_fdd98:
|
|
push bc
|
|
ld a, [wd458]
|
|
ld b, a
|
|
ld a, [wPikaPicTextboxStartY]
|
|
add b
|
|
coord hl, 0, 0
|
|
ld bc, SCREEN_WIDTH
|
|
call AddNTimes
|
|
ld a, [wd457]
|
|
ld c, a
|
|
ld a, [wPikaSpriteY]
|
|
add c
|
|
ld c, a
|
|
ld b, 0
|
|
add hl, bc
|
|
pop bc
|
|
ret
|
|
|
|
Pointers_fddb8:
|
|
dw Data_fde0e
|
|
dw Data_fde0f
|
|
dw Data_fde2a
|
|
dw Data_fde60
|
|
dw Data_fde63
|
|
dw Data_fde67
|
|
dw Data_fde6b
|
|
dw Data_fde45
|
|
dw Data_fde6b
|
|
dw Data_fdfaa
|
|
dw Data_fdfc5
|
|
dw Data_fdfe0
|
|
dw Data_fdffb
|
|
dw Data_fe016
|
|
dw Data_fde81
|
|
dw Data_fde9c
|
|
dw Data_fdeb7
|
|
dw Data_fded2
|
|
dw Data_fdeed
|
|
dw Data_fdf08
|
|
dw Data_fdf23
|
|
dw Data_fdf3e
|
|
dw Data_fdf59
|
|
dw Data_fdf74
|
|
dw Data_fdf8f
|
|
dw Data_fdfaa
|
|
dw Data_fdfaa
|
|
dw Data_fdfaa
|
|
dw Data_fdfaa
|
|
dw Data_fdfaa
|
|
dw Data_fdfaa
|
|
dw Data_fdfaa
|
|
dw Data_fdfaa
|
|
dw Data_fdfaa
|
|
dw Data_fdfaa
|
|
dw Data_fdfaa
|
|
dw Data_fdfaa
|
|
dw Data_fdfaa
|
|
dw Data_fdfaa
|
|
dw Data_fdfaa
|
|
dw Data_fdfc5
|
|
dw Data_fdfe0
|
|
dw Data_fde0f
|
|
|
|
Data_fde0e:
|
|
db $ff ; unused
|
|
|
|
Data_fde0f: ; fde0f
|
|
db 5, 5
|
|
db $00, $05, $0a, $0f, $14
|
|
db $01, $06, $0b, $10, $15
|
|
db $02, $07, $0c, $11, $16
|
|
db $03, $08, $0d, $12, $17
|
|
db $04, $09, $0e, $13, $18
|
|
|
|
Data_fde2a: ; fde2a
|
|
db 5, 5
|
|
db $19, $1e, $23, $28, $2d
|
|
db $1a, $1f, $24, $29, $2e
|
|
db $1b, $20, $25, $2a, $2f
|
|
db $1c, $21, $26, $2b, $30
|
|
db $1d, $22, $27, $2c, $31
|
|
|
|
Data_fde45: ; fde45
|
|
db 5, 5
|
|
db $ff, $ff, $ff, $ff, $ff
|
|
db $ff, $ff, $ff, $ff, $ff
|
|
db $ff, $20, $25, $ff, $ff
|
|
db $ff, $21, $26, $ff, $ff
|
|
db $ff, $ff, $ff, $ff, $ff
|
|
|
|
Data_fde60: ; fde60
|
|
db 1, 1
|
|
db $00
|
|
|
|
Data_fde63: ; fde63
|
|
db 2, 1
|
|
db $00
|
|
db $01
|
|
|
|
Data_fde67: ; fde67
|
|
db 1, 2
|
|
db $00, $01
|
|
|
|
Data_fde6b: ; fde6b
|
|
db 2, 2
|
|
db $00, $01
|
|
db $02, $03
|
|
|
|
Data_fde71: ; fde71
|
|
db 3, 2
|
|
db $00, $01
|
|
db $02, $03
|
|
db $04, $05
|
|
|
|
Data_fde79: ; fde79
|
|
db 2, 3
|
|
db $00, $01, $02
|
|
db $03, $04, $05
|
|
|
|
Data_fde81: ; fde81
|
|
db 5, 5
|
|
db $ff, $ff, $ff, $ff, $ff
|
|
db $ff, $ff, $ff, $ff, $ff
|
|
db $00, $01, $02, $03, $04
|
|
db $ff, $ff, $ff, $ff, $ff
|
|
db $ff, $ff, $ff, $ff, $ff
|
|
|
|
Data_fde9c: ; fde9c
|
|
db 5, 5
|
|
db $ff, $ff, $ff, $ff, $ff
|
|
db $ff, $ff, $ff, $ff, $ff
|
|
db $ff, $ff, $ff, $ff, $ff
|
|
db $00, $01, $02, $03, $04
|
|
db $05, $06, $07, $08, $09
|
|
|
|
Data_fdeb7: ; fdeb7
|
|
db 5, 5
|
|
db $00, $01, $ff, $ff, $ff
|
|
db $02, $03, $ff, $ff, $ff
|
|
db $04, $05, $ff, $ff, $ff
|
|
db $ff, $ff, $ff, $ff, $ff
|
|
db $ff, $ff, $ff, $ff, $ff
|
|
|
|
Data_fded2: ; fded2
|
|
db 5, 5
|
|
db $ff, $ff, $ff, $ff, $ff
|
|
db $00, $01, $02, $03, $04
|
|
db $05, $06, $07, $08, $09
|
|
db $0a, $0b, $0c, $0d, $0e
|
|
db $0f, $10, $11, $12, $13
|
|
|
|
Data_fdeed: ; fdeed
|
|
db 5, 5
|
|
db $ff, $ff, $ff, $ff, $ff
|
|
db $ff, $ff, $ff, $00, $01
|
|
db $ff, $ff, $ff, $02, $03
|
|
db $ff, $ff, $ff, $ff, $ff
|
|
db $ff, $ff, $ff, $ff, $ff
|
|
|
|
Data_fdf08: ; fdf08
|
|
db 5, 5
|
|
db $ff, $ff, $ff, $ff, $ff
|
|
db $ff, $ff, $ff, $ff, $ff
|
|
db $00, $01, $ff, $ff, $ff
|
|
db $02, $03, $ff, $ff, $ff
|
|
db $ff, $ff, $ff, $ff, $ff
|
|
|
|
Data_fdf23: ; fdf23
|
|
db 5, 5
|
|
db $00, $01, $02, $03, $04
|
|
db $05, $06, $07, $08, $09
|
|
db $0a, $0b, $0c, $0d, $0e
|
|
db $0f, $10, $11, $12, $13
|
|
db $14, $15, $16, $17, $18
|
|
|
|
Data_fdf3e: ; fdf3e
|
|
db 5, 5
|
|
db $ff, $ff, $ff, $ff, $ff
|
|
db $ff, $ff, $ff, $ff, $ff
|
|
db $00, $01, $02, $03, $04
|
|
db $05, $06, $07, $08, $09
|
|
db $ff, $ff, $ff, $ff, $ff
|
|
|
|
Data_fdf59: ; fdf59
|
|
db 5, 5
|
|
db $ff, $ff, $ff, $ff, $ff
|
|
db $ff, $ff, $ff, $ff, $ff
|
|
db $00, $01, $ff, $ff, $ff
|
|
db $02, $03, $ff, $ff, $ff
|
|
db $04, $05, $ff, $ff, $ff
|
|
|
|
Data_fdf74: ; fdf74
|
|
db 5, 5
|
|
db $00, $01, $02, $03, $04
|
|
db $05, $06, $07, $08, $09
|
|
db $0a, $0b, $0c, $0d, $0e
|
|
db $0f, $10, $11, $12, $13
|
|
db $14, $15, $16, $17, $18
|
|
|
|
Data_fdf8f: ; fdf8f
|
|
db 5, 5
|
|
db $19, $1a, $1b, $1c, $1d
|
|
db $1e, $1f, $20, $21, $22
|
|
db $23, $24, $25, $26, $27
|
|
db $28, $29, $2a, $2b, $2c
|
|
db $2d, $2e, $2f, $30, $31
|
|
|
|
Data_fdfaa: ; fdfaa
|
|
db 5, 5
|
|
db $00, $01, $02, $03, $04
|
|
db $05, $06, $07, $08, $09
|
|
db $0a, $0b, $0c, $0d, $0e
|
|
db $0f, $10, $11, $12, $13
|
|
db $14, $15, $16, $17, $18
|
|
|
|
Data_fdfc5: ; fdfc5
|
|
db 5, 5
|
|
db $19, $1a, $1b, $1c, $1d
|
|
db $1e, $1f, $20, $21, $22
|
|
db $23, $24, $25, $26, $27
|
|
db $28, $29, $2a, $2b, $2c
|
|
db $2d, $2e, $2f, $30, $31
|
|
|
|
Data_fdfe0: ; fdfe0
|
|
db 5, 5
|
|
db $32, $33, $34, $35, $36
|
|
db $37, $38, $39, $3a, $3b
|
|
db $3c, $3d, $3e, $3f, $40
|
|
db $41, $42, $43, $44, $45
|
|
db $46, $47, $48, $49, $4a
|
|
|
|
Data_fdffb: ; fdffb
|
|
db 5, 5
|
|
db $4b, $4c, $4d, $4e, $4f
|
|
db $50, $51, $52, $53, $54
|
|
db $55, $56, $57, $58, $59
|
|
db $5a, $5b, $5c, $5d, $5e
|
|
db $5f, $60, $61, $62, $63
|
|
|
|
Data_fe016: ; fe016
|
|
db 5, 5
|
|
db $64, $65, $66, $67, $68
|
|
db $69, $6a, $6b, $6c, $6d
|
|
db $6e, $6f, $70, $71, $72
|
|
db $73, $74, $75, $76, $77
|
|
db $78, $79, $7a, $7b, $7c
|
|
|
|
LoadPikaPicAnimGFXHeader:
|
|
push hl
|
|
ld e, a
|
|
ld d, 0
|
|
ld hl, PikaPicAnimGFXHeaders
|
|
add hl, de
|
|
add hl, de
|
|
add hl, de
|
|
add hl, de
|
|
ld a, [hli]
|
|
ld c, a
|
|
ld a, [hli]
|
|
ld b, a
|
|
ld a, [hli]
|
|
ld e, a
|
|
ld a, [hli]
|
|
ld d, a
|
|
pop hl
|
|
ret
|
|
|
|
RunPikaPicAnimScript:
|
|
call Func_fe066
|
|
ret c
|
|
xor a
|
|
ld [wPikaPicAnimPointerSetupFinished], a
|
|
.loop
|
|
call GetPikaPicAnimByte
|
|
ld e, a
|
|
ld d, 0
|
|
ld hl, Jumptable_fe071
|
|
add hl, de
|
|
add hl, de
|
|
ld a, [hli]
|
|
ld h, [hl]
|
|
ld l, a
|
|
call JumpToAddress
|
|
ld a, [wPikaPicAnimPointerSetupFinished]
|
|
and a
|
|
jr z, .loop
|
|
ret
|
|
|
|
Func_fe066:
|
|
ld a, [wPikaPicAnimDelay]
|
|
and a
|
|
ret z
|
|
dec a
|
|
ld [wPikaPicAnimDelay], a
|
|
scf
|
|
ret
|
|
|
|
Jumptable_fe071:
|
|
dw PikaPicAnimCommand_nop ; 00, 0 params
|
|
dw PikaPicAnimCommand_writebyte ; 01, 1 param
|
|
dw PikaPicAnimCommand_loadgfx ; 02, 1 param
|
|
dw PikaPicAnimCommand_object ; 03, 5 params
|
|
dw PikaPicAnimCommand_nop4 ; 04, 0 params
|
|
dw PikaPicAnimCommand_nop5 ; 05, 0 params
|
|
dw PikaPicAnimCommand_deleteobject ; 06, 1 param
|
|
dw PikaPicAnimCommand_nop7 ; 07, 0 params
|
|
dw PikaPicAnimCommand_nop8 ; 08, 0 params
|
|
dw PikaPicAnimCommand_jump ; 09, 1 dw param
|
|
dw PikaPicAnimCommand_setduration ; 0a, 1 dw param
|
|
dw PikaPicAnimCommand_cry ; 0b, 1 param
|
|
dw PikaPicAnimCommand_thunderbolt ; 0c, 0 params
|
|
dw PikaPicAnimCommand_waitbgmap ; 0d, 0 params (ret)
|
|
dw PikaPicAnimCommand_ret ; 0e, 0 params (ret)
|
|
|
|
PikaPicAnimCommand_nop:
|
|
ret
|
|
|
|
PikaPicAnimCommand_ret:
|
|
ld a, 1
|
|
ld [wPikaPicAnimTimer], a
|
|
xor a
|
|
ld [wPikaPicAnimTimer + 1], a
|
|
jr PikaPicAnimCommand_waitbgmap
|
|
|
|
Func_fe09b:
|
|
ret
|
|
|
|
PikaPicAnimCommand_setduration:
|
|
call GetPikaPicAnimByte
|
|
ld [wPikaPicAnimTimer], a
|
|
call GetPikaPicAnimByte
|
|
ld [wPikaPicAnimTimer + 1], a
|
|
ret
|
|
|
|
PikaPicAnimCommand_waitbgmap:
|
|
ld a, $ff
|
|
ld [wPikaPicAnimPointerSetupFinished], a
|
|
ret
|
|
|
|
PikaPicAnimCommand_writebyte:
|
|
call GetPikaPicAnimByte
|
|
ld [wPikaPicAnimDelay], a
|
|
ret
|
|
|
|
PikaPicAnimCommand_nop4:
|
|
PikaPicAnimCommand_nop5:
|
|
PikaPicAnimCommand_nop7:
|
|
PikaPicAnimCommand_nop8:
|
|
ret
|
|
|
|
PikaPicAnimCommand_jump:
|
|
call GetPikaPicAnimByte
|
|
ld l, a
|
|
call GetPikaPicAnimByte
|
|
ld h, a
|
|
call UpdatePikaPicAnimPointer
|
|
ret
|
|
|
|
GetPikaPicAnimByte:
|
|
push hl
|
|
ld hl, wPikaPicAnimPointer
|
|
ld a, [hli]
|
|
ld h, [hl]
|
|
ld l, a
|
|
ld a, [hli]
|
|
call UpdatePikaPicAnimPointer
|
|
pop hl
|
|
ret
|
|
|
|
UpdatePikaPicAnimPointer:
|
|
push af
|
|
ld a, l
|
|
ld [wPikaPicAnimPointer], a
|
|
ld a, h
|
|
ld [wPikaPicAnimPointer + 1], a
|
|
pop af
|
|
ret
|
|
|
|
PikaPicAnimCommand_loadgfx:
|
|
ld a, [wUpdateSpritesEnabled]
|
|
push af
|
|
ld a, $ff
|
|
ld [wUpdateSpritesEnabled], a
|
|
ld a, [H_AUTOBGTRANSFERENABLED]
|
|
push af
|
|
xor a
|
|
ld [H_AUTOBGTRANSFERENABLED], a
|
|
ld a, [hTilesetType]
|
|
push af
|
|
xor a
|
|
ld [hTilesetType], a
|
|
call GetPikaPicAnimByte
|
|
ld [wPikaPicAnimCurGraphicID], a
|
|
ld a, [wPikaPicAnimCurGraphicID]
|
|
call LoadPikaPicAnimGFXHeader
|
|
ld a, c
|
|
cp a, $ff
|
|
jr z, .compressed
|
|
call RequestPikaPicAnimGFX
|
|
jr .asm_fe109
|
|
|
|
.compressed
|
|
call DecompressRequestPikaPicAnimGFX
|
|
.asm_fe109
|
|
pop af
|
|
ld [hTilesetType], a
|
|
pop af
|
|
ld [H_AUTOBGTRANSFERENABLED], a
|
|
pop af
|
|
ld [wUpdateSpritesEnabled], a
|
|
ret
|
|
|
|
RequestPikaPicAnimGFX: ; fe114
|
|
push de
|
|
ld a, [wPikaPicAnimCurGraphicID]
|
|
ld d, a
|
|
ld e, c
|
|
call CheckIfThereIsRoomForPikaPicAnimGFX
|
|
pop de
|
|
jr c, .failed
|
|
call GetPikaPicVRAMAddressForNewGFX
|
|
call CopyVideoDataAlternate
|
|
and a
|
|
.failed
|
|
ret
|
|
|
|
DecompressRequestPikaPicAnimGFX: ; fe128
|
|
push de
|
|
ld a, [wPikaPicAnimCurGraphicID]
|
|
ld d, a
|
|
ld e, 5 * 5
|
|
call CheckIfThereIsRoomForPikaPicAnimGFX
|
|
pop de
|
|
jr c, .failed
|
|
ld a, b
|
|
call UncompressSpriteFromDE
|
|
ld a, BANK(S_SPRITEBUFFER1)
|
|
call SwitchSRAMBankAndLatchClockData
|
|
ld hl, S_SPRITEBUFFER1
|
|
ld de, S_SPRITEBUFFER0
|
|
ld bc, SPRITEBUFFERSIZE * 2
|
|
call CopyData
|
|
call PrepareRTCDataAndDisableSRAM
|
|
ld a, [wPikaPicAnimCurGraphicID]
|
|
call LookUpTileOffsetForCurrentPikaPicAnimGFX
|
|
call GetPikaPicVRAMAddressForNewGFX
|
|
ld d, h
|
|
ld e, l
|
|
call InterlaceMergeSpriteBuffers
|
|
.failed
|
|
ret
|
|
|
|
Func_fe15c:
|
|
ld hl, wNPCMovementDirections
|
|
ld bc, $11
|
|
xor a
|
|
call FillMemory
|
|
ret
|
|
|
|
GetPikaPicVRAMAddressForNewGFX:
|
|
ld hl, vNPCSprites
|
|
push bc
|
|
ld b, a
|
|
and $f
|
|
swap a
|
|
ld c, a
|
|
ld a, b
|
|
and $f0
|
|
swap a
|
|
ld b, a
|
|
add hl, bc
|
|
pop bc
|
|
ret
|
|
|
|
CheckIfThereIsRoomForPikaPicAnimGFX:
|
|
push bc
|
|
push hl
|
|
ld hl, wNPCMovementDirections + 1
|
|
ld c, 8
|
|
.loop
|
|
ld a, [hl]
|
|
and a
|
|
jr z, .empty
|
|
cp d
|
|
jr z, .found
|
|
inc hl
|
|
inc hl
|
|
dec c
|
|
jr nz, .loop
|
|
scf
|
|
ret ; execute hl, then bc
|
|
|
|
.found
|
|
inc hl
|
|
ld a, [hl]
|
|
ret ; execute hl, then bc
|
|
|
|
.empty
|
|
ld [hl], d
|
|
inc hl
|
|
ld a, [wNPCMovementDirections]
|
|
add $80
|
|
ld [hl], a
|
|
ld a, [wNPCMovementDirections]
|
|
add e
|
|
ld [wNPCMovementDirections], a
|
|
cp $80
|
|
jr z, .asm_fe1a7
|
|
jr nc, .failed
|
|
.asm_fe1a7
|
|
ld a, [hl]
|
|
and a
|
|
jr .pop_ret
|
|
|
|
.failed
|
|
scf
|
|
.pop_ret
|
|
pop hl
|
|
pop bc
|
|
ret
|
|
|
|
LookUpTileOffsetForCurrentPikaPicAnimGFX:
|
|
push bc
|
|
push hl
|
|
ld b, a
|
|
ld hl, wNPCMovementDirections + 1
|
|
ld c, 8
|
|
.loop
|
|
ld a, [hli]
|
|
cp b
|
|
jr z, .found
|
|
inc hl
|
|
dec c
|
|
jr nz, .loop
|
|
scf
|
|
jr .pop_ret
|
|
|
|
.found
|
|
ld a, [hl]
|
|
and a
|
|
.pop_ret
|
|
pop hl
|
|
pop bc
|
|
ret
|
|
|
|
PikaPicAnimCommand_cry:
|
|
call GetPikaPicAnimByte
|
|
cp $ff
|
|
ret z
|
|
ld e, a
|
|
callab PlayPikachuSoundClip
|
|
ret
|
|
|
|
PikaPicAnimCommand_thunderbolt:
|
|
ld a, $1
|
|
ld [wMuteAudioAndPauseMusic], a
|
|
call DelayFrame
|
|
ld a, [wAudioROMBank]
|
|
push af
|
|
ld a, BANK(SFX_Battle_2F)
|
|
ld [wAudioROMBank], a
|
|
ld [wAudioSavedROMBank], a
|
|
call PikaPicAnimLoadThunderboltAudio
|
|
call PlaySound
|
|
call PikaPicAnimThunderboltFlashScreen
|
|
call WaitForSoundToFinish
|
|
pop af
|
|
ld [wAudioROMBank], a
|
|
ld [wAudioSavedROMBank], a
|
|
xor a
|
|
ld [wMuteAudioAndPauseMusic], a
|
|
ret
|
|
|
|
PikaPicAnimLoadThunderboltAudio:
|
|
ld hl, MoveSoundTable
|
|
ld e, THUNDERBOLT
|
|
ld d, 0
|
|
add hl, de
|
|
add hl, de
|
|
add hl, de
|
|
ld a, BANK(MoveSoundTable)
|
|
call GetFarByte
|
|
ld b, a
|
|
inc hl
|
|
ld a, BANK(MoveSoundTable)
|
|
call GetFarByte
|
|
inc hl
|
|
ld [wFrequencyModifier], a
|
|
ld a, BANK(MoveSoundTable)
|
|
call GetFarByte
|
|
ld [wTempoModifier], a
|
|
ld a, b
|
|
ret
|
|
|
|
PikaPicAnimThunderboltFlashScreen:
|
|
ld hl, Data_fe242
|
|
.loop
|
|
ld a, [hli]
|
|
cp $ff
|
|
ret z
|
|
ld c, a
|
|
ld b, [hl]
|
|
inc hl
|
|
push hl
|
|
call GetDMGBGPalForPikaThunderbolt
|
|
pop hl
|
|
jr .loop
|
|
|
|
GetDMGBGPalForPikaThunderbolt:
|
|
ld a, b
|
|
ld [rBGP], a
|
|
call UpdateGBCPal_BGP
|
|
call DelayFrames
|
|
ret
|
|
|
|
Data_fe242:
|
|
db 4, %11000000
|
|
db 4, %11100100
|
|
db 4, %11000000
|
|
db 4, %11100100
|
|
db 4, %11000000
|
|
db 4, %11100100
|
|
db 4, %11000000
|
|
db 4, %11100100
|
|
db 4, %11000000
|
|
db 4, %11100100
|
|
db 4, %11000000
|
|
db 4, %11100100
|
|
db 4, %11000000
|
|
db 4, %11100100
|
|
db 4, %11000000
|
|
db 4, %11100100
|
|
db 4, %11000000
|
|
db 4, %11100100
|
|
db 4, %11000000
|
|
db 4, %11100100
|
|
db $ff
|
|
|
|
Data_fe26b: ; fe26b (3f:626b)
|
|
pikapic_loadgfx Pic_e4000
|
|
pikapic_loadgfx Pic_e49d1
|
|
pikapic_loadgfx PikachuSprite
|
|
pikapic_object $1, $80, $0, $0
|
|
pikapic_object $2, $b2, $5, $5
|
|
pikapic_object $3, $b6, $5, $5
|
|
pikapic_waitbgmap
|
|
pikapic_cry
|
|
Data_fe286: ; fe286 (3f:6286)
|
|
pikapic_waitbgmap
|
|
pikapic_jump Data_fe286
|
|
|
|
Data_fe28a: ; fe28a (3f:628a)
|
|
pikapic_setduration 40
|
|
pikapic_loadgfx Pic_e4000
|
|
pikapic_loadgfx GFX_e40cc
|
|
pikapic_object $4, $80, $0, $0
|
|
pikapic_object $6, $99, $0, $0
|
|
pikapic_waitbgmap
|
|
pikapic_cry PikachuCry3
|
|
Data_fe2a0: ; fe2a0 (3f:62a0)
|
|
pikapic_waitbgmap
|
|
pikapic_jump Data_fe2a0
|
|
|
|
Data_fe2a4: ; fe2a4 (3f:62a4)
|
|
pikapic_setduration 44
|
|
pikapic_loadgfx Pic_e411c
|
|
pikapic_loadgfx GFX_e41d2
|
|
pikapic_object $4, $80, $0, $0
|
|
pikapic_object $7, $99, $0, $0
|
|
pikapic_waitbgmap
|
|
pikapic_cry
|
|
Data_fe2ba: ; fe2ba (3f:62ba)
|
|
pikapic_waitbgmap
|
|
pikapic_jump Data_fe2ba
|
|
|
|
Data_fe2be: ; fe2be (3f:62be)
|
|
pikapic_setduration 80
|
|
pikapic_loadgfx Pic_e4272
|
|
pikapic_loadgfx GFX_e4323
|
|
pikapic_object $4, $80, $0, $0
|
|
pikapic_object $8, $99, $0, $0
|
|
pikapic_waitbgmap
|
|
pikapic_cry
|
|
Data_fe2d4: ; fe2d4 (3f:62d4)
|
|
pikapic_waitbgmap
|
|
pikapic_jump Data_fe2d4
|
|
|
|
Data_fe2d8: ; fe2d8 (3f:62d8)
|
|
pikapic_setduration 70
|
|
pikapic_loadgfx Pic_e4383
|
|
pikapic_loadgfx GFX_e444b
|
|
pikapic_object $4, $80, $0, $0
|
|
pikapic_object $9, $99, $0, $0
|
|
pikapic_waitbgmap
|
|
pikapic_cry
|
|
Data_fe2ee: ; fe2ee (3f:62ee)
|
|
pikapic_waitbgmap
|
|
pikapic_jump Data_fe2ee
|
|
|
|
Data_fe2f2: ; fe2f2 (3f:62f2)
|
|
pikapic_setduration 32
|
|
pikapic_loadgfx Pic_e458b
|
|
pikapic_loadgfx GFX_e463b
|
|
pikapic_object $4, $80, $0, $0
|
|
pikapic_object $a, $99, $0, $0
|
|
pikapic_waitbgmap
|
|
pikapic_cry
|
|
Data_fe308: ; fe308 (3f:6308)
|
|
pikapic_waitbgmap
|
|
pikapic_jump Data_fe308
|
|
|
|
Data_fe30c: ; fe30c (3f:630c)
|
|
pikapic_setduration 50
|
|
pikapic_loadgfx Pic_e467b
|
|
pikapic_loadgfx GFX_e472e
|
|
pikapic_object $4, $80, $0, $0
|
|
pikapic_object $b, $99, $0, $0
|
|
pikapic_waitbgmap
|
|
pikapic_cry PikachuCry38
|
|
Data_fe322: ; fe322 (3f:6322)
|
|
pikapic_waitbgmap
|
|
pikapic_jump Data_fe322
|
|
|
|
Data_fe326: ; fe326 (3f:6326)
|
|
pikapic_setduration 58
|
|
pikapic_loadgfx Pic_e476e
|
|
pikapic_loadgfx GFX_e4841
|
|
pikapic_object $4, $80, $0, $0
|
|
pikapic_object $c, $99, $0, $0
|
|
pikapic_waitbgmap
|
|
pikapic_cry
|
|
Data_fe33c: ; fe33c (3f:633c)
|
|
pikapic_waitbgmap
|
|
pikapic_jump Data_fe33c
|
|
|
|
Data_fe340: ; fe340 (3f:6340)
|
|
pikapic_setduration 44
|
|
pikapic_loadgfx Pic_e49d1
|
|
pikapic_loadgfx GFX_e4a99
|
|
pikapic_object $4, $80, $0, $0
|
|
pikapic_object $d, $99, $0, $0
|
|
pikapic_waitbgmap
|
|
pikapic_cry
|
|
Data_fe356: ; fe356 (3f:6356)
|
|
pikapic_waitbgmap
|
|
pikapic_jump Data_fe356
|
|
|
|
Data_fe35a: ; fe35a (3f:635a)
|
|
pikapic_setduration 56
|
|
pikapic_loadgfx Pic_e4b39
|
|
pikapic_loadgfx GFX_e4bde
|
|
pikapic_object $4, $80, $0, $0
|
|
pikapic_object $e, $99, $0, $0
|
|
pikapic_waitbgmap
|
|
pikapic_cry
|
|
Data_fe370: ; fe370 (3f:6370)
|
|
pikapic_waitbgmap
|
|
pikapic_jump Data_fe370
|
|
|
|
Data_fe374: ; fe374 (3f:6374)
|
|
pikapic_setduration 56
|
|
pikapic_loadgfx Pic_e4c3e
|
|
pikapic_loadgfx GFX_e4ce0
|
|
pikapic_loadgfx GFX_e4e70
|
|
pikapic_object $4, $80, $0, $0
|
|
pikapic_object $10, $99, $0, $0
|
|
pikapic_waitbgmap
|
|
pikapic_cry
|
|
Data_fe38c: ; fe38c (3f:638c)
|
|
pikapic_waitbgmap
|
|
pikapic_jump Data_fe38c
|
|
|
|
Data_fe390: ; fe390 (3f:6390)
|
|
pikapic_setduration 100
|
|
pikapic_loadgfx Pic_e5000
|
|
pikapic_loadgfx GFX_e50af
|
|
pikapic_object $4, $80, $0, $0
|
|
pikapic_object $11, $99, $0, $0
|
|
pikapic_waitbgmap
|
|
pikapic_cry
|
|
Data_fe3a6: ; fe3a6 (3f:63a6)
|
|
pikapic_waitbgmap
|
|
pikapic_jump Data_fe3a6
|
|
|
|
Data_fe3aa: ; fe3aa (3f:63aa)
|
|
pikapic_setduration 50
|
|
pikapic_loadgfx Pic_e523f
|
|
pikapic_loadgfx GFX_e52fe
|
|
pikapic_object $4, $80, $0, $0
|
|
pikapic_object $12, $99, $0, $0
|
|
pikapic_waitbgmap
|
|
pikapic_cry PikachuCry25
|
|
Data_fe3c0: ; fe3c0 (3f:63c0)
|
|
pikapic_waitbgmap
|
|
pikapic_jump Data_fe3c0
|
|
|
|
Data_fe3c4: ; fe3c4 (3f:63c4)
|
|
pikapic_setduration 50
|
|
pikapic_loadgfx Pic_e548e
|
|
pikapic_loadgfx GFX_e5541
|
|
pikapic_object $4, $80, $0, $0
|
|
pikapic_object $13, $99, $0, $0
|
|
pikapic_waitbgmap
|
|
pikapic_cry
|
|
Data_fe3da: ; fe3da (3f:63da)
|
|
pikapic_waitbgmap
|
|
pikapic_jump Data_fe3da
|
|
|
|
Data_fe3de: ; fe3de (3f:63de)
|
|
pikapic_setduration 40
|
|
pikapic_loadgfx Pic_e56d1
|
|
pikapic_loadgfx GFX_e5794
|
|
pikapic_object $4, $80, $0, $0
|
|
pikapic_object $14, $99, $0, $0
|
|
pikapic_waitbgmap
|
|
pikapic_cry
|
|
Data_fe3f4: ; fe3f4 (3f:63f4)
|
|
pikapic_waitbgmap
|
|
pikapic_jump Data_fe3f4
|
|
|
|
Data_fe3f8: ; fe3f8 (3f:63f8)
|
|
pikapic_setduration 50
|
|
pikapic_loadgfx Pic_e5924
|
|
pikapic_loadgfx GFX_e59ed
|
|
pikapic_object $4, $80, $0, $0
|
|
pikapic_object $15, $99, $0, $0
|
|
pikapic_waitbgmap
|
|
pikapic_cry
|
|
Data_fe40e: ; fe40e (3f:640e)
|
|
pikapic_waitbgmap
|
|
pikapic_jump Data_fe40e
|
|
|
|
Data_fe412: ; fe412 (3f:6412)
|
|
pikapic_setduration 32
|
|
pikapic_loadgfx Pic_e5b7d
|
|
pikapic_loadgfx GFX_e5c4d
|
|
pikapic_object $4, $80, $0, $0
|
|
pikapic_object $16, $99, $0, $0
|
|
pikapic_waitbgmap
|
|
pikapic_cry
|
|
Data_fe428: ; fe428 (3f:6428)
|
|
pikapic_waitbgmap
|
|
pikapic_jump Data_fe428
|
|
|
|
Data_fe42c: ; fe42c (3f:642c)
|
|
pikapic_setduration 100
|
|
pikapic_loadgfx Pic_e5ddd
|
|
pikapic_loadgfx GFX_e5e90
|
|
pikapic_object $4, $80, $0, $0
|
|
pikapic_object $17, $99, $0, $0
|
|
pikapic_waitbgmap
|
|
pikapic_cry
|
|
Data_fe442: ; fe442 (3f:6442)
|
|
pikapic_waitbgmap
|
|
pikapic_jump Data_fe442
|
|
|
|
Data_fe446: ; fe446 (3f:6446)
|
|
pikapic_setduration 32
|
|
pikapic_loadgfx GFX_e6020
|
|
pikapic_loadgfx GFX_e61b0
|
|
pikapic_object $5, $80, $0, $0
|
|
pikapic_object $18, $99, $0, $0
|
|
pikapic_waitbgmap
|
|
pikapic_cry PikachuCry18
|
|
Data_fe45c: ; fe45c (3f:645c)
|
|
pikapic_waitbgmap
|
|
pikapic_jump Data_fe45c
|
|
|
|
Data_fe460: ; fe460 (3f:6460)
|
|
pikapic_setduration 44
|
|
pikapic_loadgfx Pic_e6340
|
|
pikapic_loadgfx GFX_e63f7
|
|
pikapic_object $4, $80, $0, $0
|
|
pikapic_object $19, $99, $0, $0
|
|
pikapic_waitbgmap
|
|
pikapic_cry
|
|
Data_fe476: ; fe476 (3f:6476)
|
|
pikapic_waitbgmap
|
|
pikapic_jump Data_fe476
|
|
|
|
Data_fe47a: ; fe47a (3f:647a)
|
|
pikapic_setduration 50
|
|
pikapic_loadgfx Pic_e6587
|
|
pikapic_loadgfx GFX_e6646
|
|
pikapic_object $4, $80, $0, $0
|
|
pikapic_object $1a, $99, $0, $0
|
|
pikapic_waitbgmap
|
|
pikapic_cry
|
|
Data_fe490: ; fe490 (3f:6490)
|
|
pikapic_waitbgmap
|
|
pikapic_jump Data_fe490
|
|
|
|
Data_fe494: ; fe494 (3f:6494)
|
|
pikapic_setduration 40
|
|
pikapic_loadgfx Pic_e67d6
|
|
pikapic_loadgfx GFX_e682f
|
|
pikapic_loadgfx GFX_e69bf
|
|
pikapic_loadgfx GFX_e6b4f
|
|
pikapic_loadgfx GFX_e6cdf
|
|
pikapic_object $4, $80, $0, $0
|
|
pikapic_object $1b, $99, $0, $0
|
|
pikapic_waitbgmap
|
|
pikapic_cry PikachuCry20
|
|
Data_fe4b0: ; fe4b0 (3f:64b0)
|
|
pikapic_waitbgmap
|
|
pikapic_jump Data_fe4b0
|
|
|
|
Data_fe4b4: ; fe4b4 (3f:64b4)
|
|
pikapic_setduration 40
|
|
pikapic_loadgfx GFX_e6e6f
|
|
pikapic_loadgfx GFX_e6fff
|
|
pikapic_object $5, $80, $0, $0
|
|
pikapic_object $1c, $99, $0, $0
|
|
pikapic_waitbgmap
|
|
pikapic_cry
|
|
Data_fe4ca: ; fe4ca (3f:64ca)
|
|
pikapic_waitbgmap
|
|
pikapic_jump Data_fe4ca
|
|
|
|
Data_fe4ce: ; fe4ce (3f:64ce)
|
|
pikapic_setduration 70
|
|
pikapic_loadgfx GFX_e718f
|
|
pikapic_loadgfx GFX_e731f
|
|
pikapic_object $5, $80, $0, $0
|
|
pikapic_object $1d, $99, $0, $0
|
|
pikapic_waitbgmap
|
|
pikapic_cry
|
|
Data_fe4e4: ; fe4e4 (3f:64e4)
|
|
pikapic_waitbgmap
|
|
pikapic_jump Data_fe4e4
|
|
|
|
Data_fe4e8: ; fe4e8 (3f:64e8)
|
|
pikapic_setduration 60
|
|
pikapic_loadgfx GFX_e74af
|
|
pikapic_loadgfx GFX_e763f
|
|
pikapic_object $5, $80, $0, $0
|
|
pikapic_object $1e, $99, $0, $0
|
|
pikapic_waitbgmap
|
|
pikapic_cry
|
|
Data_fe4fe: ; fe4fe (3f:64fe)
|
|
pikapic_waitbgmap
|
|
pikapic_jump Data_fe4fe
|
|
|
|
Data_fe502: ; fe502 (3f:6502)
|
|
pikapic_setduration 50
|
|
pikapic_loadgfx Pic_e77cf
|
|
pikapic_loadgfx GFX_e7863
|
|
pikapic_loadgfx GFX_e79f3
|
|
pikapic_object $4, $80, $0, $0
|
|
pikapic_object $1f, $99, $0, $0
|
|
pikapic_waitbgmap
|
|
pikapic_cry
|
|
pikapic_writebyte 13
|
|
pikapic_waitbgmap
|
|
pikapic_thunderbolt
|
|
pikapic_ret
|
|
|
|
Data_fe51f: ; fe51f (3f:651f)
|
|
pikapic_waitbgmap
|
|
Data_fe520: ; fe520 (3f:6520)
|
|
pikapic_setduration 100
|
|
pikapic_loadgfx Pic_e5000
|
|
pikapic_loadgfx GFX_e50af
|
|
pikapic_loadgfx GFX_e7b83
|
|
pikapic_loadgfx GFX_e7d13
|
|
pikapic_object $4, $80, $0, $0
|
|
pikapic_object $20, $99, $0, $0
|
|
pikapic_waitbgmap
|
|
pikapic_cry
|
|
Data_fe53a: ; fe53a (3f:653a)
|
|
pikapic_waitbgmap
|
|
pikapic_jump Data_fe53a
|
|
|
|
Data_fe53e: ; fe53e (3f:653e)
|
|
pikapic_setduration 30
|
|
pikapic_loadgfx Pic_f0abf
|
|
pikapic_loadgfx GFX_f0b64
|
|
pikapic_object $4, $80, $0, $0
|
|
pikapic_object $21, $99, $0, $0
|
|
pikapic_waitbgmap
|
|
pikapic_cry
|
|
Data_fe554: ; fe554 (3f:6554)
|
|
pikapic_waitbgmap
|
|
pikapic_jump Data_fe554
|
|
|
|
Data_fe558: ; fe558 (3f:6558)
|
|
pikapic_setduration 64
|
|
pikapic_loadgfx Pic_f0cf4
|
|
pikapic_loadgfx GFX_f0d82
|
|
pikapic_object $4, $80, $0, $0
|
|
pikapic_object $22, $99, $0, $0
|
|
pikapic_waitbgmap
|
|
pikapic_cry
|
|
Data_fe56e: ; fe56e (3f:656e)
|
|
pikapic_waitbgmap
|
|
pikapic_jump Data_fe56e
|
|
|
|
PikaPicAnimGFXHeaders:
|
|
pikapicanimgfx: MACRO
|
|
\2_id::
|
|
db \1
|
|
dba \2
|
|
endm
|
|
|
|
dbbw $01, $39, $0000
|
|
pikapicanimgfx -1, Pic_e4000 ; 01
|
|
pikapicanimgfx 5, GFX_e40cc ; 02
|
|
pikapicanimgfx -1, Pic_e411c ; 03
|
|
pikapicanimgfx 10, GFX_e41d2 ; 04
|
|
pikapicanimgfx -1, Pic_e4272 ; 05
|
|
pikapicanimgfx 6, GFX_e4323 ; 06
|
|
pikapicanimgfx -1, Pic_e4383 ; 07
|
|
pikapicanimgfx 20, GFX_e444b ; 08
|
|
pikapicanimgfx -1, Pic_e458b ; 09
|
|
pikapicanimgfx 4, GFX_e463b ; 0a
|
|
pikapicanimgfx -1, Pic_e467b ; 0b
|
|
pikapicanimgfx 4, GFX_e472e ; 0c
|
|
pikapicanimgfx -1, Pic_e476e ; 0d
|
|
pikapicanimgfx 25, GFX_e4841 ; 0e
|
|
pikapicanimgfx -1, Pic_e49d1 ; 0f
|
|
pikapicanimgfx 10, GFX_e4a99 ; 00
|
|
pikapicanimgfx -1, Pic_e4b39 ; 11
|
|
pikapicanimgfx 6, GFX_e4bde ; 12
|
|
pikapicanimgfx -1, Pic_e4c3e ; 13
|
|
pikapicanimgfx 25, GFX_e4ce0 ; 14
|
|
pikapicanimgfx 25, GFX_e4e70 ; 15
|
|
pikapicanimgfx -1, Pic_e5000 ; 16
|
|
pikapicanimgfx 25, GFX_e50af ; 17
|
|
pikapicanimgfx -1, Pic_e523f ; 18
|
|
pikapicanimgfx 25, GFX_e52fe ; 19
|
|
pikapicanimgfx -1, Pic_e548e ; 1a
|
|
pikapicanimgfx 25, GFX_e5541 ; 1b
|
|
pikapicanimgfx -1, Pic_e56d1 ; 1c
|
|
pikapicanimgfx 25, GFX_e5794 ; 1d
|
|
pikapicanimgfx -1, Pic_e5924 ; 1e
|
|
pikapicanimgfx 25, GFX_e59ed ; 1f
|
|
pikapicanimgfx -1, Pic_e5b7d ; 20
|
|
pikapicanimgfx 25, GFX_e5c4d ; 21
|
|
pikapicanimgfx -1, Pic_e5ddd ; 22
|
|
pikapicanimgfx 25, GFX_e5e90 ; 23
|
|
pikapicanimgfx 25, GFX_e6020 ; 24
|
|
pikapicanimgfx 25, GFX_e61b0 ; 25
|
|
pikapicanimgfx -1, Pic_e6340 ; 26
|
|
pikapicanimgfx 25, GFX_e63f7 ; 27
|
|
pikapicanimgfx -1, Pic_e6587 ; 28
|
|
pikapicanimgfx 25, GFX_e6646 ; 29
|
|
pikapicanimgfx -1, Pic_e67d6 ; 2a
|
|
pikapicanimgfx 25, GFX_e682f ; 2b
|
|
pikapicanimgfx 25, GFX_e69bf ; 2c
|
|
pikapicanimgfx 25, GFX_e6b4f ; 2d
|
|
pikapicanimgfx 25, GFX_e6cdf ; 2e
|
|
pikapicanimgfx 25, GFX_e6e6f ; 2f
|
|
pikapicanimgfx 25, GFX_e6fff ; 30
|
|
pikapicanimgfx 25, GFX_e718f ; 31
|
|
pikapicanimgfx 25, GFX_e731f ; 32
|
|
pikapicanimgfx 25, GFX_e74af ; 33
|
|
pikapicanimgfx 25, GFX_e763f ; 34
|
|
pikapicanimgfx -1, Pic_e77cf ; 35
|
|
pikapicanimgfx 25, GFX_e7863 ; 36
|
|
pikapicanimgfx 25, GFX_e79f3 ; 37
|
|
pikapicanimgfx 25, GFX_e7b83 ; 38
|
|
pikapicanimgfx 25, GFX_e7d13 ; 39
|
|
pikapicanimgfx -1, Pic_f0abf ; 3a
|
|
pikapicanimgfx 25, GFX_f0b64 ; 3b
|
|
pikapicanimgfx -1, Pic_f0cf4 ; 3c
|
|
pikapicanimgfx 25, GFX_f0d82 ; 3d
|
|
pikapicanimgfx 24, PikachuSprite ; 3e
|