summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile1
-rwxr-xr-x[-rw-r--r--]charmap.asm0
-rw-r--r--data/items/attributes.asm4
-rw-r--r--data/items/names.asm2
-rwxr-xr-xengine/dumps/bank01.asm4090
-rw-r--r--gfx.asm1
-rwxr-xr-xgfx/trainer_card/border.pngbin0 -> 204 bytes
-rwxr-xr-x[-rw-r--r--]gfx/trainer_card/trainer_card.pngbin369 -> 668 bytes
-rw-r--r--home/map_objects.asm4
-rw-r--r--hram.asm11
-rw-r--r--macros/text.asm44
-rw-r--r--pokegold-spaceworld.link20
-rwxr-xr-x[-rw-r--r--]shim.sym34
-rw-r--r--wram.asm98
14 files changed, 4216 insertions, 93 deletions
diff --git a/Makefile b/Makefile
index 6739aba..505bd83 100644
--- a/Makefile
+++ b/Makefile
@@ -90,7 +90,6 @@ $(BUILD)/gfx/sgb/sgb_border_alt.2bpp: tools/gfx += --trim-whitespace
$(BUILD)/gfx/sgb/sgb_border_gold.2bpp: tools/gfx += --trim-whitespace
$(BUILD)/gfx/sgb/sgb_border_silver.2bpp: tools/gfx += --trim-whitespace
$(BUILD)/gfx/trainer_card/leaders.2bpp: tools/gfx += --trim-whitespace
-$(BUILD)/gfx/trainer_card/trainer_card.2bpp: tools/gfx += --trim-whitespace
$(BUILD)/gfx/pokegear/town_map.2bpp: tools/gfx += --trim-trailing
$(BUILD)/gfx/minigames/slots.2bpp: tools/gfx += --trim-whitespace
$(BUILD)/gfx/minigames/poker.2bpp: tools/gfx += --trim-whitespace
diff --git a/charmap.asm b/charmap.asm
index be20a37..be20a37 100644..100755
--- a/charmap.asm
+++ b/charmap.asm
diff --git a/data/items/attributes.asm b/data/items/attributes.asm
index 1e54451..9975dc2 100644
--- a/data/items/attributes.asm
+++ b/data/items/attributes.asm
@@ -517,4 +517,6 @@ ItemAttributes:: ; 68f3
; ITEM_HM06
item_attribute 0, HELD_NONE, 0, CANT_SELECT | CANT_TOSS, TM_HM, ITEMMENU_PARTY, ITEMMENU_PARTY
; ITEM_HM07
- item_attribute 0, HELD_NONE, 0, CANT_SELECT | CANT_TOSS, TM_HM, ITEMMENU_PARTY, ITEMMENU_PARTY \ No newline at end of file
+ item_attribute 0, HELD_NONE, 0, CANT_SELECT | CANT_TOSS, TM_HM, ITEMMENU_PARTY, ITEMMENU_PARTY
+; ITEM_FF
+ item_attribute 0, HELD_NONE, 0, NO_LIMITS, 0, ITEMMENU_NOUSE, ITEMMENU_NOUSE
diff --git a/data/items/names.asm b/data/items/names.asm
index 0036cd6..3ae826d 100644
--- a/data/items/names.asm
+++ b/data/items/names.asm
@@ -261,4 +261,4 @@ ItemNames::
db "ひでんマシン05@" ; HM05
db "ひでんマシン06@" ; HM06
db "ひでんマシン07@" ; HM07
- db "しようきんし@" ; FF \ No newline at end of file
+ db "しようきんし@" ; FF
diff --git a/engine/dumps/bank01.asm b/engine/dumps/bank01.asm
new file mode 100755
index 0000000..0ae1ffe
--- /dev/null
+++ b/engine/dumps/bank01.asm
@@ -0,0 +1,4090 @@
+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
diff --git a/gfx.asm b/gfx.asm
index 0c7beec..4266270 100644
--- a/gfx.asm
+++ b/gfx.asm
@@ -59,6 +59,7 @@ MailIconGFX::
INCBIN "gfx/icons/mail.2bpp"
SECTION "gfx.asm@Trainer Card GFX", ROMX
+TrainerCardBorderGFX:: INCBIN "gfx/trainer_card/border.2bpp"
TrainerCardGFX:: INCBIN "gfx/trainer_card/trainer_card.2bpp" ; 0x013171--0x013381
TrainerCardColonGFX:: INCBIN "gfx/trainer_card/colon.2bpp" ; 0x013381--0x013391
TrainerCardIDNoGFX:: INCBIN "gfx/trainer_card/id_no.2bpp" ; 0x013391--0x0133B1
diff --git a/gfx/trainer_card/border.png b/gfx/trainer_card/border.png
new file mode 100755
index 0000000..dcc22be
--- /dev/null
+++ b/gfx/trainer_card/border.png
Binary files differ
diff --git a/gfx/trainer_card/trainer_card.png b/gfx/trainer_card/trainer_card.png
index ecce895..902a533 100644..100755
--- a/gfx/trainer_card/trainer_card.png
+++ b/gfx/trainer_card/trainer_card.png
Binary files differ
diff --git a/home/map_objects.asm b/home/map_objects.asm
index 6c3c640..69bd60b 100644
--- a/home/map_objects.asm
+++ b/home/map_objects.asm
@@ -311,7 +311,7 @@ UpdateSprites:: ; 00:17a8
bit 0, a
ret z
callab Function5007
- callab Function5190
+ callab _UpdateSprites
ret
GetObjectStruct:: ; 00:17bf
@@ -325,6 +325,8 @@ GetObjectStruct:: ; 00:17bf
Function17cb::
add $10
+
+Function17cd::
ld e, a
ldh a, [hROMBank]
push af
diff --git a/hram.asm b/hram.asm
index 82ac33c..b5acf9a 100644
--- a/hram.asm
+++ b/hram.asm
@@ -125,8 +125,17 @@ hPrintNumDivisor:: ds 3 ; ffb7 big-endian
hPrintNumTemp:: ds 3 ; ffba big-endian
ENDU
- ds 19 ; TODO
+ ds 10 ; TODO
+
+hFFC7:: db ; FFC7
+hFFC8:: db ; FFC8
+hFFC9:: db ; FFC9
+hFFCA:: db ; FFCA
+hFFCB:: db ; FFCB
+hFFCC:: db ; FFCC
+
+ ds 3 ; TODO
hLCDCPointer:: ; ffd0
db
diff --git a/macros/text.asm b/macros/text.asm
index f95c300..4c88458 100644
--- a/macros/text.asm
+++ b/macros/text.asm
@@ -15,121 +15,121 @@ page EQUS "db $50," ; Start a new Pokedex page.
dex EQUS "db $e8, $50" ; End a Pokedex entry.
enum_start 1
- enum TX_RAM
+ enum TX_RAM ; $01
text_from_ram: MACRO
db TX_RAM
dw \1 ; address
ENDM
- enum TX_BCD
+ enum TX_BCD ; $02
text_bcd: macro
db TX_BCD
dw \1 ; address
db \2 ; flags + digits, see PrintBCDNumber
ENDM
- enum TX_MOVE
+ enum TX_MOVE ; $03
text_move: macro
db TX_MOVE
dw \1 ; address
ENDM
- enum TX_BOX
+ enum TX_BOX ; $04
text_box: macro
db TX_BOX
dw \1 ; address
db \2, \3 ; width, height
ENDM
- enum TX_LOW
+ enum TX_LOW ; $05
text_low: macro
db TX_LOW
endm
- enum WAIT_BUTTON
+ enum WAIT_BUTTON ; $06
text_waitbutton: macro
db WAIT_BUTTON
endm
- enum TX_SCROLL
+ enum TX_SCROLL ; $07
text_scroll: macro
db TX_SCROLL
endm
- enum START_ASM
+ enum START_ASM ; $08
start_asm: macro
db START_ASM
endm
- enum TX_NUM
+ enum TX_NUM ; $09
deciram: macro
db TX_NUM
dw \1 ; address
dn \2, \3 ; bytes, flags + digits
endm
- enum TX_EXIT
+ enum TX_EXIT ; $0a
text_exit: macro
db TX_EXIT
endm
- enum TX_SOUND_0B
+ enum TX_SOUND_0B ; $0b
sound_dex_fanfare_50_79: macro
db TX_SOUND_0B
endm
- enum TX_DOTS
+ enum TX_DOTS ; $0c
text_dots: macro
db TX_DOTS
db \1
endm
- enum TX_LINK_WAIT_BUTTON
+ enum TX_LINK_WAIT_BUTTON ; $0d
link_wait_button: macro
db TX_LINK_WAIT_BUTTON
endm
- enum TX_SOUND_0E
+ enum TX_SOUND_0E ; $0e
sound_dex_fanfare_20_49: macro
db TX_SOUND_0E
endm
- enum TX_SOUND_0F
+ enum TX_SOUND_0F ; $0f
sound_item: macro
db TX_SOUND_0F
endm
- enum TX_SOUND_10
+ enum TX_SOUND_10 ; $10
sound_caught_mon: macro
db TX_SOUND_10
endm
- enum TX_SOUND_11
+ enum TX_SOUND_11 ; $11
sound_dex_fanfare_80_109: macro
db TX_SOUND_11
endm
- enum TX_SOUND_12
+ enum TX_SOUND_12 ; $12
sound_fanfare: macro
db TX_SOUND_12
endm
- enum TX_SOUND_13
+ enum TX_SOUND_13 ; $13
sound_slot_machine_start: macro
db TX_SOUND_13
endm
- enum TX_CRY_14
+ enum TX_CRY_14 ; $14
cry_nidorina: macro
db TX_CRY_14
endm
- enum TX_CRY_15
+ enum TX_CRY_15 ; $15
cry_pigeot: macro
db TX_CRY_15
endm
- enum TX_CRY_16
+ enum TX_CRY_16 ; $16
cry_jugon: macro
db TX_CRY_16
endm
diff --git a/pokegold-spaceworld.link b/pokegold-spaceworld.link
index 1f24ae7..8a8514b 100644
--- a/pokegold-spaceworld.link
+++ b/pokegold-spaceworld.link
@@ -107,31 +107,27 @@ ROMX $01
org $4000
"engine/link/place_waiting_text.asm"
"engine/menu/debug_menu.asm"
- org $4153
+ "engine/dumps/bank01.asm@Function40fd"
"home/oam_dma.asm"
- ; $416b
- org $52f9
+ "engine/dumps/bank01.asm@Table416b"
"engine/menu/main_menu.asm@Initialize new game WRAM"
- org $53cc
+ "engine/dumps/bank01.asm@Function5388"
"engine/menu/main_menu.asm@MainMenu"
"engine/intro.asm"
"engine/title.asm@Title screen"
"engine/title.asm@Title screen TEMPORARY"
"engine/predef.asm"
- org $6810
+ "engine/dumps/bank01.asm@ReanchorBGMap_NoOAMUpdate"
"engine/math/math.asm"
"data/items/attributes.asm"
- ; $6fe5
- org $6fec
"data/items/names.asm"
- ; $771e
- org $774a
+ "engine/dumps/bank01.asm@Function771e"
"engine/overworld/object_collision.asm@GetSpritesNextTile"
- org $77dd
+ "engine/dumps/bank01.asm@Function776e"
"engine/overworld/object_collision.asm@_CheckObjectCollision"
- ; $782c
- org $7894
+ "engine/dumps/bank01.asm@Function782c"
"engine/overworld/object_collision.asm@_CheckPlayerObjectCollision"
+ "engine/dumps/bank01.asm@SettingsScreen"
ROMX $02
org $4000
org $44bf
diff --git a/shim.sym b/shim.sym
index 8ef9319..bde0b65 100644..100755
--- a/shim.sym
+++ b/shim.sym
@@ -1,35 +1,3 @@
-; WRAM0
-
-00:CB6F wPlayerStepDirection
-
-01:D19E wItems
-; The starting house's map script number is stored at d29a. Others are probably nearby.
-01:D1EA wUnknownListLengthd1ea
-01:D1EB wUnknownListd1eb
-01:D35F wOptions
-01:D513 wWarpNumber
-01:DA3B wOTPartyMonOT
-01:DA83 wUnknownListLengthda83
-01:DA84 wUnknownListda84
-
-01:40FD Function40fd
-01:5007 Function5007
-01:50B9 Function50b9
-01:5190 _UpdateSprites
-01:5190 Function5190
-01:52F9 Function52f9
-01:5388 Function5388
-01:5397 Function5397
-01:53B0 Function53b0
-01:63D8 ReanchorBGMap_NoOAMUpdate
-01:6437 LoadFonts_NoOAMUpdate
-01:6445 Function6445
-01:66B1 Function66b1
-01:6713 Function6713
-01:67d5 CorrectNickErrors
-01:776E Function776e
-01:78E5 SettingsScreen
-
02:4000 Function8000
02:4098 _InitializeVisibleSprites
02:4125 Function8125
@@ -50,6 +18,7 @@
02:51D2 SetTitleBGDecorationBorder
02:528B Function928b
02:5695 CheckSGB
+02:56eb Function96eb
03:47D5 SpawnPoints
03:488D Tilesets
@@ -135,6 +104,7 @@
0F:567C Function3d67c
0F:6043 AddPokemonToBox
0F:61A4 Function3e1a4
+0F:63a7 Function3e3a7
0F:6874 Function3e874
0F:691E Function3e91e
0F:6963 Function3e963
diff --git a/wram.asm b/wram.asm
index 6e70525..eaec8b7 100644
--- a/wram.asm
+++ b/wram.asm
@@ -92,13 +92,21 @@ wTileMapBackup:: ; c408
NEXTU
- ds 3
+ ds 1
+
+wc409:: ds 1 ; c409
+wc40a:: ds 1 ; c40a
; Monster or Trainer test?
wWhichPicTest:: ; c40b
db
-; c40c
- ds 180
+
+
+wc40c:: ds 1 ; c40c
+wc40d:: ds 1 ; c40d
+wc40e:: ds 1 ; c40e
+
+ ds 177
wSpriteAnimIDBuffer:: db ; c4c0
@@ -181,8 +189,16 @@ wBattleAnimEnd::
wBattleMonNickname:: ds 6 ; c9f6
wEnemyMonNickname:: ds 6 ; c9fc
-; ca02
- ds $3b ; TODO
+
+ ds 2
+
+wca04:: ds 1 ; ca04
+
+ ds 5
+
+wca0a:: ds 1 ; ca0a
+
+ ds $32 ; TODO
wPlayerSubStatus3:: db ; ca3d
ds $4
@@ -248,8 +264,10 @@ wVBCopyDst:: ds 2 ; cb65
wVBCopyDoubleSize:: ds 1 ; cb67
wVBCopyDoubleSrc:: ds 2 ; cb68
wVBCopyDoubleDst:: ds 2 ; cb6a
- ds 2
-wcb6e:: db
+wcb6c:: db ; cb6c
+wcb6d:: db ; cb6d
+wcb6e:: db ; cb6e
+wPlayerStepDirection:: db ; cb6f
SECTION "CB71", WRAM0[$CB70]
@@ -262,6 +280,8 @@ wVBCopyFarSrcBank:: ds 1 ; cb76
wPlayerMovement:: db ; cb77
wMovementObject:: db ; cb78
ptrba wMovementData ; cb79
+
+wcb7c:: ds 1 ; cb7c
SECTION "Collision buffer", WRAM0[$CB90]
@@ -393,7 +413,11 @@ SECTION "CCCE", WRAM0[$CCCE]
wDisableVBlankWYUpdate:: db ; ccce
wSGB:: db
-SECTION "CD26", WRAM0[$CD26]
+SECTION "CD11", WRAM0[$CD11]
+
+wcd11:: ds 1 ; cd11
+
+ ds 20
wStringBuffer1:: ds 1 ; How long is this? ; cd26
@@ -418,7 +442,10 @@ SECTION "CD3E", WRAM0[$CD3D]
wRegularItemsCursor:: db ; cd3d
wBackpackAndKeyItemsCursor:: db ;cd3e
wStartmenuCursor:: db ; cd3f
- ds 4 ; TODO
+wcd40:: db ; cd40
+wcd41:: db ; cd41
+wcd42:: db ; cd42
+wcd43:: db ; cd43
wRegularItemsScrollPosition:: db ; cd44
wBackpackAndKeyItemsScrollPosition:: db ; cd45
ds 3 ; TODO
@@ -441,8 +468,8 @@ wPredefBC:: ; cd54
wFarCallBCBuffer:: ; cd54
dw
- ds 2 ; TODO
-
+wcd56:: ds 1 ; cd56
+wcd57:: ds 1 ; cd57
wFieldMoveSucceeded:: db ; cd58
wVramState:: db ; cd59
@@ -453,8 +480,8 @@ wChosenStarter:: db ; cd5f
SECTION "CD72", WRAM0[$CD72]
wcd72:: dw ; cd72
-
- ds 2 ; TODO
+wcd74:: db ; cd74
+wcd75:: db ; cd75
wCurItem:: db ; cd76
wItemIndex:: db ;cd77
@@ -463,7 +490,7 @@ wWhichPokemon: db ; cd79
SECTION "CD7B", WRAM0[$CD7B]
-wHPBarType:: db ; cd76
+wHPBarType:: db ; cd7b
ds 1
@@ -598,10 +625,15 @@ wMonHLearnset:: ; ce1e
ds 1
SECTION "CE2E", WRAM0[$CE2E]
-wce2e:: ; ce2e
- ds 9
-
-SECTION "CE37", WRAM0[$CE37]
+wce2e:: db ; ce2e
+wce2f:: db ; ce2f
+wce30:: db ; ce30
+wce31:: db ; ce31
+wce32:: db ; ce32
+wce33:: db ; ce33
+wce34:: db ; ce34
+wce35:: db ; ce35
+wce36:: db ; ce36
wNamedObjectIndexBuffer::
wCountSetBitsResult::
@@ -643,7 +675,9 @@ wDebugFlags:: db ; ce63
; Bit 1: Debug field indicator
; Bit 2-3: Game is continued (set when selecting continue on the main menu)
- ds 3
+wce64:: ds 1 ; ce64
+wce65:: ds 1 ; ce65
+wce66:: ds 1 ; ce66
wPlayerName:: ds 6 ; ce67
@@ -760,6 +794,7 @@ wTMsHMs:: db ; d165
SECTION "D19E", WRAM0[$D19E]
+wItems::
wNumBagItems:: db ; d19e
SECTION "D1C8", WRAM0[$D1C8]
@@ -772,6 +807,11 @@ SECTION "D1DE", WRAM0[$D1DE]
wNumBallItems:: db ; d1de
wBallQuantities:: db ; d1df
+ ds 10
+
+wUnknownListLengthd1ea:: db ; d1ea
+wUnknownListd1eb:: db ; d1eb
+
SECTION "Rival's Name", WRAM0[$D258]
wRivalName:: ds 6 ; d258
ds 6
@@ -785,15 +825,19 @@ wPlayerState:: db ; d264
wd265:: db ; d265
wd266:: db ; d266
+;The starting house's map script number is stored at d29a. Others are probably nearby.
SECTION "D29A", WRAM0[$D29A]
wd29a:: db ; d29a
wd29b:: db ; d29b
- db ; d29c
+wd29c:: db ; d29c
wd29d:: db ; d29d
- db
+wd29e:: db ; d29e
db
wd2a0:: db ; d2a0
+SECTION "D35F", WRAM0[$D35F]
+wOptions:: db ; d35f
+
SECTION "D39D", WRAM0[$D39D]
wd39d:: db
@@ -822,7 +866,9 @@ SECTION "wDigWarpNumber", WRAM0[$D4B2]
wDigWarpNumber:: db ; d4b2
-SECTION "Warp data", WRAM0[$D514]
+SECTION "Warp data", WRAM0[$D513]
+
+wWarpNumber:: db ; d513
wCurrMapWarpCount:: ; d514
db
@@ -966,6 +1012,14 @@ SECTION "Wild mon buffer", WRAM0[$D91B]
wWildMons:: ; d91b
ds 41
+SECTION "DA3B", WRAM0[$DA3B]
+
+wOTPartyMonOT:: db ; da3b
+
+SECTION "DA83", WRAM0[$DA83]
+
+wUnknownListLengthda83:: db ; da83
+wUnknownListda84:: db ; da84
SECTION "Stack Bottom", WRAM0