Files
2018-07-31 22:03:58 -04:00

4091 lines
54 KiB
NASM
Executable File
Raw Permalink 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: ; 01:40fd
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: ; 01:41eb
db $00, $01, $02, $03
Unknown41ef: ; 01:41ef
db $80, $81, $82, $83
Unknown41f3: ; 01:41f3
db $04, $05, $06, $07
Unknown41f7: ; 01:41f7
db $84, $85, $86, $87
Unknown41fb: ; 01:41fb
db $08, $09, $0a, $0b
Unknown41ff: ; 01:41ff
db $88, $89, $8a, $8b
Unknown4203: ; 01:4203
db $00, $00, $00, $00
db $08, $00, $08, $00
db $02, $08, $08, $03
Unknown420f: ; 01:420f
db $00, $08, $20, $00
db $00, $20, $08, $08
db $22, $08, $00, $23
Table421b: ; 01:421b
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: ; 01:423b
db $00, $00, $00, $00
db $00, $08, $01, $00
db $08, $00, $02, $02
db $08, $08, $03, $03
Unknown424b: ; 01:424b
db $00, $00, $80, $00
db $00, $08, $81, $00
db $08, $00, $82, $02
db $08, $08, $83, $03
Unknown425b: ; 01:425b
db $00, $08, $80, $20
db $00, $00, $81, $20
db $08, $08, $82, $22
db $08, $00, $83, $23
Unknown426b: ; 01:426b
db $00, $00, $04, $00
db $00, $08, $05, $00
db $08, $00, $06, $02
db $08, $08, $07, $03
Unknown427b: ; 01:427b
db $00, $00, $84, $00
db $00, $08, $85, $00
db $08, $00, $86, $02
db $08, $08, $87, $03
Unknown428b: ; 01:428b
db $00, $08, $84, $20
db $00, $00, $85, $20
db $08, $08, $86, $22
db $08, $00, $87, $23
Unknown429b: ; 01:429b
db $00, $00, $08, $00
db $00, $08, $09, $00
db $08, $00, $0a, $02
db $08, $08, $0b, $03
Unknown42ab: ; 01:42ab
db $00, $08, $08, $20
db $00, $00, $09, $20
db $08, $08, $0a, $22
db $08, $00, $0b, $23
Unknown42bb: ; 01:42bb
db $00, $00, $88, $00
db $00, $08, $89, $00
db $08, $00, $8a, $02
db $08, $08, $8b, $03
Unknown42cb: ; 01:42cb
db $00, $08, $88, $20
db $00, $00, $89, $20
db $08, $08, $8a, $22
db $08, $00, $8b, $23
Function42db: ; 01:42db
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: ; 01:4333
ret
Function4334: ; 01:4334
ret
Function4335: ; 01:4335
push bc
ld h, b
ld l, c
ld bc, $0010
xor a
call ByteFill
pop bc
ret
Function4341: ; 01:4341
ld hl, $000a
add hl, bc
inc [hl]
ret
Function4347: ; 01:4347
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: ; 01:4358
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: ; 01:4366
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: ; 01:4374
ld de, Table437a
jp Function4358
Table437a: ; 01:437a
dw Function437e
dw Function439b
Function437e: ; 01:437e
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: ; 01:439b
jp Function4402
Function439e: ; 01:439e
ld de, Table43a4
jp Function4358
Table43a4: ; 01:43a4
dw Function43a8
dw Function43c6
Function43a8: ; 01:43a8
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: ; 01:43c6
jp Function4402
Function43c9: ; 01:43c9
ld de, Table43cf
jp Function4358
Table43cf: ; 01:43cf
dw Function43d3
dw Function43ff
Function43d3: ; 01:43d3
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: ; 01:43ff
jp Function4402
Function4402: ; 01:4402
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: ; 01:4430
ld hl, Table4436
jp Function4358
Table4436: ; 01:4436
dw Function443a
dw Function444f
Function443a: ; 01:443a
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: ; 01:444f
jp Function4402
Function4452: ; 01:4452
ld hl, $000c
add hl, bc
ld [hl], $02
ret
Function4459: ; 01:4459
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: ; 01:446c
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: ; 01:4495
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: ; 01:44ab
dw Unknown44b5
dw Unknown44b6
dw Unknown44c7
dw Unknown44d0
dw Unknown44e1
Unknown44b5: ; 01:44b5
db $00
Unknown44b6: ; 01:44b6
db $04, $00, $00, $00
db $00, $00, $08, $01
db $00, $08, $00, $02
db $00, $08, $08, $03, $00
Unknown44c7: ; 01:44c7
db $02, $00, $00, $00
db $00, $00, $08, $00, $20
Unknown44d0: ; 01:44d0
db $04, $00, $00, $00
db $00, $00, $08, $00
db $00, $08, $00, $00
db $00, $08, $08, $00, $00
Unknown44e1: ; 01:44e1
db $04, $00, $00, $00
db $40, $00, $08, $00
db $40, $08, $00, $00
db $40, $08, $08, $00, $40
Function44f2: ; 01:44f2
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: ; 01:453e
ld hl, $000a
add hl, bc
ld [hl], $02
ret
Function4545: ; 01:4545
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: ; 01:4558
dw Function4560
dw Function4567
dw Function4593
dw Function45a0
Function4560: ; 01:4560
ld hl, $000d
add hl, bc
ld [hl], $ff
ret
Function4567: ; 01:4567
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: ; 01:4593
ld hl, $0007
add hl, bc
ld a, [hl]
and $0c
ld hl, $000d
add hl, bc
ld [hl], a
ret
Function45a0: ; 01:45a0
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: ; 01:45d0
db $00, $0C, $04, $08
Function45d4: ; 01:45d4
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: ; 01:45fe
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: ; 01:4613
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: ; 01:4636
and $f0
cp $70
nop
nop
ld hl, $0005
add hl, bc
res 7, [hl]
and a
ret
Function4644: ; 01:4644
ld hl, $0005
add hl, bc
set 7, [hl]
scf
ret
Function464c: ; 01:464c
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: ; 01:4678
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: ; 01:468a
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: ; 01:46a2
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: ; 01:46d3
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: ; 01:46e5
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: ; 01:46f9
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: ; 01:4708
db $00, $01, $10
Table470b: ; 01:470b
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: ; 01:4748
add a
ret z
ld a, $01
ret nc
ld a, $ff
ret
Function4750: ; 01:4750
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: ; 01:476b
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: ; 01:4792
ld hl, $001d
add hl, bc
ld [hl], $00
ret
Function4799: ; 01:4799
ld hl, $001d
add hl, bc
inc [hl]
ret
Function479f: ; 01:479f
ld hl, $001d
add hl, bc
ld a, [hl]
ret
Function47a5: ; 01:47a5
ld hl, $001d
add hl, bc
ld [hl], a
ret
Function47ab: ; 01:47ab
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: ; 01:47b8
ld hl, $0003
add hl, bc
ld a, [hl]
and $1f
ld hl, Table47c5
jp CallJumptable
Table47c5: ; 01:47c5
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: ; 01:47fb
ret
Function47fc: ; 01:47fc
call Random
ldh a, [hRandomAdd]
and $01
jp Function48a9
Function4806: ; 01:4806
call Random
ldh a, [hRandomAdd]
and $01
or $02
jp Function48a9
Function4812: ; 01:4812
call Random
ldh a, [hRandomAdd]
and $03
jp Function48a9
Function481c: ; 01:481c
call Random
ldh a, [hRandomAdd]
and $0c
ld hl, $0007
add hl, bc
ld [hl], a
jp Function48da
Function482b: ; 01:482b
ld a, $00
jr Function4839
Function482f: ; 01:482f
ld a, $04
jr Function4839
Function4833: ; 01:4833
ld a, $08
jr Function4839
Function4837: ; 01:4837
ld a, $0c
Function4839: ; 01:4839
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: ; 01:484d
ld hl, $0008
add hl, bc
ld [hl], $07
jp Function4bed
Function4856: ; 01:4856
jp Function4bf9
Function4859: ; 01:4859
jp Function4c0c
Function485c: ; 01:485c
jp Function4fbc
Function485f: ; 01:485f
jp Function4bf3
Function4862: ; 01:4862
jp Function4fbc
Function4865: ; 01:4865
jp Function4c1f
Function4868: ; 01:4868
ret
Function4869: ; 01:4869
ret
Function486a: ; 01:486a
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: ; 01:488c
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: ; 01:48a9
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: ; 01:48c6
ld hl, $0008
add hl, bc
ld [hl], $05
ld hl, wcb6e
set 7, [hl]
jp Function4bc9
Function48d4: ; 01:48d4
call Function4678
call Function45fe
Function48da: ; 01:48da
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: ; 01:48f5
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: ; 01:4930
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: ; 01:4979
ret
Function497a: ; 01:497a
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: ; 01:4994
db $00, $FF, $FE, $FD
db $FC, $FD, $FE, $FF
Function499c: ; 01:499c
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: ; 01:49dc
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: ; 01:49fc
ld hl, $0008
add hl, bc
ld [hl], $11
call Function4792
Function4a05: ; 01:4a05
ld de, Table4a0b
jp Function47ab
Table4a0b: ; 01:4a0b
dw Function4a13
dw Function4a28
dw Function4a38
dw Function4a53
Function4a13: ; 01:4a13
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: ; 01:4a28
ld hl, $000a
add hl, bc
ld [hl], $03
ld hl, $0009
add hl, bc
dec [hl]
ret nz
call Function4799
ret
Function4a38: ; 01:4a38
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: ; 01:4a53
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: ; 01:4a82
ld hl, $0008
add hl, bc
ld [hl], $12
call Function4792
Function4a8b: ; 01:4a8b
ld de, Table4a91
jp Function47ab
Table4a91: ; 01:4a91
dw Function4a9f
dw Function4aaf
dw Function4ab8
dw Function4ad4
dw Function4af6
dw Function4b00
dw Function4b0c
Function4a9f: ; 01:4a9f
ld hl, $000a
add hl, bc
ld [hl], $00
ld hl, $0009
add hl, bc
ld [hl], $10
call Function4799
ret
Function4aaf: ; 01:4aaf
ld hl, $0009
add hl, bc
dec [hl]
ret nz
call Function4799
Function4ab8: ; 01:4ab8
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: ; 01:4ad4
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: ; 01:4af6
ld hl, $0009
add hl, bc
ld [hl], $10
call Function4799
ret
Function4b00: ; 01:4b00
ld hl, $000a
add hl, bc
ld [hl], $03
ld hl, $0009
add hl, bc
dec [hl]
ret nz
Function4b0c: ; 01:4b0c
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: ; 01:4b22
call Function4792
Function4b25: ; 01:4b25
ret
Function4b26: ; 01:4b26
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: ; 01:4b42
db $01, $01, $FC, $02, $00, $08
Function4b48: ; 01:4b48
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: ; 01:4b5f
db $05, $04, $FC, $02, $02, $08
Function4b65: ; 01:4b65
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: ; 01:4b78
call Function4979
ld hl, $000a
add hl, bc
ld [hl], $02
ld hl, $0006
add hl, bc
ld [hl], $ff
ret
Function4b88: ; 01:4b88
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: ; 01:4baa
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: ; 01:4bc9
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: ; 01:4bed
ld a, [wPlayerMovement]
jp Function4c37
Function4bf3: ; 01:4bf3
ld a, [wMovementObject]
jp Function4c37
Function4bf9: ; 01:4bf9
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: ; 01:4c0c
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: ; 01:4c1f
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: ; 01:4c37
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: ; 01:4c48
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: ; 01:4cb8
ld hl, $001c
add hl, bc
ld [hl], $00
jp Function47b8
Function4cc1: ; 01:4cc1
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: ; 01:4cef
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: ; 01:4d1a
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: ; 01:4d2c
ld a, $01
jr Function4d4a
Function4d30: ; 01:4d30
ld a, $02
jr Function4d4a
Function4d34: ; 01:4d34
ld a, $03
jr Function4d4a
Function4d38: ; 01:4d38
ld a, $04
jr Function4d4a
Function4d3c: ; 01:4d3c
ld a, $05
jr Function4d4a
Function4d40: ; 01:4d40
ld a, $06
jr Function4d4a
Function4d44: ; 01:4d44
ld a, $07
jr Function4d4a
Function4d48: ; 01:4d48
ld a, $08
Function4d4a: ; 01:4d4a
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: ; 01:4d5e
ld hl, $0004
add hl, bc
res 3, [hl]
jp Function47b8
Function4d67: ; 01:4d67
ld hl, $0004
add hl, bc
set 3, [hl]
jp Function47b8
Function4d70: ; 01:4d70
ld hl, $0004
add hl, bc
res 2, [hl]
jp Function47b8
Function4d79: ; 01:4d79
ld hl, $0004
add hl, bc
set 2, [hl]
jp Function47b8
Function4d82: ; 01:4d82
ld hl, $0005
add hl, bc
res 0, [hl]
jp Function47b8
Function4d8b: ; 01:4d8b
ld hl, $0005
add hl, bc
set 0, [hl]
jp Function47b8
Function4d94: ; 01:4d94
ld a, $00
jr Function4da4
Function4d98: ; 01:4d98
ld a, $04
jr Function4da4
Function4d9c: ; 01:4d9c
ld a, $08
jr Function4da4
Function4da0: ; 01:4da0
ld a, $0c
jr Function4da4
Function4da4: ; 01:4da4
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: ; 01:4db6
ld a, $00
jp Function4e56
Function4dbb: ; 01:4dbb
ld a, $01
jp Function4e56
Function4dc0: ; 01:4dc0
ld a, $02
jp Function4e56
Function4dc5: ; 01:4dc5
ld a, $03
jp Function4e56
Function4dca: ; 01:4dca
ld a, $04
jp Function4e56
Function4dcf: ; 01:4dcf
ld a, $05
jp Function4e56
Function4dd4: ; 01:4dd4
ld a, $06
jp Function4e56
Function4dd9: ; 01:4dd9
ld a, $07
jp Function4e56
Function4dde: ; 01:4dde
ld a, $08
jp Function4e56
Function4de3: ; 01:4de3
ld a, $09
jp Function4e56
Function4de8: ; 01:4de8
ld a, $0a
jp Function4e56
Function4ded: ; 01:4ded
ld a, $0b
jp Function4e56
Function4df2: ; 01:4df2
ld a, $0c
jp Function4e56
Function4df7: ; 01:4df7
ld a, $0d
jp Function4e56
Function4dfc: ; 01:4dfc
ld a, $0e
jp Function4e56
Function4e01: ; 01:4e01
ld a, $0f
jp Function4e56
Function4e06: ; 01:4e06
ld a, $00
jp Function4e7c
Function4e0b: ; 01:4e0b
ld a, $01
jp Function4e7c
Function4e10: ; 01:4e10
ld a, $02
jp Function4e7c
Function4e15: ; 01:4e15
ld a, $03
jp Function4e7c
Function4e1a: ; 01:4e1a
ld a, $04
jp Function4e7c
Function4e1f: ; 01:4e1f
ld a, $05
jp Function4e7c
Function4e24: ; 01:4e24
ld a, $06
jp Function4e7c
Function4e29: ; 01:4e29
ld a, $07
jp Function4e7c
Function4e2e: ; 01:4e2e
ld a, $08
jp Function4e7c
Function4e33: ; 01:4e33
ld a, $09
jp Function4e7c
Function4e38: ; 01:4e38
ld a, $0a
jp Function4e7c
Function4e3d: ; 01:4e3d
ld a, $0b
jp Function4e7c
Function4e42: ; 01:4e42
ld a, $0c
jp Function4e7c
Function4e47: ; 01:4e47
ld a, $0d
jp Function4e7c
Function4e4c: ; 01:4e4c
ld a, $0e
jp Function4e7c
Function4e51: ; 01:4e51
ld a, $0f
jp Function4e7c
Function4e56: ; 01:4e56
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: ; 01:4e7c
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: ; 01:4eb7
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: ; 01:4ed5
ld de, Table4edb
jp Function47ab
Table4edb: ; 01:4edb
dw Function4edf
dw Function4efb
Function4edf: ; 01:4edf
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: ; 01:4efb
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: ; 01:4f14
ld de, Table4f1a
jp Function47ab
Table4f1a: ; 01:4f1a
dw Function4f20
dw Function4f40
dw Function4f4b
Function4f20: ; 01:4f20
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: ; 01:4f40
call Function46a2
ld hl, wcb6e
set 7, [hl]
call Function4799
Function4f4b: ; 01:4f4b
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: ; 01:4f86
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: ; 01:4fbc
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: ; 01:5007
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: ; 01:50b9
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: ; 01:5190
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: ; 01:52dc
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: ; 01:5388
ld a, $00
call OpenSRAM
ld a, [s0_a600]
ld [wce60], a
call CloseSRAM
ret
Function5397: ; 01:5397
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: ; 01:53b0
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: ; 01:63d8
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: ; 01:6437
call UpdateSprites
call LoadFont
call LoadFontExtra
ld a, $90
ldh [hWY], a
ret
Function6445: ; 01:6445
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
ld bc, $0007
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: ; 01:658c
text_from_ram wcd11
text "は あたらしく"
line ""
text_end
Text6599: ; 01:6599
text_from_ram wStringBuffer2
text "を おぼえた!"
text_end
Text65a5: ; 01:65a5
sound_dex_fanfare_50_79
text_waitbutton
text_end
Text65a8: ; 01:65a8
text "どの わざを"
next "わすれさせたい?"
done
Text65b9: ; 01:65b9
text "それでは<⋯⋯> "
text_end
Text65c1: ; 01:65c1
text_from_ram wStringBuffer2
text "を"
line "おぼえるのを あきらめますか?"
done
Text65d7: ; 01:65d7
text_from_ram wcd11
text "は "
text_end
Text65de: ; 01:65de
text_from_ram wStringBuffer2
text "を"
line "おぼえずに おわった!"
prompt
Text65f0: ; 01:65f0
text_from_ram wcd11
text "は あたらしく"
line ""
text_end
Text65fd: ; 01:65fd
text_from_ram wStringBuffer2
text "を おぼえたい<⋯⋯>!"
para "しかし "
text_end
Text6610: ; 01:6610
text_from_ram wcd11
text "は わざを 4つ"
line "おぼえるので せいいっぱいだ!"
para ""
text_end
Text662e: ; 01:662e
text_from_ram wStringBuffer2
text "の かわりに"
line "ほかの わざを わすれさせますか?"
done
Text664b: ; 01:664b
text "1 2の <⋯⋯>"
text_end
Text6653: ; 01:6653
text_exit
start_asm
push de
ld de, $001b
call PlaySFX
pop de
ld hl, Text6661
ret
Text6661: ; 01:6661
text " ポカン!"
text_end
Text6668: ; 01:6668
text_exit
text ""
para ""
text_end
Text666c: ; 01:666c
text_from_ram wcd11
text "は "
text_end
Text6673: ; 01:6673
text_from_ram wStringBuffer1
text "の"
line "つかいかたを きれいに わすれた!"
para "そして<⋯⋯>!"
prompt
Text6691: ; 01:6691
text "それは たいせつなわざです"
line "わすれさせることは できません!"
prompt
Function66b1: ; 01:66b1
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: ; 01:66fa
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: ; 01:6713
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(Function113f4)
ld b, $00
ld hl, Function113f4
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: ; 01:6788
text_from_ram wStringBuffer1
text "に"
line "ニックネームを つけますか?"
done
Function679d: ; 01:679d
ld de, wFieldMoveScriptID
push de
ld hl, Function113f4
ld b, $00
ld a, BANK(Function113f4)
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: ; 01:67d5
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:: ; 01:6805
db $00, $05, $14, $19, $1d
db $26, $35, $3a, $49, $7f
db $ff
SECTION "engine/dumps/bank01.asm@Function771e", ROMX
Function771e: ; 01:771e
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: ; 01:776e
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: ; 01:77a1
ld hl, $0010
add hl, bc
ld d, [hl]
ld hl, $0011
add hl, bc
ld e, [hl]
jr _CheckObjectCollision
Function77ad: ; 01:77ad
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: ; 01:782c
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: ; 01:786e
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: ; 01:78e5
ld a, [wVramState]
push af
xor a
ld [wVramState], a
Function78ed: ; 01:78ed
call Function7a93
Function78f0: ; 01:78f0
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: ; 01:796a
push af
call Function7a41
ld [hl], $7f
pop af
ld [wTileMapBackup], a
jp Function78f0
Function7977: ; 01:7977
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: ; 01:7a41
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: ; 01:7a55
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: ; 01:7a93
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: ; 01:7bad
db "はなしの はやさ"
next " はやい    ふつう    おそい"
text_end
Text7bc9: ; 01:7bc9
db "せんとう アニメーション"
next " じっくり みる  とばして みる"
text_end
Text7be8: ; 01:7be8
db "しあいの ルール"
next " いれかえタイプ  かちぬきタイプ"
text_end
Text7c03: ; 01:7c03
db " モノラル     ステレオ"
text_end
Text7c12: ; 01:7c12
db " おわり"
text_end
Text7c17: ; 01:7c17
db " わく を かえる "
text_end
Table7c22: ; 01:7c22
db $0F
Table7c23: ; 01:7c23
db $05, $08, $03
db $01, $01, $08
db $FF
Unknown7c2a: ; 01:7c2a
rept 491
db $39, $00
endr