mirror of https://github.com/pret/pokecrystal.git
458 lines
5.8 KiB
NASM
Executable File
458 lines
5.8 KiB
NASM
Executable File
EvolutionAnimation: ; 4e5e1
|
|
push hl
|
|
push de
|
|
push bc
|
|
ld a, [CurSpecies]
|
|
push af
|
|
ld a, [rOBP0]
|
|
push af
|
|
ld a, [BaseDexNo]
|
|
push af
|
|
|
|
call _EvolutionAnimation
|
|
|
|
pop af
|
|
ld [BaseDexNo], a
|
|
pop af
|
|
ld [rOBP0], a
|
|
pop af
|
|
ld [CurSpecies], a
|
|
pop bc
|
|
pop de
|
|
pop hl
|
|
|
|
ld a, [wd1ed]
|
|
and a
|
|
ret z
|
|
|
|
scf
|
|
ret
|
|
; 4e607
|
|
|
|
_EvolutionAnimation: ; 4e607
|
|
ld a, $e4
|
|
ld [rOBP0], a
|
|
|
|
ld de, MUSIC_NONE
|
|
call PlayMusic
|
|
|
|
callba Function8cf53
|
|
|
|
ld de, EvolutionGFX
|
|
ld hl, VTiles0
|
|
lb bc, BANK(EvolutionGFX), 8
|
|
call Request2bpp
|
|
|
|
xor a
|
|
ld [Danger], a
|
|
call WaitBGMap
|
|
xor a
|
|
ld [hBGMapMode], a
|
|
ld a, [Buffer1]
|
|
ld [PlayerHPPal], a
|
|
|
|
ld c, $0
|
|
call Function4e703
|
|
ld a, [Buffer1]
|
|
ld [CurPartySpecies], a
|
|
ld [CurSpecies], a
|
|
call Function4e708
|
|
|
|
ld de, VTiles2
|
|
ld hl, VTiles2 tile $31
|
|
ld bc, $31
|
|
call Request2bpp
|
|
|
|
ld a, $31
|
|
ld [wd1ec], a
|
|
call Evolution_FlashFrontpics
|
|
ld a, [Buffer2]
|
|
ld [CurPartySpecies], a
|
|
ld [CurSpecies], a
|
|
call Function4e711
|
|
ld a, [Buffer1]
|
|
ld [CurPartySpecies], a
|
|
ld [CurSpecies], a
|
|
|
|
ld a, $1
|
|
ld [hBGMapMode], a
|
|
call Function4e794
|
|
jr c, .skip_cry
|
|
|
|
ld a, [Buffer1]
|
|
call PlayCry
|
|
|
|
.skip_cry
|
|
ld de, MUSIC_EVOLUTION
|
|
call PlayMusic
|
|
|
|
ld c, 80
|
|
call DelayFrames
|
|
|
|
ld c, $1
|
|
call Function4e703
|
|
call Function4e726
|
|
jr c, .pressed_b
|
|
|
|
ld a, $cf
|
|
ld [wd1ec], a
|
|
|
|
call Evolution_FlashFrontpics
|
|
xor a
|
|
ld [wd1ed], a
|
|
|
|
ld a, [Buffer2]
|
|
ld [PlayerHPPal], a
|
|
|
|
ld c, $0
|
|
call Function4e703
|
|
call Function4e7a6
|
|
callba Function8cf53
|
|
call Function4e794
|
|
jr c, .asm_4e6de
|
|
|
|
ld a, [wc2c6]
|
|
push af
|
|
ld a, $1
|
|
ld [wc2c6], a
|
|
ld a, [CurPartySpecies]
|
|
push af
|
|
|
|
ld a, [PlayerHPPal]
|
|
ld [CurPartySpecies], a
|
|
hlcoord 7, 2
|
|
ld d, $0
|
|
ld e, ANIM_MON_EVOLVE
|
|
predef AnimateFrontpic
|
|
|
|
pop af
|
|
ld [CurPartySpecies], a
|
|
pop af
|
|
ld [wc2c6], a
|
|
ret
|
|
|
|
.asm_4e6de
|
|
ret
|
|
|
|
.pressed_b
|
|
ld a, $1
|
|
ld [wd1ed], a
|
|
|
|
ld a, [Buffer1]
|
|
ld [PlayerHPPal], a
|
|
|
|
ld c, $0
|
|
call Function4e703
|
|
call Function4e7a6
|
|
callba Function8cf53
|
|
call Function4e794
|
|
ret c
|
|
|
|
ld a, [PlayerHPPal]
|
|
call PlayCry
|
|
ret
|
|
; 4e703
|
|
|
|
Function4e703: ; 4e703
|
|
ld b, $b
|
|
jp GetSGBLayout
|
|
; 4e708
|
|
|
|
Function4e708: ; 4e708
|
|
call GetBaseData
|
|
hlcoord 7, 2
|
|
jp PrepMonFrontpic
|
|
; 4e711
|
|
|
|
Function4e711: ; 4e711
|
|
call GetBaseData
|
|
ld a, $1
|
|
ld [wc2c6], a
|
|
ld de, VTiles2
|
|
predef Function5108b
|
|
xor a
|
|
ld [wc2c6], a
|
|
ret
|
|
; 4e726
|
|
|
|
Function4e726: ; 4e726
|
|
call ClearJoypad
|
|
lb bc, 1, 14
|
|
.loop
|
|
push bc
|
|
call Evolution_CheckPressedB
|
|
pop bc
|
|
jr c, .pressed_b
|
|
push bc
|
|
call Evolution_NextFrame
|
|
pop bc
|
|
inc b
|
|
rept 2
|
|
dec c
|
|
endr
|
|
jr nz, .loop
|
|
and a
|
|
ret
|
|
|
|
.pressed_b
|
|
scf
|
|
ret
|
|
; 4e741
|
|
|
|
Evolution_NextFrame: ; 4e741
|
|
.loop
|
|
ld a, -49
|
|
ld [wd1ec], a
|
|
call Evolution_FlashFrontpics
|
|
ld a, 49
|
|
ld [wd1ec], a
|
|
call Evolution_FlashFrontpics
|
|
dec b
|
|
jr nz, .loop
|
|
ret
|
|
; 4e755
|
|
|
|
Evolution_FlashFrontpics: ; 4e755
|
|
push bc
|
|
xor a
|
|
ld [hBGMapMode], a
|
|
hlcoord 7, 2
|
|
lb bc, 7, 7
|
|
ld de, $d
|
|
.loop1
|
|
push bc
|
|
.loop2
|
|
ld a, [wd1ec]
|
|
add [hl]
|
|
ld [hli], a
|
|
dec c
|
|
jr nz, .loop2
|
|
pop bc
|
|
add hl, de
|
|
dec b
|
|
jr nz, .loop1
|
|
ld a, $1
|
|
ld [hBGMapMode], a
|
|
call WaitBGMap
|
|
pop bc
|
|
ret
|
|
; 4e779
|
|
|
|
Evolution_CheckPressedB: ; 4e779
|
|
.loop
|
|
call DelayFrame
|
|
push bc
|
|
call JoyTextDelay
|
|
ld a, [hJoyDown]
|
|
pop bc
|
|
and B_BUTTON
|
|
jr nz, .pressed_b
|
|
.loop2
|
|
dec c
|
|
jr nz, .loop
|
|
and a
|
|
ret
|
|
|
|
.pressed_b
|
|
ld a, [wd1e9]
|
|
and a
|
|
jr nz, .loop2
|
|
scf
|
|
ret
|
|
; 4e794
|
|
|
|
Function4e794: ; 4e794
|
|
ld a, [CurPartyMon]
|
|
ld hl, PartyMon1Species
|
|
call GetPartyLocation
|
|
ld b, h
|
|
ld c, l
|
|
callba CheckFaintedFrzSlp
|
|
ret
|
|
; 4e7a6
|
|
|
|
Function4e7a6: ; 4e7a6
|
|
ld a, [wd1ed]
|
|
and a
|
|
ret nz
|
|
ld de, SFX_EVOLVED
|
|
call PlaySFX
|
|
ld hl, wJumptableIndex
|
|
ld a, [hl]
|
|
push af
|
|
ld [hl], $0
|
|
.asm_4e7b8
|
|
call Function4e7cf
|
|
jr nc, .asm_4e7c2
|
|
call Function4e80c
|
|
jr .asm_4e7b8
|
|
|
|
.asm_4e7c2
|
|
ld c, $20
|
|
.asm_4e7c4
|
|
call Function4e80c
|
|
dec c
|
|
jr nz, .asm_4e7c4
|
|
pop af
|
|
ld [wJumptableIndex], a
|
|
ret
|
|
; 4e7cf
|
|
|
|
Function4e7cf: ; 4e7cf
|
|
ld hl, wJumptableIndex
|
|
ld a, [hl]
|
|
cp $20
|
|
ret nc
|
|
ld d, a
|
|
inc [hl]
|
|
and $1
|
|
jr nz, .asm_4e7e6
|
|
ld e, $0
|
|
call Function4e7e8
|
|
ld e, $10
|
|
call Function4e7e8
|
|
|
|
.asm_4e7e6
|
|
scf
|
|
ret
|
|
; 4e7e8
|
|
|
|
Function4e7e8: ; 4e7e8
|
|
push de
|
|
ld de, $4858
|
|
ld a, $13
|
|
call _InitSpriteAnimStruct
|
|
ld hl, $b
|
|
add hl, bc
|
|
ld a, [wJumptableIndex]
|
|
and $e
|
|
sla a
|
|
pop de
|
|
add e
|
|
ld [hl], a
|
|
ld hl, $3
|
|
add hl, bc
|
|
ld [hl], $0
|
|
ld hl, $c
|
|
add hl, bc
|
|
ld [hl], $10
|
|
ret
|
|
; 4e80c
|
|
|
|
Function4e80c: ; 4e80c
|
|
push bc
|
|
callab Function8cf69
|
|
ld a, [hVBlankCounter]
|
|
and $e
|
|
srl a
|
|
rept 2
|
|
inc a
|
|
endr
|
|
and $7
|
|
ld b, a
|
|
ld hl, Sprites + 3
|
|
ld c, $28
|
|
.asm_4e823
|
|
ld a, [hl]
|
|
or b
|
|
ld [hli], a
|
|
rept 3
|
|
inc hl
|
|
endr
|
|
dec c
|
|
jr nz, .asm_4e823
|
|
pop bc
|
|
call DelayFrame
|
|
ret
|
|
; 4e831
|
|
|
|
|
|
EvolutionGFX:
|
|
INCBIN "gfx/evo/bubble_large.2bpp"
|
|
INCBIN "gfx/evo/bubble.2bpp"
|
|
|
|
Function4e881: ; 4e881
|
|
call ClearBGPalettes
|
|
call ClearTileMap
|
|
call ClearSprites
|
|
call DisableLCD
|
|
call LoadStandardFont
|
|
call LoadFontsBattleExtra
|
|
ld hl, VBGMap0
|
|
ld bc, VBGMap1 - VBGMap0
|
|
ld a, " "
|
|
call ByteFill
|
|
hlcoord 0, 0, AttrMap
|
|
ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
|
|
xor a
|
|
call ByteFill
|
|
xor a
|
|
ld [hSCY], a
|
|
ld [hSCX], a
|
|
call EnableLCD
|
|
ld hl, UnknownText_0x4e8bd
|
|
call PrintText
|
|
call Function3200
|
|
call SetPalettes
|
|
ret
|
|
; 4e8bd
|
|
|
|
UnknownText_0x4e8bd: ; 0x4e8bd
|
|
; SAVING RECORD… DON'T TURN OFF!
|
|
text_jump UnknownText_0x1bd39e
|
|
db "@"
|
|
; 0x4e8c2
|
|
|
|
|
|
Function4e8c2: ; 4e8c2
|
|
call ClearBGPalettes
|
|
call ClearTileMap
|
|
call ClearSprites
|
|
call DisableLCD
|
|
call LoadStandardFont
|
|
call LoadFontsBattleExtra
|
|
ld hl, VBGMap0
|
|
ld bc, VBGMap1 - VBGMap0
|
|
ld a, " "
|
|
call ByteFill
|
|
hlcoord 0, 0, AttrMap
|
|
ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
|
|
xor a
|
|
call ByteFill
|
|
ld hl, wd000
|
|
ld c, $40
|
|
.asm_4e8ee
|
|
ld a, -1
|
|
ld [hli], a
|
|
ld a, " "
|
|
ld [hli], a
|
|
dec c
|
|
jr nz, .asm_4e8ee
|
|
xor a
|
|
ld [hSCY], a
|
|
ld [hSCX], a
|
|
call EnableLCD
|
|
call Function3200
|
|
call SetPalettes
|
|
ret
|
|
; 4e906
|
|
|
|
Function4e906: ; 4e906
|
|
ld a, [rSVBK]
|
|
push af
|
|
ld a, $6
|
|
ld [rSVBK], a
|
|
ld hl, w6_d000
|
|
ld bc, w6_d400 - w6_d000
|
|
ld a, " "
|
|
call ByteFill
|
|
ld hl, VBGMap0
|
|
ld de, w6_d000
|
|
ld b, $0
|
|
ld c, $40
|
|
call Request2bpp
|
|
pop af
|
|
ld [rSVBK], a
|
|
ret
|
|
; 4e929
|