pokegold-spaceworld/engine/dumps/bank01.asm
2020-09-22 16:06:05 -04:00

4091 lines
51 KiB
NASM
Executable File
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

INCLUDE "constants.asm"
SECTION "engine/dumps/bank01.asm@Function40fd", ROMX
Function40fd:
ld hl, wd41a
set 5, [hl]
ld hl, wd41a
set 7, [hl]
ld hl, wd41a
set 0, [hl]
ld hl, wd41a
set 3, [hl]
ld hl, wd41a
set 6, [hl]
ld hl, wd41a
set 6, [hl]
ld hl, wd41e
set 5, [hl]
ld hl, wd41b
set 1, [hl]
ld hl, wd41c
set 4, [hl]
ld hl, wd41d
set 2, [hl]
ld hl, wd41b
set 2, [hl]
ld a, $01
ld [wd29a], a
ld a, $01
ld [wd29b], a
ld a, $06
ld [wd29c], a
ld a, $12
ld [wd29d], a
ld a, $06
ld [wd29e], a
ld a, $02
ld [wd2a0], a
ret
SECTION "engine/dumps/bank01.asm@Table416b", ROMX
Table416b:
dw Unknown41eb
dw Unknown4203
dw Unknown41ef
dw Unknown4203
dw Unknown41eb
dw Unknown4203
dw Unknown41ef
dw Unknown420f
dw Unknown41f3
dw Unknown4203
dw Unknown41f7
dw Unknown4203
dw Unknown41f3
dw Unknown4203
dw Unknown41f7
dw Unknown420f
dw Unknown41fb
dw Unknown4203
dw Unknown41ff
dw Unknown4203
dw Unknown41fb
dw Unknown4203
dw Unknown41ff
dw Unknown4203
dw Unknown41fb
dw Unknown420f
dw Unknown41ff
dw Unknown420f
dw Unknown41fb
dw Unknown420f
dw Unknown41ff
dw Unknown420f
dw Unknown41eb
dw Unknown4203
dw Unknown41eb
dw Unknown4203
dw Unknown41eb
dw Unknown4203
dw Unknown41eb
dw Unknown4203
dw Unknown41eb
dw Unknown4203
dw Unknown41eb
dw Unknown4203
dw Unknown41eb
dw Unknown4203
dw Unknown41eb
dw Unknown4203
dw Unknown41eb
dw Unknown4203
dw Unknown41eb
dw Unknown4203
dw Unknown41eb
dw Unknown4203
dw Unknown41eb
dw Unknown4203
dw Unknown41eb
dw Unknown4203
dw Unknown41eb
dw Unknown4203
dw Unknown41eb
dw Unknown4203
dw Unknown41eb
dw Unknown4203
Unknown41eb:
db $00, $01, $02, $03
Unknown41ef:
db $80, $81, $82, $83
Unknown41f3:
db $04, $05, $06, $07
Unknown41f7:
db $84, $85, $86, $87
Unknown41fb:
db $08, $09, $0a, $0b
Unknown41ff:
db $88, $89, $8a, $8b
Unknown4203:
db $00, $00, $00, $00
db $08, $00, $08, $00
db $02, $08, $08, $03
Unknown420f:
db $00, $08, $20, $00
db $00, $20, $08, $08
db $22, $08, $00, $23
Table421b:
dw Unknown423b
dw Unknown424b
dw Unknown423b
dw Unknown425b
dw Unknown426b
dw Unknown427b
dw Unknown426b
dw Unknown428b
dw Unknown429b
dw Unknown42bb
dw Unknown429b
dw Unknown42bb
dw Unknown42ab
dw Unknown42cb
dw Unknown42ab
dw Unknown42cb
Unknown423b:
db $00, $00, $00, $00
db $00, $08, $01, $00
db $08, $00, $02, $02
db $08, $08, $03, $03
Unknown424b:
db $00, $00, $80, $00
db $00, $08, $81, $00
db $08, $00, $82, $02
db $08, $08, $83, $03
Unknown425b:
db $00, $08, $80, $20
db $00, $00, $81, $20
db $08, $08, $82, $22
db $08, $00, $83, $23
Unknown426b:
db $00, $00, $04, $00
db $00, $08, $05, $00
db $08, $00, $06, $02
db $08, $08, $07, $03
Unknown427b:
db $00, $00, $84, $00
db $00, $08, $85, $00
db $08, $00, $86, $02
db $08, $08, $87, $03
Unknown428b:
db $00, $08, $84, $20
db $00, $00, $85, $20
db $08, $08, $86, $22
db $08, $00, $87, $23
Unknown429b:
db $00, $00, $08, $00
db $00, $08, $09, $00
db $08, $00, $0a, $02
db $08, $08, $0b, $03
Unknown42ab:
db $00, $08, $08, $20
db $00, $00, $09, $20
db $08, $08, $0a, $22
db $08, $00, $0b, $23
Unknown42bb:
db $00, $00, $88, $00
db $00, $08, $89, $00
db $08, $00, $8a, $02
db $08, $08, $8b, $03
Unknown42cb:
db $00, $08, $88, $20
db $00, $00, $89, $20
db $08, $08, $8a, $22
db $08, $00, $8b, $23
Function42db:
ld bc, wCmdQueue
ld a, $01
.sub_42e0
ldh [hConnectedMapWidth], a
ld hl, $0000
add hl, bc
ld a, [hl]
and a
jr z, .sub_42ed
call .sub_42fb
.sub_42ed
ld hl, $0010
add hl, bc
ld b, h
ld c, l
ldh a, [hConnectedMapWidth]
inc a
cp $05
jr nz, .sub_42e0
ret
.sub_42fb
ld hl, $0001
add hl, bc
ld a, [hl]
ld hl, Table431d
call CallJumptable
ld hl, $0000
add hl, bc
ld a, [hl]
and a
ret z
ld hl, $0002
add hl, bc
ld e, [hl]
ld d, $00
ld hl, Table4329
add hl, de
add hl, de
ld a, [hli]
ld h, [hl]
ld l, a
jp hl
Table431d::
dw Function4333
dw Function439e
dw Function4430
dw Function4374
dw Function4374
dw Function43c9
Table4329::
dw Function4334
dw Function4452
dw Function4459
dw Function446c
dw Function4495
Function4333:
ret
Function4334:
ret
Function4335:
push bc
ld h, b
ld l, c
ld bc, $0010
xor a
call ByteFill
pop bc
ret
Function4341:
ld hl, $000a
add hl, bc
inc [hl]
ret
Function4347:
pop hl
ld e, [hl]
inc hl
ld d, [hl]
ld hl, $000a
add hl, bc
ld l, [hl]
ld h, $00
add hl, hl
add hl, de
ld a, [hli]
ld h, [hl]
ld l, a
jp hl
Function4358:
ld hl, $000a
add hl, bc
ld a, [hl]
add a
ld l, a
ld h, $00
add hl, de
ld a, [hli]
ld h, [hl]
ld l, a
jp hl
Function4366:
push bc
ld hl, $0000
add hl, bc
ld a, [hl]
dec a
call GetObjectStruct
ld d, b
ld e, c
pop bc
ret
Function4374:
ld de, Table437a
jp Function4358
Table437a:
dw Function437e
dw Function439b
Function437e:
call Function4341
ld hl, $000e
add hl, bc
ld a, [hl]
ld hl, $000b
add hl, bc
ld [hl], a
ld hl, $0006
add hl, bc
ld [hl], $00
ld hl, $000f
add hl, bc
ld a, [hl]
ld hl, $0007
add hl, bc
ld [hl], a
Function439b:
jp Function4402
Function439e:
ld de, Table43a4
jp Function4358
Table43a4:
dw Function43a8
dw Function43c6
Function43a8:
call Function4341
call Function4366
ld hl, $0009
add hl, de
ld a, [hl]
add a
dec a
ld hl, $000b
add hl, bc
ld [hl], a
ld hl, $0006
add hl, bc
ld [hl], $00
ld hl, $0007
add hl, bc
ld [hl], $08
Function43c6:
jp Function4402
Function43c9:
ld de, Table43cf
jp Function4358
Table43cf:
dw Function43d3
dw Function43ff
Function43d3:
call Function4366
ld hl, $0009
add hl, de
ld a, [hl]
add $01
ld hl, $000b
add hl, bc
ld [hl], a
ld hl, $000e
add hl, bc
ld a, [hl]
ld hl, $0006
add hl, bc
ld [hl], a
ld hl, $000f
add hl, bc
ld a, [hl]
ld hl, $0007
add hl, bc
ld [hl], a
ld hl, $000d
add hl, bc
ldh a, [rOBP1]
ld [hl], a
ldh [rOBP1], a
Function43ff:
jp Function4402
Function4402:
ld hl, $000b
add hl, bc
ld a, [hl]
and a
jr z, .sub_440e
dec [hl]
jp z, Function4335
.sub_440e
call Function4366
ld hl, $0018
add hl, de
ld a, [hl]
ld hl, $0006
add hl, bc
add [hl]
ld hl, $0004
add hl, bc
ld [hl], a
ld hl, $0019
add hl, de
ld a, [hl]
ld hl, $0007
add hl, bc
add [hl]
ld hl, $0005
add hl, bc
ld [hl], a
ret
Function4430:
ld hl, Table4436
jp Function4358
Table4436:
dw Function443a
dw Function444f
Function443a:
call Function4341
ld hl, $000b
add hl, bc
ld [hl], $31
ld hl, $0006
add hl, bc
ld [hl], $00
ld hl, $0007
add hl, bc
ld [hl], $f0
Function444f:
jp Function4402
Function4452:
ld hl, $000c
add hl, bc
ld [hl], $02
ret
Function4459:
ld hl, $000b
add hl, bc
ld a, [hl]
cp $30
ld a, $01
jr c, .sub_4466
ld a, $00
.sub_4466
ld hl, $000c
add hl, bc
ld [hl], a
ret
Function446c:
ld hl, $0009
add hl, bc
inc [hl]
ld a, [hl]
cp $05
jr c, .sub_4480
xor a
ld [hl], a
ld hl, $0008
add hl, bc
ld a, [hl]
xor $01
ld [hl], a
.sub_4480
ld hl, $0008
add hl, bc
ld a, $00
bit 0, [hl]
jr z, .sub_448f
ld hl, $000d
add hl, bc
ld a, [hl]
.sub_448f
ld hl, $000c
add hl, bc
ld [hl], a
ret
Function4495:
ld hl, $0009
add hl, bc
inc [hl]
ld a, [hl]
cp $03
ld a, $03
jr nz, .sub_44a5
xor a
ld [hl], a
ld a, $04
.sub_44a5
ld hl, $000c
add hl, bc
ld [hl], a
ret
Table44ab:
dw Unknown44b5
dw Unknown44b6
dw Unknown44c7
dw Unknown44d0
dw Unknown44e1
Unknown44b5:
db $00
Unknown44b6:
db $04, $00, $00, $00
db $00, $00, $08, $01
db $00, $08, $00, $02
db $00, $08, $08, $03, $00
Unknown44c7:
db $02, $00, $00, $00
db $00, $00, $08, $00, $20
Unknown44d0:
db $04, $00, $00, $00
db $00, $00, $08, $00
db $00, $08, $00, $00
db $00, $08, $08, $00, $00
Unknown44e1:
db $04, $00, $00, $00
db $40, $00, $08, $00
db $40, $08, $00, $00
db $40, $08, $08, $00, $40
Function44f2:
ld hl, $0008
add hl, bc
ld a, [hl]
and a
jr nz, .sub_44fd
call Function486a
.sub_44fd
ld e, a
ld d, $00
ld hl, Function4545
push hl
ld hl, $0005
add hl, bc
bit 5, [hl]
jp nz, Function453e
ld hl, Table4516
add hl, de
add hl, de
ld a, [hli]
ld h, [hl]
ld l, a
jp hl
Table4516::
dw Function486a
dw Function47b8
dw Function4b88
dw Function4b65
dw Function4b78
dw Function4bc9
dw Function4baa
dw Function484d
dw Function4856
dw Function4859
dw Function485c
dw Function485f
dw Function485f
dw Function485f
dw Function485f
dw Function4ed5
dw Function4f14
dw Function4a05
dw Function4a8b
dw Function4869
Function453e:
ld hl, $000a
add hl, bc
ld [hl], $02
ret
Function4545:
ld hl, $0005
add hl, bc
bit 6, [hl]
jr nz, Function4560
ld hl, $000a
add hl, bc
ld a, [hl]
ld hl, Table4558
jp CallJumptable
Table4558:
dw Function4560
dw Function4567
dw Function4593
dw Function45a0
Function4560:
ld hl, $000d
add hl, bc
ld [hl], $ff
ret
Function4567:
ld hl, $0004
add hl, bc
bit 3, [hl]
jr nz, Function4593
ld hl, $0005
add hl, bc
bit 5, [hl]
jr nz, Function4593
ld hl, $000b
add hl, bc
ld a, [hl]
inc a
and $0f
ld [hl], a
rrca
rrca
and $03
ld d, a
ld hl, $0007
add hl, bc
ld a, [hl]
and $0c
or d
ld hl, $000d
add hl, bc
ld [hl], a
ret
Function4593:
ld hl, $0007
add hl, bc
ld a, [hl]
and $0c
ld hl, $000d
add hl, bc
ld [hl], a
ret
Function45a0:
ld hl, $000b
add hl, bc
ld a, [hl]
and $f0
ld e, a
ld a, [hl]
inc a
and $0f
ld d, a
cp $04
jr c, .sub_45b9
ld d, $00
ld a, e
add $10
and $30
ld e, a
.sub_45b9
ld a, d
or e
ld [hl], a
swap e
ld d, $00
ld hl, Unknown45d0
add hl, de
ld a, [hl]
ld hl, $0007
add hl, bc
ld [hl], a
ld hl, $000d
add hl, bc
ld [hl], a
ret
Unknown45d0:
db $00, $0C, $04, $08
Function45d4:
ld hl, $0010
add hl, bc
ld a, [hl]
ld hl, $0012
add hl, bc
ld [hl], a
ld hl, $0011
add hl, bc
ld a, [hl]
ld hl, $0013
add hl, bc
ld [hl], a
ld hl, $000e
add hl, bc
ld a, [hl]
ld hl, $000f
add hl, bc
ld [hl], a
call Function464c
ld hl, $000e
add hl, bc
ld a, [hl]
call Function4636
ret
Function45fe:
ld hl, $0012
add hl, bc
ld a, [hl]
ld hl, $0010
add hl, bc
ld [hl], a
ld hl, $0013
add hl, bc
ld a, [hl]
ld hl, $0011
add hl, bc
ld [hl], a
ret
Function4613:
ld hl, $0005
add hl, bc
bit 3, [hl]
jr z, .sub_4623
ld hl, $000e
add hl, bc
ld a, [hl]
call Function464c
.sub_4623
nop
ld hl, $000e
add hl, bc
ld a, [hl]
call Function4636
ret c
ld hl, $000f
add hl, bc
ld a, [hl]
call Function4636
ret
Function4636:
and $f0
cp $70
nop
nop
ld hl, $0005
add hl, bc
res 7, [hl]
and a
ret
Function4644:
ld hl, $0005
add hl, bc
set 7, [hl]
scf
ret
Function464c:
call .sub_465f
jr c, .sub_4658
ld hl, $0005
add hl, bc
set 3, [hl]
ret
.sub_4658
ld hl, $0005
add hl, bc
res 3, [hl]
ret
.sub_465f
ld d, a
and $f0
cp $10
jr z, .sub_466c
cp $20
jr z, .sub_4672
scf
ret
.sub_466c
ld a, d
and $07
ret z
scf
ret
.sub_4672
ld a, d
and $07
ret z
scf
ret
Function4678:
xor a
ld hl, $000a
add hl, bc
ld [hl], a
ld hl, $000b
add hl, bc
ld [hl], a
ld hl, $0006
add hl, bc
ld [hl], $ff
ret
Function468a:
and $0f
ld hl, $0006
add hl, bc
ld [hl], a
ld hl, $0004
add hl, bc
bit 2, [hl]
jr nz, Function46a2
ld hl, $0007
add hl, bc
add a
add a
and $0c
ld [hl], a
Function46a2:
call Function46e5
ld hl, $0009
add hl, bc
ld [hl], a
ld a, d
call Function4748
ld hl, $0012
add hl, bc
add [hl]
ld hl, $0010
add hl, bc
ld [hl], a
ld d, a
ld a, e
call Function4748
ld hl, $0013
add hl, bc
add [hl]
ld hl, $0011
add hl, bc
ld [hl], a
ld e, a
push bc
call GetCoordTile
pop bc
ld hl, $000e
add hl, bc
ld [hl], a
ret
Function46d3:
call Function46e5
ld hl, $0018
add hl, bc
ld a, [hl]
add d
ld [hl], a
ld hl, $0019
add hl, bc
ld a, [hl]
add e
ld [hl], a
ret
Function46e5:
ld hl, $0006
add hl, bc
ld l, [hl]
ld h, $00
add hl, hl
add hl, hl
ld de, Table4708
add hl, de
ld d, [hl]
inc hl
ld e, [hl]
inc hl
ld a, [hli]
ld h, [hl]
ret
Function46f9:
ld hl, $0006
add hl, bc
ld l, [hl]
ld h, $00
add hl, hl
add hl, hl
ld de, Table470b
add hl, de
ld a, [hl]
ret
Table4708:
db $00, $01, $10
Table470b:
db $01, $00, $ff
db $10, $01, $ff
db $00, $10, $01
db $01, $00, $10
db $01, $00, $02
db $08, $02, $00
db $fe, $08, $02
db $fe, $00, $08
db $02, $02, $00
db $08, $02, $00
db $04, $04, $04
db $00, $fc, $04
db $04, $fc, $00
db $04, $04, $04
db $00, $04, $04
db $00, $08, $02
db $08, $00, $f8
db $02, $08, $f8
db $00, $02, $08
db $08, $00, $02
db $08
Function4748:
add a
ret z
ld a, $01
ret nc
ld a, $ff
ret
Function4750:
ld hl, $0006
add hl, bc
ld a, [hl]
and $03
ld [wPlayerStepDirection], a
call Function46e5
ld a, d
ld [wcb6c], a
ld a, e
ld [wcb6d], a
ld hl, wcb6e
set 5, [hl]
ret
Function476b:
ld a, [wXCoord]
ld d, a
ld hl, $0010
add hl, bc
ld a, [hl]
sub d
and $0f
swap a
ld hl, $0018
add hl, bc
ld [hl], a
ld a, [wYCoord]
ld e, a
ld hl, $0011
add hl, bc
ld a, [hl]
sub e
and $0f
swap a
ld hl, $0019
add hl, bc
ld [hl], a
ret
Function4792:
ld hl, $001d
add hl, bc
ld [hl], $00
ret
Function4799:
ld hl, $001d
add hl, bc
inc [hl]
ret
Function479f:
ld hl, $001d
add hl, bc
ld a, [hl]
ret
Function47a5:
ld hl, $001d
add hl, bc
ld [hl], a
ret
Function47ab:
ld hl, $001d
add hl, bc
ld l, [hl]
ld h, $00
add hl, hl
add hl, de
ld a, [hli]
ld h, [hl]
ld l, a
jp hl
Function47b8:
ld hl, $0003
add hl, bc
ld a, [hl]
and $1f
ld hl, Table47c5
jp CallJumptable
Table47c5:
dw Function47fb
dw Function4812
dw Function481c
dw Function47fc
dw Function4806
dw Function482b
dw Function482f
dw Function4833
dw Function4837
dw $0000
dw $0000
dw $0000
dw $0000
dw $0000
dw $0000
dw $0000
dw Function484d
dw Function4856
dw Function4859
dw Function485c
dw Function485f
dw Function485f
dw Function485f
dw Function485f
dw Function4862
dw Function4865
dw Function4868
Function47fb:
ret
Function47fc:
call Random
ldh a, [hRandomAdd]
and $01
jp Function48a9
Function4806:
call Random
ldh a, [hRandomAdd]
and $01
or $02
jp Function48a9
Function4812:
call Random
ldh a, [hRandomAdd]
and $03
jp Function48a9
Function481c:
call Random
ldh a, [hRandomAdd]
and $0c
ld hl, $0007
add hl, bc
ld [hl], a
jp Function48da
Function482b:
ld a, $00
jr Function4839
Function482f:
ld a, $04
jr Function4839
Function4833:
ld a, $08
jr Function4839
Function4837:
ld a, $0c
Function4839:
ld hl, $0007
add hl, bc
ld [hl], a
call Function45fe
call Function4678
ld hl, $0008
add hl, bc
ld [hl], $04
jp Function4b78
Function484d:
ld hl, $0008
add hl, bc
ld [hl], $07
jp Function4bed
Function4856:
jp Function4bf9
Function4859:
jp Function4c0c
Function485c:
jp Function4fbc
Function485f:
jp Function4bf3
Function4862:
jp Function4fbc
Function4865:
jp Function4c1f
Function4868:
ret
Function4869:
ret
Function486a:
ld hl, $0010
add hl, bc
ld d, [hl]
ld hl, $0011
add hl, bc
ld e, [hl]
push bc
call GetCoordTile
pop bc
ld hl, $000e
add hl, bc
ld [hl], a
call Function45d4
call Function4678
ld a, $01
ld hl, $0008
add hl, bc
ld [hl], a
ret
Function488c:
call Function468a
call Function771e
jr c, Function48d4
call Function4613
ldh a, [hConnectionStripLength]
ld d, a
ld a, [wCenteredObject]
cp d
jr z, Function48c6
ld hl, $0008
add hl, bc
ld [hl], $02
jp Function4b88
Function48a9:
call Function468a
call Function771e
jr c, Function48d4
call Function4613
ldh a, [hConnectionStripLength]
ld d, a
ld a, [wCenteredObject]
cp d
jr z, Function48c6
ld hl, $0008
add hl, bc
ld [hl], $06
jp Function4baa
Function48c6:
ld hl, $0008
add hl, bc
ld [hl], $05
ld hl, wcb6e
set 7, [hl]
jp Function4bc9
Function48d4:
call Function4678
call Function45fe
Function48da:
ld hl, $0006
add hl, bc
ld [hl], $ff
ld hl, $0008
add hl, bc
ld [hl], $03
call Random
ldh a, [hRandomAdd]
and $7f
ld hl, $0009
add hl, bc
ld [hl], a
jp Function4b65
Function48f5:
ld hl, $0008
add hl, bc
ld [hl], $01
ld hl, $001c
add hl, bc
ld a, [hl]
and $07
cp $04
ld a, $07
jr nc, .sub_490a
ld a, $06
.sub_490a
call Function468a
call Function771e
jr c, .sub_4920
ld hl, $0008
add hl, bc
ld [hl], $02
ld hl, $001c
add hl, bc
inc [hl]
jp Function4b88
.sub_4920
ld hl, $0006
add hl, bc
ld [hl], $ff
ld hl, $000a
add hl, bc
ld [hl], $01
call Function45fe
ret
Function4930:
ld a, [wPlayerNextMapX]
ld d, a
ld a, [wPlayerNextMapY]
ld e, a
ld hl, $0010
add hl, bc
ld a, d
sub [hl]
ld d, a
ld hl, $0011
add hl, bc
ld a, e
sub [hl]
ld e, a
jr z, .sub_495b
ld a, d
and a
jr z, .sub_4965
push de
ld a, d
call .sub_4973
ld d, a
ld a, e
call .sub_4973
ld e, a
cp d
pop de
jr nc, .sub_4965
.sub_495b
ld a, $08
bit 7, d
jr nz, .sub_496d
ld a, $0c
jr .sub_496d
.sub_4965
ld a, $04
bit 7, e
jr nz, .sub_496d
ld a, $00
.sub_496d
ld hl, $0007
add hl, bc
ld [hl], a
ret
.sub_4973
bit 7, a
ret z
dec a
cpl
ret
Function4979:
ret
Function497a:
ld hl, $001e
add hl, bc
inc [hl]
ld a, [hl]
srl a
srl a
and $07
ld l, a
ld h, $00
ld de, Table4994
add hl, de
ld a, [hl]
ld hl, $001b
add hl, bc
ld [hl], a
ret
Table4994:
db $00, $FF, $FE, $FD
db $FC, $FD, $FE, $FF
Function499c:
call Function46f9
ld hl, $001f
add hl, bc
ld e, [hl]
add e
ld [hl], a
ld d, $00
ld hl, Unknown49dc
add hl, de
ld a, [hl]
ld hl, $001b
add hl, bc
ld [hl], a
ldh a, [hConnectionStripLength]
cp $01
ret nz
ldh a, [hJoypadState]
and $f0
ret z
ld d, $00
bit 7, a
jr nz, .sub_49d0
ld d, $04
bit 6, a
jr nz, .sub_49d0
ld d, $08
bit 5, a
jr nz, .sub_49d0
ld d, $0c
.sub_49d0
ld hl, $0007
add hl, bc
ld [hl], d
ld hl, $000a
add hl, bc
ld [hl], $02
ret
Unknown49dc:
db $FC, $FB, $FA, $F9
db $F8, $F7, $F6, $F5
db $F5, $F5, $F4, $F4
db $F4, $F4, $F4, $F4
db $F5, $F5, $F6, $F6
db $F7, $F7, $F8, $F8
db $FA, $FB, $FC, $FE
db $FF, $00, $00, $00
Function49fc:
ld hl, $0008
add hl, bc
ld [hl], $11
call Function4792
Function4a05:
ld de, Table4a0b
jp Function47ab
Table4a0b:
dw Function4a13
dw Function4a28
dw Function4a38
dw Function4a53
Function4a13:
ld hl, $001e
add hl, bc
ld [hl], $04
ld hl, $000b
add hl, bc
ld [hl], $00
ld hl, $0009
add hl, bc
ld [hl], $10
call Function4799
Function4a28:
ld hl, $000a
add hl, bc
ld [hl], $03
ld hl, $0009
add hl, bc
dec [hl]
ret nz
call Function4799
ret
Function4a38:
ld hl, $001e
add hl, bc
ld [hl], $04
ld hl, $000b
add hl, bc
ld [hl], $00
ld hl, $001f
add hl, bc
ld [hl], $10
ld hl, $0009
add hl, bc
ld [hl], $10
call Function4799
Function4a53:
ld hl, $000a
add hl, bc
ld [hl], $03
ld hl, $001f
add hl, bc
inc [hl]
ld a, [hl]
ld d, $60
call Function17cd
ld a, h
sub $60
ld hl, $001b
add hl, bc
ld [hl], a
ld hl, $0009
add hl, bc
dec [hl]
ret nz
ld hl, $0008
add hl, bc
ld [hl], $01
ld hl, $000b
add hl, bc
ld [hl], $00
call Function4792
ret
Function4a82:
ld hl, $0008
add hl, bc
ld [hl], $12
call Function4792
Function4a8b:
ld de, Table4a91
jp Function47ab
Table4a91:
dw Function4a9f
dw Function4aaf
dw Function4ab8
dw Function4ad4
dw Function4af6
dw Function4b00
dw Function4b0c
Function4a9f:
ld hl, $000a
add hl, bc
ld [hl], $00
ld hl, $0009
add hl, bc
ld [hl], $10
call Function4799
ret
Function4aaf:
ld hl, $0009
add hl, bc
dec [hl]
ret nz
call Function4799
Function4ab8:
ld hl, $000b
add hl, bc
ld [hl], $00
ld hl, $001e
add hl, bc
ld [hl], $04
ld hl, $001f
add hl, bc
ld [hl], $00
ld hl, $0009
add hl, bc
ld [hl], $10
call Function4799
ret
Function4ad4:
ld hl, $000a
add hl, bc
ld [hl], $03
ld hl, $001f
add hl, bc
inc [hl]
ld a, [hl]
ld d, $60
call Function17cd
ld a, h
sub $60
ld hl, $001b
add hl, bc
ld [hl], a
ld hl, $0009
add hl, bc
dec [hl]
ret nz
call Function4799
Function4af6:
ld hl, $0009
add hl, bc
ld [hl], $10
call Function4799
ret
Function4b00:
ld hl, $000a
add hl, bc
ld [hl], $03
ld hl, $0009
add hl, bc
dec [hl]
ret nz
Function4b0c:
ld hl, $0008
add hl, bc
ld [hl], $01
ld hl, $000b
add hl, bc
ld [hl], $00
ld hl, $001b
add hl, bc
ld [hl], $00
call Function4792
ret
Function4b22:
call Function4792
Function4b25:
ret
Function4b26:
ld a, $01
ld [wcb70], a
push bc
ld de, Unknown4b42
call PushToCmdQueue
ld d, b
ld e, c
pop bc
ld hl, $0009
add hl, bc
ld a, [hl]
add a
dec a
ld hl, $000e
add hl, de
ld [hl], a
ret
Unknown4b42:
db $01, $01, $FC, $02, $00, $08
Function4b48:
ld e, a
add a
add e
ld e, a
ld d, $00
ld hl, Unknown4b5f
add hl, de
ld d, h
ld e, l
push bc
call PushToCmdQueue
pop bc
ld a, $06
ld [wcb70], a
ret
Unknown4b5f:
db $05, $04, $FC, $02, $02, $08
Function4b65:
ld hl, $000a
add hl, bc
ld [hl], $02
ld hl, $0009
add hl, bc
dec [hl]
ret nz
ld hl, $0008
add hl, bc
ld [hl], $01
ret
Function4b78:
call Function4979
ld hl, $000a
add hl, bc
ld [hl], $02
ld hl, $0006
add hl, bc
ld [hl], $ff
ret
Function4b88:
call Function4979
ld hl, $000a
add hl, bc
ld [hl], $01
call Function46d3
ld hl, $0009
add hl, bc
dec [hl]
ret nz
call Function45d4
ld hl, $0008
add hl, bc
ld [hl], $01
ld hl, $0006
add hl, bc
ld [hl], $ff
ret
Function4baa:
ld hl, $000a
add hl, bc
ld [hl], $01
call Function46d3
ld hl, $0009
add hl, bc
dec [hl]
ret nz
call Function45d4
ld hl, $0006
add hl, bc
ld [hl], $ff
ld hl, $0008
add hl, bc
ld [hl], $01
ret
Function4bc9:
ld hl, $000a
add hl, bc
ld [hl], $01
call Function4750
ld hl, $0009
add hl, bc
dec [hl]
ret nz
ld hl, wcb6e
set 6, [hl]
call Function45d4
ld hl, $0008
add hl, bc
ld [hl], $01
ld hl, $0006
add hl, bc
ld [hl], $ff
ret
Function4bed:
ld a, [wPlayerMovement]
jp Function4c37
Function4bf3:
ld a, [wMovementObject]
jp Function4c37
Function4bf9:
ld hl, $001c
add hl, bc
ld e, [hl]
inc [hl]
ld d, $00
ld hl, wMovementObject
ld a, [hli]
ld h, [hl]
ld l, a
add hl, de
ld a, [hl]
jp Function4c37
Function4c0c:
ld hl, $001c
add hl, bc
ld e, [hl]
inc [hl]
ld d, $00
ld hl, wcb7c
ld a, [hli]
ld h, [hl]
ld l, a
add hl, de
ld a, [hl]
jp Function4c37
Function4c1f:
ld hl, $001c
add hl, bc
ld e, [hl]
inc [hl]
ld d, $00
ld hl, wMovementDataAddr
ld a, [hli]
ld h, [hl]
ld l, a
add hl, de
ld a, [wMovementDataBank]
call GetFarByte
jp Function4c37
Function4c37:
push af
call Function4f86
pop af
ld l, a
ld h, $00
add hl, hl
ld de, Table4c48
add hl, de
ld a, [hli]
ld h, [hl]
ld l, a
jp hl
Table4c48:
dw Function4d94
dw Function4d98
dw Function4d9c
dw Function4da0
dw Function4db6
dw Function4dbb
dw Function4dc0
dw Function4dc5
dw Function4dca
dw Function4dcf
dw Function4dd4
dw Function4dd9
dw Function4dde
dw Function4de3
dw Function4de8
dw Function4ded
dw Function4df2
dw Function4df7
dw Function4dfc
dw Function4e01
dw Function4e06
dw Function4e0b
dw Function4e10
dw Function4e15
dw Function4e1a
dw Function4e1f
dw Function4e24
dw Function4e29
dw Function4e2e
dw Function4e33
dw Function4e38
dw Function4e3d
dw Function4e42
dw Function4e47
dw Function4e4c
dw Function4e51
dw Function4d5e
dw Function4d67
dw Function4d70
dw Function4d79
dw Function4d82
dw Function4d8b
dw Function4d2c
dw Function4d30
dw Function4d34
dw Function4d38
dw Function4d3c
dw Function4d40
dw Function4d44
dw Function4d48
dw Function4cc1
dw Function4cef
dw Function4cb8
dw Function4d1a
dw Function49fc
dw Function4a82
Function4cb8:
ld hl, $001c
add hl, bc
ld [hl], $00
jp Function47b8
Function4cc1:
ld hl, $0001
add hl, bc
ld a, [hl]
cp $ff
jr nz, .sub_4cce
ld a, $05
jr .sub_4cd8
.sub_4cce
push bc
call GetMapObject
ld hl, $0004
add hl, bc
ld a, [hl]
pop bc
.sub_4cd8
ld hl, $0003
add hl, bc
ld [hl], a
ld hl, $0008
add hl, bc
ld [hl], $01
ld hl, $001c
add hl, bc
ld [hl], $00
ld hl, wVramState
res 7, [hl]
ret
Function4cef:
push bc
ld hl, $0001
add hl, bc
ld a, [hl]
push af
ld h, b
ld l, c
ld bc, $0028
xor a
call ByteFill
pop af
call GetMapObject
ld hl, $0000
add hl, bc
ld [hl], $ff
pop bc
ld hl, wObjectFollow_Leader
ldh a, [hConnectionStripLength]
cp [hl]
jr nz, .sub_4d14
ld [hl], $ff
.sub_4d14
ld hl, wVramState
res 7, [hl]
ret
Function4d1a:
ld hl, $000a
add hl, bc
ld [hl], $02
ld hl, $0008
add hl, bc
ld [hl], $04
ld hl, wVramState
res 7, [hl]
ret
Function4d2c:
ld a, $01
jr Function4d4a
Function4d30:
ld a, $02
jr Function4d4a
Function4d34:
ld a, $03
jr Function4d4a
Function4d38:
ld a, $04
jr Function4d4a
Function4d3c:
ld a, $05
jr Function4d4a
Function4d40:
ld a, $06
jr Function4d4a
Function4d44:
ld a, $07
jr Function4d4a
Function4d48:
ld a, $08
Function4d4a:
ld hl, $0009
add hl, bc
ld [hl], a
ld hl, $0008
add hl, bc
ld [hl], $03
ld hl, $0006
add hl, bc
ld [hl], $ff
jp Function4b65
Function4d5e:
ld hl, $0004
add hl, bc
res 3, [hl]
jp Function47b8
Function4d67:
ld hl, $0004
add hl, bc
set 3, [hl]
jp Function47b8
Function4d70:
ld hl, $0004
add hl, bc
res 2, [hl]
jp Function47b8
Function4d79:
ld hl, $0004
add hl, bc
set 2, [hl]
jp Function47b8
Function4d82:
ld hl, $0005
add hl, bc
res 0, [hl]
jp Function47b8
Function4d8b:
ld hl, $0005
add hl, bc
set 0, [hl]
jp Function47b8
Function4d94:
ld a, $00
jr Function4da4
Function4d98:
ld a, $04
jr Function4da4
Function4d9c:
ld a, $08
jr Function4da4
Function4da0:
ld a, $0c
jr Function4da4
Function4da4:
ld hl, $0007
add hl, bc
ld [hl], a
ld hl, $000a
add hl, bc
ld [hl], $02
ld hl, $0006
add hl, bc
ld [hl], $ff
ret
Function4db6:
ld a, $00
jp Function4e56
Function4dbb:
ld a, $01
jp Function4e56
Function4dc0:
ld a, $02
jp Function4e56
Function4dc5:
ld a, $03
jp Function4e56
Function4dca:
ld a, $04
jp Function4e56
Function4dcf:
ld a, $05
jp Function4e56
Function4dd4:
ld a, $06
jp Function4e56
Function4dd9:
ld a, $07
jp Function4e56
Function4dde:
ld a, $08
jp Function4e56
Function4de3:
ld a, $09
jp Function4e56
Function4de8:
ld a, $0a
jp Function4e56
Function4ded:
ld a, $0b
jp Function4e56
Function4df2:
ld a, $0c
jp Function4e56
Function4df7:
ld a, $0d
jp Function4e56
Function4dfc:
ld a, $0e
jp Function4e56
Function4e01:
ld a, $0f
jp Function4e56
Function4e06:
ld a, $00
jp Function4e7c
Function4e0b:
ld a, $01
jp Function4e7c
Function4e10:
ld a, $02
jp Function4e7c
Function4e15:
ld a, $03
jp Function4e7c
Function4e1a:
ld a, $04
jp Function4e7c
Function4e1f:
ld a, $05
jp Function4e7c
Function4e24:
ld a, $06
jp Function4e7c
Function4e29:
ld a, $07
jp Function4e7c
Function4e2e:
ld a, $08
jp Function4e7c
Function4e33:
ld a, $09
jp Function4e7c
Function4e38:
ld a, $0a
jp Function4e7c
Function4e3d:
ld a, $0b
jp Function4e7c
Function4e42:
ld a, $0c
jp Function4e7c
Function4e47:
ld a, $0d
jp Function4e7c
Function4e4c:
ld a, $0e
jp Function4e7c
Function4e51:
ld a, $0f
jp Function4e7c
Function4e56:
call Function468a
call Function4613
ld a, [wCenteredObject]
ld d, a
ldh a, [hConnectionStripLength]
cp d
jr z, .sub_4e6e
ld hl, $0008
add hl, bc
ld [hl], $02
jp Function4b88
.sub_4e6e
ld hl, wcb6e
set 7, [hl]
ld hl, $0008
add hl, bc
ld [hl], $05
jp Function4bc9
Function4e7c:
call Function468a
ld hl, $001f
add hl, bc
ld [hl], $00
ld hl, $0005
add hl, bc
res 3, [hl]
call Function4792
ld hl, $000a
add hl, bc
ld [hl], $02
call Function4b26
ld a, [wCenteredObject]
ld d, a
ldh a, [hConnectionStripLength]
cp d
jr z, .sub_4ea9
ld hl, $0008
add hl, bc
ld [hl], $0f
jp Function4ed5
.sub_4ea9
ld hl, wcb6e
set 7, [hl]
ld hl, $0008
add hl, bc
ld [hl], $10
jp Function4f14
Function4eb7:
call Function468a
ld hl, $0008
add hl, bc
ld [hl], $0f
ld hl, $000a
add hl, bc
ld [hl], $02
ld hl, $0005
add hl, bc
res 3, [hl]
ld hl, $001f
add hl, bc
ld [hl], $00
call Function4792
Function4ed5:
ld de, Table4edb
jp Function47ab
Table4edb:
dw Function4edf
dw Function4efb
Function4edf:
call Function46d3
call Function499c
ld hl, $0009
add hl, bc
dec [hl]
ret nz
call Function4799
call Function45d4
call Function46a2
ld hl, $0005
add hl, bc
res 3, [hl]
ret
Function4efb:
call Function46d3
call Function499c
ld hl, $0009
add hl, bc
dec [hl]
ret nz
ld hl, $0008
add hl, bc
ld [hl], $01
call Function45d4
call Function4792
ret
Function4f14:
ld de, Table4f1a
jp Function47ab
Table4f1a:
dw Function4f20
dw Function4f40
dw Function4f4b
Function4f20:
call Function499c
call Function4750
ld hl, $0009
add hl, bc
dec [hl]
ret nz
call Function45d4
ld hl, $0005
add hl, bc
res 3, [hl]
ld hl, wcb6e
set 6, [hl]
set 4, [hl]
call Function4799
ret
Function4f40:
call Function46a2
ld hl, wcb6e
set 7, [hl]
call Function4799
Function4f4b:
call Function499c
call Function4750
ld hl, $0009
add hl, bc
dec [hl]
ret nz
ld hl, $0008
add hl, bc
ld [hl], $01
call Function45d4
ld hl, wcb6e
set 6, [hl]
call Function4792
ldh a, [hConnectionStripLength]
cp $01
jp z, .sub_4f70
ret
.sub_4f70
ld hl, $0007
add hl, bc
ld a, [hl]
rra
rra
and $03
ld d, a
ld hl, $0006
add hl, bc
ld a, [hl]
and $03
cp d
ret z
jp Function4b25
Function4f86:
ld e, a
ld a, [wObjectFollow_Follower]
and a
ret z
cp $ff
ret z
ld a, [wObjectFollow_Leader]
ld d, a
ldh a, [hConnectionStripLength]
cp d
ret nz
ld a, e
cp $2a
ret z
cp $00
ret z
cp $01
ret z
cp $02
ret z
cp $03
ret z
cp $32
ret z
cp $35
ret z
push af
ld hl, wFollowerMovementQueueLength
inc [hl]
ld e, [hl]
ld d, $00
ld hl, wFollowMovementQueue
add hl, de
pop af
ld [hl], a
ret
Function4fbc:
call .sub_4fc5
ld hl, Table4c48
jp CallJumptable
.sub_4fc5
ld hl, wFollowerMovementQueueLength
ld a, [hl]
and a
jr z, .sub_4fe2
cp $ff
jr z, .sub_4fe2
ld e, a
dec [hl]
ld d, $00
ld hl, wFollowMovementQueue
add hl, de
inc e
ld a, $ff
.sub_4fdb
ld d, [hl]
ld [hld], a
ld a, d
dec e
jr nz, .sub_4fdb
ret
.sub_4fe2
call .sub_4fe9
ret c
ld a, $2a
ret
.sub_4fe9
ld a, [wObjectFollow_Leader]
cp $ff
jr z, .sub_4fff
push bc
call GetObjectStruct
ld hl, $0000
add hl, bc
ld a, [hl]
pop bc
and a
jr z, .sub_4fff
and a
ret
.sub_4fff
xor a
ld [wObjectFollow_Follower], a
ld a, $32
scf
ret
Function5007:
ld bc, wObjectStructs
xor a
.sub_500b
ldh [hConnectionStripLength], a
ld hl, $0000
add hl, bc
ld a, [hl]
and a
jr z, .sub_5034
ld hl, $000a
add hl, bc
ld a, [hl]
and a
ld a, $ff
jr z, .sub_502f
push bc
call .sub_5042
pop bc
ld a, $ff
jr c, .sub_502f
ld hl, $0007
add hl, bc
ld a, [hl]
and $0c
.sub_502f
ld hl, $000d
add hl, bc
ld [hl], a
.sub_5034
ld hl, $0028
add hl, bc
ld b, h
ld c, l
ldh a, [hConnectionStripLength]
inc a
cp $0a
jr nz, .sub_500b
ret
.sub_5042
ld hl, $0010
add hl, bc
ld d, [hl]
ld hl, $0011
add hl, bc
ld e, [hl]
ld a, [wXCoord]
cp d
jr z, .sub_5059
jr nc, .sub_50b7
add $09
cp d
jr c, .sub_50b7
.sub_5059
ld a, [wYCoord]
cp e
jr z, .sub_5066
jr nc, .sub_50b7
add $08
cp e
jr c, .sub_50b7
.sub_5066
ld hl, $0018
add hl, bc
ld a, [hl]
and $07
ld d, $02
jr z, .sub_5073
ld d, $03
.sub_5073
ld a, d
ldh [hFFC9], a
ld a, [hl]
srl a
srl a
srl a
ldh [hFFC7], a
ld hl, $0019
add hl, bc
ld a, [hl]
and $07
ld e, $02
jr z, .sub_508c
ld e, $03
.sub_508c
ld a, [hl]
srl a
srl a
srl a
ldh [hFFC8], a
ldh a, [hFFC7]
ld c, a
ldh a, [hFFC8]
ld b, a
call Coord2Tile
ld bc, $0014
.sub_50a1
push hl
ldh a, [hFFC9]
ld d, a
.sub_50a5
ld a, [hli]
cp $60
jr nc, .sub_50b4
dec d
jr nz, .sub_50a5
pop hl
add hl, bc
dec e
jr nz, .sub_50a1
and a
ret
.sub_50b4
pop hl
jr .sub_50b7
.sub_50b7
scf
ret
Function50b9:
call .sub_50c3
call .sub_50d3
call Function42db
ret
.sub_50c3
xor a
ld [wcb6c], a
ld [wcb6d], a
ld [wcb6e], a
ld a, $ff
ld [wPlayerStepDirection], a
ret
.sub_50d3
ld bc, wObjectStructs
xor a
.sub_50d7
ldh [hConnectionStripLength], a
ld hl, $0000
add hl, bc
ld a, [hl]
and a
jr z, .sub_50e9
call .sub_50f7
jr c, .sub_50e9
call Function44f2
.sub_50e9
ld hl, $0028
add hl, bc
ld b, h
ld c, l
ldh a, [hConnectionStripLength]
inc a
cp $0a
jr nz, .sub_50d7
ret
.sub_50f7
ld hl, $0005
add hl, bc
res 6, [hl]
ld a, [wXCoord]
ld e, a
ld hl, $0010
add hl, bc
ld a, [hl]
add $01
sub e
jr c, .sub_5123
cp $0c
jr nc, .sub_5123
ld a, [wYCoord]
ld e, a
ld hl, $0011
add hl, bc
ld a, [hl]
add $01
sub e
jr c, .sub_5123
cp $0b
jr nc, .sub_5123
jr .sub_514d
.sub_5123
ld hl, $0005
add hl, bc
set 6, [hl]
ld a, [wXCoord]
ld e, a
ld hl, $0014
add hl, bc
ld a, [hl]
add $01
sub e
jr c, .sub_514f
cp $0c
jr nc, .sub_514f
ld a, [wYCoord]
ld e, a
ld hl, $0015
add hl, bc
ld a, [hl]
add $01
sub e
jr c, .sub_514f
cp $0b
jr nc, .sub_514f
.sub_514d
and a
ret
.sub_514f
ldh a, [hConnectionStripLength]
cp $01
jr z, .sub_5162
ld hl, $0004
add hl, bc
bit 1, [hl]
jr nz, .sub_5162
call .sub_516a
scf
ret
.sub_5162
ld hl, $0005
add hl, bc
set 6, [hl]
and a
ret
.sub_516a
push bc
ld hl, $0001
add hl, bc
ld a, [hl]
push af
ld h, b
ld l, c
ld bc, $0028
xor a
call ByteFill
pop af
cp $ff
jr z, .sub_518e
ld hl, wMapObjects
ld bc, $0010
call AddNTimes
ld bc, $0000
add hl, bc
ld [hl], $ff
.sub_518e
pop bc
ret
_UpdateSprites:
ld a, [wVramState]
bit 0, a
ret z
xor a
ldh [hFFC7], a
call .sub_51a3
call .sub_5258
call .sub_5243
ret
.sub_51a3
xor a
ld bc, wObjectStructs
.sub_51a7
push af
push bc
ld hl, $0000
add hl, bc
ld a, [hl]
and a
jp z, .sub_5234
ld hl, $0005
add hl, bc
bit 0, [hl]
jp nz, .sub_5234
xor a
bit 7, [hl]
jr z, .sub_51c2
add $80
.sub_51c2
bit 4, [hl]
jr z, .sub_51c8
add $10
.sub_51c8
ld d, a
xor a
bit 3, [hl]
jr z, .sub_51d0
or $80
.sub_51d0
ldh [hFFCC], a
ld hl, $0002
add hl, bc
ld a, [hl]
ldh [hFFCB], a
ld hl, $0018
add hl, bc
ld a, [hl]
ld hl, $001a
add hl, bc
add [hl]
add $08
ldh [hFFC9], a
ld hl, $0019
add hl, bc
ld a, [hl]
ld hl, $001b
add hl, bc
add [hl]
add $10
ldh [hFFCA], a
ld hl, $000d
add hl, bc
ld a, [hl]
cp $ff
jp z, .sub_5234
ld l, a
ld h, $00
add hl, hl
ld bc, Table421b
add hl, bc
ld a, [hli]
ld h, [hl]
ld l, a
ldh a, [hFFC7]
ld c, a
ld b, $c2
.sub_520f
ldh a, [hFFCA]
add [hl]
inc hl
ld [bc], a
inc c
ldh a, [hFFC9]
add [hl]
inc hl
ld [bc], a
inc c
ldh a, [hFFCB]
add [hl]
inc hl
ld [bc], a
inc c
ld a, [hl]
bit 1, a
jr z, .sub_5229
ldh a, [hFFCC]
or [hl]
.sub_5229
inc hl
or d
ld [bc], a
inc c
bit 0, a
jr z, .sub_520f
ld a, c
ldh [hFFC7], a
.sub_5234
pop bc
ld hl, $0028
add hl, bc
ld b, h
ld c, l
pop af
inc a
cp $0a
jp nz, .sub_51a7
ret
.sub_5243
ld b, $a0
ldh a, [hFFC7]
cp b
ret nc
ld l, a
ld h, $c2
ld de, $0004
ld a, b
ld c, $a0
.sub_5252
ld [hl], c
add hl, de
cp l
jr nz, .sub_5252
ret
.sub_5258
ld bc, wCmdQueue
ld a, $04
.sub_525d
push af
ld hl, $0000
add hl, bc
ld a, [hl]
and a
jr z, .sub_52cf
ld hl, $0004
add hl, bc
ld a, [hl]
ld hl, $0006
add hl, bc
add [hl]
add $08
ldh [hFFC9], a
ld hl, $0005
add hl, bc
ld a, [hl]
ld hl, $0007
add hl, bc
add [hl]
add $10
ldh [hFFCA], a
ld hl, $0003
add hl, bc
ld a, [hl]
ldh [hFFCB], a
ld hl, $000c
add hl, bc
ld a, [hl]
and a
jr z, .sub_52cf
ld e, a
ld d, $00
ld hl, Table44ab
add hl, de
add hl, de
ld a, [hli]
ld h, [hl]
ld l, a
ldh a, [hFFC7]
ld d, a
ld a, [hl]
and a
jr z, .sub_52cf
add a
add a
add d
cp $a0
jr nc, .sub_52da
ldh a, [hFFC7]
ld e, a
ld d, $c2
ld a, [hli]
.sub_52b0
ldh [hFFC8], a
ldh a, [hFFCA]
add [hl]
ld [de], a
inc hl
inc de
ldh a, [hFFC9]
add [hl]
ld [de], a
inc hl
inc de
ldh a, [hFFCB]
add [hl]
ld [de], a
inc hl
inc de
ld a, [hli]
ld [de], a
inc de
ldh a, [hFFC8]
dec a
jr nz, .sub_52b0
ld a, e
ldh [hFFC7], a
.sub_52cf
ld hl, $0010
add hl, bc
ld b, h
ld c, l
pop af
dec a
jr nz, .sub_525d
ret
.sub_52da
pop af
ret
Function52dc:
call MenuBoxCoord2Tile
push hl
ld de, $005a
add hl, de
call PrintNumBadges
pop hl
push hl
ld de, $0081
add hl, de
call PrintNumOwnedMons
pop hl
ld de, $00a8
add hl, de
call PrintPlayTime
ret
SECTION "engine/dumps/bank01.asm@Function5388", ROMX
Function5388:
ld a, $00
call OpenSRAM
ld a, [s0_a600]
ld [wce60], a
call CloseSRAM
ret
Function5397:
ld a, $00
call OpenSRAM
ld hl, s0_a600
ld a, [hli]
ld [wce5f], a
inc hl
ld a, [hli]
ld [wActiveFrame], a
ld a, [hl]
ld [wTextBoxFlags], a
call CloseSRAM
ret
Function53b0:
ld a, $00
call OpenSRAM
ld hl, wDebugFlags
ld a, [hli]
ld [wDebugFlags], a
ld a, [hli]
ld [wce64], a
ld a, [hli]
ld [wce65], a
ld a, [hl]
ld [wce66], a
call CloseSRAM
ret
SECTION "engine/dumps/bank01.asm@ReanchorBGMap_NoOAMUpdate", ROMX
ReanchorBGMap_NoOAMUpdate:
xor a
ldh [hLCDCPointer], a
ld hl, wMapObjectsEnd
set 7, [hl]
res 2, [hl]
ld a, $90
ldh [hWY], a
xor a
ldh [hBGMapMode], a
xor a
ldh [hBGMapAddress], a
ld a, $9c
ldh [hBGMapAddress+1], a
call LoadMapPart
call WaitBGMap
xor a
ldh [hBGMapMode], a
ldh [hWY], a
call .sub_6412
xor a
ld [wBGMapAnchor], a
ld a, $98
ldh [hBGMapAddress+1], a
ld [wBGMapAnchor+1], a
xor a
ldh [hSCX], a
ldh [hSCY], a
call WaitBGMap
ret
.sub_6412
ld a, $60
ld hl, wTileMapBackup
ld bc, $0080
call ByteFill
ld hl, vBGMap0
ld c, $08
.sub_6422
push bc
push hl
ld de, wTileMapBackup
ld bc, $0008
call Request2bpp
pop hl
ld bc, $0080
add hl, bc
pop bc
dec c
jr nz, .sub_6422
ret
LoadFonts_NoOAMUpdate:
call UpdateSprites
call LoadFont
call LoadFontExtra
ld a, $90
ldh [hWY], a
ret
Function6445:
call BackUpTilesToBuffer
ld a, [wWhichPokemon]
ld hl, wPartyMonNicknames
call GetNick
ld hl, wStringBuffer1
ld de, wcd11
ld bc, $0006
call CopyBytes
.sub_645d
ld hl, wPartyMon1Moves
ld bc, $0030
ld a, [wWhichPokemon]
call AddNTimes
ld d, h
ld e, l
ld b, $04
.sub_646d
ld a, [hl]
and a
jr z, .sub_648d
inc hl
dec b
jr nz, .sub_646d
push de
call .sub_64f4
pop de
jp c, .sub_64d6
push hl
push de
ld [wce37], a
call Unreferenced_GetMoveName
ld hl, Text664b
call PrintText
pop de
pop hl
.sub_648d
ld a, [wce32]
ld [hl], a
ld bc, $0015
add hl, bc
push hl
push de
dec a
ld hl, Moves + MOVE_PP
ld bc, MOVE_LENGTH
call AddNTimes
ld a, BANK(Moves)
call GetFarByte
pop de
pop hl
ld [hl], a
ld a, [wBattleMode]
and a
jp z, .sub_64eb
ld a, [wWhichPokemon]
ld b, a
ld a, [wcd41]
cp b
jp nz, .sub_64eb
ld h, d
ld l, e
ld de, wca04
ld bc, $0004
call CopyBytes
ld bc, $0011
add hl, bc
ld de, wca0a
ld bc, $0004
call CopyBytes
jp .sub_64eb
.sub_64d6
ld hl, Text65b9
call PrintText
call YesNoBox
jp c, .sub_645d
ld hl, Text65d7
call PrintText
ld b, $00
ret
.sub_64eb
ld hl, Text658c
call PrintText
ld b, $01
ret
.sub_64f4
push hl
ld hl, Text65f0
call PrintText
call YesNoBox
pop hl
ret c
ld bc, $fffc
add hl, bc
push hl
ld de, wce2e
ld bc, $0004
call CopyBytes
pop hl
.sub_650f
push hl
ld hl, Text65a8
call PrintText
coord hl, 10, 8
ld b, $08
ld c, $08
call DrawTextBox
coord hl, 12, 10
ld a, $28
ld [wFieldMoveScriptID], a
ld a, $32
call Predef
ld a, $0a
ld [w2DMenuCursorInitY], a
ld a, $0b
ld [w2DMenuCursorInitX], a
ld a, [wcd57]
inc a
ld [w2DMenuNumRows], a
ld a, $01
ld [w2DMenuNumCols], a
ld [w2DMenuDataEnd], a
ld [wMenuCursorX], a
ld a, $03
ld [wMenuJoypadFilter], a
ld a, $20
ld [w2DMenuFlags], a
xor a
ld [w2DMenuFlags+1], a
ld a, $20
ld [w2DMenuCursorOffsets], a
call Get2DMenuJoypad
push af
call ReloadTilesFromBuffer
pop af
pop hl
bit 1, a
jr nz, .sub_658a
push hl
ld a, [w2DMenuDataEnd]
dec a
ld c, a
ld b, $00
add hl, bc
ld a, [hl]
push af
push bc
call IsHMMove
pop bc
pop de
ld a, d
jr c, .sub_6581
pop hl
add hl, bc
and a
ret
.sub_6581
ld hl, Text6691
call PrintText
pop hl
jr .sub_650f
.sub_658a
scf
ret
Text658c:
text_from_ram wcd11
text "は あたらしく"
line ""
text_end
Text6599:
text_from_ram wStringBuffer2
text "を おぼえた!"
text_end
Text65a5:
sound_dex_fanfare_50_79
text_waitbutton
text_end
Text65a8:
text "どの わざを"
next "わすれさせたい?"
done
Text65b9:
text "それでは<⋯⋯> "
text_end
Text65c1:
text_from_ram wStringBuffer2
text "を"
line "おぼえるのを あきらめますか?"
done
Text65d7:
text_from_ram wcd11
text "は "
text_end
Text65de:
text_from_ram wStringBuffer2
text "を"
line "おぼえずに おわった!"
prompt
Text65f0:
text_from_ram wcd11
text "は あたらしく"
line ""
text_end
Text65fd:
text_from_ram wStringBuffer2
text "を おぼえたい<⋯⋯>"
para "しかし "
text_end
Text6610:
text_from_ram wcd11
text "は わざを 4つ"
line "おぼえるので せいいっぱいだ!"
para ""
text_end
Text662e:
text_from_ram wStringBuffer2
text "の かわりに"
line "ほかの わざを わすれさせますか?"
done
Text664b:
text "1 2の <⋯⋯>"
text_end
Text6653:
text_exit
start_asm
push de
ld de, $001b
call PlaySFX
pop de
ld hl, Text6661
ret
Text6661:
text " ポカン!"
text_end
Text6668:
text_exit
text ""
para ""
text_end
Text666c:
text_from_ram wcd11
text "は "
text_end
Text6673:
text_from_ram wStringBuffer1
text "の"
line "つかいかたを きれいに わすれた!"
para "そして<⋯⋯>"
prompt
Text6691:
text "それは たいせつなわざです"
line "わすれさせることは できません!"
prompt
Function66b1:
ld hl, wcd74
ld a, [hli]
ld h, [hl]
ld l, a
ld a, [wCurItem]
cp $c4
jr nc, .sub_66d2
dec a
ld c, a
ld b, $00
add hl, bc
add hl, bc
add hl, bc
add hl, bc
inc hl
ld a, [hld]
ldh [hSpriteOffset], a
ld a, [hld]
ldh [hConnectedMapWidth], a
ld a, [hl]
ldh [hConnectionStripLength], a
jr .sub_66d5
.sub_66d2
call .sub_66d9
.sub_66d5
ld de, hConnectionStripLength
ret
.sub_66d9
ld a, [wCurItem]
sub $c9
ret c
ld d, a
ld hl, Table66fa
srl a
ld c, a
ld b, $00
add hl, bc
ld a, [hl]
srl d
jr nc, .sub_66f0
swap a
.sub_66f0
and $f0
ldh [hConnectedMapWidth], a
xor a
ldh [hConnectionStripLength], a
ldh [hSpriteOffset], a
ret
Table66fa:
db $32, $21, $34, $24
db $34, $21, $45, $55
db $32, $32, $55, $52
db $54, $52, $41, $21
db $12, $42, $25, $24
db $22, $52, $24, $34
db $42
Function6713:
push hl
call LoadStandardMenuHeader
ld a, [wBattleMode]
dec a
coord hl, 1, 0
ld b, $04
ld c, $0a
call z, ClearBox
ld a, [wMonDexIndex]
ld [wce37], a
call GetPokemonName
ld a, [wDebugFlags]
bit 1, a
pop hl
push hl
ld hl, Text6788
call PrintText
call YesNoBox
pop hl
jr c, .sub_6779
push hl
ld e, l
ld d, h
ld a, BANK(NamingScreen)
ld b, $00
ld hl, NamingScreen
call FarCall_hl
call ClearBGPalettes
call ClearTileMap
call ClearSprites
call GetMemSGBLayout
call SetPalettes
ld a, [wBattleMode]
and a
jr nz, .sub_676b
call LoadFontExtra
call Function3657
jr .sub_6773
.sub_676b
ld hl, Function3e3a7
ld a, BANK(Function3e3a7)
call FarCall_hl
.sub_6773
pop hl
ld a, [hl]
cp $50
jr nz, .sub_6784
.sub_6779
ld d, h
ld e, l
ld hl, wStringBuffer1
ld bc, $0006
call CopyBytes
.sub_6784
call CloseWindow
ret
Text6788:
text_from_ram wStringBuffer1
text "に"
line "ニックネームを つけますか?"
done
Function679d:
ld de, wFieldMoveScriptID
push de
ld hl, NamingScreen
ld b, $00
ld a, BANK(NamingScreen)
call FarCall_hl
call ClearBGPalettes
call Function360b
call UpdateTimePals
pop de
ld a, [de]
cp $50
jr z, .sub_67d3
ld hl, wPartyMonNicknames
ld bc, $0006
ld a, [wWhichPokemon]
call AddNTimes
ld e, l
ld d, h
ld hl, wFieldMoveScriptID
ld bc, $0006
call CopyBytes
and a
ret
.sub_67d3
scf
ret
CorrectNickErrors:
push bc
push de
ld b, $06
.sub_67d9
ld a, [de]
cp $50
jr z, .sub_6802
ld hl, Table6805
dec hl
.sub_67e2
inc hl
ld a, [hl]
cp $ff
jr z, .sub_67f5
ld a, [de]
cp [hl]
inc hl
jr c, .sub_67e2
cp [hl]
jr nc, .sub_67e2
ld a, $e6
ld [de], a
jr .sub_67e2
.sub_67f5
inc de
dec b
jr nz, .sub_67d9
pop de
push de
ld a, $e6
ld [de], a
inc de
ld a, $50
ld [de], a
.sub_6802
pop de
pop bc
ret
Table6805::
db $00, $05, $14, $19, $1d
db $26, $35, $3a, $49, $7f
db $ff
SECTION "engine/dumps/bank01.asm@Function771e", ROMX
Function771e:
ld hl, $0004
add hl, bc
bit 4, [hl]
jr z, .sub_772c
push hl
call _IsObjectCollisionTileSolid
pop hl
ret c
.sub_772c
bit 6, [hl]
jr z, .sub_7738
push hl
push bc
call Function77a1
pop bc
pop hl
ret c
.sub_7738
bit 5, [hl]
jr z, .sub_7748
push hl
call Function782c
pop hl
ret c
push hl
call Function786e
pop hl
ret c
.sub_7748
and a
ret
SECTION "engine/dumps/bank01.asm@Function776e", ROMX
Function776e:
call GetFacingTileCoord
cp $90
jr z, .sub_7779
cp $98
jr nz, .sub_7789
.sub_7779
ld a, [wPlayerNextMapX]
sub d
cpl
inc a
add d
ld d, a
ld a, [wPlayerNextMapY]
sub e
cpl
inc a
add e
ld e, a
.sub_7789
ld bc, wPlayerSprite
ld a, $01
ldh [hConnectionStripLength], a
call _CheckObjectCollision
ret nc
ld hl, $0006
add hl, bc
ld a, [hl]
cp $ff
jr z, .sub_779f
xor a
ret
.sub_779f
scf
ret
Function77a1:
ld hl, $0010
add hl, bc
ld d, [hl]
ld hl, $0011
add hl, bc
ld e, [hl]
jr _CheckObjectCollision
Function77ad:
ldh a, [hConnectionStripLength]
call GetObjectStruct
call .sub_77b9
call _CheckObjectCollision
ret
.sub_77b9
ld hl, $0010
add hl, bc
ld d, [hl]
ld hl, $0011
add hl, bc
ld e, [hl]
ld hl, $0007
add hl, bc
ld a, [hl]
and $0c
and a
jr z, .sub_77d7
cp $04
jr z, .sub_77d9
cp $08
jr z, .sub_77db
inc d
ret
.sub_77d7
inc e
ret
.sub_77d9
dec e
ret
.sub_77db
dec d
ret
SECTION "engine/dumps/bank01.asm@Function782c", ROMX
Function782c:
ld hl, $0016
add hl, bc
ld a, [hl]
and a
jr z, .sub_784b
ld e, a
ld d, a
ld hl, $0014
add hl, bc
ld a, [hl]
sub d
ld d, a
ld a, [hl]
add e
ld e, a
ld hl, $0010
add hl, bc
ld a, [hl]
cp d
jr z, .sub_786c
cp e
jr z, .sub_786c
.sub_784b
ld hl, $0017
add hl, bc
ld a, [hl]
and a
jr z, .sub_786a
ld e, a
ld d, a
ld hl, $0015
add hl, bc
ld a, [hl]
sub d
ld d, a
ld a, [hl]
add e
ld e, a
ld hl, $0011
add hl, bc
ld a, [hl]
cp d
jr z, .sub_786c
cp e
jr z, .sub_786c
.sub_786a
and a
ret
.sub_786c
scf
ret
Function786e:
ld hl, $0010
add hl, bc
ld a, [wXCoord]
cp [hl]
jr z, .sub_787f
jr nc, .sub_7892
add $09
cp [hl]
jr c, .sub_7892
.sub_787f
ld hl, $0011
add hl, bc
ld a, [wYCoord]
cp [hl]
jr z, .sub_7890
jr nc, .sub_7892
add $08
cp [hl]
jr c, .sub_7892
.sub_7890
and a
ret
.sub_7892
scf
ret
SECTION "engine/dumps/bank01.asm@SettingsScreen", ROMX
SettingsScreen:
ld a, [wVramState]
push af
xor a
ld [wVramState], a
Function78ed:
call Function7a93
Function78f0:
call Function7a41
ld [hl], $ed
call Function7a55
call WaitBGMap
.sub_78fb
call DelayFrame
call GetJoypadDebounced
ldh a, [hJoySum]
ld b, a
and a
jr z, .sub_78fb
ld a, b
and $0a
jr nz, .sub_7924
ld a, b
and $04
jr nz, .sub_7939
ld a, b
and $01
jr z, Function7977
ld a, [wc409]
cp $10
jr nz, Function78f0
ld a, [wTileMapBackup]
cp $07
jr z, .sub_7956
.sub_7924
push de
ld de, $0005
call PlaySFX
pop de
pop af
ld [wVramState], a
ld hl, wd4a9
bit 0, [hl]
jp z, TitleSequenceStart
ret
.sub_7939
ld hl, wce5f
ld a, [hl]
xor $08
ld [hl], a
ld hl, Function96eb
ld a, BANK(Function96eb)
call FarCall_hl
call LoadFont
call LoadFontExtra
ld c, $70
call DelayFrames
jp Function78ed
.sub_7956
ld a, [wActiveFrame]
inc a
and $07
ld [wActiveFrame], a
coord hl, 17, 16
add $f7
ld [hl], a
call LoadFontExtra
jr Function78f0
Function796a:
push af
call Function7a41
ld [hl], $7f
pop af
ld [wTileMapBackup], a
jp Function78f0
Function7977:
ld a, [wc409]
bit 7, b
jr nz, .sub_799e
bit 6, b
jr nz, .sub_79c1
cp $07
jp z, .sub_7a10
cp $0b
jp z, .sub_7a1b
cp $0d
jp z, .sub_7a26
cp $10
jp z, .sub_7a31
bit 5, b
jp nz, .sub_79f6
jp .sub_7a01
.sub_799e
cp $10
ld b, $f3
ld hl, wc40a
jr z, .sub_79e2
cp $03
ld b, $04
inc hl
jr z, .sub_79e2
cp $07
ld b, $04
inc hl
jr z, .sub_79e2
cp $0b
ld b, $02
inc hl
jr z, .sub_79e2
ld b, $03
inc hl
jr .sub_79e2
.sub_79c1
cp $07
ld b, $fc
ld hl, wc40a
jr z, .sub_79e2
cp $0b
ld b, $fc
inc hl
jr z, .sub_79e2
cp $0d
ld b, $fe
inc hl
jr z, .sub_79e2
cp $10
ld b, $fd
inc hl
jr z, .sub_79e2
ld b, $0d
inc hl
.sub_79e2
add b
push af
ld a, [hl]
push af
call Function7a41
ld [hl], $ec
pop af
ld [wTileMapBackup], a
pop af
ld [wc409], a
jp Function78f0
.sub_79f6
ld a, [wc40a]
cp $01
jr z, .sub_7a0a
sub $07
jr .sub_7a0a
.sub_7a01
ld a, [wc40a]
cp $0f
jr z, .sub_7a0a
add $07
.sub_7a0a
ld [wc40a], a
jp Function796a
.sub_7a10
ld a, [wWhichPicTest]
xor $0b
ld [wWhichPicTest], a
jp Function796a
.sub_7a1b
ld a, [wc40c]
xor $0b
ld [wc40c], a
jp Function796a
.sub_7a26
ld a, [wc40d]
xor $0b
ld [wc40d], a
jp Function796a
.sub_7a31
call Function7a41
ld [hl], $ec
ld a, [wTileMapBackup]
xor $06
ld [wTileMapBackup], a
jp Function78f0
Function7a41:
ld a, [wc409]
ld hl, wTileMap
ld bc, $0014
call AddNTimes
ld a, [wTileMapBackup]
ld b, $00
ld c, a
add hl, bc
ret
Function7a55:
ld hl, Table7c22
ld a, [wc40a]
ld c, a
.sub_7a5c
ld a, [hli]
cp c
jr z, .sub_7a63
inc hl
jr .sub_7a5c
.sub_7a63
ld a, [hl]
ld d, a
ld a, [wWhichPicTest]
dec a
jr z, .sub_7a6f
set 7, d
jr .sub_7a71
.sub_7a6f
res 7, d
.sub_7a71
ld a, [wc40c]
dec a
jr z, .sub_7a7b
set 6, d
jr .sub_7a7d
.sub_7a7b
res 6, d
.sub_7a7d
ld a, [wc40d]
dec a
jr z, .sub_7a87
set 5, d
jr .sub_7a89
.sub_7a87
res 5, d
.sub_7a89
ld a, [wce5f]
and $08
or d
ld [wce5f], a
ret
Function7a93:
call ClearBGPalettes
call DisableLCD
xor a
ldh [hBGMapMode], a
call .sub_7b26
xor a
ld hl, wc40a
ld [hli], a
ld [hli], a
ld [hli], a
ld [hli], a
ld [hl], a
inc a
ld [wTextBoxFlags], a
ld hl, Table7c23
ld a, [wce5f]
ld c, a
and $07
push bc
ld de, $0002
call FindItemInTable
pop bc
dec hl
ld a, [hl]
ld [wc40a], a
coord hl, 0, 3
call .sub_7b1f
sla c
ld a, $01
jr nc, .sub_7ad0
ld a, $0a
.sub_7ad0
ld [wWhichPicTest], a
coord hl, 0, 7
call .sub_7b1f
sla c
ld a, $01
jr nc, .sub_7ae1
ld a, $0a
.sub_7ae1
ld [wc40c], a
coord hl, 0, 11
call .sub_7b1f
sla c
ld a, $01
jr nc, .sub_7af2
ld a, $0a
.sub_7af2
ld [wc40d], a
coord hl, 0, 13
call .sub_7b1f
ld a, $01
ld [wc40e], a
coord hl, 1, 16
ld [hl], $ec
coord hl, 7, 16
ld [hl], $ec
ld a, [wc40a]
ld [wTileMapBackup], a
ld a, $03
ld [wc409], a
call EnableLCD
call WaitBGMap
call SetPalettes
ret
.sub_7b1f
ld e, a
ld d, $00
add hl, de
ld [hl], $ec
ret
.sub_7b26
ld de, vChars1 + $0700
ld hl, TrainerCardGFX
ld bc, $0010
ld a, BANK(TrainerCardGFX)
call FarCopyData
ld hl, wTileMap
ld bc, $0168
ld a, $f0
call ByteFill
coord hl, 1, 1
lb bc, 3, 18
call ClearBox
coord hl, 1, 5
lb bc, 3, 18
call ClearBox
coord hl, 1, 9
lb bc, 3, 18
call ClearBox
coord hl, 1, 13
lb bc, 1, 18
call ClearBox
coord hl, 1, 1
ld de, Text7bad
call PlaceString
coord hl, 1, 5
ld de, Text7bc9
call PlaceString
coord hl, 1, 9
ld de, Text7be8
call PlaceString
coord hl, 1, 13
ld de, Text7c03
call PlaceString
coord hl, 1, 16
ld de, Text7c12
call PlaceString
coord hl, 6, 15
ld b, $01
ld c, $0b
call DrawTextBox
coord hl, 7, 16
ld de, Text7c17
call PlaceString
ld a, [wActiveFrame]
coord hl, 17, 16
add $f7
ld [hl], a
ret
Text7bad:
db "はなしの はやさ"
next " はやい    ふつう    おそい"
text_end
Text7bc9:
db "せんとう アニメーション"
next " じっくり みる  とばして みる"
text_end
Text7be8:
db "しあいの ルール"
next " いれかえタイプ  かちぬきタイプ"
text_end
Text7c03:
db " モノラル     ステレオ"
text_end
Text7c12:
db " おわり"
text_end
Text7c17:
db " わく を かえる "
text_end
Table7c22:
db $0F
Table7c23:
db $05, $08, $03
db $01, $01, $08
db $FF
Unknown7c2a:
rept 491
db $39, $00
endr