pokegold-spaceworld/engine/dumps/bank02.asm

3165 lines
45 KiB
NASM
Executable File

include "constants.asm"
SECTION "engine/dumps/bank02.asm@Function8000", ROMX
Function8000: ; 02:4000
ld a, $00
ld hl, Data8022
call Function1656
call Function1668
ld a, $01
ldh [hConnectedMapWidth], a
ld de, wPlayerSprite
ld a, $00
ldh [hConnectionStripLength], a
ld bc, wMapObjects
call Function813d
ld a, $00
call Function1908
ret
Data8022: ; 02:4022
db $01, $00, $00, $10, $ee, $00, $00, $00
db $00, $00, $00, $00, $00, $00, $00
Function8031: ; 02:4031
call Function8047
ld a, [wUsedSprites+1]
ld [wMap1ObjectSprite], a
ld a, $01
call Function1602
ld b, $00
ld c, $01
call StartFollow
ret
Function8047: ; 02:4047
ld a, $01
ld hl, Data805d
call Function1656
ld a, [wPlayerNextMapX]
ld [wMap1ObjectXCoord], a
ld a, [wPlayerNextMapY]
dec a
ld [wMap1ObjectYCoord], a
ret
Data805d: ; 02:405d
db $4d, $00, $00, $18, $ff, $00, $00, $00
db $00, $00, $00, $00, $00, $00, $00
Function806c: ; 02:406c
ld a, $01
call Function169f
xor a
ld [wObjectFollow_Follower], a
ld a, $ff
ld [wObjectFollow_Leader], a
ret
Function807b: ; 02:407b
ld a, $01
ld hl, Data8089
call Function1656
ld a, $01
call Function1668
ret
Data8089: ; 02:4089
db $01, $00, $00, $17, $ee, $00, $00, $00
db $00, $00, $00, $00, $00, $00, $00
_InitializeVisibleSprites: ; 02:4098
ld bc, wMap2Object
ld a, $02
.sub_809d
ldh [hConnectionStripLength], a
ld hl, $0001
add hl, bc
ld a, [hl]
and a
jr z, .sub_80dc
ld hl, $0000
add hl, bc
ld a, [hl]
cp $ff
jr nz, .sub_80dc
ld a, [wXCoord]
ld d, a
ld a, [wYCoord]
ld e, a
ld hl, $0003
add hl, bc
ld a, [hl]
add $01
sub d
jr c, .sub_80dc
cp $0c
jr nc, .sub_80dc
ld hl, $0002
add hl, bc
ld a, [hl]
add $01
sub e
jr c, .sub_80dc
cp $0b
jr nc, .sub_80dc
push bc
call Function80eb
pop bc
jp c, Function80ea
.sub_80dc
ld hl, $0010
add hl, bc
ld b, h
ld c, l
ldh a, [hConnectionStripLength]
inc a
cp $10
jr nz, .sub_809d
ret
Function80ea: ; 02:40ea
ret
Function80eb: ; 02:40eb
call Function811a
and a
ret nz
ld hl, wObject1StructEnd
ld a, $03
ld de, $0028
.sub_80f8
ldh [hConnectedMapWidth], a
ld a, [hl]
and a
jr z, .sub_8108
add hl, de
ldh a, [hConnectedMapWidth]
inc a
cp $0a
jr nz, .sub_80f8
scf
ret
.sub_8108
ld d, h
ld e, l
call Function813d
ld a, [wVramState]
bit 7, a
ret z
ld hl, $0005
add hl, de
set 5, [hl]
ret
Function811a: ; 02:411a
ldh a, [hConnectionStripLength]
ld e, a
ld d, $00
ld hl, wUnknownWordcc9c
add hl, de
ld a, [hl]
ret
Function8125: ; 02:4125
ldh a, [hConnectionStripLength]
ld e, a
ld d, $00
ld hl, wUnknownWordcc9c
add hl, de
ld [hl], $ff
ret
Function8131: ; 02:4131
ldh a, [hConnectionStripLength]
ld e, a
ld d, $00
ld hl, wUnknownWordcc9c
add hl, de
ld [hl], $00
ret
Function813d: ; 02:413d
ldh a, [hConnectionStripLength]
ld hl, $0001
add hl, de
ld [hl], a
ldh a, [hConnectedMapWidth]
ld hl, $0000
add hl, bc
ld [hl], a
ld hl, $0008
add hl, de
ld [hl], $00
ld hl, $0002
add hl, bc
ld a, [hl]
ld hl, $0015
add hl, de
ld [hl], a
ld hl, $0011
add hl, de
ld [hl], a
ld hl, wYCoord
sub [hl]
and $0f
swap a
ld hl, $0019
add hl, de
ld [hl], a
ld hl, $0003
add hl, bc
ld a, [hl]
ld hl, $0014
add hl, de
ld [hl], a
ld hl, $0010
add hl, de
ld [hl], a
ld hl, wXCoord
sub [hl]
and $0f
swap a
ld hl, $0018
add hl, de
ld [hl], a
ld hl, $0004
add hl, bc
ld a, [hl]
ld hl, $0003
add hl, de
ld [hl], a
call Function81ce
ld hl, $000d
add hl, de
ld [hl], $ff
ld hl, $000a
add hl, de
ld [hl], $00
ld hl, $0007
add hl, de
ld [hl], $00
ld hl, $0001
add hl, bc
ld a, [hl]
ld hl, $0000
add hl, de
ld [hl], a
call Function820d
ld hl, $0002
add hl, de
ld [hl], a
ld hl, $0005
add hl, bc
ld a, [hl]
call Function81f8
ld hl, $000b
add hl, bc
ld a, [hl]
ld hl, $0021
add hl, de
ld [hl], a
and a
ret
Function81ce: ; 02:41ce
ld hl, $0004
add hl, de
ld [hl], $70
ldh a, [hConnectedMapWidth]
push hl
ld hl, wCenteredObject
cp [hl]
pop hl
jr nz, .sub_81e0
set 7, [hl]
.sub_81e0
cp $01
jr z, .sub_81e8
cp $02
jr nz, .sub_81ea
.sub_81e8
set 1, [hl]
.sub_81ea
ld hl, $0005
add hl, de
ld [hl], $00
ldh a, [hConnectedMapWidth]
cp $01
ret z
set 4, [hl]
ret
Function81f8: ; 02:41f8
push af
swap a
and $0f
inc a
ld hl, $0016
add hl, de
ld [hl], a
pop af
and $0f
inc a
ld hl, $0017
add hl, de
ld [hl], a
ret
Function820d: ; 02:420d
push af
ldh a, [hConnectionStripLength]
cp $00
jr nz, .sub_8218
pop af
ld a, $00
ret
.sub_8218
cp $01
jr nz, .sub_8220
pop af
ld a, $0c
ret
.sub_8220
pop af
push hl
push de
ld d, a
ld e, $00
ld hl, wUsedNPCSprites
.sub_8229
ld a, [hli]
cp d
jr z, .sub_8238
inc e
ld a, e
cp $0a
jr nz, .sub_8229
ld a, $00
scf
jr .sub_823f
.sub_8238
ld hl, Data8242
ld d, $00
add hl, de
ld a, [hl]
.sub_823f
pop de
pop hl
ret
Data8242: ; 02:4242
db $18, $24, $30, $3c, $48, $54, $60, $6c
db $78, $7c
Function824c: ; 02:424c
nop
ld a, [wPlayerStepDirection]
cp $ff
ret z
ld hl, Table8259
jp CallJumptable
Table8259: ; 02:4259
dw Function8299
dw Function8292
dw Function82e6
dw Function82ed
Function8261: ; 02:4261
ret
Function8262: ; 02:4262
ld a, [wPlayerStepDirection]
cp $ff
ret z
ld hl, Table826e
jp CallJumptable
Table826e: ; 02:426e
dw Function827d
dw Function8276
dw Function8284
dw Function828b
Function8276: ; 02:4276
ld a, [wYCoord]
sub $02
jr Function829e
Function827d: ; 02:427d
ld a, [wYCoord]
add $0a
jr Function829e
Function8284: ; 02:4284
ld a, [wXCoord]
sub $02
jr Function82f2
Function828b: ; 02:428b
ld a, [wXCoord]
add $0b
jr Function82f2
Function8292: ; 02:4292
ld a, [wYCoord]
sub $01
jr Function829e
Function8299: ; 02:4299
ld a, [wYCoord]
add $09
Function829e: ; 02:429e
ld d, a
ld a, [wXCoord]
ld e, a
ld bc, wMap2Object
ld a, $02
.sub_82a8
ldh [hConnectionStripLength], a
ld hl, $0001
add hl, bc
ld a, [hl]
and a
jr z, .sub_82d8
ld hl, $0002
add hl, bc
ld a, d
cp [hl]
jr nz, .sub_82d8
ld hl, $0000
add hl, bc
ld a, [hl]
cp $ff
jr nz, .sub_82d8
ld hl, $0003
add hl, bc
ld a, [hl]
add $01
sub e
jr c, .sub_82d8
cp $0c
jr nc, .sub_82d8
push de
push bc
call Function80eb
pop bc
pop de
.sub_82d8
ld hl, $0010
add hl, bc
ld b, h
ld c, l
ldh a, [hConnectionStripLength]
inc a
cp $10
jr nz, .sub_82a8
ret
Function82e6: ; 02:42e6
ld a, [wXCoord]
sub $01
jr Function82f2
Function82ed: ; 02:42ed
ld a, [wXCoord]
add $0a
Function82f2: ; 02:42f2
ld e, a
ld a, [wYCoord]
ld d, a
ld bc, wMap2Object
ld a, $02
.sub_82fc
ldh [hConnectionStripLength], a
ld hl, $0001
add hl, bc
ld a, [hl]
and a
jr z, .sub_832c
ld hl, $0003
add hl, bc
ld a, e
cp [hl]
jr nz, .sub_832c
ld hl, $0000
add hl, bc
ld a, [hl]
cp $ff
jr nz, .sub_832c
ld hl, $0002
add hl, bc
ld a, [hl]
add $01
sub d
jr c, .sub_832c
cp $0b
jr nc, .sub_832c
push de
push bc
call Function80eb
pop bc
pop de
.sub_832c
ld hl, $0010
add hl, bc
ld b, h
ld c, l
ldh a, [hConnectionStripLength]
inc a
cp $10
jr nz, .sub_82fc
ret
Function833a: ; 02:433a
ld a, c
push af
call InitMovementBuffer
ld a, $29
call AppendToMovementBuffer
ld a, b
call GetMapObject
ld hl, $0000
add hl, bc
ld a, [hl]
cp $ff
jr z, .sub_8361
call GetObjectStruct
ld hl, $0011
add hl, bc
ld a, [hl]
ld hl, $0010
add hl, bc
ld b, [hl]
ld c, a
jr .sub_836c
.sub_8361
ld hl, $0002
add hl, bc
ld a, [hl]
ld hl, $0003
add hl, bc
ld b, [hl]
ld c, a
.sub_836c
pop af
call ComputePathToWalkToPlayer
ld a, $28
call AppendToMovementBuffer
ld a, $32
call AppendToMovementBuffer
xor a
ret
Function837c: ; 02:437c
call InitMovementBuffer
push bc
ld a, b
call GetMapObject
ld hl, $0000
add hl, bc
ld a, [hl]
call GetObjectStruct
ld hl, $0010
add hl, bc
ld a, [hl]
ld hl, $0011
add hl, bc
ld c, [hl]
ld b, a
pop hl
ld a, l
call ComputePathToWalkToPlayer
ld a, $32
call AppendToMovementBuffer
ret
Function83a2: ; 02:43a2
push de
call InitMovementBuffer
pop de
call Function83b0
ld a, $32
call AppendToMovementBuffer
ret
Function83b0: ; 02:43b0
push de
push bc
ld a, c
call GetMapObject
ld hl, $0000
add hl, bc
ld a, [hl]
call GetObjectStruct
ld d, b
ld e, c
pop bc
ld a, b
call GetMapObject
ld hl, $0000
add hl, bc
ld a, [hl]
call GetObjectStruct
ld hl, $0010
add hl, bc
ld a, [hl]
ld hl, $0011
add hl, bc
ld c, [hl]
ld b, a
ld hl, $0010
add hl, de
ld a, [hl]
ld hl, $0011
add hl, de
ld e, [hl]
ld d, a
pop af
call ComputePathToWalkToPlayer
ret
Function83e8: ; 02:43e8
ld hl, wcb70
push hl
ld a, [hl]
ld l, a
ld h, $00
ld de, Table83fb
add hl, hl
add hl, de
ld e, [hl]
inc hl
ld d, [hl]
pop hl
push de
ret
Table83fb: ; 02:43fb
dw Function8432
dw Function844a
dw Function8459
dw Function8433
dw Function8438
dw Function843d
dw Function8468
dw Function8477
dw Function8485
dw Function848b
dw Function8494
dw Function849b
dw Function84a9
dw Function84af
dw Function84b8
Function8419: ; 02:4419
ld a, c
ld [wVBCopyFarSrcBank], a
ld a, l
ld [wVBCopyFarSrc], a
ld a, h
ld [wVBCopyFarSrc+1], a
Function8425: ; 02:4425
ld a, e
ld [wVBCopyFarDst], a
ld a, d
ld [wVBCopyFarDst+1], a
Function842d: ; 02:442d
ld a, b
ld [wVBCopyFarSize], a
ret
Function8432: ; 02:4432
ret
Function8433: ; 02:4433
ld hl, ShockEmoteGFX
jr Function8440
Function8438: ; 02:4438
ld hl, QuestionEmoteGFX
jr Function8440
Function843d: ; 02:443d
ld hl, HappyEmoteGFX
Function8440: ; 02:4440
ld de, $8f80
ld b, $04
ld c, BANK(HappyEmoteGFX)
jp Function8419
Function844a: ; 02:444a
ld [hl], $00
ld hl, JumpShadowGFX
ld de, $8fc0
ld b, $01
ld c, BANK(JumpShadowGFX)
jp Function8419
Function8459: ; 02:4459
ld [hl], $00
ld hl, UnknownBouncingOrbGFX
ld de, $8fc0
ld b, $04
ld c, BANK(UnknownBouncingOrbGFX)
jp Function8419
Function8468: ; 02:4468
ld [hl], $00
ld hl, UnknownBallGFX
ld de, $8fc0
ld b, $01
ld c, BANK(UnknownBallGFX)
jp Function8419
Function8477: ; 02:4477
inc [hl]
ld hl, GrampsSpriteGFX
ld de, vChars0
ld b, $06
ld c, BANK(GrampsSpriteGFX)
jp Function8419
Function8485: ; 02:4485
inc [hl]
ld b, $06
jp Function842d
Function848b: ; 02:448b
inc [hl]
ld de, vChars1
ld b, $06
jp Function8425
Function8494: ; 02:4494
ld [hl], $00
ld b, $06
jp Function842d
Function849b: ; 02:449b
inc [hl]
ld hl, PippiSpriteGFX
ld de, vChars0
ld b, $06
ld c, BANK(PippiSpriteGFX)
jp Function8419
Function84a9: ; 02:44a9
inc [hl]
ld b, $06
jp Function842d
Function84af: ; 02:44af
inc [hl]
ld de, vChars1
ld b, $06
jp Function8425
Function84b8: ; 02:44b8
ld [hl], $00
ld b, $06
jp Function842d
SECTION "engine/dumps/bank02.asm@QueueFollowerFirstStep", ROMX
QueueFollowerFirstStep: ; 02:45df
call Function85f2
jr c, .sub_85ec
ld [wFollowMovementQueue], a
xor a
ld [wFollowerMovementQueueLength], a
ret
.sub_85ec
ld a, $ff
ld [wFollowerMovementQueueLength], a
ret
Function85f2: ; 02:45f2
ld a, [wObjectFollow_Leader]
call GetObjectStruct
ld hl, $0010
add hl, bc
ld d, [hl]
ld hl, $0011
add hl, bc
ld e, [hl]
ld a, [wObjectFollow_Follower]
call GetObjectStruct
ld hl, $0010
add hl, bc
ld a, d
cp [hl]
jr z, .sub_861a
jr c, .sub_8616
and a
ld a, $0b
ret
.sub_8616
and a
ld a, $0a
ret
.sub_861a
ld hl, $0011
add hl, bc
ld a, e
cp [hl]
jr z, .sub_862c
jr c, .sub_8628
and a
ld a, $08
ret
.sub_8628
and a
ld a, $09
ret
.sub_862c
scf
ret
Function862e: ; 02:462e
ld a, e
and $3f
cp $20
jr nc, .sub_863a
call Function8644
ld a, h
ret
.sub_863a
and $1f
call Function8644
ld a, h
xor $ff
inc a
ret
Function8644: ; 02:4644
ld e, a
ld a, d
ld d, $00
ld hl, Data8660
add hl, de
add hl, de
ld e, [hl]
inc hl
ld d, [hl]
ld hl, $0000
.sub_8653
srl a
jr nc, .sub_8658
add hl, de
.sub_8658
sla e
rl d
and a
jr nz, .sub_8653
ret
Data8660: ; 02:4660
dw $00
dw $19
dw $32
dw $4a
dw $62
dw $79
dw $8e
dw $a2
dw $b5
dw $c6
dw $d5
dw $e2
dw $ed
dw $f5
dw $fb
dw $ff
dw $100
dw $ff
dw $fb
dw $f5
dw $ed
dw $e2
dw $d5
dw $c6
dw $b5
dw $a2
dw $8e
dw $79
dw $62
dw $4a
dw $32
dw $19
Function86a0: ; 02:46a0
call Function881e
ld hl, InitEffectObject
ld a, BANK(InitEffectObject)
call FarCall_hl
call Function886a
call WaitBGMap
call SetPalettes
.sub_86b4
call DelayFrame
call GetJoypadDebounced
ld hl, EffectObjectJumpNoDelay
ld a, BANK(EffectObjectJumpNoDelay)
call FarCall_hl
ld hl, hJoyDown
ld a, [hl]
and $03
jr z, .sub_86b4
ret
FlyMap: ; 02:46cb
ld hl, hJoyDebounceSrc
ld a, [hl]
push af
ld [hl], $01
call Function881e
ld hl, InitEffectObject
ld a, BANK(InitEffectObject)
call FarCall_hl
call Function886a
call Function88b3
ld hl, $cb60
ld [hl], c
inc hl
ld [hl], b
ld hl, $c3cd
ld de, Text8776
call PlaceString
call WaitBGMap
call SetPalettes
xor a
ld [wFlyDestination], a
.sub_86fc
call DelayFrame
call GetJoypadDebounced
ld hl, EffectObjectJumpNoDelay
ld a, BANK(EffectObjectJumpNoDelay)
call FarCall_hl
ld hl, hJoyDown
ld a, [hl]
and $02
jr nz, .sub_873e
ld a, [hl]
and $01
jr nz, .sub_8743
call Function8747
ld hl, Functionc77d
ld a, BANK(Functionc77d)
call FarCall_hl
ld d, $00
ld hl, Data8a53
add hl, de
add hl, de
ld d, [hl]
inc hl
ld e, [hl]
ld hl, $cb60
ld c, [hl]
inc hl
ld b, [hl]
ld hl, $0004
add hl, bc
ld [hl], e
ld hl, $0005
add hl, bc
ld [hl], d
jr .sub_86fc
.sub_873e
ld a, $ff
ld [wFlyDestination], a
.sub_8743
pop af
ldh [hJoyDebounceSrc], a
ret
Function8747: ; 02:4747
ld a, [wFlyDestination]
ld l, a
ld h, $00
add hl, hl
add hl, hl
ld de, Data8a17
add hl, de
ld de, hJoySum
ld a, [de]
and $40
jr nz, .sub_876e
inc hl
ld a, [de]
and $80
jr nz, .sub_876e
inc hl
ld a, [de]
and $20
jr nz, .sub_876e
inc hl
ld a, [de]
and $10
jr nz, .sub_876e
ret
.sub_876e
ld a, [hl]
cp $ff
ret z
ld [wFlyDestination], a
ret
Text8776: ; 02:4776
;db "とびさき を えらんでください@"
db $c4, $3b, $bb, $b7, $7f, $dd, $7f, $b4
db $d7, $de, $33, $b8, $30, $bb, $b2, $50
Function8786: ; 02:4786
ld a, [wFlyDestination]
push af
xor a
ld [wFlyDestination], a
call Function881e
ld de, PokedexNestIconGFX
ld hl, $87f0
ld bc, $0201
call Request1bpp
call GetPokemonName
ld hl, $c3d0
call PlaceString
ld hl, $c3d5
ld de, Text87e4
call PlaceString
call WaitBGMap
call SetPalettes
xor a
ldh [hBGMapMode], a
ld hl, wTileMap
ld bc, $0168
xor a
call ByteFill
ld hl, Function3e9dc
ld a, BANK(Function3e9dc)
call FarCall_hl
.sub_87ca
call Function87ea
call GetJoypadDebounced
ldh a, [hJoyDown]
and $03
jr nz, .sub_87df
ld hl, wFlyDestination
inc [hl]
call DelayFrame
jr .sub_87ca
.sub_87df
pop af
ld [wFlyDestination], a
ret
Text87e4: ; 02:47e4
;db "の すみか@"
db $c9, $7f, $bd, $d0, $b6, $50
Function87ea: ; 02:47ea
ld a, [wFlyDestination]
and $10
jr z, .sub_881a
ld de, wTileMap
ld hl, wVirtualOAM
.sub_87f7
ld a, [de]
and a
ret z
push de
push hl
ld e, a
ld d, $00
ld hl, Data8a53
add hl, de
add hl, de
ld e, l
ld d, h
pop hl
ld a, [de]
inc de
sub $04
ld [hli], a
ld a, [de]
inc de
sub $04
ld [hli], a
ld a, $7f
ld [hli], a
xor a
ld [hli], a
pop de
inc de
jr .sub_87f7
.sub_881a
call ClearSprites
ret
Function881e: ; 02:481e
call ClearBGPalettes
call ClearTileMap
call UpdateSprites
call DisableLCD
ld hl, PokedexLocationGFX
ld de, vTilesetEnd
ld bc, $0200
ld a, BANK(PokedexLocationGFX)
call FarCopyData
ld hl, wTileMap
call DecompTownMapTilemap
ld hl, $c3a4
ld b, $03
ld c, $12
call DrawTextBox
ld a, $03
call UpdateSoundNTimes
call EnableLCD
ld b, $02
call GetSGBLayout
ret
DecompTownMapTilemap: ; 02:4856
ld de, TownMapTilemap
.sub_8859
ld a, [de]
and a
ret z
ld b, a
inc de
ld a, [de]
ld c, a
ld a, b
add $60
.sub_8863
ld [hli], a
dec c
jr nz, .sub_8863
inc de
jr .sub_8859
Function886a: ; 02:486a
ld de, GoldSpriteGFX
ld hl, vChars0
lb bc, BANK(GoldSpriteGFX), $04
call Request2bpp
ld de, GoldSpriteGFX + $c0
ld hl, $8040
lb bc, BANK(GoldSpriteGFX), $04
call Request2bpp
ld de, $0000
ld a, $41
call InitSpriteAnimStruct
ld hl, $0003
add hl, bc
ld [hl], $00
push bc
ld a, [wMapGroup]
ld b, a
ld a, [wMapId]
ld c, a
call GetWorldMapLocation
ld e, a
ld d, $00
ld hl, Data8a53
add hl, de
add hl, de
ld d, [hl]
inc hl
ld e, [hl]
pop bc
ld hl, $0004
add hl, bc
ld [hl], e
ld hl, $0005
add hl, bc
ld [hl], d
ret
Function88b3: ; 02:48b3
ld de, PoppoSpriteGFX
ld hl, $8080
lb bc, BANK(PoppoSpriteGFX), $04
call Request2bpp
ld de, PoppoSpriteGFX + $c0
ld hl, $80c0
lb bc, BANK(PoppoSpriteGFX), $04
call Request2bpp
ld de, $0000
ld a, $41
call InitSpriteAnimStruct
ld hl, $0003
add hl, bc
ld [hl], $08
ret
TownMapTilemap: ; 02:48da
db $04, $05
db $19, $01
db $1a, $08
db $1b, $01
db $04, $02
db $09, $01
db $06, $02
db $04, $05
db $1c, $01
db $05, $01
db $11, $01
db $12, $01
db $13, $01
db $14, $01
db $15, $01
db $16, $01
db $17, $01
db $1c, $01
db $04, $02
db $0a, $01
db $05, $01
db $06, $01
db $04, $05
db $1d, $01
db $1a, $08
db $1e, $01
db $04, $03
db $0f, $01
db $10, $01
db $04, $01
db $0d, $01
db $0e, $02
db $0d, $01
db $04, $09
db $02, $01
db $04, $02
db $01, $01
db $07, $01
db $08, $01
db $02, $01
db $0f, $01
db $02, $01
db $04, $01
db $0f, $01
db $09, $01
db $06, $01
db $08, $01
db $04, $05
db $01, $01
db $05, $01
db $03, $01
db $07, $02
db $05, $01
db $06, $01
db $06, $01
db $05, $01
db $07, $01
db $0e, $01
db $05, $01
db $07, $03
db $08, $01
db $04, $03
db $02, $01
db $04, $01
db $0f, $01
db $04, $01
db $0c, $01
db $06, $01
db $07, $01
db $0b, $01
db $06, $01
db $07, $01
db $0b, $01
db $04, $01
db $0f, $01
db $10, $01
db $06, $01
db $05, $01
db $07, $02
db $0c, $01
db $07, $02
db $03, $01
db $0f, $01
db $09, $01
db $07, $01
db $06, $01
db $07, $01
db $03, $01
db $06, $01
db $0f, $01
db $09, $01
db $06, $01
db $07, $01
db $03, $01
db $0a, $01
db $06, $05
db $07, $02
db $05, $01
db $07, $02
db $06, $01
db $05, $01
db $04, $01
db $0b, $01
db $0d, $01
db $0c, $01
db $07, $01
db $05, $01
db $0e, $01
db $07, $02
db $06, $0a
db $07, $01
db $03, $01
db $04, $02
db $0a, $01
db $06, $01
db $0b, $01
db $04, $01
db $06, $01
db $05, $01
db $07, $02
db $05, $01
db $06, $01
db $05, $01
db $06, $05
db $0c, $01
db $08, $01
db $04, $06
db $0a, $01
db $06, $02
db $0b, $01
db $07, $01
db $06, $01
db $0c, $01
db $06, $02
db $18, $01
db $06, $02
db $07, $01
db $06, $01
db $04, $0a
db $0c, $01
db $07, $01
db $05, $01
db $07, $02
db $05, $01
db $07, $03
db $0b, $01
db $04, $0d
db $10, $01
db $04, $01
db $0a, $01
db $0b, $01
db $04, $01
db $10, $01
db $04, $01
db $00
SECTION "engine/dumps/bank02.asm@Data8a17", ROMX
Data8a17: ; 02:4a17
db $0b
db $ff
db $01, $0a, $03, $00, $02, $00, $05, $01, $03, $01, $04, $02, $0d, $02
db $0d, $03, $0d, $05, $04, $02, $04, $06, $07
db $ff
db $05, $08
db $ff
db $06
db $ff
db $ff
db $0e, $09, $06, $0e, $08, $0a, $0a
db $08, $09, $00, $00, $09, $0c, $00
db $ff
db $ff
db $ff
db $0b
db $ff
db $ff
db $04, $03
db $ff
db $04
db $ff
db $08, $08
db $ff
Data8a53: ; 02:4a53
db $00, $00, $1c, $9c, $28, $9c, $34, $9c
db $40, $9c, $4c, $9c, $5c, $9c, $6c, $94
db $6c, $84, $6c, $78, $6c, $6c, $64, $6c
db $5c, $6c, $6c, $64, $6c, $5c, $5c, $5c
db $5c, $50, $5c, $44, $50, $44, $44, $44
db $44, $5c, $44, $6c, $4c, $74, $4c, $7c
db $40, $7c, $34, $7c, $4c, $84, $3c, $8c
db $34, $94, $5c, $80, $54, $68, $3c, $38
db $3c, $2c, $34, $2c, $2c, $20, $34, $14
db $3c, $14, $3c, $20, $48, $14, $54, $1c
db $54, $2c, $54, $38, $3c, $44, $48, $2c
OpenPokegear: ; 02:4aab
ld hl, wce5f
ld a, [hl]
push af
set 4, [hl]
ldh a, [hMapAnims]
push af
xor a
ldh [hMapAnims], a
ldh a, [hJoypadSum]
push af
ld a, [wVramState]
push af
xor a
ld [wVramState], a
call Function8ae0
call DelayFrame
.sub_8ac9
call Function8ba3
jr nc, .sub_8ac9
pop af
ld [wVramState], a
pop af
ldh [hJoypadSum], a
pop af
ldh [hMapAnims], a
pop af
ld [wce5f], a
call ClearJoypad
ret
Function8ae0: ; 02:4ae0
call ClearBGPalettes
call DisableLCD
call ClearSprites
ld b, $13
call GetSGBLayout
ld hl, Pokegear1GFX
ld de, vChars2
ld bc, $0200
ld a, $02
call FarCopyData
call Function8b2a
call Function8b7e
xor a
ldh [hSCY], a
ldh [hSCX], a
ld [wJumptableIndex], a
ld [wFlyDestination], a
ld a, $ff
ld [wcb60], a
ld a, $07
ldh [hWX], a
ld a, $08
call UpdateSoundNTimes
ld a, $e3
ldh [rLCDC], a
call WaitBGMap
call SetPalettes
ld a, $e0
ldh [rOBP1], a
ret
Function8b2a: ; 02:4b2a
ld hl, wTileMap
ld bc, $0168
ld a, $7f
call ByteFill
ld de, wTileMap
ld hl, Data8b42
ld bc, $003c
call CopyBytes
ret
Data8b42: ; 02:4b42
db $0d, $1c, $1d, $0b, $1c, $1d, $0b, $1c
db $1d, $0c, $01, $05, $05, $05, $05, $05
db $05, $05, $05, $02, $08, $1e, $1f, $0a
db $1e, $1f, $0a, $1e, $1f, $07, $08, $7f
db $7f, $0f, $7f, $7f, $0f, $7f, $7f, $07
db $03, $06, $06, $09, $06, $06, $09, $06
db $06, $04, $03, $06, $06, $06, $06, $06
db $06, $06, $06, $04
Function8b7e: ; 02:4b7e
ld hl, $c2a1
ld a, $10
call Function8b97
ld hl, $c2a4
ld a, $14
call Function8b97
ld hl, $c2a7
ld a, $18
call Function8b97
ret
Function8b97: ; 02:4b97
ld [hli], a
inc a
ld [hld], a
ld bc, $0014
add hl, bc
inc a
ld [hli], a
inc a
ld [hld], a
ret
Function8ba3: ; 02:4ba3
call UpdateTime
call GetJoypadDebounced
ld a, [wJumptableIndex]
bit 7, a
jr nz, .sub_8bc3
call Function8bfd
ld a, BANK(EffectObjectJumpNoDelay)
ld hl, EffectObjectJumpNoDelay
call FarCall_hl
call Function8bd5
call DelayFrame
and a
ret
.sub_8bc3
ld hl, InitEffectObject
ld a, BANK(InitEffectObject)
call FarCall_hl
call ClearSprites
xor a
ldh [hSCX], a
ldh [hSCY], a
scf
ret
Function8bd5: ; 02:4bd5
ld hl, $c2bf
ld a, $7f
ld [hli], a
ld [hl], a
ld de, hRTCHours
ld hl, $c2bf
ld bc, $0102
call PrintNumber
inc hl
ld de, hRTCMinutes
ld bc, $8102
call PrintNumber
inc hl
ld de, hRTCSeconds
ld bc, $8102
call PrintNumber
ret
Function8bfd: ; 02:4bfd
ld a, [wJumptableIndex]
ld e, a
ld d, $00
ld hl, Table8c0c
add hl, de
add hl, de
ld a, [hli]
ld h, [hl]
ld l, a
jp hl
Table8c0c: ; 02:4c0c
dw Function8c21
dw Function8c49
dw DrawMap
dw Function8cab
dw Function8cb7
dw Function8d62
dw Function8e6c
dw Function8e9e
Function8c1c: ; 02:4c1c
ld hl, wJumptableIndex
inc [hl]
ret
Function8c21: ; 02:4c21
ld hl, InitEffectObject
ld a, BANK(InitEffectObject)
call FarCall_hl
ld de, PointerGFX
ld hl, $87c0
lb bc, BANK(PointerGFX), $04
call Request2bpp
ld a, $29
ld hl, wTileMapBackup
ld [hli], a
ld [hl], $7c
ld de, $241c
ld a, $44
call InitSpriteAnimStruct
call Function8c1c
ret
Function8c49: ; 02:4c49
ld hl, hJoySum
ld a, [hl]
and $02
jr nz, .sub_8c59
ld a, [hl]
and $01
ret z
call Function8c5f
ret
.sub_8c59
ld hl, wJumptableIndex
set 7, [hl]
ret
Function8c5f: ; 02:4c5f
ld a, [wFlyDestination]
ld hl, wcb60
cp [hl]
ret z
ld [wcb60], a
and $03
ld e, a
ld d, $00
ld hl, Unknown8c78
add hl, de
ld a, [hl]
ld [wJumptableIndex], a
ret
Unknown8c78: ; 02:4c78
db $02, $04, $06, $02
DrawMap: ; 02:4c7c
call Function8c1c
call Function8eaa
call WaitForAutoBgMapTransfer
ld b, $14
call GetSGBLayout
ld de, PokedexLocationGFX
ld hl, vTilesetEnd
lb bc, BANK(PokedexLocationGFX), $1f
call Request2bpp
ld hl, $c2dc
call DecompTownMapTilemap
call WaitBGMap
call Function886a
ld hl, $0005
add hl, bc
ld a, [hl]
add $18
ld [hl], a
ret
Function8cab: ; 02:4cab
ld hl, hJoyDown
ld a, [hl]
and $02
ret z
xor a
ld [wJumptableIndex], a
ret
Function8cb7: ; 02:4cb7
call Function8c1c
call Function8eaa
call WaitForAutoBgMapTransfer
ld b, $15
call GetSGBLayout
ld de, Pokegear2GFX
ld hl, vTilesetEnd
lb bc, BANK(Pokegear2GFX), $09
call Request2bpp
ld de, VerticalPipeGFX
ld hl, vChars0
lb bc, BANK(VerticalPipeGFX), $01
call Request2bpp
ld hl, $c2dc
ld bc, $00b4
ld a, $0e
call ByteFill
ld hl, $c341
ld bc, $0412
call Function8ef9
ld hl, $c2e0
ld bc, $060e
call Function8ef9
ld a, $05
ld hl, $c37c
ld [hl], a
ld hl, $c38f
ld [hl], a
ld hl, $c306
ld a, $60
ld [hli], a
inc a
ld [hld], a
inc a
ld bc, $0014
add hl, bc
ld [hli], a
inc a
ld [hld], a
ld hl, $c2f2
ld a, $64
ld [hli], a
inc a
ld [hl], a
ld hl, $c309
ld bc, $000c
ld a, $66
call ByteFill
ld hl, $c31d
ld bc, $000c
ld a, $67
call ByteFill
ld hl, Text91c2
call PrintText
call WaitBGMap
ld de, $4c23
ld a, $44
call InitSpriteAnimStruct
ld hl, $0002
add hl, bc
ld [hl], $00
ld hl, $0003
add hl, bc
ld [hl], $7c
ld de, $4030
ld a, $4b
call InitSpriteAnimStruct
ld hl, $0003
add hl, bc
ld [hl], $00
xor a
ld [wcb61], a
ret
Function8d62: ; 02:4d62
ld hl, hJoyDown
ld a, [hl]
and $02
ret z
xor a
ld [wJumptableIndex], a
ret
Function8d6e: ; 02:4d6e
ld hl, wcb61
ld e, [hl]
ld d, $00
ld hl, Table8d7d
add hl, de
add hl, de
ld a, [hli]
ld h, [hl]
ld l, a
jp hl
Table8d7d: ; 02:4d7d
dw Function8d85
dw Function8d91
dw Function8d85
dw Function8db9
Function8d85: ; 02:4d85
ld hl, hJoyDown
ld a, [hl]
and $01
ret z
ld hl, wcb61
inc [hl]
ret
Function8d91: ; 02:4d91
ld hl, $000c
add hl, bc
ld a, [hl]
and a
jr nz, .sub_8da6
call Function8dfd
jr c, .sub_8db1
ld hl, $0006
add hl, bc
ld a, [hl]
and a
jr z, .sub_8dab
.sub_8da6
ld hl, $ffc0
jr Function8de3
.sub_8dab
ld a, $03
ld [wcb61], a
ret
.sub_8db1
call .sub_8da6
xor a
ld [wcb61], a
ret
Function8db9: ; 02:4db9
ld hl, $000c
add hl, bc
ld a, [hl]
and a
jr nz, .sub_8dcf
call Function8dfd
jr c, .sub_8dda
ld hl, $0006
add hl, bc
ld a, [hl]
cp $60
jr z, .sub_8dd4
.sub_8dcf
ld hl, $0040
jr Function8de3
.sub_8dd4
ld a, $01
ld [wcb61], a
ret
.sub_8dda
call .sub_8dcf
ld a, $02
ld [wcb61], a
ret
Function8de3: ; 02:4de3
push hl
ld hl, $0006
add hl, bc
ld d, [hl]
ld hl, $000c
add hl, bc
ld e, [hl]
pop hl
add hl, de
ld e, l
ld d, h
ld hl, $000c
add hl, bc
ld [hl], e
ld hl, $0006
add hl, bc
ld [hl], d
ret
Function8dfd: ; 02:4dfd
ld hl, $0006
add hl, bc
push bc
ld c, [hl]
ld a, [wMapGroup]
ld e, a
ld d, $00
ld hl, Table8e2f
add hl, de
add hl, de
ld a, [hli]
ld h, [hl]
ld l, a
.sub_8e11
ld a, [hl]
and a
jr z, .sub_8e1e
cp c
jr z, .sub_8e21
ld de, $0006
add hl, de
jr .sub_8e11
.sub_8e1e
pop bc
and a
ret
.sub_8e21
ld de, Function8e2c
push de
inc hl
ld e, [hl]
inc hl
ld a, [hli]
ld h, [hl]
ld l, a
jp hl
Function8e2c: ; 02:4e2c
pop bc
scf
ret
Table8e2f: ; 02:4e2f
dw Data8e4d
dw Data8e4d
dw Data8e4d
dw Data8e4d
dw Data8e4d
dw Data8e4d
dw Data8e4d
dw Data8e4d
dw Data8e4d
dw Data8e4d
dw Data8e4d
dw Data8e4d
dw Data8e4d
dw Data8e4d
dw Data8e4d
Data8e4d: ; 02:4e4d
db $10, $02
dw Function8e66
dw Function8e66
db $20, $05
dw Function8e66
dw Function8e66
db $40, $07
dw Function8e66
dw Function8e66
db $48, $09
dw Function8e66
dw Function8e66
db $00
Function8e66: ; 02:4e66
ld d, $00
call PlayMusic
ret
Function8e6c: ; 02:4e6c
call Function8c1c
call Function8eaa
call WaitForAutoBgMapTransfer
ld b, $13
call GetSGBLayout
call LoadFontExtra
ld de, Text8e90
ld hl, $c333
call PlaceString
ld hl, Text8e95
call PrintText
call WaitBGMap
ret
Text8e90: ; 02:4e90
db "けんがい@"
Text8e95: ; 02:4e95
text "ちぇっ⋯⋯⋯⋯"
done
Function8e9e: ; 02:4e9e
ld hl, hJoyDown
ld a, [hl]
and $02
ret z
xor a
ld [wJumptableIndex], a
ret
Function8eaa: ; 02:4eaa
ld hl, InitEffectObject
ld a, BANK(InitEffectObject)
call FarCall_hl
call ClearSprites
call WaitForAutoBgMapTransfer
ld hl, $c2dc
ld bc, $012c
ld a, $7f
call ByteFill
call WaitBGMap
call WaitBGMap
ret
Function8eca: ; 02:4eca
ld hl, wFlyDestination
ld de, hJoySum
ld a, [de]
and $20
jr nz, .sub_8edc
ld a, [de]
and $10
jr nz, .sub_8ee2
jr .sub_8ee7
.sub_8edc
ld a, [hl]
and a
ret z
dec [hl]
jr .sub_8ee7
.sub_8ee2
ld a, [hl]
cp $02
ret nc
inc [hl]
.sub_8ee7
ld e, [hl]
ld d, $00
ld hl, Data8ef5
add hl, de
ld a, [hl]
ld hl, $0006
add hl, bc
ld [hl], a
ret
Data8ef5: ; 02:4ef5
db $00, $18, $30, $00
Function8ef9: ; 02:4ef9
dec c
dec c
dec b
dec b
ld de, $0014
push bc
push hl
ld a, $01
ld [hli], a
ld a, $05
.sub_8f07
ld [hli], a
dec c
jr nz, .sub_8f07
ld a, $02
ld [hl], a
pop hl
pop bc
add hl, de
.sub_8f11
push bc
push hl
ld a, $08
ld [hli], a
ld a, $7f
.sub_8f18
ld [hli], a
dec c
jr nz, .sub_8f18
ld a, $07
ld [hli], a
pop hl
add hl, de
pop bc
dec b
jr nz, .sub_8f11
ld a, $03
ld [hli], a
ld a, $06
.sub_8f2a
ld [hli], a
dec c
jr nz, .sub_8f2a
ld a, $04
ld [hli], a
ret
SECTION "engine/dumps/bank02.asm@Text91c2", ROMX
Text91c2: ; 02:51c2
text "エーボタンで チューニング!"
done
SetTitleBGDecorationBorder: ; 02:51d2
ld de, TitleBGDecorationBorder
ld hl, $9500
lb bc, BANK(TitleBGDecorationBorder), $09
call Request2bpp
ld hl, $c340
ld b, $50
call Function91ef
ld hl, $c3e0
ld b, $54
call Function91ef
ret
Function91ef: ; 02:51ef
xor a
ld c, $14
.sub_91f2
and $03
or b
ld [hli], a
inc a
dec c
jr nz, .sub_91f2
ret
SECTION "engine/dumps/bank02.asm@Function928b", ROMX
Function928b: ; 02:528b
ld a, b
cp $ff
jr nz, .sub_9293
ld a, [wccd0]
.sub_9293
cp $fc
jp z, Function9604
ld l, a
ld h, $00
add hl, hl
ld de, Table92a8
add hl, de
ld a, [hli]
ld h, [hl]
ld l, a
ld de, Function955f
push de
jp hl
Table92a8: ; 02:52a8
dw Function92d4
dw Function92db
dw Function934b
dw Function9352
dw Function9382
dw Function93a6
dw Function93ad
dw Function93bb
dw Function93b4
dw Function93fe
dw Function937b
dw Function941a
dw Function93d8
dw Function9441
dw Function932b
dw Function93e4
dw Function939f
dw Function93eb
dw Function9448
dw Function948e
dw Function94ab
dw Function94c8
Function92d4: ; 02:52d4
ld hl, Data99ec
ld de, Data988c
ret
Function92db: ; 02:52db
ld hl, Data995c
ld de, wcce1
ld bc, $0010
call CopyBytes
ld a, [wca3f]
ld hl, wca02
call Function9567
jr c, .sub_92f7
ld e, $00
call Function9599
.sub_92f7
ld b, a
ld a, [wca44]
ld hl, wcdd7
call Function9567
jr c, .sub_9308
ld e, $01
call Function9599
.sub_9308
ld c, a
ld hl, wcce2
ld a, [wccd1]
add $23
ld [hli], a
inc hl
ld a, [wccd2]
add $23
ld [hli], a
inc hl
ld a, b
ld [hli], a
inc hl
ld a, c
ld [hl], a
ld hl, wcce1
ld de, Data988c
ld a, $01
ld [wccd0], a
ret
Function932b: ; 02:532b
ld hl, Data995c
ld de, wcce1
ld bc, $0010
call CopyBytes
ld hl, wcce2
ld [hl], $10
inc hl
inc hl
ld a, [wccd1]
add $23
ld [hl], a
ld hl, wcce1
ld de, Data98bc
ret
Function934b: ; 02:534b
ld hl, Data99fc
ld de, Data986c
ret
Function9352: ; 02:5352
ld hl, Data995c
ld de, wcce1
ld bc, $0010
call CopyBytes
ld a, [wMonDexIndex]
call Function956d
call Function957e
push af
ld hl, wcce2
ld a, [wccd9]
add $23
ld [hli], a
inc hl
pop af
ld [hl], a
ld hl, wcce1
ld de, Data98ac
ret
Function937b: ; 02:537b
ld hl, Data99dc
ld de, wcce2
ret
Function9382: ; 02:5382
ld hl, Data9a0c
ld de, wcce1
ld bc, $0010
call CopyBytes
ld a, [wMonDexIndex]
call Function956d
ld hl, wcce4
ld [hl], a
ld hl, wcce1
ld de, Data98cc
ret
Function939f: ; 02:539f
ld hl, Data99bc
ld de, Data986c
ret
Function93a6: ; 02:53a6
ld hl, Data9a1c
ld de, Data98dc
ret
Function93ad: ; 02:53ad
ld hl, Data9a2c
ld de, Data993c
ret
Function93b4: ; 02:53b4
ld hl, Data9a3c
ld de, Data986c
ret
Function93bb: ; 02:53bb
ld b, $00
ld hl, Table93cc
add hl, bc
add hl, bc
add hl, bc
add hl, bc
ld e, [hl]
inc hl
ld d, [hl]
inc hl
ld a, [hli]
ld h, [hl]
ld l, a
ret
Table93cc: ; 02:53cc
dw Data986c
dw Data996c
dw Data987c
dw Data998c
dw Data986c
dw Data999c
Function93d8: ; 02:53d8
ld hl, Data9a4c
ld de, Data986c
ld a, $08
ld [wccd0], a
ret
Function93e4: ; 02:53e4
ld hl, Data99cc
ld de, Data986c
ret
Function93eb: ; 02:53eb
ld hl, Data986c
ld de, $c51a
ld bc, $0010
call CopyBytes
ld hl, Data994c
ld de, Data986c
ret
Function93fe: ; 02:53fe
ld hl, Data995c
ld de, wcce1
ld bc, $0010
call CopyBytes
call Function94e5
ld hl, wcce2
ld [hld], a
ld de, Data986c
ld a, $09
ld [wccd0], a
ret
Function941a: ; 02:541a
push bc
ld hl, Data995c
ld de, wcce1
ld bc, $0010
call CopyBytes
pop bc
ld a, c
and a
ld a, $0e
jr nz, .sub_9437
ld a, [wccd1]
call Function956d
call Function957e
.sub_9437
ld [wcce2], a
ld hl, wcce1
ld de, Data986c
ret
Function9441: ; 02:5441
ld hl, Data9a3c
ld de, Data986c
ret
Function9448: ; 02:5448
ld hl, Data995c
ld de, wcce1
ld bc, $0010
call CopyBytes
ld hl, Data986c
ld de, $ccf1
ld bc, $0010
call CopyBytes
call Function94e5
ld hl, wcce2
ld [hl], a
ld a, [wMonDexIndex]
call Function956d
ld hl, wcce4
ld [hl], a
ld hl, wccf4
ld a, $05
ld [hli], a
ld a, [wMenuBorderLeftCoord]
ld [hli], a
ld a, [wMenuBorderTopCoord]
ld [hli], a
ld a, [wMenuBorderRightCoord]
ld [hli], a
ld a, [wMenuBorderBottomCoord]
ld [hl], a
ld hl, wcce1
ld de, wccf1
ret
Function948e: ; 02:548e
ld hl, Data995c
ld de, wcce1
ld bc, $0010
call CopyBytes
ld a, $16
ld [wcce2], a
ld a, $30
ld [wcce4], a
ld hl, wcce1
ld de, Data992c
ret
Function94ab: ; 02:54ab
ld hl, Data995c
ld de, wcce1
ld bc, $0010
call CopyBytes
ld a, $16
ld [wcce2], a
ld a, $26
ld [wcce4], a
ld hl, wcce1
ld de, Data992c
ret
Function94c8: ; 02:54c8
ld hl, Data995c
ld de, wcce1
ld bc, $0010
call CopyBytes
ld a, $16
ld [wcce2], a
ld a, $39
ld [wcce4], a
ld hl, wcce1
ld de, Data992c
ret
Function94e5: ; 02:54e5
ld a, [wMapPermissions]
cp $02
jr z, .sub_950e
cp $04
jr z, .sub_9516
cp $06
jr z, .sub_951e
cp $05
jr z, .sub_9521
cp $03
jr z, .sub_9505
call Function9527
jr c, .sub_9524
call Function9543
ret
.sub_9505
call Function9536
jr c, .sub_9524
call Function9543
ret
.sub_950e
call Function9527
jr c, .sub_9524
ld a, $00
ret
.sub_9516
call Function9527
jr c, .sub_9524
ld a, $0c
ret
.sub_951e
ld a, $03
ret
.sub_9521
ld a, $04
ret
.sub_9524
ld a, $0d
ret
Function9527: ; 02:5527
ld a, [wTimeOfDay]
and $03
jr z, .sub_9534
cp $03
jr z, .sub_9534
scf
ret
.sub_9534
and a
ret
Function9536: ; 02:5536
ld a, [wTimeOfDay]
and $03
cp $02
jr nz, .sub_9541
scf
ret
.sub_9541
and a
ret
Function9543: ; 02:5543
ld a, [wMapGroup]
ld e, a
ld d, $00
ld hl, Data954f
add hl, de
ld a, [hl]
ret
Data954f: ; 02:554f
db $01, $07, $0c, $03, $08, $06, $0b, $04
db $05, $0a, $02, $03, $02, $02, $09, $01
Function955f: ; 02:555f
push de
call Function964b
pop hl
jp Function964b
Function9567: ; 02:5567
bit 3, a
ld a, $18
ret nz
ld a, [hl]
Function956d: ; 02:556d
and a
jr z, .sub_957a
ld e, a
ld d, $00
ld hl, PokemonPalettes
add hl, de
ld a, [hl]
and a
ret
.sub_957a
ld a, $0f
scf
ret
Function957e: ; 02:557e
push bc
push af
ld hl, wPartyMon1DVs
ld a, [wWhichPokemon]
ld bc, $0030
call AddNTimes
call Function95b0
ld b, $00
jr nc, .sub_9595
ld b, $0a
.sub_9595
pop af
add b
pop bc
ret
Function9599: ; 02:5599
push bc
push af
ld a, e
and a
ld a, [wcae1]
jr z, .sub_95a4
srl a
.sub_95a4
srl a
ld b, $00
jr nc, .sub_95ac
ld b, $0a
.sub_95ac
pop af
add b
pop bc
ret
Function95b0: ; 02:55b0
ld a, [hl]
cp $a0
jr c, .sub_95ca
ld a, [hli]
and $0f
cp $0a
jr c, .sub_95ca
ld a, [hl]
cp $a0
jr c, .sub_95ca
ld a, [hl]
and $0f
cp $0a
jr c, .sub_95ca
scf
ret
.sub_95ca
and a
ret
Function95cc: ; 02:55cc
ld hl, $cddf
ldh a, [hBattleTurn]
and a
jr nz, .sub_95d7
ld hl, $ca08
.sub_95d7
call Function95b0
ld hl, wcae1
jr nc, .sub_95ec
ldh a, [hBattleTurn]
and a
jr nz, .sub_95e8
set 0, [hl]
jr .sub_95f7
.sub_95e8
set 1, [hl]
jr .sub_95f7
.sub_95ec
ldh a, [hBattleTurn]
and a
jr nz, .sub_95f5
res 0, [hl]
jr .sub_95f7
.sub_95f5
res 1, [hl]
.sub_95f7
ret
Function95f8: ; 02:55f8
ld hl, Data98fc
ld de, wcce2
ld bc, $0030
jp CopyBytes
Function9604: ; 02:5604
ld hl, $ccd3
ld a, [wcce1]
ld e, a
ld d, $00
add hl, de
ld e, l
ld d, h
ld a, [de]
and a
ld e, $05
jr z, .sub_961d
dec a
ld e, $0a
jr z, .sub_961d
ld e, $0f
.sub_961d
push de
ld hl, $cceb
ld bc, $0006
ld a, [wcce1]
call AddNTimes
pop de
ld [hl], e
ret
Function962d: ; 02:562d
ld hl, Data997c
jp Function964b
Function9633: ; 02:5633
ld hl, Data986c
jp Function964b
Function9639: ; 02:5639
ld hl, Data99ac
jp Function964b
Function963f: ; 02:563f
ld hl, Data99bc
jp Function964b
Function9645: ; 02:5645
ld hl, $c51a
jp Function964b
Function964b: ; 02:564b
ld a, [wJoypadFlags]
push af
set 7, a
ld [wJoypadFlags], a
call Function965c
pop af
ld [wJoypadFlags], a
ret
Function965c: ; 02:565c
ld a, [hl]
and $07
ret z
ld b, a
.sub_9661
push bc
xor a
ldh [rJOYP], a
ld a, $30
ldh [rJOYP], a
ld b, $10
.sub_966b
ld e, $08
ld a, [hli]
ld d, a
.sub_966f
bit 0, d
ld a, $10
jr nz, .sub_9677
ld a, $20
.sub_9677
ldh [rJOYP], a
ld a, $30
ldh [rJOYP], a
rr d
dec e
jr nz, .sub_966f
dec b
jr nz, .sub_966b
ld a, $20
ldh [rJOYP], a
ld a, $30
ldh [rJOYP], a
call Function9860
pop bc
dec b
jr nz, .sub_9661
ret
CheckSGB: ; 02:5695
ld a, [wJoypadFlags]
push af
set 7, a
ld [wJoypadFlags], a
xor a
ldh [rJOYP], a
ld [wSGB], a
call Function9730
jr nc, .sub_96c0
ld a, $01
ld [wSGB], a
call .sub_96c5
call Function9704
call Function979a
call Function9725
ld hl, Data9abc
call Function965c
.sub_96c0
pop af
ld [wJoypadFlags], a
ret
.sub_96c5
ld hl, Table96d9
ld c, $09
.sub_96ca
push bc
ld a, [hli]
push hl
ld h, [hl]
ld l, a
call Function965c
pop hl
inc hl
pop bc
dec c
jr nz, .sub_96ca
ret
Table96d9: ; 02:56d9
dw Data9aac
dw Data9acc
dw Data9adc
dw Data9aec
dw Data9afc
dw Data9b0c
dw Data9b1c
dw Data9b2c
dw Data9b3c
Function96eb: ; 02:56eb
ld a, [wSGB]
ret z
di
xor a
ldh [rJOYP], a
ld hl, Data9aac
call Function965c
call Function9704
ld hl, Data9abc
call Function965c
ei
ret
Function9704: ; 02:5704
call Function9710
push de
call Function980a
pop hl
call Function97be
ret
Function9710: ; 02:5710
ld a, [wce5f]
bit 3, a
jr nz, .sub_971e
ld hl, UnusedSGBBorderGFX
ld de, Corrupted9e1cGFX
ret
.sub_971e
ld hl, SGBBorderGFX
ld de, Corrupteda66cGFX
ret
Function9725: ; 02:5725
ld hl, vChars0
ld bc, $2000
xor a
call ByteFill
ret
Function9730: ; 02:5730
ld hl, Data9a7c
call Function965c
call Function9860
ldh a, [rJOYP]
and $03
cp $03
jr nz, .sub_978c
ld a, $20
ldh [rJOYP], a
ldh a, [rJOYP]
ldh a, [rJOYP]
call Function9860
call Function9860
ld a, $30
ldh [rJOYP], a
call Function9860
call Function9860
ld a, $10
ldh [rJOYP], a
ldh a, [rJOYP]
ldh a, [rJOYP]
ldh a, [rJOYP]
ldh a, [rJOYP]
ldh a, [rJOYP]
ldh a, [rJOYP]
call Function9860
call Function9860
ld a, $30
ldh [rJOYP], a
ldh a, [rJOYP]
ldh a, [rJOYP]
ldh a, [rJOYP]
call Function9860
call Function9860
ldh a, [rJOYP]
and $03
cp $03
jr nz, .sub_978c
call .sub_9791
and a
ret
.sub_978c
call .sub_9791
scf
ret
.sub_9791
ld hl, Data9a6c
call Function965c
jp Function9860
Function979a: ; 02:579a
call DisableLCD
ld a, $e4
ldh [rBGP], a
ld hl, SuperPalettes
ld de, vChars1
ld bc, $1000
call Function9838
call Function984a
ld a, $e3
ldh [rLCDC], a
ld hl, Data9a5c
call Function965c
xor a
ldh [rBGP], a
ret
Function97be: ; 02:57be
call DisableLCD
ld a, $e4
ldh [rBGP], a
ld de, vChars1
ld bc, $0140
call Function9838
ld b, $12
.sub_97d0
push bc
ld bc, $000c
call Function9838
ld bc, $0028
call Function9841
ld bc, $000c
call Function9838
pop bc
dec b
jr nz, .sub_97d0
ld bc, $0140
call Function9838
ld bc, $0100
call Function9841
ld bc, $0080
call Function9838
call Function984a
ld a, $e3
ldh [rLCDC], a
ld hl, Data9a9c
call Function965c
xor a
ldh [rBGP], a
ret
Function980a: ; 02:580a
call DisableLCD
ld a, $e4
ldh [rBGP], a
ld de, vChars1
ld b, $80
.sub_9816
push bc
ld bc, $0010
call Function9838
ld bc, $0010
call Function9841
pop bc
dec b
jr nz, .sub_9816
call Function984a
ld a, $e3
ldh [rLCDC], a
ld hl, Data9a8c
call Function965c
xor a
ldh [rBGP], a
ret
Function9838: ; 02:5838
ld a, [hli]
ld [de], a
inc de
dec bc
ld a, c
or b
jr nz, Function9838
ret
Function9841: ; 02:5841
xor a
ld [de], a
inc de
dec bc
ld a, c
or b
jr nz, Function9841
ret
Function984a: ; 02:584a
ld hl, vBGMap0
ld de, $000c
ld a, $80
ld c, $0d
.sub_9854
ld b, $14
.sub_9856
ld [hli], a
inc a
dec b
jr nz, .sub_9856
add hl, de
dec c
jr nz, .sub_9854
ret
Function9860: ; 02:5860
ld de, $1b58
.sub_9863
nop
nop
nop
dec de
ld a, d
or e
jr nz, .sub_9863
ret
Data986c: ; 02:586c
db $21, $01, $03, $00, $00, $00, $13, $11
db $00, $00, $00, $00, $00, $00, $00, $00
Data987c: ; 02:587c
db $21, $01, $07, $05, $00, $0a, $13, $0d
db $00, $00, $00, $00, $00, $00, $00, $00
Data988c: ; 02:588c
db $22, $05, $07, $0a, $00, $0c, $13, $11
db $03, $05, $01, $00, $0a, $03, $03, $00
Data989c: ; 02:589c
db $0a, $08, $13, $0a, $03, $0a, $00, $04
db $08, $0b, $03, $0f, $0b, $00, $13, $07
Data98ac: ; 02:58ac
db $21, $01, $07, $05, $00, $01, $07, $07
db $00, $00, $00, $00, $00, $00, $00, $00
Data98bc: ; 02:58bc
db $21, $01, $07, $05, $0b, $01, $13, $02
db $00, $00, $00, $00, $00, $00, $00, $00
Data98cc: ; 02:58cc
db $21, $01, $07, $05, $01, $01, $08, $08
db $00, $00, $00, $00, $00, $00, $00, $00
Data98dc: ; 02:58dc
db $22, $05, $03, $05, $00, $00, $13, $0b
db $03, $0a, $00, $04, $13, $09, $02, $0f
Data98ec: ; 02:58ec
db $00, $06, $13, $07, $03, $00, $04, $04
db $0f, $09, $03, $00, $00, $0c, $13, $11
Data98fc: ; 02:58fc
db $23, $07, $07, $10, $00, $00, $02, $0c
db $02, $00, $0c, $00, $12, $01, $02, $00
Data990c: ; 02:590c
db $0c, $02, $12, $03, $02, $00, $0c, $04
db $12, $05, $02, $00, $0c, $06, $12, $07
Data991c: ; 02:591c
db $02, $00, $0c, $08, $12, $09, $02, $00
db $0c, $0a, $12, $0b, $00, $00, $00, $00
Data992c: ; 02:592c
db $21, $01, $07, $10, $00, $00, $13, $02
db $00, $00, $00, $00, $00, $00, $00, $00
Data993c: ; 02:593c
db $21, $01, $07, $10, $00, $00, $13, $05
db $00, $00, $00, $00, $00, $00, $00, $00
Data994c: ; 02:594c
db $51, $35, $00, $36, $00, $37, $00, $38
db $00, $00, $00, $00, $00, $00, $00, $00
Data995c: ; 02:595c
db $51, $00, $00, $00, $00, $00, $00, $00
db $00, $00, $00, $00, $00, $00, $00, $00
Data996c: ; 02:596c
db $51, $2a, $00, $00, $00, $00, $00, $00
db $00, $00, $00, $00, $00, $00, $00, $00
Data997c: ; 02:597c
db $51, $2b, $00, $00, $00, $00, $00, $00
db $00, $00, $00, $00, $00, $00, $00, $00
Data998c: ; 02:598c
db $51, $2c, $00, $2d, $00, $00, $00, $00
db $00, $00, $00, $00, $00, $00, $00, $00
Data999c: ; 02:599c
db $51, $2e, $00, $00, $00, $00, $00, $00
db $00, $00, $00, $00, $00, $00, $00, $00
Data99ac: ; 02:59ac
db $51, $2f, $00, $00, $00, $00, $00, $00
db $00, $00, $00, $00, $00, $00, $00, $00
Data99bc: ; 02:59bc
db $51, $30, $00, $00, $00, $00, $00, $00
db $00, $00, $00, $00, $00, $00, $00, $00
Data99cc: ; 02:59cc
db $51, $2d, $00, $00, $00, $00, $00, $00
db $00, $00, $00, $00, $00, $00, $00, $00
Data99dc: ; 02:59dc
db $51, $22, $00, $23, $00, $24, $00, $25
db $00, $00, $00, $00, $00, $00, $00, $00
Data99ec: ; 02:59ec
db $51, $0e, $00, $0e, $00, $0e, $00, $0e
db $00, $00, $00, $00, $00, $00, $00, $00
Data99fc: ; 02:59fc
db $51, $26, $00, $00, $00, $00, $00, $00
db $00, $00, $00, $00, $00, $00, $00, $00
Data9a0c: ; 02:5a0c
db $51, $30, $00, $00, $00, $00, $00, $00
db $00, $00, $00, $00, $00, $00, $00, $00
Data9a1c: ; 02:5a1c
db $51, $31, $00, $32, $00, $33, $00, $34
db $00, $00, $00, $00, $00, $00, $00, $00
Data9a2c: ; 02:5a2c
db $51, $27, $00, $28, $00, $0f, $00, $13
db $00, $00, $00, $00, $00, $00, $00, $00
Data9a3c: ; 02:5a3c
db $51, $0f, $00, $00, $00, $00, $00, $00
db $00, $00, $00, $00, $00, $00, $00, $00
Data9a4c: ; 02:5a4c
db $51, $29, $00, $00, $00, $00, $00, $00
db $00, $00, $00, $00, $00, $00, $00, $00
Data9a5c: ; 02:5a5c
db $59, $00, $00, $00, $00, $00, $00, $00
db $00, $00, $00, $00, $00, $00, $00, $00
Data9a6c: ; 02:5a6c
db $89, $00, $00, $00, $00, $00, $00, $00
db $00, $00, $00, $00, $00, $00, $00, $00
Data9a7c: ; 02:5a7c
db $89, $01, $00, $00, $00, $00, $00, $00
db $00, $00, $00, $00, $00, $00, $00, $00
Data9a8c: ; 02:5a8c
db $99, $00, $00, $00, $00, $00, $00, $00
db $00, $00, $00, $00, $00, $00, $00, $00
Data9a9c: ; 02:5a9c
db $a1, $00, $00, $00, $00, $00, $00, $00
db $00, $00, $00, $00, $00, $00, $00, $00
Data9aac: ; 02:5aac
db $b9, $01, $00, $00, $00, $00, $00, $00
db $00, $00, $00, $00, $00, $00, $00, $00
Data9abc: ; 02:5abc
db $b9, $00, $00, $00, $00, $00, $00, $00
db $00, $00, $00, $00, $00, $00, $00, $00
Data9acc: ; 02:5acc
db $79, $5d, $08, $00, $0b, $8c, $d0, $f4
db $60, $00, $00, $00, $00, $00, $00, $00
Data9adc: ; 02:5adc
db $79, $52, $08, $00, $0b, $a9, $e7, $9f
db $01, $c0, $7e, $e8, $e8, $e8, $e8, $e0
Data9aec: ; 02:5aec
db $79, $47, $08, $00, $0b, $c4, $d0, $16
db $a5, $cb, $c9, $05, $d0, $10, $a2, $28
Data9afc: ; 02:5afc
db $79, $3c, $08, $00, $0b, $f0, $12, $a5
db $c9, $c9, $c8, $d0, $1c, $a5, $ca, $c9
Data9b0c: ; 02:5b0c
db $79, $31, $08, $00, $0b, $0c, $a5, $ca
db $c9, $7e, $d0, $06, $a5, $cb, $c9, $7e
Data9b1c: ; 02:5b1c
db $79, $26, $08, $00, $0b, $39, $cd, $48
db $0c, $d0, $34, $a5, $c9, $c9, $80, $d0
Data9b2c: ; 02:5b2c
db $79, $1b, $08, $00, $0b, $ea, $ea, $ea
db $ea, $ea, $a9, $01, $cd, $4f, $0c, $d0
Data9b3c: ; 02:5b3c
db $79, $10, $08, $00, $0b, $4c, $20, $08
db $ea, $ea, $ea, $ea, $ea, $60, $ea, $ea