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(NamingScreen) ld b, $00 ld hl, NamingScreen call FarCall_hl call ClearBGPalettes call ClearTileMap call ClearSprites call GetMemSGBLayout call SetPalettes ld a, [wBattleMode] and a jr nz, .sub_676b call LoadFontExtra call Function3657 jr .sub_6773 .sub_676b ld hl, Function3e3a7 ld a, BANK(Function3e3a7) call FarCall_hl .sub_6773 pop hl ld a, [hl] cp $50 jr nz, .sub_6784 .sub_6779 ld d, h ld e, l ld hl, wStringBuffer1 ld bc, $0006 call CopyBytes .sub_6784 call CloseWindow ret Text6788: ; 01:6788 text_from_ram wStringBuffer1 text "に" line "ニックネームを つけますか?" done Function679d: ; 01:679d ld de, wFieldMoveScriptID push de ld hl, NamingScreen ld b, $00 ld a, BANK(NamingScreen) call FarCall_hl call ClearBGPalettes call Function360b call UpdateTimePals pop de ld a, [de] cp $50 jr z, .sub_67d3 ld hl, wPartyMonNicknames ld bc, $0006 ld a, [wWhichPokemon] call AddNTimes ld e, l ld d, h ld hl, wFieldMoveScriptID ld bc, $0006 call CopyBytes and a ret .sub_67d3 scf ret CorrectNickErrors: ; 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