diff options
Diffstat (limited to 'engine/bank3f/main.asm')
-rw-r--r-- | engine/bank3f/main.asm | 1750 |
1 files changed, 0 insertions, 1750 deletions
diff --git a/engine/bank3f/main.asm b/engine/bank3f/main.asm deleted file mode 100644 index 9552e07a..00000000 --- a/engine/bank3f/main.asm +++ /dev/null @@ -1,1750 +0,0 @@ -INCLUDE "engine/bank3f/data/map_songs.asm" -INCLUDE "engine/bank3f/data/map_header_pointers.asm" -INCLUDE "engine/bank3f/data/map_header_banks.asm" - -Func_fc4dd:: ; fc4dd (3f:44dd) -; possibly to test if pika should be out? - ld a,[wd430] - bit 5,a - jr nz,.asm_fc4f8 ; 3f:44f8 - ld a,[wd430] - bit 7,a - jr nz,.asm_fc4f8 - call IsStarterPikachuInOurParty - jr nc,.asm_fc4f8 - ld a,[wWalkBikeSurfState] - and a - jr nz,.asm_fc4f8 - scf - ret -.asm_fc4f8 - and a - ret - -Func_fc4fa:: ; fc4fa (3f:44fa) - ld hl,wd430 - bit 4,[hl] - res 4,[hl] - jr nz,.asm_fc515 - call Func_1542 - call Func_fc523 - ld a,$ff - ld [wSpriteStateData1 + $f2],a - call Func_fcb84 - call Func_fc5bc - ret - -.asm_fc515 - call Func_fc53f - xor a - ld [wd431],a - ld a,[wSpriteStateData1 + $9] - ld [wSpriteStateData1 + $f9],a - ret - -Func_fc523:: ; fc523 (3f:4523) - ld hl,wSpriteStateData1 + $f0 - call Func_fc52c - ld hl,wSpriteStateData2 + $f0 -Func_fc52c:: ; fc52c (3f:4523) - ld bc,$10 - xor a - call FillMemory - ret - -Func_fc534:: ; fc534 (3f:4534) - call Func_fc53f - call Func_fc5bc - xor a - ld [wd431],a - ret - -Func_fc53f:: ; fc53f (3f:453f) - ld bc,wSpriteStateData1 + $f0 - ld a,[wYCoord] - add $4 - ld e,a - ld a,[wXCoord] - add $4 - ld d,a - ld a,[wd431] - and a - jr z,.asm_fc5aa - cp $1 - jr z,.asm_fc59e - cp $2 - jr z,.asm_fc584 - cp $3 - jr z,.asm_fc5aa - cp $4 - jr z,.asm_fc5a4 - cp $5 - jr z,.asm_fc5a7 - cp $6 - jr z,.asm_fc5a1 - cp $7 - jr z,.asm_fc572 - jr .asm_fc59e - -.asm_fc572 - ld a,[wSpriteStateData1 + $9] - and a ; SPRITE_FACING_DOWN - jr z,.asm_fc5a4 - cp SPRITE_FACING_UP - jr z,.asm_fc5a7 - cp SPRITE_FACING_LEFT - jr z,.asm_fc5a1 - cp SPRITE_FACING_RIGHT - jr z,.asm_fc59e -.asm_fc584 - ld a,[wSpriteStateData1 + $9] - and a - jr nz,.asm_fc58d - dec e - jr .asm_fc5aa -.asm_fc58d - cp SPRITE_FACING_UP - jr nz,.asm_fc594 - inc e - jr .asm_fc5aa -.asm_fc594 - cp SPRITE_FACING_LEFT - jr nz,.asm_fc59b - inc d - jr .asm_fc5aa -.asm_fc59b - dec d - jr .asm_fc5aa -.asm_fc59e - inc d - jr .asm_fc5aa -.asm_fc5a1 - dec d - jr .asm_fc5aa -.asm_fc5a4 - inc e - jr .asm_fc5aa -.asm_fc5a7 - dec e - jr .asm_fc5aa ; useless jr -.asm_fc5aa - ld hl,$104 - add hl,bc - ld [hl],e - inc hl - ld [hl],d - inc hl -Func_fc4b2:: ; fc4b2 (3f:44b2) - ld [hl],$fe - push hl - ld hl,wd472 - set 5,[hl] - pop hl - ret - -Func_fc5bc:: ; fc5bc (3f:45bc) - ld a,$49 - ld [wSpriteStateData1 + $f0],a - ld a,$ff - ld [wSpriteStateData1 + $f2],a - ld a,[wd431] - and a - jr z,.asm_fc5e4 - cp $1 - jr z,.asm_fc5e4 - cp $3 - jr z,.asm_fc5eb - cp $4 - jr z,.asm_fc5e4 - cp $6 - jr z,.asm_fc5e4 - cp $7 - jr z,.asm_fc5f1 - call Func_fccb2 - ret - -.asm_fc5e4 - ld a,[wSpriteStateData1 + $9] - ld [wSpriteStateData1 + $f9],a - ret -.asm_fc5eb - ld a,$0 - ld [wSpriteStateData1 + $f9],a - ret -.asm_fc5f1 - ld a,[wSpriteStateData1 + $9] - xor $4 - ld [wSpriteStateData1 + $f9],a - ret - -Func_fc5fa:: ; fc5fa (3f:45fa) - ld a,[wCurMap] - cp OAKS_LAB - jr z,.asm_fc63d - cp ROUTE_22_GATE - jr z,.asm_fc62d - cp MT_MOON_2 - jr z,.asm_fc635 - cp ROCK_TUNNEL_1 - jr z,.asm_fc645 - ld a,[wCurMap] - ld hl,Pointer_fc64b - call Func_1568 ; similar to IsInArray, but not the same - jr c,.asm_fc639 - ld a,[wCurMap] - ld hl,Pointer_fc653 - call Func_1568 - jr nc,.asm_fc641 - ld a,[wSpriteStateData1 + $9] - and a - jr nz,.asm_fc641 - ld a,$3 - jr .asm_fc647 - -.asm_fc62d - ld a,[wSpriteStateData1 + $9] - and a - jr z,.asm_fc645 - jr .asm_fc641 -.asm_fc635 - ld a,$3 - jr .asm_fc647 -.asm_fc639 - ld a,$4 - jr .asm_fc647 -.asm_fc63d - ld a,$6 - jr .asm_fc647 -.asm_fc641 - ld a,$1 - jr .asm_fc647 -.asm_fc645 - ld a,$3 -.asm_fc647 - ld [wd431],a - ret - -Pointer_fc64b:: ; fc64b (3f:464b) - db $c2,$4c,$4f,$ba,$be,$b8,$54,$ff - -Pointer_fc653:: ; fc653 (3f:4653) - db $2f,$e6,$3e,$5e,$80,$31,$a4,$ff - -Func_fc65b:: ; fc65b (3f:465b) - ld a,[wCurMap] - cp VIRIDIAN_FOREST_EXIT - jr z,.asm_fc673 - cp VIRIDIAN_FOREST_ENTRANCE - jr z,.asm_fc67c - ld a,[wCurMap] - ld hl,Pointer_fc68e - call Func_1568 - jr c,.asm_fc688 - jr .asm_fc684 -.asm_fc673 - ld a,[wSpriteStateData1 + $9] - cp SPRITE_FACING_UP - jr z,.asm_fc688 - jr .asm_fc684 -.asm_fc67c - ld a,[wSpriteStateData1 + $9] - and a ; SPRITE_FACING_DOWN - jr z,.asm_fc684 - jr .asm_fc688 -.asm_fc684 - ld a,$0 - jr .asm_fc68a -.asm_fc688 - ld a,$1 -.asm_fc68a - ld [wd431],a - ret - -Pointer_fc68e:: ; fc68e (3f:468e) - db $33,$dd,$df,$e0,$e1,$de,$ec,$7f,$a8,$a9,$aa,$ff - -Func_fc69a:: ; fc69a (3f:469a) - ld a,[wCurMap] - cp ROUTE_22_GATE - jr z,.asm_fc6a7 - cp ROUTE_2_GATE - jr z,.asm_fc6b0 - jr .asm_fc6bd -.asm_fc6a7 - ld a,[wSpriteStateData1 + $9] - cp SPRITE_FACING_UP - jr z,.asm_fc6b9 - jr .asm_fc6bd -.asm_fc6b0 - ld a,[wSpriteStateData1 + $9] - cp SPRITE_FACING_UP - jr z,.asm_fc6b9 - jr .asm_fc6bd -.asm_fc6b9 - ld a,$1 - jr .asm_fc6c1 -.asm_fc6bd - ld a,$3 - jr .asm_fc6c1 -.asm_fc6c1 - ld [wd431],a - ret - -Func_fc6c5:: ; fc6c5 (3f:46c5) - push hl - ld hl,wd430 - set 2,[hl] - pop hl - ret - -Func_fc6cd:: ; fc6cd (3f:46cd) - push hl - ld hl,wd430 - res 2,[hl] - pop hl - ret - -Func_fc6d5:: ; fc6d5 (3f:46d5) - call Func_fc6cd - call Func_fc727 - ret nc - push bc - call Func_fcd25 - pop bc - ret c - ld bc,wSpriteStateData1 + $f0 - ld hl,$1 - add hl,bc - bit 7,[hl] - jp nz,asm_fc745 - ld a,[wFontLoaded] - bit 0,a - jp nz,asm_fc76a - call Func_154a - jp nz,asm_fc76a - ld a,[hl] - and $7f - cp $a - jr c,.asm_fc704 - xor a -.asm_fc704 - add a - ld e,a - ld d,0 - ld hl,PointerTable_fc710 - add hl,de - ld a,[hli] - ld h,[hl] - ld l,a - jp hl - -PointerTable_fc710: ; fc710 (3f:4710) - dw Func_fc793 - dw Func_fc7aa - dw Func_fc803 - dw asm_fc9c3 - dw asm_fca1c - dw asm_fc9ee - dw asm_fc87f - dw asm_fc904 - dw asm_fc937 - dw asm_fc969 - dw Func_fc726 - -Func_fc726: ; fc726 (3f:4726) - ret - -Func_fc727: ; fc727 (3f:4727) - call Func_fc4dd - jr nc,.asm_fc73b - ld a,[wSpriteStateData1 + $f1] - and a - jr nz,.asm_fc739 - push bc - push hl - call Func_fc534 - pop hl - pop bc -.asm_fc739 - scf - ret -.asm_fc73b - ld hl,wSpriteStateData1 + $f2 - ld [hl],$ff - dec hl - ld [hl],$0 - xor a - ret -asm_fc745: ; fc745 (3f:4745) - ld hl,$1 - add hl,bc - res 7,[hl] - ld hl,wSpriteStateData2 - wSpriteStateData1 - add hl,bc - ld [hl],a - call Func_154a - jr nz,.asm_fc75f - ld a,[wSpriteStateData1 + $9] - xor $4 - ld hl,$9 - add hl,bc - ld [hl],a -.asm_fc75f - xor a - ld hl,$7 - add hl,bc - ld [hli],a - ld [hl],a - call Func_fca99 - ret -asm_fc76a: ; fc76a (3f:476a) - xor a - ld hl,$7 - add hl,bc - ld [hli],a - ld [hl],a - call Func_fca99 - call Func_fc82e - jr c,.asm_fc783 - push bc - callab InitializeSpriteScreenPosition - pop bc -.asm_fc783 - ld hl,$1 - add hl,bc - ld [hl],$1 - ld hl,wSpriteStateData2 - wSpriteStateData1 - add hl,bc - ld [hl],$0 - call Func_fcba1 - ret - -Func_fc793: ; fc793 (3f:4793) - call Func_fcba1 - push bc - callab InitializeSpriteScreenPosition - pop bc - ld hl,$2 - add hl,bc - ld [hl],$ff - dec hl - ld [hl],$1 - ret - -Func_fc7aa: ; fc7aa (3f:47aa) - call Func_fcc92 - jp c,Func_fc803 - dec a - ld l,a - ld h,$0 - add hl,hl - add hl,hl - ld de,Pointer_fc7e3 - add hl,de - ld d,h - ld e,l - ld a,[de] - inc de - ld hl,$9 - add hl,bc - ld [hl],a - ld a,[de] - inc de - ld hl,$5 - add hl,bc - ld [hl],a - dec hl - dec hl - ld a,[de] - ld [hl],a - inc de - ld a,[de] - ld hl,$1 - add hl,bc - ld [hl],a - cp $4 - jp z,Func_fca0a - call Func_fcd17 - jp c,Func_fc9df - jp Func_fc9b4 - -Pointer_fc7e3: ; fc7e3 (3f:47e3) - db $0,$0 - db $1,$3 - db $4,$0 - db $ff,$3 - db $8,$ff - db $0,$3 - db $c,$1 - db $0,$3 - db $0,$0 - db $1,$4 - db $4,$0 - db $ff,$4 - db $8,$ff - db $0,$4 - db $c,$1 - db $0,$4 - -Func_fc803: ; fc803 (3f:4803) - call Func_fcae2 - ret c - ld hl,wSpriteStateData2 - wSpriteStateData1 - add hl,bc - dec [hl] - jr nz,.asm_fc823 - push hl - call Func_fccee - pop hl - cp $5 - jr nc,Func_fc842 - ld [hl],$20 - call Random - and $c - ld hl,$9 - add hl,bc - ld [hl],a -.asm_fc823 - xor a - ld hl,$7 - add hl,bc - ld [hli],a - ld [hl],a - call Func_fca99 - ret - -Func_fc82e: ; fc82e (3f:482e) - ld a,[wWalkCounter] - and a - ret z - scf - ret - -Func_fc835: ; fc835 (3f:4835) - ld hl,wSpriteStateData2 - wSpriteStateData1 - add hl,bc - ld [hl],$10 - ld hl,$1 - add hl,bc - ld [hl],$1 - ret - -Func_fc842: ; fc842 (3f:4842) - ld hl,$0 - push af - call Random - ld a,[hRandomAdd] - and %11 - ld e,a - ld d,$0 - ld hl,PointerTable_fc85a - add hl,de - add hl,de - ld a,[hli] - ld h,[hl] - ld l,a - pop af - jp hl - -PointerTable_fc85a: ; fc85a (3f:485a) - dw Func_fc862 - dw Func_fc8f8 - dw Func_fc92b - dw Func_fc95d - -Func_fc862: ; fc862 (3f:4862) - dec a - add a - add a - and $c - ld hl,$9 - add hl,bc - ld [hl],a - ld hl,$1 - add hl,bc - ld [hl],$6 - xor a - ld [wd432],a - ld [wd433],a - ld hl,wSpriteStateData2 - wSpriteStateData1 - add hl,bc - ld [hl],$11 -asm_fc87f: ; fc87f (3f:487f) - ld a,[wd432] - ld e,a - ld a,[wd433] - ld d,a - call Func_fc82e - jr c,Func_fc8c7 - call Func_fc6c5 - ld hl,$4 - add hl,bc - ld a,[hl] - sub e - ld e,a - inc hl - inc hl - ld a,[hl] - sub d - ld d,a - ld hl,wSpriteStateData2 - wSpriteStateData1 - add hl,bc - ld a,[hl] - dec a - add a - add $d6 - ld l,a - ld a,$48 - adc $0 - ld h,a - ld a,[hli] - ld [wd432],a - add e - ld e,a - ld a,[hl] - ld [wd433],a - add d - ld d,a - ld hl,$4 - add hl,bc - ld [hl],e - inc hl - inc hl - ld [hl],d - ld hl,wSpriteStateData2 - wSpriteStateData1 - add hl,bc - dec [hl] - ret nz - jp Func_fc835 - -Func_fc8c7: ; fc8c7 (3f:48c7) - ld hl,$4 - add hl,bc - ld a,[hl] - sub e - ld [hl],a - inc hl - inc hl - ld a,[hl] - sub d - ld [hl],a - jp Func_fc835 - -Pointer_fc8d6: ; fc8d6 (3f:48d6) - db $0,$0,$fe,$1,$fc - db $2,$fe,$3,$0,$4 - db $fe,$3,$fc,$2,$fe - db $1,$0,$0,$fe,$ff - db $fc,$fe,$fe,$fd,$0 - db $fc,$fe,$fd,$fc,$fe - db $fe,$ff,$00,$00 - -Func_fc8f8: ; fc8f8 (3f:48f8) - ld hl,$1 - add hl,bc - ld [hl],$7 - ld hl,wSpriteStateData2 - wSpriteStateData1 - add hl,bc - ld [hl],$30 -asm_fc904: ; fc904 (3f:4904) - call Func_fc82e - jp c,Func_fc835 - call Func_fc6c5 - ld hl,$7 - add hl,bc - ld a,[hl] - inc a - cp $8 - ld [hl],a - jr nz,.asm_fc91f - xor a - ld [hli],a - ld a,[hl] - inc a - and %11 - ld [hl],a -.asm_fc91f - call Func_fca99 - ld hl,wSpriteStateData2 - wSpriteStateData1 - add hl,bc - dec [hl] - ret nz - jp Func_fc835 - -Func_fc92b: ; fc92b (3f:492b) - ld hl,wSpriteStateData2 - wSpriteStateData1 - add hl,bc - ld [hl],$20 - ld hl,$1 - add hl,bc - ld [hl],$8 -asm_fc937: ; fc937 (3f:4937) - call Func_fc82e - jp c,Func_fc835 - call Func_fc6c5 - ld hl,$7 - add hl,bc - ld a,[hl] - inc a - cp $8 - ld [hl],a - jr nz,.asm_fc951 - xor a - ld [hli],a - ld a,[hl] - xor $1 - ld [hl],a -.asm_fc951 - call Func_fca99 - ld hl,wSpriteStateData2 - wSpriteStateData1 - add hl,bc - dec [hl] - ret nz - jp Func_fc835 - -Func_fc95d: ; fc95d (3f:495d) - ld hl,wSpriteStateData2 - wSpriteStateData1 - add hl,bc - ld [hl],$20 - ld hl,$1 - add hl,bc - ld [hl],$9 -asm_fc969: ; fc969 (3f:4969) - call Func_fc82e - jp c,Func_fc835 - call Func_fc6c5 - ld hl,$7 - add hl,bc - ld a,[hl] - inc a - cp $8 - ld [hl],a - jr nz,.asm_fc988 - xor a - ld [hl],a - ld hl,$9 - add hl,bc - ld a,[hl] - call Func_fc994 - ld [hl],a -.asm_fc988 - call Func_fca99 - ld hl,wSpriteStateData2 - wSpriteStateData1 - add hl,bc - dec [hl] - ret nz - jp Func_fc835 - -Func_fc994: ; fc994 (3f:4994) - push hl - ld hl,Pointer_fc9ac - ld d,a -.loop - ld a,[hli] - cp d - jr nz,.loop - ld a,[hl] - pop hl - ret - -Func_fc9a0: ; fc9a0 (3f:49a0) - push hl - ld hl,Pointer_fc9ac_End - ld d,a -.loop - ld a,[hld] - cp d - jr nz,.loop - ld a,[hl] - pop hl - ret - -Pointer_fc9ac: ; fc9ac (3f:49ac) - db SPRITE_FACING_DOWN,SPRITE_FACING_LEFT,SPRITE_FACING_UP,SPRITE_FACING_RIGHT - db SPRITE_FACING_DOWN,SPRITE_FACING_LEFT,SPRITE_FACING_UP,SPRITE_FACING_RIGHT -Pointer_fc9ac_End: -Func_fc9b4: ; fc9b4 (3f:49b4) - ld hl,wSpriteStateData2 - wSpriteStateData1 - add hl,bc - ld [hl],$8 - ld hl,$1 - add hl,bc - ld [hl],$3 - call Func_fca38 -asm_fc9c3: ; fc9c3 (3f:49c3) - call Func_fca4b - call Func_fca7e - call Func_fca99 - ld hl,$100 - add hl,bc - dec [hl] - ret nz - call Func_fca75 - call Func_fccb2 - ld hl,$1 - add hl,bc - ld [hl],$1 - ret - -Func_fc9df: ; fc9df (3f:49df) - ld hl,wSpriteStateData2 - wSpriteStateData1 - add hl,bc - ld [hl],$4 - ld hl,$1 - add hl,bc - ld [hl],$5 - call Func_fca38 -asm_fc9ee: ; fc9ee (3f:49ee) - call asm_fca59 - call Func_fca7e - call Func_fca99 - ld hl,wSpriteStateData2 - wSpriteStateData1 - add hl,bc - dec [hl] - ret nz - call Func_fca75 - call Func_fccb2 - ld hl,$1 - add hl,bc - ld [hl],$1 - ret - -Func_fca0a: ; fca0a (3f:4a0a) - ld hl,wSpriteStateData2 - wSpriteStateData1 - add hl,bc - ld [hl],$8 - ld hl,$1 - add hl,bc - ld [hl],$4 - call Func_fca38 - call Func_fca38 -asm_fca1c: ; fca1c (3f:4a1c) - call asm_fca59 - call Func_fca7e - call Func_fca99 - ld hl,wSpriteStateData2 - wSpriteStateData1 - add hl,bc - dec [hl] - ret nz - call Func_fca75 - call Func_fccb2 - ld hl,$1 - add hl,bc - ld [hl],$1 - ret - -Func_fca38: ; fca38 (3f:4a38) - ld hl,$3 - add hl,bc - ld e,[hl] - inc hl - inc hl - ld d,[hl] - ld hl,$104 - add hl,bc - ld a,[hl] - add e - ld [hli],a - ld a,[hl] - add d - ld [hl],a - ret - -Func_fca4b: ; fca4b (3f:4a4b) - ld a,[wWalkBikeSurfState] - cp $1 - jr nz,Func_fca68 - ld a,[wd736] - bit 6,a - jr nz,Func_fca68 -asm_fca59: ; fca59 (3f:4a59) - ld hl,$3 - add hl,bc - ld a,[hli] - add a - add a - add [hl] - ld [hli],a - ld a,[hli] - add a - add a - add [hl] - ld [hl],a - ret - -Func_fca68: ; fca68 (3f:4a68) - ld hl,$3 - add hl,bc - ld a,[hli] - add a - add [hl] - ld [hli],a - ld a,[hli] - add a - add [hl] - ld [hli],a - ret - -Func_fca75: ; fca75 (3f:4a75) - ld hl,$3 - add hl,bc - xor a - ld [hli],a - inc hl - ld [hl],a - ret - -Func_fca7e: ; fca7e (3f:4a7e) - call Func_fcdad - ld d,$2 - jr nc,.asm_fca87 - ld d,$5 -.asm_fca87 - ld hl,$7 - add hl,bc - ld a,[hl] - inc a - cp d - jr nz,.asm_fca91 - xor a -.asm_fca91 - ld [hli],a - ret nz - ld a,[hl] - inc a - and $3 - ld [hl],a - ret - -Func_fca99: ; fca99 (3f:4a99) - ld a,[wd430] - bit 3,a - jr nz,.asm_fcad1 - ld hl,$10e - add hl,bc - ld a,[hl] - dec a - swap a - ld d,a - ld a,[wd736] - bit 7,a - jr nz,.asm_fcad8 - ld hl,$9 - add hl,bc - ld a,[hl] - or d - ld d,a - ld a,[wFontLoaded] - bit 0,a - jr z,.asm_fcac4 - call Func_fcae2 - ret c - jr .asm_fcacb -.asm_fcac4 - ld hl,$8 - add hl,bc - ld a,d - or [hl] - ld d,a -.asm_fcacb - ld hl,$2 - add hl,bc - ld [hl],d - ret -.asm_fcad1 - ld hl,$2 - add hl,bc - ld [hl],$ff - ret -.asm_fcad8 - ld a,[wSpriteStateData1 + $2] - and $f - or d - ld [wSpriteStateData1 + $f2],a - ret - -Func_fcae2: ; fcae2 (3f:4ae2) - ld hl,$104 - add hl,bc - ld a,[wYCoord] - add $4 - cp [hl] - jr nz,.asm_fcaff - inc hl - ld a,[wXCoord] - add $4 - cp [hl] - jr nz,.asm_fcaff - ld hl,$2 - add hl,bc - ld [hl],$ff - scf - ret -.asm_fcaff - and a - ret - -Func_fcb01: ; fcb01 (3f:4b01) - push bc - push de - push hl - ld bc,wSpriteStateData1 + $f0 - ld a,[wXCoord] - add $4 - ld d,a - ld a,[wYCoord] - add $4 - ld e,a - ld hl,$104 - add hl,bc - ld a,[hl] - sub e - and a - jr z,.asm_fcb30 - cp $ff - jr z,.asm_fcb26 - cp $1 - jr z,.asm_fcb26 - jr .asm_fcb48 -.asm_fcb26 - ld hl,$105 - add hl,bc - ld a,[hl] - sub d - jr z,.asm_fcb43 - jr .asm_fcb48 -.asm_fcb30 - ld hl,$105 - add hl,bc - ld a,[hl] - sub d - cp $ff - jr z,.asm_fcb43 - cp $1 - jr z,.asm_fcb43 - and a - jr z,.asm_fcb43 - jr .asm_fcb48 -.asm_fcb43 - pop hl - pop de - pop bc - scf - ret -.asm_fcb48 - pop hl - pop de - pop bc - xor a - ret - -Func_fcb4d: ; fcb4d (3f:4b4d) - call Func_fcb52 - ld e,a - ret - -Func_fcb52: ; fcb52 (3f:4b52) - ld bc,wSpriteStateData1 + $f0 - ld a,[wXCoord] - add $4 - ld d,a - ld a,[wYCoord] - add $4 - ld e,a - ld hl,$104 - add hl,bc - ld a,[hl] - cp e - jr z,Func_fcb71 - jr nc,.asm_fcb6e - ld a,$4 - ret -.asm_fcb6e - ld a,$0 - ret - -Func_fcb71: ; fcb71 (3f:4b71) - ld hl,$105 - add hl,bc - ld a,[hl] - cp d - jr z,.asm_fcb81 - jr nc,.asm_fcb7e - ld a,$8 - ret -.asm_fcb7e - ld a,$c - ret -.asm_fcb81 - ld a,$ff - ret - -Func_fcb84: ; fcb84 (3f:4b84) - push bc - ld hl,wd437 - ld [hl],$ff - inc hl - ld bc,$10 - xor a - call FillMemory - pop bc - ret - -Func_fcb94: ; fcb94 (3f:4b94) - ld hl,wd437 - inc [hl] - ld e,[hl] - ld d,0 - ld hl,wd438 - add hl,de - ld [hl],a - ret - -Func_fcba1: ; fcba1 (3f:4ba1) - call Func_fcb84 - call Func_fcbac - ret c - call Func_fcb94 - ret - -Func_fcbac: ; fcbac (3f:4bac) - ld bc,wSpriteStateData1 + $f0 - ld hl,$104 - add hl,bc - ld a,[wYCoord] - add $4 - sub [hl] - jr z,.asm_fcbd7 - jr c,.asm_fcbca - call Func_fcc01 - jr c,.asm_fcbc6 - ld a,$5 - and a - ret -.asm_fcbc6 - ld a,$1 - and a - ret -.asm_fcbca - call Func_fcc01 - jr c,.asm_fcbd3 - ld a,$6 - and a - ret -.asm_fcbd3 - ld a,$2 - and a - ret -.asm_fcbd7 - ld hl,$105 - add hl,bc - ld a,[wXCoord] - add $4 - sub [hl] - jr z,.asm_fcbff - jr c,.asm_fcbf2 - call Func_fcc01 - jr c,.asm_fcbee - ld a,$8 - and a - ret -.asm_fcbee - ld a,$4 - and a - ret -.asm_fcbf2 - call Func_fcc01 - jr c,.asm_fcbfb - ld a,$7 - and a - ret -.asm_fcbfb - ld a,$3 - and a - ret -.asm_fcbff - scf - ret - -Func_fcc01: ; fcc01 (3f:4c01) - jr nc,.asm_fcc05 - cpl - inc a -.asm_fcc05 - cp $2 - ret - -Func_fcc08:: ; fcc08 (3f:4c08) - call Func_fcc23 - ret nc - ld a,[wd736] - bit 6,a - jr nz,.asm_fcc1b - call Func_fcc42 - ret c - call Func_fcb94 - ret -.asm_fcc1b - call Func_fcc64 - ret c - call Func_fcb94 - ret - -Func_fcc23: ; fcc23 (3f:4c28) - ld a,[wd430] - bit 5,a - jr nz,.asm_fcc40 - ld a,[wd430] - bit 7,a - jr nz,.asm_fcc40 - ld a,[wd472] - bit 7,a - jr z,.asm_fcc40 - ld a,[wWalkBikeSurfState] - and a - jr nz,.asm_fcc40 - scf - ret -.asm_fcc40 - and a - ret - -Func_fcc42: ; fcc42 (3f:4c42) - xor a - ld a,[wPlayerDirection] - bit 3,a - jr nz,.asm_fcc58 - bit 2,a - jr nz,.asm_fcc5b - bit 1,a - jr nz,.asm_fcc5e - bit 0,a - jr nz,.asm_fcc61 - scf - ret -.asm_fcc58 - ld a,$2 - ret -.asm_fcc5b - ld a,$1 - ret -.asm_fcc5e - ld a,$3 - ret -.asm_fcc61 - ld a,$4 - ret - -Func_fcc64: ; fcc64 (3f:4c64) - ld hl,wd430 - bit 6,[hl] - jr z,.asm_fcc6e - res 6,[hl] - ret -.asm_fcc6e - set 6,[hl] - xor a - ld a,[wPlayerDirection] - bit 3,a - jr nz,.asm_fcc86 - bit 2,a - jr nz,.asm_fcc89 - bit 1,a - jr nz,.asm_fcc8c - bit 0,a - jr nz,.asm_fcc8f - scf - ret -.asm_fcc86 - ld a,$6 - ret -.asm_fcc89 - ld a,$5 - ret -.asm_fcc8c - ld a,$7 - ret -.asm_fcc8f - ld a,$8 - ret - -Func_fcc92: ; fcc92 (3f:4c92) - ld hl,wd437 - ld a,[hl] - cp $ff - jr z,.asm_fccb0 - and a - jr z,.asm_fccb0 - dec [hl] - ld e,a - ld d,0 - ld hl,wd438 - add hl,de - inc e - ld a,$ff -.asm_fcca8 - ld d,[hl] - ldd [hl],a - ld a,d - dec e - jr nz,.asm_fcca8 - and a - ret -.asm_fccb0 - scf - ret - -Func_fccb2:: ; fccb2 (3f:4cb2) - call Func_fcd01 - and a - jr z,.asm_fccbf - dec a - and $3 - add a - add a - jr .asm_fccea -.asm_fccbf - ld a,[wYCoord] - add $4 - ld d,a - ld a,[wXCoord] - add $4 - ld e,a - ld a,[wSpriteStateData2 + $f4] - cp d - jr z,.asm_fccd9 - ld a,SPRITE_FACING_DOWN - jr c,.asm_fccea - ld a,SPRITE_FACING_UP - jr .asm_fccea -.asm_fccd9 - ld a,[wSpriteStateData2 + $f5] - cp e - jr z,.asm_fcce7 - ld a,SPRITE_FACING_RIGHT - jr c,.asm_fccea - ld a,SPRITE_FACING_LEFT - jr .asm_fccea -.asm_fcce7 - ld a,[wSpriteStateData1 + $9] -.asm_fccea - ld [wSpriteStateData1 + $f9],a - ret - -Func_fccee: ; fccee (3f:4cee) - ld hl,wd437 - ld a,[hl] - cp $ff - jr z,.asm_fccff - ld e,a - ld d,0 - ld hl,wd438 - add hl,de - ld a,[hl] - ret -.asm_fccff - xor a - ret - -Func_fcd01: ; fcd01 (3f:4d01) - ld hl,wd437 - ld a,[hl] - cp $ff - jr z,.asm_fcd15 - and a - jr z,.asm_fcd15 - ld e,a - ld d,0 - ld hl,wd438 - add hl,de - ld a,[hl] - ret -.asm_fcd15 - xor a - ret - -Func_fcd17: ; fcd17 (3f:4d17) - ld a,[wd437] - cp $ff - ret z - cp $2 - jr nc,.asm_fcd23 - and a - ret -.asm_fcd23 - scf - ret - -Func_fcd25: ; fcd25 (3f:4d25) - ld h,wSpriteStateData2 / $100 - ld a,[H_CURRENTSPRITEOFFSET] - add $4 - ld l,a - ld b,[hl] - ld a,[wYCoord] - cp b - jr z,.asm_fcd3a - jr nc,.asm_fcd63 - add $8 - cp b - jr c,.asm_fcd63 -.asm_fcd3a - inc l - ld b,[hl] - ld a,[wXCoord] - cp b - jr z,.asm_fcd49 - jr nc,.asm_fcd63 - add $9 - cp b - jr c,.asm_fcd63 -.asm_fcd49 - call Func_fcd83 - ld d,$60 - ld a,[hli] - ld e,a - cp d - jr nc,.asm_fcd63 - ld a,[hld] - cp d - jr nc,.asm_fcd63 - ld bc,-20 - add hl,bc - ld a,[hli] - cp d - jr nc,.asm_fcd63 - ld a,[hl] - cp d - jr c,.asm_fcd6f -.asm_fcd63 - ld h,wSpriteStateData1 / $100 - ld a,[H_CURRENTSPRITEOFFSET] - add $2 - ld l,a - ld [hl],$ff - scf - jr .asm_fcd82 -.asm_fcd6f - ld h,wSpriteStateData2 / $100 - ld a,[H_CURRENTSPRITEOFFSET] - add $7 - ld l,a - ld a,[wGrassTile] - cp e - ld a,$0 - jr nz,.asm_fcd80 - ld a,$80 -.asm_fcd80 - ld [hl],a - and a -.asm_fcd82 - ret - -Func_fcd83: ; fcd83 (3f:4d83) - ld h,wSpriteStateData1 / $100 - ld a,[H_CURRENTSPRITEOFFSET] - add $4 - ld l,a - ld a,[hli] - add $4 - and $f0 - srl a - ld c,a - ld b,$0 - inc l - ld a,[hl] - add $2 - srl a - srl a - srl a - add SCREEN_WIDTH - ld d,0 - ld e,a - ld hl,wTileMap - rept 5 - add hl,bc - endr - add hl,de - ret - -Func_fcdad: ; fcdad (3f:4dad) - push bc - push af - ld a,[wPikachuHappiness] - cp $50 - pop bc - ld a,b - pop bc - ret - -IsStarterPikachuInOurParty:: ; fcdb8 (3f:4db8) - ld hl,wPartySpecies - ld de,wPartyMon1OTID - ld bc,wPartyMonOT - push hl -.loop - pop hl - ld a,[hli] - push hl - inc a - jr z,.noPlayerPikachu - cp PIKACHU + 1 - jr nz,.curMonNotPlayerPikachu - ld h,d - ld l,e - ld a,[wPlayerID] - cp [hl] - jr nz,.curMonNotPlayerPikachu - inc hl - ld a,[wPlayerID+1] - cp [hl] - jr nz,.curMonNotPlayerPikachu - push de - push bc - ld hl,wPlayerName - ld d,$6 ; possible player length - 1 -.nameCompareLoop - dec d - jr z,.sameOT - ld a,[bc] - inc bc - cp [hl] - inc hl - jr z,.nameCompareLoop - pop bc - pop de -.curMonNotPlayerPikachu - ld hl,wPartyMon2 - wPartyMon1 - add hl,de - ld d,h - ld e,l - ld hl,NAME_LENGTH - add hl,bc - ld b,h - ld c,l - jr .loop -.sameOT - pop bc - pop de - ld h,d - ld l,e - ld bc,-NAME_LENGTH - add hl,bc - ld a,[hli] - or [hl] - jr z,.noPlayerPikachu ; XXX how is this determined? - pop hl - scf - ret -.noPlayerPikachu - pop hl - and a - ret - -IsThisPartymonStarterPikachu_Box:: ; fce0d (3f:4e0d) - ld hl,wBoxMon1 - ld bc,wBoxMon2 - wBoxMon1 - ld de,wBoxMonOT - jr asm_fce21 - -IsThisPartymonStarterPikachu_Party:: ; fce18 (3f:4e18) -IsThisPartymonStarterPikachu:: - ld hl,wPartyMon1 - ld bc,wPartyMon2 - wPartyMon1 - ld de,wPartyMonOT -asm_fce21: ; fce21 (3f:4e21) - ld a,[wWhichPokemon] - call AddNTimes - ld a,[hl] - cp PIKACHU - jr nz,.notPlayerPikachu - ld bc,wPartyMon1OTID - wPartyMon1 - add hl,bc - ld a,[wPlayerID] - cp [hl] - jr nz,.notPlayerPikachu - inc hl - ld a,[wPlayerID+1] - cp [hl] - jr nz,.notPlayerPikachu - ld h,d - ld l,e - ld a,[wWhichPokemon] - ld bc,NAME_LENGTH - call AddNTimes - ld de,wPlayerName - ld b,$6 -.loop - dec b - jr z,.isPlayerPikachu - ld a,[de] - inc de - cp [hl] - inc hl - jr z,.loop -.notPlayerPikachu - and a - ret -.isPlayerPikachu - scf - ret - -Func_fce5a:: ; fce5a (3f:4e5a) - push de - call IsStarterPikachuInOurParty - pop de - ret nc - ld a,d - cp $80 - ld a,[wPikachuMood] - jr c,.asm_fce6c - cp d - jr c,.asm_fce6e - ret -.asm_fce6c - cp d - ret c -.asm_fce6e - ld a,d - ld [wPikachuMood],a - ret - -Func_fce73:: ; fce73 (3f:4e73) -; function to test if a pokemon is alive? - xor a - ld [wWhichPokemon],a - ld hl,wPartyCount -.loop - inc hl - ld a,[hl] - cp $ff - jr z,.asm_fcea9 - push hl - call IsThisPartymonStarterPikachu_Party - pop hl - jr nc,.asm_fce9e - ld a,[wWhichPokemon] - ld hl,wPartyMon1HP - ld bc,wPartyMon2 - wPartyMon1 - call AddNTimes - ld a,[hli] - or [hl] - ld d,a - inc hl - inc hl - ld a,[hl] - and a - jr nz,.asm_fcea7 - jr .asm_fcea9 -.asm_fce9e - ld a,[wWhichPokemon] - inc a - ld [wWhichPokemon],a - jr .loop -.asm_fcea7 - scf - ret -.asm_fcea9 - and a - ret - -Func_fceab:: ; fceab (3f:4eab) - ld hl,wPartySpecies - ld de,wPartyMon1Moves - ld bc,wPartyMonOT - push hl -.loop - pop hl - ld a,[hli] - push hl - inc a - jr z,.noSurfingPlayerPikachu - cp PIKACHU+1 - jr nz,.curMonNotSurfingPlayerPikachu - ld h,d - ld l,e - push hl - push bc - ld b,NUM_MOVES -.moveSearchLoop - ld a,[hli] - cp SURF - jr z,.foundSurfingPikachu - dec b - jr nz,.moveSearchLoop - pop bc - pop hl - jr .curMonNotSurfingPlayerPikachu -.foundSurfingPikachu - pop bc - pop hl - inc hl - inc hl - inc hl - inc hl - ld a,[wPlayerID] - cp [hl] - jr nz,.curMonNotSurfingPlayerPikachu - inc hl - ld a,[wPlayerID+1] - cp [hl] - jr nz,.curMonNotSurfingPlayerPikachu - push de - push bc - ld hl,wPlayerName - ld d,$6 -.nameCompareLoop - dec d - jr z,.foundSurfingPlayerPikachu - ld a,[bc] - inc bc - cp [hl] - inc hl - jr z,.nameCompareLoop - pop bc - pop de -.curMonNotSurfingPlayerPikachu - ld hl,wPartyMon2 - wPartyMon1 - add hl,de - ld d,h - ld e,l - ld hl,NAME_LENGTH - add hl,bc - ld b,h - ld c,l - jr .loop -.foundSurfingPlayerPikachu - pop bc - pop de - pop hl - scf - ret -.noSurfingPlayerPikachu - pop hl - and a - ret - -Func_fcf0c:: ; fcf0c (3f:4f0c) - dr $fcf0c,$fd001 -Func_fd001:: ; fd001 (3f:5001) - dr $fd001,$fd004 -Func_fd004:: ; fd004 (3f:5004) - dr $fd004,$fd0d0 -Func_fd0d0:: ; fd0d0 (3f:50d0) - dr $fd0d0,$fd252 -Func_fd252: ; fd252 (3f:5252) - dr $fd252,$fd2a1 -Func_fd2a1:: ; fd2a1 (3f:52a1) - dr $fd2a1,$fe66f - -OfficerJennySprite: INCBIN "gfx/sprites/officer_jenny.2bpp" -PikachuSprite: INCBIN "gfx/sprites/pikachu.2bpp" -SandshrewSprite: INCBIN "gfx/sprites/sandshrew.2bpp" -OddishSprite: INCBIN "gfx/sprites/oddish.2bpp" -BulbasaurSprite: INCBIN "gfx/sprites/bulbasaur.2bpp" -JigglypuffSprite: INCBIN "gfx/sprites/jigglypuff.2bpp" -Clefairy2Sprite: INCBIN "gfx/sprites/clefairy2.2bpp" -ChanseySprite: INCBIN "gfx/sprites/chansey.2bpp" -SurfingPikachuSprite: INCBIN "gfx/sprites/surfing_pikachu.2bpp" -JessieSprite: INCBIN "gfx/sprites/jessie.2bpp" -JamesSprite: INCBIN "gfx/sprites/james.2bpp"
\ No newline at end of file |